diff -uprN binutils-2.13.90.0.4/COPYING.NEWLIB binutils-2.13.90.0.10/COPYING.NEWLIB --- binutils-2.13.90.0.4/COPYING.NEWLIB Thu Feb 7 10:21:03 2002 +++ binutils-2.13.90.0.10/COPYING.NEWLIB Fri Sep 27 08:33:09 2002 @@ -18,7 +18,7 @@ THIS SOFTWARE IS PROVIDED ``AS IS'' AND IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -(2) DJ Delorie +(2) DJ Delorie (following only applies to go32 target) Copyright (C) 1991 DJ Delorie @@ -125,7 +125,48 @@ IMPLIED WARRANTIES, INCLUDING, WITHOUT L WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -(10) Unless otherwise stated in each remaining newlib file, the remaining +(10) Stephane Carrez (m68hc11-elf/m68hc12-elf targets only) + +Copyright (C) 1999, 2000, 2001, 2002 Stephane Carrez (stcarrez@nerim.fr) + +The authors hereby grant permission to use, copy, modify, distribute, +and license this software and its documentation for any purpose, provided +that existing copyright notices are retained in all copies and that this +notice is included verbatim in any distributions. No written agreement, +license, or royalty fee is required for any of the authorized uses. +Modifications to this software may be copyrighted by their authors +and need not follow the licensing terms described here, provided that +the new terms are clearly indicated on the first page of each file where +they apply. + +(11) Christopher G. Demetriou + +Copyright (c) 2001 Christopher G. Demetriou +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. 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. +3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 THE AUTHOR 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. + +(12) 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. diff -uprN binutils-2.13.90.0.4/ChangeLog binutils-2.13.90.0.10/ChangeLog --- binutils-2.13.90.0.4/ChangeLog Thu Aug 8 22:49:55 2002 +++ binutils-2.13.90.0.10/ChangeLog Mon Oct 7 23:07:59 2002 @@ -1,3 +1,159 @@ +2002-10-07 Svein E. Seldal + + * configure.in: Add tic4x target. + +2002-10-03 Nathanael Nerode + + * Makefile.tpl: Make SET_LIB_PATH substitution more autoconfy. + * Makefile.tpl: Make RPATH_ENVVAR substitution more autoconfy. + * configure.in: Make SET_LIB_PATH substitution more autoconfy. + * configure.in: Make RPATH_ENVVAR substitution more autoconfy. + * Makefile.in: Regenerate. + +2002-10-02 Nathanael Nerode + + * Makefile.tpl: Eliminate reference to all-gui, all-libproc. + * Makefile.in: Regenerate. + + * Makefile.def: Remove order dependency comments. + * Makefile.tpl: Add explicit install-install dependencies. + * Makefile.in: Regenerate. + + * Makefile.tpl: Remove material now in src-release. (Finally!) + * Makefile.in: Regenerate. + + * configure: Restore my original patch by syncing with gcc version. + + * Bring following over from gcc: + +2002-09-30 Ulrich Weigand + + * configure.in (s390*-*-linux*): Enable libgcj. + +2002-10-02 Nathanael Nerode + + * Makefile.in: Regenerate. This really ought to fix things. :sigh: + +2002-10-02 Alan Modra + + * configure: Move stray lines back to where they belong. + +2002-10-01 Nathanael Nerode + + * Makefile.tpl: Insert configure-target target, for src-release. + + * configure: Finish reverting change which Andrew Cagney started + reverting. Should fix bustage. + + * src-release (BINUTILS_SUPPORT_DIRS): Add cpu directory. + * src-release: New file. Contains material for making net + releases for gdb, binutils, et al., formerly in Makefile.in. + +2002-09-30 Nick Clifton + + * cpu: New top level directory. Intended to hold input files for + CGEN which have FSF copyright assignment. + * Makefile.in (BINUTILS_SUPPORT_DIRS): Add cpu directory. + +2002-09-29 Andrew Cagney + + Revert below (note that src does not contain Makefile.tpl): + * Makefile.tpl: Make subsituted variables more autoconfy. + * Makefile.in: Regenerate. + +2002-09-29 Nathanael Nerode + + * configure: Revert accidentally applied changes. + + * Makefile.tpl: Make more autoconf-friendly. + * Makefile.in: Regenerate. + * configure: Make substitution more autoconf-like. + +2002-09-28 Richard Earnshaw + + * configure.in (arm-*-coff, strongarm-*-coff, xscale-*-coff): Use a + single entry to handle all these. + (arm-*-elf, strongarm-*-elf, xscale-*-elf): Likewise. Also enable + libjava on arm-*-elf. + +2002-09-27 Geoffrey Keating + + * configure.in (powerpc-*-darwin*): Don't configure BFD, TK, or the + things that depend on them. + +2002-09-25 Nathanael Nerode + + * Makefile.tpl: Make subsituted variables more autoconfy. + * Makefile.in: Regenerate. + * configure: Make seds more autoconfy. + +2002-09-25 Nathanael Nerode + + * Makefile.tpl: Rewrite substituted lines to look autoconfy. + * Makefile.in: Regenerate. + * configure.in: Rewrite sed statements to look autoconfy. + + * Makefile.tpl: Autogenerate *-target-* lists, dependencies of + all-target-foo on configure-target-foo. + * Makefile.def: Ditto. + * Makefile.in: Rebuild. + +2002-09-22 Nathanael Nerode + + * Makefile.def: New file. + * Makefile.tpl: New file. + * Makefile.in: Generate from Makefile.tpl with 'autogen Makefile.def'. + + * configure.in: Minor rearrangement. Simplify tests. + +2002-09-23 Jason Thorpe + + * configure.in (with_headers): Skip copy if value is "yes". + (with_libs): Likewise. + +2002-09-20 Nathanael Nerode + + * configure.in (*-*-netbsd*): Use noconfigdirs, not skipdirs. + * configure.in (sh*-*-pe*): Ditto. + * configure.in (mips*-*-pe*): Ditto. + * configure.in (*arm-wince-pe): Ditto. + + * configure.in: Rearrange. + +2002-09-12 Nick Clifton + + * Import these changes from the config master repository: + + 2002-09-05 Svein E. Seldal + + * config.sub: Add tic4x target. + + 2002-09-03 Ben Elliston + + * config.guess: Detect NSR-D machines for nsr-tandem-nsk. + Reported by . + +2002-09-10 Jeff Johnston + + * COPYING.NEWLIB: More updates. + +2002-09-09 Jeff Johnston + + * COPYING.NEWLIB: Update. + +2002-08-23 Andrew Cagney + + * texinfo/texinfo.tex: Import version 2002-06-04.06. + + * config.guess: Import version 2002-08-23. + * config.sub: Import version 2002-08-22. + +2002-08-20 Alexandre Oliva + + * Makefile.in (GCC_FOR_TARGET): Prepend STAGE_CC_WRAPPER. + * configure.in (CC_FOR_TARGET, GCJ_FOR_TARGET, CXX_FOR_TARGET, + CXX_FOR_TARGET_FOR_RECURSIVE_MAKE): Likewise. + 2002-08-06 Federico G. Schwindt * configure.in (hppa*-*-openbsd*): Treat like hppa*-*-*elf*. diff -uprN binutils-2.13.90.0.4/ChangeLog.linux binutils-2.13.90.0.10/ChangeLog.linux --- binutils-2.13.90.0.4/ChangeLog.linux Wed Jun 26 09:24:56 2002 +++ binutils-2.13.90.0.10/ChangeLog.linux Thu Oct 10 09:16:57 2002 @@ -1,3 +1,7 @@ +2002-10-10 H.J. Lu + + * binutils.spec.in (ADDITIONAL_TARGETS): Add ppc64-linux. + 2002-06-18 H.J. Lu * binutils.spec.in (ADDITIONAL_TARGETS): Add x86_64-linux. diff -uprN binutils-2.13.90.0.4/Makefile.def binutils-2.13.90.0.10/Makefile.def --- binutils-2.13.90.0.4/Makefile.def Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/Makefile.def Wed Oct 2 10:17:19 2002 @@ -0,0 +1,79 @@ +#! /usr/bin/autogen +AutoGen definitions Makefile.tpl; + +host_modules= { module= ash; }; +host_modules= { module= autoconf; }; +host_modules= { module= automake; }; +host_modules= { module= bash; }; +host_modules= { module= bfd; }; +host_modules= { module= opcodes; }; +host_modules= { module= binutils; }; +host_modules= { module= bison; no_check_cross= true; }; +host_modules= { module= byacc; no_check_cross= true; }; +host_modules= { module= bzip2; }; +host_modules= { module= db; }; +host_modules= { module= dejagnu; }; +host_modules= { module= diff; }; +host_modules= { module= dosutils; no_check= true; }; +host_modules= { module= etc; }; +host_modules= { module= fastjar; no_check_cross= true; }; +host_modules= { module= fileutils; }; +host_modules= { module= findutils; }; +host_modules= { module= find; }; +host_modules= { module= flex; no_check_cross= true; }; +host_modules= { module= gas; }; +host_modules= { module= gawk; }; +host_modules= { module= gettext; }; +host_modules= { module= gnuserv; }; +host_modules= { module= gprof; }; +host_modules= { module= grep; }; +host_modules= { module= gzip; }; +host_modules= { module= hello; }; +host_modules= { module= indent; }; +host_modules= { module= intl; }; +host_modules= { module= tcl; }; +host_modules= { module= itcl; }; +host_modules= { module= ld; }; +host_modules= { module= libgui; }; +host_modules= { module= libiberty; }; +host_modules= { module= libtool; }; +host_modules= { module= m4; }; +host_modules= { module= make; }; +host_modules= { module= mmalloc; no_check=true; }; +host_modules= { module= patch; }; +host_modules= { module= perl; }; +host_modules= { module= prms; }; +host_modules= { module= rcs; }; +host_modules= { module= readline; }; +host_modules= { module= release; no_install= true; no_check= true; }; +host_modules= { module= recode; }; +host_modules= { module= sed; }; +host_modules= { module= send-pr; }; +host_modules= { module= shellutils; }; +host_modules= { module= sid; }; +host_modules= { module= sim; }; +host_modules= { module= snavigator; }; +host_modules= { module= tar; }; +host_modules= { module= texinfo; no_install= true; }; +host_modules= { module= textutils; }; +host_modules= { module= time; }; +host_modules= { module= uudecode; }; +host_modules= { module= wdiff; }; +host_modules= { module= zip; no_check_cross=true; }; +host_modules= { module= zlib; no_install=true; no_check=true; }; + +target_modules = { module= libstdc++-v3; }; +target_modules = { module= newlib; }; +target_modules = { module= libf2c; }; +target_modules = { module= libobjc; }; +target_modules = { module= libtermcap; no_check=true; no_clean=true; }; +target_modules = { module= winsup; }; +target_modules = { module= libgloss; no_check=true; }; +target_modules = { module= libiberty; }; +target_modules = { module= gperf; }; +target_modules = { module= examples; no_check=true; no_install=true; }; +target_modules = { module= libffi; no_install=true; }; +target_modules = { module= libjava; }; +target_modules = { module= zlib; }; +target_modules = { module= boehm-gc; }; +target_modules = { module= qthreads; }; diff -uprN binutils-2.13.90.0.4/Makefile.in binutils-2.13.90.0.10/Makefile.in --- binutils-2.13.90.0.4/Makefile.in Wed Jul 17 11:38:29 2002 +++ binutils-2.13.90.0.10/Makefile.in Mon Oct 7 23:07:59 2002 @@ -1,3 +1,5 @@ + +# Makefile.in is generated from Makefile.tpl by 'autogen Makefile.def'. # # Makefile for directory with subdirs to build. # Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, @@ -24,29 +26,29 @@ NOTPARALLEL = .NOTPARALLEL $(NOTPARALLEL): -srcdir = . +srcdir = @srcdir@ -prefix = /usr/local -exec_prefix = $(prefix) +prefix = @prefix@ +exec_prefix = @exec_prefix@ -bindir=${exec_prefix}/bin -sbindir=${exec_prefix}/sbin -libexecdir=${exec_prefix}/libexec -datadir=${prefix}/share -sysconfdir=${prefix}/etc -sharedstatedir=${prefix}/com -localstatedir=${prefix}/var -libdir=${exec_prefix}/lib -includedir=${prefix}/include -oldincludedir=/usr/include -infodir=${prefix}/info -mandir=${prefix}/man -gxx_include_dir=${includedir}/g++ +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +includedir = @includedir@ +oldincludedir = @oldincludedir@ +infodir = @infodir@ +mandir = @mandir@ +gxx_include_dir=@gxx_include_dir@ -tooldir = $(exec_prefix)/$(target_alias) -build_tooldir = $(exec_prefix)/$(target_alias) +tooldir = @tooldir@ +build_tooldir = @build_tooldir@ -program_transform_name = +program_transform_name = @program_transform_name@ man1dir = $(mandir)/man1 man2dir = $(mandir)/man2 @@ -57,13 +59,11 @@ man6dir = $(mandir)/man6 man7dir = $(mandir)/man7 man8dir = $(mandir)/man8 man9dir = $(mandir)/man9 -infodir = $(prefix)/info -includedir = $(prefix)/include # Directory in which the compiler finds executables, libraries, etc. libsubdir = $(libdir)/gcc-lib/$(target_alias)/$(gcc_version) GDB_NLM_DEPS = -SHELL = /bin/sh +SHELL = @config_shell@ # pwd command to use. Allow user to override default by setting PWDCMD in # the environment to account for automounters. The make variable must not @@ -124,13 +124,10 @@ NM = nm LD = ld -BZIPPROG = bzip2 -MD5PROG = md5sum - # These values are substituted by configure. -DEFAULT_YACC = yacc -DEFAULT_LEX = lex -DEFAULT_M4 = m4 +DEFAULT_YACC = @DEFAULT_YACC@ +DEFAULT_LEX = @DEFAULT_LEX@ +DEFAULT_M4 = @DEFAULT_M4@ BISON = `if [ -f $$r/bison/bison ] ; then \ echo $$r/bison/bison -L $$s/bison/ ; \ @@ -181,35 +178,34 @@ RUNTEST = `if [ -f $$s/dejagnu/runtest ] CC_FOR_BUILD = $(CC) CXX_FOR_BUILD = $(CXX) -SUBDIRS = "this is set via configure, don't edit this" -OTHERS = +SUBDIRS = @configdirs@ # This is set by the configure script to the list of directories which # should be built using the target tools. -TARGET_CONFIGDIRS = libiberty libgloss $(SPECIAL_LIBS) newlib winsup opcodes libf2c libobjc +TARGET_CONFIGDIRS = @target_configdirs@ # Target libraries are put under this directory: # Changed by configure to $(target_alias) if cross. -TARGET_SUBDIR = . +TARGET_SUBDIR = @target_subdir@ BUILD_CONFIGDIRS = libiberty -BUILD_SUBDIR = . +BUILD_SUBDIR = @build_subdir@ # This is set by the configure script to the arguments to use when configuring # directories built for the target. -TARGET_CONFIGARGS = +TARGET_CONFIGARGS = @target_configargs@ # This is set by the configure script to the arguments to use when configuring # directories built for the build system. -BUILD_CONFIGARGS = +BUILD_CONFIGARGS = @build_configargs@ # This is set by configure to REALLY_SET_LIB_PATH if --enable-shared # was used. -SET_LIB_PATH = +SET_LIB_PATH = @SET_LIB_PATH@ # This is the name of the environment variable used for the path to # the libraries. This may be changed by configure.in. -RPATH_ENVVAR = LD_LIBRARY_PATH +RPATH_ENVVAR = @RPATH_ENVVAR@ # This is the list of directories that may be needed in RPATH_ENVVAR # so that programs built for the host machine work. @@ -241,17 +237,17 @@ INSTALL_TARGET_CROSS = installdirs \ $(INSTALL_DOSREL) # Should be substed by configure.in -FLAGS_FOR_TARGET = -CC_FOR_TARGET = -CXX_FOR_TARGET = -CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = -GCJ_FOR_TARGET = +FLAGS_FOR_TARGET = @FLAGS_FOR_TARGET@ +CC_FOR_TARGET = @CC_FOR_TARGET@ +CXX_FOR_TARGET = @CXX_FOR_TARGET@ +CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = @CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@ +GCJ_FOR_TARGET = @GCJ_FOR_TARGET@ # If GCC_FOR_TARGET is not overriden on the command line, then this # variable is passed down to the gcc Makefile, where it is used to # build libgcc2.a. We define it here so that it can itself be # overridden on the command line. -GCC_FOR_TARGET = $$r/gcc/xgcc -B$$r/gcc/ $(FLAGS_FOR_TARGET) +GCC_FOR_TARGET = $(STAGE_CC_WRAPPER) $$r/gcc/xgcc -B$$r/gcc/ $(FLAGS_FOR_TARGET) AS_FOR_TARGET = ` \ if [ -f $$r/gas/as-new ] ; then \ @@ -514,7 +510,7 @@ GCC_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS # macro for build!=host builds. ALL_BUILD_MODULES_LIST = \ all-build-libiberty -ALL_BUILD_MODULES = +ALL_BUILD_MODULES = @all_build_modules@ # This is a list of the configure targets for all of the modules which # are compiled using the native tools. @@ -529,6 +525,7 @@ ALL_MODULES = \ all-automake \ all-bash \ all-bfd \ + all-opcodes \ all-binutils \ all-bison \ all-byacc \ @@ -553,6 +550,7 @@ ALL_MODULES = \ all-hello \ all-indent \ all-intl \ + all-tcl \ all-itcl \ all-ld \ all-libgui \ @@ -561,7 +559,6 @@ ALL_MODULES = \ all-m4 \ all-make \ all-mmalloc \ - all-opcodes \ all-patch \ all-perl \ all-prms \ @@ -576,7 +573,6 @@ ALL_MODULES = \ all-sim \ all-snavigator \ all-tar \ - all-tcl \ all-texinfo \ all-textutils \ all-time \ @@ -605,6 +601,7 @@ CROSS_CHECK_MODULES = \ check-automake \ check-bash \ check-bfd \ + check-opcodes \ check-binutils \ check-bzip2 \ check-db \ @@ -624,6 +621,7 @@ CROSS_CHECK_MODULES = \ check-hello \ check-indent \ check-intl \ + check-tcl \ check-itcl \ check-ld \ check-libgui \ @@ -631,8 +629,6 @@ CROSS_CHECK_MODULES = \ check-libtool \ check-m4 \ check-make \ - check-mmcheckoc \ - check-opcodes \ check-patch \ check-perl \ check-prms \ @@ -642,11 +638,10 @@ CROSS_CHECK_MODULES = \ check-sed \ check-send-pr \ check-shellutils \ - check-snavigator \ check-sid \ check-sim \ + check-snavigator \ check-tar \ - check-tcl \ check-texinfo \ check-textutils \ check-time \ @@ -658,22 +653,17 @@ CHECK_MODULES=$(NATIVE_CHECK_MODULES) $( # This is a list of the install targets for all of the modules which are # compiled using $(FLAGS_TO_PASS). -# We put install-opcodes before install-binutils because the installed -# binutils might be on PATH, and they might need the shared opcodes -# library. -# We put install-tcl before install-itcl because itcl wants to run a -# program on installation which uses the Tcl libraries. INSTALL_MODULES = \ install-ash \ install-autoconf \ install-automake \ install-bash \ install-bfd \ - install-bzip2 \ install-opcodes \ install-binutils \ install-bison \ install-byacc \ + install-bzip2 \ install-db \ install-dejagnu \ install-diff \ @@ -770,7 +760,7 @@ ALL_TARGET_MODULES = \ all-target-libjava \ all-target-zlib \ all-target-boehm-gc \ - all-target-qthreads + all-target-qthreads # This is a list of the configure targets for all of the modules which # are compiled using the target tools. @@ -789,7 +779,7 @@ CONFIGURE_TARGET_MODULES = \ configure-target-libjava \ configure-target-zlib \ configure-target-boehm-gc \ - configure-target-qthreads + configure-target-qthreads # This is a list of the check targets for all of the modules which are # compiled using $(TARGET_FLAGS_TO_PASS). @@ -800,12 +790,12 @@ CHECK_TARGET_MODULES = \ check-target-libobjc \ check-target-winsup \ check-target-libiberty \ + check-target-gperf \ check-target-libffi \ check-target-libjava \ check-target-zlib \ check-target-boehm-gc \ - check-target-qthreads \ - check-target-gperf + check-target-qthreads # This is a list of the install targets for all of the modules which are # compiled using $(TARGET_FLAGS_TO_PASS). @@ -818,11 +808,11 @@ INSTALL_TARGET_MODULES = \ install-target-winsup \ install-target-libgloss \ install-target-libiberty \ + install-target-gperf \ install-target-libjava \ install-target-zlib \ install-target-boehm-gc \ - install-target-qthreads \ - install-target-gperf + install-target-qthreads # This is a list of the targets for which we can do a clean-{target}. CLEAN_MODULES = \ @@ -831,6 +821,7 @@ CLEAN_MODULES = \ clean-automake \ clean-bash \ clean-bfd \ + clean-opcodes \ clean-binutils \ clean-bison \ clean-byacc \ @@ -855,6 +846,7 @@ CLEAN_MODULES = \ clean-hello \ clean-indent \ clean-intl \ + clean-tcl \ clean-itcl \ clean-ld \ clean-libgui \ @@ -863,7 +855,6 @@ CLEAN_MODULES = \ clean-m4 \ clean-make \ clean-mmalloc \ - clean-opcodes \ clean-patch \ clean-perl \ clean-prms \ @@ -878,14 +869,13 @@ CLEAN_MODULES = \ clean-sim \ clean-snavigator \ clean-tar \ - clean-tcl \ clean-texinfo \ clean-textutils \ clean-time \ clean-uudecode \ clean-wdiff \ clean-zip \ - clean-zlib + clean-zlib # All of the target modules that can be cleaned CLEAN_TARGET_MODULES = \ @@ -902,7 +892,7 @@ CLEAN_TARGET_MODULES = \ clean-target-libjava \ clean-target-zlib \ clean-target-boehm-gc \ - clean-target-qthreads + clean-target-qthreads # All of the x11 modules that can be cleaned CLEAN_X11_MODULES = \ @@ -1263,12 +1253,8 @@ $(CONFIGURE_BUILD_MODULES): # 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. -# -# all-gui, and all-libproc are handled specially because -# they are still experimental, and if they fail to build, that -# shouldn't stop "make all". -.PHONY: $(ALL_MODULES) all-gui all-libproc -$(ALL_MODULES) all-gui all-libproc: +.PHONY: $(ALL_MODULES) +$(ALL_MODULES): @dir=`echo $@ | sed -e 's/all-//'`; \ if [ -f ./$${dir}/Makefile ] ; then \ r=`${PWD}`; export r; \ @@ -1658,7 +1644,6 @@ all-bfd: all-libiberty all-intl all-binutils: all-libiberty all-opcodes all-bfd all-flex all-bison all-byacc all-intl all-bison: all-texinfo configure-target-boehm-gc: $(ALL_GCC_C) configure-target-qthreads -all-target-boehm-gc: configure-target-boehm-gc all-byacc: all-bzip2: all-db: @@ -1666,7 +1651,6 @@ all-dejagnu: all-tcl all-expect all-tk all-diff: all-libiberty all-etc: configure-target-examples: $(ALL_GCC_C) -all-target-examples: configure-target-examples all-expect: all-tcl all-tk all-fileutils: all-libiberty all-findutils: @@ -1676,15 +1660,14 @@ all-gas: all-libiberty all-opcodes all-b all-gawk: all-gcc: all-bison all-byacc all-binutils all-gas all-ld all-zlib all-bootstrap: all-libiberty all-texinfo all-bison all-byacc all-binutils all-gas all-ld all-zlib -GDB_TK = all-tk all-tcl all-itcl all-tix all-libgui +GDB_TK = @GDB_TK@ 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_CXX) -all-target-gperf: configure-target-gperf all-target-libiberty all-target-libstdc++-v3 +all-target-gperf: all-target-libiberty all-target-libstdc++-v3 all-gprof: all-libiberty all-bfd all-opcodes all-intl all-grep: all-libiberty -all-gui: all-gdb all-libproc all-guile: all-gzip: all-libiberty all-hello: all-libiberty @@ -1693,36 +1676,32 @@ all-intl: all-itcl: all-tcl all-tk all-ld: all-libiberty all-bfd all-opcodes all-bison all-byacc all-flex all-intl configure-target-libgloss: $(ALL_GCC) -all-target-libgloss: configure-target-libgloss configure-target-newlib +all-target-libgloss: configure-target-newlib all-libgui: all-tcl all-tk 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_C) configure-target-zlib configure-target-boehm-gc configure-target-qthreads configure-target-libffi -all-target-libjava: configure-target-libjava all-fastjar all-target-zlib all-target-boehm-gc all-target-qthreads all-target-libffi +all-target-libjava: all-fastjar all-target-zlib all-target-boehm-gc all-target-qthreads all-target-libffi configure-target-libstdc++-v3: $(ALL_GCC_C) -all-target-libstdc++-v3: configure-target-libstdc++-v3 all-target-libiberty +all-target-libstdc++-v3: all-target-libiberty all-libtool: configure-target-libf2c: $(ALL_GCC_C) -all-target-libf2c: configure-target-libf2c all-target-libiberty +all-target-libf2c: all-target-libiberty configure-target-libobjc: $(ALL_GCC_C) -all-target-libobjc: configure-target-libobjc all-target-libiberty +all-target-libobjc: all-target-libiberty all-m4: all-libiberty all-texinfo all-make: all-libiberty all-mmalloc: configure-target-newlib: $(ALL_GCC) -all-target-newlib: configure-target-newlib configure-target-libtermcap: $(ALL_GCC_C) -all-target-libtermcap: configure-target-libtermcap all-opcodes: all-bfd all-libiberty all-patch: all-libiberty all-perl: all-prms: all-libiberty configure-target-qthreads: $(ALL_GCC_C) -all-target-qthreads: configure-target-qthreads all-rcs: all-readline: all-recode: all-libiberty @@ -1742,21 +1721,49 @@ all-time: all-tix: all-tcl all-tk all-wdiff: configure-target-winsup: $(ALL_GCC_C) -all-target-winsup: all-target-libiberty all-target-libtermcap configure-target-winsup +all-target-winsup: all-target-libiberty all-target-libtermcap all-uudecode: all-libiberty all-zip: all-zlib: configure-target-zlib: $(ALL_GCC_C) -all-target-zlib: configure-target-zlib all-fastjar: all-zlib all-libiberty configure-target-fastjar: configure-target-zlib all-target-fastjar: configure-target-fastjar all-target-zlib all-target-libiberty configure-target-libiberty: $(ALL_GCC_C) -all-target-libiberty: configure-target-libiberty +configure-target: $(CONFIGURE_TARGET_MODULES) all-target: $(ALL_TARGET_MODULES) install-target: $(INSTALL_TARGET_MODULES) install-gdb: install-tcl install-tk install-itcl install-tix install-libgui install-sid: install-tcl install-tk + +# We put install-opcodes before install-binutils because the installed +# binutils might be on PATH, and they might need the shared opcodes +# library. +install-binutils: install-opcodes + +# We put install-tcl before install-itcl because itcl wants to run a +# program on installation which uses the Tcl libraries. +install-itcl: install-tcl + + +# Dependencies of all-target-foo on configure-target-foo. +all-target-libstdc++-v3: configure-target-libstdc++-v3 +all-target-newlib: configure-target-newlib +all-target-libf2c: configure-target-libf2c +all-target-libobjc: configure-target-libobjc +all-target-libtermcap: configure-target-libtermcap +all-target-winsup: configure-target-winsup +all-target-libgloss: configure-target-libgloss +all-target-libiberty: configure-target-libiberty +all-target-gperf: configure-target-gperf +all-target-examples: configure-target-examples +all-target-libffi: configure-target-libffi +all-target-libjava: configure-target-libjava +all-target-zlib: configure-target-zlib +all-target-boehm-gc: configure-target-boehm-gc +all-target-qthreads: configure-target-qthreads + + ### other supporting targets MAKEDIRS= \ @@ -1787,296 +1794,16 @@ etags tags: TAGS # built are. TAGS: do-TAGS +# Rebuilding Makefile.in, using autogen. +$(srcdir)/Makefile.in: # $(srcdir)/Makefile.tpl $(srcdir)/Makefile.def + cd $(srcdir) && autogen Makefile.def + # with the gnu make, this is done automatically. Makefile: Makefile.in configure.in $(host_makefile_frag) $(target_makefile_frag) $(gcc_version_trigger) $(SHELL) ./config.status # -# Support for building net releases - -# Files in devo used in any net release. -# ChangeLog omitted because it may refer to files which are not in this -# distribution (perhaps it would be better to include it anyway). -DEVO_SUPPORT= README Makefile.in configure configure.in \ - config.guess config.if config.sub config move-if-change \ - mpw-README mpw-build.in mpw-config.in mpw-configure mpw-install \ - COPYING COPYING.LIB install-sh config-ml.in symlink-tree \ - mkinstalldirs ltconfig ltmain.sh missing ylwrap \ - libtool.m4 gettext.m4 ltcf-c.sh ltcf-cxx.sh ltcf-gcj.sh - -# Files in devo/etc used in any net release. -# ChangeLog omitted because it may refer to files which are not in this -# distribution (perhaps it would be better to include it anyway). -ETC_SUPPORT= Makefile.in configure configure.in standards.texi \ - make-stds.texi standards.info* configure.texi configure.info* \ - configbuild.* configdev.* - - -# When you use `make setup-dirs' or `make taz' you should always redefine -# this macro. -SUPPORT_FILES = list-of-support-files-for-tool-in-question - -# NOTE: No double quotes in the below. It is used within shell script -# as VER="$(VER)" -VER = ` if grep 'AM_INIT_AUTOMAKE.*BFD_VERSION' $(TOOL)/configure.in >/dev/null 2>&1; then \ - sed < bfd/configure.in -n 's/AM_INIT_AUTOMAKE[^,]*, *\([^)]*\))/\1/p'; \ - elif grep AM_INIT_AUTOMAKE $(TOOL)/configure.in >/dev/null 2>&1; then \ - sed < $(TOOL)/configure.in -n 's/AM_INIT_AUTOMAKE[^,]*, *\([^)]*\))/\1/p'; \ - elif test -f $(TOOL)/version.in; then \ - head -1 $(TOOL)/version.in; \ - elif grep VERSION $(TOOL)/Makefile.in > /dev/null 2>&1; then \ - sed < $(TOOL)/Makefile.in -n 's/^VERSION *= *//p'; \ - else \ - echo VERSION; \ - fi` -PACKAGE = $(TOOL) - -.PHONY: taz -taz: $(DEVO_SUPPORT) $(SUPPORT_FILES) texinfo/texinfo.tex - $(MAKE) -f Makefile.in do-proto-toplev \ - TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \ - MD5PROG="$(MD5PROG)" \ - SUPPORT_FILES="$(SUPPORT_FILES)" - $(MAKE) -f Makefile.in do-md5sum \ - TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \ - MD5PROG="$(MD5PROG)" \ - SUPPORT_FILES="$(SUPPORT_FILES)" - $(MAKE) -f Makefile.in do-tar \ - TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \ - MD5PROG="$(MD5PROG)" \ - SUPPORT_FILES="$(SUPPORT_FILES)" - $(MAKE) -f Makefile.in do-bz2 \ - TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \ - MD5PROG="$(MD5PROG)" \ - SUPPORT_FILES="$(SUPPORT_FILES)" - -.PHONY: gdb-tar -gdb-tar: $(DEVO_SUPPORT) $(SUPPORT_FILES) texinfo/texinfo.tex - $(MAKE) -f Makefile.in do-proto-toplev \ - TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \ - MD5PROG="$(MD5PROG)" \ - SUPPORT_FILES="$(SUPPORT_FILES)" - $(MAKE) -f Makefile.in do-md5sum \ - TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \ - MD5PROG="$(MD5PROG)" \ - SUPPORT_FILES="$(SUPPORT_FILES)" - $(MAKE) -f Makefile.in do-djunpack \ - TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \ - MD5PROG="$(MD5PROG)" \ - SUPPORT_FILES="$(SUPPORT_FILES)" - $(MAKE) -f Makefile.in do-tar \ - TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \ - MD5PROG="$(MD5PROG)" \ - SUPPORT_FILES="$(SUPPORT_FILES)" - -.PHONY: gdb-taz -gdb-taz: gdb-tar $(DEVO_SUPPORT) $(SUPPORT_FILES) texinfo/texinfo.tex - $(MAKE) -f Makefile.in gdb-tar \ - TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \ - MD5PROG="$(MD5PROG)" \ - SUPPORT_FILES="$(SUPPORT_FILES)" - $(MAKE) -f Makefile.in do-bz2 \ - TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \ - MD5PROG="$(MD5PROG)" \ - SUPPORT_FILES="$(SUPPORT_FILES)" - -.PHONY: do-proto-toplev -do-proto-toplev: $(DEVO_SUPPORT) $(SUPPORT_FILES) texinfo/texinfo.tex - echo "==> Making $(PACKAGE)-$(VER)/" - # Take out texinfo from a few places. - sed -e '/^all\.normal: /s/\all-texinfo //' \ - -e '/^ install-texinfo /d' \ - tmp - mv -f tmp Makefile.in - # - ./configure sun4 - [ -z "$(CONFIGURE_TARGET_MODULES)" ] \ - || $(MAKE) $(CONFIGURE_TARGET_MODULES) \ - ALL_GCC="" ALL_GCC_C="" ALL_GCC_CXX="" \ - CC_FOR_TARGET="$(CC)" CXX_FOR_TARGET="$(CXX)" - # Make links, and run "make diststuff" or "make info" when needed. - rm -rf proto-toplev ; mkdir proto-toplev - set -e ; dirs="$(TOOL) $(DEVO_SUPPORT) $(SUPPORT_FILES)" ; \ - for d in $$dirs ; do \ - if [ -d $$d ]; then \ - if [ ! -f $$d/Makefile ] ; then true ; \ - elif grep '^diststuff:' $$d/Makefile >/dev/null ; then \ - (cd $$d ; $(MAKE) diststuff ) || exit 1 ; \ - elif grep '^info:' $$d/Makefile >/dev/null ; then \ - (cd $$d ; $(MAKE) info ) || exit 1 ; \ - fi ; \ - if [ -d $$d/proto-$$d.dir ]; then \ - ln -s ../$$d/proto-$$d.dir proto-toplev/$$d ; \ - else \ - ln -s ../$$d proto-toplev/$$d ; \ - fi ; \ - else ln -s ../$$d proto-toplev/$$d ; fi ; \ - done - cd etc && $(MAKE) info - $(MAKE) distclean - # - mkdir proto-toplev/etc - (cd proto-toplev/etc; \ - for i in $(ETC_SUPPORT); do \ - ln -s ../../etc/$$i . ; \ - done) - # - # Take out texinfo from configurable dirs - rm proto-toplev/configure.in - sed -e '/^host_tools=/s/texinfo //' \ - proto-toplev/configure.in - # - mkdir proto-toplev/texinfo - ln -s ../../texinfo/texinfo.tex proto-toplev/texinfo/ - if test -r texinfo/util/tex3patch ; then \ - mkdir proto-toplev/texinfo/util && \ - ln -s ../../../texinfo/util/tex3patch proto-toplev/texinfo/util ; \ - 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) - -.PHONY: do-tar -do-tar: - echo "==> Making $(PACKAGE)-$(VER).tar" - -rm -f $(PACKAGE)-$(VER).tar - find $(PACKAGE)-$(VER) -follow -name CVS -prune -o -type f -print \ - | tar cTfh - $(PACKAGE)-$(VER).tar - -.PHONY: do-bz2 -do-bz2: - echo "==> Bzipping $(PACKAGE)-$(VER).tar.bz2" - -rm -f $(PACKAGE)-$(VER).tar.bz2 - $(BZIPPROG) -v -9 $(PACKAGE)-$(VER).tar - -.PHONY: do-md5sum -do-md5sum: - echo "==> Adding md5 checksum to top-level directory" - cd proto-toplev && find * -follow -name CVS -prune -o -type f -print \ - | xargs $(MD5PROG) > ../md5.sum - mv md5.sum proto-toplev - -.PHONY: do-djunpack -do-djunpack: - echo "==> Adding updated djunpack.bat to top-level directory" - echo - 's /gdb-[0-9\.]*/gdb-'"$(VER)"'/' - sed < djunpack.bat > djunpack.new \ - -e 's/gdb-[0-9][0-9\.]*/gdb-'"$(VER)"'/' - mv djunpack.new djunpack.bat - -rm -f proto-toplev/djunpack.bat - ln -s ../djunpack.bat proto-toplev/djunpack.bat - -TEXINFO_SUPPORT= texinfo/texinfo.tex -DIST_SUPPORT= $(DEVO_SUPPORT) $(TEXINFO_SUPPORT) - -.PHONY: gas.tar.bz2 -GAS_SUPPORT_DIRS= bfd include libiberty opcodes intl setup.com makefile.vms mkdep -gas.tar.bz2: $(DIST_SUPPORT) $(GAS_SUPPORT_DIRS) gas - $(MAKE) -f Makefile.in taz TOOL=gas \ - MD5PROG="$(MD5PROG)" \ - SUPPORT_FILES="$(GAS_SUPPORT_DIRS)" - -# The FSF "binutils" release includes gprof and ld. -.PHONY: binutils.tar.bz2 -BINUTILS_SUPPORT_DIRS= bfd gas include libiberty opcodes ld gprof intl setup.com makefile.vms mkdep -binutils.tar.bz2: $(DIST_SUPPORT) $(BINUTILS_SUPPORT_DIRS) binutils - $(MAKE) -f Makefile.in taz TOOL=binutils \ - MD5PROG="$(MD5PROG)" \ - SUPPORT_FILES="$(BINUTILS_SUPPORT_DIRS)" - -.PHONY: gas+binutils.tar.bz2 -GASB_SUPPORT_DIRS= $(GAS_SUPPORT_DIRS) binutils ld gprof -gas+binutils.tar.bz2: $(DIST_SUPPORT) $(GASB_SUPPORT_DIRS) gas - $(MAKE) -f Makefile.in taz TOOL=gas \ - MD5PROG="$(MD5PROG)" \ - SUPPORT_FILES="$(GASB_SUPPORT_DIRS)" - -GNATS_SUPPORT_DIRS=include libiberty send-pr -gnats.tar.bz2: $(DIST_SUPPORT) $(GNATS_SUPPORT_DIRS) gnats - $(MAKE) -f Makefile.in taz TOOL=gnats \ - MD5PROG="$(MD5PROG)" \ - SUPPORT_FILES="$(GNATS_SUPPORT_DIRS)" - -.PHONY: gdb.tar.bz2 -GDB_SUPPORT_DIRS= bfd include libiberty mmalloc opcodes readline sim utils intl -gdb.tar.bz2: $(DIST_SUPPORT) $(GDB_SUPPORT_DIRS) gdb - $(MAKE) -f Makefile.in gdb-taz TOOL=gdb \ - MD5PROG="$(MD5PROG)" \ - SUPPORT_FILES="$(GDB_SUPPORT_DIRS)" -.PHONY: gdb.tar -gdb.tar: $(DIST_SUPPORT) $(GDB_SUPPORT_DIRS) gdb - $(MAKE) -f Makefile.in gdb-tar TOOL=gdb \ - MD5PROG="$(MD5PROG)" \ - SUPPORT_FILES="$(GDB_SUPPORT_DIRS)" - -DEJAGNU_SUPPORT_DIRS= tcl expect libiberty -.PHONY: dejagnu.tar.bz2 -dejagnu.tar.bz2: $(DIST_SUPPORT) $(DEJAGNU_SUPPORT_DIRS) dejagnu - $(MAKE) -f Makefile.in taz TOOL=dejagnu \ - MD5PROG="$(MD5PROG)" \ - SUPPORT_FILES="$(DEJAGNU_SUPPORT_DIRS)" - -.PHONY: gdb+dejagnu.tar.bz2 -GDBD_SUPPORT_DIRS= $(GDB_SUPPORT_DIRS) tcl expect dejagnu -gdb+dejagnu.tar.bz2: $(DIST_SUPPORT) $(GDBD_SUPPORT_DIRS) gdb - $(MAKE) -f Makefile.in gdb-taz TOOL=gdb PACKAGE=gdb+dejagnu \ - MD5PROG="$(MD5PROG)" \ - SUPPORT_FILES="$(GDBD_SUPPORT_DIRS)" -.PHONY: gdb+dejagnu.tar -gdb+dejagnu.tar: $(DIST_SUPPORT) $(GDBD_SUPPORT_DIRS) gdb - $(MAKE) -f Makefile.in gdb-tar TOOL=gdb PACKAGE=gdb+dejagnu \ - MD5PROG="$(MD5PROG)" \ - SUPPORT_FILES="$(GDBD_SUPPORT_DIRS)" - -.PHONY: insight.tar.bz2 -INSIGHT_SUPPORT_DIRS= $(GDB_SUPPORT_DIRS) tcl tk itcl tix libgui -insight.tar.bz2: $(DIST_SUPPORT) $(GDB_SUPPORT_DIRS) gdb - $(MAKE) -f Makefile.in gdb-taz TOOL=gdb PACKAGE=insight \ - MD5PROG="$(MD5PROG)" \ - SUPPORT_FILES="$(INSIGHT_SUPPORT_DIRS)" -.PHONY: insight.tar -insight.tar: $(DIST_SUPPORT) $(GDB_SUPPORT_DIRS) gdb - $(MAKE) -f Makefile.in gdb-tar TOOL=gdb PACKAGE=insight \ - MD5PROG="$(MD5PROG)" \ - SUPPORT_FILES="$(INSIGHT_SUPPORT_DIRS)" - -.PHONY: insight+dejagnu.tar.bz2 -INSIGHTD_SUPPORT_DIRS= $(INSIGHT_SUPPORT_DIRS) expect dejagnu -insight+dejagnu.tar.bz2: $(DIST_SUPPORT) $(INSIGHTD_SUPPORT_DIRS) gdb - $(MAKE) -f Makefile.in gdb-taz TOOL=gdb PACKAGE="insight+dejagnu" \ - MD5PROG="$(MD5PROG)" \ - SUPPORT_FILES="$(INSIGHTD_SUPPORT_DIRS)" -.PHONY: insight+dejagnu.tar -insight+dejagnu.tar: $(DIST_SUPPORT) $(INSIGHTD_SUPPORT_DIRS) gdb - $(MAKE) -f Makefile.in gdb-tar TOOL=gdb PACKAGE="insight+dejagnu" \ - MD5PROG="$(MD5PROG)" \ - SUPPORT_FILES="$(INSIGHTD_SUPPORT_DIRS)" - -.PHONY: newlib.tar.bz2 -NEWLIB_SUPPORT_DIRS=libgloss -# taz configures for the sun4 target which won't configure newlib. -# We need newlib configured so that the .info files are made. -# Unfortunately, it is not enough to just configure newlib separately: -# taz will build the .info files but since SUBDIRS won't contain newlib, -# distclean won't be run (leaving Makefile, config.status, and the tmp files -# used in building the .info files, eg: *.def, *.ref). -# The problem isn't solvable however without a lot of extra work because -# target libraries are built in subdir $(target_alias) which gets nuked during -# the make distclean. For now punt on the issue of shipping newlib info files -# with newlib net releases and wait for a day when some native target (sun4?) -# supports newlib (if only minimally). -newlib.tar.bz2: $(DIST_SUPPORT) $(NEWLIB_SUPPORT_DIRS) newlib - $(MAKE) -f Makefile.in taz TOOL=newlib \ - MD5PROG="$(MD5PROG)" \ - SUPPORT_FILES="$(NEWLIB_SUPPORT_DIRS)" \ - DEVO_SUPPORT="$(DEVO_SUPPORT) COPYING.NEWLIB" newlib .NOEXPORT: MAKEOVERRIDES= diff -uprN binutils-2.13.90.0.4/Makefile.tpl binutils-2.13.90.0.10/Makefile.tpl --- binutils-2.13.90.0.4/Makefile.tpl Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/Makefile.tpl Mon Oct 7 23:07:59 2002 @@ -0,0 +1,1512 @@ +[+ AutoGen5 template +in ++] + +# Makefile.in is generated from Makefile.tpl by 'autogen Makefile.def'. +# +# Makefile for directory with subdirs to build. +# Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, +# 1999, 2000, 2001, 2002 Free Software Foundation +# +# 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 +# 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. +# + +# Tell GNU make 3.79 not to run the top level in parallel. This +# prevents contention for $builddir/$target/config.cache, as well +# as minimizing scatter in file system caches. +NOTPARALLEL = .NOTPARALLEL +$(NOTPARALLEL): + +srcdir = @srcdir@ + +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +includedir = @includedir@ +oldincludedir = @oldincludedir@ +infodir = @infodir@ +mandir = @mandir@ +gxx_include_dir=@gxx_include_dir@ + +tooldir = @tooldir@ +build_tooldir = @build_tooldir@ + +program_transform_name = @program_transform_name@ + +man1dir = $(mandir)/man1 +man2dir = $(mandir)/man2 +man3dir = $(mandir)/man3 +man4dir = $(mandir)/man4 +man5dir = $(mandir)/man5 +man6dir = $(mandir)/man6 +man7dir = $(mandir)/man7 +man8dir = $(mandir)/man8 +man9dir = $(mandir)/man9 +# Directory in which the compiler finds executables, libraries, etc. +libsubdir = $(libdir)/gcc-lib/$(target_alias)/$(gcc_version) +GDB_NLM_DEPS = + +SHELL = @config_shell@ + +# pwd command to use. Allow user to override default by setting PWDCMD in +# the environment to account for automounters. The make variable must not +# be called PWDCMD, otherwise the value set here is passed to make +# subprocesses and overrides the setting from the user's environment. +PWD = $${PWDCMD-pwd} + +# INSTALL_PROGRAM_ARGS is changed by configure.in to use -x for a +# cygwin host. +INSTALL_PROGRAM_ARGS = + +INSTALL = $(SHELL) $$s/install-sh -c +INSTALL_PROGRAM = $(INSTALL) $(INSTALL_PROGRAM_ARGS) +INSTALL_SCRIPT = $(INSTALL) +INSTALL_DATA = $(INSTALL) -m 644 + +INSTALL_DOSREL = install-dosrel-fake + +AS = as +AR = ar +AR_FLAGS = rc +CC = cc + +# Special variables passed down in EXTRA_GCC_FLAGS. They are defined +# here so that they can be overridden by Makefile fragments. +HOST_CC = $(CC_FOR_BUILD) +BUILD_PREFIX = +BUILD_PREFIX_1 = loser- + +# These flag values are normally overridden by the configure script. +CFLAGS = -g +CXXFLAGS = -g -O2 + +LDFLAGS = +LIBCFLAGS = $(CFLAGS) +CFLAGS_FOR_BUILD = $(CFLAGS) +# During gcc bootstrap, if we use some random cc for stage1 then +# CFLAGS will be just -g. We want to ensure that TARGET libraries +# (which we know are built with gcc) are built with optimizations so +# prepend -O2 when setting CFLAGS_FOR_TARGET. +CFLAGS_FOR_TARGET = -O2 $(CFLAGS) +LDFLAGS_FOR_TARGET = +LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET) +PICFLAG = +PICFLAG_FOR_TARGET = + +CXX = c++ + +# Use -O2 to stress test the compiler. +LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates +CXXFLAGS_FOR_TARGET = $(CXXFLAGS) +LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates + +DLLTOOL = dlltool +WINDRES = windres + +NM = nm + +LD = ld + +# These values are substituted by configure. +DEFAULT_YACC = @DEFAULT_YACC@ +DEFAULT_LEX = @DEFAULT_LEX@ +DEFAULT_M4 = @DEFAULT_M4@ + +BISON = `if [ -f $$r/bison/bison ] ; then \ + echo $$r/bison/bison -L $$s/bison/ ; \ + else \ + echo bison ; \ + fi` + +YACC = `if [ -f $$r/bison/bison ] ; then \ + echo $$r/bison/bison -y -L $$s/bison/ ; \ + elif [ -f $$r/byacc/byacc ] ; then \ + echo $$r/byacc/byacc ; \ + else \ + echo ${DEFAULT_YACC} ; \ + fi` + +LEX = `if [ -f $$r/flex/flex ] ; \ + then echo $$r/flex/flex ; \ + else echo ${DEFAULT_LEX} ; fi` + +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/makeinfo ] ; \ + then echo $$r/texinfo/makeinfo/makeinfo ; \ + 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 +# using the makeinfo from the object tree. +MAKEINFOFLAGS = + +EXPECT = `if [ -f $$r/expect/expect ] ; \ + then echo $$r/expect/expect ; \ + else echo expect ; fi` + +RUNTEST = `if [ -f $$s/dejagnu/runtest ] ; \ + then echo $$s/dejagnu/runtest ; \ + else echo runtest ; fi` + + +# compilers to use to create programs which must be run in the build +# environment. +CC_FOR_BUILD = $(CC) +CXX_FOR_BUILD = $(CXX) + +SUBDIRS = @configdirs@ + +# This is set by the configure script to the list of directories which +# should be built using the target tools. +TARGET_CONFIGDIRS = @target_configdirs@ + +# Target libraries are put under this directory: +# Changed by configure to $(target_alias) if cross. +TARGET_SUBDIR = @target_subdir@ + +BUILD_CONFIGDIRS = libiberty +BUILD_SUBDIR = @build_subdir@ + +# This is set by the configure script to the arguments to use when configuring +# directories built for the target. +TARGET_CONFIGARGS = @target_configargs@ + +# This is set by the configure script to the arguments to use when configuring +# directories built for the build system. +BUILD_CONFIGARGS = @build_configargs@ + +# This is set by configure to REALLY_SET_LIB_PATH if --enable-shared +# was used. +SET_LIB_PATH = @SET_LIB_PATH@ + +# This is the name of the environment variable used for the path to +# the libraries. This may be changed by configure.in. +RPATH_ENVVAR = @RPATH_ENVVAR@ + +# This is the list of directories that may be needed in RPATH_ENVVAR +# so that programs built for the host machine work. +HOST_LIB_PATH = $$r/bfd:$$r/opcodes + +# This is the list of directories that may be needed in RPATH_ENVVAR +# so that prorgams built for the target machine work. +TARGET_LIB_PATH = $$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs: + +# configure.in sets SET_LIB_PATH to this if --enable-shared was used. +# Some platforms don't like blank entries, so we remove duplicate, +# leading and trailing colons. +REALLY_SET_LIB_PATH = \ + $(RPATH_ENVVAR)=`echo "$(HOST_LIB_PATH):$(TARGET_LIB_PATH):$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR); + +ALL = all.normal +INSTALL_TARGET = installdirs \ + install-gcc \ + $(INSTALL_MODULES) \ + $(INSTALL_TARGET_MODULES) \ + $(INSTALL_X11_MODULES) \ + $(INSTALL_DOSREL) + +INSTALL_TARGET_CROSS = installdirs \ + install-gcc-cross \ + $(INSTALL_MODULES) \ + $(INSTALL_TARGET_MODULES) \ + $(INSTALL_X11_MODULES) \ + $(INSTALL_DOSREL) + +# Should be substed by configure.in +FLAGS_FOR_TARGET = @FLAGS_FOR_TARGET@ +CC_FOR_TARGET = @CC_FOR_TARGET@ +CXX_FOR_TARGET = @CXX_FOR_TARGET@ +CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = @CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@ +GCJ_FOR_TARGET = @GCJ_FOR_TARGET@ + +# If GCC_FOR_TARGET is not overriden on the command line, then this +# variable is passed down to the gcc Makefile, where it is used to +# build libgcc2.a. We define it here so that it can itself be +# overridden on the command line. +GCC_FOR_TARGET = $(STAGE_CC_WRAPPER) $$r/gcc/xgcc -B$$r/gcc/ $(FLAGS_FOR_TARGET) + +AS_FOR_TARGET = ` \ + if [ -f $$r/gas/as-new ] ; then \ + echo $$r/gas/as-new ; \ + elif [ -f $$r/gcc/xgcc ]; then \ + $(CC_FOR_TARGET) -print-prog-name=as ; \ + else \ + if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ + echo $(AS); \ + else \ + t='$(program_transform_name)'; echo as | sed -e 's/x/x/' $$t ; \ + fi; \ + fi` + +LD_FOR_TARGET = ` \ + if [ -f $$r/ld/ld-new ] ; then \ + echo $$r/ld/ld-new ; \ + elif [ -f $$r/gcc/xgcc ]; then \ + $(CC_FOR_TARGET) -print-prog-name=ld ; \ + else \ + if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ + echo $(LD); \ + else \ + t='$(program_transform_name)'; echo ld | sed -e 's/x/x/' $$t ; \ + fi; \ + fi` + +DLLTOOL_FOR_TARGET = ` \ + if [ -f $$r/binutils/dlltool ] ; then \ + echo $$r/binutils/dlltool ; \ + else \ + if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ + echo $(DLLTOOL); \ + else \ + t='$(program_transform_name)'; echo dlltool | sed -e 's/x/x/' $$t ; \ + fi; \ + fi` + +WINDRES_FOR_TARGET = ` \ + if [ -f $$r/binutils/windres ] ; then \ + echo $$r/binutils/windres ; \ + else \ + if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ + echo $(WINDRES); \ + else \ + t='$(program_transform_name)'; echo windres | sed -e 's/x/x/' $$t ; \ + fi; \ + fi` + +AR_FOR_TARGET = ` \ + if [ -f $$r/binutils/ar ] ; then \ + echo $$r/binutils/ar ; \ + else \ + if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ + echo $(AR); \ + else \ + t='$(program_transform_name)'; echo ar | sed -e 's/x/x/' $$t ; \ + fi; \ + fi` + +RANLIB_FOR_TARGET = ` \ + if [ -f $$r/binutils/ranlib ] ; then \ + echo $$r/binutils/ranlib ; \ + else \ + 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; \ + fi` + +NM_FOR_TARGET = ` \ + if [ -f $$r/binutils/nm-new ] ; then \ + echo $$r/binutils/nm-new ; \ + elif [ -f $$r/gcc/xgcc ]; then \ + $(CC_FOR_TARGET) -print-prog-name=nm ; \ + else \ + if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ + echo $(NM); \ + else \ + t='$(program_transform_name)'; echo nm | sed -e 's/x/x/' $$t ; \ + fi; \ + fi` + +# The first rule in the file had better be this one. Don't put any above it. +# This lives here to allow makefile fragments to contain dependencies. +all: all.normal +.PHONY: all + +# These can be overridden by config/mt-*. +# The _TARGET_ is because they're specified in mt-foo. +# The _HOST_ is because they're programs that run on the host. +EXTRA_TARGET_HOST_ALL_MODULES = +EXTRA_TARGET_HOST_INSTALL_MODULES = +EXTRA_TARGET_HOST_CHECK_MODULES = + +#### host and target specific makefile fragments come in here. +### + +# Flags to pass down to all sub-makes. +# Please keep these in alphabetical order. +BASE_FLAGS_TO_PASS = \ + "AR_FLAGS=$(AR_FLAGS)" \ + "AR_FOR_TARGET=$(AR_FOR_TARGET)" \ + "AS_FOR_TARGET=$(AS_FOR_TARGET)" \ + "BISON=$(BISON)" \ + "CC_FOR_BUILD=$(CC_FOR_BUILD)" \ + "CC_FOR_TARGET=$(CC_FOR_TARGET)" \ + "CFLAGS=$(CFLAGS)" \ + "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \ + "GCJ_FOR_TARGET=$(GCJ_FOR_TARGET)" \ + "CXX_FOR_BUILD=$(CXX_FOR_BUILD)" \ + "CXXFLAGS=$(CXXFLAGS)" \ + "CXXFLAGS_FOR_TARGET=$(CXXFLAGS_FOR_TARGET)" \ + "CXX_FOR_TARGET=$(CXX_FOR_TARGET)" \ + "DLLTOOL_FOR_TARGET=$(DLLTOOL_FOR_TARGET)" \ + "INSTALL=$(INSTALL)" \ + "INSTALL_DATA=$(INSTALL_DATA)" \ + "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \ + "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \ + "LDFLAGS=$(LDFLAGS)" \ + "LEX=$(LEX)" \ + "LD_FOR_TARGET=$(LD_FOR_TARGET)" \ + "LIBCFLAGS=$(LIBCFLAGS)" \ + "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \ + "LIBCXXFLAGS=$(LIBCXXFLAGS)" \ + "LIBCXXFLAGS_FOR_TARGET=$(LIBCXXFLAGS_FOR_TARGET)" \ + "M4=$(M4)" \ + "MAKE=$(MAKE)" \ + "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \ + "NM_FOR_TARGET=$(NM_FOR_TARGET)" \ + "RANLIB_FOR_TARGET=$(RANLIB_FOR_TARGET)" \ + "RPATH_ENVVAR=$(RPATH_ENVVAR)" \ + "SHELL=$(SHELL)" \ + "EXPECT=$(EXPECT)" \ + "RUNTEST=$(RUNTEST)" \ + "RUNTESTFLAGS=$(RUNTESTFLAGS)" \ + "TARGET_SUBDIR=$(TARGET_SUBDIR)" \ + "WINDRES_FOR_TARGET=$(WINDRES_FOR_TARGET)" \ + "YACC=$(YACC)" \ + "bindir=$(bindir)" \ + "datadir=$(datadir)" \ + "exec_prefix=$(exec_prefix)" \ + "includedir=$(includedir)" \ + "infodir=$(infodir)" \ + "libdir=$(libdir)" \ + "libexecdir=$(libexecdir)" \ + "lispdir=$(lispdir)" \ + "libstdcxx_incdir=$(libstdcxx_incdir)" \ + "libsubdir=$(libsubdir)" \ + "localstatedir=$(localstatedir)" \ + "mandir=$(mandir)" \ + "oldincludedir=$(oldincludedir)" \ + "prefix=$(prefix)" \ + "sbindir=$(sbindir)" \ + "sharedstatedir=$(sharedstatedir)" \ + "sysconfdir=$(sysconfdir)" \ + "tooldir=$(tooldir)" \ + "build_tooldir=$(build_tooldir)" \ + "gxx_include_dir=$(gxx_include_dir)" \ + "gcc_version=$(gcc_version)" \ + "gcc_version_trigger=$(gcc_version_trigger)" \ + "target_alias=$(target_alias)" + +# For any flags above that may contain shell code that varies from one +# target library to another. When doing recursive invocations of the +# top-level Makefile, we don't want the outer make to evaluate them, +# so we pass these variables down unchanged. They must not contain +# single nor double quotes. +RECURSE_FLAGS = \ + CXX_FOR_TARGET='$(CXX_FOR_TARGET_FOR_RECURSIVE_MAKE)' + +# Flags to pass down to most sub-makes, in which we're building with +# the host environment. +# If any variables are added here, they must be added to do-*, below. +EXTRA_HOST_FLAGS = \ + 'AR=$(AR)' \ + 'AS=$(AS)' \ + 'CC=$(CC)' \ + 'CXX=$(CXX)' \ + 'DLLTOOL=$(DLLTOOL)' \ + 'LD=$(LD)' \ + 'NM=$(NM)' \ + "`echo 'RANLIB=$(RANLIB)' | sed -e s/.*=$$/XFOO=/`" \ + 'WINDRES=$(WINDRES)' + +FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) + +# Flags that are concerned with the location of the X11 include files +# and library files +# +# NOTE: until the top-level is getting the values via autoconf, it only +# causes problems to have this top-level Makefile overriding the autoconf-set +# values in child directories. Only variables that don't conflict with +# autoconf'ed ones should be passed by X11_FLAGS_TO_PASS for now. +# +X11_FLAGS_TO_PASS = \ + 'X11_EXTRA_CFLAGS=$(X11_EXTRA_CFLAGS)' \ + 'X11_EXTRA_LIBS=$(X11_EXTRA_LIBS)' + +# Flags to pass down to makes which are built with the target environment. +# The double $ decreases the length of the command line; the variables +# are set in BASE_FLAGS_TO_PASS, and the sub-make will expand them. +# If any variables are added here, they must be added to do-*, below. +EXTRA_TARGET_FLAGS = \ + 'AR=$$(AR_FOR_TARGET)' \ + 'AS=$$(AS_FOR_TARGET)' \ + 'CC=$$(CC_FOR_TARGET)' \ + 'CFLAGS=$$(CFLAGS_FOR_TARGET)' \ + 'CXX=$$(CXX_FOR_TARGET)' \ + 'CXXFLAGS=$$(CXXFLAGS_FOR_TARGET)' \ + 'DLLTOOL=$$(DLLTOOL_FOR_TARGET)' \ + 'LD=$$(LD_FOR_TARGET)' \ + 'LIBCFLAGS=$$(LIBCFLAGS_FOR_TARGET)' \ + 'LIBCXXFLAGS=$$(LIBCXXFLAGS_FOR_TARGET)' \ + 'NM=$$(NM_FOR_TARGET)' \ + 'RANLIB=$$(RANLIB_FOR_TARGET)' \ + 'WINDRES=$$(WINDRES_FOR_TARGET)' + +TARGET_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) + +# Flags to pass down to gcc. gcc builds a library, libgcc.a, so it +# unfortunately needs the native compiler and the target ar and +# ranlib. +# If any variables are added here, they must be added to do-*, below. +# The HOST_* variables are a special case, which are used for the gcc +# cross-building scheme. +EXTRA_GCC_FLAGS = \ + 'AR=$(AR)' \ + 'AS=$(AS)' \ + 'CC=$(CC)' \ + 'CXX=$(CXX)' \ + 'DLLTOOL=$$(DLLTOOL_FOR_TARGET)' \ + 'HOST_CC=$(CC_FOR_BUILD)' \ + 'BUILD_PREFIX=$(BUILD_PREFIX)' \ + 'BUILD_PREFIX_1=$(BUILD_PREFIX_1)' \ + 'NM=$(NM)' \ + "`echo 'RANLIB=$(RANLIB)' | sed -e s/.*=$$/XFOO=/`" \ + 'WINDRES=$$(WINDRES_FOR_TARGET)' \ + "GCC_FOR_TARGET=$(GCC_FOR_TARGET)" \ + "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \ + "`echo 'LANGUAGES=$(LANGUAGES)' | sed -e s/.*=$$/XFOO=/`" \ + "`echo 'STMP_FIXPROTO=$(STMP_FIXPROTO)' | sed -e s/.*=$$/XFOO=/`" \ + "`echo 'LIMITS_H_TEST=$(LIMITS_H_TEST)' | sed -e s/.*=$$/XFOO=/`" \ + "`echo 'LIBGCC2_CFLAGS=$(LIBGCC2_CFLAGS)' | sed -e s/.*=$$/XFOO=/`" \ + "`echo 'LIBGCC2_DEBUG_CFLAGS=$(LIBGCC2_DEBUG_CFLAGS)' | sed -e s/.*=$$/XFOO=/`" \ + "`echo 'LIBGCC2_INCLUDES=$(LIBGCC2_INCLUDES)' | sed -e s/.*=$$/XFOO=/`" \ + "`echo 'ENQUIRE=$(ENQUIRE)' | sed -e s/.*=$$/XFOO=/`" \ + "`echo 'STAGE1_CFLAGS=$(STAGE1_CFLAGS)' | sed -e s/.*=$$/XFOO=/`" \ + "`echo 'BOOT_CFLAGS=$(BOOT_CFLAGS)' | sed -e s/.*=$$/XFOO=/`" + +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 = @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 = [+ FOR host_modules +]\ + all-[+module+] [+ ENDFOR host_modules +]\ + $(EXTRA_TARGET_HOST_ALL_MODULES) + +# This is a list of the check targets for all of the modules which are +# compiled using $(FLAGS_TO_PASS). +# +# The list is in two parts. The first lists those tools which +# are tested as part of the host's native tool-chain, and not +# tested in a cross configuration. +NATIVE_CHECK_MODULES = \ + check-bison \ + check-byacc \ + check-fastjar \ + check-flex \ + check-zip + +CROSS_CHECK_MODULES = [+ FOR host_modules +][+ IF no_check +][+ ELIF no_check_cross +][+ ELSE x +]\ + check-[+module+] [+ ENDIF no_check +][+ ENDFOR host_modules +]\ + $(EXTRA_TARGET_HOST_CHECK_MODULES) + +CHECK_MODULES=$(NATIVE_CHECK_MODULES) $(CROSS_CHECK_MODULES) + +# This is a list of the install targets for all of the modules which are +# compiled using $(FLAGS_TO_PASS). +INSTALL_MODULES = [+ FOR host_modules+][+ IF no_install +][+ ELSE no_install +]\ + install-[+module+] [+ ENDIF no_install +][+ ENDFOR host_modules +]\ + $(EXTRA_TARGET_HOST_INSTALL_MODULES) + +# This is a list of the targets for all of the modules which are compiled +# using $(X11_FLAGS_TO_PASS). +ALL_X11_MODULES = \ + all-gdb \ + all-expect \ + all-guile \ + all-tclX \ + all-tk \ + all-tix + +# This is a list of the check targets for all of the modules which are +# compiled using $(X11_FLAGS_TO_PASS). +CHECK_X11_MODULES = \ + check-gdb \ + check-guile \ + check-expect \ + check-tclX \ + check-tk \ + check-tix + +# This is a list of the install targets for all the modules which are +# compiled using $(X11_FLAGS_TO_PASS). +INSTALL_X11_MODULES = \ + install-gdb \ + install-guile \ + install-expect \ + install-tclX \ + install-tk \ + install-tix + +# This is a list of the targets for all of the modules which are compiled +# using $(TARGET_FLAGS_TO_PASS). +ALL_TARGET_MODULES = [+ FOR target_modules +]\ + all-target-[+module+] [+ ENDFOR target_modules +] + +# This is a list of the configure targets for all of the modules which +# are compiled using the target tools. +CONFIGURE_TARGET_MODULES = [+ FOR target_modules +]\ + configure-target-[+module+] [+ ENDFOR target_modules +] + +# This is a list of the check targets for all of the modules which are +# compiled using $(TARGET_FLAGS_TO_PASS). +CHECK_TARGET_MODULES = [+ FOR target_modules +][+ IF no_check +][+ ELSE check +]\ + check-target-[+module+] [+ ENDIF no_check +][+ ENDFOR target_modules +] + +# This is a list of the install targets for all of the modules which are +# compiled using $(TARGET_FLAGS_TO_PASS). +INSTALL_TARGET_MODULES = [+ FOR target_modules +][+ IF no_install +][+ ELSE install +]\ + install-target-[+module+] [+ ENDIF no_install +][+ ENDFOR target_modules +] + +# This is a list of the targets for which we can do a clean-{target}. +CLEAN_MODULES = [+ FOR host_modules +][+ IF no_clean +][+ ELSE no_clean +]\ + clean-[+module+] [+ ENDIF no_clean +][+ ENDFOR host_modules +] + +# All of the target modules that can be cleaned +CLEAN_TARGET_MODULES = [+ FOR target_modules +][+ IF no_clean +][+ ELSE clean +]\ + clean-target-[+module+] [+ ENDIF no_clean +][+ ENDFOR target_modules +] + +# All of the x11 modules that can be cleaned +CLEAN_X11_MODULES = \ + clean-gdb \ + clean-expect \ + clean-guile \ + clean-tclX \ + clean-tk \ + clean-tix + +# The target built for a native build. +.PHONY: all.normal +all.normal: \ + $(ALL_BUILD_MODULES) \ + $(ALL_MODULES) \ + $(ALL_X11_MODULES) \ + $(ALL_TARGET_MODULES) \ + all-gcc + +# Do a target for all the subdirectories. A ``make do-X'' will do a +# ``make X'' in all subdirectories (because, in general, there is a +# dependency (below) of X upon do-X, a ``make X'' will also do this, +# but it may do additional work as well). +# This target ensures that $(BASE_FLAGS_TO_PASS) appears only once, +# because it is so large that it can easily overflow the command line +# length limit on some systems. +DO_X = \ + do-clean \ + do-distclean \ + do-dvi \ + do-info \ + do-install-info \ + do-installcheck \ + do-mostlyclean \ + do-maintainer-clean \ + do-TAGS +.PHONY: $(DO_X) +$(DO_X): + @target=`echo $@ | sed -e 's/^do-//'`; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + for i in $(SUBDIRS) -dummy-; do \ + if [ -f ./$$i/Makefile ]; then \ + case $$i in \ + gcc) \ + for flag in $(EXTRA_GCC_FLAGS); do \ + 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'; export \1|"`; \ + done; \ + ;; \ + esac ; \ + if (cd ./$$i; \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + $${target}); \ + then true; else exit 1; fi; \ + else true; fi; \ + done + @target=`echo $@ | sed -e 's/^do-//'`; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + 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'; export \1|"`; \ + done; \ + if (cd $(TARGET_SUBDIR)/$$i; \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + $${target}); \ + then true; else exit 1; fi; \ + else true; fi; \ + done + +# Here are the targets which correspond to the do-X targets. + +.PHONY: info installcheck dvi install-info +.PHONY: clean distclean mostlyclean maintainer-clean realclean +.PHONY: local-clean local-distclean local-maintainer-clean +info: do-info +installcheck: do-installcheck +dvi: do-dvi + +# Make sure makeinfo is built before we do a `make info'. +do-info: all-texinfo + +install-info: do-install-info dir.info + s=`cd $(srcdir); ${PWD}`; export s; \ + if [ -f dir.info ] ; then \ + $(INSTALL_DATA) dir.info $(infodir)/dir.info ; \ + else true ; fi + +local-clean: + -rm -f *.a TEMP errs core *.o *~ \#* TAGS *.E *.log + +local-distclean: + -rm -f Makefile config.status config.cache mh-frag mt-frag + -if [ "$(TARGET_SUBDIR)" != "." ]; then \ + rm -rf $(TARGET_SUBDIR); \ + else true; fi + -rm -f texinfo/po/Makefile texinfo/po/Makefile.in texinfo/info/Makefile + -rm -f texinfo/doc/Makefile texinfo/po/POTFILES + -rmdir texinfo/doc texinfo/info texinfo/intl texinfo/lib 2>/dev/null + -rmdir texinfo/makeinfo texinfo/po texinfo/util 2>/dev/null + -rmdir fastjar gcc libiberty texinfo zlib 2>/dev/null + +local-maintainer-clean: + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +clean: do-clean local-clean +mostlyclean: do-mostlyclean local-clean +distclean: do-distclean local-clean local-distclean +maintainer-clean: local-maintainer-clean do-maintainer-clean local-clean +maintainer-clean: local-distclean +realclean: maintainer-clean + +# This rule is used to clean specific modules. +.PHONY: $(CLEAN_MODULES) $(CLEAN_X11_MODULES) clean-gcc +$(CLEAN_MODULES) $(CLEAN_X11_MODULES) clean-gcc: + @dir=`echo $@ | sed -e 's/clean-//'`; \ + if [ -f ./$${dir}/Makefile ] ; then \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) clean); \ + else \ + true; \ + fi + +.PHONY: $(CLEAN_TARGET_MODULES) +$(CLEAN_TARGET_MODULES): + @dir=`echo $@ | sed -e 's/clean-target-//'`; \ + rm -f $(TARGET_SUBDIR)/$${dir}/multilib.out $(TARGET_SUBDIR)/$${dir}/tmpmulti.out; \ + if [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/$${dir}; $(MAKE) $(TARGET_FLAGS_TO_PASS) clean); \ + else \ + true; \ + fi + +clean-target: $(CLEAN_TARGET_MODULES) clean-target-libgcc +clean-target-libgcc: + test ! -d gcc/libgcc || \ + (cd gcc/libgcc && find . -type d -print) | \ + while read d; do rm -f gcc/$$d/libgcc.a || : ; done + -rm -rf gcc/libgcc + +# Check target. + +.PHONY: check do-check +check: + $(MAKE) do-check NOTPARALLEL=parallel-ok + +do-check: $(CHECK_MODULES) \ + $(CHECK_TARGET_MODULES) \ + $(CHECK_X11_MODULES) \ + check-gcc + +# Automated reporting of test results. + +warning.log: build.log + $(srcdir)/contrib/warn_summary build.log > $@ + +mail-report.log: + if test x'$(BOOT_CFLAGS)' != x''; then \ + BOOT_CFLAGS='$(BOOT_CFLAGS)'; export BOOT_CFLAGS; \ + fi; \ + $(srcdir)/contrib/test_summary -t >$@ + chmod +x $@ + echo If you really want to send e-mail, run ./$@ now + +mail-report-with-warnings.log: warning.log + if test x'$(BOOT_CFLAGS)' != x''; then \ + BOOT_CFLAGS='$(BOOT_CFLAGS)'; export BOOT_CFLAGS; \ + fi; \ + $(srcdir)/contrib/test_summary -t -i warning.log >$@ + chmod +x $@ + echo If you really want to send e-mail, run ./$@ now + +# Installation targets. + +.PHONY: install install-cross uninstall source-vault binary-vault vault-install +install: $(INSTALL_TARGET) +install-cross: $(INSTALL_TARGET_CROSS) + +uninstall: + @echo "the uninstall target is not supported in this tree" + +source-vault: + $(MAKE) -f ./release/Build-A-Release \ + host=$(host_alias) source-vault + +binary-vault: + $(MAKE) -f ./release/Build-A-Release \ + host=$(host_alias) target=$(target_alias) + +vault-install: + @if [ -f ./release/vault-install ] ; then \ + ./release/vault-install $(host_alias) $(target_alias) ; \ + else \ + true ; \ + fi + +.PHONY: install.all +install.all: install-no-fixedincludes + @if [ -f ./gcc/Makefile ] ; then \ + r=`${PWD}` ; export r ; \ + $(SET_LIB_PATH) \ + (cd ./gcc; \ + $(MAKE) $(FLAGS_TO_PASS) install-headers) ; \ + else \ + true ; \ + fi + +# install-no-fixedincludes is used because Cygnus can not distribute +# the fixed header files. +.PHONY: install-no-fixedincludes +install-no-fixedincludes: \ + installdirs \ + $(INSTALL_MODULES) \ + $(INSTALL_TARGET_MODULES) \ + $(INSTALL_X11_MODULES) \ + gcc-no-fixedincludes + +# Install the gcc headers files, but not the fixed include files, +# which Cygnus is not allowed to distribute. This rule is very +# dependent on the workings of the gcc Makefile.in. +.PHONY: gcc-no-fixedincludes +gcc-no-fixedincludes: + @if [ -f ./gcc/Makefile ]; then \ + rm -rf gcc/tmp-include; \ + mv gcc/include gcc/tmp-include 2>/dev/null; \ + mkdir gcc/include; \ + cp $(srcdir)/gcc/gsyslimits.h gcc/include/syslimits.h; \ + touch gcc/stmp-fixinc gcc/include/fixed; \ + rm -f gcc/stmp-headers gcc/stmp-int-hdrs; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}` ; export s; \ + $(SET_LIB_PATH) \ + (cd ./gcc; \ + $(MAKE) $(GCC_FLAGS_TO_PASS) install); \ + rm -rf gcc/include; \ + 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. +.PHONY: $(ALL_MODULES) +$(ALL_MODULES): + @dir=`echo $@ | sed -e 's/all-//'`; \ + if [ -f ./$${dir}/Makefile ] ; then \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) all); \ + else \ + true; \ + fi + +# These rules are used to check the modules which use FLAGS_TO_PASS. +# To build a target check-X means to cd to X and make check. Some +# modules are only tested in a native toolchain. + +.PHONY: $(CHECK_MODULES) $(NATIVE_CHECK_MODULES) $(CROSS_CHECK_MODULES) +$(NATIVE_CHECK_MODULES): + @if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ + dir=`echo $@ | sed -e 's/check-//'`; \ + if [ -f ./$${dir}/Makefile ] ; then \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) check); \ + else \ + true; \ + fi; \ + fi + +$(CROSS_CHECK_MODULES): + @dir=`echo $@ | sed -e 's/check-//'`; \ + if [ -f ./$${dir}/Makefile ] ; then \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) check); \ + else \ + true; \ + fi + +# This rule is used to install the modules which use FLAGS_TO_PASS. +# To build a target install-X means to cd to X and make install. +.PHONY: $(INSTALL_MODULES) +$(INSTALL_MODULES): installdirs + @dir=`echo $@ | sed -e 's/install-//'`; \ + if [ -f ./$${dir}/Makefile ] ; then \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) install); \ + else \ + true; \ + fi + +# This rule is used to configure the modules which are built with the +# target tools. +.PHONY: $(CONFIGURE_TARGET_MODULES) +$(CONFIGURE_TARGET_MODULES): + @dir=`echo $@ | sed -e 's/configure-target-//'`; \ + if [ -d $(TARGET_SUBDIR)/$${dir} ]; then \ + r=`${PWD}`; export r; \ + $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/$${dir}/tmpmulti.out 2> /dev/null; \ + if [ -s $(TARGET_SUBDIR)/$${dir}/tmpmulti.out ]; then \ + if [ -f $(TARGET_SUBDIR)/$${dir}/multilib.out ]; then \ + if cmp $(TARGET_SUBDIR)/$${dir}/multilib.out $(TARGET_SUBDIR)/$${dir}/tmpmulti.out > /dev/null; then \ + rm -f $(TARGET_SUBDIR)/$${dir}/tmpmulti.out; \ + else \ + echo "Multilibs changed for $${dir}, reconfiguring"; \ + rm -f $(TARGET_SUBDIR)/$${dir}/multilib.out $(TARGET_SUBDIR)/$${dir}/Makefile; \ + mv $(TARGET_SUBDIR)/$${dir}/tmpmulti.out $(TARGET_SUBDIR)/$${dir}/multilib.out; \ + fi; \ + else \ + mv $(TARGET_SUBDIR)/$${dir}/tmpmulti.out $(TARGET_SUBDIR)/$${dir}/multilib.out; \ + fi; \ + fi; \ + fi; exit 0 # break command into two pieces + @dir=`echo $@ | sed -e 's/configure-target-//'`; \ + if [ ! -d $(TARGET_SUBDIR) ]; then \ + true; \ + elif [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \ + true; \ + elif echo " $(TARGET_CONFIGDIRS) " | grep " $${dir} " >/dev/null 2>&1; then \ + if [ -d $(srcdir)/$${dir} ]; then \ + [ -d $(TARGET_SUBDIR)/$${dir} ] || mkdir $(TARGET_SUBDIR)/$${dir};\ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + AR="$(AR_FOR_TARGET)"; export AR; \ + AS="$(AS_FOR_TARGET)"; export AS; \ + CC="$(CC_FOR_TARGET)"; export CC; \ + CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \ + CXX="$(CXX_FOR_TARGET)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \ + GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \ + DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \ + LD="$(LD_FOR_TARGET)"; export LD; \ + LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \ + NM="$(NM_FOR_TARGET)"; export NM; \ + RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \ + WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \ + echo Configuring in $(TARGET_SUBDIR)/$${dir}; \ + cd "$(TARGET_SUBDIR)/$${dir}" || exit 1; \ + case $(srcdir) in \ + /* | [A-Za-z]:[\\/]*) \ + topdir=$(srcdir) ;; \ + *) \ + case "$(TARGET_SUBDIR)" in \ + .) topdir="../$(srcdir)" ;; \ + *) topdir="../../$(srcdir)" ;; \ + esac ;; \ + esac; \ + if [ "$(srcdir)" = "." ] ; then \ + if [ "$(TARGET_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 \ + $(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 \ + $(TARGET_CONFIGARGS) $${srcdiroption} \ + --with-target-subdir="$(TARGET_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 TARGET_FLAGS_TO_PASS. +# To build a target all-X means to cd to X and make all. +.PHONY: $(ALL_TARGET_MODULES) +$(ALL_TARGET_MODULES): + @dir=`echo $@ | sed -e 's/all-target-//'`; \ + if [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/$${dir}; \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) all); \ + else \ + true; \ + fi + +# This rule is used to check the modules which use TARGET_FLAGS_TO_PASS. +# To build a target install-X means to cd to X and make install. +.PHONY: $(CHECK_TARGET_MODULES) +$(CHECK_TARGET_MODULES): + @dir=`echo $@ | sed -e 's/check-target-//'`; \ + if [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/$${dir}; \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) check);\ + else \ + true; \ + fi + +# This rule is used to install the modules which use +# TARGET_FLAGS_TO_PASS. To build a target install-X means to cd to X +# and make install. +.PHONY: $(INSTALL_TARGET_MODULES) +$(INSTALL_TARGET_MODULES): installdirs + @dir=`echo $@ | sed -e 's/install-target-//'`; \ + if [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/$${dir}; \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) install); \ + else \ + true; \ + fi + +# This rule is used to build the modules which use X11_FLAGS_TO_PASS. +# To build a target all-X means to cd to X and make all. +.PHONY: $(ALL_X11_MODULES) +$(ALL_X11_MODULES): + @dir=`echo $@ | sed -e 's/all-//'`; \ + if [ -f ./$${dir}/Makefile ] ; then \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $${dir}; \ + $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all); \ + else \ + true; \ + fi + +# This rule is used to check the modules which use X11_FLAGS_TO_PASS. +# To build a target check-X means to cd to X and make all. +.PHONY: $(CHECK_X11_MODULES) +$(CHECK_X11_MODULES): + @dir=`echo $@ | sed -e 's/check-//'`; \ + if [ -f ./$${dir}/Makefile ] ; then \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $${dir}; \ + $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) check); \ + else \ + true; \ + fi + +# This rule is used to install the modules which use X11_FLAGS_TO_PASS. +# To build a target install-X means to cd to X and make install. +.PHONY: $(INSTALL_X11_MODULES) +$(INSTALL_X11_MODULES): installdirs + @dir=`echo $@ | sed -e 's/install-//'`; \ + if [ -f ./$${dir}/Makefile ] ; then \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $${dir}; \ + $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) install); \ + else \ + true; \ + fi + +# gcc is the only module which uses GCC_FLAGS_TO_PASS. +.PHONY: all-gcc +all-gcc: + @if [ -f ./gcc/Makefile ] ; then \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) all); \ + else \ + true; \ + fi + +# Building GCC uses some tools for rebuilding "source" files +# like texinfo, bison/byacc, etc. So we must depend on those. +# +# While building GCC, it may be necessary to run various target +# programs like the assembler, linker, etc. So we depend on +# those too. +# +# In theory, on an SMP all those dependencies can be resolved +# in parallel. +# +.PHONY: bootstrap bootstrap-lean bootstrap2 bootstrap2-lean bootstrap3 bootstrap3-lean bootstrap4 bootstrap4-lean +bootstrap bootstrap-lean bootstrap2 bootstrap2-lean bootstrap3 bootstrap3-lean bootstrap4 bootstrap4-lean: all-bootstrap + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + echo "Bootstrapping the compiler"; \ + cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) $@ + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + case "$@" in \ + *bootstrap4-lean ) \ + msg="Comparing stage3 and stage4 of the compiler"; \ + compare=compare3-lean ;; \ + *bootstrap4 ) msg="Comparing stage3 and stage4 of the compiler"; \ + compare=compare3 ;; \ + *-lean ) msg="Comparing stage2 and stage3 of the compiler"; \ + compare=compare-lean ;; \ + * ) msg="Comparing stage2 and stage3 of the compiler"; \ + compare=compare ;; \ + esac; \ + $(SET_LIB_PATH) \ + echo "$$msg"; \ + cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) $$compare + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}` ; export s; \ + $(SET_LIB_PATH) \ + echo "Building runtime libraries"; \ + $(MAKE) $(BASE_FLAGS_TO_PASS) $(RECURSE_FLAGS) all + +.PHONY: cross +cross: all-texinfo all-bison all-byacc all-binutils all-gas all-ld + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + echo "Building the C and C++ compiler"; \ + cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) LANGUAGES="c c++" + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}` ; export s; \ + $(SET_LIB_PATH) \ + echo "Building runtime libraries"; \ + $(MAKE) $(BASE_FLAGS_TO_PASS) $(RECURSE_FLAGS) \ + LANGUAGES="c c++" all + +.PHONY: check-gcc +check-gcc: + @if [ -f ./gcc/Makefile ] ; then \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) check); \ + else \ + true; \ + fi + +.PHONY: check-c++ +check-c++: + @if [ -f ./gcc/Makefile ] ; then \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) check-c++); \ + $(MAKE) check-target-libstdc++-v3; \ + else \ + true; \ + fi + +.PHONY: install-gcc +install-gcc: + @if [ -f ./gcc/Makefile ] ; then \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) install); \ + else \ + true; \ + fi + +.PHONY: install-gcc-cross +install-gcc-cross: + @if [ -f ./gcc/Makefile ] ; then \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) LANGUAGES="c c++" install); \ + else \ + true; \ + fi +# EXPERIMENTAL STUFF +# This rule is used to install the modules which use FLAGS_TO_PASS. +# To build a target install-X means to cd to X and make install. +.PHONY: install-dosrel +install-dosrel: installdirs info + @dir=`echo $@ | sed -e 's/install-//'`; \ + if [ -f ./$${dir}/Makefile ] ; then \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) install); \ + else \ + true; \ + fi + +install-dosrel-fake: + +ALL_GCC = all-gcc +ALL_GCC_C = $(ALL_GCC) all-target-newlib all-target-libgloss +ALL_GCC_CXX = $(ALL_GCC_C) all-target-libstdc++-v3 + +# This is a list of inter-dependencies among modules. +all-ash: +all-autoconf: all-m4 all-texinfo +all-automake: all-m4 all-texinfo +all-bash: +all-bfd: all-libiberty all-intl +all-binutils: all-libiberty all-opcodes all-bfd all-flex all-bison all-byacc all-intl +all-bison: all-texinfo +configure-target-boehm-gc: $(ALL_GCC_C) configure-target-qthreads +all-byacc: +all-bzip2: +all-db: +all-dejagnu: all-tcl all-expect all-tk +all-diff: all-libiberty +all-etc: +configure-target-examples: $(ALL_GCC_C) +all-expect: all-tcl all-tk +all-fileutils: all-libiberty +all-findutils: +all-find: +all-flex: all-libiberty all-bison all-byacc +all-gas: all-libiberty all-opcodes all-bfd all-intl +all-gawk: +all-gcc: all-bison all-byacc all-binutils all-gas all-ld all-zlib +all-bootstrap: all-libiberty all-texinfo all-bison all-byacc all-binutils all-gas all-ld all-zlib +GDB_TK = @GDB_TK@ +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_CXX) +all-target-gperf: all-target-libiberty all-target-libstdc++-v3 +all-gprof: all-libiberty all-bfd all-opcodes all-intl +all-grep: all-libiberty +all-guile: +all-gzip: all-libiberty +all-hello: all-libiberty +all-indent: +all-intl: +all-itcl: all-tcl all-tk +all-ld: all-libiberty all-bfd all-opcodes all-bison all-byacc all-flex all-intl +configure-target-libgloss: $(ALL_GCC) +all-target-libgloss: configure-target-newlib +all-libgui: all-tcl all-tk all-itcl +all-libiberty: + +all-build-libiberty: configure-build-libiberty + +configure-target-libffi: $(ALL_GCC_C) +configure-target-libjava: $(ALL_GCC_C) configure-target-zlib configure-target-boehm-gc configure-target-qthreads configure-target-libffi +all-target-libjava: all-fastjar all-target-zlib all-target-boehm-gc all-target-qthreads all-target-libffi +configure-target-libstdc++-v3: $(ALL_GCC_C) +all-target-libstdc++-v3: all-target-libiberty +all-libtool: +configure-target-libf2c: $(ALL_GCC_C) +all-target-libf2c: all-target-libiberty +configure-target-libobjc: $(ALL_GCC_C) +all-target-libobjc: all-target-libiberty +all-m4: all-libiberty all-texinfo +all-make: all-libiberty +all-mmalloc: +configure-target-newlib: $(ALL_GCC) +configure-target-libtermcap: $(ALL_GCC_C) +all-opcodes: all-bfd all-libiberty +all-patch: all-libiberty +all-perl: +all-prms: all-libiberty +configure-target-qthreads: $(ALL_GCC_C) +all-rcs: +all-readline: +all-recode: all-libiberty +all-sed: all-libiberty +all-send-pr: all-prms +all-shellutils: +all-sid: all-tcl all-tk +all-sim: all-libiberty all-bfd all-opcodes all-readline +all-snavigator: all-tcl all-tk all-itcl all-tix all-db all-grep all-libgui +all-tar: all-libiberty +all-tcl: +all-tclX: all-tcl all-tk +all-tk: all-tcl +all-texinfo: all-libiberty +all-textutils: +all-time: +all-tix: all-tcl all-tk +all-wdiff: +configure-target-winsup: $(ALL_GCC_C) +all-target-winsup: all-target-libiberty all-target-libtermcap +all-uudecode: all-libiberty +all-zip: +all-zlib: +configure-target-zlib: $(ALL_GCC_C) +all-fastjar: all-zlib all-libiberty +configure-target-fastjar: configure-target-zlib +all-target-fastjar: configure-target-fastjar all-target-zlib all-target-libiberty +configure-target-libiberty: $(ALL_GCC_C) +configure-target: $(CONFIGURE_TARGET_MODULES) +all-target: $(ALL_TARGET_MODULES) +install-target: $(INSTALL_TARGET_MODULES) +install-gdb: install-tcl install-tk install-itcl install-tix install-libgui +install-sid: install-tcl install-tk + +# We put install-opcodes before install-binutils because the installed +# binutils might be on PATH, and they might need the shared opcodes +# library. +install-binutils: install-opcodes + +# We put install-tcl before install-itcl because itcl wants to run a +# program on installation which uses the Tcl libraries. +install-itcl: install-tcl + + +# Dependencies of all-target-foo on configure-target-foo. +[+ FOR target_modules +]all-target-[+module+]: configure-target-[+module+] +[+ ENDFOR target_modules +] + +### other supporting targets + +MAKEDIRS= \ + $(DESTDIR)$(prefix) \ + $(DESTDIR)$(exec_prefix) +.PHONY: installdirs +installdirs: mkinstalldirs + $(SHELL) $(srcdir)/mkinstalldirs $(MAKEDIRS) + +dir.info: do-install-info + if [ -f $(srcdir)/texinfo/gen-info-dir ] ; then \ + $(srcdir)/texinfo/gen-info-dir $(infodir) $(srcdir)/texinfo/dir.info-template > dir.info.new ; \ + mv -f dir.info.new dir.info ; \ + else true ; \ + fi + +dist: + @echo "Building a full distribution of this tree isn't done" + @echo "via 'make dist'. Check out the etc/ subdirectory" + +etags tags: TAGS + +# Right now this just builds TAGS in each subdirectory. emacs19 has the +# ability to use several tags files at once, so there is probably no need +# to combine them into one big TAGS file (like CVS 1.3 does). We could +# (if we felt like it) have this Makefile write a piece of elisp which +# the user could load to tell emacs19 where all the TAGS files we just +# built are. +TAGS: do-TAGS + +# Rebuilding Makefile.in, using autogen. +$(srcdir)/Makefile.in: # $(srcdir)/Makefile.tpl $(srcdir)/Makefile.def + cd $(srcdir) && autogen Makefile.def + +# with the gnu make, this is done automatically. + +Makefile: Makefile.in configure.in $(host_makefile_frag) $(target_makefile_frag) $(gcc_version_trigger) + $(SHELL) ./config.status + +# + +.NOEXPORT: +MAKEOVERRIDES= + +# end of Makefile.in diff -uprN binutils-2.13.90.0.4/bfd/ChangeLog binutils-2.13.90.0.10/bfd/ChangeLog --- binutils-2.13.90.0.4/bfd/ChangeLog Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/bfd/ChangeLog Wed Oct 9 21:09:41 2002 @@ -1,3 +1,669 @@ +2002-10-09 Richard Shann + Stephen Clarke + + * Makefile.am: Add entries for elf32-sh64-lin.c and + elf64-sh64-lin.c. Regenerate. + * Makefile.in: Regenerate. + * config.bfd: Change sh64eb-*-linux* and sh64-*-linux* + to use sh64 vectors rather than sh vectors. + * configure.in: Add bfd_elf32_sh64lin_vec, bfd_elf32_sh64blin_vec, + bfd_elf64_sh64lin_vec, bfd_elf64_sh64blin_vec. + * configure: Regenerate. + * elf32-sh64-lin.c: New file. + * elf64-sh64-lin.c: New file. + * targets.c: Add bfd_elf32_sh64lin_vec, bfd_elf32_sh64blin_vec, + bfd_elf64_sh64lin_vec, bfd_elf64_sh64blin_vec. + +2002-10-08 H.J. Lu + + * elf32-i386.c (elf_i386_relocate_section): Re-arrange the + IE->LE transition for R_386_TLS_IE. + +2002-10-08 Alan Modra + + * elf64-ppc.c (edit_opd): Correct test for discarded sections. + +2002-10-07 Mark Elbrecht + + * cofflink.c (mark_relocs): Don't mark relocations in excluded + sections. + +2002-10-07 Alan Modra + + * elflink.h (elf_link_input_bfd): Remove BFD_VERSION_DATE dependent + code. + + * elf64-ppc.c (ppc64_elf_build_stubs): Increment .glink indx. + +2002-10-06 Alan Modra + + * opncls.c: Formatting. + (_bfd_new_bfd): Use a smaller section hash table. + +2002-10-05 Alexandre Oliva + + * elfxx-mips.c (mips_elf_create_dynamic_relocation): Set the type + of the other two relocations packed with a REL32 to NONE. + +2002-10-02 Stephen Clarke + + * elf32-sh.c (elf_sh_link_hash_entry): Add gotplt_refcount. + (sh_elf_link_hash_newfunc): Initialize it. + (allocate_dynrelocs): Transfer gotplt refs from plt.refcount + to got.refcount for symbols that are forced local or when + we have direct got refs. + (sh_elf_gc_sweep_hook): Adjust gotplt_refcount. Use it + to correctly adjust got.refcount and plt.refcount. + (sh_elf_copy_indirect_symbol): Copy gotplt_refcount across. + (sh_elf_check_relocs): Increment gotplt_refcount. + +2002-10-01 Jakub Jelinek + + * elf32-i386.c (elf_i386_relocate_section): Fix + movl foo@indntpoff, %eax IE->LE transition. + +2002-10-01 Jakub Jelinek + + * elf64-x86-64.c (elf64_x86_64_relocate_section): Change TLSGD + sequence and its transitions. + +2002-10-01 Jakub Jelinek + + * elf32-i386.c (elf_i386_relocate_section): Resolve R_386_TLS_LDO_32 + to st_value + addend in non-code sections. + * elf64-x86-64.c (elf64_x86_64_relocate_section): Resolve + R_X86_64_DTPOFF32 to st_value + addend in non-code sections. + +2002-09-30 Gavin Romig-Koch + Ken Raeburn + Aldy Hernandez + Eric Christopher + Richard Sandiford + + * archures.c (bfd_mach_mips4120, bfd_mach_mips5400): New. + (bfd_mach_mips5500): New. + * cpu-mips.c (I_mips4120, I_mips5400, I_mips5500): New. + (arch_info_struct): Add corresponding entries here. + * elfxx-mips.c (_bfd_elf_mips_mach): Handle E_MIPS_MACH_4120, + E_MIPS_MACH_5400 and E_MIPS_MACH_5500. + (_bfd_mips_elf_final_write_processing): Handle bfd_mach_mips4120, + bfd_mach_mips5400 and bfd_mach_mips5500. + (_bfd_mips_elf_mach_extends_p): New function. + (_bfd_mips_elf_merge_private_bfd_data): Use it to help merge + the EF_MIPS_MACH flags. + * bfd-in2.h: Regenerate. + +2002-09-28 Jason Thorpe + + * elf32-vax.c (elf_vax_size_dynamic_section): Don't strip + .got sections. + +2002-09-28 Alan Modra + + * elf.c (map_sections_to_segments): Correct test for start of + writable section in the same page as end of read-only section. + +2002-09-27 Matt Thomas + + * elf32-vax.c (elf_vax_check_relocs): Remove unused + local_got_refcounts usage. Remove allocation of got slot. + (elf_vax_gc_sweep_hook): Remove unused local_got_refcounts usage. + Remove de-allocation of got slot. + (elf_vax_size_dynamic_section): Fix some indentation. Add hash + traversal for elf_vax_instantiate_got_entries. Allow empty .got + sections to be GC'ed. + (elf_vax_instantiate_got_entries): New function. + (elf_vax_relocate_section): Simplify R_VAX_GOT32 handling. Remove + tests that are now handled by elf_vax_instantiate_got_entries. + Assert GOT entry falls within .got section size. Remove redundant + comparisions. Fix comments. + +2002-09-27 Jakub Jelinek + + * reloc.c: Add x86-64 TLS relocs. + * bfd-in2.h, libbfd.h: Rebuilt. + * elf64-x86-64.c (x86_64_elf_howto): Fix size fields for 32-bit + relocs. Add TLS relocs. + (x86_64_reloc_map): Add TLS relocs. + (elf64_x86_64_info_to_howto): Adjust for added TLS relocs. + (struct elf64_x86_64_link_hash_entry): Add tls_type field. + (GOT_UNKNOWN, GOT_NORMAL, GOT_TLS_GD, GOT_TLS_IE): Define. + (elf64_x86_64_hash_entry): Define. + (struct elf64_x86_64_obj_tdata): New. + (elf64_x86_64_tdata, elf64_x86_64_local_got_tls_type): Define. + (struct elf64_x86_64_link_hash_table): Add tls_ld_got. + (link_hash_newfunc): Initialize tls_type. + (elf64_x86_64_link_hash_table_create): Initialize tls_ld_got. + (elf64_x86_64_copy_indirect_symbol): Swap tls_type if necessary. + (elf64_x86_64_mkobject): New. + (elf64_x86_64_elf_object_p): Allocate struct elf64_x86_64_obj_tdata. + (elf64_x86_64_tls_transition): New. + (elf64_x86_64_check_relocs): Add r_type variable and use it. + Handle TLS relocs. + (elf64_x86_64_gc_sweep_hook): Handle TLS relocs. + (allocate_dynrelocs): Allocate GOT space for TLS relocs. + (elf64_x86_64_size_dynamic_sections): Likewise. + (dtpoff_base, tpoff): New. + (elf64_x86_64_relocate_section): Handle TLS relocs. + (elf64_x86_64_finish_dynamic_symbol): Only handle non-TLS GOT + entries. + (bfd_elf64_mkobject): Define. + + * elf32-i386.c (elf_i386_check_relocs) [R_386_TLS_LE]: Set + DF_STATIC_TLS if shared. + +2002-09-26 Thiemo Seufer + + * elfxx-mips.c (_bfd_mips_elf_fake_sections): Don't emit unneeded + empty relocation sections. + +2002-09-26 Alan Modra + + * elf64-ppc.c (ppc_build_one_stub): Don't build glink stubs here. + (ppc64_elf_build_stubs): Build them here instead. + +2002-09-24 Jakub Jelinek + + * elf32-sparc.c (elf32_sparc_relocate_section): Put R_SPARC_RELATIVE + addend into r_addend, not *r_offset. + (elf32_sparc_finish_dynamic_symbol): Likewise. + * elf64-sparc.c (sparc64_elf_finish_dynamic_symbol): Clear xword at + R_SPARC_RELATIVE's r_offset. + +2002-09-23 Nathan Tallent + + * dwarf2.c (decode_line_info): Update to correctly decode + the (non-standard DWARF2) out-of-order address sequences + generated by the Intel C++ 6.0 compiler for ia64-Linux. + +2002-09-23 Mark Elbrecht + + * config.bfd: For DJGPP targets, match with any cpu and any machine. + +2002-09-23 Alan Modra + + * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Zero relocs + for discarded FDEs. Remove redundant assignment. + * elflink.h (elf_bfd_discard_info): Save edited relocs. + +2002-09-22 H.J. Lu + + * elf64-alpha.c (elf64_alpha_merge_ind_symbols): Don't merge + the relocation count between different .reloc sections. + +2002-09-21 Alan Modra + + * elf32-ppc.c (ppc_elf_relocate_section): Allow ".sbss.*" and + ".sdata.*" for R_PPC_SDAREL16, ".sbss2*" and ".sdata2*" for + R_PPC_EMB_SDA2REL. Similarly for R_PPC_EMB_SDA21 and + R_PPC_EMB_RELSDA. + + * elfcode.h (elf_slurp_reloc_table_from_section): Make "symcount" + unsigned. Move "symcount" assignment out of loop. + * Makefile.am: Run "make dep-am". + * Makefile.in: Regenerate. + * configure: Regenerate. + * po/SRC-POTFILES.in: Regnerate. + +2002-09-19 Nathan Tallent + + * dwarf2.c (_bfd_dwarf2_find_nearest_line): If address length is + zero, set it to 8 for (non-standard) 64-bit DWARF2 formats + (e.g. IRIX64). + +2002-09-19 Jakub Jelinek + + * elf32-ppc.c (ppc_elf_finish_dynamic_symbol): Clear .got word + even if generating R_PPC_RELATIVE reloc. + (ppc_elf_relocate_section): Make sure relocation is performed + if skip == -2. Clear memory at r_offset when creating dynamic + relocation. + +2002-09-19 Jakub Jelinek + + * reloc.c (BFD_RELOC_386_TLS_TPOFF, BFD_RELOC_386_TLS_IE, + BFD_RELOC_386_TLS_GOTIE): Add. + * bfd-in2.h, libbfd.h: Rebuilt. + * elf32-i386.c (elf_howto_table): Add R_386_TLS_TPOFF, R_386_TLS_IE + and R_386_TLS_GOTIE. + (elf_i386_reloc_type_lookup): Handle it. + (struct elf_i386_link_hash_entry): Change tls_type type to unsigned + char instead of enum, change GOT_* into defines. + (GOT_TLS_IE_POS, GOT_TLS_IE_NEG, GOT_TLS_IE_BOTH): Define. + (elf_i386_tls_transition): Handle R_386_TLS_IE and R_386_TLS_GOTIE. + (elf_i386_check_relocs): Likewise. Avoid crash if local symbol is + accessed both as normal and TLS symbol. Move R_386_TLS_LDM and + R_386_PLT32 cases so that R_386_TLS_IE can fall through. + Handle R_386_TLS_LE_32 and R_386_TLS_LE in shared libs. + (elf_i386_gc_sweep_hook): Handle R_386_TLS_IE and R_386_TLS_GOTIE. + Handle R_386_TLS_LE_32 and R_386_TLS_LE in shared libs. + (allocate_dynrelocs): Allocate 2 .got and 2 .rel.got entries if + tls_type is GOT_TLS_IE_BOTH. + (elf_i386_size_dynamic_sections): Likewise. + (elf_i386_relocate_section): Handle R_386_TLS_IE and R_386_TLS_GOTIE. + Handle R_386_TLS_LE_32 and R_386_TLS_LE in shared libs. + (elf_i386_finish_dynamic_symbol): Use tls_type & GOT_TLS_IE to catch + all 4 GOT_TLS_* TLS types. + +2002-09-19 Nick Clifton + + * elflink.h (elf_fix_symbol_flags): When examining weak symbols, + follow indirect links. + +2002-09-19 Nathan Tallent + + * ecoffswap.h (ecoff_swap_pdr_in) : Update to + correctly sign-extend 32-bit ECOFF null values (0xffffffff, -1) + on 64 bit machines. + (ecoff_swap_sym_in) : Likewise. + * ecoff.c (_bfd_ecoff_slurp_symbolic_info): Fix error reading + ECOFF information: 'ioptMax' refers to the actual *size* + of the optimization symtab, not the number of entries. + +2002-09-19 Daniel Jacobowitz + + * elf32-arm.h (elf32_arm_adjust_dynamic_symbol): Update + ELF_LINK_HASH_NEEDS_PLT logic. + +2002-09-18 Daniel Jacobowitz + + * elfcode.h (elf_slurp_reloc_table_from_section): Check + correct relocation count. + +2002-09-17 Daniel Jacobowitz + + * bfd-in.h (bfd_get_dynamic_symcount): Define. + * bfd.c (struct _bfd): Add dynsymcount. + * bfd-in2.h: Regenerated. + * elf.c (_bfd_elf_canonicalize_dynamic_symtab): Set + abfd->dynsymcount. + * elfcode.h (elf_slurp_reloc_table_from_section): Check + for overflow. + +2002-09-17 Stan Cox + + * elf64-mips.c (mips_elf64_be_swap_reloca_out): Handle type2 and type3. + (mips_elf64_final_gp): Don't make up gp value. + * elfn32-mips.c (mips_elf_final_gp): Likewise. + * elfxx-mips.c (_bfd_mips_elf_final_link): Always create + .MIPS.options/.options section. + +2002-09-17 David O'Brien + + * elf32-i386-fbsd.c: Always label using the EI_OSABI method. + It is benign for FreeBSD < 4.1. Minor reformatting. + * elf64-alpha-fbsd.c: Likewise. + +2002-09-17 Jakub Jelinek + + * elf32-i386.c (elf_i386_relocate_section) [R_386_TLS_TPOFF32]: Negate + addend. + +2002-09-17 Alan Modra + + * elf64-alpha.c (alpha_elf_size_info): Make static. + +2002-09-17 Svein E. Seldal + + * coff-tic4x.c: Add function declarations and ATTRIBUTE_UNUSED. + * cpu-tic4x.c: Ditto. + +2002-09-17 Thiemo Seufer + + * elf64-mips.c (define elf_backend_ignore_discarded_relocs): Remove + duplicate define. + +2002-09-16 Bruno Haible + + * elf32-i386.c: Don't defined ELF_ARCH etc. if this file is included + by a target variant implementation. + * elf64-alpha.c: Likewise. + * elf32-i386-fbsd.c: New file. + * elf64-alpha-fbsd.c: New file. + * targets.c: Support bfd_elf32_i386_freebsd_vec and + bfd_elf64_alpha_freebsd_vec. + * configure.in: Accept the vectors bfd_elf32_i386_freebsd_vec, + bfd_elf64_alpha_freebsd_vec. + * Makefile.am (BFD32_BACKENDS): Add elf32-i386-fbsd.lo. + (BFD32_BACKENDS_CFILES): Add elf32-i386-fbsd.c. + (BFD64_BACKENDS): Add elf64-alpha-fbsd.lo. + (BFD64_BACKENDS_CFILES): Add elf64-alpha-fbsd.c. + (elf32-i386-fbsd.lo, elf64-alpha-fbsd.lo): Add dependencies. + * config.bfd: For FreeBSD targets, set targ_defvec to a FreeBSD + specific targets. Define OLD_FREEBSD_ABI_LABEL if appropriate. + +2002-09-12 Jakub Jelinek + + * elf32-i386.c (dtpoff_base, tpoff): Don't crash if tls_segment is + NULL. + (elf_i386_relocate_section): Return false after printing error about + unresolvable relocation. + +2002-09-12 Nick Clifton + + * elf32-arm.h (elf32_arm_final_link_relocate): Fix handling of + R_ARM_THM_PC11. + +2002-09-11 Jeffrey Law + + * elf32-h8300.c (elf32_h8_relax_section): Fix typo. + +2002-09-11 Andrew Haley + + * elf.c (_bfd_elf_find_nearest_line): Check functionname_ptr and + line_ptr before deciding we've found a symbol. + +2002-09-11 Nick Clifton + + * po/da.po: New Danish translation file. + * configure.in (LINGUAS): Add 'da'. + * configure: Regenerate. + +2002-09-10 Michael Snyder + + * irix-core.c (do_sections, do_sections64): New functions. + (irix_core_core_file_p): Call new functions do_sections, + do_sections64, depending on corefile (32-bit or 64-bit). + +2002-09-09 Richard Henderson + + * elfxx-ia64.c (elfNN_ia64_relax_section): Handle PCREL21M + and PCREL21F like PCREL21B. + +2002-09-04 Kevin Buettner + + * config.bfd (mips*-*-irix6*): Add new ABI vectors. Make n32 default + vector. + +2002-09-02 Nick Clifton + + * elf32-v850.c (v850_elf_final_link_relocate): Use helpful + names instead of cryptically overloaded bfd_reloc error + codes. + (v850_elf_relocate_section): Likewise. + (v850_elf_relax_section): Replace caching of external symbols + with caching of internal symbols obtained from calling + bfd_elf_get_elf_syms(). + Fixup problems with freeing cached allocated memory blocks. + +2002-09-02 Alan Modra + + * cpu-pj.c (scan_mach, compatible, arch_info_struct): Remove. + (bfd_pj_arch): Use bfd_default_scan. + * cpu-v850.c (scan): Remove. + (N): Use bfd_default_scan. + * cpu-z8k.c (scan_mach): Remove. + (arch_info_struct, bfd_z8k_arch): Reorganize so that the default is + first. Use bfd_default_scan. + + * ecoff.c (_bfd_ecoff_set_arch_mach_hook): Don't use hard-coded + bfd_mach constants. + (ecoff_get_magic): Likewise. + * elf32-v850.c (v850_elf_object_p): Likewise. + (v850_elf_final_write_processing): Likewise. + * mipsbsd.c (MY(set_arch_mach)): Likewise. + (MY(write_object_contents)): Likewise. + * coff64-rs6000.c (xcoff64_write_object_contents): Likewise. + * coffcode.h (coff_write_object_contents): Likewise. + (coff_set_arch_mach_hook): Add comment describing machine == 0. + Remove unnecessary "machine" assignments. + (coff_write_relocs): Test for the absolute section sym by testing + section and flags. + + * aoutx.h (NAME(aout,machine_type)): Recognize bfd_mach_i386_i386 + and bfd_mach_i386_i386_intel_syntax. + * pdp11.c (NAME(aout,machine_type)): Likewise. + +2002-08-30 John David Anglin + + * bfd-in.h (align_power): Cast constants to bfd_vma type. + * bfd-in2.h (align_power): Likewise. + +2002-08-30 Alan Modra + + * Makefile.am: Run "make dep-am". + * Makefile.in: Regenerate. + + * cpu-avr.c (compatible): Don't use hard-coded mach constants. + * cpu-powerpc.c (powerpc_compatible): Likewise. + * cpu-rs6000.c (rs6000_compatible): Likewise. + +2002-08-28 Catherine Moore + + * elf32-v850.c (v850_elf_reloc_map): Add new relocs. + (v850-elf-reloc): Don't resolve pc relative relocs. + (v850_elf_ignore_reloc): New routine. + (v850_elf_final_link_relocate): Handle new relocs. + (v850_elf_relax_delete_bytes ): New routine. + (v850_elf_relax_section): New routine. + (bfd_elf32_bfd_relax_section): Define. + (HOWTO): New entries for new relocs. + * reloc.c (BFD_RELOC_V850_LONGCALL): New reloc. + (BFD_RELOC_V850_LONGJUMP): New reloc. + (BFD_RELOC_V850_ALIGN): New reloc. + * archures.c: Remove redundant v850ea architecture. + * cpu-v850.c: Remove redundant v850ea support. + * libbfd.h: Regenerate. + * bfd-in2.h: Regenerated. + +2002-08-28 Svein E. Seldal + + * config.bfd: Add tic4x-*-*coff* and c4x-*-*coff* target. + * configure.in: Add tic4x_coff vector files. + * configure: Regenerate. + * Makefile.am: Add tic4x target. + * Makefile.in: Regenerate. + +2002-08-27 Michael Hayes + + * archures.c: Add the BFD arch type tic4x. + * bfd-in.h: Add BFD_IN_MEMORY flag. + * coff-tic4x.c: New file. + * coffswap.h (coff_swap_sym_out): Add preadjuster. + * cpu-tic4x.c: New file. + * targets.c: Added tic4x- in list of xvecs. + * ticoff.h: New file. + * bfd-in2.h: Regenerate. + +2002-08-27 Adam Nemet + + * elf32-arm.h (elf32_arm_finish_dynamic_sections): Set the last + bit of DT_INIT and DT_FINI for Thumb functions. + +2002-08-26 Alan Modra + + * coffcode.h (coff_set_arch_mach_hook): Handle W65MAGIC. + +2002-08-26 Alan Modra + + * aoutx.h (NAME(aout,reloc_type_lookup)): Handle BFD_RELOC_8. + +2002-08-24 Kaz Kojima + + * elf32-sh.c (sh_elf_copy_indirect_symbol): New. + (create_got_section, allocate_dynrelocs, readonly_dynrelocs): + Likewise. + (struct elf_sh_pcrel_relocs_copied): Removed. + (struct elf_sh_dyn_relocs): New. + (struct elf_sh_link_hash_entry): Replace pcrel_relocs_copied + field with dyn_relocs. + (struct elf_sh_link_hash_table): Add short-cuts to get dynamic + sections and sym_sec. + (sh_elf_link_hash_newfunc): Clear dyn_relocs. + (sh_elf_link_hash_table_create): Clear shorts-cuts and sym_sec. + (sh_elf_create_dynamic_sections): Use create_got_section instead + of _bfd_elf_create_got_section. + (sh_elf_check_relocs): Likewise. + (sh_elf_create_dynamic_sections): Use short-cuts to the dynamic + sections. + (sh_elf_adjust_dynamic_symbol, sh_elf_size_dynamic_sections, + sh_elf_relocate_section, sh_elf_check_relocs, + sh_elf_finish_dynamic_symbol, sh_elf_finish_dynamic_sections): + Likewise. + (sh_elf_adjust_dynamic_symbol): Handle nocopyreloc. Keep the + dynamic relocations and avoiding the copy relocation when we + didn't find any dynamic relocations in the section which has + contents or is read-only. + (WILL_CALL_FINISH_DYNAMIC_SYMBOL): New. + (sh_elf_size_dynamic_sections): Don't reset the size of + .rela.got section even if dynamic_sections_created flag is off. + Don't use sh_elf_discard_copies. Scan all input bfd and use + allocate_dynrelocs. Call readonly_dynrelocs to determine + whether we need DT_TEXTREL. + (sh_elf_adjust_dynamic_symbol): Use plt.refcount to determine + whether the symbol was never referred to. + (sh_elf_relocate_section): Use WILL_CALL_FINISH_DYNAMIC_SYMBOL. + (sh_elf_gc_sweep_hook): Fill with the real sweep function. + (sh_elf_check_relocs): Call create_got_section if the short-cut + to .got is null. Increment reference counters only instead of + allocating space on dynamic sections here. Don't conditionalize + uninitialized got.offset value when marking the symbol as a + global offset table entry. Keep relocations for symbols satisfied + by a dynamic library to avoid copy relocations for the symbol. + Set dynobj field of an elf hash table if needed. + (sh_elf_finish_dynamic_sections): Handle null section pointer + correctly. + (elf_backend_copy_indirect_symbol): Defined. + (elf_backend_can_refcount): Defined. + +2002-08-23 Nick Clifton + + * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Undo + previous change. Add comment explaining why. + +2002-08-23 Stephen Clarke + + * elf32-sh.c (elf_sh_plt0_entry_be, elf_sh_plt0_entry_le): Copy + contents of .got.plt[2] to tr0, not address of .got.plt. + (sh_elf_finish_dynamic_symbol): Do not apply GOT_BIAS when + patching absolute plt entry. For shmedia plt entry, set bottom bit + of branch to plt0 as this is a branch to an shmedia instruction. + * elf64-sh64.c (elf_sh64_plt0_entry_be, elf_sh64_plt0_entry_le): + Copy contents of .got.plt[2] to tr0, not address of .got.plt. + (elf_sh64_plt_entry_be, elf_sh64_plt_entry_le): Use ptrel to + branch to plt0. + (sh64_elf64_finish_dynamic_symbol): Do not apply GOT_BIAS when + patching absolute plt entry. For shmedia plt entry, branch to + plt0 is now ptrel, so use relative offset. Set bottom bit of + branch target as it is a branch to an shmedia instruction. + +2002-08-23 Stephen Clarke , + Richard Shann + + * elf32-sh.c (sh_elf_finish_dynamic_sections): Set LSB of DT_INIT + value if .init is an SHmedia function. Similarly for DT_FINI. + * elf64-sh64.c (sh64_elf64_finish_dynamic_sections): Likewise. + +2002-08-23 Stephen Clarke + + * elf32-sh.c (sh_elf_size_dynamic_sections): Zero initialize + dynamic section. + * elf64-sh64.c (sh64_elf64_size_dynamic_sections): Likewise. + +2002-08-22 Kaz Kojima + + * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Use a simple + byte read when reading the return address register column. + +2002-08-22 Nick Clifton + + * config.bfd: Add powepc64-*-*bsd* target. + +2002-08-22 Graeme Peterson + + * Makefile.am: Add entries for elf32-shqnx.c + * Makefile.in: Regenerate. + * config.bfd: Add support sh-*-nto* target. + * configure.in: Add support for bfd_elf32_sh{l}qnx_vec. + * configure: Regenerate. + * elf32-qnx.h: Changed typo "elf_i386qnx_*" to "elf_qnx_*" . + * elf32-sh.c: Do not include elf32-target.h if + ELF32_SH_C_INCLUDED is defined. + * elf32-shqnx.c: New file: Support for QNX. + * targets.c: Add bfd_elf32_sh{l}qnx_vec. + +2002-08-22 Nick Clifton + + * po/tr.po: Updated Turkish translation. + + * syms.c (_bfd_generic_read_minisymbols): Set bfd_error if the + symbols are not read. + +2002-08-22 Alan Modra + + * elf32-m68hc11.c: Formatting fixes. + (elf32_m68hc11_gc_mark_hook): Correct params. Remove unnecessary test. + * elf32-m68hc12.c: Formatting fixes. + (elf32_m68hc11_gc_mark_hook): Correct params. Remove unnecessary test. + +2002-08-22 Alan Modra + + * coff-rs6000.c (rs6000coff_vec ): Add SEC_CODE and + SEC_DATA. + (pmac_xcoff_vec): Likewise. + * coff64-rs6000.c (rs6000coff64_vec): Likewise. + (aix5coff64_vec): Likewise. + +2002-08-22 Alan Modra + + * elf-bfd.h (struct elf_backend_data): Add struct elf_backend_data + param to elf_backend_copy_indirect_symbol. + (_bfd_elf_link_hash_copy_indirect): Likewise. + * elflink.h (elf_add_default_symbol, elf_fix_symbol_flags): Adjust + calls to copy_indirect_symbol. + * elf32-hppa.c (elf32_hppa_copy_indirect_symbol): Likewise. + * elf32-i386.c (elf_i386_copy_indirect_symbol): Likewise. + * elf32-s390.c (elf_s390_copy_indirect_symbol): Likewise. + * elf64-ppc.c (ppc64_elf_copy_indirect_symbol): Likewise. + * elf64-s390.c (elf_s390_copy_indirect_symbol): Likewise. + * elf64-x86-64.c (elf64_x86_64_copy_indirect_symbol): Likewise. + * elfxx-ia64.c (elfNN_ia64_hash_copy_indirect): Likewise. + * elfxx-mips.c (_bfd_mips_elf_copy_indirect_symbol): Likewise. + * elfxx-mips.h (_bfd_mips_elf_copy_indirect_symbol): Likewise. + * elf.c (_bfd_elf_link_hash_copy_indirect): Likewise. Properly + test refcounts for "used" values. + +2002-08-21 John David Anglin + + * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Add PARAMS to + argument declaration. + +2002-08-19 Elena Zannoni + + * archures.c (bfd_mach_ppc_e500): Added. + * bfd-in2.h: Rebuilt. + * cpu-powerpc.c (bfd_powerpc_archs): Added e500. + +2002-08-19 Alan Modra + + * elf32-m68hc12.c (elf_backend_can_gc_sections): False. + +2002-08-17 Andrew Cagney + + * elf.c (bfd_elf_get_elf_syms): Change type of `esym' to + `bfd_byte'. + +2002-08-17 Stan Cox + + * elfxx-mips.c (_bfd_mips_elf_modify_segment_map): Use the + IRIX 6 segment layout for NEWABI. + +2002-08-16 Stephen Clarke + + * bfd/elf32-sh.c (sh_elf_gc_mark_hook): For sh64, skip indirect + symbols when looking for section referred to by a relocation. + * bfd/elf64-sh.c (sh_elf64_gc_mark_hook): Likewise. + +2002-08-15 Alan Modra + + * elf32-i370.c: Move reloc enum to include/elf/i370.h. + +2002-08-15 Hans-Peter Nilsson + + * elf32-cris.c (elf_cris_discard_excess_program_dynamics): Add + missing check for whether the symbol is referenced by DSO before + unexporting it as an unneeded dynamic symbol. + 2002-08-14 H.J. Lu * libbfd.h: Regenerate. @@ -76,7 +742,7 @@ 2002-08-09 Graeme Peterson - * Makefile.am: Add entries for elf32-ppcqnx.c, and add + * Makefile.am: Add entries for elf32-ppcqnx.c, and add elf32-qnx.h dependency to elfarmqnx-nabi.c and elf32-i386qnx.c. * Makefile.in: Regenerate. * config.bfd: Add support for powerpc{le}-*-nto targets. @@ -102,7 +768,7 @@ 2002-08-08 H.J. Lu - * elflink.h (elf_add_default_symbol): Don't warn a defintion + * elflink.h (elf_add_default_symbol): Don't warn if a definition overrides an indirect versioned symbol. 2002-08-08 Jakub Jelinek @@ -1321,7 +1987,7 @@ * elf64-ppc.c (ppc64_elf_relocate_section): Allow unresolved relocs in opd for non-shared too. -2002-06-06 Jeffrey Law * elf32-h8300.c (elf32_h8_relax_section): Ignore uninteresting relocations. @@ -1918,7 +2584,7 @@ 2002-05-21 Thiemo Seufer - * bfd/bfd.c (bfd_get_arch_size): Remove bfd_set_error call for + * bfd.c (bfd_get_arch_size): Remove bfd_set_error call for non-ELF targets. 2002-05-21 Thiemo Seufer @@ -2364,7 +3030,7 @@ 2002-04-30 Mark Mitchell - * bfd/config.bfd: Add support for powerpc-*-windiss. + * config.bfd: Add support for powerpc-*-windiss. 2002-04-30 Tom Rix @@ -4014,7 +4680,7 @@ 2002-01-25 Steve Ellcey - * bfd/elfxx-ia64.c: Reset AIX vector function overrides for HP-UX. + * elfxx-ia64.c: Reset AIX vector function overrides for HP-UX. 2002-01-25 Philipp Thomas @@ -4048,8 +4714,7 @@ 2002-01-23 Steve Ellcey - * bfd/targets.c (bfd_elf32_ia64_hpux_big_vec): Add to - DEFAULT_VECTOR. + * targets.c (bfd_elf32_ia64_hpux_big_vec): Add to DEFAULT_VECTOR. (bfd_elf64_ia64_hpux_big_vec): Ditto. (bfd_elf32_h8300_vec): Ditto. diff -uprN binutils-2.13.90.0.4/bfd/ChangeLog-0001 binutils-2.13.90.0.10/bfd/ChangeLog-0001 --- binutils-2.13.90.0.4/bfd/ChangeLog-0001 Sun Feb 3 11:22:30 2002 +++ binutils-2.13.90.0.10/bfd/ChangeLog-0001 Fri Sep 27 08:33:09 2002 @@ -1514,7 +1514,7 @@ 2001-10-08 Aldy Hernandez - * bfd/config.bfd (targ_cpu): Add arm9e-*-elf. + * config.bfd (targ_cpu): Add arm9e-*-elf. 2001-10-06 Stephane Carrez @@ -2858,13 +2858,13 @@ 2001-08-31 Eric Christopher Jason Eckhardt - * bfd/archures.c: Add mipsisa32 and mipsisa64. Remove mips32, + * archures.c: Add mipsisa32 and mipsisa64. Remove mips32, mips32_4k and mips64. - * bfd/aoutx.h: Remove bfd_mach_mips32, bfd_mach_mips32_4k, + * aoutx.h: Remove bfd_mach_mips32, bfd_mach_mips32_4k, bfd_mach_mips64. Add bfd_mach_mipsisa32, bfd_mach_mipsisa64. - * bfd/cpu-mips.c: Ditto. - * bfd/elf32-mips.c (_bfd_mips_elf_final_write_processing): Ditto. - * bfd/bfd-in2.h: Regenerate. + * cpu-mips.c: Ditto. + * elf32-mips.c (_bfd_mips_elf_final_write_processing): Ditto. + * bfd-in2.h: Regenerate. 2001-08-31 Jakub Jelinek @@ -3726,7 +3726,7 @@ 2001-07-04 H.J. Lu - * bfd/elf32-mips.c (_bfd_mips_elf_final_write_processing): + * elf32-mips.c (_bfd_mips_elf_final_write_processing): Handle bfd_mach_mips4400, bfd_mach_mips4600 and bfd_mach_mips5000. @@ -4529,7 +4529,7 @@ * elf32-openrisc.c (openrisc_elf_howto_table): Do not complain about overflow in R_OPENRISC_LO_16_IN_INSN and - R_OPENRISC_HI_16_IN_INSN.Index: bfd/elf32-openrisc.c + R_OPENRISC_HI_16_IN_INSN. 2001-04-30 H.J. Lu diff -uprN binutils-2.13.90.0.4/bfd/ChangeLog.linux binutils-2.13.90.0.10/bfd/ChangeLog.linux --- binutils-2.13.90.0.4/bfd/ChangeLog.linux Sun Feb 3 11:22:30 2002 +++ binutils-2.13.90.0.10/bfd/ChangeLog.linux Wed Oct 2 10:17:19 2002 @@ -1,3 +1,9 @@ +2002-10-02 H.J. Lu + + * elf32-ppc.c (ppc_elf_check_relocs): Do output relocations for + non-debugging sections. + (ppc_elf_relocate_section): Likewise. + 2001-12-17 H.J. Lu * elflink.h (elf_link_check_versioned_symbol): Updated the call diff -uprN binutils-2.13.90.0.4/bfd/Makefile.am binutils-2.13.90.0.10/bfd/Makefile.am --- binutils-2.13.90.0.4/bfd/Makefile.am Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/bfd/Makefile.am Wed Oct 9 21:09:41 2002 @@ -89,6 +89,7 @@ ALL_MACHINES = \ cpu-sh.lo \ cpu-sparc.lo \ cpu-tic30.lo \ + cpu-tic4x.lo \ cpu-tic54x.lo \ cpu-tic80.lo \ cpu-v850.lo \ @@ -140,6 +141,7 @@ ALL_MACHINES_CFILES = \ cpu-sh.c \ cpu-sparc.c \ cpu-tic30.c \ + cpu-tic4x.c \ cpu-tic54x.c \ cpu-tic80.c \ cpu-v850.c \ @@ -185,6 +187,7 @@ BFD32_BACKENDS = \ coff-stgo32.lo \ coff-svm68k.lo \ coff-tic30.lo \ + coff-tic4x.lo \ coff-tic54x.lo \ coff-tic80.lo \ coff-u68k.lo \ @@ -213,6 +216,7 @@ BFD32_BACKENDS = \ elf32-hppa.lo \ elf32-i370.lo \ elf32-i386.lo \ + elf32-i386-fbsd.lo \ elf32-i386qnx.lo \ elf32-i860.lo \ elf32-i960.lo \ @@ -238,8 +242,10 @@ BFD32_BACKENDS = \ elf32-sh-lin.lo \ elf32-sh64.lo \ elf32-sh64-com.lo \ + elf32-sh64-lin.lo \ elf32-sh-nbsd.lo \ elf32-sh64-nbsd.lo \ + elf32-shqnx.lo \ elf32-sparc.lo \ elf32-v850.lo \ elf32-vax.lo \ @@ -345,6 +351,7 @@ BFD32_BACKENDS_CFILES = \ coff-stgo32.c \ coff-svm68k.c \ coff-tic30.c \ + coff-tic4x.c \ coff-tic54x.c \ coff-tic80.c \ coff-u68k.c \ @@ -373,6 +380,7 @@ BFD32_BACKENDS_CFILES = \ elf32-hppa.c \ elf32-i370.c \ elf32-i386.c \ + elf32-i386-fbsd.c \ elf32-i386qnx.c \ elf32-i860.c \ elf32-i960.c \ @@ -394,11 +402,13 @@ BFD32_BACKENDS_CFILES = \ elf32-ppcqnx.c \ elf32-sh64.c \ elf32-sh64-com.c \ + elf32-sh64-lin.c \ elf32-s390.c \ elf32-sh.c \ elf32-sh-lin.c \ elf32-sh-nbsd.c \ elf32-sh64-nbsd.c \ + elf32-shqnx.c \ elf32-sparc.c \ elf32-v850.c \ elf32-vax.c \ @@ -481,6 +491,7 @@ BFD64_BACKENDS = \ efi-app-ia64.lo \ elf64-x86-64.lo \ elf64-alpha.lo \ + elf64-alpha-fbsd.lo \ elf64-hppa.lo \ elf64-ia64.lo \ elf64-gen.lo \ @@ -488,6 +499,7 @@ BFD64_BACKENDS = \ elf64-mips.lo \ elf64-mmix.lo \ elf64-sh64.lo \ + elf64-sh64-lin.lo \ elf64-sh64-nbsd.lo \ elf64-ppc.lo \ elf64-s390.lo \ @@ -507,6 +519,7 @@ BFD64_BACKENDS_CFILES = \ efi-app-ia64.c \ elf64-x86-64.c \ elf64-alpha.c \ + elf64-alpha-fbsd.c \ elf64-hppa.c \ elf64-gen.c \ elfn32-mips.c \ @@ -515,6 +528,7 @@ BFD64_BACKENDS_CFILES = \ elf64-ppc.c \ elf64-s390.c \ elf64-sh64.c \ + elf64-sh64-lin.c \ elf64-sh64-nbsd.c \ elf64-sparc.c \ elf64.c \ @@ -933,6 +947,7 @@ cpu-s390.lo: cpu-s390.c $(INCDIR)/filena cpu-sh.lo: cpu-sh.c $(INCDIR)/filenames.h cpu-sparc.lo: cpu-sparc.c $(INCDIR)/filenames.h cpu-tic30.lo: cpu-tic30.c $(INCDIR)/filenames.h +cpu-tic4x.lo: cpu-tic4x.c $(INCDIR)/filenames.h cpu-tic54x.lo: cpu-tic54x.c $(INCDIR)/filenames.h cpu-tic80.lo: cpu-tic80.c $(INCDIR)/filenames.h cpu-v850.lo: cpu-v850.c $(INCDIR)/filenames.h $(INCDIR)/safe-ctype.h @@ -1051,6 +1066,9 @@ coff-svm68k.lo: coff-svm68k.c coff-m68k. coff-tic30.lo: coff-tic30.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \ $(INCDIR)/coff/tic30.h $(INCDIR)/coff/external.h $(INCDIR)/coff/internal.h \ libcoff.h coffcode.h coffswap.h +coff-tic4x.lo: coff-tic4x.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \ + $(INCDIR)/coff/tic4x.h $(INCDIR)/coff/ti.h $(INCDIR)/coff/internal.h \ + libcoff.h coffcode.h coffswap.h coff-tic54x.lo: coff-tic54x.c $(INCDIR)/filenames.h \ $(INCDIR)/bfdlink.h $(INCDIR)/coff/tic54x.h $(INCDIR)/coff/ti.h \ $(INCDIR)/coff/internal.h libcoff.h coffcode.h coffswap.h @@ -1102,9 +1120,10 @@ elfarm-nabi.lo: elfarm-nabi.c $(INCDIR)/ $(INCDIR)/filenames.h elf-bfd.h $(INCDIR)/elf/common.h \ $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h \ elf32-arm.h elf32-target.h -elfarmqnx-nabi.lo: elfarmqnx-nabi.c $(INCDIR)/elf/arm.h $(INCDIR)/elf/reloc-macros.h \ - $(INCDIR)/filenames.h elf-bfd.h elf32-qnx.h $(INCDIR)/elf/common.h \ - $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h \ +elfarmqnx-nabi.lo: elfarmqnx-nabi.c elfarm-nabi.c $(INCDIR)/elf/arm.h \ + $(INCDIR)/elf/reloc-macros.h $(INCDIR)/filenames.h \ + elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ + $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h elf32-qnx.h \ elf32-arm.h elf32-target.h elf32-avr.lo: elf32-avr.c $(INCDIR)/filenames.h elf-bfd.h \ $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \ @@ -1147,15 +1166,20 @@ elf32-hppa.lo: elf32-hppa.c $(INCDIR)/fi libhppa.h elf32-hppa.h elf-hppa.h elf32-target.h elf32-i370.lo: elf32-i370.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \ elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ - $(INCDIR)/elf/external.h $(INCDIR)/elf/i370.h elf32-target.h + $(INCDIR)/elf/external.h $(INCDIR)/elf/i370.h $(INCDIR)/elf/reloc-macros.h \ + elf32-target.h elf32-i386.lo: elf32-i386.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \ elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/elf/i386.h $(INCDIR)/elf/reloc-macros.h \ elf32-target.h +elf32-i386-fbsd.lo: elf32-i386-fbsd.c $(INCDIR)/filenames.h \ + elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ + $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h elf32-i386.c \ + $(INCDIR)/elf/i386.h $(INCDIR)/elf/reloc-macros.h elf32-target.h elf32-i386qnx.lo: elf32-i386qnx.c elf32-i386.c $(INCDIR)/filenames.h \ - $(INCDIR)/bfdlink.h elf-bfd.h elf32-qnx.h $(INCDIR)/elf/common.h \ + $(INCDIR)/bfdlink.h elf-bfd.h $(INCDIR)/elf/common.h \ $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/elf/i386.h \ - $(INCDIR)/elf/reloc-macros.h elf32-target.h + $(INCDIR)/elf/reloc-macros.h elf32-qnx.h elf32-target.h elf32-i860.lo: elf32-i860.c $(INCDIR)/filenames.h elf-bfd.h \ $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \ $(INCDIR)/bfdlink.h $(INCDIR)/elf/i860.h $(INCDIR)/elf/reloc-macros.h \ @@ -1177,13 +1201,14 @@ elf32-m68k.lo: elf32-m68k.c $(INCDIR)/fi $(INCDIR)/elf/external.h $(INCDIR)/elf/m68k.h $(INCDIR)/elf/reloc-macros.h \ elf32-target.h elf32-m68hc11.lo: elf32-m68hc11.c $(INCDIR)/filenames.h \ - elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ - $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/m68hc11.h \ + $(INCDIR)/bfdlink.h elf-bfd.h $(INCDIR)/elf/common.h \ + $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/elf/m68hc11.h \ $(INCDIR)/elf/reloc-macros.h elf32-target.h elf32-m68hc12.lo: elf32-m68hc12.c $(INCDIR)/filenames.h \ elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/m68hc11.h \ - $(INCDIR)/elf/reloc-macros.h elf32-target.h + $(INCDIR)/elf/reloc-macros.h $(INCDIR)/opcode/m68hc11.h \ + elf32-target.h elf32-m88k.lo: elf32-m88k.c $(INCDIR)/filenames.h elf-bfd.h \ $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \ $(INCDIR)/bfdlink.h elf32-target.h @@ -1226,10 +1251,10 @@ elf32-ppc.lo: elf32-ppc.c $(INCDIR)/file elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/elf/ppc.h $(INCDIR)/elf/reloc-macros.h \ elf32-target.h -elf32-ppcqnx.lo: elf32-ppcqnx.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \ - elf-bfd.h elf32-qnx.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ - $(INCDIR)/elf/external.h $(INCDIR)/elf/ppc.h $(INCDIR)/elf/reloc-macros.h \ - elf32-target.h +elf32-ppcqnx.lo: elf32-ppcqnx.c elf32-ppc.c $(INCDIR)/filenames.h \ + $(INCDIR)/bfdlink.h elf-bfd.h $(INCDIR)/elf/common.h \ + $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/elf/ppc.h \ + $(INCDIR)/elf/reloc-macros.h elf32-qnx.h elf32-target.h elf32-sh64.lo: elf32-sh64.c $(INCDIR)/filenames.h elf-bfd.h \ $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \ $(INCDIR)/bfdlink.h $(srcdir)/../opcodes/sh64-opc.h \ @@ -1239,6 +1264,11 @@ elf32-sh64-com.lo: elf32-sh64-com.c $(IN elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/sh.h \ $(INCDIR)/elf/reloc-macros.h $(srcdir)/../opcodes/sh64-opc.h +elf32-sh64-lin.lo: elf32-sh64-lin.c elf32-sh64.c $(INCDIR)/filenames.h \ + elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ + $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/../opcodes/sh64-opc.h \ + elf32-sh.c $(INCDIR)/elf/sh.h $(INCDIR)/elf/reloc-macros.h \ + elf32-target.h elf32-s390.lo: elf32-s390.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \ elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/elf/s390.h $(INCDIR)/elf/reloc-macros.h \ @@ -1260,6 +1290,10 @@ elf32-sh64-nbsd.lo: elf32-sh64-nbsd.c el $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h \ $(srcdir)/../opcodes/sh64-opc.h elf32-sh.c $(INCDIR)/elf/sh.h \ $(INCDIR)/elf/reloc-macros.h elf32-target.h +elf32-shqnx.lo: elf32-shqnx.c elf32-sh.c $(INCDIR)/filenames.h \ + $(INCDIR)/bfdlink.h elf-bfd.h $(INCDIR)/elf/common.h \ + $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/elf/sh.h \ + $(INCDIR)/elf/reloc-macros.h elf32-qnx.h elf32-target.h elf32-sparc.lo: elf32-sparc.c $(INCDIR)/filenames.h \ $(INCDIR)/bfdlink.h elf-bfd.h $(INCDIR)/elf/common.h \ $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/elf/sparc.h \ @@ -1508,6 +1542,13 @@ elf64-alpha.lo: elf64-alpha.c $(INCDIR)/ $(INCDIR)/coff/sym.h $(INCDIR)/coff/symconst.h $(INCDIR)/coff/ecoff.h \ $(INCDIR)/coff/alpha.h $(INCDIR)/aout/ar.h libcoff.h \ libecoff.h ecoffswap.h elf64-target.h +elf64-alpha-fbsd.lo: elf64-alpha-fbsd.c $(INCDIR)/filenames.h \ + elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ + $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h elf64-alpha.c \ + $(INCDIR)/elf/alpha.h $(INCDIR)/elf/reloc-macros.h \ + $(INCDIR)/coff/internal.h $(INCDIR)/coff/sym.h $(INCDIR)/coff/symconst.h \ + $(INCDIR)/coff/ecoff.h $(INCDIR)/coff/alpha.h $(INCDIR)/aout/ar.h \ + libcoff.h libecoff.h ecoffswap.h elf64-target.h elf64-hppa.lo: elf64-hppa.c $(INCDIR)/alloca-conf.h \ $(INCDIR)/filenames.h elf-bfd.h $(INCDIR)/elf/common.h \ $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h \ @@ -1516,12 +1557,13 @@ elf64-hppa.lo: elf64-hppa.c $(INCDIR)/al elf64-gen.lo: elf64-gen.c $(INCDIR)/filenames.h elf-bfd.h \ $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \ $(INCDIR)/bfdlink.h elf64-target.h -elfn32-mips.lo: elfn32-mips.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \ - genlink.h elf-bfd.h elfxx-mips.h $(INCDIR)/elf/common.h \ - $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/elf/mips.h \ - $(INCDIR)/elf/reloc-macros.h $(INCDIR)/coff/sym.h \ - $(INCDIR)/coff/symconst.h $(INCDIR)/coff/internal.h $(INCDIR)/coff/ecoff.h \ - $(INCDIR)/coff/mips.h ecoffswap.h elf32-target.h +elfn32-mips.lo: elfn32-mips.c $(INCDIR)/filenames.h \ + $(INCDIR)/bfdlink.h genlink.h elf-bfd.h $(INCDIR)/elf/common.h \ + $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h elfxx-mips.h \ + $(INCDIR)/elf/mips.h $(INCDIR)/elf/reloc-macros.h $(INCDIR)/coff/sym.h \ + $(INCDIR)/coff/symconst.h $(INCDIR)/coff/internal.h \ + $(INCDIR)/coff/ecoff.h $(INCDIR)/coff/mips.h $(INCDIR)/coff/external.h \ + ecoffswap.h elf32-target.h elf64-mips.lo: elf64-mips.c $(INCDIR)/filenames.h $(INCDIR)/aout/ar.h \ $(INCDIR)/bfdlink.h genlink.h elf-bfd.h $(INCDIR)/elf/common.h \ $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h elfxx-mips.h \ @@ -1545,6 +1587,10 @@ elf64-sh64.lo: elf64-sh64.c $(INCDIR)/fi elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/elf/sh.h $(INCDIR)/elf/reloc-macros.h \ elf64-target.h +elf64-sh64-lin.lo: elf64-sh64-lin.c elf64-sh64.c $(INCDIR)/filenames.h \ + $(INCDIR)/bfdlink.h elf-bfd.h $(INCDIR)/elf/common.h \ + $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/elf/sh.h \ + $(INCDIR)/elf/reloc-macros.h elf64-target.h elf64-sh64-nbsd.lo: elf64-sh64-nbsd.c elf64-sh64.c \ $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h elf-bfd.h \ $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \ diff -uprN binutils-2.13.90.0.4/bfd/Makefile.in binutils-2.13.90.0.10/bfd/Makefile.in --- binutils-2.13.90.0.4/bfd/Makefile.in Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/bfd/Makefile.in Wed Oct 9 21:09:41 2002 @@ -215,6 +215,7 @@ ALL_MACHINES = \ cpu-sh.lo \ cpu-sparc.lo \ cpu-tic30.lo \ + cpu-tic4x.lo \ cpu-tic54x.lo \ cpu-tic80.lo \ cpu-v850.lo \ @@ -267,6 +268,7 @@ ALL_MACHINES_CFILES = \ cpu-sh.c \ cpu-sparc.c \ cpu-tic30.c \ + cpu-tic4x.c \ cpu-tic54x.c \ cpu-tic80.c \ cpu-v850.c \ @@ -313,6 +315,7 @@ BFD32_BACKENDS = \ coff-stgo32.lo \ coff-svm68k.lo \ coff-tic30.lo \ + coff-tic4x.lo \ coff-tic54x.lo \ coff-tic80.lo \ coff-u68k.lo \ @@ -341,6 +344,7 @@ BFD32_BACKENDS = \ elf32-hppa.lo \ elf32-i370.lo \ elf32-i386.lo \ + elf32-i386-fbsd.lo \ elf32-i386qnx.lo \ elf32-i860.lo \ elf32-i960.lo \ @@ -366,8 +370,10 @@ BFD32_BACKENDS = \ elf32-sh-lin.lo \ elf32-sh64.lo \ elf32-sh64-com.lo \ + elf32-sh64-lin.lo \ elf32-sh-nbsd.lo \ elf32-sh64-nbsd.lo \ + elf32-shqnx.lo \ elf32-sparc.lo \ elf32-v850.lo \ elf32-vax.lo \ @@ -474,6 +480,7 @@ BFD32_BACKENDS_CFILES = \ coff-stgo32.c \ coff-svm68k.c \ coff-tic30.c \ + coff-tic4x.c \ coff-tic54x.c \ coff-tic80.c \ coff-u68k.c \ @@ -502,6 +509,7 @@ BFD32_BACKENDS_CFILES = \ elf32-hppa.c \ elf32-i370.c \ elf32-i386.c \ + elf32-i386-fbsd.c \ elf32-i386qnx.c \ elf32-i860.c \ elf32-i960.c \ @@ -523,11 +531,13 @@ BFD32_BACKENDS_CFILES = \ elf32-ppcqnx.c \ elf32-sh64.c \ elf32-sh64-com.c \ + elf32-sh64-lin.c \ elf32-s390.c \ elf32-sh.c \ elf32-sh-lin.c \ elf32-sh-nbsd.c \ elf32-sh64-nbsd.c \ + elf32-shqnx.c \ elf32-sparc.c \ elf32-v850.c \ elf32-vax.c \ @@ -611,6 +621,7 @@ BFD64_BACKENDS = \ efi-app-ia64.lo \ elf64-x86-64.lo \ elf64-alpha.lo \ + elf64-alpha-fbsd.lo \ elf64-hppa.lo \ elf64-ia64.lo \ elf64-gen.lo \ @@ -618,6 +629,7 @@ BFD64_BACKENDS = \ elf64-mips.lo \ elf64-mmix.lo \ elf64-sh64.lo \ + elf64-sh64-lin.lo \ elf64-sh64-nbsd.lo \ elf64-ppc.lo \ elf64-s390.lo \ @@ -638,6 +650,7 @@ BFD64_BACKENDS_CFILES = \ efi-app-ia64.c \ elf64-x86-64.c \ elf64-alpha.c \ + elf64-alpha-fbsd.c \ elf64-hppa.c \ elf64-gen.c \ elfn32-mips.c \ @@ -646,6 +659,7 @@ BFD64_BACKENDS_CFILES = \ elf64-ppc.c \ elf64-s390.c \ elf64-sh64.c \ + elf64-sh64-lin.c \ elf64-sh64-nbsd.c \ elf64-sparc.c \ elf64.c \ @@ -788,7 +802,7 @@ configure.in DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) -TAR = gtar +TAR = tar GZIP_ENV = --best SOURCES = $(libbfd_a_SOURCES) $(libbfd_la_SOURCES) OBJECTS = $(libbfd_a_OBJECTS) $(libbfd_la_OBJECTS) @@ -1463,6 +1477,7 @@ cpu-s390.lo: cpu-s390.c $(INCDIR)/filena cpu-sh.lo: cpu-sh.c $(INCDIR)/filenames.h cpu-sparc.lo: cpu-sparc.c $(INCDIR)/filenames.h cpu-tic30.lo: cpu-tic30.c $(INCDIR)/filenames.h +cpu-tic4x.lo: cpu-tic4x.c $(INCDIR)/filenames.h cpu-tic54x.lo: cpu-tic54x.c $(INCDIR)/filenames.h cpu-tic80.lo: cpu-tic80.c $(INCDIR)/filenames.h cpu-v850.lo: cpu-v850.c $(INCDIR)/filenames.h $(INCDIR)/safe-ctype.h @@ -1581,6 +1596,9 @@ coff-svm68k.lo: coff-svm68k.c coff-m68k. coff-tic30.lo: coff-tic30.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \ $(INCDIR)/coff/tic30.h $(INCDIR)/coff/external.h $(INCDIR)/coff/internal.h \ libcoff.h coffcode.h coffswap.h +coff-tic4x.lo: coff-tic4x.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \ + $(INCDIR)/coff/tic4x.h $(INCDIR)/coff/ti.h $(INCDIR)/coff/internal.h \ + libcoff.h coffcode.h coffswap.h coff-tic54x.lo: coff-tic54x.c $(INCDIR)/filenames.h \ $(INCDIR)/bfdlink.h $(INCDIR)/coff/tic54x.h $(INCDIR)/coff/ti.h \ $(INCDIR)/coff/internal.h libcoff.h coffcode.h coffswap.h @@ -1632,9 +1650,10 @@ elfarm-nabi.lo: elfarm-nabi.c $(INCDIR)/ $(INCDIR)/filenames.h elf-bfd.h $(INCDIR)/elf/common.h \ $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h \ elf32-arm.h elf32-target.h -elfarmqnx-nabi.lo: elfarmqnx-nabi.c $(INCDIR)/elf/arm.h $(INCDIR)/elf/reloc-macros.h \ - $(INCDIR)/filenames.h elf-bfd.h elf32-qnx.h $(INCDIR)/elf/common.h \ - $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h \ +elfarmqnx-nabi.lo: elfarmqnx-nabi.c elfarm-nabi.c $(INCDIR)/elf/arm.h \ + $(INCDIR)/elf/reloc-macros.h $(INCDIR)/filenames.h \ + elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ + $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h elf32-qnx.h \ elf32-arm.h elf32-target.h elf32-avr.lo: elf32-avr.c $(INCDIR)/filenames.h elf-bfd.h \ $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \ @@ -1677,15 +1696,20 @@ elf32-hppa.lo: elf32-hppa.c $(INCDIR)/fi libhppa.h elf32-hppa.h elf-hppa.h elf32-target.h elf32-i370.lo: elf32-i370.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \ elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ - $(INCDIR)/elf/external.h $(INCDIR)/elf/i370.h elf32-target.h + $(INCDIR)/elf/external.h $(INCDIR)/elf/i370.h $(INCDIR)/elf/reloc-macros.h \ + elf32-target.h elf32-i386.lo: elf32-i386.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \ elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/elf/i386.h $(INCDIR)/elf/reloc-macros.h \ elf32-target.h +elf32-i386-fbsd.lo: elf32-i386-fbsd.c $(INCDIR)/filenames.h \ + elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ + $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h elf32-i386.c \ + $(INCDIR)/elf/i386.h $(INCDIR)/elf/reloc-macros.h elf32-target.h elf32-i386qnx.lo: elf32-i386qnx.c elf32-i386.c $(INCDIR)/filenames.h \ - $(INCDIR)/bfdlink.h elf-bfd.h elf32-qnx.h $(INCDIR)/elf/common.h \ + $(INCDIR)/bfdlink.h elf-bfd.h $(INCDIR)/elf/common.h \ $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/elf/i386.h \ - $(INCDIR)/elf/reloc-macros.h elf32-target.h + $(INCDIR)/elf/reloc-macros.h elf32-qnx.h elf32-target.h elf32-i860.lo: elf32-i860.c $(INCDIR)/filenames.h elf-bfd.h \ $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \ $(INCDIR)/bfdlink.h $(INCDIR)/elf/i860.h $(INCDIR)/elf/reloc-macros.h \ @@ -1707,13 +1731,14 @@ elf32-m68k.lo: elf32-m68k.c $(INCDIR)/fi $(INCDIR)/elf/external.h $(INCDIR)/elf/m68k.h $(INCDIR)/elf/reloc-macros.h \ elf32-target.h elf32-m68hc11.lo: elf32-m68hc11.c $(INCDIR)/filenames.h \ - elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ - $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/m68hc11.h \ + $(INCDIR)/bfdlink.h elf-bfd.h $(INCDIR)/elf/common.h \ + $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/elf/m68hc11.h \ $(INCDIR)/elf/reloc-macros.h elf32-target.h elf32-m68hc12.lo: elf32-m68hc12.c $(INCDIR)/filenames.h \ elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/m68hc11.h \ - $(INCDIR)/elf/reloc-macros.h elf32-target.h + $(INCDIR)/elf/reloc-macros.h $(INCDIR)/opcode/m68hc11.h \ + elf32-target.h elf32-m88k.lo: elf32-m88k.c $(INCDIR)/filenames.h elf-bfd.h \ $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \ $(INCDIR)/bfdlink.h elf32-target.h @@ -1756,10 +1781,10 @@ elf32-ppc.lo: elf32-ppc.c $(INCDIR)/file elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/elf/ppc.h $(INCDIR)/elf/reloc-macros.h \ elf32-target.h -elf32-ppcqnx.lo: elf32-ppcqnx.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \ - elf-bfd.h elf32-qnx.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ - $(INCDIR)/elf/external.h $(INCDIR)/elf/ppc.h $(INCDIR)/elf/reloc-macros.h \ - elf32-target.h +elf32-ppcqnx.lo: elf32-ppcqnx.c elf32-ppc.c $(INCDIR)/filenames.h \ + $(INCDIR)/bfdlink.h elf-bfd.h $(INCDIR)/elf/common.h \ + $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/elf/ppc.h \ + $(INCDIR)/elf/reloc-macros.h elf32-qnx.h elf32-target.h elf32-sh64.lo: elf32-sh64.c $(INCDIR)/filenames.h elf-bfd.h \ $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \ $(INCDIR)/bfdlink.h $(srcdir)/../opcodes/sh64-opc.h \ @@ -1769,6 +1794,11 @@ elf32-sh64-com.lo: elf32-sh64-com.c $(IN elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/sh.h \ $(INCDIR)/elf/reloc-macros.h $(srcdir)/../opcodes/sh64-opc.h +elf32-sh64-lin.lo: elf32-sh64-lin.c elf32-sh64.c $(INCDIR)/filenames.h \ + elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ + $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/../opcodes/sh64-opc.h \ + elf32-sh.c $(INCDIR)/elf/sh.h $(INCDIR)/elf/reloc-macros.h \ + elf32-target.h elf32-s390.lo: elf32-s390.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \ elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/elf/s390.h $(INCDIR)/elf/reloc-macros.h \ @@ -1790,6 +1820,10 @@ elf32-sh64-nbsd.lo: elf32-sh64-nbsd.c el $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h \ $(srcdir)/../opcodes/sh64-opc.h elf32-sh.c $(INCDIR)/elf/sh.h \ $(INCDIR)/elf/reloc-macros.h elf32-target.h +elf32-shqnx.lo: elf32-shqnx.c elf32-sh.c $(INCDIR)/filenames.h \ + $(INCDIR)/bfdlink.h elf-bfd.h $(INCDIR)/elf/common.h \ + $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/elf/sh.h \ + $(INCDIR)/elf/reloc-macros.h elf32-qnx.h elf32-target.h elf32-sparc.lo: elf32-sparc.c $(INCDIR)/filenames.h \ $(INCDIR)/bfdlink.h elf-bfd.h $(INCDIR)/elf/common.h \ $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/elf/sparc.h \ @@ -2038,6 +2072,13 @@ elf64-alpha.lo: elf64-alpha.c $(INCDIR)/ $(INCDIR)/coff/sym.h $(INCDIR)/coff/symconst.h $(INCDIR)/coff/ecoff.h \ $(INCDIR)/coff/alpha.h $(INCDIR)/aout/ar.h libcoff.h \ libecoff.h ecoffswap.h elf64-target.h +elf64-alpha-fbsd.lo: elf64-alpha-fbsd.c $(INCDIR)/filenames.h \ + elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ + $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h elf64-alpha.c \ + $(INCDIR)/elf/alpha.h $(INCDIR)/elf/reloc-macros.h \ + $(INCDIR)/coff/internal.h $(INCDIR)/coff/sym.h $(INCDIR)/coff/symconst.h \ + $(INCDIR)/coff/ecoff.h $(INCDIR)/coff/alpha.h $(INCDIR)/aout/ar.h \ + libcoff.h libecoff.h ecoffswap.h elf64-target.h elf64-hppa.lo: elf64-hppa.c $(INCDIR)/alloca-conf.h \ $(INCDIR)/filenames.h elf-bfd.h $(INCDIR)/elf/common.h \ $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h \ @@ -2046,12 +2087,13 @@ elf64-hppa.lo: elf64-hppa.c $(INCDIR)/al elf64-gen.lo: elf64-gen.c $(INCDIR)/filenames.h elf-bfd.h \ $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \ $(INCDIR)/bfdlink.h elf64-target.h -elfn32-mips.lo: elfn32-mips.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \ - genlink.h elf-bfd.h elfxx-mips.h $(INCDIR)/elf/common.h \ - $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/elf/mips.h \ - $(INCDIR)/elf/reloc-macros.h $(INCDIR)/coff/sym.h \ - $(INCDIR)/coff/symconst.h $(INCDIR)/coff/internal.h $(INCDIR)/coff/ecoff.h \ - $(INCDIR)/coff/mips.h ecoffswap.h elf32-target.h +elfn32-mips.lo: elfn32-mips.c $(INCDIR)/filenames.h \ + $(INCDIR)/bfdlink.h genlink.h elf-bfd.h $(INCDIR)/elf/common.h \ + $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h elfxx-mips.h \ + $(INCDIR)/elf/mips.h $(INCDIR)/elf/reloc-macros.h $(INCDIR)/coff/sym.h \ + $(INCDIR)/coff/symconst.h $(INCDIR)/coff/internal.h \ + $(INCDIR)/coff/ecoff.h $(INCDIR)/coff/mips.h $(INCDIR)/coff/external.h \ + ecoffswap.h elf32-target.h elf64-mips.lo: elf64-mips.c $(INCDIR)/filenames.h $(INCDIR)/aout/ar.h \ $(INCDIR)/bfdlink.h genlink.h elf-bfd.h $(INCDIR)/elf/common.h \ $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h elfxx-mips.h \ @@ -2075,6 +2117,10 @@ elf64-sh64.lo: elf64-sh64.c $(INCDIR)/fi elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/elf/sh.h $(INCDIR)/elf/reloc-macros.h \ elf64-target.h +elf64-sh64-lin.lo: elf64-sh64-lin.c elf64-sh64.c $(INCDIR)/filenames.h \ + $(INCDIR)/bfdlink.h elf-bfd.h $(INCDIR)/elf/common.h \ + $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/elf/sh.h \ + $(INCDIR)/elf/reloc-macros.h elf64-target.h elf64-sh64-nbsd.lo: elf64-sh64-nbsd.c elf64-sh64.c \ $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h elf-bfd.h \ $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \ diff -uprN binutils-2.13.90.0.4/bfd/aoutx.h binutils-2.13.90.0.10/bfd/aoutx.h --- binutils-2.13.90.0.4/bfd/aoutx.h Thu Aug 8 22:49:55 2002 +++ binutils-2.13.90.0.10/bfd/aoutx.h Fri Sep 27 08:33:09 2002 @@ -318,6 +318,7 @@ NAME(aout,reloc_type_lookup) (abfd,code) /* std relocs. */ switch (code) { + STD (BFD_RELOC_8, 0); STD (BFD_RELOC_16, 1); STD (BFD_RELOC_32, 2); STD (BFD_RELOC_8_PCREL, 4); @@ -756,7 +757,9 @@ NAME(aout,machine_type) (arch, machine, break; case bfd_arch_i386: - if (machine == 0) + if (machine == 0 + || machine == bfd_mach_i386_i386 + || machine == bfd_mach_i386_i386_intel_syntax) arch_flags = M_386; break; diff -uprN binutils-2.13.90.0.4/bfd/archures.c binutils-2.13.90.0.10/bfd/archures.c --- binutils-2.13.90.0.4/bfd/archures.c Wed Jul 17 11:38:29 2002 +++ binutils-2.13.90.0.10/bfd/archures.c Wed Oct 2 10:17:19 2002 @@ -129,11 +129,14 @@ DESCRIPTION .#define bfd_mach_mips4010 4010 .#define bfd_mach_mips4100 4100 .#define bfd_mach_mips4111 4111 +.#define bfd_mach_mips4120 4120 .#define bfd_mach_mips4300 4300 .#define bfd_mach_mips4400 4400 .#define bfd_mach_mips4600 4600 .#define bfd_mach_mips4650 4650 .#define bfd_mach_mips5000 5000 +.#define bfd_mach_mips5400 5400 +.#define bfd_mach_mips5500 5500 .#define bfd_mach_mips6000 6000 .#define bfd_mach_mips8000 8000 .#define bfd_mach_mips10000 10000 @@ -182,6 +185,7 @@ DESCRIPTION .#define bfd_mach_ppc_rs64ii 642 .#define bfd_mach_ppc_rs64iii 643 .#define bfd_mach_ppc_7400 7400 +.#define bfd_mach_ppc_e500 500 . bfd_arch_rs6000, {* IBM RS/6000 *} .#define bfd_mach_rs6k 0 .#define bfd_mach_rs6k_rs1 6001 @@ -227,12 +231,14 @@ DESCRIPTION . bfd_arch_ns32k, {* National Semiconductors ns32000 *} . bfd_arch_w65, {* WDC 65816 *} . bfd_arch_tic30, {* Texas Instruments TMS320C30 *} +. bfd_arch_tic4x, {* Texas Instruments TMS320C3X/4X *} +.#define bfd_mach_c3x 30 +.#define bfd_mach_c4x 40 . bfd_arch_tic54x, {* Texas Instruments TMS320C54X *} . bfd_arch_tic80, {* TI TMS320c80 (MVP) *} . bfd_arch_v850, {* NEC V850 *} .#define bfd_mach_v850 0 .#define bfd_mach_v850e 'E' -.#define bfd_mach_v850ea 'A' . bfd_arch_arc, {* ARC Cores *} .#define bfd_mach_arc_5 0 .#define bfd_mach_arc_6 1 @@ -357,6 +363,7 @@ extern const bfd_arch_info_type bfd_s390 extern const bfd_arch_info_type bfd_sh_arch; extern const bfd_arch_info_type bfd_sparc_arch; extern const bfd_arch_info_type bfd_tic30_arch; +extern const bfd_arch_info_type bfd_tic4x_arch; extern const bfd_arch_info_type bfd_tic54x_arch; extern const bfd_arch_info_type bfd_tic80_arch; extern const bfd_arch_info_type bfd_v850_arch; @@ -411,6 +418,7 @@ static const bfd_arch_info_type * const &bfd_sh_arch, &bfd_sparc_arch, &bfd_tic30_arch, + &bfd_tic4x_arch, &bfd_tic54x_arch, &bfd_tic80_arch, &bfd_v850_arch, diff -uprN binutils-2.13.90.0.4/bfd/bfd-in.h binutils-2.13.90.0.10/bfd/bfd-in.h --- binutils-2.13.90.0.4/bfd/bfd-in.h Fri Jun 7 19:22:17 2002 +++ binutils-2.13.90.0.10/bfd/bfd-in.h Fri Sep 27 08:33:09 2002 @@ -267,6 +267,9 @@ bfd_format; /* This flag indicates that the BFD contents are actually cached in memory. If this is set, iostream points to a bfd_in_memory struct. */ #define BFD_IN_MEMORY 0x800 + +/* The sections in this BFD specify a memory page. */ +#define HAS_LOAD_PAGE 0x1000 /* Symbols and relocation. */ @@ -328,7 +331,7 @@ alent; /* Object and core file sections. */ #define align_power(addr, align) \ - ( ((addr) + ((1<<(align))-1)) & (-1 << (align))) + (((addr) + ((bfd_vma) 1 << (align)) - 1) & ((bfd_vma) -1 << (align))) typedef struct sec *sec_ptr; @@ -526,6 +529,8 @@ extern void warn_deprecated #define bfd_get_outsymbols(abfd) ((abfd)->outsymbols) #define bfd_count_sections(abfd) ((abfd)->section_count) +#define bfd_get_dynamic_symcount(abfd) ((abfd)->dynsymcount) + #define bfd_get_symbol_leading_char(abfd) ((abfd)->xvec->symbol_leading_char) #define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = (boolean) (bool)), true) diff -uprN binutils-2.13.90.0.4/bfd/bfd-in2.h binutils-2.13.90.0.10/bfd/bfd-in2.h --- binutils-2.13.90.0.4/bfd/bfd-in2.h Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/bfd/bfd-in2.h Wed Oct 2 10:17:19 2002 @@ -273,6 +273,9 @@ bfd_format; /* This flag indicates that the BFD contents are actually cached in memory. If this is set, iostream points to a bfd_in_memory struct. */ #define BFD_IN_MEMORY 0x800 + +/* The sections in this BFD specify a memory page. */ +#define HAS_LOAD_PAGE 0x1000 /* Symbols and relocation. */ @@ -334,7 +337,7 @@ alent; /* Object and core file sections. */ #define align_power(addr, align) \ - ( ((addr) + ((1<<(align))-1)) & (-1 << (align))) + (((addr) + ((bfd_vma) 1 << (align)) - 1) & ((bfd_vma) -1 << (align))) typedef struct sec *sec_ptr; @@ -532,6 +535,8 @@ extern void warn_deprecated #define bfd_get_outsymbols(abfd) ((abfd)->outsymbols) #define bfd_count_sections(abfd) ((abfd)->section_count) +#define bfd_get_dynamic_symcount(abfd) ((abfd)->dynsymcount) + #define bfd_get_symbol_leading_char(abfd) ((abfd)->xvec->symbol_leading_char) #define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = (boolean) (bool)), true) @@ -1519,11 +1524,14 @@ enum bfd_architecture #define bfd_mach_mips4010 4010 #define bfd_mach_mips4100 4100 #define bfd_mach_mips4111 4111 +#define bfd_mach_mips4120 4120 #define bfd_mach_mips4300 4300 #define bfd_mach_mips4400 4400 #define bfd_mach_mips4600 4600 #define bfd_mach_mips4650 4650 #define bfd_mach_mips5000 5000 +#define bfd_mach_mips5400 5400 +#define bfd_mach_mips5500 5500 #define bfd_mach_mips6000 6000 #define bfd_mach_mips8000 8000 #define bfd_mach_mips10000 10000 @@ -1572,6 +1580,7 @@ enum bfd_architecture #define bfd_mach_ppc_rs64ii 642 #define bfd_mach_ppc_rs64iii 643 #define bfd_mach_ppc_7400 7400 +#define bfd_mach_ppc_e500 500 bfd_arch_rs6000, /* IBM RS/6000 */ #define bfd_mach_rs6k 0 #define bfd_mach_rs6k_rs1 6001 @@ -1617,12 +1626,14 @@ enum bfd_architecture bfd_arch_ns32k, /* National Semiconductors ns32000 */ bfd_arch_w65, /* WDC 65816 */ bfd_arch_tic30, /* Texas Instruments TMS320C30 */ + bfd_arch_tic4x, /* Texas Instruments TMS320C3X/4X */ +#define bfd_mach_c3x 30 +#define bfd_mach_c4x 40 bfd_arch_tic54x, /* Texas Instruments TMS320C54X */ bfd_arch_tic80, /* TI TMS320c80 (MVP) */ bfd_arch_v850, /* NEC V850 */ #define bfd_mach_v850 0 #define bfd_mach_v850e 'E' -#define bfd_mach_v850ea 'A' bfd_arch_arc, /* ARC Cores */ #define bfd_mach_arc_5 0 #define bfd_mach_arc_6 1 @@ -2256,6 +2267,9 @@ to compensate for the borrow when the lo BFD_RELOC_386_RELATIVE, BFD_RELOC_386_GOTOFF, BFD_RELOC_386_GOTPC, + BFD_RELOC_386_TLS_TPOFF, + BFD_RELOC_386_TLS_IE, + BFD_RELOC_386_TLS_GOTIE, BFD_RELOC_386_TLS_LE, BFD_RELOC_386_TLS_GD, BFD_RELOC_386_TLS_LDM, @@ -2275,6 +2289,14 @@ to compensate for the borrow when the lo BFD_RELOC_X86_64_RELATIVE, BFD_RELOC_X86_64_GOTPCREL, BFD_RELOC_X86_64_32S, + BFD_RELOC_X86_64_DTPMOD64, + BFD_RELOC_X86_64_DTPOFF64, + BFD_RELOC_X86_64_TPOFF64, + BFD_RELOC_X86_64_TLSGD, + BFD_RELOC_X86_64_TLSLD, + BFD_RELOC_X86_64_DTPOFF32, + BFD_RELOC_X86_64_GOTTPOFF, + BFD_RELOC_X86_64_TPOFF32, /* ns32k relocations */ BFD_RELOC_NS32K_IMM_8, @@ -2661,6 +2683,14 @@ bits placed non-contigously in the instr /* This is a 16 bit offset from the call table base pointer. */ BFD_RELOC_V850_CALLT_16_16_OFFSET, +/* Used for relaxing indirect function calls. */ + BFD_RELOC_V850_LONGCALL, + +/* Used for relaxing indirect jumps. */ + BFD_RELOC_V850_LONGJUMP, + +/* Used to maintain alignment whilst relaxing. */ + BFD_RELOC_V850_ALIGN, /* This is a 32bit pcrel reloc for the mn10300, offset by two bytes in the instruction. */ @@ -3447,6 +3477,9 @@ struct _bfd /* Symbol table for output BFD (with symcount entries). */ struct symbol_cache_entry **outsymbols; + /* Used for slurped dynamic symbol tables. */ + unsigned int dynsymcount; + /* Pointer to structure which contains architecture information. */ const struct bfd_arch_info *arch_info; diff -uprN binutils-2.13.90.0.4/bfd/bfd.c binutils-2.13.90.0.10/bfd/bfd.c --- binutils-2.13.90.0.4/bfd/bfd.c Thu Aug 1 17:49:32 2002 +++ binutils-2.13.90.0.10/bfd/bfd.c Fri Sep 27 08:33:09 2002 @@ -128,6 +128,9 @@ CODE_FRAGMENT . {* Symbol table for output BFD (with symcount entries). *} . struct symbol_cache_entry **outsymbols; . +. {* Used for slurped dynamic symbol tables. *} +. unsigned int dynsymcount; +. . {* Pointer to structure which contains architecture information. *} . const struct bfd_arch_info *arch_info; . diff -uprN binutils-2.13.90.0.4/bfd/coff-rs6000.c binutils-2.13.90.0.10/bfd/coff-rs6000.c --- binutils-2.13.90.0.4/bfd/coff-rs6000.c Thu Aug 8 22:49:55 2002 +++ binutils-2.13.90.0.10/bfd/coff-rs6000.c Fri Sep 27 08:33:09 2002 @@ -4053,7 +4053,7 @@ const bfd_target rs6000coff_vec = (HAS_RELOC | EXEC_P | HAS_LINENO | HAS_DEBUG | DYNAMIC | HAS_SYMS | HAS_LOCALS | WP_TEXT), - (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), + SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_CODE | SEC_DATA, 0, /* leading char */ '/', /* ar_pad_char */ 15, /* ar_max_namelen */ @@ -4295,7 +4295,7 @@ const bfd_target pmac_xcoff_vec = (HAS_RELOC | EXEC_P | HAS_LINENO | HAS_DEBUG | DYNAMIC | HAS_SYMS | HAS_LOCALS | WP_TEXT), - (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), + SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_CODE | SEC_DATA, 0, /* leading char */ '/', /* ar_pad_char */ 15, /* ar_max_namelen */ diff -uprN binutils-2.13.90.0.4/bfd/coff-tic4x.c binutils-2.13.90.0.10/bfd/coff-tic4x.c --- binutils-2.13.90.0.4/bfd/coff-tic4x.c Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/bfd/coff-tic4x.c Fri Sep 27 08:33:09 2002 @@ -0,0 +1,632 @@ +/* BFD back-end for TMS320C4X coff binaries. + Copyright 1996, 1997, 1998, 1999, 2000, 2002 + Free Software Foundation, Inc. + Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz) + + This file is part of BFD, the Binary File Descriptor library. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + 02111-1307, USA. */ + +#include "bfd.h" +#include "sysdep.h" +#include "libbfd.h" +#include "bfdlink.h" +#include "coff/tic4x.h" +#include "coff/internal.h" +#include "libcoff.h" + +#undef F_LSYMS +#define F_LSYMS F_LSYMS_TICOFF + +static boolean ticoff0_bad_format_hook + PARAMS ((bfd *, PTR )); +static boolean ticoff1_bad_format_hook + PARAMS ((bfd *, PTR )); +static boolean ticoff_bfd_is_local_label_name + PARAMS ((bfd *, const char *)); +static bfd_reloc_status_type tic4x_relocation + PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char ** )); +static reloc_howto_type *tic4x_coff_reloc_type_lookup + PARAMS ((bfd *, bfd_reloc_code_real_type )); +static void tic4x_lookup_howto + PARAMS ((arelent *, struct internal_reloc * )); +static reloc_howto_type *coff_tic4x_rtype_to_howto + PARAMS ((bfd *, asection *, struct internal_reloc *, struct coff_link_hash_entry *, struct internal_syment *, bfd_vma * )); +static void tic4x_reloc_processing + PARAMS ((arelent *, struct internal_reloc *, asymbol **, bfd *, asection * )); + + +static boolean +ticoff0_bad_format_hook (abfd, filehdr) + bfd *abfd ATTRIBUTE_UNUSED; + PTR filehdr; +{ + struct internal_filehdr *internal_f = (struct internal_filehdr *) filehdr; + + if (COFF0_BADMAG (*internal_f)) + return false; + + return true; +} + +static boolean +ticoff1_bad_format_hook (abfd, filehdr) + bfd *abfd ATTRIBUTE_UNUSED; + PTR filehdr; +{ + struct internal_filehdr *internal_f = (struct internal_filehdr *) filehdr; + + if (COFF1_BADMAG (*internal_f)) + return false; + + return true; +} + +/* Replace the stock _bfd_coff_is_local_label_name to recognize TI COFF local + labels. */ +static boolean +ticoff_bfd_is_local_label_name (abfd, name) + bfd *abfd ATTRIBUTE_UNUSED; + const char *name; +{ + if (TICOFF_LOCAL_LABEL_P(name)) + return true; + return false; +} + +#define coff_bfd_is_local_label_name ticoff_bfd_is_local_label_name + +#define RELOC_PROCESSING(RELENT,RELOC,SYMS,ABFD,SECT)\ + tic4x_reloc_processing (RELENT,RELOC,SYMS,ABFD,SECT) + +/* Customize coffcode.h; the default coff_ functions are set up to use + COFF2; coff_bad_format_hook uses BADMAG, so set that for COFF2. + The COFF1 and COFF0 vectors use custom _bad_format_hook procs + instead of setting BADMAG. */ +#define BADMAG(x) COFF2_BADMAG(x) +#include "coffcode.h" + +static bfd_reloc_status_type +tic4x_relocation (abfd, reloc_entry, symbol, data, input_section, + output_bfd, error_message) + bfd *abfd ATTRIBUTE_UNUSED; + arelent *reloc_entry; + asymbol *symbol ATTRIBUTE_UNUSED; + PTR data ATTRIBUTE_UNUSED; + asection *input_section; + bfd *output_bfd; + char **error_message ATTRIBUTE_UNUSED; +{ + if (output_bfd != (bfd *) NULL) + { + /* This is a partial relocation, and we want to apply the + relocation to the reloc entry rather than the raw data. + Modify the reloc inplace to reflect what we now know. */ + reloc_entry->address += input_section->output_offset; + return bfd_reloc_ok; + } + return bfd_reloc_continue; +} + +reloc_howto_type tic4x_howto_table[] = +{ + HOWTO(R_RELWORD, 0, 2, 16, false, 0, complain_overflow_signed, tic4x_relocation, "RELWORD", true, 0x0000ffff, 0x0000ffff, false), + HOWTO(R_REL24, 0, 2, 24, false, 0, complain_overflow_bitfield, tic4x_relocation, "REL24", true, 0x00ffffff, 0x00ffffff, false), + HOWTO(R_RELLONG, 0, 2, 32, false, 0, complain_overflow_dont, tic4x_relocation, "RELLONG", true, 0xffffffff, 0xffffffff, false), + HOWTO(R_PCRWORD, 0, 2, 16, true, 0, complain_overflow_signed, tic4x_relocation, "PCRWORD", true, 0x0000ffff, 0x0000ffff, false), + HOWTO(R_PCR24, 0, 2, 24, true, 0, complain_overflow_signed, tic4x_relocation, "PCR24", true, 0x00ffffff, 0x00ffffff, false), + HOWTO(R_PARTLS16, 0, 2, 16, false, 0, complain_overflow_dont, tic4x_relocation, "PARTLS16", true, 0x0000ffff, 0x0000ffff, false), + HOWTO(R_PARTMS8, 16, 2, 16, false, 0, complain_overflow_dont, tic4x_relocation, "PARTMS8", true, 0x0000ffff, 0x0000ffff, false), + HOWTO(R_RELWORD, 0, 2, 16, false, 0, complain_overflow_signed, tic4x_relocation, "ARELWORD", true, 0x0000ffff, 0x0000ffff, false), + HOWTO(R_REL24, 0, 2, 24, false, 0, complain_overflow_signed, tic4x_relocation, "AREL24", true, 0x00ffffff, 0x00ffffff, false), + HOWTO(R_RELLONG, 0, 2, 32, false, 0, complain_overflow_signed, tic4x_relocation, "ARELLONG", true, 0xffffffff, 0xffffffff, false), + HOWTO(R_PCRWORD, 0, 2, 16, true, 0, complain_overflow_signed, tic4x_relocation, "APCRWORD", true, 0x0000ffff, 0x0000ffff, false), + HOWTO(R_PCR24, 0, 2, 24, true, 0, complain_overflow_signed, tic4x_relocation, "APCR24", true, 0x00ffffff, 0x00ffffff, false), + HOWTO(R_PARTLS16, 0, 2, 16, false, 0, complain_overflow_dont, tic4x_relocation, "APARTLS16", true, 0x0000ffff, 0x0000ffff, false), + HOWTO(R_PARTMS8, 16, 2, 16, false, 0, complain_overflow_dont, tic4x_relocation, "APARTMS8", true, 0x0000ffff, 0x0000ffff, false), +}; +#define HOWTO_SIZE (sizeof(tic4x_howto_table) / sizeof(tic4x_howto_table[0])) + +#undef coff_bfd_reloc_type_lookup +#define coff_bfd_reloc_type_lookup tic4x_coff_reloc_type_lookup + +/* For the case statement use the code values used tc_gen_reloc (defined in + bfd/reloc.c) to map to the howto table entries. */ + +static reloc_howto_type * +tic4x_coff_reloc_type_lookup (abfd, code) + bfd *abfd ATTRIBUTE_UNUSED; + bfd_reloc_code_real_type code; +{ + unsigned int type; + unsigned int i; + + switch (code) + { + case BFD_RELOC_32: type = R_RELLONG; break; + case BFD_RELOC_24: type = R_REL24; break; + case BFD_RELOC_16: type = R_RELWORD; break; + case BFD_RELOC_24_PCREL: type = R_PCR24; break; + case BFD_RELOC_16_PCREL: type = R_PCRWORD; break; + case BFD_RELOC_HI16: type = R_PARTMS8; break; + case BFD_RELOC_LO16: type = R_PARTLS16; break; + default: + return NULL; + } + + for (i = 0; i < HOWTO_SIZE; i++) + { + if (tic4x_howto_table[i].type == type) + return tic4x_howto_table + i; + } + return NULL; +} + + +/* Code to turn a r_type into a howto ptr, uses the above howto table. + Called after some initial checking by the tic4x_rtype_to_howto fn + below. */ +static void +tic4x_lookup_howto (internal, dst) + arelent *internal; + struct internal_reloc *dst; +{ + unsigned int i; + int bank = (dst->r_symndx == -1) ? HOWTO_BANK : 0; + + for (i = 0; i < HOWTO_SIZE; i++) + { + if (tic4x_howto_table[i].type == dst->r_type) + { + internal->howto = tic4x_howto_table + i + bank; + return; + } + } + + (*_bfd_error_handler) (_("Unrecognized reloc type 0x%x"), + (unsigned int) dst->r_type); + abort(); +} + +#undef coff_rtype_to_howto +#define coff_rtype_to_howto coff_tic4x_rtype_to_howto + +static reloc_howto_type * +coff_tic4x_rtype_to_howto (abfd, sec, rel, h, sym, addendp) + bfd *abfd ATTRIBUTE_UNUSED; + asection *sec; + struct internal_reloc *rel; + struct coff_link_hash_entry *h ATTRIBUTE_UNUSED; + struct internal_syment *sym ATTRIBUTE_UNUSED; + bfd_vma *addendp; +{ + arelent genrel; + + if (rel->r_symndx == -1 && addendp != NULL) + /* This is a TI "internal relocation", which means that the relocation + amount is the amount by which the current section is being relocated + in the output section. */ + *addendp = (sec->output_section->vma + sec->output_offset) - sec->vma; + + tic4x_lookup_howto (&genrel, rel); + + return genrel.howto; +} + + +static void +tic4x_reloc_processing (relent, reloc, symbols, abfd, section) + arelent *relent; + struct internal_reloc *reloc; + asymbol **symbols; + bfd *abfd; + asection *section; +{ + asymbol *ptr; + + relent->address = reloc->r_vaddr; + + if (reloc->r_symndx != -1) + { + if (reloc->r_symndx < 0 || reloc->r_symndx >= obj_conv_table_size (abfd)) + { + (*_bfd_error_handler) + (_("%s: warning: illegal symbol index %ld in relocs"), + bfd_get_filename (abfd), reloc->r_symndx); + relent->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; + ptr = NULL; + } + else + { + relent->sym_ptr_ptr = (symbols + + obj_convert (abfd)[reloc->r_symndx]); + ptr = *(relent->sym_ptr_ptr); + } + } + else + { + relent->sym_ptr_ptr = section->symbol_ptr_ptr; + ptr = *(relent->sym_ptr_ptr); + } + + /* The symbols definitions that we have read in have been relocated + as if their sections started at 0. But the offsets refering to + the symbols in the raw data have not been modified, so we have to + have a negative addend to compensate. + + Note that symbols which used to be common must be left alone. */ + + /* Calculate any reloc addend by looking at the symbol. */ + CALC_ADDEND (abfd, ptr, *reloc, relent); + + relent->address -= section->vma; + /* !! relent->section = (asection *) NULL; */ + + /* Fill in the relent->howto field from reloc->r_type. */ + tic4x_lookup_howto (relent, reloc); +} + + +static const bfd_coff_backend_data ticoff0_swap_table = +{ + coff_SWAP_aux_in, coff_SWAP_sym_in, coff_SWAP_lineno_in, + coff_SWAP_aux_out, coff_SWAP_sym_out, + coff_SWAP_lineno_out, coff_SWAP_reloc_out, + coff_SWAP_filehdr_out, coff_SWAP_aouthdr_out, + coff_SWAP_scnhdr_out, + FILHSZ_V0, AOUTSZ, SCNHSZ_V01, SYMESZ, AUXESZ, RELSZ_V0, LINESZ, FILNMLEN, +#ifdef COFF_LONG_FILENAMES + true, +#else + false, +#endif +#ifdef COFF_LONG_SECTION_NAMES + true, +#else + false, +#endif +#ifdef COFF_FORCE_SYMBOLS_IN_STRINGS + true, +#else + false, +#endif +#ifdef COFF_DEBUG_STRING_WIDE_PREFIX + 4, +#else + 2, +#endif + COFF_DEFAULT_SECTION_ALIGNMENT_POWER, + coff_SWAP_filehdr_in, coff_SWAP_aouthdr_in, coff_SWAP_scnhdr_in, + coff_SWAP_reloc_in, ticoff0_bad_format_hook, coff_set_arch_mach_hook, + coff_mkobject_hook, styp_to_sec_flags, coff_set_alignment_hook, + coff_slurp_symbol_table, symname_in_debug_hook, coff_pointerize_aux_hook, + coff_print_aux, coff_reloc16_extra_cases, coff_reloc16_estimate, + coff_classify_symbol, coff_compute_section_file_positions, + coff_start_final_link, coff_relocate_section, coff_rtype_to_howto, + coff_adjust_symndx, coff_link_add_one_symbol, + coff_link_output_has_begun, coff_final_link_postscript +}; + +/* COFF1 differs in section header size. */ +static const bfd_coff_backend_data ticoff1_swap_table = +{ + coff_SWAP_aux_in, coff_SWAP_sym_in, coff_SWAP_lineno_in, + coff_SWAP_aux_out, coff_SWAP_sym_out, + coff_SWAP_lineno_out, coff_SWAP_reloc_out, + coff_SWAP_filehdr_out, coff_SWAP_aouthdr_out, + coff_SWAP_scnhdr_out, + FILHSZ, AOUTSZ, SCNHSZ_V01, SYMESZ, AUXESZ, RELSZ, LINESZ, FILNMLEN, +#ifdef COFF_LONG_FILENAMES + true, +#else + false, +#endif +#ifdef COFF_LONG_SECTION_NAMES + true, +#else + false, +#endif +#ifdef COFF_FORCE_SYMBOLS_IN_STRINGS + true, +#else + false, +#endif +#ifdef COFF_DEBUG_STRING_WIDE_PREFIX + 4, +#else + 2, +#endif + COFF_DEFAULT_SECTION_ALIGNMENT_POWER, + coff_SWAP_filehdr_in, coff_SWAP_aouthdr_in, coff_SWAP_scnhdr_in, + coff_SWAP_reloc_in, ticoff1_bad_format_hook, coff_set_arch_mach_hook, + coff_mkobject_hook, styp_to_sec_flags, coff_set_alignment_hook, + coff_slurp_symbol_table, symname_in_debug_hook, coff_pointerize_aux_hook, + coff_print_aux, coff_reloc16_extra_cases, coff_reloc16_estimate, + coff_classify_symbol, coff_compute_section_file_positions, + coff_start_final_link, coff_relocate_section, coff_rtype_to_howto, + coff_adjust_symndx, coff_link_add_one_symbol, + coff_link_output_has_begun, coff_final_link_postscript +}; + + +/* TI COFF v0, DOS tools (little-endian headers). */ +const bfd_target tic4x_coff0_vec = +{ + "coff0-c4x", /* Name. */ + bfd_target_coff_flavour, + BFD_ENDIAN_LITTLE, /* Data byte order is little. */ + BFD_ENDIAN_LITTLE, /* Header byte order is little (DOS tools). */ + + (HAS_RELOC | EXEC_P | /* Object flags. */ + HAS_LINENO | HAS_DEBUG | + HAS_SYMS | HAS_LOCALS | WP_TEXT | HAS_LOAD_PAGE ), + + (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* Section flags. */ + '_', /* Leading symbol underscore. */ + '/', /* ar_pad_char. */ + 15, /* ar_max_namelen. */ + bfd_getl64, bfd_getl_signed_64, bfd_putl64, + bfd_getl32, bfd_getl_signed_32, bfd_putl32, + bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* data */ + bfd_getl64, bfd_getl_signed_64, bfd_putl64, + bfd_getl32, bfd_getl_signed_32, bfd_putl32, + bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* hdrs */ + + {_bfd_dummy_target, coff_object_p, /* bfd_check_format */ + bfd_generic_archive_p, _bfd_dummy_target}, + {bfd_false, coff_mkobject, _bfd_generic_mkarchive, /* bfd_set_format */ + bfd_false}, + {bfd_false, coff_write_object_contents, /* bfd_write_contents */ + _bfd_write_archive_contents, bfd_false}, + + BFD_JUMP_TABLE_GENERIC (coff), + BFD_JUMP_TABLE_COPY (coff), + BFD_JUMP_TABLE_CORE (_bfd_nocore), + BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff), + BFD_JUMP_TABLE_SYMBOLS (coff), + BFD_JUMP_TABLE_RELOCS (coff), + BFD_JUMP_TABLE_WRITE (coff), + BFD_JUMP_TABLE_LINK (coff), + BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), + NULL, + + (PTR)&ticoff0_swap_table +}; + +/* TI COFF v0, SPARC tools (big-endian headers). */ +const bfd_target tic4x_coff0_beh_vec = +{ + "coff0-beh-c4x", /* Name. */ + bfd_target_coff_flavour, + BFD_ENDIAN_LITTLE, /* Data byte order is little. */ + BFD_ENDIAN_BIG, /* Header byte order is big. */ + + (HAS_RELOC | EXEC_P | /* Object flags. */ + HAS_LINENO | HAS_DEBUG | + HAS_SYMS | HAS_LOCALS | WP_TEXT | HAS_LOAD_PAGE ), + + (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* Section flags. */ + '_', /* Leading symbol underscore. */ + '/', /* ar_pad_char */ + 15, /* ar_max_namelen */ + bfd_getl64, bfd_getl_signed_64, bfd_putl64, + bfd_getl32, bfd_getl_signed_32, bfd_putl32, + bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* data */ + bfd_getb64, bfd_getb_signed_64, bfd_putb64, + bfd_getb32, bfd_getb_signed_32, bfd_putb32, + bfd_getb16, bfd_getb_signed_16, bfd_putb16, /* hdrs */ + + {_bfd_dummy_target, coff_object_p, /* bfd_check_format */ + bfd_generic_archive_p, _bfd_dummy_target}, + {bfd_false, coff_mkobject, _bfd_generic_mkarchive, /* bfd_set_format */ + bfd_false}, + {bfd_false, coff_write_object_contents, /* bfd_write_contents */ + _bfd_write_archive_contents, bfd_false}, + + BFD_JUMP_TABLE_GENERIC (coff), + BFD_JUMP_TABLE_COPY (coff), + BFD_JUMP_TABLE_CORE (_bfd_nocore), + BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff), + BFD_JUMP_TABLE_SYMBOLS (coff), + BFD_JUMP_TABLE_RELOCS (coff), + BFD_JUMP_TABLE_WRITE (coff), + BFD_JUMP_TABLE_LINK (coff), + BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), + + &tic4x_coff0_vec, + + (PTR)&ticoff0_swap_table +}; + +/* TI COFF v1, DOS tools (little-endian headers). */ +const bfd_target tic4x_coff1_vec = +{ + "coff1-c4x", /* Name. */ + bfd_target_coff_flavour, + BFD_ENDIAN_LITTLE, /* Data byte order is little. */ + BFD_ENDIAN_LITTLE, /* Header byte order is little (DOS tools). */ + + (HAS_RELOC | EXEC_P | /* Object flags. */ + HAS_LINENO | HAS_DEBUG | + HAS_SYMS | HAS_LOCALS | WP_TEXT | HAS_LOAD_PAGE ), + + (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* Section flags. */ + '_', /* Leading symbol underscore. */ + '/', /* ar_pad_char */ + 15, /* ar_max_namelen */ + bfd_getl64, bfd_getl_signed_64, bfd_putl64, + bfd_getl32, bfd_getl_signed_32, bfd_putl32, + bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* data */ + bfd_getl64, bfd_getl_signed_64, bfd_putl64, + bfd_getl32, bfd_getl_signed_32, bfd_putl32, + bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* hdrs */ + + {_bfd_dummy_target, coff_object_p, /* bfd_check_format */ + bfd_generic_archive_p, _bfd_dummy_target}, + {bfd_false, coff_mkobject, _bfd_generic_mkarchive, /* bfd_set_format */ + bfd_false}, + {bfd_false, coff_write_object_contents, /* bfd_write_contents */ + _bfd_write_archive_contents, bfd_false}, + + BFD_JUMP_TABLE_GENERIC (coff), + BFD_JUMP_TABLE_COPY (coff), + BFD_JUMP_TABLE_CORE (_bfd_nocore), + BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff), + BFD_JUMP_TABLE_SYMBOLS (coff), + BFD_JUMP_TABLE_RELOCS (coff), + BFD_JUMP_TABLE_WRITE (coff), + BFD_JUMP_TABLE_LINK (coff), + BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), + + &tic4x_coff0_beh_vec, + + (PTR)&ticoff1_swap_table +}; + +/* TI COFF v1, SPARC tools (big-endian headers). */ +const bfd_target tic4x_coff1_beh_vec = +{ + "coff1-beh-c4x", /* Name. */ + bfd_target_coff_flavour, + BFD_ENDIAN_LITTLE, /* Data byte order is little. */ + BFD_ENDIAN_BIG, /* Header byte order is big. */ + + (HAS_RELOC | EXEC_P | /* Object flags. */ + HAS_LINENO | HAS_DEBUG | + HAS_SYMS | HAS_LOCALS | WP_TEXT | HAS_LOAD_PAGE ), + + (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* Section flags. */ + '_', /* Leading symbol underscore. */ + '/', /* ar_pad_char */ + 15, /* ar_max_namelen */ + bfd_getl64, bfd_getl_signed_64, bfd_putl64, + bfd_getl32, bfd_getl_signed_32, bfd_putl32, + bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* data */ + bfd_getb64, bfd_getb_signed_64, bfd_putb64, + bfd_getb32, bfd_getb_signed_32, bfd_putb32, + bfd_getb16, bfd_getb_signed_16, bfd_putb16, /* hdrs */ + + {_bfd_dummy_target, coff_object_p, /* bfd_check_format */ + bfd_generic_archive_p, _bfd_dummy_target}, + {bfd_false, coff_mkobject, _bfd_generic_mkarchive, /* bfd_set_format */ + bfd_false}, + {bfd_false, coff_write_object_contents, /* bfd_write_contents */ + _bfd_write_archive_contents, bfd_false}, + + BFD_JUMP_TABLE_GENERIC (coff), + BFD_JUMP_TABLE_COPY (coff), + BFD_JUMP_TABLE_CORE (_bfd_nocore), + BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff), + BFD_JUMP_TABLE_SYMBOLS (coff), + BFD_JUMP_TABLE_RELOCS (coff), + BFD_JUMP_TABLE_WRITE (coff), + BFD_JUMP_TABLE_LINK (coff), + BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), + + &tic4x_coff1_vec, + + (PTR)&ticoff1_swap_table +}; + +/* TI COFF v2, TI DOS tools output (little-endian headers). */ +const bfd_target tic4x_coff2_vec = +{ + "coff2-c4x", /* Name. */ + bfd_target_coff_flavour, + BFD_ENDIAN_LITTLE, /* Data byte order is little. */ + BFD_ENDIAN_LITTLE, /* Header byte order is little (DOS tools). */ + + (HAS_RELOC | EXEC_P | /* Object flags. */ + HAS_LINENO | HAS_DEBUG | + HAS_SYMS | HAS_LOCALS | WP_TEXT | HAS_LOAD_PAGE ), + + (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* Section flags. */ + '_', /* Leading symbol underscore. */ + '/', /* ar_pad_char */ + 15, /* ar_max_namelen */ + bfd_getl64, bfd_getl_signed_64, bfd_putl64, + bfd_getl32, bfd_getl_signed_32, bfd_putl32, + bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* data */ + bfd_getl64, bfd_getl_signed_64, bfd_putl64, + bfd_getl32, bfd_getl_signed_32, bfd_putl32, + bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* hdrs */ + + {_bfd_dummy_target, coff_object_p, /* bfd_check_format */ + bfd_generic_archive_p, _bfd_dummy_target}, + {bfd_false, coff_mkobject, _bfd_generic_mkarchive, /* bfd_set_format */ + bfd_false}, + {bfd_false, coff_write_object_contents, /* bfd_write_contents */ + _bfd_write_archive_contents, bfd_false}, + + BFD_JUMP_TABLE_GENERIC (coff), + BFD_JUMP_TABLE_COPY (coff), + BFD_JUMP_TABLE_CORE (_bfd_nocore), + BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff), + BFD_JUMP_TABLE_SYMBOLS (coff), + BFD_JUMP_TABLE_RELOCS (coff), + BFD_JUMP_TABLE_WRITE (coff), + BFD_JUMP_TABLE_LINK (coff), + BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), + + &tic4x_coff1_beh_vec, + + COFF_SWAP_TABLE +}; + +/* TI COFF v2, TI SPARC tools output (big-endian headers). */ +const bfd_target tic4x_coff2_beh_vec = +{ + "coff2-beh-c4x", /* Name. */ + bfd_target_coff_flavour, + BFD_ENDIAN_LITTLE, /* Data byte order is little. */ + BFD_ENDIAN_BIG, /* Header byte order is big. */ + + (HAS_RELOC | EXEC_P | /* Object flags. */ + HAS_LINENO | HAS_DEBUG | + HAS_SYMS | HAS_LOCALS | WP_TEXT | HAS_LOAD_PAGE ), + + (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* Section flags. */ + '_', /* Leading symbol underscore. */ + '/', /* ar_pad_char */ + 15, /* ar_max_namelen */ + bfd_getl64, bfd_getl_signed_64, bfd_putl64, + bfd_getl32, bfd_getl_signed_32, bfd_putl32, + bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* data */ + bfd_getb64, bfd_getb_signed_64, bfd_putb64, + bfd_getb32, bfd_getb_signed_32, bfd_putb32, + bfd_getb16, bfd_getb_signed_16, bfd_putb16, /* hdrs */ + + {_bfd_dummy_target, coff_object_p, /* bfd_check_format */ + bfd_generic_archive_p, _bfd_dummy_target}, + {bfd_false, coff_mkobject, _bfd_generic_mkarchive, /* bfd_set_format */ + bfd_false}, + {bfd_false, coff_write_object_contents, /* bfd_write_contents */ + _bfd_write_archive_contents, bfd_false}, + + BFD_JUMP_TABLE_GENERIC (coff), + BFD_JUMP_TABLE_COPY (coff), + BFD_JUMP_TABLE_CORE (_bfd_nocore), + BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff), + BFD_JUMP_TABLE_SYMBOLS (coff), + BFD_JUMP_TABLE_RELOCS (coff), + BFD_JUMP_TABLE_WRITE (coff), + BFD_JUMP_TABLE_LINK (coff), + BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), + + &tic4x_coff2_vec, + + COFF_SWAP_TABLE +}; diff -uprN binutils-2.13.90.0.4/bfd/coff64-rs6000.c binutils-2.13.90.0.10/bfd/coff64-rs6000.c --- binutils-2.13.90.0.4/bfd/coff64-rs6000.c Thu Aug 8 22:49:55 2002 +++ binutils-2.13.90.0.10/bfd/coff64-rs6000.c Fri Sep 27 08:33:09 2002 @@ -1014,7 +1014,7 @@ xcoff64_write_object_contents (abfd) internal_a.o_cputype = 4; break; case bfd_arch_powerpc: - if (bfd_get_mach (abfd) == 0) + if (bfd_get_mach (abfd) == bfd_mach_ppc) internal_a.o_cputype = 3; else internal_a.o_cputype = 1; @@ -2595,7 +2595,7 @@ const bfd_target rs6000coff64_vec = (HAS_RELOC | EXEC_P | HAS_LINENO | HAS_DEBUG | DYNAMIC | HAS_SYMS | HAS_LOCALS | WP_TEXT), - (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), + SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_CODE | SEC_DATA, 0, /* leading char */ '/', /* ar_pad_char */ 15, /* ar_max_namelen */ @@ -2834,7 +2834,7 @@ const bfd_target aix5coff64_vec = (HAS_RELOC | EXEC_P | HAS_LINENO | HAS_DEBUG | DYNAMIC | HAS_SYMS | HAS_LOCALS | WP_TEXT), - (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), + SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_CODE | SEC_DATA, 0, /* leading char */ '/', /* ar_pad_char */ 15, /* ar_max_namelen */ diff -uprN binutils-2.13.90.0.4/bfd/coffcode.h binutils-2.13.90.0.10/bfd/coffcode.h --- binutils-2.13.90.0.4/bfd/coffcode.h Wed Jul 17 11:38:29 2002 +++ binutils-2.13.90.0.10/bfd/coffcode.h Fri Sep 27 08:33:09 2002 @@ -1824,6 +1824,7 @@ coff_set_arch_mach_hook (abfd, filehdr) enum bfd_architecture arch; struct internal_filehdr *internal_f = (struct internal_filehdr *) filehdr; + /* Zero selects the default machine for an arch. */ machine = 0; switch (internal_f->f_magic) { @@ -1831,13 +1832,11 @@ coff_set_arch_mach_hook (abfd, filehdr) case OR32_MAGIC_BIG: case OR32_MAGIC_LITTLE: arch = bfd_arch_or32; - machine = 0; break; #endif #ifdef PPCMAGIC case PPCMAGIC: arch = bfd_arch_powerpc; - machine = 0; /* what does this mean? (krk) */ break; #endif #ifdef I386MAGIC @@ -1846,20 +1845,17 @@ coff_set_arch_mach_hook (abfd, filehdr) case I386AIXMAGIC: /* Danbury PS/2 AIX C Compiler */ case LYNXCOFFMAGIC: /* shadows the m68k Lynx number below, sigh */ arch = bfd_arch_i386; - machine = 0; break; #endif #ifdef IA64MAGIC case IA64MAGIC: arch = bfd_arch_ia64; - machine = 0; break; #endif #ifdef A29K_MAGIC_BIG case A29K_MAGIC_BIG: case A29K_MAGIC_LITTLE: arch = bfd_arch_a29k; - machine = 0; break; #endif #ifdef ARMMAGIC @@ -2044,7 +2040,6 @@ coff_set_arch_mach_hook (abfd, filehdr) #ifdef WE32KMAGIC case WE32KMAGIC: arch = bfd_arch_we32k; - machine = 0; break; #endif @@ -2082,21 +2077,18 @@ coff_set_arch_mach_hook (abfd, filehdr) case SH_ARCH_MAGIC_WINCE: #endif arch = bfd_arch_sh; - machine = 0; break; #endif #ifdef MIPS_ARCH_MAGIC_WINCE case MIPS_ARCH_MAGIC_WINCE: arch = bfd_arch_mips; - machine = 0; break; #endif #ifdef H8500MAGIC case H8500MAGIC: arch = bfd_arch_h8500; - machine = 0; break; #endif @@ -2106,7 +2098,6 @@ coff_set_arch_mach_hook (abfd, filehdr) case LYNXCOFFMAGIC: #endif arch = bfd_arch_sparc; - machine = 0; break; #endif @@ -2158,6 +2149,13 @@ coff_set_arch_mach_hook (abfd, filehdr) arch = bfd_arch_mcore; break; #endif + +#ifdef W65MAGIC + case W65MAGIC: + arch = bfd_arch_w65; + break; +#endif + default: /* Unreadable input file type */ arch = bfd_arch_obscure; break; @@ -2455,7 +2453,8 @@ coff_write_relocs (abfd, first_undef) #ifdef SECTION_RELATIVE_ABSOLUTE_SYMBOL_P if (SECTION_RELATIVE_ABSOLUTE_SYMBOL_P (q,s)) #else - if (q->sym_ptr_ptr == bfd_abs_section_ptr->symbol_ptr_ptr) + if ((*q->sym_ptr_ptr)->section == bfd_abs_section_ptr + && ((*q->sym_ptr_ptr)->flags & BSF_SECTION_SYM) != 0) #endif /* This is a relocation relative to the absolute symbol. */ n.r_symndx = -1; @@ -4109,7 +4108,7 @@ coff_write_object_contents (abfd) internal_a.o_cputype = 4; break; case bfd_arch_powerpc: - if (bfd_get_mach (abfd) == 0) + if (bfd_get_mach (abfd) == bfd_mach_ppc) internal_a.o_cputype = 3; else internal_a.o_cputype = 1; diff -uprN binutils-2.13.90.0.4/bfd/cofflink.c binutils-2.13.90.0.10/bfd/cofflink.c --- binutils-2.13.90.0.4/bfd/cofflink.c Wed Jul 17 11:38:29 2002 +++ binutils-2.13.90.0.10/bfd/cofflink.c Mon Oct 7 23:07:59 2002 @@ -1322,6 +1322,9 @@ mark_relocs (finfo, input_bfd) if ((a->flags & SEC_RELOC) == 0 || a->reloc_count < 1) continue; + /* Don't mark relocs in excluded sections. */ + if (a->output_section == bfd_abs_section_ptr) + continue; /* Read in the relocs. */ internal_relocs = _bfd_coff_read_internal_relocs diff -uprN binutils-2.13.90.0.4/bfd/coffswap.h binutils-2.13.90.0.10/bfd/coffswap.h --- binutils-2.13.90.0.4/bfd/coffswap.h Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.10/bfd/coffswap.h Fri Sep 27 08:33:09 2002 @@ -1,24 +1,24 @@ /* Generic COFF swapping routines, for BFD. Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1999, 2000, - 2001 + 2001, 2002 Free Software Foundation, Inc. Written by Cygnus Support. -This file is part of BFD, the Binary File Descriptor library. + 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 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 contains routines used to swap COFF data. It is a header file because the details of swapping depend on the details of the @@ -381,7 +381,12 @@ coff_swap_sym_out (abfd, inp, extp) { struct internal_syment *in = (struct internal_syment *) inp; SYMENT *ext =(SYMENT *) extp; - if(in->_n._n_name[0] == 0) + +#ifdef COFF_ADJUST_SYM_OUT_PRE + COFF_ADJUST_SYM_OUT_PRE (abfd, inp, extp); +#endif + + if (in->_n._n_name[0] == 0) { H_PUT_32 (abfd, 0, ext->e.e.e_zeroes); H_PUT_32 (abfd, in->_n._n_n._n_offset, ext->e.e.e_offset); @@ -391,11 +396,13 @@ coff_swap_sym_out (abfd, inp, extp) #if SYMNMLEN != E_SYMNMLEN -> Error, we need to cope with truncating or extending SYMNMLEN!; #else - memcpy(ext->e.e_name, in->_n._n_name, SYMNMLEN); + memcpy (ext->e.e_name, in->_n._n_name, SYMNMLEN); #endif } + H_PUT_32 (abfd, in->n_value, ext->e_value); H_PUT_16 (abfd, in->n_scnum, ext->e_scnum); + if (sizeof (ext->e_type) == 2) { H_PUT_16 (abfd, in->n_type, ext->e_type); @@ -404,11 +411,14 @@ coff_swap_sym_out (abfd, inp, extp) { H_PUT_32 (abfd, in->n_type, ext->e_type); } + H_PUT_8 (abfd, in->n_sclass, ext->e_sclass); H_PUT_8 (abfd, in->n_numaux, ext->e_numaux); + #ifdef COFF_ADJUST_SYM_OUT_POST COFF_ADJUST_SYM_OUT_POST (abfd, inp, extp); #endif + return SYMESZ; } @@ -428,6 +438,7 @@ coff_swap_aux_in (abfd, ext1, type, clas #ifdef COFF_ADJUST_AUX_IN_PRE COFF_ADJUST_AUX_IN_PRE (abfd, ext1, type, class, indx, numaux, in1); #endif + switch (class) { case C_FILE: @@ -448,9 +459,7 @@ coff_swap_aux_in (abfd, ext1, type, clas numaux * sizeof (AUXENT)); } else - { - memcpy (in->x_file.x_fname, ext->x_file.x_fname, FILNMLEN); - } + memcpy (in->x_file.x_fname, ext->x_file.x_fname, FILNMLEN); #endif } goto end; @@ -502,7 +511,7 @@ coff_swap_aux_in (abfd, ext1, type, clas H_GET_16 (abfd, ext->x_sym.x_fcnary.x_ary.x_dimen[3]); } - if (ISFCN(type)) + if (ISFCN (type)) { in->x_sym.x_misc.x_fsize = H_GET_32 (abfd, ext->x_sym.x_misc.x_fsize); } @@ -535,7 +544,9 @@ coff_swap_aux_out (abfd, inp, type, clas #ifdef COFF_ADJUST_AUX_OUT_PRE COFF_ADJUST_AUX_OUT_PRE (abfd, inp, type, class, indx, numaux, extp); #endif - memset((PTR)ext, 0, AUXESZ); + + memset ((PTR)ext, 0, AUXESZ); + switch (class) { case C_FILE: @@ -681,29 +692,29 @@ coff_swap_aouthdr_in (abfd, aouthdr_ext1 #else aouthdr_int->o_toc = H_GET_32 (abfd, aouthdr_ext->o_toc); #endif - aouthdr_int->o_snentry = H_GET_16 (abfd, aouthdr_ext->o_snentry); - aouthdr_int->o_sntext = H_GET_16 (abfd, aouthdr_ext->o_sntext); - aouthdr_int->o_sndata = H_GET_16 (abfd, aouthdr_ext->o_sndata); - aouthdr_int->o_sntoc = H_GET_16 (abfd, aouthdr_ext->o_sntoc); + aouthdr_int->o_snentry = H_GET_16 (abfd, aouthdr_ext->o_snentry); + aouthdr_int->o_sntext = H_GET_16 (abfd, aouthdr_ext->o_sntext); + aouthdr_int->o_sndata = H_GET_16 (abfd, aouthdr_ext->o_sndata); + aouthdr_int->o_sntoc = H_GET_16 (abfd, aouthdr_ext->o_sntoc); aouthdr_int->o_snloader = H_GET_16 (abfd, aouthdr_ext->o_snloader); - aouthdr_int->o_snbss = H_GET_16 (abfd, aouthdr_ext->o_snbss); + aouthdr_int->o_snbss = H_GET_16 (abfd, aouthdr_ext->o_snbss); aouthdr_int->o_algntext = H_GET_16 (abfd, aouthdr_ext->o_algntext); aouthdr_int->o_algndata = H_GET_16 (abfd, aouthdr_ext->o_algndata); - aouthdr_int->o_modtype = H_GET_16 (abfd, aouthdr_ext->o_modtype); - aouthdr_int->o_cputype = H_GET_16 (abfd, aouthdr_ext->o_cputype); + aouthdr_int->o_modtype = H_GET_16 (abfd, aouthdr_ext->o_modtype); + aouthdr_int->o_cputype = H_GET_16 (abfd, aouthdr_ext->o_cputype); #ifdef XCOFF64 aouthdr_int->o_maxstack = H_GET_64 (abfd, aouthdr_ext->o_maxstack); - aouthdr_int->o_maxdata = H_GET_64 (abfd, aouthdr_ext->o_maxdata); + aouthdr_int->o_maxdata = H_GET_64 (abfd, aouthdr_ext->o_maxdata); #else aouthdr_int->o_maxstack = H_GET_32 (abfd, aouthdr_ext->o_maxstack); - aouthdr_int->o_maxdata = H_GET_32 (abfd, aouthdr_ext->o_maxdata); + aouthdr_int->o_maxdata = H_GET_32 (abfd, aouthdr_ext->o_maxdata); #endif #endif #ifdef MIPSECOFF - aouthdr_int->bss_start = H_GET_32 (abfd, aouthdr_ext->bss_start); - aouthdr_int->gp_value = H_GET_32 (abfd, aouthdr_ext->gp_value); - aouthdr_int->gprmask = H_GET_32 (abfd, aouthdr_ext->gprmask); + aouthdr_int->bss_start = H_GET_32 (abfd, aouthdr_ext->bss_start); + aouthdr_int->gp_value = H_GET_32 (abfd, aouthdr_ext->gp_value); + aouthdr_int->gprmask = H_GET_32 (abfd, aouthdr_ext->gprmask); aouthdr_int->cprmask[0] = H_GET_32 (abfd, aouthdr_ext->cprmask[0]); aouthdr_int->cprmask[1] = H_GET_32 (abfd, aouthdr_ext->cprmask[1]); aouthdr_int->cprmask[2] = H_GET_32 (abfd, aouthdr_ext->cprmask[2]); @@ -712,9 +723,9 @@ coff_swap_aouthdr_in (abfd, aouthdr_ext1 #ifdef ALPHAECOFF aouthdr_int->bss_start = H_GET_64 (abfd, aouthdr_ext->bss_start); - aouthdr_int->gp_value = H_GET_64 (abfd, aouthdr_ext->gp_value); - aouthdr_int->gprmask = H_GET_32 (abfd, aouthdr_ext->gprmask); - aouthdr_int->fprmask = H_GET_32 (abfd, aouthdr_ext->fprmask); + aouthdr_int->gp_value = H_GET_64 (abfd, aouthdr_ext->gp_value); + aouthdr_int->gprmask = H_GET_32 (abfd, aouthdr_ext->gprmask); + aouthdr_int->fprmask = H_GET_32 (abfd, aouthdr_ext->fprmask); #endif } @@ -807,7 +818,8 @@ coff_swap_scnhdr_in (abfd, ext, in) #ifdef COFF_ADJUST_SCNHDR_IN_PRE COFF_ADJUST_SCNHDR_IN_PRE (abfd, ext, in); #endif - memcpy(scnhdr_int->s_name, scnhdr_ext->s_name, sizeof (scnhdr_int->s_name)); + memcpy (scnhdr_int->s_name, scnhdr_ext->s_name, sizeof (scnhdr_int->s_name)); + scnhdr_int->s_vaddr = GET_SCNHDR_VADDR (abfd, scnhdr_ext->s_vaddr); scnhdr_int->s_paddr = GET_SCNHDR_PADDR (abfd, scnhdr_ext->s_paddr); scnhdr_int->s_size = GET_SCNHDR_SIZE (abfd, scnhdr_ext->s_size); @@ -866,6 +878,7 @@ coff_swap_scnhdr_out (abfd, in, out) buf, scnhdr_int->s_nlnno); PUT_SCNHDR_NLNNO (abfd, 0xffff, scnhdr_ext->s_nlnno); } + if (scnhdr_int->s_nreloc <= MAX_SCNHDR_NRELOC) PUT_SCNHDR_NRELOC (abfd, scnhdr_int->s_nreloc, scnhdr_ext->s_nreloc); else diff -uprN binutils-2.13.90.0.4/bfd/config.bfd binutils-2.13.90.0.10/bfd/config.bfd --- binutils-2.13.90.0.4/bfd/config.bfd Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/bfd/config.bfd Wed Oct 9 21:09:41 2002 @@ -34,6 +34,7 @@ case "${targ_cpu}" in alpha*) targ_archs=bfd_alpha_arch ;; arm*) targ_archs=bfd_arm_arch ;; c30*) targ_archs=bfd_tic30_arch ;; +c4x*) targ_archs=bfd_tic4x_arch ;; c54x*) targ_archs=bfd_tic54x_arch ;; dlx*) targ_archs=bfd_dlx_arch ;; hppa*) targ_archs=bfd_hppa_arch ;; @@ -70,7 +71,16 @@ esac case "${targ}" in # START OF targmatch.h #ifdef BFD64 - alpha*-*-netbsd* | alpha*-*-freebsd* | alpha*-*-openbsd*) + alpha*-*-freebsd*) + targ_defvec=bfd_elf64_alpha_freebsd_vec + targ_selvecs=ecoffalpha_little_vec + # FreeBSD <= 4.0 supports only the old nonstandard way of ABI labelling. + case "${targ}" in + alpha*-*-freebsd3* | alpha*-*-freebsd4 | alpha*-*-freebsd4.0*) + targ_cflags=-DOLD_FREEBSD_ABI_LABEL ;; + esac + ;; + alpha*-*-netbsd* | alpha*-*-openbsd*) targ_defvec=bfd_elf64_alpha_vec targ_selvecs=ecoffalpha_little_vec ;; @@ -256,6 +266,12 @@ case "${targ}" in targ_defvec=tic30_coff_vec ;; + c4x-*-*coff* | tic4x-*-*coff*) + targ_defvec=tic4x_coff1_vec + targ_selvecs="tic4x_coff1_beh_vec tic4x_coff2_vec tic4x_coff2_beh_vec tic4x_coff0_vec tic4x_coff0_beh_vec" + targ_underscore=yes + ;; + c54x*-*-*coff* | tic54x-*-*coff*) targ_defvec=tic54x_coff1_vec targ_selvecs="tic54x_coff1_beh_vec tic54x_coff2_vec tic54x_coff2_beh_vec tic54x_coff0_vec tic54x_coff0_beh_vec" @@ -361,7 +377,7 @@ case "${targ}" in i[3456]86-*-chorus*) targ_defvec=bfd_elf32_i386_vec ;; - i[3456]86-*-msdosdjgpp* | i[3456]*-*-go32* | i[3456]86-go32-rtems* ) + *-*-msdosdjgpp* | *-*-go32* | *-go32-rtems* ) targ_defvec=go32coff_vec targ_selvecs="go32stubbedcoff_vec i386aout_vec" ;; @@ -392,8 +408,13 @@ case "${targ}" in targ_underscore=yes ;; i[3456]86-*-freebsd*) - targ_defvec=bfd_elf32_i386_vec + targ_defvec=bfd_elf32_i386_freebsd_vec targ_selvecs=i386coff_vec + # FreeBSD <= 4.0 supports only the old nonstandard way of ABI labelling. + case "${targ}" in + i[3456]86-*-freebsd3* | i[3456]86-*-freebsd4 | i[3456]86-*-freebsd4.0*) + targ_cflags=-DOLD_FREEBSD_ABI_LABEL ;; + esac ;; i[3456]86-*-netbsdelf*) targ_defvec=bfd_elf32_i386_vec @@ -694,8 +715,8 @@ case "${targ}" in ;; #ifdef BFD64 mips*-*-irix6*) - targ_defvec=bfd_elf32_bigmips_vec - targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec" + targ_defvec=bfd_elf32_nbigmips_vec + targ_selvecs="bfd_elf32_nlittlemips_vec bfd_elf32_bigmips_vec bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec" ;; #endif mips*-*-irix5*) @@ -847,7 +868,8 @@ case "${targ}" in targ_defvec=rs6000coff64_vec targ_selvecs=rs6000coff_vec ;; - powerpc64-*-elf* | powerpc-*-elf64* | powerpc64-*-linux*) + powerpc64-*-elf* | powerpc-*-elf64* | powerpc64-*-linux* | \ + powerpc64-*-*bsd*) targ_defvec=bfd_elf64_powerpc_vec targ_selvecs="bfd_elf64_powerpcle_vec bfd_elf32_powerpc_vec bfd_elf32_powerpcle_vec rs6000coff_vec rs6000coff64_vec" ;; @@ -912,12 +934,12 @@ case "${targ}" in targ_underscore=yes ;; sh64eb-*-linux*) - targ_defvec=bfd_elf32_shblin_vec - targ_selvecs="bfd_elf32_shblin_vec bfd_elf32_sh64_vec bfd_elf64_sh64_vec bfd_elf32_sh_vec" + targ_defvec=bfd_elf32_sh64blin_vec + targ_selvecs="bfd_elf32_sh64lin_vec bfd_elf64_sh64blin_vec bfd_elf64_sh64lin_vec bfd_elf32_shblin_vec bfd_elf32_shlin_vec" ;; sh64-*-linux*) - targ_defvec=bfd_elf32_shlin_vec - targ_selvecs="bfd_elf32_shlin_vec bfd_elf32_sh64l_vec bfd_elf64_sh64l_vec bfd_elf32_shl_vec" + targ_defvec=bfd_elf32_sh64lin_vec + targ_selvecs="bfd_elf32_sh64blin_vec bfd_elf64_sh64lin_vec bfd_elf64_sh64blin_vec bfd_elf32_shlin_vec bfd_elf32_shblin_vec" ;; #endif /* BFD64 */ @@ -994,6 +1016,11 @@ case "${targ}" in #endif targ_underscore=yes ;; + sh-*-nto*) + targ_defvec=bfd_elf32_shqnx_vec + targ_selvecs="bfd_elf32_shlqnx_vec shcoff_vec shlcoff_vec shcoff_small_vec shlcoff_small_vec" + targ_underscore=yes + ;; sh-*-pe) targ_defvec=shlpe_vec targ_selvecs="shlpe_vec shlpei_vec" diff -uprN binutils-2.13.90.0.4/bfd/configure binutils-2.13.90.0.10/bfd/configure --- binutils-2.13.90.0.4/bfd/configure Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/bfd/configure Thu Oct 10 09:16:57 2002 @@ -1118,7 +1118,7 @@ fi PACKAGE=bfd -VERSION=2.13.90.0.4 +VERSION=2.13.90.0.10 if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } @@ -2655,7 +2655,7 @@ else fi -ALL_LINGUAS="fr tr ja es sv" +ALL_LINGUAS="fr tr ja es sv da" echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 echo "configure:2661: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. @@ -6069,6 +6069,7 @@ do bfd_elf32_hppa_linux_vec) tb="$tb elf32-hppa.lo elf32.lo $elf" ;; bfd_elf32_hppa_vec) tb="$tb elf32-hppa.lo elf32.lo $elf" ;; bfd_elf32_i370_vec) tb="$tb elf32-i370.lo elf32.lo $elf" ;; + bfd_elf32_i386_freebsd_vec) tb="$tb elf32-i386-fbsd.lo elf32.lo $elf" ;; bfd_elf32_i386_vec) tb="$tb elf32-i386.lo elf32.lo $elf" ;; bfd_elf32_i386qnx_vec) tb="$tb elf32-i386qnx.lo elf32.lo $elf" ;; bfd_elf32_i860_little_vec) tb="$tb elf32-i860.lo elf32.lo $elf" ;; @@ -6110,6 +6111,8 @@ do # which needs it but does not list it. Should be fixed in right place. bfd_elf32_sh64_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf32.lo $elf cofflink.lo" target_size=64 ;; bfd_elf32_sh64l_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf32.lo $elf cofflink.lo" target_size=64 ;; + bfd_elf32_sh64lin_vec) tb="$tb elf32-sh64-lin.lo elf32-sh64-com.lo elf32.lo $elf cofflink.lo" target_size=64 ;; + bfd_elf32_sh64blin_vec) tb="$tb elf32-sh64-lin.lo elf32-sh64-com.lo elf32.lo $elf cofflink.lo" target_size=64 ;; bfd_elf32_sh64lnbsd_vec) tb="$tb elf32-sh64-nbsd.lo elf32-sh64-com.lo elf32.lo $elf cofflink.lo" ;; bfd_elf32_sh64nbsd_vec) tb="$tb elf32-sh64-nbsd.lo elf32-sh64-com.lo elf32.lo $elf cofflink.lo" ;; bfd_elf32_sh_vec) tb="$tb elf32-sh.lo elf32.lo $elf coff-sh.lo" ;; @@ -6117,7 +6120,9 @@ do bfd_elf32_shl_vec) tb="$tb elf32-sh.lo elf32.lo $elf coff-sh.lo" ;; bfd_elf32_shlin_vec) tb="$tb elf32-sh-lin.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;; bfd_elf32_shlnbsd_vec) tb="$tb elf32-sh-nbsd.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;; + bfd_elf32_shlqnx_vec) tb="$tb elf32-shqnx.lo elf32-sh.lo elf32.lo $elf coff-sh.lo" ;; bfd_elf32_shnbsd_vec) tb="$tb elf32-sh-nbsd.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;; + bfd_elf32_shqnx_vec) tb="$tb elf32-shqnx.lo elf32-sh.lo elf32.lo $elf coff-sh.lo" ;; bfd_elf32_sparc_vec) tb="$tb elf32-sparc.lo elf32.lo $elf" ;; bfd_elf32_tradbigmips_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf32.lo $elf ecofflink.lo" ;; bfd_elf32_tradlittlemips_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf32.lo $elf ecofflink.lo" ;; @@ -6125,6 +6130,7 @@ do bfd_elf32_v850_vec) tb="$tb elf32-v850.lo elf32.lo $elf" ;; bfd_elf32_vax_vec) tb="$tb elf32-vax.lo elf32.lo $elf" ;; bfd_elf32_xstormy16_vec) tb="$tb elf32-xstormy16.lo elf32.lo $elf" ;; + bfd_elf64_alpha_freebsd_vec) tb="$tb elf64-alpha-fbsd.lo elf64.lo $elf"; target_size=64 ;; bfd_elf64_alpha_vec) tb="$tb elf64-alpha.lo elf64.lo $elf"; target_size=64 ;; bfd_elf64_big_generic_vec) tb="$tb elf64-gen.lo elf64.lo $elf"; target_size=64 ;; bfd_elf64_bigmips_vec) tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;; @@ -6143,6 +6149,8 @@ do bfd_elf64_s390_vec) tb="$tb elf64-s390.lo elf64.lo $elf"; target_size=64 ;; bfd_elf64_sh64_vec) tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;; bfd_elf64_sh64l_vec) tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;; + bfd_elf64_sh64lin_vec) tb="$tb elf64-sh64-lin.lo elf64.lo $elf" target_size=64 ;; + bfd_elf64_sh64blin_vec) tb="$tb elf64-sh64-lin.lo elf64.lo $elf" target_size=64 ;; bfd_elf64_sh64lnbsd_vec) tb="$tb elf64-sh64-nbsd.lo elf64.lo $elf" target_size=64 ;; bfd_elf64_sh64nbsd_vec) tb="$tb elf64-sh64-nbsd.lo elf64.lo $elf" target_size=64 ;; bfd_elf64_sparc_vec) tb="$tb elf64-sparc.lo elf64.lo $elf"; target_size=64 ;; @@ -6232,6 +6240,12 @@ do sunos_big_vec) tb="$tb sunos.lo aout32.lo" ;; tic30_aout_vec) tb="$tb aout-tic30.lo" ;; tic30_coff_vec) tb="$tb coff-tic30.lo" ;; + tic4x_coff0_vec) tb="$tb coff-tic4x.lo" ;; + tic4x_coff0_beh_vec) tb="$tb coff-tic4x.lo" ;; + tic4x_coff1_vec) tb="$tb coff-tic4x.lo" ;; + tic4x_coff1_beh_vec) tb="$tb coff-tic4x.lo" ;; + tic4x_coff2_vec) tb="$tb coff-tic4x.lo" ;; + tic4x_coff2_beh_vec) tb="$tb coff-tic4x.lo" ;; tic54x_coff0_beh_vec) tb="$tb coff-tic54x.lo" ;; tic54x_coff0_vec) tb="$tb coff-tic54x.lo" ;; tic54x_coff1_beh_vec) tb="$tb coff-tic54x.lo" ;; @@ -6324,10 +6338,10 @@ case ${host64}-${target64}-${want64} in if test -n "$GCC" ; then bad_64bit_gcc=no; echo $ac_n "checking for gcc version with buggy 64-bit support""... $ac_c" 1>&6 -echo "configure:6328: checking for gcc version with buggy 64-bit support" >&5 +echo "configure:6342: checking for gcc version with buggy 64-bit support" >&5 # Add more tests for gcc versions with non-working 64-bit support here. cat > conftest.$ac_ext <&6 -echo "configure:6376: checking for $ac_hdr" >&5 +echo "configure:6390: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:6386: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6400: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -6411,12 +6425,12 @@ done for ac_func in getpagesize do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6415: checking for $ac_func" >&5 +echo "configure:6429: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6457: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6464,7 +6478,7 @@ fi done echo $ac_n "checking for working mmap""... $ac_c" 1>&6 -echo "configure:6468: checking for working mmap" >&5 +echo "configure:6482: checking for working mmap" >&5 if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6472,7 +6486,7 @@ else ac_cv_func_mmap_fixed_mapped=no else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:6643: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_mmap_fixed_mapped=yes else @@ -6650,12 +6664,12 @@ fi for ac_func in madvise mprotect do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6654: checking for $ac_func" >&5 +echo "configure:6668: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6696: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else diff -uprN binutils-2.13.90.0.4/bfd/configure.in binutils-2.13.90.0.10/bfd/configure.in --- binutils-2.13.90.0.4/bfd/configure.in Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/bfd/configure.in Thu Oct 10 09:16:57 2002 @@ -7,7 +7,7 @@ AC_INIT(libbfd.c) AC_CANONICAL_SYSTEM AC_ISC_POSIX -AM_INIT_AUTOMAKE(bfd, 2.13.90.0.4) +AM_INIT_AUTOMAKE(bfd, 2.13.90.0.10) # Uncomment the next line to remove the date from the reported bfd version #is_release=y @@ -109,7 +109,7 @@ bfd_default_target_size=32 AC_PROG_CC -ALL_LINGUAS="fr tr ja es sv" +ALL_LINGUAS="fr tr ja es sv da" CY_GNU_GETTEXT # Permit host specific settings. @@ -576,6 +576,7 @@ do bfd_elf32_hppa_linux_vec) tb="$tb elf32-hppa.lo elf32.lo $elf" ;; bfd_elf32_hppa_vec) tb="$tb elf32-hppa.lo elf32.lo $elf" ;; bfd_elf32_i370_vec) tb="$tb elf32-i370.lo elf32.lo $elf" ;; + bfd_elf32_i386_freebsd_vec) tb="$tb elf32-i386-fbsd.lo elf32.lo $elf" ;; bfd_elf32_i386_vec) tb="$tb elf32-i386.lo elf32.lo $elf" ;; bfd_elf32_i386qnx_vec) tb="$tb elf32-i386qnx.lo elf32.lo $elf" ;; bfd_elf32_i860_little_vec) tb="$tb elf32-i860.lo elf32.lo $elf" ;; @@ -617,6 +618,8 @@ do # which needs it but does not list it. Should be fixed in right place. bfd_elf32_sh64_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf32.lo $elf cofflink.lo" target_size=64 ;; bfd_elf32_sh64l_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf32.lo $elf cofflink.lo" target_size=64 ;; + bfd_elf32_sh64lin_vec) tb="$tb elf32-sh64-lin.lo elf32-sh64-com.lo elf32.lo $elf cofflink.lo" target_size=64 ;; + bfd_elf32_sh64blin_vec) tb="$tb elf32-sh64-lin.lo elf32-sh64-com.lo elf32.lo $elf cofflink.lo" target_size=64 ;; bfd_elf32_sh64lnbsd_vec) tb="$tb elf32-sh64-nbsd.lo elf32-sh64-com.lo elf32.lo $elf cofflink.lo" ;; bfd_elf32_sh64nbsd_vec) tb="$tb elf32-sh64-nbsd.lo elf32-sh64-com.lo elf32.lo $elf cofflink.lo" ;; bfd_elf32_sh_vec) tb="$tb elf32-sh.lo elf32.lo $elf coff-sh.lo" ;; @@ -624,7 +627,9 @@ do bfd_elf32_shl_vec) tb="$tb elf32-sh.lo elf32.lo $elf coff-sh.lo" ;; bfd_elf32_shlin_vec) tb="$tb elf32-sh-lin.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;; bfd_elf32_shlnbsd_vec) tb="$tb elf32-sh-nbsd.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;; + bfd_elf32_shlqnx_vec) tb="$tb elf32-shqnx.lo elf32-sh.lo elf32.lo $elf coff-sh.lo" ;; bfd_elf32_shnbsd_vec) tb="$tb elf32-sh-nbsd.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;; + bfd_elf32_shqnx_vec) tb="$tb elf32-shqnx.lo elf32-sh.lo elf32.lo $elf coff-sh.lo" ;; bfd_elf32_sparc_vec) tb="$tb elf32-sparc.lo elf32.lo $elf" ;; bfd_elf32_tradbigmips_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf32.lo $elf ecofflink.lo" ;; bfd_elf32_tradlittlemips_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf32.lo $elf ecofflink.lo" ;; @@ -632,6 +637,7 @@ do bfd_elf32_v850_vec) tb="$tb elf32-v850.lo elf32.lo $elf" ;; bfd_elf32_vax_vec) tb="$tb elf32-vax.lo elf32.lo $elf" ;; bfd_elf32_xstormy16_vec) tb="$tb elf32-xstormy16.lo elf32.lo $elf" ;; + bfd_elf64_alpha_freebsd_vec) tb="$tb elf64-alpha-fbsd.lo elf64.lo $elf"; target_size=64 ;; bfd_elf64_alpha_vec) tb="$tb elf64-alpha.lo elf64.lo $elf"; target_size=64 ;; bfd_elf64_big_generic_vec) tb="$tb elf64-gen.lo elf64.lo $elf"; target_size=64 ;; bfd_elf64_bigmips_vec) tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;; @@ -650,6 +656,8 @@ do bfd_elf64_s390_vec) tb="$tb elf64-s390.lo elf64.lo $elf"; target_size=64 ;; bfd_elf64_sh64_vec) tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;; bfd_elf64_sh64l_vec) tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;; + bfd_elf64_sh64lin_vec) tb="$tb elf64-sh64-lin.lo elf64.lo $elf" target_size=64 ;; + bfd_elf64_sh64blin_vec) tb="$tb elf64-sh64-lin.lo elf64.lo $elf" target_size=64 ;; bfd_elf64_sh64lnbsd_vec) tb="$tb elf64-sh64-nbsd.lo elf64.lo $elf" target_size=64 ;; bfd_elf64_sh64nbsd_vec) tb="$tb elf64-sh64-nbsd.lo elf64.lo $elf" target_size=64 ;; bfd_elf64_sparc_vec) tb="$tb elf64-sparc.lo elf64.lo $elf"; target_size=64 ;; @@ -739,6 +747,12 @@ do sunos_big_vec) tb="$tb sunos.lo aout32.lo" ;; tic30_aout_vec) tb="$tb aout-tic30.lo" ;; tic30_coff_vec) tb="$tb coff-tic30.lo" ;; + tic4x_coff0_vec) tb="$tb coff-tic4x.lo" ;; + tic4x_coff0_beh_vec) tb="$tb coff-tic4x.lo" ;; + tic4x_coff1_vec) tb="$tb coff-tic4x.lo" ;; + tic4x_coff1_beh_vec) tb="$tb coff-tic4x.lo" ;; + tic4x_coff2_vec) tb="$tb coff-tic4x.lo" ;; + tic4x_coff2_beh_vec) tb="$tb coff-tic4x.lo" ;; tic54x_coff0_beh_vec) tb="$tb coff-tic54x.lo" ;; tic54x_coff0_vec) tb="$tb coff-tic54x.lo" ;; tic54x_coff1_beh_vec) tb="$tb coff-tic54x.lo" ;; diff -uprN binutils-2.13.90.0.4/bfd/cpu-avr.c binutils-2.13.90.0.10/bfd/cpu-avr.c --- binutils-2.13.90.0.4/bfd/cpu-avr.c Fri Mar 9 11:15:43 2001 +++ binutils-2.13.90.0.10/bfd/cpu-avr.c Fri Sep 27 08:33:09 2002 @@ -76,8 +76,8 @@ compatible (a,b) return NULL; /* Special case for ATmega[16]03 (avr:3) and ATmega83 (avr:4). */ - if ((a->mach == 3 && b->mach == 4) - || (a->mach == 4 && b->mach == 3)) + if ((a->mach == bfd_mach_avr3 && b->mach == bfd_mach_avr4) + || (a->mach == bfd_mach_avr4 && b->mach == bfd_mach_avr3)) return NULL; /* So far all newer AVR architecture cores are supersets of previous diff -uprN binutils-2.13.90.0.4/bfd/cpu-mips.c binutils-2.13.90.0.10/bfd/cpu-mips.c --- binutils-2.13.90.0.4/bfd/cpu-mips.c Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.10/bfd/cpu-mips.c Wed Oct 2 10:17:19 2002 @@ -67,11 +67,14 @@ enum I_mips4010, I_mips4100, I_mips4111, + I_mips4120, I_mips4300, I_mips4400, I_mips4600, I_mips4650, I_mips5000, + I_mips5400, + I_mips5500, I_mips6000, I_mips8000, I_mips10000, @@ -93,11 +96,14 @@ static const bfd_arch_info_type arch_inf N (64, 64, bfd_mach_mips4010, "mips:4010", false, NN(I_mips4010)), N (64, 64, bfd_mach_mips4100, "mips:4100", false, NN(I_mips4100)), N (64, 64, bfd_mach_mips4111, "mips:4111", false, NN(I_mips4111)), + N (64, 64, bfd_mach_mips4120, "mips:4120", false, NN(I_mips4120)), N (64, 64, bfd_mach_mips4300, "mips:4300", false, NN(I_mips4300)), N (64, 64, bfd_mach_mips4400, "mips:4400", false, NN(I_mips4400)), N (64, 64, bfd_mach_mips4600, "mips:4600", false, NN(I_mips4600)), N (64, 64, bfd_mach_mips4650, "mips:4650", false, NN(I_mips4650)), N (64, 64, bfd_mach_mips5000, "mips:5000", false, NN(I_mips5000)), + N (64, 64, bfd_mach_mips5400, "mips:5400", false, NN(I_mips5400)), + N (64, 64, bfd_mach_mips5500, "mips:5500", false, NN(I_mips5500)), N (32, 32, bfd_mach_mips6000, "mips:6000", false, NN(I_mips6000)), N (64, 64, bfd_mach_mips8000, "mips:8000", false, NN(I_mips8000)), N (64, 64, bfd_mach_mips10000,"mips:10000", false, NN(I_mips10000)), diff -uprN binutils-2.13.90.0.4/bfd/cpu-pj.c binutils-2.13.90.0.10/bfd/cpu-pj.c --- binutils-2.13.90.0.4/bfd/cpu-pj.c Mon Oct 1 15:25:21 2001 +++ binutils-2.13.90.0.10/bfd/cpu-pj.c Fri Sep 27 08:33:09 2002 @@ -22,52 +22,6 @@ Foundation, Inc., 59 Temple Place - Suit #include "sysdep.h" #include "libbfd.h" -static boolean scan_mach - PARAMS ((const struct bfd_arch_info *, const char *)); - -static boolean -scan_mach (info, string) - const struct bfd_arch_info *info; - const char *string; -{ - if (strcasecmp (info->printable_name, string) == 0) - return true; - return false; -} - -#if 0 -/* This routine is provided two arch_infos and returns whether - they'd be compatible */ - -static const bfd_arch_info_type * -compatible (a,b) - const bfd_arch_info_type *a; - const bfd_arch_info_type *b; -{ - if (a->arch != b->arch || a->mach != b->mach) - return NULL; - return a; -} -#endif - -static const bfd_arch_info_type arch_info_struct[] = -{ - { - 32, /* 32 bits in a word */ - 32, /* 32 bits in an address */ - 8, /* 8 bits in a byte */ - bfd_arch_pj, - 0, - "pj", /* arch_name */ - "pj", /* printable name */ - 1, - false, /* not the default */ - bfd_default_compatible, - scan_mach, - 0, - }, -}; - const bfd_arch_info_type bfd_pj_arch = { 32, /* 32 bits in a word */ @@ -80,6 +34,6 @@ const bfd_arch_info_type bfd_pj_arch = 1, true, /* the default machine */ bfd_default_compatible, - scan_mach, - &arch_info_struct [0] + bfd_default_scan, + 0 }; diff -uprN binutils-2.13.90.0.4/bfd/cpu-powerpc.c binutils-2.13.90.0.10/bfd/cpu-powerpc.c --- binutils-2.13.90.0.4/bfd/cpu-powerpc.c Thu Jun 27 08:54:09 2002 +++ binutils-2.13.90.0.10/bfd/cpu-powerpc.c Fri Sep 27 08:33:09 2002 @@ -41,7 +41,7 @@ powerpc_compatible (a,b) case bfd_arch_powerpc: return bfd_default_compatible (a, b); case bfd_arch_rs6000: - if (a->mach == 0) + if (a->mach == bfd_mach_ppc) return a; return NULL; } @@ -270,6 +270,20 @@ const bfd_arch_info_type bfd_powerpc_arc &bfd_powerpc_archs[13] }, { + 32, /* 32 bits in a word */ + 32, /* 32 bits in an address */ + 8, /* 8 bits in a byte */ + bfd_arch_powerpc, + bfd_mach_ppc_e500, + "powerpc", + "powerpc:e500", + 3, + false, + powerpc_compatible, + bfd_default_scan, + &bfd_powerpc_archs[14] + }, + { 32, /* 32 bits in a word */ 32, /* 32 bits in an address */ 8, /* 8 bits in a byte */ diff -uprN binutils-2.13.90.0.4/bfd/cpu-rs6000.c binutils-2.13.90.0.10/bfd/cpu-rs6000.c --- binutils-2.13.90.0.4/bfd/cpu-rs6000.c Fri Mar 9 11:15:44 2001 +++ binutils-2.13.90.0.10/bfd/cpu-rs6000.c Fri Sep 27 08:33:09 2002 @@ -46,7 +46,7 @@ rs6000_compatible (a,b) case bfd_arch_rs6000: return bfd_default_compatible (a, b); case bfd_arch_powerpc: - if (b->mach == 0) + if (b->mach == bfd_mach_rs6k) return b; return NULL; } diff -uprN binutils-2.13.90.0.4/bfd/cpu-tic4x.c binutils-2.13.90.0.10/bfd/cpu-tic4x.c --- binutils-2.13.90.0.4/bfd/cpu-tic4x.c Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/bfd/cpu-tic4x.c Fri Sep 27 08:33:09 2002 @@ -0,0 +1,85 @@ +/* bfd back-end for TMS320C[34]x support + Copyright (C) 1996, 1997, 2002 Free Software Foundation, Inc. + + Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz) + + This file is part of BFD, the Binary File Descriptor library. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#include "bfd.h" +#include "sysdep.h" +#include "libbfd.h" + +static boolean c4x_scan + PARAMS ((const struct bfd_arch_info *, const char * )); + + +static boolean +c4x_scan (info, string) + const struct bfd_arch_info *info; + const char *string; +{ + /* Allow strings of form [ti][Cc][34][0-9], let's not be too picky + about strange numbered machines in C3x or C4x series. */ + if (string[0] == 't' && string[1] == 'i') + string += 2; + if (*string == 'C' || *string == 'c') + string++; + if (string[1] < '0' && string[1] > '9') + return false; + + if (*string == '3') + return (info->mach == bfd_mach_c3x); + else if (*string == '4') + return info->mach == bfd_mach_c4x; + + return false; +} + + +const bfd_arch_info_type bfd_tic3x_arch = + { + 32, /* 32 bits in a word. */ + 32, /* 32 bits in an address. */ + 32, /* 32 bits in a byte. */ + bfd_arch_tic4x, + bfd_mach_c3x, /* Machine number. */ + "c3x", /* Architecture name. */ + "tms320c3x", /* Printable name. */ + 0, /* Alignment power. */ + false, /* Not the default architecture. */ + bfd_default_compatible, + c4x_scan, + 0 + }; + +const bfd_arch_info_type bfd_tic4x_arch = + { + 32, /* 32 bits in a word. */ + 32, /* 32 bits in an address. */ + 32, /* 32 bits in a byte. */ + bfd_arch_tic4x, + bfd_mach_c4x, /* Machine number. */ + "c4x", /* Architecture name. */ + "tms320c4x", /* Printable name. */ + 0, /* Alignment power. */ + true, /* The default architecture. */ + bfd_default_compatible, + c4x_scan, + &bfd_tic3x_arch, + }; + + diff -uprN binutils-2.13.90.0.4/bfd/cpu-v850.c binutils-2.13.90.0.10/bfd/cpu-v850.c --- binutils-2.13.90.0.4/bfd/cpu-v850.c Mon Oct 1 15:25:21 2001 +++ binutils-2.13.90.0.10/bfd/cpu-v850.c Fri Sep 27 08:33:09 2002 @@ -1,96 +1,36 @@ /* BFD support for the NEC V850 processor - Copyright 1996, 1997, 1998, 2000, 2001 Free Software Foundation, Inc. + Copyright 1996, 1997, 1998, 2000, 2001, 2002 Free Software Foundation, Inc. -This file is part of BFD, the Binary File Descriptor library. + 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 program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "bfd.h" #include "sysdep.h" #include "libbfd.h" #include "safe-ctype.h" -static boolean scan PARAMS ((const struct bfd_arch_info *, const char *)); - -static boolean -scan (info, string) - const struct bfd_arch_info * info; - const char * string; -{ - const char *ptr_src; - const char *ptr_tst; - unsigned long number; - enum bfd_architecture arch; - - /* First test for an exact match. */ - if (strcasecmp (string, info->printable_name) == 0) - return true; - - /* See how much of the supplied string matches with the - architecture, eg the string m68k:68020 would match the m68k entry - up to the :, then we get left with the machine number. */ - for (ptr_src = string, ptr_tst = info->arch_name; - *ptr_src && *ptr_tst; - ptr_src++, ptr_tst++) - if (*ptr_src != *ptr_tst) - break; - - /* Chewed up as much of the architecture as will match; - if there is a colon present skip it. */ - if (*ptr_src == ':') - ptr_src ++; - - if (*ptr_src == 0) - /* Nothing more, then only keep this one if it is - the default machine for this architecture. */ - return info->the_default; - - number = 0; - while (ISDIGIT (*ptr_src)) - { - number = number * 10 + * ptr_src - '0'; - ptr_src ++; - } - - switch (number) - { - case bfd_mach_v850e: arch = bfd_arch_v850; break; - case bfd_mach_v850ea: arch = bfd_arch_v850; break; - default: - return false; - } - - if (arch != info->arch) - return false; - - if (number != info->mach) - return false; - - return true; -} - #define N(number, print, default, next) \ { 32, 32, 8, bfd_arch_v850, number, "v850", print, 2, default, \ - bfd_default_compatible, scan, next } + bfd_default_compatible, bfd_default_scan, next } #define NEXT NULL static const bfd_arch_info_type arch_info_struct[] = { - N (bfd_mach_v850e, "v850e", false, & arch_info_struct[1]), - N (bfd_mach_v850ea, "v850ea", false, NULL) + N (bfd_mach_v850e, "v850e", false, NULL) }; #undef NEXT diff -uprN binutils-2.13.90.0.4/bfd/cpu-z8k.c binutils-2.13.90.0.10/bfd/cpu-z8k.c --- binutils-2.13.90.0.4/bfd/cpu-z8k.c Mon Oct 1 15:25:21 2001 +++ binutils-2.13.90.0.10/bfd/cpu-z8k.c Fri Sep 27 08:33:09 2002 @@ -22,8 +22,6 @@ Foundation, Inc., 59 Temple Place - Suit #include "sysdep.h" #include "libbfd.h" -static boolean scan_mach - PARAMS ((const struct bfd_arch_info *, const char *)); static const bfd_arch_info_type *compatible PARAMS ((const bfd_arch_info_type *, const bfd_arch_info_type *)); @@ -153,22 +151,6 @@ local_bfd_reloc_type_lookup (arch, code) } #endif -static boolean -scan_mach (info, string) - const struct bfd_arch_info *info; - const char *string; -{ - if (strcmp (string, "z8001") == 0 || strcmp (string, "z8k") == 0) - { - return bfd_mach_z8001 == info->mach; - } - if (strcmp (string, "z8002") == 0) - { - return bfd_mach_z8002 == info->mach; - } - return false; -} - /* This routine is provided two arch_infos and returns whether they'd be compatible */ @@ -184,10 +166,12 @@ compatible (a, b) static const bfd_arch_info_type arch_info_struct[] = { - {32, 32, 8, bfd_arch_z8k, bfd_mach_z8001, "z8k", "z8001", 1, false, compatible, scan_mach, 0,}, + { 32, 16, 8, bfd_arch_z8k, bfd_mach_z8002, "z8k", "z8002", 1, false, + compatible, bfd_default_scan, 0 } }; const bfd_arch_info_type bfd_z8k_arch = { - 32, 16, 8, bfd_arch_z8k, bfd_mach_z8002, "z8k", "z8002", 1, true, compatible, scan_mach, &arch_info_struct[0], + 32, 32, 8, bfd_arch_z8k, bfd_mach_z8001, "z8k", "z8001", 1, true, + compatible, bfd_default_scan, &arch_info_struct[0] }; diff -uprN binutils-2.13.90.0.4/bfd/doc/ChangeLog binutils-2.13.90.0.10/bfd/doc/ChangeLog --- binutils-2.13.90.0.4/bfd/doc/ChangeLog Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/bfd/doc/ChangeLog Fri Sep 27 08:33:09 2002 @@ -1,3 +1,8 @@ +2002-08-29 John David Anglin + + * chew.c (paramstuff, outputdots, perform, bang and usage): Remove + void from function definitions. + 2002-08-13 Alan Modra * header.sed: Strip tabs. diff -uprN binutils-2.13.90.0.4/bfd/doc/chew.c binutils-2.13.90.0.10/bfd/doc/chew.c --- binutils-2.13.90.0.4/bfd/doc/chew.c Sun May 26 09:57:12 2002 +++ binutils-2.13.90.0.10/bfd/doc/chew.c Fri Sep 27 08:33:09 2002 @@ -485,7 +485,7 @@ print_stack_level () */ static void -paramstuff (void) +paramstuff () { unsigned int openp; unsigned int fname; @@ -626,7 +626,7 @@ manglecomments () /* Mod tos so that only lines with leading dots remain */ static void -outputdots (void) +outputdots () { unsigned int idx = 0; string_type out; @@ -1261,7 +1261,7 @@ lookup_word (word) } static void -perform (void) +perform () { tos = stack; @@ -1412,7 +1412,7 @@ compile (string) } static void -bang (void) +bang () { *(long *) ((isp[0])) = isp[-1]; isp -= 2; @@ -1487,7 +1487,7 @@ read_in (str, file) } static void -usage (void) +usage () { fprintf (stderr, "usage: -[d|i|g] file\n"); exit (33); diff -uprN binutils-2.13.90.0.4/bfd/dwarf2.c binutils-2.13.90.0.10/bfd/dwarf2.c --- binutils-2.13.90.0.4/bfd/dwarf2.c Wed Jul 17 11:38:29 2002 +++ binutils-2.13.90.0.10/bfd/dwarf2.c Fri Sep 27 08:33:09 2002 @@ -13,21 +13,21 @@ based on Fred Fish's (Cygnus Support) implementation of DWARF 1 support in dwarfread.c -This file is part of BFD. + This file is part of BFD. -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 program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or (at + your option) any later version. + + This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "bfd.h" #include "sysdep.h" @@ -1084,13 +1084,19 @@ decode_line_info (unit, stash) { /* State machine registers. */ bfd_vma address = 0; - char* filename = concat_filename (table, 1); + char * filename = concat_filename (table, 1); unsigned int line = 1; unsigned int column = 0; int is_stmt = lh.default_is_stmt; int basic_block = 0; - int end_sequence = 0, need_low_pc = 1; - bfd_vma low_pc = 0; + int end_sequence = 0; + /* eraxxon@alumni.rice.edu: Against the DWARF2 specs, some + compilers generate address sequences that are wildly out of + order using DW_LNE_set_address (e.g. Intel C++ 6.0 compiler + for ia64-Linux). Thus, to determine the low and high + address, we must compare on every DW_LNS_copy, etc. */ + bfd_vma low_pc = 0; + bfd_vma high_pc = 0; /* Decode the table. */ while (! end_sequence) @@ -1099,7 +1105,8 @@ decode_line_info (unit, stash) line_ptr += 1; if (op_code >= lh.opcode_base) - { /* Special operand. */ + { + /* Special operand. */ adj_opcode = op_code - lh.opcode_base; address += (adj_opcode / lh.line_range) * lh.minimum_instruction_length; @@ -1107,30 +1114,30 @@ decode_line_info (unit, stash) /* Append row to matrix using current values. */ add_line_info (table, address, filename, line, column, 0); basic_block = 1; - if (need_low_pc) - { - need_low_pc = 0; - low_pc = address; - } + if (low_pc == 0 || address < low_pc) + low_pc = address; + if (address > high_pc) + high_pc = address; } else switch (op_code) { case DW_LNS_extended_op: - line_ptr += 1; /* Ignore length. */ + /* Ignore length. */ + line_ptr += 1; extended_op = read_1_byte (abfd, line_ptr); line_ptr += 1; + switch (extended_op) { case DW_LNE_end_sequence: end_sequence = 1; add_line_info (table, address, filename, line, column, end_sequence); - if (need_low_pc) - { - need_low_pc = 0; - low_pc = address; - } - arange_add (unit, low_pc, address); + if (low_pc == 0 || address < low_pc) + low_pc = address; + if (address > high_pc) + high_pc = address; + arange_add (unit, low_pc, high_pc); break; case DW_LNE_set_address: address = read_address (unit, line_ptr); @@ -1169,11 +1176,10 @@ decode_line_info (unit, stash) case DW_LNS_copy: add_line_info (table, address, filename, line, column, 0); basic_block = 0; - if (need_low_pc) - { - need_low_pc = 0; - low_pc = address; - } + if (low_pc == 0 || address < low_pc) + low_pc = address; + if (address > high_pc) + high_pc = address; break; case DW_LNS_advance_pc: address += lh.minimum_instruction_length @@ -1188,8 +1194,8 @@ decode_line_info (unit, stash) { unsigned int file; - /* The file and directory tables are 0 based, the references - are 1 based. */ + /* The file and directory tables are 0 + based, the references are 1 based. */ file = read_unsigned_leb128 (abfd, line_ptr, &bytes_read); line_ptr += bytes_read; filename = concat_filename (table, file); @@ -1214,8 +1220,9 @@ decode_line_info (unit, stash) line_ptr += 2; break; default: - { /* Unknown standard opcode, ignore it. */ + { int i; + /* Unknown standard opcode, ignore it. */ for (i = 0; i < lh.standard_opcode_lengths[op_code]; i++) { (void) read_unsigned_leb128 (abfd, line_ptr, &bytes_read); @@ -1234,10 +1241,7 @@ decode_line_info (unit, stash) LINENUMBER_PTR, are pointers to the objects to be filled in. */ static boolean -lookup_address_in_line_info_table (table, - addr, - function, - filename_ptr, +lookup_address_in_line_info_table (table, addr, function, filename_ptr, linenumber_ptr) struct line_info_table* table; bfd_vma addr; @@ -1298,9 +1302,7 @@ lookup_address_in_line_info_table (table /* If ADDR is within TABLE, set FUNCTIONNAME_PTR, and return true. */ static boolean -lookup_address_in_function_table (table, - addr, - function_ptr, +lookup_address_in_function_table (table, addr, function_ptr, functionname_ptr) struct funcinfo* table; bfd_vma addr; @@ -1666,9 +1668,8 @@ comp_unit_contains_address (unit, addr) false otherwise. */ static boolean -comp_unit_find_nearest_line (unit, addr, - filename_ptr, functionname_ptr, linenumber_ptr, - stash) +comp_unit_find_nearest_line (unit, addr, filename_ptr, functionname_ptr, + linenumber_ptr, stash) struct comp_unit* unit; bfd_vma addr; const char **filename_ptr; @@ -1708,26 +1709,23 @@ comp_unit_find_nearest_line (unit, addr, } function = NULL; - func_p = lookup_address_in_function_table (unit->function_table, - addr, - &function, - functionname_ptr); - line_p = lookup_address_in_line_info_table (unit->line_table, - addr, - function, - filename_ptr, + func_p = lookup_address_in_function_table (unit->function_table, addr, + &function, functionname_ptr); + line_p = lookup_address_in_line_info_table (unit->line_table, addr, + function, filename_ptr, linenumber_ptr); return line_p || func_p; } -/* Locate a section in a BFD containing debugging info. The search starts from the - section after AFTER_SEC, or from the first section in the BFD if AFTER_SEC is - NULL. The search works by examining the names of the sections. There are two - permissiable names. The first is .debug_info. This is the standard DWARF2 name. - The second is a prefix .gnu.linkonce.wi. This is a variation on the .debug_info - section which has a checksum describing the contents appended onto the name. This - allows the linker to identify and discard duplicate debugging sections for - different compilation units. */ +/* Locate a section in a BFD containing debugging info. The search starts + from the section after AFTER_SEC, or from the first section in the BFD if + AFTER_SEC is NULL. The search works by examining the names of the + sections. There are two permissiable names. The first is .debug_info. + This is the standard DWARF2 name. The second is a prefix .gnu.linkonce.wi. + This is a variation on the .debug_info section which has a checksum + describing the contents appended onto the name. This allows the linker to + identify and discard duplicate debugging sections for different + compilation units. */ #define DWARF2_DEBUG_INFO ".debug_info" #define GNU_LINKONCE_INFO ".gnu.linkonce.wi." @@ -1766,8 +1764,7 @@ find_debug_info (abfd, after_sec) boolean _bfd_dwarf2_find_nearest_line (abfd, section, symbols, offset, filename_ptr, functionname_ptr, - linenumber_ptr, - addr_size, pinfo) + linenumber_ptr, addr_size, pinfo) bfd *abfd; asection *section; asymbol **symbols; @@ -1907,6 +1904,13 @@ _bfd_dwarf2_find_nearest_line (abfd, sec length = read_8_bytes (abfd, stash->info_ptr + 4); stash->info_ptr += 8; } + else if (length == 0) + { + /* Handle (non-standard) 64-bit DWARF2 formats. */ + offset_size = 8; + length = read_4_bytes (abfd, stash->info_ptr + 4); + stash->info_ptr += 4; + } } else length = read_8_bytes (abfd, stash->info_ptr); diff -uprN binutils-2.13.90.0.4/bfd/ecoff.c binutils-2.13.90.0.10/bfd/ecoff.c --- binutils-2.13.90.0.4/bfd/ecoff.c Thu Aug 1 17:49:32 2002 +++ binutils-2.13.90.0.10/bfd/ecoff.c Fri Sep 27 08:33:09 2002 @@ -205,21 +205,21 @@ _bfd_ecoff_set_arch_mach_hook (abfd, fil case MIPS_MAGIC_LITTLE: case MIPS_MAGIC_BIG: arch = bfd_arch_mips; - mach = 3000; + mach = bfd_mach_mips3000; break; case MIPS_MAGIC_LITTLE2: case MIPS_MAGIC_BIG2: /* MIPS ISA level 2: the r6000. */ arch = bfd_arch_mips; - mach = 6000; + mach = bfd_mach_mips6000; break; case MIPS_MAGIC_LITTLE3: case MIPS_MAGIC_BIG3: /* MIPS ISA level 3: the r4000. */ arch = bfd_arch_mips; - mach = 4000; + mach = bfd_mach_mips4000; break; case ALPHA_MAGIC: @@ -252,17 +252,17 @@ ecoff_get_magic (abfd) { default: case 0: - case 3000: + case bfd_mach_mips3000: big = MIPS_MAGIC_BIG; little = MIPS_MAGIC_LITTLE; break; - case 6000: + case bfd_mach_mips6000: big = MIPS_MAGIC_BIG2; little = MIPS_MAGIC_LITTLE2; break; - case 4000: + case bfd_mach_mips4000: big = MIPS_MAGIC_BIG3; little = MIPS_MAGIC_LITTLE3; break; @@ -553,7 +553,9 @@ _bfd_ecoff_slurp_symbolic_info (abfd, ig UPDATE_RAW_END (cbDnOffset, idnMax, backend->debug_swap.external_dnr_size); UPDATE_RAW_END (cbPdOffset, ipdMax, backend->debug_swap.external_pdr_size); UPDATE_RAW_END (cbSymOffset, isymMax, backend->debug_swap.external_sym_size); - UPDATE_RAW_END (cbOptOffset, ioptMax, backend->debug_swap.external_opt_size); + /* eraxxon@alumni.rice.edu: ioptMax refers to the size of the + optimization symtab, not the number of entries */ + UPDATE_RAW_END (cbOptOffset, ioptMax, sizeof (char)); UPDATE_RAW_END (cbAuxOffset, iauxMax, sizeof (union aux_ext)); UPDATE_RAW_END (cbSsOffset, issMax, sizeof (char)); UPDATE_RAW_END (cbSsExtOffset, issExtMax, sizeof (char)); diff -uprN binutils-2.13.90.0.4/bfd/ecoffswap.h binutils-2.13.90.0.10/bfd/ecoffswap.h --- binutils-2.13.90.0.4/bfd/ecoffswap.h Mon Oct 1 15:25:21 2001 +++ binutils-2.13.90.0.10/bfd/ecoffswap.h Fri Sep 27 08:33:09 2002 @@ -1,23 +1,23 @@ /* Generic ECOFF swapping routines, for BFD. - Copyright 1992, 1993, 1994, 1995, 1996, 2000, 2001 + Copyright 1992, 1993, 1994, 1995, 1996, 2000, 2001, 2002 Free Software Foundation, Inc. Written by Cygnus Support. -This file is part of BFD, the Binary File Descriptor library. + 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 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. */ /* NOTE: This is a header file, but it contains executable routines. This is done this way because these routines are substantially @@ -220,7 +220,7 @@ ecoff_swap_fdr_in (abfd, ext_copy, inter intern->rfdBase = H_GET_32 (abfd, ext->f_rfdBase); intern->crfd = H_GET_32 (abfd, ext->f_crfd); - /* now the fun stuff... */ + /* Now the fun stuff... */ if (bfd_header_big_endian (abfd)) { intern->lang = ((ext->f_bits1[0] & FDR_BITS1_LANG_BIG) @@ -263,7 +263,8 @@ ecoff_swap_fdr_out (abfd, intern_copy, e struct fdr_ext *ext = (struct fdr_ext *) ext_ptr; FDR intern[1]; - *intern = *intern_copy; /* Make it reasonable to do in-place. */ + /* Make it reasonable to do in-place. */ + *intern = *intern_copy; ECOFF_PUT_OFF (abfd, intern->adr, ext->f_adr); H_PUT_32 (abfd, intern->rss, ext->f_rss); @@ -288,7 +289,7 @@ ecoff_swap_fdr_out (abfd, intern_copy, e H_PUT_32 (abfd, intern->rfdBase, ext->f_rfdBase); H_PUT_32 (abfd, intern->crfd, ext->f_crfd); - /* now the fun stuff... */ + /* Now the fun stuff... */ if (bfd_header_big_endian (abfd)) { ext->f_bits1[0] = (((intern->lang << FDR_BITS1_LANG_SH_BIG) @@ -355,6 +356,11 @@ ecoff_swap_pdr_in (abfd, ext_copy, inter intern->cbLineOffset = ECOFF_GET_OFF (abfd, ext->p_cbLineOffset); #if defined (ECOFF_64) || defined (ECOFF_SIGNED_64) + if (intern->isym == (signed long) 0xffffffff) + intern->isym = -1; + if (intern->iline == (signed long) 0xffffffff) + intern->iline = -1; + intern->gp_prologue = H_GET_8 (abfd, ext->p_gp_prologue); if (bfd_header_big_endian (abfd)) { @@ -396,7 +402,8 @@ ecoff_swap_pdr_out (abfd, intern_copy, e struct pdr_ext *ext = (struct pdr_ext *) ext_ptr; PDR intern[1]; - *intern = *intern_copy; /* Make it reasonable to do in-place. */ + /* Make it reasonable to do in-place. */ + *intern = *intern_copy; ECOFF_PUT_OFF (abfd, intern->adr, ext->p_adr); H_PUT_32 (abfd, intern->isym, ext->p_isym); @@ -494,7 +501,8 @@ ecoff_swap_pdr_out (abfd, intern_copy, e struct pdr_ext *ext = (struct pdr_ext *) ext_ptr; PDR intern[1]; - *intern = *intern_copy; /* Make it reasonable to do in-place. */ + /* Make it reasonable to do in-place. */ + *intern = *intern_copy; ECOFF_PUT_OFF (abfd, intern->adr, ext->p_adr); H_PUT_32 (abfd, intern->isym, ext->p_isym); @@ -533,33 +541,41 @@ ecoff_swap_sym_in (abfd, ext_copy, inter intern->iss = H_GET_32 (abfd, ext->s_iss); intern->value = ECOFF_GET_OFF (abfd, ext->s_value); - /* now the fun stuff... */ - if (bfd_header_big_endian (abfd)) { - intern->st = (ext->s_bits1[0] & SYM_BITS1_ST_BIG) - >> SYM_BITS1_ST_SH_BIG; - intern->sc = ((ext->s_bits1[0] & SYM_BITS1_SC_BIG) - << SYM_BITS1_SC_SH_LEFT_BIG) - | ((ext->s_bits2[0] & SYM_BITS2_SC_BIG) - >> SYM_BITS2_SC_SH_BIG); - intern->reserved = 0 != (ext->s_bits2[0] & SYM_BITS2_RESERVED_BIG); - intern->index = ((ext->s_bits2[0] & SYM_BITS2_INDEX_BIG) - << SYM_BITS2_INDEX_SH_LEFT_BIG) - | (ext->s_bits3[0] << SYM_BITS3_INDEX_SH_LEFT_BIG) - | (ext->s_bits4[0] << SYM_BITS4_INDEX_SH_LEFT_BIG); - } else { - intern->st = (ext->s_bits1[0] & SYM_BITS1_ST_LITTLE) - >> SYM_BITS1_ST_SH_LITTLE; - intern->sc = ((ext->s_bits1[0] & SYM_BITS1_SC_LITTLE) - >> SYM_BITS1_SC_SH_LITTLE) - | ((ext->s_bits2[0] & SYM_BITS2_SC_LITTLE) - << SYM_BITS2_SC_SH_LEFT_LITTLE); - intern->reserved = 0 != (ext->s_bits2[0] & SYM_BITS2_RESERVED_LITTLE); - intern->index = ((ext->s_bits2[0] & SYM_BITS2_INDEX_LITTLE) - >> SYM_BITS2_INDEX_SH_LITTLE) - | (ext->s_bits3[0] << SYM_BITS3_INDEX_SH_LEFT_LITTLE) - | ((unsigned int) ext->s_bits4[0] - << SYM_BITS4_INDEX_SH_LEFT_LITTLE); - } +#if defined (ECOFF_64) || defined (ECOFF_SIGNED_64) + if (intern->iss == (signed long) 0xffffffff) + intern->iss = -1; +#endif + + /* Now the fun stuff... */ + if (bfd_header_big_endian (abfd)) + { + intern->st = (ext->s_bits1[0] & SYM_BITS1_ST_BIG) + >> SYM_BITS1_ST_SH_BIG; + intern->sc = ((ext->s_bits1[0] & SYM_BITS1_SC_BIG) + << SYM_BITS1_SC_SH_LEFT_BIG) + | ((ext->s_bits2[0] & SYM_BITS2_SC_BIG) + >> SYM_BITS2_SC_SH_BIG); + intern->reserved = 0 != (ext->s_bits2[0] & SYM_BITS2_RESERVED_BIG); + intern->index = ((ext->s_bits2[0] & SYM_BITS2_INDEX_BIG) + << SYM_BITS2_INDEX_SH_LEFT_BIG) + | (ext->s_bits3[0] << SYM_BITS3_INDEX_SH_LEFT_BIG) + | (ext->s_bits4[0] << SYM_BITS4_INDEX_SH_LEFT_BIG); + } + else + { + intern->st = (ext->s_bits1[0] & SYM_BITS1_ST_LITTLE) + >> SYM_BITS1_ST_SH_LITTLE; + intern->sc = ((ext->s_bits1[0] & SYM_BITS1_SC_LITTLE) + >> SYM_BITS1_SC_SH_LITTLE) + | ((ext->s_bits2[0] & SYM_BITS2_SC_LITTLE) + << SYM_BITS2_SC_SH_LEFT_LITTLE); + intern->reserved = 0 != (ext->s_bits2[0] & SYM_BITS2_RESERVED_LITTLE); + intern->index = ((ext->s_bits2[0] & SYM_BITS2_INDEX_LITTLE) + >> SYM_BITS2_INDEX_SH_LITTLE) + | (ext->s_bits3[0] << SYM_BITS3_INDEX_SH_LEFT_LITTLE) + | ((unsigned int) ext->s_bits4[0] + << SYM_BITS4_INDEX_SH_LEFT_LITTLE); + } #ifdef TEST if (memcmp ((char *)ext, (char *)intern, sizeof (*intern)) != 0) @@ -578,37 +594,41 @@ ecoff_swap_sym_out (abfd, intern_copy, e struct sym_ext *ext = (struct sym_ext *) ext_ptr; SYMR intern[1]; - *intern = *intern_copy; /* Make it reasonable to do in-place. */ + /* Make it reasonable to do in-place. */ + *intern = *intern_copy; H_PUT_32 (abfd, intern->iss, ext->s_iss); ECOFF_PUT_OFF (abfd, intern->value, ext->s_value); - /* now the fun stuff... */ - if (bfd_header_big_endian (abfd)) { - ext->s_bits1[0] = (((intern->st << SYM_BITS1_ST_SH_BIG) - & SYM_BITS1_ST_BIG) - | ((intern->sc >> SYM_BITS1_SC_SH_LEFT_BIG) - & SYM_BITS1_SC_BIG)); - ext->s_bits2[0] = (((intern->sc << SYM_BITS2_SC_SH_BIG) - & SYM_BITS2_SC_BIG) - | (intern->reserved ? SYM_BITS2_RESERVED_BIG : 0) - | ((intern->index >> SYM_BITS2_INDEX_SH_LEFT_BIG) - & SYM_BITS2_INDEX_BIG)); - ext->s_bits3[0] = (intern->index >> SYM_BITS3_INDEX_SH_LEFT_BIG) & 0xff; - ext->s_bits4[0] = (intern->index >> SYM_BITS4_INDEX_SH_LEFT_BIG) & 0xff; - } else { - ext->s_bits1[0] = (((intern->st << SYM_BITS1_ST_SH_LITTLE) - & SYM_BITS1_ST_LITTLE) - | ((intern->sc << SYM_BITS1_SC_SH_LITTLE) - & SYM_BITS1_SC_LITTLE)); - ext->s_bits2[0] = (((intern->sc >> SYM_BITS2_SC_SH_LEFT_LITTLE) - & SYM_BITS2_SC_LITTLE) - | (intern->reserved ? SYM_BITS2_RESERVED_LITTLE : 0) - | ((intern->index << SYM_BITS2_INDEX_SH_LITTLE) - & SYM_BITS2_INDEX_LITTLE)); - ext->s_bits3[0] = (intern->index >> SYM_BITS3_INDEX_SH_LEFT_LITTLE) & 0xff; - ext->s_bits4[0] = (intern->index >> SYM_BITS4_INDEX_SH_LEFT_LITTLE) & 0xff; - } + /* Now the fun stuff... */ + if (bfd_header_big_endian (abfd)) + { + ext->s_bits1[0] = (((intern->st << SYM_BITS1_ST_SH_BIG) + & SYM_BITS1_ST_BIG) + | ((intern->sc >> SYM_BITS1_SC_SH_LEFT_BIG) + & SYM_BITS1_SC_BIG)); + ext->s_bits2[0] = (((intern->sc << SYM_BITS2_SC_SH_BIG) + & SYM_BITS2_SC_BIG) + | (intern->reserved ? SYM_BITS2_RESERVED_BIG : 0) + | ((intern->index >> SYM_BITS2_INDEX_SH_LEFT_BIG) + & SYM_BITS2_INDEX_BIG)); + ext->s_bits3[0] = (intern->index >> SYM_BITS3_INDEX_SH_LEFT_BIG) & 0xff; + ext->s_bits4[0] = (intern->index >> SYM_BITS4_INDEX_SH_LEFT_BIG) & 0xff; + } + else + { + ext->s_bits1[0] = (((intern->st << SYM_BITS1_ST_SH_LITTLE) + & SYM_BITS1_ST_LITTLE) + | ((intern->sc << SYM_BITS1_SC_SH_LITTLE) + & SYM_BITS1_SC_LITTLE)); + ext->s_bits2[0] = (((intern->sc >> SYM_BITS2_SC_SH_LEFT_LITTLE) + & SYM_BITS2_SC_LITTLE) + | (intern->reserved ? SYM_BITS2_RESERVED_LITTLE : 0) + | ((intern->index << SYM_BITS2_INDEX_SH_LITTLE) + & SYM_BITS2_INDEX_LITTLE)); + ext->s_bits3[0] = (intern->index >> SYM_BITS3_INDEX_SH_LEFT_LITTLE) & 0xff; + ext->s_bits4[0] = (intern->index >> SYM_BITS4_INDEX_SH_LEFT_LITTLE) & 0xff; + } #ifdef TEST if (memcmp ((char *)ext, (char *)intern, sizeof (*intern)) != 0) @@ -628,23 +648,26 @@ ecoff_swap_ext_in (abfd, ext_copy, inter *ext = *(struct ext_ext *) ext_copy; - /* now the fun stuff... */ - if (bfd_header_big_endian (abfd)) { - intern->jmptbl = 0 != (ext->es_bits1[0] & EXT_BITS1_JMPTBL_BIG); - intern->cobol_main = 0 != (ext->es_bits1[0] & EXT_BITS1_COBOL_MAIN_BIG); - intern->weakext = 0 != (ext->es_bits1[0] & EXT_BITS1_WEAKEXT_BIG); - } else { - intern->jmptbl = 0 != (ext->es_bits1[0] & EXT_BITS1_JMPTBL_LITTLE); - intern->cobol_main = 0 != (ext->es_bits1[0] & EXT_BITS1_COBOL_MAIN_LITTLE); - intern->weakext = 0 != (ext->es_bits1[0] & EXT_BITS1_WEAKEXT_LITTLE); - } + /* Now the fun stuff... */ + if (bfd_header_big_endian (abfd)) + { + intern->jmptbl = 0 != (ext->es_bits1[0] & EXT_BITS1_JMPTBL_BIG); + intern->cobol_main = 0 != (ext->es_bits1[0] & EXT_BITS1_COBOL_MAIN_BIG); + intern->weakext = 0 != (ext->es_bits1[0] & EXT_BITS1_WEAKEXT_BIG); + } + else + { + intern->jmptbl = 0 != (ext->es_bits1[0] & EXT_BITS1_JMPTBL_LITTLE); + intern->cobol_main = 0 != (ext->es_bits1[0] & EXT_BITS1_COBOL_MAIN_LITTLE); + intern->weakext = 0 != (ext->es_bits1[0] & EXT_BITS1_WEAKEXT_LITTLE); + } intern->reserved = 0; #if defined (ECOFF_32) || defined (ECOFF_SIGNED_32) - intern->ifd = H_GET_S16 (abfd, ext->es_ifd); + intern->ifd = H_GET_S16 (abfd, ext->es_ifd); #endif #if defined (ECOFF_64) || defined (ECOFF_SIGNED_64) - intern->ifd = H_GET_S32 (abfd, ext->es_ifd); + intern->ifd = H_GET_S32 (abfd, ext->es_ifd); #endif ecoff_swap_sym_in (abfd, &ext->es_asym, &intern->asym); @@ -666,28 +689,32 @@ ecoff_swap_ext_out (abfd, intern_copy, e struct ext_ext *ext = (struct ext_ext *) ext_ptr; EXTR intern[1]; - *intern = *intern_copy; /* Make it reasonable to do in-place. */ + /* Make it reasonable to do in-place. */ + *intern = *intern_copy; - /* now the fun stuff... */ - if (bfd_header_big_endian (abfd)) { - ext->es_bits1[0] = ((intern->jmptbl ? EXT_BITS1_JMPTBL_BIG : 0) - | (intern->cobol_main ? EXT_BITS1_COBOL_MAIN_BIG : 0) - | (intern->weakext ? EXT_BITS1_WEAKEXT_BIG : 0)); - ext->es_bits2[0] = 0; + /* Now the fun stuff... */ + if (bfd_header_big_endian (abfd)) + { + ext->es_bits1[0] = ((intern->jmptbl ? EXT_BITS1_JMPTBL_BIG : 0) + | (intern->cobol_main ? EXT_BITS1_COBOL_MAIN_BIG : 0) + | (intern->weakext ? EXT_BITS1_WEAKEXT_BIG : 0)); + ext->es_bits2[0] = 0; #if defined (ECOFF_64) || defined (ECOFF_SIGNED_64) - ext->es_bits2[1] = 0; - ext->es_bits2[2] = 0; + ext->es_bits2[1] = 0; + ext->es_bits2[2] = 0; #endif - } else { - ext->es_bits1[0] = ((intern->jmptbl ? EXT_BITS1_JMPTBL_LITTLE : 0) - | (intern->cobol_main ? EXT_BITS1_COBOL_MAIN_LITTLE : 0) - | (intern->weakext ? EXT_BITS1_WEAKEXT_LITTLE : 0)); - ext->es_bits2[0] = 0; + } + else + { + ext->es_bits1[0] = ((intern->jmptbl ? EXT_BITS1_JMPTBL_LITTLE : 0) + | (intern->cobol_main ? EXT_BITS1_COBOL_MAIN_LITTLE : 0) + | (intern->weakext ? EXT_BITS1_WEAKEXT_LITTLE : 0)); + ext->es_bits2[0] = 0; #if defined (ECOFF_64) || defined (ECOFF_SIGNED_64) - ext->es_bits2[1] = 0; - ext->es_bits2[2] = 0; + ext->es_bits2[1] = 0; + ext->es_bits2[2] = 0; #endif - } + } #if defined (ECOFF_32) || defined (ECOFF_SIGNED_32) H_PUT_S16 (abfd, intern->ifd, ext->es_ifd); @@ -792,7 +819,8 @@ ecoff_swap_opt_out (abfd, intern_copy, e struct opt_ext *ext = (struct opt_ext *) ext_ptr; OPTR intern[1]; - *intern = *intern_copy; /* Make it reasonable to do in-place. */ + /* Make it reasonable to do in-place. */ + *intern = *intern_copy; if (bfd_header_big_endian (abfd)) { @@ -852,7 +880,8 @@ ecoff_swap_dnr_out (abfd, intern_copy, e struct dnr_ext *ext = (struct dnr_ext *) ext_ptr; DNR intern[1]; - *intern = *intern_copy; /* Make it reasonable to do in-place. */ + /* Make it reasonable to do in-place. */ + *intern = *intern_copy; H_PUT_32 (abfd, intern->rfd, ext->d_rfd); H_PUT_32 (abfd, intern->index, ext->d_index); diff -uprN binutils-2.13.90.0.4/bfd/elf-bfd.h binutils-2.13.90.0.10/bfd/elf-bfd.h --- binutils-2.13.90.0.4/bfd/elf-bfd.h Mon Jul 29 08:19:16 2002 +++ binutils-2.13.90.0.10/bfd/elf-bfd.h Fri Sep 27 08:33:09 2002 @@ -717,7 +717,8 @@ struct elf_backend_data newly created and plt/got refcounts and dynamic indices should not be copied. */ void (*elf_backend_copy_indirect_symbol) - PARAMS ((struct elf_link_hash_entry *, struct elf_link_hash_entry *)); + PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *, + struct elf_link_hash_entry *)); /* Modify any information related to dynamic linking such that the symbol is not exported. */ @@ -1271,7 +1272,8 @@ extern struct bfd_hash_entry *_bfd_elf_l extern struct bfd_link_hash_table *_bfd_elf_link_hash_table_create PARAMS ((bfd *)); extern void _bfd_elf_link_hash_copy_indirect - PARAMS ((struct elf_link_hash_entry *, struct elf_link_hash_entry *)); + PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *, + struct elf_link_hash_entry *)); extern void _bfd_elf_link_hash_hide_symbol PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *, boolean)); extern boolean _bfd_elf_link_hash_table_init diff -uprN binutils-2.13.90.0.4/bfd/elf-eh-frame.c binutils-2.13.90.0.10/bfd/elf-eh-frame.c --- binutils-2.13.90.0.4/bfd/elf-eh-frame.c Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.10/bfd/elf-eh-frame.c Fri Sep 27 08:33:09 2002 @@ -287,7 +287,7 @@ _bfd_elf_discard_section_eh_frame (abfd, bfd *abfd; struct bfd_link_info *info; asection *sec, *ehdrsec; - boolean (*reloc_symbol_deleted_p) (bfd_vma, PTR); + boolean (*reloc_symbol_deleted_p) PARAMS ((bfd_vma, PTR)); struct elf_reloc_cookie *cookie; { bfd_byte *ehbuf = NULL, *buf; @@ -506,6 +506,11 @@ _bfd_elf_discard_section_eh_frame (abfd, } read_uleb128 (cie.code_align, buf); read_sleb128 (cie.data_align, buf); + /* Note - in DWARF2 the return address column is an unsigned byte. + In DWARF3 it is a ULEB128. We are following DWARF3. For most + ports this will not matter as the value will be less than 128. + For the others (eg FRV, SH, MMIX, IA64) they need a fixed GCC + which conforms to the DWARF3 standard. */ read_uleb128 (cie.ra_column, buf); ENSURE_NO_RELOCS (buf); cie.lsda_encoding = DW_EH_PE_omit; @@ -627,11 +632,11 @@ _bfd_elf_discard_section_eh_frame (abfd, goto free_no_table; if ((*reloc_symbol_deleted_p) (buf - ehbuf, cookie)) { - cookie->rel = rel; /* This is a FDE against discarded section, it should be deleted. */ new_size -= hdr.length + 4; sec_info->entry[sec_info->count].removed = 1; + memset (rel, 0, sizeof (*rel)); } else { diff -uprN binutils-2.13.90.0.4/bfd/elf.c binutils-2.13.90.0.10/bfd/elf.c --- binutils-2.13.90.0.4/bfd/elf.c Thu Aug 1 17:49:32 2002 +++ binutils-2.13.90.0.10/bfd/elf.c Wed Oct 2 10:17:19 2002 @@ -371,7 +371,7 @@ bfd_elf_get_elf_syms (ibfd, symtab_hdr, { Elf_Internal_Shdr *shndx_hdr; PTR alloc_ext; - const PTR esym; + const bfd_byte *esym; Elf_External_Sym_Shndx *alloc_extshndx; Elf_External_Sym_Shndx *shndx; Elf_Internal_Sym *isym; @@ -1418,10 +1418,12 @@ _bfd_elf_link_hash_newfunc (entry, table old indirect symbol. Also used for copying flags to a weakdef. */ void -_bfd_elf_link_hash_copy_indirect (dir, ind) +_bfd_elf_link_hash_copy_indirect (bed, dir, ind) + struct elf_backend_data *bed; struct elf_link_hash_entry *dir, *ind; { bfd_signed_vma tmp; + bfd_signed_vma lowest_valid = bed->can_refcount; /* Copy down any references that we may have already seen to the symbol which just became indirect. */ @@ -1439,22 +1441,22 @@ _bfd_elf_link_hash_copy_indirect (dir, i /* Copy over the global and procedure linkage table refcount entries. These may have been already set up by a check_relocs routine. */ tmp = dir->got.refcount; - if (tmp <= 0) + if (tmp < lowest_valid) { dir->got.refcount = ind->got.refcount; ind->got.refcount = tmp; } else - BFD_ASSERT (ind->got.refcount <= 0); + BFD_ASSERT (ind->got.refcount < lowest_valid); tmp = dir->plt.refcount; - if (tmp <= 0) + if (tmp < lowest_valid) { dir->plt.refcount = ind->plt.refcount; ind->plt.refcount = tmp; } else - BFD_ASSERT (ind->plt.refcount <= 0); + BFD_ASSERT (ind->plt.refcount < lowest_valid); if (dir->dynindx == -1) { @@ -3315,8 +3317,9 @@ map_sections_to_segments (abfd) } else if (! writable && (hdr->flags & SEC_READONLY) == 0 - && (BFD_ALIGN (last_hdr->lma + last_hdr->_raw_size, maxpagesize) - == hdr->lma)) + && (((last_hdr->lma + last_hdr->_raw_size - 1) + & ~(maxpagesize - 1)) + != (hdr->lma & ~(maxpagesize - 1)))) { /* We don't want to put a writable section in a read only segment, unless they are on the same page in memory @@ -5570,7 +5573,11 @@ _bfd_elf_canonicalize_dynamic_symtab (ab asymbol **alocation; { struct elf_backend_data *bed = get_elf_backend_data (abfd); - return bed->s->slurp_symbol_table (abfd, alocation, true); + long symcount = bed->s->slurp_symbol_table (abfd, alocation, true); + + if (symcount >= 0) + bfd_get_dynamic_symcount (abfd) = symcount; + return symcount; } /* Return the size required for the dynamic reloc entries. Any @@ -6039,7 +6046,7 @@ _bfd_elf_find_nearest_line (abfd, sectio functionname_ptr, line_ptr, &elf_tdata (abfd)->line_info)) return false; - if (found) + if (found && (*functionname_ptr || *line_ptr)) return true; if (symbols == NULL) diff -uprN binutils-2.13.90.0.4/bfd/elf32-arm.h binutils-2.13.90.0.10/bfd/elf32-arm.h --- binutils-2.13.90.0.4/bfd/elf32-arm.h Thu Aug 1 17:49:32 2002 +++ binutils-2.13.90.0.10/bfd/elf32-arm.h Fri Sep 27 08:33:09 2002 @@ -1501,33 +1501,36 @@ elf32_arm_final_link_relocate (howto, in case R_ARM_THM_PC11: /* Thumb B (branch) instruction). */ { - bfd_vma relocation; + bfd_signed_vma relocation; bfd_signed_vma reloc_signed_max = (1 << (howto->bitsize - 1)) - 1; bfd_signed_vma reloc_signed_min = ~ reloc_signed_max; - bfd_vma check; bfd_signed_vma signed_check; #ifdef USE_REL /* Need to refetch addend. */ addend = bfd_get_16 (input_bfd, hit_data) & howto->src_mask; - /* ??? Need to determine shift amount from operand size. */ - addend >>= howto->rightshift; + if (addend & ((howto->src_mask + 1) >> 1)) + { + signed_addend = -1; + signed_addend &= ~ howto->src_mask; + signed_addend |= addend; + } + else + signed_addend = addend; + /* The value in the insn has been right shifted. We need to + undo this, so that we can perform the address calculation + in terms of bytes. */ + signed_addend <<= howto->rightshift; #endif - relocation = value + addend; + relocation = value + signed_addend; relocation -= (input_section->output_section->vma + input_section->output_offset + rel->r_offset); - check = relocation >> howto->rightshift; - - /* If this is a signed value, the rightshift just - dropped leading 1 bits (assuming twos complement). */ - if ((bfd_signed_vma) relocation >= 0) - signed_check = check; - else - signed_check = check | ~((bfd_vma) -1 >> howto->rightshift); - + relocation >>= howto->rightshift; + signed_check = relocation; + relocation &= howto->dst_mask; relocation |= (bfd_get_16 (input_bfd, hit_data) & (~ howto->dst_mask)); bfd_put_16 (input_bfd, relocation, hit_data); @@ -2963,16 +2966,22 @@ elf32_arm_adjust_dynamic_symbol (info, h if (h->type == STT_FUNC || (h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_PLT) != 0) { + /* If we link a program (not a DSO), we'll get rid of unnecessary + PLT entries; we point to the actual symbols -- even for pic + relocs, because a program built with -fpic should have the same + result as one built without -fpic, specifically considering weak + symbols. + FIXME: m68k and i386 differ here, for unclear reasons. */ if (! info->shared - && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_DYNAMIC) == 0 - && (h->elf_link_hash_flags & ELF_LINK_HASH_REF_DYNAMIC) == 0) + && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_DYNAMIC) == 0) { /* This case can occur if we saw a PLT32 reloc in an input - file, but the symbol was never referred to by a dynamic - object. In such a case, we don't actually need to build - a procedure linkage table, and we can just do a PC32 - reloc instead. */ + file, but the symbol was not defined by a dynamic object. + In such a case, we don't actually need to build a + procedure linkage table, and we can just do a PC32 reloc + instead. */ BFD_ASSERT ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_PLT) != 0); + h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT; return true; } @@ -3546,6 +3555,31 @@ elf32_arm_finish_dynamic_sections (outpu } bfd_elf32_swap_dyn_out (output_bfd, &dyn, dyncon); break; + + /* Set the bottom bit of DT_INIT/FINI if the + corresponding function is Thumb. */ + case DT_INIT: + name = info->init_function; + goto get_sym; + case DT_FINI: + name = info->fini_function; + get_sym: + /* If it wasn't set by elf_bfd_final_link + then there is nothing to ajdust. */ + if (dyn.d_un.d_val != 0) + { + struct elf_link_hash_entry * eh; + + eh = elf_link_hash_lookup (elf_hash_table (info), name, + false, false, true); + if (eh != (struct elf_link_hash_entry *) NULL + && ELF_ST_TYPE (eh->type) == STT_ARM_TFUNC) + { + dyn.d_un.d_val |= 1; + bfd_elf32_swap_dyn_out (output_bfd, &dyn, dyncon); + } + } + break; } } diff -uprN binutils-2.13.90.0.4/bfd/elf32-cris.c binutils-2.13.90.0.10/bfd/elf32-cris.c --- binutils-2.13.90.0.4/bfd/elf32-cris.c Mon Jul 29 08:19:16 2002 +++ binutils-2.13.90.0.10/bfd/elf32-cris.c Fri Sep 27 08:33:09 2002 @@ -2917,7 +2917,8 @@ elf_cris_discard_excess_program_dynamics functions; doing this for all symbols would presumably not introduce new problems. Of course we don't do this if we're exporting all dynamic symbols. */ - if (! info->export_dynamic) + if (! info->export_dynamic + && (h->root.elf_link_hash_flags & ELF_LINK_HASH_REF_DYNAMIC) == 0) { h->root.dynindx = -1; _bfd_elf_strtab_delref (elf_hash_table (info)->dynstr, diff -uprN binutils-2.13.90.0.4/bfd/elf32-h8300.c binutils-2.13.90.0.10/bfd/elf32-h8300.c --- binutils-2.13.90.0.4/bfd/elf32-h8300.c Mon Jul 29 08:19:16 2002 +++ binutils-2.13.90.0.10/bfd/elf32-h8300.c Fri Sep 27 08:33:09 2002 @@ -765,7 +765,7 @@ elf32_h8_relax_section (abfd, sec, link_ Elf_Internal_Sym *isym; asection *sym_sec; - isym = isymbuf + ELF64_R_SYM (irel->r_info); + isym = isymbuf + ELF32_R_SYM (irel->r_info); sym_sec = bfd_section_from_elf_index (abfd, isym->st_shndx); symval = (isym->st_value + sym_sec->output_section->vma diff -uprN binutils-2.13.90.0.4/bfd/elf32-hppa.c binutils-2.13.90.0.10/bfd/elf32-hppa.c --- binutils-2.13.90.0.4/bfd/elf32-hppa.c Mon Jul 29 08:19:16 2002 +++ binutils-2.13.90.0.10/bfd/elf32-hppa.c Fri Sep 27 08:33:09 2002 @@ -327,7 +327,8 @@ static boolean elf32_hppa_create_dynamic PARAMS ((bfd *, struct bfd_link_info *)); static void elf32_hppa_copy_indirect_symbol - PARAMS ((struct elf_link_hash_entry *, struct elf_link_hash_entry *)); + PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *, + struct elf_link_hash_entry *)); static boolean elf32_hppa_check_relocs PARAMS ((bfd *, struct bfd_link_info *, @@ -1145,7 +1146,8 @@ elf32_hppa_create_dynamic_sections (abfd /* Copy the extra info we tack onto an elf_link_hash_entry. */ static void -elf32_hppa_copy_indirect_symbol (dir, ind) +elf32_hppa_copy_indirect_symbol (bed, dir, ind) + struct elf_backend_data *bed; struct elf_link_hash_entry *dir, *ind; { struct elf32_hppa_link_hash_entry *edir, *eind; @@ -1189,7 +1191,7 @@ elf32_hppa_copy_indirect_symbol (dir, in eind->dyn_relocs = NULL; } - _bfd_elf_link_hash_copy_indirect (dir, ind); + _bfd_elf_link_hash_copy_indirect (bed, dir, ind); } /* Look through the relocs for a section during the first phase, and diff -uprN binutils-2.13.90.0.4/bfd/elf32-i370.c binutils-2.13.90.0.10/bfd/elf32-i370.c --- binutils-2.13.90.0.4/bfd/elf32-i370.c Mon Jul 29 08:19:16 2002 +++ binutils-2.13.90.0.10/bfd/elf32-i370.c Fri Sep 27 08:33:09 2002 @@ -34,30 +34,6 @@ Foundation, Inc., 59 Temple Place - Suit #include "elf-bfd.h" #include "elf/i370.h" -/* i370 relocations */ -/* Note that there is really just one relocation that we currently - * support (and only one that we seem to need, at the moment), and - * that is the 31-bit address relocation. Note that the 370/390 - * only supports a 31-bit (2GB) address space. - */ -enum i370_reloc_type -{ - R_I370_NONE = 0, - R_I370_ADDR31 = 1, - R_I370_ADDR32 = 2, - R_I370_ADDR16 = 3, - R_I370_REL31 = 4, - R_I370_REL32 = 5, - R_I370_ADDR12 = 6, - R_I370_REL12 = 7, - R_I370_ADDR8 = 8, - R_I370_REL8 = 9, - R_I370_COPY = 10, - R_I370_RELATIVE = 11, - - R_I370_max -}; - static reloc_howto_type *i370_elf_howto_table[ (int)R_I370_max ]; static reloc_howto_type i370_elf_howto_raw[] = diff -uprN binutils-2.13.90.0.4/bfd/elf32-i386-fbsd.c binutils-2.13.90.0.10/bfd/elf32-i386-fbsd.c --- binutils-2.13.90.0.4/bfd/elf32-i386-fbsd.c Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/bfd/elf32-i386-fbsd.c Fri Sep 27 08:33:09 2002 @@ -0,0 +1,56 @@ +/* Intel IA-32 specific support for 32-bit ELF on FreeBSD. + Copyright 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. */ + +#define TARGET_LITTLE_SYM bfd_elf32_i386_freebsd_vec +#define TARGET_LITTLE_NAME "elf32-i386-freebsd" +#define ELF_ARCH bfd_arch_i386 +#define ELF_MACHINE_CODE EM_386 +#define ELF_MAXPAGESIZE 0x1000 + +#include "bfd.h" +#include "sysdep.h" +#include "elf-bfd.h" + +/* The kernel recognizes executables as valid only if they carry a + "FreeBSD" label in the ELF header. So we put this label on all + executables and (for simplicity) also all other object files. */ + +static void elf_i386_post_process_headers + PARAMS ((bfd *, struct bfd_link_info *)); + +static void +elf_i386_post_process_headers (abfd, link_info) + bfd * abfd; + struct bfd_link_info * link_info ATTRIBUTE_UNUSED; +{ + Elf_Internal_Ehdr * i_ehdrp; /* ELF file header, internal form. */ + + i_ehdrp = elf_elfheader (abfd); + + /* Put an ABI label supported by FreeBSD >= 4.1. */ + i_ehdrp->e_ident[EI_OSABI] = ELFOSABI_FREEBSD; +#ifdef OLD_FREEBSD_ABI_LABEL + /* The ABI label supported by FreeBSD <= 4.0 is quite nonstandard. */ + memcpy (&i_ehdrp->e_ident[EI_ABIVERSION], "FreeBSD", 8); +#endif +} + +#define elf_backend_post_process_headers elf_i386_post_process_headers + +#include "elf32-i386.c" diff -uprN binutils-2.13.90.0.4/bfd/elf32-i386.c binutils-2.13.90.0.10/bfd/elf32-i386.c --- binutils-2.13.90.0.4/bfd/elf32-i386.c Thu Aug 8 22:49:55 2002 +++ binutils-2.13.90.0.10/bfd/elf32-i386.c Tue Oct 8 17:47:53 2002 @@ -45,7 +45,8 @@ static boolean create_got_section static boolean elf_i386_create_dynamic_sections PARAMS((bfd *, struct bfd_link_info *)); static void elf_i386_copy_indirect_symbol - PARAMS ((struct elf_link_hash_entry *, struct elf_link_hash_entry *)); + PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *, + struct elf_link_hash_entry *)); static int elf_i386_tls_transition PARAMS ((struct bfd_link_info *, int, int)); @@ -132,9 +133,18 @@ static reloc_howto_type elf_howto_table[ R_386_ext_offset is the value to subtract from a reloc type of R_386_16 thru R_386_PC8 to form an index into this table. */ #define R_386_standard ((unsigned int) R_386_GOTPC + 1) -#define R_386_ext_offset ((unsigned int) R_386_TLS_LE - R_386_standard) +#define R_386_ext_offset ((unsigned int) R_386_TLS_TPOFF - R_386_standard) - /* The remaining relocs are a GNU extension. */ + /* These relocs are a GNU extension. */ + HOWTO(R_386_TLS_TPOFF, 0, 2, 32, false, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_386_TLS_TPOFF", + true, 0xffffffff, 0xffffffff, false), + HOWTO(R_386_TLS_IE, 0, 2, 32, false, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_386_TLS_IE", + true, 0xffffffff, 0xffffffff, false), + HOWTO(R_386_TLS_GOTIE, 0, 2, 32, false, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_386_TLS_GOTIE", + true, 0xffffffff, 0xffffffff, false), HOWTO(R_386_TLS_LE, 0, 2, 32, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_386_TLS_LE", true, 0xffffffff, 0xffffffff, false), @@ -278,7 +288,19 @@ elf_i386_reloc_type_lookup (abfd, code) TRACE ("BFD_RELOC_386_GOTPC"); return &elf_howto_table[(unsigned int) R_386_GOTPC ]; - /* The remaining relocs are a GNU extension. */ + /* These relocs are a GNU extension. */ + case BFD_RELOC_386_TLS_TPOFF: + TRACE ("BFD_RELOC_386_TLS_TPOFF"); + return &elf_howto_table[(unsigned int) R_386_TLS_TPOFF - R_386_ext_offset]; + + case BFD_RELOC_386_TLS_IE: + TRACE ("BFD_RELOC_386_TLS_IE"); + return &elf_howto_table[(unsigned int) R_386_TLS_IE - R_386_ext_offset]; + + case BFD_RELOC_386_TLS_GOTIE: + TRACE ("BFD_RELOC_386_TLS_GOTIE"); + return &elf_howto_table[(unsigned int) R_386_TLS_GOTIE - R_386_ext_offset]; + case BFD_RELOC_386_TLS_LE: TRACE ("BFD_RELOC_386_TLS_LE"); return &elf_howto_table[(unsigned int) R_386_TLS_LE - R_386_ext_offset]; @@ -563,9 +585,14 @@ struct elf_i386_link_hash_entry /* Track dynamic relocs copied for this symbol. */ struct elf_i386_dyn_relocs *dyn_relocs; - enum { - GOT_UNKNOWN = 0, GOT_NORMAL, GOT_TLS_GD, GOT_TLS_IE - } tls_type; +#define GOT_UNKNOWN 0 +#define GOT_NORMAL 1 +#define GOT_TLS_GD 2 +#define GOT_TLS_IE 4 +#define GOT_TLS_IE_POS 5 +#define GOT_TLS_IE_NEG 6 +#define GOT_TLS_IE_BOTH 7 + unsigned char tls_type; }; #define elf_i386_hash_entry(ent) ((struct elf_i386_link_hash_entry *)(ent)) @@ -767,7 +794,8 @@ elf_i386_create_dynamic_sections (dynobj /* Copy the extra info we tack onto an elf_link_hash_entry. */ static void -elf_i386_copy_indirect_symbol (dir, ind) +elf_i386_copy_indirect_symbol (bed, dir, ind) + struct elf_backend_data *bed; struct elf_link_hash_entry *dir, *ind; { struct elf_i386_link_hash_entry *edir, *eind; @@ -815,7 +843,7 @@ elf_i386_copy_indirect_symbol (dir, ind) edir->tls_type = eind->tls_type; eind->tls_type = GOT_UNKNOWN; } - _bfd_elf_link_hash_copy_indirect (dir, ind); + _bfd_elf_link_hash_copy_indirect (bed, dir, ind); } static int @@ -834,6 +862,11 @@ elf_i386_tls_transition (info, r_type, i if (is_local) return R_386_TLS_LE_32; return R_386_TLS_IE_32; + case R_386_TLS_IE: + case R_386_TLS_GOTIE: + if (is_local) + return R_386_TLS_LE_32; + return r_type; case R_386_TLS_LDM: return R_386_TLS_LE_32; } @@ -895,10 +928,34 @@ elf_i386_check_relocs (abfd, info, sec, switch (r_type) { + case R_386_TLS_LDM: + htab->tls_ldm_got.refcount += 1; + goto create_got; + + case R_386_PLT32: + /* This symbol requires a procedure linkage table entry. We + actually build the entry in adjust_dynamic_symbol, + because this might be a case of linking PIC code which is + never referenced by a dynamic object, in which case we + don't need to generate a procedure linkage table entry + after all. */ + + /* If this is a local symbol, we resolve it directly without + creating a procedure linkage table entry. */ + if (h == NULL) + continue; + + h->elf_link_hash_flags |= ELF_LINK_HASH_NEEDS_PLT; + h->plt.refcount += 1; + break; + case R_386_TLS_IE_32: + case R_386_TLS_IE: + case R_386_TLS_GOTIE: if (info->shared) info->flags |= DF_STATIC_TLS; - /* FALLTHROUGH */ + /* Fall through */ + case R_386_GOT32: case R_386_TLS_GD: /* This symbol requires a global offset table entry. */ @@ -910,7 +967,17 @@ elf_i386_check_relocs (abfd, info, sec, default: case R_386_GOT32: tls_type = GOT_NORMAL; break; case R_386_TLS_GD: tls_type = GOT_TLS_GD; break; - case R_386_TLS_IE_32: tls_type = GOT_TLS_IE; break; + case R_386_TLS_IE_32: + if (ELF32_R_TYPE (rel->r_info) == r_type) + tls_type = GOT_TLS_IE_NEG; + else + /* If this is a GD->IE transition, we may use either of + R_386_TLS_TPOFF and R_386_TLS_TPOFF32. */ + tls_type = GOT_TLS_IE; + break; + case R_386_TLS_IE: + case R_386_TLS_GOTIE: + tls_type = GOT_TLS_IE_POS; break; } if (h != NULL) @@ -942,18 +1009,22 @@ elf_i386_check_relocs (abfd, info, sec, old_tls_type = elf_i386_local_got_tls_type (abfd) [r_symndx]; } + if ((old_tls_type & GOT_TLS_IE) && (tls_type & GOT_TLS_IE)) + tls_type |= old_tls_type; /* If a TLS symbol is accessed using IE at least once, there is no point to use dynamic model for it. */ - if (old_tls_type != tls_type && old_tls_type != GOT_UNKNOWN - && (old_tls_type != GOT_TLS_GD || tls_type != GOT_TLS_IE)) + else if (old_tls_type != tls_type && old_tls_type != GOT_UNKNOWN + && (old_tls_type != GOT_TLS_GD + || (tls_type & GOT_TLS_IE) == 0)) { - if (old_tls_type == GOT_TLS_IE && tls_type == GOT_TLS_GD) - tls_type = GOT_TLS_IE; + if ((old_tls_type & GOT_TLS_IE) && tls_type == GOT_TLS_GD) + tls_type = old_tls_type; else { (*_bfd_error_handler) (_("%s: `%s' accessed both as normal and thread local symbol"), - bfd_archive_filename (abfd), h->root.root.string); + bfd_archive_filename (abfd), + h ? h->root.root.string : ""); return false; } } @@ -978,28 +1049,16 @@ elf_i386_check_relocs (abfd, info, sec, if (!create_got_section (htab->elf.dynobj, info)) return false; } - break; - - case R_386_TLS_LDM: - htab->tls_ldm_got.refcount += 1; - goto create_got; - - case R_386_PLT32: - /* This symbol requires a procedure linkage table entry. We - actually build the entry in adjust_dynamic_symbol, - because this might be a case of linking PIC code which is - never referenced by a dynamic object, in which case we - don't need to generate a procedure linkage table entry - after all. */ - - /* If this is a local symbol, we resolve it directly without - creating a procedure linkage table entry. */ - if (h == NULL) - continue; + if (r_type != R_386_TLS_IE) + break; + /* Fall through */ - h->elf_link_hash_flags |= ELF_LINK_HASH_NEEDS_PLT; - h->plt.refcount += 1; - break; + case R_386_TLS_LE_32: + case R_386_TLS_LE: + if (!info->shared) + break; + info->flags |= DF_STATIC_TLS; + /* Fall through */ case R_386_32: case R_386_PC32: @@ -1159,16 +1218,6 @@ elf_i386_check_relocs (abfd, info, sec, return false; break; - case R_386_TLS_LE_32: - case R_386_TLS_LE: - if (info->shared) - { - (*_bfd_error_handler) (_("%s: TLS local exec code cannot be linked into shared objects"), - bfd_archive_filename (abfd)); - return false; - } - break; - default: break; } @@ -1231,6 +1280,7 @@ elf_i386_gc_sweep_hook (abfd, info, sec, bfd_signed_vma *local_got_refcounts; const Elf_Internal_Rela *rel, *relend; unsigned long r_symndx; + int r_type; struct elf_link_hash_entry *h; elf_section_data (sec)->local_dynrel = NULL; @@ -1241,9 +1291,10 @@ elf_i386_gc_sweep_hook (abfd, info, sec, relend = relocs + sec->reloc_count; for (rel = relocs; rel < relend; rel++) - switch (elf_i386_tls_transition (info, ELF32_R_TYPE (rel->r_info), - ELF32_R_SYM (rel->r_info) - >= symtab_hdr->sh_info)) + switch ((r_type = elf_i386_tls_transition (info, + ELF32_R_TYPE (rel->r_info), + ELF32_R_SYM (rel->r_info) + >= symtab_hdr->sh_info))) { case R_386_TLS_LDM: if (elf_i386_hash_table (info)->tls_ldm_got.refcount > 0) @@ -1252,6 +1303,8 @@ elf_i386_gc_sweep_hook (abfd, info, sec, case R_386_TLS_GD: case R_386_TLS_IE_32: + case R_386_TLS_IE: + case R_386_TLS_GOTIE: case R_386_GOT32: r_symndx = ELF32_R_SYM (rel->r_info); if (r_symndx >= symtab_hdr->sh_info) @@ -1265,7 +1318,15 @@ elf_i386_gc_sweep_hook (abfd, info, sec, if (local_got_refcounts[r_symndx] > 0) local_got_refcounts[r_symndx] -= 1; } - break; + if (r_type != R_386_TLS_IE) + break; + /* Fall through */ + + case R_386_TLS_LE_32: + case R_386_TLS_LE: + if (!info->shared) + break; + /* Fall through */ case R_386_32: case R_386_PC32: @@ -1551,12 +1612,12 @@ allocate_dynrelocs (h, inf) h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT; } - /* If R_386_TLS_IE_32 symbol is now local to the binary, + /* If R_386_TLS_{IE_32,IE,GOTIE} symbol is now local to the binary, make it a R_386_TLS_LE_32 requiring no TLS entry. */ if (h->got.refcount > 0 && !info->shared && h->dynindx == -1 - && elf_i386_hash_entry(h)->tls_type == GOT_TLS_IE) + && (elf_i386_hash_entry(h)->tls_type & GOT_TLS_IE)) h->got.offset = (bfd_vma) -1; else if (h->got.refcount > 0) { @@ -1577,13 +1638,18 @@ allocate_dynrelocs (h, inf) h->got.offset = s->_raw_size; s->_raw_size += 4; /* R_386_TLS_GD needs 2 consecutive GOT slots. */ - if (tls_type == GOT_TLS_GD) + if (tls_type == GOT_TLS_GD || tls_type == GOT_TLS_IE_BOTH) s->_raw_size += 4; dyn = htab->elf.dynamic_sections_created; /* R_386_TLS_IE_32 needs one dynamic relocation, - R_386_TLS_GD needs one if local symbol and two if global. */ - if ((tls_type == GOT_TLS_GD && h->dynindx == -1) - || tls_type == GOT_TLS_IE) + R_386_TLS_IE resp. R_386_TLS_GOTIE needs one dynamic relocation, + (but if both R_386_TLS_IE_32 and R_386_TLS_IE is present, we + need two), R_386_TLS_GD needs one if local symbol and two if + global. */ + if (tls_type == GOT_TLS_IE_BOTH) + htab->srelgot->_raw_size += 2 * sizeof (Elf32_External_Rel); + else if ((tls_type == GOT_TLS_GD && h->dynindx == -1) + || (tls_type & GOT_TLS_IE)) htab->srelgot->_raw_size += sizeof (Elf32_External_Rel); else if (tls_type == GOT_TLS_GD) htab->srelgot->_raw_size += 2 * sizeof (Elf32_External_Rel); @@ -1784,12 +1850,18 @@ elf_i386_size_dynamic_sections (output_b { *local_got = s->_raw_size; s->_raw_size += 4; - if (*local_tls_type == GOT_TLS_GD) + if (*local_tls_type == GOT_TLS_GD + || *local_tls_type == GOT_TLS_IE_BOTH) s->_raw_size += 4; if (info->shared || *local_tls_type == GOT_TLS_GD - || *local_tls_type == GOT_TLS_IE) - srel->_raw_size += sizeof (Elf32_External_Rel); + || (*local_tls_type & GOT_TLS_IE)) + { + if (*local_tls_type == GOT_TLS_IE_BOTH) + srel->_raw_size += 2 * sizeof (Elf32_External_Rel); + else + srel->_raw_size += sizeof (Elf32_External_Rel); + } } else *local_got = (bfd_vma) -1; @@ -1960,7 +2032,9 @@ static bfd_vma dtpoff_base (info) struct bfd_link_info *info; { - BFD_ASSERT (elf_hash_table (info)->tls_segment != NULL); + /* If tls_segment is NULL, we should have signalled an error already. */ + if (elf_hash_table (info)->tls_segment == NULL) + return 0; return elf_hash_table (info)->tls_segment->start; } @@ -1975,7 +2049,9 @@ tpoff (info, address) struct elf_link_tls_segment *tls_segment = elf_hash_table (info)->tls_segment; - BFD_ASSERT (tls_segment != NULL); + /* If tls_segment is NULL, we should have signalled an error already. */ + if (tls_segment == NULL) + return 0; return (align_power (tls_segment->size, tls_segment->align) + tls_segment->start - address); } @@ -2416,8 +2492,29 @@ elf_i386_relocate_section (output_bfd, i } break; + case R_386_TLS_IE: + if (info->shared) + { + Elf_Internal_Rel outrel; + asection *sreloc; + Elf32_External_Rel *loc; + + outrel.r_offset = rel->r_offset + + input_section->output_section->vma + + input_section->output_offset; + outrel.r_info = ELF32_R_INFO (0, R_386_RELATIVE); + sreloc = elf_section_data (input_section)->sreloc; + if (sreloc == NULL) + abort (); + loc = (Elf32_External_Rel *) sreloc->contents; + loc += sreloc->reloc_count++; + bfd_elf32_swap_reloc_out (output_bfd, &outrel, loc); + } + /* Fall through */ + case R_386_TLS_GD: case R_386_TLS_IE_32: + case R_386_TLS_GOTIE: r_type = elf_i386_tls_transition (info, r_type, h == NULL); tls_type = GOT_UNKNOWN; if (h == NULL && local_got_offsets) @@ -2425,11 +2522,18 @@ elf_i386_relocate_section (output_bfd, i else if (h != NULL) { tls_type = elf_i386_hash_entry(h)->tls_type; - if (!info->shared && h->dynindx == -1 && tls_type == GOT_TLS_IE) + if (!info->shared && h->dynindx == -1 && (tls_type & GOT_TLS_IE)) r_type = R_386_TLS_LE_32; } - if (r_type == R_386_TLS_GD && tls_type == GOT_TLS_IE) - r_type = R_386_TLS_IE_32; + if (tls_type == GOT_TLS_IE) + tls_type = GOT_TLS_IE_NEG; + if (r_type == R_386_TLS_GD) + { + if (tls_type == GOT_TLS_IE_POS) + r_type = R_386_TLS_GOTIE; + else if (tls_type & GOT_TLS_IE) + r_type = R_386_TLS_IE_32; + } if (r_type == R_386_TLS_LE_32) { @@ -2497,27 +2601,81 @@ elf_i386_relocate_section (output_bfd, i rel++; continue; } - else + else if (ELF32_R_TYPE (rel->r_info) == R_386_TLS_IE) { unsigned int val, type; /* IE->LE transition: - Originally it can be either: + Originally it can be one of: + movl foo, %eax + movl foo, %reg + addl foo, %reg + We change it into: + movl $foo, %eax + movl $foo, %reg + addl $foo, %reg. */ + BFD_ASSERT (rel->r_offset >= 1); + val = bfd_get_8 (input_bfd, contents + rel->r_offset - 1); + BFD_ASSERT (rel->r_offset + 4 <= input_section->_raw_size); + if (val == 0xa1) + { + /* movl foo, %eax. */ + bfd_put_8 (output_bfd, 0xb8, contents + rel->r_offset - 1); + } + else + { + BFD_ASSERT (rel->r_offset >= 2); + type = bfd_get_8 (input_bfd, contents + rel->r_offset - 2); + switch (type) + { + case 0x8b: + /* movl */ + BFD_ASSERT ((val & 0xc7) == 0x05); + bfd_put_8 (output_bfd, 0xc7, + contents + rel->r_offset - 2); + bfd_put_8 (output_bfd, + 0xc0 | ((val >> 3) & 7), + contents + rel->r_offset - 1); + break; + case 0x03: + /* addl */ + BFD_ASSERT ((val & 0xc7) == 0x05); + bfd_put_8 (output_bfd, 0x81, + contents + rel->r_offset - 2); + bfd_put_8 (output_bfd, + 0xc0 | ((val >> 3) & 7), + contents + rel->r_offset - 1); + break; + default: + BFD_FAIL (); + break; + } + } + bfd_put_32 (output_bfd, -tpoff (info, relocation), + contents + rel->r_offset); + continue; + } + else + { + unsigned int val, type; + + /* {IE_32,GOTIE}->LE transition: + Originally it can be one of: subl foo(%reg1), %reg2 - or movl foo(%reg1), %reg2 + addl foo(%reg1), %reg2 We change it into: subl $foo, %reg2 - or - movl $foo, %reg2 (6 byte form) */ + movl $foo, %reg2 (6 byte form) + addl $foo, %reg2. */ BFD_ASSERT (rel->r_offset >= 2); type = bfd_get_8 (input_bfd, contents + rel->r_offset - 2); val = bfd_get_8 (input_bfd, contents + rel->r_offset - 1); BFD_ASSERT (rel->r_offset + 4 <= input_section->_raw_size); + BFD_ASSERT ((val & 0xc0) == 0x80 && (val & 7) != 4); if (type == 0x8b) { /* movl */ - BFD_ASSERT ((val & 0xc0) == 0x80 && (val & 7) != 4); bfd_put_8 (output_bfd, 0xc7, contents + rel->r_offset - 2); bfd_put_8 (output_bfd, 0xc0 | ((val >> 3) & 7), @@ -2526,16 +2684,27 @@ elf_i386_relocate_section (output_bfd, i else if (type == 0x2b) { /* subl */ - BFD_ASSERT ((val & 0xc0) == 0x80 && (val & 7) != 4); bfd_put_8 (output_bfd, 0x81, contents + rel->r_offset - 2); bfd_put_8 (output_bfd, 0xe8 | ((val >> 3) & 7), contents + rel->r_offset - 1); } + else if (type == 0x03) + { + /* addl */ + bfd_put_8 (output_bfd, 0x81, + contents + rel->r_offset - 2); + bfd_put_8 (output_bfd, 0xc0 | ((val >> 3) & 7), + contents + rel->r_offset - 1); + } else BFD_FAIL (); - bfd_put_32 (output_bfd, tpoff (info, relocation), - contents + rel->r_offset); + if (ELF32_R_TYPE (rel->r_info) == R_386_TLS_GOTIE) + bfd_put_32 (output_bfd, -tpoff (info, relocation), + contents + rel->r_offset); + else + bfd_put_32 (output_bfd, tpoff (info, relocation), + contents + rel->r_offset); continue; } } @@ -2570,11 +2739,16 @@ elf_i386_relocate_section (output_bfd, i indx = h && h->dynindx != -1 ? h->dynindx : 0; if (r_type == R_386_TLS_GD) dr_type = R_386_TLS_DTPMOD32; + else if (tls_type == GOT_TLS_IE_POS) + dr_type = R_386_TLS_TPOFF; else dr_type = R_386_TLS_TPOFF32; - if (dr_type == R_386_TLS_TPOFF32 && indx == 0) + if (dr_type == R_386_TLS_TPOFF && indx == 0) bfd_put_32 (output_bfd, relocation - dtpoff_base (info), htab->sgot->contents + off); + else if (dr_type == R_386_TLS_TPOFF32 && indx == 0) + bfd_put_32 (output_bfd, dtpoff_base (info) - relocation, + htab->sgot->contents + off); else bfd_put_32 (output_bfd, 0, htab->sgot->contents + off); @@ -2605,6 +2779,17 @@ elf_i386_relocate_section (output_bfd, i loc); } } + else if (tls_type == GOT_TLS_IE_BOTH) + { + bfd_put_32 (output_bfd, + indx == 0 ? relocation - dtpoff_base (info) : 0, + htab->sgot->contents + off + 4); + outrel.r_info = ELF32_R_INFO (indx, R_386_TLS_TPOFF); + outrel.r_offset += 4; + htab->srelgot->reloc_count++; + loc++; + bfd_elf32_swap_reloc_out (output_bfd, &outrel, loc); + } if (h != NULL) h->got.offset |= 1; @@ -2617,6 +2802,11 @@ elf_i386_relocate_section (output_bfd, i if (r_type == ELF32_R_TYPE (rel->r_info)) { relocation = htab->sgot->output_offset + off; + if ((r_type == R_386_TLS_IE || r_type == R_386_TLS_GOTIE) + && tls_type == GOT_TLS_IE_BOTH) + relocation += 4; + if (r_type == R_386_TLS_IE) + relocation += htab->sgot->output_section->vma; unresolved_reloc = false; } else @@ -2662,6 +2852,17 @@ elf_i386_relocate_section (output_bfd, i memcpy (contents + roff, "\x65\xa1\0\0\0\0\x2b\x80\0\0\0", 12); contents[roff + 7] = 0x80 | (val & 7); + /* If foo is used only with foo@gotntpoff(%reg) and + foo@indntpoff, but not with foo@gottpoff(%reg), change + subl $foo@gottpoff(%reg), %eax + into: + addl $foo@gotntpoff(%reg), %eax. */ + if (r_type == R_386_TLS_GOTIE) + { + contents[roff + 6] = 0x03; + if (tls_type == GOT_TLS_IE_BOTH) + off += 4; + } bfd_put_32 (output_bfd, htab->sgot->output_offset + off, contents + roff + 8); /* Skip R_386_PLT32. */ @@ -2729,7 +2930,7 @@ elf_i386_relocate_section (output_bfd, i break; case R_386_TLS_LDO_32: - if (info->shared) + if (info->shared || (input_section->flags & SEC_CODE) == 0) relocation -= dtpoff_base (info); else /* When converting LDO to LE, we must negate. */ @@ -2737,11 +2938,42 @@ elf_i386_relocate_section (output_bfd, i break; case R_386_TLS_LE_32: - relocation = tpoff (info, relocation); - break; - case R_386_TLS_LE: - relocation = -tpoff (info, relocation); + if (info->shared) + { + Elf_Internal_Rel outrel; + asection *sreloc; + Elf32_External_Rel *loc; + int indx; + + outrel.r_offset = rel->r_offset + + input_section->output_section->vma + + input_section->output_offset; + if (h != NULL && h->dynindx != -1) + indx = h->dynindx; + else + indx = 0; + if (r_type == R_386_TLS_LE_32) + outrel.r_info = ELF32_R_INFO (indx, R_386_TLS_TPOFF32); + else + outrel.r_info = ELF32_R_INFO (indx, R_386_TLS_TPOFF); + sreloc = elf_section_data (input_section)->sreloc; + if (sreloc == NULL) + abort (); + loc = (Elf32_External_Rel *) sreloc->contents; + loc += sreloc->reloc_count++; + bfd_elf32_swap_reloc_out (output_bfd, &outrel, loc); + if (indx) + continue; + else if (r_type == R_386_TLS_LE_32) + relocation = dtpoff_base (info) - relocation; + else + relocation -= dtpoff_base (info); + } + else if (r_type == R_386_TLS_LE_32) + relocation = tpoff (info, relocation); + else + relocation = -tpoff (info, relocation); break; default: @@ -2754,12 +2986,15 @@ elf_i386_relocate_section (output_bfd, i if (unresolved_reloc && !((input_section->flags & SEC_DEBUGGING) != 0 && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_DYNAMIC) != 0)) - (*_bfd_error_handler) - (_("%s(%s+0x%lx): unresolvable relocation against symbol `%s'"), - bfd_archive_filename (input_bfd), - bfd_get_section_name (input_bfd, input_section), - (long) rel->r_offset, - h->root.root.string); + { + (*_bfd_error_handler) + (_("%s(%s+0x%lx): unresolvable relocation against symbol `%s'"), + bfd_archive_filename (input_bfd), + bfd_get_section_name (input_bfd, input_section), + (long) rel->r_offset, + h->root.root.string); + return false; + } r = _bfd_final_link_relocate (howto, input_bfd, input_section, contents, rel->r_offset, @@ -2898,7 +3133,7 @@ elf_i386_finish_dynamic_symbol (output_b if (h->got.offset != (bfd_vma) -1 && elf_i386_hash_entry(h)->tls_type != GOT_TLS_GD - && elf_i386_hash_entry(h)->tls_type != GOT_TLS_IE) + && (elf_i386_hash_entry(h)->tls_type & GOT_TLS_IE) == 0) { Elf_Internal_Rel rel; Elf32_External_Rel *loc; @@ -3113,11 +3348,13 @@ elf_i386_finish_dynamic_sections (output return true; } +#ifndef ELF_ARCH #define TARGET_LITTLE_SYM bfd_elf32_i386_vec #define TARGET_LITTLE_NAME "elf32-i386" #define ELF_ARCH bfd_arch_i386 #define ELF_MACHINE_CODE EM_386 #define ELF_MAXPAGESIZE 0x1000 +#endif /* ELF_ARCH */ #define elf_backend_can_gc_sections 1 #define elf_backend_can_refcount 1 diff -uprN binutils-2.13.90.0.4/bfd/elf32-m68hc11.c binutils-2.13.90.0.10/bfd/elf32-m68hc11.c --- binutils-2.13.90.0.4/bfd/elf32-m68hc11.c Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/bfd/elf32-m68hc11.c Fri Sep 27 08:33:09 2002 @@ -27,44 +27,39 @@ Foundation, Inc., 59 Temple Place - Suit #include "elf/m68hc11.h" static reloc_howto_type *bfd_elf32_bfd_reloc_type_lookup -PARAMS ((bfd * abfd, bfd_reloc_code_real_type code)); + PARAMS ((bfd *, bfd_reloc_code_real_type)); static void m68hc11_info_to_howto_rel -PARAMS ((bfd *, arelent *, Elf32_Internal_Rel *)); + PARAMS ((bfd *, arelent *, Elf32_Internal_Rel *)); static bfd_reloc_status_type m68hc11_elf_ignore_reloc -PARAMS ((bfd *abfd, arelent *reloc_entry, - asymbol *symbol, PTR data, asection *input_section, - bfd *output_bfd, char **error_message)); + PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); /* GC mark and sweep. */ static asection *elf32_m68hc11_gc_mark_hook -PARAMS ((bfd *abfd, struct bfd_link_info *info, - Elf_Internal_Rela *rel, struct elf_link_hash_entry *h, - Elf_Internal_Sym *sym)); + PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *, + struct elf_link_hash_entry *, Elf_Internal_Sym *)); static boolean elf32_m68hc11_gc_sweep_hook -PARAMS ((bfd *abfd, struct bfd_link_info *info, - asection *sec, const Elf_Internal_Rela *relocs)); + PARAMS ((bfd *, struct bfd_link_info *, asection *, + const Elf_Internal_Rela *)); static boolean elf32_m68hc11_check_relocs -PARAMS ((bfd * abfd, struct bfd_link_info * info, - asection * sec, const Elf_Internal_Rela * relocs)); + PARAMS ((bfd *, struct bfd_link_info *, asection *, + const Elf_Internal_Rela *)); static boolean elf32_m68hc11_relocate_section -PARAMS ((bfd *output_bfd, struct bfd_link_info *info, - bfd *input_bfd, asection *input_section, - bfd_byte *contents, Elf_Internal_Rela *relocs, - Elf_Internal_Sym *local_syms, asection **local_sections)); + PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, + Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)); static boolean m68hc11_elf_relax_section PARAMS ((bfd *, asection *, struct bfd_link_info *, boolean *)); static void m68hc11_elf_relax_delete_bytes -PARAMS ((bfd *abfd, asection *sec, bfd_vma addr, int count)); + PARAMS ((bfd *, asection *, bfd_vma, int)); static void m68hc11_relax_group -PARAMS ((bfd *abfd, asection *sec, bfd_byte *contents, - unsigned value, unsigned long offset, unsigned long end_group)); -static int compare_reloc PARAMS ((const void*, const void*)); + PARAMS ((bfd *, asection *, bfd_byte *, unsigned, + unsigned long, unsigned long)); +static int compare_reloc PARAMS ((const void *, const void *)); -boolean _bfd_m68hc11_elf_merge_private_bfd_data PARAMS ((bfd*, bfd*)); -boolean _bfd_m68hc11_elf_set_private_flags PARAMS ((bfd*, flagword)); -boolean _bfd_m68hc11_elf_print_private_bfd_data PARAMS ((bfd*, PTR)); +boolean _bfd_m68hc11_elf_merge_private_bfd_data PARAMS ((bfd *, bfd *)); +boolean _bfd_m68hc11_elf_set_private_flags PARAMS ((bfd *, flagword)); +boolean _bfd_m68hc11_elf_print_private_bfd_data PARAMS ((bfd *, PTR)); /* Use REL instead of RELA to save space */ #define USE_REL @@ -407,8 +402,8 @@ m68hc11_info_to_howto_rel (abfd, cache_p } static asection * -elf32_m68hc11_gc_mark_hook (abfd, info, rel, h, sym) - bfd *abfd; +elf32_m68hc11_gc_mark_hook (sec, info, rel, h, sym) + asection *sec; struct bfd_link_info *info ATTRIBUTE_UNUSED; Elf_Internal_Rela *rel; struct elf_link_hash_entry *h; @@ -434,15 +429,8 @@ elf32_m68hc11_gc_mark_hook (abfd, info, } } else - { - if (!(elf_bad_symtab (abfd) - && ELF_ST_BIND (sym->st_info) != STB_LOCAL) - && !((sym->st_shndx <= 0 || sym->st_shndx >= SHN_LORESERVE) - && sym->st_shndx != SHN_COMMON)) - { - return bfd_section_from_elf_index (abfd, sym->st_shndx); - } - } + return bfd_section_from_elf_index (sec->owner, sym->st_shndx); + return NULL; } diff -uprN binutils-2.13.90.0.4/bfd/elf32-m68hc12.c binutils-2.13.90.0.10/bfd/elf32-m68hc12.c --- binutils-2.13.90.0.4/bfd/elf32-m68hc12.c Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/bfd/elf32-m68hc12.c Fri Sep 27 08:33:09 2002 @@ -27,14 +27,12 @@ Foundation, Inc., 59 Temple Place - Suit #include "opcode/m68hc11.h" static reloc_howto_type *bfd_elf32_bfd_reloc_type_lookup -PARAMS ((bfd * abfd, bfd_reloc_code_real_type code)); + PARAMS ((bfd *, bfd_reloc_code_real_type)); static void m68hc11_info_to_howto_rel -PARAMS ((bfd *, arelent *, Elf32_Internal_Rel *)); + PARAMS ((bfd *, arelent *, Elf32_Internal_Rel *)); static bfd_reloc_status_type m68hc11_elf_ignore_reloc -PARAMS ((bfd *abfd, arelent *reloc_entry, - asymbol *symbol, PTR data, asection *input_section, - bfd *output_bfd, char **error_message)); + PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); static bfd_reloc_status_type m68hc12_elf_special_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); static int m68hc12_addr_is_banked PARAMS ((bfd_vma)); @@ -43,16 +41,15 @@ static bfd_vma m68hc12_phys_page PARAMS /* GC mark and sweep. */ static asection *elf32_m68hc11_gc_mark_hook -PARAMS ((bfd *abfd, struct bfd_link_info *info, - Elf_Internal_Rela *rel, struct elf_link_hash_entry *h, - Elf_Internal_Sym *sym)); + PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *, + struct elf_link_hash_entry *, Elf_Internal_Sym *)); static boolean elf32_m68hc11_gc_sweep_hook -PARAMS ((bfd *abfd, struct bfd_link_info *info, - asection *sec, const Elf_Internal_Rela *relocs)); + PARAMS ((bfd *, struct bfd_link_info *, asection *, + const Elf_Internal_Rela *)); -boolean _bfd_m68hc12_elf_merge_private_bfd_data PARAMS ((bfd*, bfd*)); -boolean _bfd_m68hc12_elf_set_private_flags PARAMS ((bfd*, flagword)); -boolean _bfd_m68hc12_elf_print_private_bfd_data PARAMS ((bfd*, PTR)); +boolean _bfd_m68hc12_elf_merge_private_bfd_data PARAMS ((bfd *, bfd *)); +boolean _bfd_m68hc12_elf_set_private_flags PARAMS ((bfd *, flagword)); +boolean _bfd_m68hc12_elf_print_private_bfd_data PARAMS ((bfd *, PTR)); @@ -592,8 +589,8 @@ m68hc11_info_to_howto_rel (abfd, cache_p } static asection * -elf32_m68hc11_gc_mark_hook (abfd, info, rel, h, sym) - bfd *abfd; +elf32_m68hc11_gc_mark_hook (sec, info, rel, h, sym) + asection *sec; struct bfd_link_info *info ATTRIBUTE_UNUSED; Elf_Internal_Rela *rel; struct elf_link_hash_entry *h; @@ -619,15 +616,8 @@ elf32_m68hc11_gc_mark_hook (abfd, info, } } else - { - if (!(elf_bad_symtab (abfd) - && ELF_ST_BIND (sym->st_info) != STB_LOCAL) - && !((sym->st_shndx <= 0 || sym->st_shndx >= SHN_LORESERVE) - && sym->st_shndx != SHN_COMMON)) - { - return bfd_section_from_elf_index (abfd, sym->st_shndx); - } - } + return bfd_section_from_elf_index (sec->owner, sym->st_shndx); + return NULL; } @@ -784,7 +774,8 @@ _bfd_m68hc12_elf_print_private_bfd_data #define elf_backend_gc_sweep_hook elf32_m68hc11_gc_sweep_hook #define elf_backend_object_p 0 #define elf_backend_final_write_processing 0 -#define elf_backend_can_gc_sections 1 +/* Disabled as this backend uses the generic linker. */ +#define elf_backend_can_gc_sections 0 #define bfd_elf32_bfd_merge_private_bfd_data \ _bfd_m68hc12_elf_merge_private_bfd_data diff -uprN binutils-2.13.90.0.4/bfd/elf32-ppc.c binutils-2.13.90.0.10/bfd/elf32-ppc.c --- binutils-2.13.90.0.4/bfd/elf32-ppc.c Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/bfd/elf32-ppc.c Wed Oct 2 10:17:19 2002 @@ -2420,7 +2420,9 @@ ppc_elf_check_relocs (abfd, info, sec, r /* fall through */ default: - if (info->shared && (sec->flags & SEC_ALLOC) != 0) + if (info->shared + && ((sec->flags & SEC_DEBUGGING) == 0 + || (sec->flags & SEC_ALLOC) != 0)) { #ifdef DEBUG fprintf (stderr, "ppc_elf_check_relocs need to create relocation for %s\n", @@ -2743,11 +2745,11 @@ ppc_elf_finish_dynamic_symbol (output_bf else { BFD_ASSERT ((h->got.offset & 1) == 0); - bfd_put_32 (output_bfd, (bfd_vma) 0, sgot->contents + h->got.offset); rela.r_info = ELF32_R_INFO (h->dynindx, R_PPC_GLOB_DAT); rela.r_addend = 0; } + bfd_put_32 (output_bfd, (bfd_vma) 0, sgot->contents + h->got.offset); bfd_elf32_swap_reloca_out (output_bfd, &rela, ((Elf32_External_Rela *) srela->contents + srela->reloc_count)); @@ -3179,7 +3181,8 @@ ppc_elf_relocate_section (output_bfd, in case (int) R_PPC_UADDR32: case (int) R_PPC_UADDR16: if (info->shared && r_symndx != 0 - && (input_section->flags & SEC_ALLOC) != 0) + && ((input_section->flags & SEC_DEBUGGING) == 0 + || (input_section->flags & SEC_ALLOC) != 0)) { Elf_Internal_Rela outrel; int skip; @@ -3288,13 +3291,19 @@ ppc_elf_relocate_section (output_bfd, in + sreloc->reloc_count)); ++sreloc->reloc_count; - /* This reloc will be computed at runtime, so there's no - need to do anything now, unless this is a RELATIVE - reloc in an unallocated section. */ - if (skip != -1 - || (input_section->flags & SEC_ALLOC) != 0 - || ELF32_R_TYPE (outrel.r_info) != R_PPC_RELATIVE) + if (skip == -1) continue; + + /* This reloc will be computed at runtime. We clear the memory + so that it contains predictable value. */ + if (! skip + && ((input_section->flags & SEC_ALLOC) != 0 + || ELF32_R_TYPE (outrel.r_info) != R_PPC_RELATIVE)) + { + relocation = howto->pc_relative ? outrel.r_offset : 0; + addend = 0; + break; + } } /* Arithmetic adjust relocations that aren't going into a @@ -3391,7 +3400,6 @@ ppc_elf_relocate_section (output_bfd, in off &= ~1; else { - bfd_put_32 (output_bfd, relocation, sgot->contents + off); if (info->shared) { @@ -3413,8 +3421,10 @@ ppc_elf_relocate_section (output_bfd, in srelgot->contents) + srelgot->reloc_count)); ++srelgot->reloc_count; + relocation = 0; } + bfd_put_32 (output_bfd, relocation, sgot->contents + off); local_got_offsets[r_symndx] |= 1; } @@ -3477,8 +3487,10 @@ ppc_elf_relocate_section (output_bfd, in BFD_ASSERT (sec != (asection *) 0); name = bfd_get_section_name (abfd, sec->output_section); - if (strcmp (name, ".sdata") != 0 - && strcmp (name, ".sbss") != 0) + if (! ((strncmp (name, ".sdata", 6) == 0 + && (name[6] == 0 || name[6] == '.')) + || (strncmp (name, ".sbss", 5) == 0 + && (name[5] == 0 || name[5] == '.')))) { (*_bfd_error_handler) (_("%s: The target (%s) of a %s relocation is in the wrong output section (%s)"), bfd_archive_filename (input_bfd), @@ -3499,7 +3511,8 @@ ppc_elf_relocate_section (output_bfd, in BFD_ASSERT (sec != (asection *) 0); name = bfd_get_section_name (abfd, sec->output_section); - if (strcmp (name, ".sdata2") != 0 && strcmp (name, ".sbss2") != 0) + if (! (strncmp (name, ".sdata2", 7) == 0 + || strncmp (name, ".sbss2", 6) == 0)) { (*_bfd_error_handler) (_("%s: The target (%s) of a %s relocation is in the wrong output section (%s)"), bfd_archive_filename (input_bfd), @@ -3526,7 +3539,10 @@ ppc_elf_relocate_section (output_bfd, in BFD_ASSERT (sec != (asection *) 0); name = bfd_get_section_name (abfd, sec->output_section); - if (strcmp (name, ".sdata") == 0 || strcmp (name, ".sbss") == 0) + if (((strncmp (name, ".sdata", 6) == 0 + && (name[6] == 0 || name[6] == '.')) + || (strncmp (name, ".sbss", 5) == 0 + && (name[5] == 0 || name[5] == '.')))) { reg = 13; addend -= (sdata->sym_hash->root.u.def.value @@ -3534,8 +3550,8 @@ ppc_elf_relocate_section (output_bfd, in + sdata->sym_hash->root.u.def.section->output_offset); } - else if (strcmp (name, ".sdata2") == 0 - || strcmp (name, ".sbss2") == 0) + else if (strncmp (name, ".sdata2", 7) == 0 + || strncmp (name, ".sbss2", 6) == 0) { reg = 2; addend -= (sdata2->sym_hash->root.u.def.value diff -uprN binutils-2.13.90.0.4/bfd/elf32-qnx.h binutils-2.13.90.0.10/bfd/elf32-qnx.h --- binutils-2.13.90.0.4/bfd/elf32-qnx.h Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/bfd/elf32-qnx.h Fri Sep 27 08:33:09 2002 @@ -22,11 +22,11 @@ (start + (segment->p_memsz > segment->p_filesz \ ? segment->p_memsz : segment->p_filesz)) -static boolean elf_i386qnx_copy_private_bfd_data_p +static boolean elf_qnx_copy_private_bfd_data_p PARAMS ((bfd *, asection *, bfd *, asection *)); -static boolean elf_i386qnx_is_contained_by_filepos +static boolean elf_qnx_is_contained_by_filepos PARAMS ((asection *, Elf_Internal_Phdr *)); -static void elf_i386qnx_set_nonloadable_filepos +static void elf_qnx_set_nonloadable_filepos PARAMS ((bfd *, Elf_Internal_Phdr *)); static boolean diff -uprN binutils-2.13.90.0.4/bfd/elf32-s390.c binutils-2.13.90.0.10/bfd/elf32-s390.c --- binutils-2.13.90.0.4/bfd/elf32-s390.c Mon Jul 29 08:19:16 2002 +++ binutils-2.13.90.0.10/bfd/elf32-s390.c Fri Sep 27 08:33:09 2002 @@ -40,7 +40,8 @@ static boolean create_got_section static boolean elf_s390_create_dynamic_sections PARAMS((bfd *, struct bfd_link_info *)); static void elf_s390_copy_indirect_symbol - PARAMS ((struct elf_link_hash_entry *, struct elf_link_hash_entry *)); + PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *, + struct elf_link_hash_entry *)); static boolean elf_s390_check_relocs PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); @@ -562,7 +563,8 @@ elf_s390_create_dynamic_sections (dynobj /* Copy the extra info we tack onto an elf_link_hash_entry. */ static void -elf_s390_copy_indirect_symbol (dir, ind) +elf_s390_copy_indirect_symbol (bed, dir, ind) + struct elf_backend_data *bed; struct elf_link_hash_entry *dir, *ind; { struct elf_s390_link_hash_entry *edir, *eind; @@ -604,7 +606,7 @@ elf_s390_copy_indirect_symbol (dir, ind) eind->dyn_relocs = NULL; } - _bfd_elf_link_hash_copy_indirect (dir, ind); + _bfd_elf_link_hash_copy_indirect (bed, dir, ind); } /* Look through the relocs for a section during the first phase, and diff -uprN binutils-2.13.90.0.4/bfd/elf32-sh.c binutils-2.13.90.0.10/bfd/elf32-sh.c --- binutils-2.13.90.0.4/bfd/elf32-sh.c Wed Jul 17 11:38:29 2002 +++ binutils-2.13.90.0.10/bfd/elf32-sh.c Mon Oct 7 23:07:59 2002 @@ -56,6 +56,9 @@ static boolean sh_elf_relocate_section static bfd_byte *sh_elf_get_relocated_section_contents PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *, bfd_byte *, boolean, asymbol **)); +static void sh_elf_copy_indirect_symbol + PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *, + struct elf_link_hash_entry *)); static boolean sh_elf_check_relocs PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); @@ -75,6 +78,8 @@ static boolean sh_elf_finish_dynamic_sec static bfd_reloc_status_type sh_elf_reloc_loop PARAMS ((int, bfd *, asection *, bfd_byte *, bfd_vma, asection *, bfd_vma, bfd_vma)); +static boolean create_got_section + PARAMS((bfd *, struct bfd_link_info *)); static boolean sh_elf_create_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); static asection * sh_elf_gc_mark_hook @@ -83,6 +88,10 @@ static asection * sh_elf_gc_mark_hook static boolean sh_elf_gc_sweep_hook PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); +static boolean allocate_dynrelocs + PARAMS ((struct elf_link_hash_entry *, PTR)); +static boolean readonly_dynrelocs + PARAMS ((struct elf_link_hash_entry *, PTR)); static enum elf_reloc_type_class sh_elf_reloc_type_class PARAMS ((const Elf_Internal_Rela *)); #ifdef INCLUDE_SHMEDIA @@ -430,33 +439,33 @@ static reloc_howto_type sh_elf_howto_tab /* GNU extension to record C++ vtable hierarchy */ HOWTO (R_SH_GNU_VTINHERIT, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 0, /* bitsize */ - false, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - NULL, /* special_function */ - "R_SH_GNU_VTINHERIT", /* name */ - false, /* partial_inplace */ - 0, /* src_mask */ - 0, /* dst_mask */ - false), /* pcrel_offset */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 0, /* bitsize */ + false, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_dont, /* complain_on_overflow */ + NULL, /* special_function */ + "R_SH_GNU_VTINHERIT", /* name */ + false, /* partial_inplace */ + 0, /* src_mask */ + 0, /* dst_mask */ + false), /* pcrel_offset */ /* GNU extension to record C++ vtable member usage */ HOWTO (R_SH_GNU_VTENTRY, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 0, /* bitsize */ - false, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - _bfd_elf_rel_vtable_reloc_fn, /* special_function */ - "R_SH_GNU_VTENTRY", /* name */ - false, /* partial_inplace */ - 0, /* src_mask */ - 0, /* dst_mask */ - false), /* pcrel_offset */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 0, /* bitsize */ + false, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_dont, /* complain_on_overflow */ + _bfd_elf_rel_vtable_reloc_fn, /* special_function */ + "R_SH_GNU_VTENTRY", /* name */ + false, /* partial_inplace */ + 0, /* src_mask */ + 0, /* dst_mask */ + false), /* pcrel_offset */ /* 8 bit PC relative divided by 2 - but specified in a very odd way. */ HOWTO (R_SH_LOOP_START, /* type */ @@ -510,7 +519,7 @@ static reloc_howto_type sh_elf_howto_tab false, /* partial_inplace */ 0, /* src_mask */ 0xfc00, /* dst_mask */ - false), /* pcrel_offset */ + false), /* pcrel_offset */ /* Used in SHARI, SHLLI et al. */ HOWTO (R_SH_DIR6U, /* type */ @@ -525,7 +534,7 @@ static reloc_howto_type sh_elf_howto_tab false, /* partial_inplace */ 0, /* src_mask */ 0xfc00, /* dst_mask */ - false), /* pcrel_offset */ + false), /* pcrel_offset */ /* Used in BxxI, LDHI.L et al. */ HOWTO (R_SH_DIR6S, /* type */ @@ -540,7 +549,7 @@ static reloc_howto_type sh_elf_howto_tab false, /* partial_inplace */ 0, /* src_mask */ 0xfc00, /* dst_mask */ - false), /* pcrel_offset */ + false), /* pcrel_offset */ /* Used in ADDI, ANDI et al. */ HOWTO (R_SH_DIR10S, /* type */ @@ -555,9 +564,9 @@ static reloc_howto_type sh_elf_howto_tab false, /* partial_inplace */ 0, /* src_mask */ 0xffc00, /* dst_mask */ - false), /* pcrel_offset */ + false), /* pcrel_offset */ - /* Used in LD.UW, ST.W et al. */ + /* Used in LD.UW, ST.W et al. */ HOWTO (R_SH_DIR10SW, /* type */ 1, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ @@ -570,9 +579,9 @@ static reloc_howto_type sh_elf_howto_tab false, /* partial_inplace */ 0, /* src_mask */ 0xffc00, /* dst_mask */ - false), /* pcrel_offset */ + false), /* pcrel_offset */ - /* Used in LD.L, FLD.S et al. */ + /* Used in LD.L, FLD.S et al. */ HOWTO (R_SH_DIR10SL, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ @@ -585,7 +594,7 @@ static reloc_howto_type sh_elf_howto_tab false, /* partial_inplace */ 0, /* src_mask */ 0xffc00, /* dst_mask */ - false), /* pcrel_offset */ + false), /* pcrel_offset */ /* Used in FLD.D, FST.P et al. */ HOWTO (R_SH_DIR10SQ, /* type */ @@ -600,7 +609,7 @@ static reloc_howto_type sh_elf_howto_tab false, /* partial_inplace */ 0, /* src_mask */ 0xffc00, /* dst_mask */ - false), /* pcrel_offset */ + false), /* pcrel_offset */ #else EMPTY_HOWTO (45), @@ -857,11 +866,11 @@ static reloc_howto_type sh_elf_howto_tab 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ - "R_SH_GOT_LOW16", /* name */ + "R_SH_GOT_LOW16", /* name */ false, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + false), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 16) & 65536). */ HOWTO (R_SH_GOT_MEDLOW16, /* type */ @@ -876,7 +885,7 @@ static reloc_howto_type sh_elf_howto_tab false, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + false), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 32) & 65536). */ HOWTO (R_SH_GOT_MEDHI16, /* type */ @@ -891,7 +900,7 @@ static reloc_howto_type sh_elf_howto_tab false, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + false), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 48) & 65536). */ HOWTO (R_SH_GOT_HI16, /* type */ @@ -906,7 +915,7 @@ static reloc_howto_type sh_elf_howto_tab false, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + false), /* pcrel_offset */ /* Used in MOVI and SHORI (x & 65536). */ HOWTO (R_SH_GOTPLT_LOW16, /* type */ @@ -917,11 +926,11 @@ static reloc_howto_type sh_elf_howto_tab 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ - "R_SH_GOTPLT_LOW16", /* name */ + "R_SH_GOTPLT_LOW16", /* name */ false, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + false), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 16) & 65536). */ HOWTO (R_SH_GOTPLT_MEDLOW16, /* type */ @@ -936,7 +945,7 @@ static reloc_howto_type sh_elf_howto_tab false, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + false), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 32) & 65536). */ HOWTO (R_SH_GOTPLT_MEDHI16, /* type */ @@ -951,7 +960,7 @@ static reloc_howto_type sh_elf_howto_tab false, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + false), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 48) & 65536). */ HOWTO (R_SH_GOTPLT_HI16, /* type */ @@ -966,7 +975,7 @@ static reloc_howto_type sh_elf_howto_tab false, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + false), /* pcrel_offset */ /* Used in MOVI and SHORI (x & 65536). */ HOWTO (R_SH_PLT_LOW16, /* type */ @@ -977,11 +986,11 @@ static reloc_howto_type sh_elf_howto_tab 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ - "R_SH_PLT_LOW16", /* name */ + "R_SH_PLT_LOW16", /* name */ false, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - true), /* pcrel_offset */ + true), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 16) & 65536). */ HOWTO (R_SH_PLT_MEDLOW16, /* type */ @@ -996,7 +1005,7 @@ static reloc_howto_type sh_elf_howto_tab false, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - true), /* pcrel_offset */ + true), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 32) & 65536). */ HOWTO (R_SH_PLT_MEDHI16, /* type */ @@ -1011,7 +1020,7 @@ static reloc_howto_type sh_elf_howto_tab false, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - true), /* pcrel_offset */ + true), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 48) & 65536). */ HOWTO (R_SH_PLT_HI16, /* type */ @@ -1026,7 +1035,7 @@ static reloc_howto_type sh_elf_howto_tab false, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - true), /* pcrel_offset */ + true), /* pcrel_offset */ /* Used in MOVI and SHORI (x & 65536). */ HOWTO (R_SH_GOTOFF_LOW16, /* type */ @@ -1037,11 +1046,11 @@ static reloc_howto_type sh_elf_howto_tab 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ - "R_SH_GOTOFF_LOW16", /* name */ + "R_SH_GOTOFF_LOW16", /* name */ false, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + false), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 16) & 65536). */ HOWTO (R_SH_GOTOFF_MEDLOW16, /* type */ @@ -1056,7 +1065,7 @@ static reloc_howto_type sh_elf_howto_tab false, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + false), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 32) & 65536). */ HOWTO (R_SH_GOTOFF_MEDHI16, /* type */ @@ -1071,7 +1080,7 @@ static reloc_howto_type sh_elf_howto_tab false, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + false), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 48) & 65536). */ HOWTO (R_SH_GOTOFF_HI16, /* type */ @@ -1086,7 +1095,7 @@ static reloc_howto_type sh_elf_howto_tab false, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + false), /* pcrel_offset */ /* Used in MOVI and SHORI (x & 65536). */ HOWTO (R_SH_GOTPC_LOW16, /* type */ @@ -1097,11 +1106,11 @@ static reloc_howto_type sh_elf_howto_tab 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ - "R_SH_GOTPC_LOW16", /* name */ + "R_SH_GOTPC_LOW16", /* name */ false, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - true), /* pcrel_offset */ + true), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 16) & 65536). */ HOWTO (R_SH_GOTPC_MEDLOW16, /* type */ @@ -1116,7 +1125,7 @@ static reloc_howto_type sh_elf_howto_tab false, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - true), /* pcrel_offset */ + true), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 32) & 65536). */ HOWTO (R_SH_GOTPC_MEDHI16, /* type */ @@ -1131,7 +1140,7 @@ static reloc_howto_type sh_elf_howto_tab false, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - true), /* pcrel_offset */ + true), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 48) & 65536). */ HOWTO (R_SH_GOTPC_HI16, /* type */ @@ -1146,9 +1155,9 @@ static reloc_howto_type sh_elf_howto_tab false, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - true), /* pcrel_offset */ + true), /* pcrel_offset */ - /* Used in LD.L, FLD.S et al. */ + /* Used in LD.L, FLD.S et al. */ HOWTO (R_SH_GOT10BY4, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ @@ -1161,9 +1170,9 @@ static reloc_howto_type sh_elf_howto_tab false, /* partial_inplace */ 0, /* src_mask */ 0xffc00, /* dst_mask */ - false), /* pcrel_offset */ + false), /* pcrel_offset */ - /* Used in LD.L, FLD.S et al. */ + /* Used in LD.L, FLD.S et al. */ HOWTO (R_SH_GOTPLT10BY4, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ @@ -1176,7 +1185,7 @@ static reloc_howto_type sh_elf_howto_tab false, /* partial_inplace */ 0, /* src_mask */ 0xffc00, /* dst_mask */ - false), /* pcrel_offset */ + false), /* pcrel_offset */ /* Used in FLD.D, FST.P et al. */ HOWTO (R_SH_GOT10BY8, /* type */ @@ -1191,7 +1200,7 @@ static reloc_howto_type sh_elf_howto_tab false, /* partial_inplace */ 0, /* src_mask */ 0xffc00, /* dst_mask */ - false), /* pcrel_offset */ + false), /* pcrel_offset */ /* Used in FLD.D, FST.P et al. */ HOWTO (R_SH_GOTPLT10BY8, /* type */ @@ -1206,7 +1215,7 @@ static reloc_howto_type sh_elf_howto_tab false, /* partial_inplace */ 0, /* src_mask */ 0xffc00, /* dst_mask */ - false), /* pcrel_offset */ + false), /* pcrel_offset */ HOWTO (R_SH_COPY64, /* type */ 0, /* rightshift */ @@ -1216,11 +1225,11 @@ static reloc_howto_type sh_elf_howto_tab 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ - "R_SH_COPY64", /* name */ + "R_SH_COPY64", /* name */ false, /* partial_inplace */ 0, /* src_mask */ ((bfd_vma) 0) - 1, /* dst_mask */ - false), /* pcrel_offset */ + false), /* pcrel_offset */ HOWTO (R_SH_GLOB_DAT64, /* type */ 0, /* rightshift */ @@ -1230,11 +1239,11 @@ static reloc_howto_type sh_elf_howto_tab 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ - "R_SH_GLOB_DAT64", /* name */ + "R_SH_GLOB_DAT64", /* name */ false, /* partial_inplace */ 0, /* src_mask */ ((bfd_vma) 0) - 1, /* dst_mask */ - false), /* pcrel_offset */ + false), /* pcrel_offset */ HOWTO (R_SH_JMP_SLOT64, /* type */ 0, /* rightshift */ @@ -1244,11 +1253,11 @@ static reloc_howto_type sh_elf_howto_tab 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ - "R_SH_JMP_SLOT64", /* name */ + "R_SH_JMP_SLOT64", /* name */ false, /* partial_inplace */ 0, /* src_mask */ ((bfd_vma) 0) - 1, /* dst_mask */ - false), /* pcrel_offset */ + false), /* pcrel_offset */ HOWTO (R_SH_RELATIVE64, /* type */ 0, /* rightshift */ @@ -1258,11 +1267,11 @@ static reloc_howto_type sh_elf_howto_tab 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ - "R_SH_RELATIVE64", /* name */ + "R_SH_RELATIVE64", /* name */ false, /* partial_inplace */ 0, /* src_mask */ ((bfd_vma) 0) - 1, /* dst_mask */ - false), /* pcrel_offset */ + false), /* pcrel_offset */ EMPTY_HOWTO (197), EMPTY_HOWTO (198), @@ -1363,7 +1372,7 @@ static reloc_howto_type sh_elf_howto_tab false, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + false), /* pcrel_offset */ /* Used in SHORI. */ HOWTO (R_SH_IMMU16, /* type */ @@ -1378,7 +1387,7 @@ static reloc_howto_type sh_elf_howto_tab false, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + false), /* pcrel_offset */ /* Used in MOVI and SHORI (x & 65536). */ HOWTO (R_SH_IMM_LOW16, /* type */ @@ -1389,11 +1398,11 @@ static reloc_howto_type sh_elf_howto_tab 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ - "R_SH_IMM_LOW16", /* name */ + "R_SH_IMM_LOW16", /* name */ false, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + false), /* pcrel_offset */ /* Used in MOVI and SHORI ((x - $) & 65536). */ HOWTO (R_SH_IMM_LOW16_PCREL, /* type */ @@ -1423,7 +1432,7 @@ static reloc_howto_type sh_elf_howto_tab false, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + false), /* pcrel_offset */ /* Used in MOVI and SHORI (((x - $) >> 16) & 65536). */ HOWTO (R_SH_IMM_MEDLOW16_PCREL, /* type */ @@ -1453,7 +1462,7 @@ static reloc_howto_type sh_elf_howto_tab false, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + false), /* pcrel_offset */ /* Used in MOVI and SHORI (((x - $) >> 32) & 65536). */ HOWTO (R_SH_IMM_MEDHI16_PCREL, /* type */ @@ -1483,7 +1492,7 @@ static reloc_howto_type sh_elf_howto_tab false, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + false), /* pcrel_offset */ /* Used in MOVI and SHORI (((x - $) >> 48) & 65536). */ HOWTO (R_SH_IMM_HI16_PCREL, /* type */ @@ -1509,11 +1518,11 @@ static reloc_howto_type sh_elf_howto_tab 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ - "R_SH_64", /* name */ + "R_SH_64", /* name */ false, /* partial_inplace */ 0, /* src_mask */ ((bfd_vma) 0) - 1, /* dst_mask */ - false), /* pcrel_offset */ + false), /* pcrel_offset */ /* For the .uaquad pseudo, (x - $). */ HOWTO (R_SH_64_PCREL, /* type */ @@ -1955,9 +1964,9 @@ sh_elf_relax_section (abfd, sec, link_in } /* The r_addend field of the R_SH_USES reloc will point us to - the register load. The 4 is because the r_addend field is - computed as though it were a jump offset, which are based - from 4 bytes after the jump instruction. */ + the register load. The 4 is because the r_addend field is + computed as though it were a jump offset, which are based + from 4 bytes after the jump instruction. */ laddr = irel->r_offset + 4 + irel->r_addend; if (laddr >= sec->_raw_size) { @@ -1969,7 +1978,7 @@ sh_elf_relax_section (abfd, sec, link_in insn = bfd_get_16 (abfd, contents + laddr); /* If the instruction is not mov.l NN,rN, we don't know what to - do. */ + do. */ if ((insn & 0xf000) != 0xd000) { ((*_bfd_error_handler) @@ -1996,8 +2005,8 @@ sh_elf_relax_section (abfd, sec, link_in } /* Get the reloc for the address from which the register is - being loaded. This reloc will tell us which function is - actually being called. */ + being loaded. This reloc will tell us which function is + actually being called. */ for (irelfn = internal_relocs; irelfn < irelend; irelfn++) if (irelfn->r_offset == paddr && ELF32_R_TYPE (irelfn->r_info) == (int) R_SH_DIR32) @@ -2054,8 +2063,8 @@ sh_elf_relax_section (abfd, sec, link_in && h->root.type != bfd_link_hash_defweak) { /* This appears to be a reference to an undefined - symbol. Just ignore it--it will be caught by the - regular reloc processing. */ + symbol. Just ignore it--it will be caught by the + regular reloc processing. */ continue; } @@ -2095,13 +2104,13 @@ sh_elf_relax_section (abfd, sec, link_in /* Replace the jsr with a bsr. */ /* Change the R_SH_USES reloc into an R_SH_IND12W reloc, and - replace the jsr with a bsr. */ + replace the jsr with a bsr. */ irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irelfn->r_info), R_SH_IND12W); if (ELF32_R_SYM (irelfn->r_info) < symtab_hdr->sh_info) { /* If this needs to be changed because of future relaxing, - it will be handled here like other internal IND12W - relocs. */ + it will be handled here like other internal IND12W + relocs. */ bfd_put_16 (abfd, (bfd_vma) 0xb000 | ((foff >> 1) & 0xfff), contents + irel->r_offset); @@ -2109,13 +2118,13 @@ sh_elf_relax_section (abfd, sec, link_in else { /* We can't fully resolve this yet, because the external - symbol value may be changed by future relaxing. We let - the final link phase handle it. */ + symbol value may be changed by future relaxing. We let + the final link phase handle it. */ bfd_put_16 (abfd, (bfd_vma) 0xb000, contents + irel->r_offset); } /* See if there is another R_SH_USES reloc referring to the same - register load. */ + register load. */ for (irelscan = internal_relocs; irelscan < irelend; irelscan++) if (ELF32_R_TYPE (irelscan->r_info) == (int) R_SH_USES && laddr == irelscan->r_offset + 4 + irelscan->r_addend) @@ -2130,8 +2139,8 @@ sh_elf_relax_section (abfd, sec, link_in } /* Look for a R_SH_COUNT reloc on the location where the - function address is stored. Do this before deleting any - bytes, to avoid confusion about the address. */ + function address is stored. Do this before deleting any + bytes, to avoid confusion about the address. */ for (irelcount = internal_relocs; irelcount < irelend; irelcount++) if (irelcount->r_offset == paddr && ELF32_R_TYPE (irelcount->r_info) == (int) R_SH_COUNT) @@ -2142,8 +2151,8 @@ sh_elf_relax_section (abfd, sec, link_in goto error_return; /* That will change things, so, just in case it permits some - other function call to come within range, we should relax - again. Note that this is not required, and it may be slow. */ + other function call to come within range, we should relax + again. Note that this is not required, and it may be slow. */ *again = true; /* Now check whether we got a COUNT reloc. */ @@ -2156,7 +2165,7 @@ sh_elf_relax_section (abfd, sec, link_in } /* The number of uses is stored in the r_addend field. We've - just deleted one. */ + just deleted one. */ if (irelcount->r_addend == 0) { ((*_bfd_error_handler) (_("%s: 0x%lx: warning: bad count"), @@ -2168,8 +2177,8 @@ sh_elf_relax_section (abfd, sec, link_in --irelcount->r_addend; /* If there are no more uses, we can delete the address. Reload - the address from irelfn, in case it was changed by the - previous call to sh_elf_relax_delete_bytes. */ + the address from irelfn, in case it was changed by the + previous call to sh_elf_relax_delete_bytes. */ if (irelcount->r_addend == 0) { if (! sh_elf_relax_delete_bytes (abfd, sec, irelfn->r_offset, 4)) @@ -2355,7 +2364,7 @@ sh_elf_relax_delete_bytes (abfd, sec, ad (int) R_SH_NONE); /* If this is a PC relative reloc, see if the range it covers - includes the bytes we have deleted. */ + includes the bytes we have deleted. */ switch ((enum elf_sh_reloc_type) ELF32_R_TYPE (irel->r_info)) { default: @@ -2378,9 +2387,9 @@ sh_elf_relax_delete_bytes (abfd, sec, ad case R_SH_DIR32: /* If this reloc is against a symbol defined in this - section, and the symbol will not be adjusted below, we - must check the addend to see it will put the value in - range to be adjusted, and hence must be changed. */ + section, and the symbol will not be adjusted below, we + must check the addend to see it will put the value in + range to be adjusted, and hence must be changed. */ if (ELF32_R_SYM (irel->r_info) < symtab_hdr->sh_info) { isym = isymbuf + ELF32_R_SYM (irel->r_info); @@ -2572,8 +2581,8 @@ sh_elf_relax_delete_bytes (abfd, sec, ad continue; /* We always cache the relocs. Perhaps, if info->keep_memory is - false, we should free them, if we are permitted to, when we - leave sh_coff_relax_section. */ + false, we should free them, if we are permitted to, when we + leave sh_coff_relax_section. */ internal_relocs = (_bfd_elf32_link_read_relocs (abfd, o, (PTR) NULL, (Elf_Internal_Rela *) NULL, true)); @@ -2597,9 +2606,9 @@ sh_elf_relax_delete_bytes (abfd, sec, ad else { /* We always cache the section contents. - Perhaps, if info->keep_memory is false, we - should free them, if we are permitted to, - when we leave sh_coff_relax_section. */ + Perhaps, if info->keep_memory is false, we + should free them, if we are permitted to, + when we leave sh_coff_relax_section. */ ocontents = (bfd_byte *) bfd_malloc (o->_raw_size); if (ocontents == NULL) return false; @@ -2655,9 +2664,9 @@ sh_elf_relax_delete_bytes (abfd, sec, ad else { /* We always cache the section contents. - Perhaps, if info->keep_memory is false, we - should free them, if we are permitted to, - when we leave sh_coff_relax_section. */ + Perhaps, if info->keep_memory is false, we + should free them, if we are permitted to, + when we leave sh_coff_relax_section. */ ocontents = (bfd_byte *) bfd_malloc (o->_raw_size); if (ocontents == NULL) return false; @@ -2829,8 +2838,8 @@ sh_elf_swap_insns (abfd, sec, relocs, co int add; /* There are a few special types of relocs that we don't want to - adjust. These relocs do not apply to the instruction itself, - but are only associated with the address. */ + adjust. These relocs do not apply to the instruction itself, + but are only associated with the address. */ type = (enum elf_sh_reloc_type) ELF32_R_TYPE (irel->r_info); if (type == R_SH_ALIGN || type == R_SH_CODE @@ -2839,11 +2848,11 @@ sh_elf_swap_insns (abfd, sec, relocs, co continue; /* If an R_SH_USES reloc points to one of the addresses being - swapped, we must adjust it. It would be incorrect to do this - for a jump, though, since we want to execute both - instructions after the jump. (We have avoided swapping - around a label, so the jump will not wind up executing an - instruction it shouldn't). */ + swapped, we must adjust it. It would be incorrect to do this + for a jump, though, since we want to execute both + instructions after the jump. (We have avoided swapping + around a label, so the jump will not wind up executing an + instruction it shouldn't). */ if (type == R_SH_USES) { bfd_vma off; @@ -2902,11 +2911,11 @@ sh_elf_swap_insns (abfd, sec, relocs, co case R_SH_DIR8WPL: /* This reloc ignores the least significant 3 bits of - the program counter before adding in the offset. - This means that if ADDR is at an even address, the - swap will not affect the offset. If ADDR is an at an - odd address, then the instruction will be crossing a - four byte boundary, and must be adjusted. */ + the program counter before adding in the offset. + This means that if ADDR is at an even address, the + swap will not affect the offset. If ADDR is an at an + odd address, then the instruction will be crossing a + four byte boundary, and must be adjusted. */ if ((addr & 3) != 0) { insn = bfd_get_16 (abfd, loc); @@ -2947,7 +2956,7 @@ static const bfd_byte elf_sh_plt0_entry_ 0xcc, 0x00, 0x01, 0x10, /* movi .got.plt >> 16, r17 */ 0xc8, 0x00, 0x01, 0x10, /* shori .got.plt & 65535, r17 */ 0x89, 0x10, 0x09, 0x90, /* ld.l r17, 8, r25 */ - 0x6b, 0xf1, 0x46, 0x00, /* ptabs r17, tr0 */ + 0x6b, 0xf1, 0x66, 0x00, /* ptabs r25, tr0 */ 0x89, 0x10, 0x05, 0x10, /* ld.l r17, 4, r17 */ 0x44, 0x01, 0xff, 0xf0, /* blink tr0, r63 */ 0x6f, 0xf0, 0xff, 0xf0, /* nop */ @@ -2967,7 +2976,7 @@ static const bfd_byte elf_sh_plt0_entry_ 0x10, 0x01, 0x00, 0xcc, /* movi .got.plt >> 16, r17 */ 0x10, 0x01, 0x00, 0xc8, /* shori .got.plt & 65535, r17 */ 0x90, 0x09, 0x10, 0x89, /* ld.l r17, 8, r25 */ - 0x00, 0x46, 0xf1, 0x6b, /* ptabs r17, tr0 */ + 0x00, 0x66, 0xf1, 0x6b, /* ptabs r25, tr0 */ 0x10, 0x05, 0x10, 0x89, /* ld.l r17, 4, r17 */ 0xf0, 0xff, 0x01, 0x44, /* blink tr0, r63 */ 0xf0, 0xff, 0xf0, 0x6f, /* nop */ @@ -3348,22 +3357,23 @@ static const bfd_byte *elf_sh_pic_plt_en #endif /* The sh linker needs to keep track of the number of relocs that it - decides to copy in check_relocs for each symbol. This is so that - it can discard PC relative relocs if it doesn't need them when - linking with -Bsymbolic. We store the information in a field - extending the regular ELF linker hash table. */ - -/* This structure keeps track of the number of PC relative relocs we - have copied for a given symbol. */ - -struct elf_sh_pcrel_relocs_copied -{ - /* Next section. */ - struct elf_sh_pcrel_relocs_copied *next; - /* A section in dynobj. */ - asection *section; - /* Number of relocs copied in this section. */ + decides to copy as dynamic relocs in check_relocs for each symbol. + This is so that it can later discard them if they are found to be + unnecessary. We store the information in a field extending the + regular ELF linker hash table. */ + +struct elf_sh_dyn_relocs +{ + struct elf_sh_dyn_relocs *next; + + /* The input section of the reloc. */ + asection *sec; + + /* Total number of relocs copied for the input section. */ bfd_size_type count; + + /* Number of pc-relative relocs copied for the input section. */ + bfd_size_type pc_count; }; /* sh ELF linker hash entry. */ @@ -3376,8 +3386,10 @@ struct elf_sh_link_hash_entry bfd_vma datalabel_got_offset; #endif - /* Number of PC relative relocs copied for this symbol. */ - struct elf_sh_pcrel_relocs_copied *pcrel_relocs_copied; + /* Track dynamic relocs copied for this symbol. */ + struct elf_sh_dyn_relocs *dyn_relocs; + + bfd_signed_vma gotplt_refcount; }; /* sh ELF linker hash table. */ @@ -3385,12 +3397,19 @@ struct elf_sh_link_hash_entry struct elf_sh_link_hash_table { struct elf_link_hash_table root; -}; -/* Declare this now that the above structures are defined. */ + /* Short-cuts to get to dynamic linker sections. */ + asection *sgot; + asection *sgotplt; + asection *srelgot; + asection *splt; + asection *srelplt; + asection *sdynbss; + asection *srelbss; -static boolean sh_elf_discard_copies - PARAMS ((struct elf_sh_link_hash_entry *, PTR)); + /* Small local sym to section mapping cache. */ + struct sym_sec_cache sym_sec; +}; /* Traverse an sh ELF linker hash table. */ @@ -3431,7 +3450,11 @@ sh_elf_link_hash_newfunc (entry, table, table, string)); if (ret != (struct elf_sh_link_hash_entry *) NULL) { - ret->pcrel_relocs_copied = NULL; + struct elf_sh_link_hash_entry *eh; + + eh = (struct elf_sh_link_hash_entry *) ret; + eh->dyn_relocs = NULL; + eh->gotplt_refcount = 0; #ifdef INCLUDE_SHMEDIA ret->datalabel_got_offset = (bfd_vma) -1; #endif @@ -3460,9 +3483,51 @@ sh_elf_link_hash_table_create (abfd) return NULL; } + ret->sgot = NULL; + ret->sgotplt = NULL; + ret->srelgot = NULL; + ret->splt = NULL; + ret->srelplt = NULL; + ret->sdynbss = NULL; + ret->srelbss = NULL; + ret->sym_sec.abfd = NULL; + return &ret->root.root; } +/* Create .got, .gotplt, and .rela.got sections in DYNOBJ, and set up + shortcuts to them in our hash table. */ + +static boolean +create_got_section (dynobj, info) + bfd *dynobj; + struct bfd_link_info *info; +{ + struct elf_sh_link_hash_table *htab; + + if (! _bfd_elf_create_got_section (dynobj, info)) + return false; + + htab = sh_elf_hash_table (info); + htab->sgot = bfd_get_section_by_name (dynobj, ".got"); + htab->sgotplt = bfd_get_section_by_name (dynobj, ".got.plt"); + if (! htab->sgot || ! htab->sgotplt) + abort (); + + htab->srelgot = bfd_make_section (dynobj, ".rela.got"); + if (htab->srelgot == NULL + || ! bfd_set_section_flags (dynobj, htab->srelgot, + (SEC_ALLOC + | SEC_LOAD + | SEC_HAS_CONTENTS + | SEC_IN_MEMORY + | SEC_LINKER_CREATED + | SEC_READONLY)) + || ! bfd_set_section_alignment (dynobj, htab->srelgot, 2)) + return false; + return true; +} + /* Create dynamic sections when linking against a dynamic object. */ static boolean @@ -3470,6 +3535,7 @@ sh_elf_create_dynamic_sections (abfd, in bfd *abfd; struct bfd_link_info *info; { + struct elf_sh_link_hash_table *htab; flagword flags, pltflags; register asection *s; struct elf_backend_data *bed = get_elf_backend_data (abfd); @@ -3490,6 +3556,8 @@ sh_elf_create_dynamic_sections (abfd, in return false; } + htab = sh_elf_hash_table (info); + /* We need to create .plt, .rel[a].plt, .got, .got.plt, .dynbss, and .rel[a].bss sections. */ @@ -3504,6 +3572,7 @@ sh_elf_create_dynamic_sections (abfd, in pltflags |= SEC_READONLY; s = bfd_make_section (abfd, ".plt"); + htab->splt = s; if (s == NULL || ! bfd_set_section_flags (abfd, s, pltflags) || ! bfd_set_section_alignment (abfd, s, bed->plt_alignment)) @@ -3530,12 +3599,13 @@ sh_elf_create_dynamic_sections (abfd, in s = bfd_make_section (abfd, bed->default_use_rela_p ? ".rela.plt" : ".rel.plt"); + htab->srelplt = s; if (s == NULL || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY) || ! bfd_set_section_alignment (abfd, s, ptralign)) return false; - if (! _bfd_elf_create_got_section (abfd, info)) + if (! create_got_section (abfd, info)) return false; { @@ -3571,6 +3641,7 @@ sh_elf_create_dynamic_sections (abfd, in initialize them at run time. The linker script puts the .dynbss section into the .bss section of the final image. */ s = bfd_make_section (abfd, ".dynbss"); + htab->sdynbss = s; if (s == NULL || ! bfd_set_section_flags (abfd, s, SEC_ALLOC)) return false; @@ -3591,6 +3662,7 @@ sh_elf_create_dynamic_sections (abfd, in s = bfd_make_section (abfd, (bed->default_use_rela_p ? ".rela.bss" : ".rel.bss")); + htab->srelbss = s; if (s == NULL || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY) || ! bfd_set_section_alignment (abfd, s, ptralign)) @@ -3612,6 +3684,9 @@ sh_elf_adjust_dynamic_symbol (info, h) struct bfd_link_info *info; struct elf_link_hash_entry *h; { + struct elf_sh_link_hash_table *htab; + struct elf_sh_link_hash_entry *eh; + struct elf_sh_dyn_relocs *p; bfd *dynobj; asection *s; unsigned int power_of_two; @@ -3635,66 +3710,26 @@ sh_elf_adjust_dynamic_symbol (info, h) if (h->type == STT_FUNC || (h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_PLT) != 0) { - if (! info->shared - && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_DYNAMIC) == 0 - && (h->elf_link_hash_flags & ELF_LINK_HASH_REF_DYNAMIC) == 0) + if (h->plt.refcount <= 0 + || (! info->shared + && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_DYNAMIC) == 0 + && (h->elf_link_hash_flags & ELF_LINK_HASH_REF_DYNAMIC) == 0 + && h->root.type != bfd_link_hash_undefweak + && h->root.type != bfd_link_hash_undefined)) { /* This case can occur if we saw a PLT reloc in an input file, but the symbol was never referred to by a dynamic object. In such a case, we don't actually need to build a procedure linkage table, and we can just do a REL32 reloc instead. */ - BFD_ASSERT ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_PLT) != 0); - return true; - } - - /* Make sure this symbol is output as a dynamic symbol. */ - if (h->dynindx == -1) - { - if (! bfd_elf32_link_record_dynamic_symbol (info, h)) - return false; + h->plt.offset = (bfd_vma) -1; + h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT; } - s = bfd_get_section_by_name (dynobj, ".plt"); - BFD_ASSERT (s != NULL); - - /* If this is the first .plt entry, make room for the special - first entry. */ - if (s->_raw_size == 0) - s->_raw_size += PLT_ENTRY_SIZE; - - /* If this symbol is not defined in a regular file, and we are - not generating a shared library, then set the symbol to this - location in the .plt. This is required to make function - pointers compare as equal between the normal executable and - the shared library. */ - if (! info->shared - && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0) - { - h->root.u.def.section = s; - h->root.u.def.value = s->_raw_size; - } - - h->plt.offset = s->_raw_size; - - /* Make room for this entry. */ - s->_raw_size += elf_sh_sizeof_plt (info); - - /* We also need to make an entry in the .got.plt section, which - will be placed in the .got section by the linker script. */ - - s = bfd_get_section_by_name (dynobj, ".got.plt"); - BFD_ASSERT (s != NULL); - s->_raw_size += 4; - - /* We also need to make an entry in the .rela.plt section. */ - - s = bfd_get_section_by_name (dynobj, ".rela.plt"); - BFD_ASSERT (s != NULL); - s->_raw_size += sizeof (Elf32_External_Rela); - return true; } + else + h->plt.offset = (bfd_vma) -1; /* If this is a weak symbol, and there is a real definition, the processor independent code will have arranged for us to see the @@ -3723,6 +3758,30 @@ sh_elf_adjust_dynamic_symbol (info, h) if ((h->elf_link_hash_flags & ELF_LINK_NON_GOT_REF) == 0) return true; + /* If -z nocopyreloc was given, we won't generate them either. */ + if (info->nocopyreloc) + { + h->elf_link_hash_flags &= ~ELF_LINK_NON_GOT_REF; + return true; + } + + eh = (struct elf_sh_link_hash_entry *) h; + for (p = eh->dyn_relocs; p != NULL; p = p->next) + { + s = p->sec->output_section; + if (s != NULL && (s->flags & (SEC_READONLY | SEC_HAS_CONTENTS)) != 0) + break; + } + + /* If we didn't find any dynamic relocs in sections which needs the + copy reloc, then we'll be keeping the dynamic relocs and avoiding + the copy reloc. */ + if (p == NULL) + { + h->elf_link_hash_flags &= ~ELF_LINK_NON_GOT_REF; + return true; + } + /* We must allocate the symbol in our .dynbss section, which will become part of the .bss section of the executable. There will be an entry for this symbol in the .dynsym section. The dynamic @@ -3733,7 +3792,8 @@ sh_elf_adjust_dynamic_symbol (info, h) both the dynamic object and the regular object will refer to the same memory location for the variable. */ - s = bfd_get_section_by_name (dynobj, ".dynbss"); + htab = sh_elf_hash_table (info); + s = htab->sdynbss; BFD_ASSERT (s != NULL); /* We must generate a R_SH_COPY reloc to tell the dynamic linker to @@ -3744,7 +3804,7 @@ sh_elf_adjust_dynamic_symbol (info, h) { asection *srel; - srel = bfd_get_section_by_name (dynobj, ".rela.bss"); + srel = htab->srelbss; BFD_ASSERT (srel != NULL); srel->_raw_size += sizeof (Elf32_External_Rela); h->elf_link_hash_flags |= ELF_LINK_HASH_NEEDS_COPY; @@ -3757,8 +3817,7 @@ sh_elf_adjust_dynamic_symbol (info, h) power_of_two = 3; /* Apply the required alignment. */ - s->_raw_size = BFD_ALIGN (s->_raw_size, - (bfd_size_type) (1 << power_of_two)); + s->_raw_size = BFD_ALIGN (s->_raw_size, (bfd_size_type) (1 << power_of_two)); if (power_of_two > bfd_get_section_alignment (dynobj, s)) { if (! bfd_set_section_alignment (dynobj, s, power_of_two)) @@ -3775,6 +3834,250 @@ sh_elf_adjust_dynamic_symbol (info, h) return true; } +/* This is the condition under which sh_elf_finish_dynamic_symbol + will be called from elflink.h. If elflink.h doesn't call our + finish_dynamic_symbol routine, we'll need to do something about + initializing any .plt and .got entries in sh_elf_relocate_section. */ +#define WILL_CALL_FINISH_DYNAMIC_SYMBOL(DYN, INFO, H) \ + ((DYN) \ + && ((INFO)->shared \ + || ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) \ + && ((H)->dynindx != -1 \ + || ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0)) + +/* Allocate space in .plt, .got and associated reloc sections for + dynamic relocs. */ + +static boolean +allocate_dynrelocs (h, inf) + struct elf_link_hash_entry *h; + PTR inf; +{ + struct bfd_link_info *info; + struct elf_sh_link_hash_table *htab; + struct elf_sh_link_hash_entry *eh; + struct elf_sh_dyn_relocs *p; + + if (h->root.type == bfd_link_hash_indirect) + return true; + + if (h->root.type == bfd_link_hash_warning) + /* When warning symbols are created, they **replace** the "real" + entry in the hash table, thus we never get to see the real + symbol in a hash traversal. So look at it now. */ + h = (struct elf_link_hash_entry *) h->root.u.i.link; + + info = (struct bfd_link_info *) inf; + htab = sh_elf_hash_table (info); + + eh = (struct elf_sh_link_hash_entry *) h; + if ((h->got.refcount > 0 + || (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL)) + && eh->gotplt_refcount > 0) + { + /* The symbol has been forced local, or we have some direct got refs, + so treat all the gotplt refs as got refs. */ + h->got.refcount += eh->gotplt_refcount; + if (h->plt.refcount >= eh->gotplt_refcount) + h->plt.refcount -= eh->gotplt_refcount; + } + + if (htab->root.dynamic_sections_created + && h->plt.refcount > 0) + { + /* Make sure this symbol is output as a dynamic symbol. + Undefined weak syms won't yet be marked as dynamic. */ + if (h->dynindx == -1 + && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) + { + if (! bfd_elf32_link_record_dynamic_symbol (info, h)) + return false; + } + + if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (1, info, h)) + { + asection *s = htab->splt; + + /* If this is the first .plt entry, make room for the special + first entry. */ + if (s->_raw_size == 0) + s->_raw_size += PLT_ENTRY_SIZE; + + h->plt.offset = s->_raw_size; + + /* If this symbol is not defined in a regular file, and we are + not generating a shared library, then set the symbol to this + location in the .plt. This is required to make function + pointers compare as equal between the normal executable and + the shared library. */ + if (! info->shared + && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0) + { + h->root.u.def.section = s; + h->root.u.def.value = h->plt.offset; + } + + /* Make room for this entry. */ + s->_raw_size += PLT_ENTRY_SIZE; + + /* We also need to make an entry in the .got.plt section, which + will be placed in the .got section by the linker script. */ + htab->sgotplt->_raw_size += 4; + + /* We also need to make an entry in the .rel.plt section. */ + htab->srelplt->_raw_size += sizeof (Elf32_External_Rela); + } + else + { + h->plt.offset = (bfd_vma) -1; + h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT; + } + } + else + { + h->plt.offset = (bfd_vma) -1; + h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT; + } + + if (h->got.refcount > 0) + { + asection *s; + boolean dyn; + + /* Make sure this symbol is output as a dynamic symbol. + Undefined weak syms won't yet be marked as dynamic. */ + if (h->dynindx == -1 + && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) + { + if (! bfd_elf32_link_record_dynamic_symbol (info, h)) + return false; + } + + s = htab->sgot; +#ifdef INCLUDE_SHMEDIA + if (h->type == STT_DATALABEL) + { + struct elf_sh_link_hash_entry *hsh; + + h = (struct elf_link_hash_entry *) h->root.u.i.link; + hsh = (struct elf_sh_link_hash_entry *)h; + hsh->datalabel_got_offset = s->_raw_size; + } + else + h->got.offset = s->_raw_size; +#else + h->got.offset = s->_raw_size; +#endif + s->_raw_size += 4; + dyn = htab->root.dynamic_sections_created; + if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, info, h)) + htab->srelgot->_raw_size += sizeof (Elf32_External_Rela); + } + else + h->got.offset = (bfd_vma) -1; + + if (eh->dyn_relocs == NULL) + return true; + + /* In the shared -Bsymbolic case, discard space allocated for + dynamic pc-relative relocs against symbols which turn out to be + defined in regular objects. For the normal shared case, discard + space for pc-relative relocs that have become local due to symbol + visibility changes. */ + + if (info->shared) + { + if ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) != 0 + && ((h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0 + || info->symbolic)) + { + struct elf_sh_dyn_relocs **pp; + + for (pp = &eh->dyn_relocs; (p = *pp) != NULL; ) + { + p->count -= p->pc_count; + p->pc_count = 0; + if (p->count == 0) + *pp = p->next; + else + pp = &p->next; + } + } + } + else + { + /* For the non-shared case, discard space for relocs against + symbols which turn out to need copy relocs or are not + dynamic. */ + + if ((h->elf_link_hash_flags & ELF_LINK_NON_GOT_REF) == 0 + && (((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_DYNAMIC) != 0 + && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0) + || (htab->root.dynamic_sections_created + && (h->root.type == bfd_link_hash_undefweak + || h->root.type == bfd_link_hash_undefined)))) + { + /* Make sure this symbol is output as a dynamic symbol. + Undefined weak syms won't yet be marked as dynamic. */ + if (h->dynindx == -1 + && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) + { + if (! bfd_elf32_link_record_dynamic_symbol (info, h)) + return false; + } + + /* If that succeeded, we know we'll be keeping all the + relocs. */ + if (h->dynindx != -1) + goto keep; + } + + eh->dyn_relocs = NULL; + + keep: ; + } + + /* Finally, allocate space. */ + for (p = eh->dyn_relocs; p != NULL; p = p->next) + { + asection *sreloc = elf_section_data (p->sec)->sreloc; + sreloc->_raw_size += p->count * sizeof (Elf32_External_Rela); + } + + return true; +} + +/* Find any dynamic relocs that apply to read-only sections. */ + +static boolean +readonly_dynrelocs (h, inf) + struct elf_link_hash_entry *h; + PTR inf; +{ + struct elf_sh_link_hash_entry *eh; + struct elf_sh_dyn_relocs *p; + + if (h->root.type == bfd_link_hash_warning) + h = (struct elf_link_hash_entry *) h->root.u.i.link; + + eh = (struct elf_sh_link_hash_entry *) h; + for (p = eh->dyn_relocs; p != NULL; p = p->next) + { + asection *s = p->sec->output_section; + + if (s != NULL && (s->flags & SEC_READONLY) != 0) + { + struct bfd_link_info *info = (struct bfd_link_info *) inf; + + info->flags |= DF_TEXTREL; + + /* Not an error, just cut short the traversal. */ + return false; + } + } + return true; +} + /* Set the sizes of the dynamic sections. */ static boolean @@ -3782,15 +4085,17 @@ sh_elf_size_dynamic_sections (output_bfd bfd *output_bfd ATTRIBUTE_UNUSED; struct bfd_link_info *info; { + struct elf_sh_link_hash_table *htab; bfd *dynobj; asection *s; - boolean plt; boolean relocs; + bfd *ibfd; - dynobj = elf_hash_table (info)->dynobj; + htab = sh_elf_hash_table (info); + dynobj = htab->root.dynobj; BFD_ASSERT (dynobj != NULL); - if (elf_hash_table (info)->dynamic_sections_created) + if (htab->root.dynamic_sections_created) { /* Set the contents of the .interp section to the interpreter. */ if (! info->shared) @@ -3801,106 +4106,135 @@ sh_elf_size_dynamic_sections (output_bfd s->contents = (unsigned char *) ELF_DYNAMIC_INTERPRETER; } } - else - { - /* We may have created entries in the .rela.got section. - However, if we are not creating the dynamic sections, we will - not actually use these entries. Reset the size of .rela.got, - which will cause it to get stripped from the output file - below. */ - s = bfd_get_section_by_name (dynobj, ".rela.got"); - if (s != NULL) - s->_raw_size = 0; - } - - /* If this is a -Bsymbolic shared link, then we need to discard all - PC relative relocs against symbols defined in a regular object. - We allocated space for them in the check_relocs routine, but we - will not fill them in in the relocate_section routine. */ - if (info->shared && info->symbolic) - sh_elf_link_hash_traverse (sh_elf_hash_table (info), - sh_elf_discard_copies, - (PTR) NULL); - - /* The check_relocs and adjust_dynamic_symbol entry points have - determined the sizes of the various dynamic sections. Allocate - memory for them. */ - plt = false; - relocs = false; - for (s = dynobj->sections; s != NULL; s = s->next) - { - const char *name; - boolean strip; - - if ((s->flags & SEC_LINKER_CREATED) == 0) - continue; - /* It's OK to base decisions on the section name, because none - of the dynobj section names depend upon the input files. */ - name = bfd_get_section_name (dynobj, s); + /* Set up .got offsets for local syms, and space for local dynamic + relocs. */ + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + { + bfd_signed_vma *local_got; + bfd_signed_vma *end_local_got; + bfd_size_type locsymcount; + Elf_Internal_Shdr *symtab_hdr; + asection *srel; - strip = false; + if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour) + continue; - if (strcmp (name, ".plt") == 0) + for (s = ibfd->sections; s != NULL; s = s->next) { - if (s->_raw_size == 0) - { - /* Strip this section if we don't need it; see the - comment below. */ - strip = true; - } - else + struct elf_sh_dyn_relocs *p; + + for (p = ((struct elf_sh_dyn_relocs *) + elf_section_data (s)->local_dynrel); + p != NULL; + p = p->next) { - /* Remember whether there is a PLT. */ - plt = true; + if (! bfd_is_abs_section (p->sec) + && bfd_is_abs_section (p->sec->output_section)) + { + /* Input section has been discarded, either because + it is a copy of a linkonce section or due to + linker script /DISCARD/, so we'll be discarding + the relocs too. */ + } + else if (p->count != 0) + { + srel = elf_section_data (p->sec)->sreloc; + srel->_raw_size += p->count * sizeof (Elf32_External_Rela); + if ((p->sec->output_section->flags & SEC_READONLY) != 0) + info->flags |= DF_TEXTREL; + } } } - else if (strncmp (name, ".rela", 5) == 0) + + local_got = elf_local_got_refcounts (ibfd); + if (!local_got) + continue; + + symtab_hdr = &elf_tdata (ibfd)->symtab_hdr; + locsymcount = symtab_hdr->sh_info; +#ifdef INCLUDE_SHMEDIA + /* Count datalabel local GOT. */ + locsymcount *= 2; +#endif + end_local_got = local_got + locsymcount; + s = htab->sgot; + srel = htab->srelgot; + for (; local_got < end_local_got; ++local_got) { - if (s->_raw_size == 0) + if (*local_got > 0) { - /* If we don't need this section, strip it from the - output file. This is mostly to handle .rela.bss and - .rela.plt. We must create both sections in - create_dynamic_sections, because they must be created - before the linker maps input sections to output - sections. The linker does that before - adjust_dynamic_symbol is called, and it is that - function which decides whether anything needs to go - into these sections. */ - strip = true; + *local_got = s->_raw_size; + s->_raw_size += 4; + if (info->shared) + srel->_raw_size += sizeof (Elf32_External_Rela); } else - { - /* Remember whether there are any reloc sections other - than .rela.plt. */ - if (strcmp (name, ".rela.plt") != 0) - relocs = true; + *local_got = (bfd_vma) -1; + } + } - /* We use the reloc_count field as a counter if we need - to copy relocs into the output file. */ - s->reloc_count = 0; - } + /* Allocate global sym .plt and .got entries, and space for global + sym dynamic relocs. */ + elf_link_hash_traverse (&htab->root, allocate_dynrelocs, (PTR) info); + + /* We now have determined the sizes of the various dynamic sections. + Allocate memory for them. */ + relocs = false; + for (s = dynobj->sections; s != NULL; s = s->next) + { + if ((s->flags & SEC_LINKER_CREATED) == 0) + continue; + + if (s == htab->splt + || s == htab->sgot + || s == htab->sgotplt) + { + /* Strip this section if we don't need it; see the + comment below. */ + } + else if (strncmp (bfd_get_section_name (dynobj, s), ".rela", 5) == 0) + { + if (s->_raw_size != 0 && s != htab->srelplt) + relocs = true; + + /* We use the reloc_count field as a counter if we need + to copy relocs into the output file. */ + s->reloc_count = 0; } - else if (strncmp (name, ".got", 4) != 0) + else { /* It's not one of our sections, so don't allocate space. */ continue; } - if (strip) + if (s->_raw_size == 0) { + /* If we don't need this section, strip it from the + output file. This is mostly to handle .rela.bss and + .rela.plt. We must create both sections in + create_dynamic_sections, because they must be created + before the linker maps input sections to output + sections. The linker does that before + adjust_dynamic_symbol is called, and it is that + function which decides whether anything needs to go + into these sections. */ + _bfd_strip_section_from_output (info, s); continue; } - /* Allocate memory for the section contents. */ - s->contents = (bfd_byte *) bfd_alloc (dynobj, s->_raw_size); - if (s->contents == NULL && s->_raw_size != 0) + /* Allocate memory for the section contents. We use bfd_zalloc + here in case unused entries are not reclaimed before the + section's contents are written out. This should not happen, + but this way if it does, we get a R_SH_NONE reloc instead + of garbage. */ + s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->_raw_size); + if (s->contents == NULL) return false; } - if (elf_hash_table (info)->dynamic_sections_created) + if (htab->root.dynamic_sections_created) { /* Add some entries to the .dynamic section. We fill in the values later, in sh_elf_finish_dynamic_sections, but we @@ -3912,64 +4246,44 @@ sh_elf_size_dynamic_sections (output_bfd if (! info->shared) { - if (!add_dynamic_entry (DT_DEBUG, 0)) + if (! add_dynamic_entry (DT_DEBUG, 0)) return false; } - if (plt) + if (htab->splt->_raw_size != 0) { - if (!add_dynamic_entry (DT_PLTGOT, 0) - || !add_dynamic_entry (DT_PLTRELSZ, 0) - || !add_dynamic_entry (DT_PLTREL, DT_RELA) - || !add_dynamic_entry (DT_JMPREL, 0)) + if (! add_dynamic_entry (DT_PLTGOT, 0) + || ! add_dynamic_entry (DT_PLTRELSZ, 0) + || ! add_dynamic_entry (DT_PLTREL, DT_RELA) + || ! add_dynamic_entry (DT_JMPREL, 0)) return false; } if (relocs) { - if (!add_dynamic_entry (DT_RELA, 0) - || !add_dynamic_entry (DT_RELASZ, 0) - || !add_dynamic_entry (DT_RELAENT, sizeof (Elf32_External_Rela))) + if (! add_dynamic_entry (DT_RELA, 0) + || ! add_dynamic_entry (DT_RELASZ, 0) + || ! add_dynamic_entry (DT_RELAENT, + sizeof (Elf32_External_Rela))) return false; - } - if ((info->flags & DF_TEXTREL) != 0) - { - if (!add_dynamic_entry (DT_TEXTREL, 0)) - return false; + /* If any dynamic relocs apply to a read-only section, + then we need a DT_TEXTREL entry. */ + if ((info->flags & DF_TEXTREL) == 0) + elf_link_hash_traverse (&htab->root, readonly_dynrelocs, + (PTR) info); + + if ((info->flags & DF_TEXTREL) != 0) + { + if (! add_dynamic_entry (DT_TEXTREL, 0)) + return false; + } } } #undef add_dynamic_entry return true; } - -/* This function is called via sh_elf_link_hash_traverse if we are - creating a shared object with -Bsymbolic. It discards the space - allocated to copy PC relative relocs against symbols which are - defined in regular objects. We allocated space for them in the - check_relocs routine, but we won't fill them in in the - relocate_section routine. */ - -static boolean -sh_elf_discard_copies (h, ignore) - struct elf_sh_link_hash_entry *h; - PTR ignore ATTRIBUTE_UNUSED; -{ - struct elf_sh_pcrel_relocs_copied *s; - - if (h->root.root.type == bfd_link_hash_warning) - h = (struct elf_sh_link_hash_entry *) h->root.root.u.i.link; - - /* We only discard relocs for symbols defined in a regular object. */ - if ((h->root.elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0) - return true; - - for (s = h->pcrel_relocs_copied; s != NULL; s = s->next) - s->section->_raw_size -= s->count * sizeof (Elf32_External_Rela); - - return true; -} /* Relocate an SH ELF section. */ @@ -3985,6 +4299,7 @@ sh_elf_relocate_section (output_bfd, inf Elf_Internal_Sym *local_syms; asection **local_sections; { + struct elf_sh_link_hash_table *htab; Elf_Internal_Shdr *symtab_hdr; struct elf_link_hash_entry **sym_hashes; Elf_Internal_Rela *rel, *relend; @@ -3995,14 +4310,15 @@ sh_elf_relocate_section (output_bfd, inf asection *splt; asection *sreloc; + htab = sh_elf_hash_table (info); symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr; sym_hashes = elf_sym_hashes (input_bfd); - dynobj = elf_hash_table (info)->dynobj; + dynobj = htab->root.dynobj; local_got_offsets = elf_local_got_offsets (input_bfd); - sgot = NULL; - sgotplt = NULL; - splt = NULL; + sgot = htab->sgot; + sgotplt = htab->sgotplt; + splt = htab->splt; sreloc = NULL; rel = relocs; @@ -4025,7 +4341,7 @@ sh_elf_relocate_section (output_bfd, inf r_type = ELF32_R_TYPE (rel->r_info); /* Many of the relocs are only used for relaxing, and are - handled entirely by the relaxation code. */ + handled entirely by the relaxation code. */ if (r_type > (int) R_SH_LAST_INVALID_RELOC && r_type < (int) R_SH_LOOP_START) continue; @@ -4050,7 +4366,7 @@ sh_elf_relocate_section (output_bfd, inf howto = sh_elf_howto_table + r_type; /* For relocs that aren't partial_inplace, we get the addend from - the relocation. */ + the relocation. */ if (! howto->partial_inplace) addend = rel->r_addend; @@ -4129,9 +4445,9 @@ sh_elf_relocate_section (output_bfd, inf return false; } - addend = bfd_get_32 (input_bfd, contents + rel->r_offset); - msec = sec; - addend = + addend = bfd_get_32 (input_bfd, contents + rel->r_offset); + msec = sec; + addend = _bfd_elf_rel_local_sym (output_bfd, sym, &msec, addend) - relocation; addend += msec->output_section->vma + msec->output_offset; @@ -4162,6 +4478,9 @@ sh_elf_relocate_section (output_bfd, inf if (h->root.type == bfd_link_hash_defined || h->root.type == bfd_link_hash_defweak) { + boolean dyn; + + dyn = htab->root.dynamic_sections_created; sec = h->root.u.def.section; /* In these cases, we don't need the relocation value. We check specially because in some obscure cases @@ -4182,7 +4501,7 @@ sh_elf_relocate_section (output_bfd, inf || r_type == R_SH_GOT_MEDLOW16 || r_type == R_SH_GOT_MEDHI16 || r_type == R_SH_GOT_HI16) - && elf_hash_table (info)->dynamic_sections_created + && WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, info, h) && (! info->shared || (! info->symbolic && h->dynindx != -1) || (h->elf_link_hash_flags @@ -4197,15 +4516,17 @@ sh_elf_relocate_section (output_bfd, inf || (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0) && ((r_type == R_SH_DIR32 - && !(ELF_ST_VISIBILITY (h->other) == STV_INTERNAL - || ELF_ST_VISIBILITY (h->other) == STV_HIDDEN)) + && (h->elf_link_hash_flags + & ELF_LINK_FORCED_LOCAL) == 0) || r_type == R_SH_REL32) && ((input_section->flags & SEC_ALLOC) != 0 /* DWARF will emit R_SH_DIR32 relocations in its sections against symbols defined externally in shared libraries. We can't do anything with them here. */ - || (input_section->flags & SEC_DEBUGGING) != 0))) + || ((input_section->flags & SEC_DEBUGGING) != 0 + && (h->elf_link_hash_flags + & ELF_LINK_HASH_DEF_DYNAMIC) != 0)))) relocation = 0; else if (sec->output_section == NULL) { @@ -4228,14 +4549,17 @@ sh_elf_relocate_section (output_bfd, inf else if (h->root.type == bfd_link_hash_undefweak) relocation = 0; else if (info->shared - && (!info->symbolic || info->allow_shlib_undefined) - && !info->no_undefined) + && (! info->symbolic || info->allow_shlib_undefined) + && ! info->no_undefined + && ELF_ST_VISIBILITY (h->other) == STV_DEFAULT) relocation = 0; else { if (! ((*info->callbacks->undefined_symbol) (info, h->root.root.string, input_bfd, - input_section, rel->r_offset, true))) + input_section, rel->r_offset, + (!info->shared || info->no_undefined + || ELF_ST_VISIBILITY (h->other))))) return false; relocation = 0; } @@ -4416,8 +4740,7 @@ sh_elf_relocate_section (output_bfd, inf procedure linkage table. */ if (h == NULL - || ELF_ST_VISIBILITY (h->other) == STV_INTERNAL - || ELF_ST_VISIBILITY (h->other) == STV_HIDDEN + || (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) || ! info->shared || info->symbolic || h->dynindx == -1 @@ -4427,12 +4750,8 @@ sh_elf_relocate_section (output_bfd, inf /* Relocation is to the entry for this symbol in the global offset table extension for the procedure linkage table. */ - if (sgotplt == NULL) - { - sgotplt = bfd_get_section_by_name (dynobj, ".got.plt"); - BFD_ASSERT (sgotplt != NULL); - } + BFD_ASSERT (sgotplt != NULL); relocation = (sgotplt->output_offset + ((h->plt.offset / elf_sh_sizeof_plt (info) - 1 + 3) * 4)); @@ -4455,15 +4774,13 @@ sh_elf_relocate_section (output_bfd, inf #endif /* Relocation is to the entry for this symbol in the global offset table. */ - if (sgot == NULL) - { - sgot = bfd_get_section_by_name (dynobj, ".got"); - BFD_ASSERT (sgot != NULL); - } + + BFD_ASSERT (sgot != NULL); if (h != NULL) { bfd_vma off; + boolean dyn; off = h->got.offset; #ifdef INCLUDE_SHMEDIA @@ -4477,11 +4794,11 @@ sh_elf_relocate_section (output_bfd, inf #endif BFD_ASSERT (off != (bfd_vma) -1); - if (! elf_hash_table (info)->dynamic_sections_created + dyn = htab->root.dynamic_sections_created; + if (! WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, info, h) || (info->shared && (info->symbolic || h->dynindx == -1 - || ELF_ST_VISIBILITY (h->other) == STV_INTERNAL - || ELF_ST_VISIBILITY (h->other) == STV_HIDDEN) + || (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL)) && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR))) { /* This is actually a static link, or it is a @@ -4585,7 +4902,7 @@ sh_elf_relocate_section (output_bfd, inf } #ifdef GOT_BIAS - relocation -= GOT_BIAS; + relocation -= GOT_BIAS; #endif goto final_link_relocate; @@ -4600,11 +4917,7 @@ sh_elf_relocate_section (output_bfd, inf /* Relocation is relative to the start of the global offset table. */ - if (sgot == NULL) - { - sgot = bfd_get_section_by_name (dynobj, ".got"); - BFD_ASSERT (sgot != NULL); - } + BFD_ASSERT (sgot != NULL); /* Note that sgot->output_offset is not involved in this calculation. We always want the start of .got. If we @@ -4630,12 +4943,7 @@ sh_elf_relocate_section (output_bfd, inf #endif /* Use global offset table as symbol value. */ - if (sgot == NULL) - { - sgot = bfd_get_section_by_name (dynobj, ".got"); - BFD_ASSERT (sgot != NULL); - } - + BFD_ASSERT (sgot != NULL); relocation = sgot->output_section->vma; #ifdef GOT_BIAS @@ -4661,8 +4969,7 @@ sh_elf_relocate_section (output_bfd, inf if (h == NULL) goto final_link_relocate; - if (ELF_ST_VISIBILITY (h->other) == STV_INTERNAL - || ELF_ST_VISIBILITY (h->other) == STV_HIDDEN) + if (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) goto final_link_relocate; if (h->plt.offset == (bfd_vma) -1) @@ -4673,12 +4980,7 @@ sh_elf_relocate_section (output_bfd, inf goto final_link_relocate; } - if (splt == NULL) - { - splt = bfd_get_section_by_name (dynobj, ".plt"); - BFD_ASSERT (splt != NULL); - } - + BFD_ASSERT (splt != NULL); relocation = (splt->output_section->vma + splt->output_offset + h->plt.offset); @@ -4872,6 +5174,11 @@ sh_elf_gc_mark_hook (sec, info, rel, h, break; default: +#ifdef INCLUDE_SHMEDIA + while (h->root.type == bfd_link_hash_indirect + && h->root.u.i.link) + h = (struct elf_link_hash_entry *) h->root.u.i.link; +#endif switch (h->root.type) { case bfd_link_hash_defined: @@ -4896,18 +5203,194 @@ sh_elf_gc_mark_hook (sec, info, rel, h, static boolean sh_elf_gc_sweep_hook (abfd, info, sec, relocs) - bfd *abfd ATTRIBUTE_UNUSED; - struct bfd_link_info *info ATTRIBUTE_UNUSED; - asection *sec ATTRIBUTE_UNUSED; - const Elf_Internal_Rela *relocs ATTRIBUTE_UNUSED; + bfd *abfd; + struct bfd_link_info *info; + asection *sec; + const Elf_Internal_Rela *relocs; { - /* We use got and plt entries for sh, but it would seem that the - existing SH code does no sort of reference counting or whatnot on - its GOT and PLT entries, so it is not possible to garbage collect - them at this time. */ + Elf_Internal_Shdr *symtab_hdr; + struct elf_link_hash_entry **sym_hashes; + bfd_signed_vma *local_got_refcounts; + const Elf_Internal_Rela *rel, *relend; + unsigned long r_symndx; + struct elf_link_hash_entry *h; + struct elf_sh_link_hash_entry *eh; + + elf_section_data (sec)->local_dynrel = NULL; + + symtab_hdr = &elf_tdata (abfd)->symtab_hdr; + sym_hashes = elf_sym_hashes (abfd); + local_got_refcounts = elf_local_got_refcounts (abfd); + + relend = relocs + sec->reloc_count; + for (rel = relocs; rel < relend; rel++) + switch (ELF32_R_TYPE (rel->r_info)) + { + case R_SH_GOT32: + case R_SH_GOTOFF: + case R_SH_GOTPC: +#ifdef INCLUDE_SHMEDIA + case R_SH_GOT_LOW16: + case R_SH_GOT_MEDLOW16: + case R_SH_GOT_MEDHI16: + case R_SH_GOT_HI16: + case R_SH_GOT10BY4: + case R_SH_GOT10BY8: + case R_SH_GOTOFF_LOW16: + case R_SH_GOTOFF_MEDLOW16: + case R_SH_GOTOFF_MEDHI16: + case R_SH_GOTOFF_HI16: + case R_SH_GOTPC_LOW16: + case R_SH_GOTPC_MEDLOW16: + case R_SH_GOTPC_MEDHI16: + case R_SH_GOTPC_HI16: +#endif + r_symndx = ELF32_R_SYM (rel->r_info); + if (r_symndx >= symtab_hdr->sh_info) + { + h = sym_hashes[r_symndx - symtab_hdr->sh_info]; + if (h->got.refcount > 0) + h->got.refcount -= 1; + } + else if (local_got_refcounts != NULL) + { + if (local_got_refcounts[r_symndx] > 0) + local_got_refcounts[r_symndx] -= 1; + } + break; + + case R_SH_DIR32: + case R_SH_REL32: + r_symndx = ELF32_R_SYM (rel->r_info); + if (r_symndx >= symtab_hdr->sh_info) + { + struct elf_sh_link_hash_entry *eh; + struct elf_sh_dyn_relocs **pp; + struct elf_sh_dyn_relocs *p; + + h = sym_hashes[r_symndx - symtab_hdr->sh_info]; + + if (!info->shared && h->plt.refcount > 0) + h->plt.refcount -= 1; + + eh = (struct elf_sh_link_hash_entry *) h; + + for (pp = &eh->dyn_relocs; (p = *pp) != NULL; pp = &p->next) + if (p->sec == sec) + { + if (ELF32_R_TYPE (rel->r_info) == R_SH_REL32) + p->pc_count -= 1; + p->count -= 1; + if (p->count == 0) + *pp = p->next; + break; + } + } + break; + + case R_SH_PLT32: +#ifdef INCLUDE_SHMEDIA + case R_SH_PLT_LOW16: + case R_SH_PLT_MEDLOW16: + case R_SH_PLT_MEDHI16: + case R_SH_PLT_HI16: +#endif + r_symndx = ELF32_R_SYM (rel->r_info); + if (r_symndx >= symtab_hdr->sh_info) + { + h = sym_hashes[r_symndx - symtab_hdr->sh_info]; + if (h->plt.refcount > 0) + h->plt.refcount -= 1; + } + break; + + case R_SH_GOTPLT32: +#ifdef INCLUDE_SHMEDIA + case R_SH_GOTPLT_LOW16: + case R_SH_GOTPLT_MEDLOW16: + case R_SH_GOTPLT_MEDHI16: + case R_SH_GOTPLT_HI16: + case R_SH_GOTPLT10BY4: + case R_SH_GOTPLT10BY8: +#endif + r_symndx = ELF32_R_SYM (rel->r_info); + if (r_symndx >= symtab_hdr->sh_info) + { + h = sym_hashes[r_symndx - symtab_hdr->sh_info]; + eh = (struct elf_sh_link_hash_entry *) h; + if (eh->gotplt_refcount > 0) + { + eh->gotplt_refcount -= 1; + if (h->plt.refcount > 0) + h->plt.refcount -= 1; + } + else if (h->got.refcount > 0) + h->got.refcount -= 1; + } + else if (local_got_refcounts != NULL) + { + if (local_got_refcounts[r_symndx] > 0) + local_got_refcounts[r_symndx] -= 1; + } + break; + + default: + break; + } + return true; } +/* Copy the extra info we tack onto an elf_link_hash_entry. */ + +static void +sh_elf_copy_indirect_symbol (bed, dir, ind) + struct elf_backend_data *bed; + struct elf_link_hash_entry *dir, *ind; +{ + struct elf_sh_link_hash_entry *edir, *eind; + + edir = (struct elf_sh_link_hash_entry *) dir; + eind = (struct elf_sh_link_hash_entry *) ind; + + if (eind->dyn_relocs != NULL) + { + if (edir->dyn_relocs != NULL) + { + struct elf_sh_dyn_relocs **pp; + struct elf_sh_dyn_relocs *p; + + BFD_ASSERT (ind->root.type != bfd_link_hash_indirect); + + /* Add reloc counts against the weak sym to the strong sym + list. Merge any entries against the same section. */ + for (pp = &eind->dyn_relocs; (p = *pp) != NULL; ) + { + struct elf_sh_dyn_relocs *q; + + for (q = edir->dyn_relocs; q != NULL; q = q->next) + if (q->sec == p->sec) + { + q->pc_count += p->pc_count; + q->count += p->count; + *pp = p->next; + break; + } + if (q == NULL) + pp = &p->next; + } + *pp = edir->dyn_relocs; + } + + edir->dyn_relocs = eind->dyn_relocs; + eind->dyn_relocs = NULL; + } + edir->gotplt_refcount = eind->gotplt_refcount; + eind->gotplt_refcount = 0; + + _bfd_elf_link_hash_copy_indirect (bed, dir, ind); +} + /* Look through the relocs for a section during the first phase. Since we don't do .gots or .plts, we just need to consider the virtual table relocs for gc. */ @@ -4921,6 +5404,7 @@ sh_elf_check_relocs (abfd, info, sec, re { Elf_Internal_Shdr *symtab_hdr; struct elf_link_hash_entry **sym_hashes, **sym_hashes_end; + struct elf_sh_link_hash_table *htab; const Elf_Internal_Rela *rel; const Elf_Internal_Rela *rel_end; bfd *dynobj; @@ -4942,7 +5426,8 @@ sh_elf_check_relocs (abfd, info, sec, re if (!elf_bad_symtab (abfd)) sym_hashes_end -= symtab_hdr->sh_info; - dynobj = elf_hash_table (info)->dynobj; + htab = sh_elf_hash_table (info); + dynobj = htab->root.dynobj; local_got_offsets = elf_local_got_offsets (abfd); rel_end = relocs + sec->reloc_count; @@ -4958,7 +5443,7 @@ sh_elf_check_relocs (abfd, info, sec, re h = sym_hashes[r_symndx - symtab_hdr->sh_info]; /* Some relocs require a global offset table. */ - if (dynobj == NULL) + if (htab->sgot == NULL) { switch (ELF32_R_TYPE (rel->r_info)) { @@ -4988,8 +5473,9 @@ sh_elf_check_relocs (abfd, info, sec, re case R_SH_GOTPC_MEDHI16: case R_SH_GOTPC_HI16: #endif - elf_hash_table (info)->dynobj = dynobj = abfd; - if (! _bfd_elf_create_got_section (dynobj, info)) + if (dynobj == NULL) + htab->root.dynobj = dynobj = abfd; + if (! create_got_section (dynobj, info)) return false; break; @@ -4999,16 +5485,16 @@ sh_elf_check_relocs (abfd, info, sec, re } switch (ELF32_R_TYPE (rel->r_info)) - { - /* This relocation describes the C++ object vtable hierarchy. - Reconstruct it for later use during GC. */ + { + /* This relocation describes the C++ object vtable hierarchy. + Reconstruct it for later use during GC. */ case R_SH_GNU_VTINHERIT: if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset)) return false; break; - /* This relocation describes which C++ vtable entries are actually - used. Record for later use during GC. */ + /* This relocation describes which C++ vtable entries are actually + used. Record for later use during GC. */ case R_SH_GNU_VTENTRY: if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend)) return false; @@ -5024,133 +5510,34 @@ sh_elf_check_relocs (abfd, info, sec, re case R_SH_GOT10BY4: case R_SH_GOT10BY8: #endif - /* This symbol requires a global offset table entry. */ - - if (sgot == NULL) - { - sgot = bfd_get_section_by_name (dynobj, ".got"); - BFD_ASSERT (sgot != NULL); - } - - if (srelgot == NULL - && (h != NULL || info->shared)) - { - srelgot = bfd_get_section_by_name (dynobj, ".rela.got"); - if (srelgot == NULL) - { - srelgot = bfd_make_section (dynobj, ".rela.got"); - if (srelgot == NULL - || ! bfd_set_section_flags (dynobj, srelgot, - (SEC_ALLOC - | SEC_LOAD - | SEC_HAS_CONTENTS - | SEC_IN_MEMORY - | SEC_LINKER_CREATED - | SEC_READONLY)) - || ! bfd_set_section_alignment (dynobj, srelgot, 2)) - return false; - } - } - if (h != NULL) - { -#ifdef INCLUDE_SHMEDIA - if (h->type == STT_DATALABEL) - { - struct elf_sh_link_hash_entry *hsh; - - h = (struct elf_link_hash_entry *) h->root.u.i.link; - hsh = (struct elf_sh_link_hash_entry *)h; - if (hsh->datalabel_got_offset != (bfd_vma) -1) - break; - - hsh->datalabel_got_offset = sgot->_raw_size; - } - else - { -#endif - if (h->got.offset != (bfd_vma) -1) - { - /* We have already allocated space in the .got. */ - break; - } - h->got.offset = sgot->_raw_size; -#ifdef INCLUDE_SHMEDIA - } -#endif - - /* Make sure this symbol is output as a dynamic symbol. */ - if (h->dynindx == -1) - { - if (! bfd_elf32_link_record_dynamic_symbol (info, h)) - return false; - } - - srelgot->_raw_size += sizeof (Elf32_External_Rela); - } + h->got.refcount += 1; else { + bfd_signed_vma *local_got_refcounts; + /* This is a global offset table entry for a local - symbol. */ - if (local_got_offsets == NULL) + symbol. */ + local_got_refcounts = elf_local_got_refcounts (abfd); + if (local_got_refcounts == NULL) { bfd_size_type size; - register unsigned int i; size = symtab_hdr->sh_info; - size *= sizeof (bfd_vma); + size *= sizeof (bfd_signed_vma); #ifdef INCLUDE_SHMEDIA /* Reserve space for both the datalabel and codelabel local GOT offsets. */ size *= 2; #endif - local_got_offsets = (bfd_vma *) bfd_alloc (abfd, size); - if (local_got_offsets == NULL) + local_got_refcounts = ((bfd_signed_vma *) + bfd_zalloc (abfd, size)); + if (local_got_refcounts == NULL) return false; - elf_local_got_offsets (abfd) = local_got_offsets; - for (i = 0; i < symtab_hdr->sh_info; i++) - local_got_offsets[i] = (bfd_vma) -1; -#ifdef INCLUDE_SHMEDIA - for (; i < 2 * symtab_hdr->sh_info; i++) - local_got_offsets[i] = (bfd_vma) -1; -#endif - } -#ifdef INCLUDE_SHMEDIA - if ((rel->r_addend & 1) != 0) - { - if (local_got_offsets[symtab_hdr->sh_info - + r_symndx] != (bfd_vma) -1) - { - /* We have already allocated space in the .got. */ - break; - } - local_got_offsets[symtab_hdr->sh_info - + r_symndx] = sgot->_raw_size; - } - else - { -#endif - if (local_got_offsets[r_symndx] != (bfd_vma) -1) - { - /* We have already allocated space in the .got. */ - break; - } - local_got_offsets[r_symndx] = sgot->_raw_size; -#ifdef INCLUDE_SHMEDIA - } -#endif - - if (info->shared) - { - /* If we are generating a shared object, we need to - output a R_SH_RELATIVE reloc so that the dynamic - linker can adjust this GOT entry. */ - srelgot->_raw_size += sizeof (Elf32_External_Rela); + elf_local_got_refcounts (abfd) = local_got_refcounts; } + local_got_refcounts[r_symndx] += 1; } - - sgot->_raw_size += 4; - break; case R_SH_GOTPLT32: @@ -5166,22 +5553,15 @@ sh_elf_check_relocs (abfd, info, sec, re creating a procedure linkage table entry. */ if (h == NULL - || ELF_ST_VISIBILITY (h->other) == STV_INTERNAL - || ELF_ST_VISIBILITY (h->other) == STV_HIDDEN + || (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) || ! info->shared || info->symbolic - || h->dynindx == -1 - || h->got.offset != (bfd_vma) -1) + || h->dynindx == -1) goto force_got; - /* Make sure this symbol is output as a dynamic symbol. */ - if (h->dynindx == -1) - { - if (! bfd_elf32_link_record_dynamic_symbol (info, h)) - return false; - } - h->elf_link_hash_flags |= ELF_LINK_HASH_NEEDS_PLT; + h->plt.refcount += 1; + ((struct elf_sh_link_hash_entry *) h)->gotplt_refcount += 1; break; @@ -5204,18 +5584,20 @@ sh_elf_check_relocs (abfd, info, sec, re if (h == NULL) continue; - if (ELF_ST_VISIBILITY (h->other) == STV_INTERNAL - || ELF_ST_VISIBILITY (h->other) == STV_HIDDEN) + if (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) break; h->elf_link_hash_flags |= ELF_LINK_HASH_NEEDS_PLT; - + h->plt.refcount += 1; break; case R_SH_DIR32: case R_SH_REL32: - if (h != NULL) - h->elf_link_hash_flags |= ELF_LINK_NON_GOT_REF; + if (h != NULL && ! info->shared) + { + h->elf_link_hash_flags |= ELF_LINK_NON_GOT_REF; + h->plt.refcount += 1; + } /* If we are creating a shared library, and this is a reloc against a global symbol, or a non PC relative reloc @@ -5228,15 +5610,35 @@ sh_elf_check_relocs (abfd, info, sec, re possible that DEF_REGULAR is not set now but will be set later (it is never cleared). We account for that possibility below by storing information in the - pcrel_relocs_copied field of the hash table entry. */ - if (info->shared - && (sec->flags & SEC_ALLOC) != 0 - && (ELF32_R_TYPE (rel->r_info) != R_SH_REL32 - || (h != NULL - && (! info->symbolic - || (h->elf_link_hash_flags - & ELF_LINK_HASH_DEF_REGULAR) == 0)))) + dyn_relocs field of the hash table entry. A similar + situation occurs when creating shared libraries and symbol + visibility changes render the symbol local. + + If on the other hand, we are creating an executable, we + may need to keep relocations for symbols satisfied by a + dynamic library if we manage to avoid copy relocs for the + symbol. */ + if ((info->shared + && (sec->flags & SEC_ALLOC) != 0 + && (ELF32_R_TYPE (rel->r_info) != R_SH_REL32 + || (h != NULL + && (! info->symbolic + || h->root.type == bfd_link_hash_defweak + || (h->elf_link_hash_flags + & ELF_LINK_HASH_DEF_REGULAR) == 0)))) + || (! info->shared + && (sec->flags & SEC_ALLOC) != 0 + && h != NULL + && (h->root.type == bfd_link_hash_defweak + || (h->elf_link_hash_flags + & ELF_LINK_HASH_DEF_REGULAR) == 0))) { + struct elf_sh_dyn_relocs *p; + struct elf_sh_dyn_relocs **head; + + if (dynobj == NULL) + htab->root.dynobj = dynobj = abfd; + /* When creating a shared object, we must copy these reloc types into the output file. We create a reloc section in dynobj and make room for this reloc. */ @@ -5272,44 +5674,44 @@ sh_elf_check_relocs (abfd, info, sec, re } if (sec->flags & SEC_READONLY) info->flags |= DF_TEXTREL; + elf_section_data (sec)->sreloc = sreloc; } - sreloc->_raw_size += sizeof (Elf32_External_Rela); - - /* If we are linking with -Bsymbolic, and this is a - global symbol, we count the number of PC relative - relocations we have entered for this symbol, so that - we can discard them again if the symbol is later - defined by a regular object. Note that this function - is only called if we are using an elf_sh linker - hash table, which means that h is really a pointer to - an elf_sh_link_hash_entry. */ - if (h != NULL && info->symbolic - && ELF32_R_TYPE (rel->r_info) == R_SH_REL32) + /* If this is a global symbol, we count the number of + relocations we need for this symbol. */ + if (h != NULL) + head = &((struct elf_sh_link_hash_entry *) h)->dyn_relocs; + else { - struct elf_sh_link_hash_entry *eh; - struct elf_sh_pcrel_relocs_copied *p; + asection *s; - eh = (struct elf_sh_link_hash_entry *) h; + /* Track dynamic relocs needed for local syms too. */ + s = bfd_section_from_r_symndx (abfd, &htab->sym_sec, + sec, r_symndx); + if (s == NULL) + return false; - for (p = eh->pcrel_relocs_copied; p != NULL; p = p->next) - if (p->section == sreloc) - break; + head = ((struct elf_sh_dyn_relocs **) + &elf_section_data (s)->local_dynrel); + } + p = *head; + if (p == NULL || p->sec != sec) + { + bfd_size_type amt = sizeof (*p); + p = ((struct elf_sh_dyn_relocs *) bfd_alloc (dynobj, amt)); if (p == NULL) - { - p = ((struct elf_sh_pcrel_relocs_copied *) - bfd_alloc (dynobj, (bfd_size_type) sizeof *p)); - if (p == NULL) - return false; - p->next = eh->pcrel_relocs_copied; - eh->pcrel_relocs_copied = p; - p->section = sreloc; - p->count = 0; - } - - ++p->count; + return false; + p->next = *head; + *head = p; + p->sec = sec; + p->count = 0; + p->pc_count = 0; } + + p->count += 1; + if (ELF32_R_TYPE (rel->r_info) == R_SH_REL32) + p->pc_count += 1; } break; @@ -5443,9 +5845,11 @@ sh_elf_finish_dynamic_symbol (output_bfd struct elf_link_hash_entry *h; Elf_Internal_Sym *sym; { + struct elf_sh_link_hash_table *htab; bfd *dynobj; - dynobj = elf_hash_table (info)->dynobj; + htab = sh_elf_hash_table (info); + dynobj = htab->root.dynobj; if (h->plt.offset != (bfd_vma) -1) { @@ -5462,9 +5866,9 @@ sh_elf_finish_dynamic_symbol (output_bfd BFD_ASSERT (h->dynindx != -1); - splt = bfd_get_section_by_name (dynobj, ".plt"); - sgot = bfd_get_section_by_name (dynobj, ".got.plt"); - srel = bfd_get_section_by_name (dynobj, ".rela.plt"); + splt = htab->splt; + sgot = htab->sgotplt; + srel = htab->srelplt; BFD_ASSERT (splt != NULL && sgot != NULL && srel != NULL); /* Get the index in the procedure linkage table which @@ -5479,7 +5883,8 @@ sh_elf_finish_dynamic_symbol (output_bfd got_offset = (plt_index + 3) * 4; #ifdef GOT_BIAS - got_offset -= GOT_BIAS; + if (info->shared) + got_offset -= GOT_BIAS; #endif /* Fill in the entry in the procedure linkage table. */ @@ -5500,8 +5905,10 @@ sh_elf_finish_dynamic_symbol (output_bfd (splt->contents + h->plt.offset + elf_sh_plt_symbol_offset (info))); + /* Set bottom bit because its for a branch to SHmedia */ movi_shori_putval (output_bfd, - (splt->output_section->vma + splt->output_offset), + (splt->output_section->vma + splt->output_offset) + | 1, (splt->contents + h->plt.offset + elf_sh_plt_plt0_offset (info))); #else @@ -5540,7 +5947,8 @@ sh_elf_finish_dynamic_symbol (output_bfd } #ifdef GOT_BIAS - got_offset += GOT_BIAS; + if (info->shared) + got_offset += GOT_BIAS; #endif #ifdef INCLUDE_SHMEDIA @@ -5592,21 +6000,23 @@ sh_elf_finish_dynamic_symbol (output_bfd /* This symbol has an entry in the global offset table. Set it up. */ - sgot = bfd_get_section_by_name (dynobj, ".got"); - srel = bfd_get_section_by_name (dynobj, ".rela.got"); + sgot = htab->sgot; + srel = htab->srelgot; BFD_ASSERT (sgot != NULL && srel != NULL); rel.r_offset = (sgot->output_section->vma + sgot->output_offset + (h->got.offset &~ (bfd_vma) 1)); - /* If this is a -Bsymbolic link, and the symbol is defined - locally, we just want to emit a RELATIVE reloc. Likewise if - the symbol was forced to be local because of a version file. + /* If this is a static link, or it is a -Bsymbolic link and the + symbol is defined locally or was forced to be local because + of a version file, we just want to emit a RELATIVE reloc. The entry in the global offset table will already have been initialized in the relocate_section function. */ if (info->shared - && (info->symbolic || h->dynindx == -1) + && (info->symbolic + || h->dynindx == -1 + || (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL)) && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR)) { rel.r_info = ELF32_R_INFO (0, R_SH_RELATIVE); @@ -5668,30 +6078,33 @@ sh_elf_finish_dynamic_sections (output_b bfd *output_bfd; struct bfd_link_info *info; { + struct elf_sh_link_hash_table *htab; bfd *dynobj; asection *sgot; asection *sdyn; - dynobj = elf_hash_table (info)->dynobj; + htab = sh_elf_hash_table (info); + dynobj = htab->root.dynobj; - sgot = bfd_get_section_by_name (dynobj, ".got.plt"); - BFD_ASSERT (sgot != NULL); + sgot = htab->sgotplt; sdyn = bfd_get_section_by_name (dynobj, ".dynamic"); - if (elf_hash_table (info)->dynamic_sections_created) + if (htab->root.dynamic_sections_created) { asection *splt; Elf32_External_Dyn *dyncon, *dynconend; - BFD_ASSERT (sdyn != NULL); + BFD_ASSERT (sgot != NULL && sdyn != NULL); dyncon = (Elf32_External_Dyn *) sdyn->contents; dynconend = (Elf32_External_Dyn *) (sdyn->contents + sdyn->_raw_size); for (; dyncon < dynconend; dyncon++) { Elf_Internal_Dyn dyn; - const char *name; asection *s; +#ifdef INCLUDE_SHMEDIA + const char *name; +#endif bfd_elf32_swap_dyn_in (dynobj, dyncon, &dyn); @@ -5700,21 +6113,43 @@ sh_elf_finish_dynamic_sections (output_b default: break; +#ifdef INCLUDE_SHMEDIA + case DT_INIT: + name = info->init_function; + goto get_sym; + + case DT_FINI: + name = info->fini_function; + get_sym: + if (dyn.d_un.d_val != 0) + { + struct elf_link_hash_entry *h; + + h = elf_link_hash_lookup (&htab->root, name, + false, false, true); + if (h != NULL && (h->other & STO_SH5_ISA32)) + { + dyn.d_un.d_val |= 1; + bfd_elf32_swap_dyn_out (output_bfd, &dyn, dyncon); + } + } + break; +#endif + case DT_PLTGOT: - name = ".got"; + s = htab->sgot->output_section; goto get_vma; case DT_JMPREL: - name = ".rela.plt"; + s = htab->srelplt->output_section; get_vma: - s = bfd_get_section_by_name (output_bfd, name); BFD_ASSERT (s != NULL); dyn.d_un.d_ptr = s->vma; bfd_elf32_swap_dyn_out (output_bfd, &dyn, dyncon); break; case DT_PLTRELSZ: - s = bfd_get_section_by_name (output_bfd, ".rela.plt"); + s = htab->srelplt->output_section; BFD_ASSERT (s != NULL); if (s->_cooked_size != 0) dyn.d_un.d_val = s->_cooked_size; @@ -5733,9 +6168,9 @@ sh_elf_finish_dynamic_sections (output_b the linker script arranges for .rela.plt to follow all other relocation sections, we don't have to worry about changing the DT_RELA entry. */ - s = bfd_get_section_by_name (output_bfd, ".rela.plt"); - if (s != NULL) + if (htab->srelplt != NULL) { + s = htab->srelplt->output_section; if (s->_cooked_size != 0) dyn.d_un.d_val -= s->_cooked_size; else @@ -5747,7 +6182,7 @@ sh_elf_finish_dynamic_sections (output_b } /* Fill in the first entry in the procedure linkage table. */ - splt = bfd_get_section_by_name (dynobj, ".plt"); + splt = htab->splt; if (splt && splt->_raw_size > 0) { if (info->shared) @@ -5793,7 +6228,7 @@ sh_elf_finish_dynamic_sections (output_b } /* Fill in the first three entries in the global offset table. */ - if (sgot->_raw_size > 0) + if (sgot && sgot->_raw_size > 0) { if (sdyn == NULL) bfd_put_32 (output_bfd, (bfd_vma) 0, sgot->contents); @@ -5803,9 +6238,9 @@ sh_elf_finish_dynamic_sections (output_b sgot->contents); bfd_put_32 (output_bfd, (bfd_vma) 0, sgot->contents + 4); bfd_put_32 (output_bfd, (bfd_vma) 0, sgot->contents + 8); - } - elf_section_data (sgot->output_section)->this_hdr.sh_entsize = 4; + elf_section_data (sgot->output_section)->this_hdr.sh_entsize = 4; + } return true; } @@ -5853,11 +6288,11 @@ sh_elf_reloc_type_class (rela) #define bfd_elf32_bfd_merge_private_bfd_data \ sh_elf_merge_private_data -#define elf_backend_gc_mark_hook sh_elf_gc_mark_hook -#define elf_backend_gc_sweep_hook sh_elf_gc_sweep_hook -#define elf_backend_check_relocs sh_elf_check_relocs - -#define elf_backend_can_gc_sections 1 +#define elf_backend_gc_mark_hook sh_elf_gc_mark_hook +#define elf_backend_gc_sweep_hook sh_elf_gc_sweep_hook +#define elf_backend_check_relocs sh_elf_check_relocs +#define elf_backend_copy_indirect_symbol \ + sh_elf_copy_indirect_symbol #define elf_backend_create_dynamic_sections \ sh_elf_create_dynamic_sections #define bfd_elf32_bfd_link_hash_table_create \ @@ -5872,9 +6307,15 @@ sh_elf_reloc_type_class (rela) sh_elf_finish_dynamic_sections #define elf_backend_reloc_type_class sh_elf_reloc_type_class +#define elf_backend_can_gc_sections 1 +#define elf_backend_can_refcount 1 #define elf_backend_want_got_plt 1 #define elf_backend_plt_readonly 1 #define elf_backend_want_plt_sym 0 #define elf_backend_got_header_size 12 #define elf_backend_plt_header_size PLT_ENTRY_SIZE + +#ifndef ELF32_SH_C_INCLUDED #include "elf32-target.h" +#endif + diff -uprN binutils-2.13.90.0.4/bfd/elf32-sh64-lin.c binutils-2.13.90.0.10/bfd/elf32-sh64-lin.c --- binutils-2.13.90.0.4/bfd/elf32-sh64-lin.c Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/bfd/elf32-sh64-lin.c Wed Oct 9 21:09:41 2002 @@ -0,0 +1,29 @@ +/* Hitachi SH specific support for 64-bit Linux + Copyright 2000 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. */ + +#define TARGET_BIG_SYM bfd_elf32_sh64blin_vec +#define TARGET_BIG_NAME "elf32-sh64big-linux" +#define TARGET_LITTLE_SYM bfd_elf32_sh64lin_vec +#define TARGET_LITTLE_NAME "elf32-sh64-linux" +#define ELF_ARCH bfd_arch_sh +#define ELF_MACHINE_CODE EM_SH +#define ELF_MAXPAGESIZE 0x10000 +#define elf_symbol_leading_char 0 + +#include "elf32-sh64.c" diff -uprN binutils-2.13.90.0.4/bfd/elf32-shqnx.c binutils-2.13.90.0.10/bfd/elf32-shqnx.c --- binutils-2.13.90.0.4/bfd/elf32-shqnx.c Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/bfd/elf32-shqnx.c Fri Sep 27 08:33:09 2002 @@ -0,0 +1,31 @@ +/* Hitachi SH QNX specific support for 32-bit ELF + Copyright 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. */ + +#define ELF32_SH_C_INCLUDED +#include "elf32-sh.c" + +#include "elf32-qnx.h" + +#undef TARGET_LITTLE_SYM +#define TARGET_LITTLE_SYM bfd_elf32_shlqnx_vec +#undef TARGET_BIG_SYM +#define TARGET_BIG_SYM bfd_elf32_shqnx_vec + +#include "elf32-target.h" + diff -uprN binutils-2.13.90.0.4/bfd/elf32-sparc.c binutils-2.13.90.0.10/bfd/elf32-sparc.c --- binutils-2.13.90.0.4/bfd/elf32-sparc.c Mon Jul 29 08:19:16 2002 +++ binutils-2.13.90.0.10/bfd/elf32-sparc.c Fri Sep 27 08:33:09 2002 @@ -1281,7 +1281,6 @@ elf32_sparc_relocate_section (output_bfd off &= ~1; else { - bfd_put_32 (output_bfd, relocation, sgot->contents + off); if (info->shared) { @@ -1297,7 +1296,8 @@ elf32_sparc_relocate_section (output_bfd + sgot->output_offset + off); outrel.r_info = ELF32_R_INFO (0, R_SPARC_RELATIVE); - outrel.r_addend = 0; + outrel.r_addend = relocation; + relocation = 0; bfd_elf32_swap_reloca_out (output_bfd, &outrel, (((Elf32_External_Rela *) srelgot->contents) @@ -1305,6 +1305,7 @@ elf32_sparc_relocate_section (output_bfd ++srelgot->reloc_count; } + bfd_put_32 (output_bfd, relocation, sgot->contents + off); local_got_offsets[r_symndx] |= 1; } } @@ -1810,14 +1811,21 @@ elf32_sparc_finish_dynamic_symbol (outpu if (info->shared && (info->symbolic || h->dynindx == -1) && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR)) - rela.r_info = ELF32_R_INFO (0, R_SPARC_RELATIVE); + { + asection *sec = h->root.u.def.section; + rela.r_info = ELF32_R_INFO (0, R_SPARC_RELATIVE); + rela.r_addend = (h->root.u.def.value + + sec->output_section->vma + + sec->output_offset); + } else { - bfd_put_32 (output_bfd, (bfd_vma) 0, sgot->contents + h->got.offset); rela.r_info = ELF32_R_INFO (h->dynindx, R_SPARC_GLOB_DAT); + rela.r_addend = 0; } - rela.r_addend = 0; + bfd_put_32 (output_bfd, (bfd_vma) 0, + sgot->contents + (h->got.offset &~ (bfd_vma) 1)); bfd_elf32_swap_reloca_out (output_bfd, &rela, ((Elf32_External_Rela *) srela->contents + srela->reloc_count)); diff -uprN binutils-2.13.90.0.4/bfd/elf32-v850.c binutils-2.13.90.0.10/bfd/elf32-v850.c --- binutils-2.13.90.0.4/bfd/elf32-v850.c Mon Jul 29 08:19:16 2002 +++ binutils-2.13.90.0.10/bfd/elf32-v850.c Fri Sep 27 08:33:09 2002 @@ -2,24 +2,24 @@ Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. -This file is part of BFD, the Binary File Descriptor library. + 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 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. */ /* XXX FIXME: This code is littered with 32bit int, 16bit short, 8bit char - dependencies. As is the gas & simulator code or the v850. */ + dependencies. As is the gas & simulator code for the v850. */ #include "bfd.h" #include "sysdep.h" @@ -87,6 +87,12 @@ static asection * v850_elf_gc_mark_hook PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *, struct elf_link_hash_entry *, Elf_Internal_Sym *)); +static bfd_reloc_status_type v850_elf_ignore_reloc + PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); +static boolean v850_elf_relax_delete_bytes + PARAMS ((bfd *, asection *, bfd_vma, bfd_vma, int)); +static boolean v850_elf_relax_section + PARAMS ((bfd *, asection *, struct bfd_link_info *, boolean *)); /* Note: It is REQUIRED that the 'type' value of each entry in this array match the index of the entry in the array. */ @@ -467,6 +473,51 @@ static reloc_howto_type v850_elf_howto_t 0, /* dst_mask */ false), /* pcrel_offset */ + /* Indicates a .longcall pseudo-op. The compiler will generate a .longcall + pseudo-op when it finds a function call which can be relaxed. */ + HOWTO (R_V850_LONGCALL, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 32, /* bitsize */ + true, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + v850_elf_ignore_reloc, /* special_function */ + "R_V850_LONGCALL", /* name */ + false, /* partial_inplace */ + 0, /* src_mask */ + 0, /* dst_mask */ + true), /* pcrel_offset */ + + /* Indicates a .longjump pseudo-op. The compiler will generate a + .longjump pseudo-op when it finds a branch which can be relaxed. */ + HOWTO (R_V850_LONGJUMP, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 32, /* bitsize */ + true, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + v850_elf_ignore_reloc, /* special_function */ + "R_V850_LONGJUMP", /* name */ + false, /* partial_inplace */ + 0, /* src_mask */ + 0, /* dst_mask */ + true), /* pcrel_offset */ + + HOWTO (R_V850_ALIGN, /* type */ + 0, /* rightshift */ + 1, /* size (0 = byte, 1 = short, 2 = long) */ + 0, /* bitsize */ + false, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_unsigned, /* complain_on_overflow */ + v850_elf_ignore_reloc, /* special_function */ + "R_V850_ALIGN", /* name */ + false, /* partial_inplace */ + 0, /* src_mask */ + 0, /* dst_mask */ + true), /* pcrel_offset */ }; /* Map BFD reloc types to V850 ELF reloc types. */ @@ -481,31 +532,34 @@ struct v850_elf_reloc_map static const struct v850_elf_reloc_map v850_elf_reloc_map[] = { - { BFD_RELOC_NONE, R_V850_NONE }, - { BFD_RELOC_V850_9_PCREL, R_V850_9_PCREL }, - { BFD_RELOC_V850_22_PCREL, R_V850_22_PCREL }, - { BFD_RELOC_HI16_S, R_V850_HI16_S }, - { BFD_RELOC_HI16, R_V850_HI16 }, - { BFD_RELOC_LO16, R_V850_LO16 }, - { BFD_RELOC_32, R_V850_32 }, - { BFD_RELOC_16, R_V850_16 }, - { BFD_RELOC_8, R_V850_8 }, - { BFD_RELOC_V850_SDA_16_16_OFFSET, R_V850_SDA_16_16_OFFSET }, - { BFD_RELOC_V850_SDA_15_16_OFFSET, R_V850_SDA_15_16_OFFSET }, - { BFD_RELOC_V850_ZDA_16_16_OFFSET, R_V850_ZDA_16_16_OFFSET }, - { BFD_RELOC_V850_ZDA_15_16_OFFSET, R_V850_ZDA_15_16_OFFSET }, - { BFD_RELOC_V850_TDA_6_8_OFFSET, R_V850_TDA_6_8_OFFSET }, - { BFD_RELOC_V850_TDA_7_8_OFFSET, R_V850_TDA_7_8_OFFSET }, - { BFD_RELOC_V850_TDA_7_7_OFFSET, R_V850_TDA_7_7_OFFSET }, - { BFD_RELOC_V850_TDA_16_16_OFFSET, R_V850_TDA_16_16_OFFSET }, + { BFD_RELOC_NONE, R_V850_NONE }, + { BFD_RELOC_V850_9_PCREL, R_V850_9_PCREL }, + { BFD_RELOC_V850_22_PCREL, R_V850_22_PCREL }, + { BFD_RELOC_HI16_S, R_V850_HI16_S }, + { BFD_RELOC_HI16, R_V850_HI16 }, + { BFD_RELOC_LO16, R_V850_LO16 }, + { BFD_RELOC_32, R_V850_32 }, + { BFD_RELOC_16, R_V850_16 }, + { BFD_RELOC_8, R_V850_8 }, + { BFD_RELOC_V850_SDA_16_16_OFFSET, R_V850_SDA_16_16_OFFSET }, + { BFD_RELOC_V850_SDA_15_16_OFFSET, R_V850_SDA_15_16_OFFSET }, + { BFD_RELOC_V850_ZDA_16_16_OFFSET, R_V850_ZDA_16_16_OFFSET }, + { BFD_RELOC_V850_ZDA_15_16_OFFSET, R_V850_ZDA_15_16_OFFSET }, + { BFD_RELOC_V850_TDA_6_8_OFFSET, R_V850_TDA_6_8_OFFSET }, + { BFD_RELOC_V850_TDA_7_8_OFFSET, R_V850_TDA_7_8_OFFSET }, + { BFD_RELOC_V850_TDA_7_7_OFFSET, R_V850_TDA_7_7_OFFSET }, + { BFD_RELOC_V850_TDA_16_16_OFFSET, R_V850_TDA_16_16_OFFSET }, { BFD_RELOC_V850_TDA_4_5_OFFSET, R_V850_TDA_4_5_OFFSET }, { BFD_RELOC_V850_TDA_4_4_OFFSET, R_V850_TDA_4_4_OFFSET }, { BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET, R_V850_SDA_16_16_SPLIT_OFFSET }, { BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET, R_V850_ZDA_16_16_SPLIT_OFFSET }, { BFD_RELOC_V850_CALLT_6_7_OFFSET, R_V850_CALLT_6_7_OFFSET }, { BFD_RELOC_V850_CALLT_16_16_OFFSET, R_V850_CALLT_16_16_OFFSET }, - { BFD_RELOC_VTABLE_INHERIT, R_V850_GNU_VTINHERIT }, - { BFD_RELOC_VTABLE_ENTRY, R_V850_GNU_VTENTRY }, + { BFD_RELOC_VTABLE_INHERIT, R_V850_GNU_VTINHERIT }, + { BFD_RELOC_VTABLE_ENTRY, R_V850_GNU_VTENTRY }, + { BFD_RELOC_V850_LONGCALL, R_V850_LONGCALL }, + { BFD_RELOC_V850_LONGJUMP, R_V850_LONGJUMP }, + { BFD_RELOC_V850_ALIGN, R_V850_ALIGN }, }; @@ -1277,10 +1331,6 @@ v850_elf_reloc (abfd, reloc, symbol, dat reloc->address += isection->output_offset; return bfd_reloc_ok; } -#if 0 - else if (obfd != NULL) - return bfd_reloc_continue; -#endif /* Catch relocs involving undefined symbols. */ if (bfd_is_und_section (symbol->section) @@ -1297,6 +1347,9 @@ v850_elf_reloc (abfd, reloc, symbol, dat /* Work out which section the relocation is targetted at and the initial relocation command value. */ + if (reloc->howto->pc_relative == true) + return bfd_reloc_ok; + /* Get symbol value. (Common symbols are special.) */ if (bfd_is_com_section (symbol->section)) relocation = 0; @@ -1335,6 +1388,26 @@ v850_elf_reloc (abfd, reloc, symbol, dat reloc->addend = relocation; return bfd_reloc_ok; } + +/* This function is used for relocs which are only used + for relaxing, which the linker should otherwise ignore. */ + +static bfd_reloc_status_type +v850_elf_ignore_reloc (abfd, reloc_entry, symbol, data, input_section, + output_bfd, error_message) + bfd * abfd ATTRIBUTE_UNUSED; + arelent * reloc_entry; + asymbol * symbol ATTRIBUTE_UNUSED; + PTR data ATTRIBUTE_UNUSED; + asection * input_section; + bfd * output_bfd; + char ** error_message ATTRIBUTE_UNUSED; +{ + if (output_bfd != NULL) + reloc_entry->address += input_section->output_offset; + + return bfd_reloc_ok; +} static boolean v850_elf_is_local_label_name (abfd, name) @@ -1345,12 +1418,17 @@ v850_elf_is_local_label_name (abfd, name || (name[0] == '_' && name[1] == '.' && name[2] == 'L' && name[3] == '_')); } +/* We overload some of the bfd_reloc error codes for own purposes. */ +#define bfd_reloc_gp_not_found bfd_reloc_other +#define bfd_reloc_ep_not_found bfd_reloc_continue +#define bfd_reloc_ctbp_not_found (bfd_reloc_dangerous + 1) + /* Perform a relocation as part of a final link. */ static bfd_reloc_status_type v850_elf_final_link_relocate (howto, input_bfd, output_bfd, - input_section, contents, offset, value, - addend, info, sym_sec, is_local) + input_section, contents, offset, value, + addend, info, sym_sec, is_local) reloc_howto_type * howto; bfd * input_bfd; bfd * output_bfd ATTRIBUTE_UNUSED; @@ -1419,7 +1497,7 @@ v850_elf_final_link_relocate (howto, inp h = bfd_link_hash_lookup (info->hash, "__gp", false, false, true); if (h == (struct bfd_link_hash_entry *) NULL || h->type != bfd_link_hash_defined) - return bfd_reloc_other; + return bfd_reloc_gp_not_found; gp = (h->u.def.value + h->u.def.section->output_section->vma @@ -1444,8 +1522,7 @@ v850_elf_final_link_relocate (howto, inp h = bfd_link_hash_lookup (info->hash, "__ep", false, false, true); if (h == (struct bfd_link_hash_entry *) NULL || h->type != bfd_link_hash_defined) - /* Actually this indicates that __ep could not be found. */ - return bfd_reloc_continue; + return bfd_reloc_ep_not_found; ep = (h->u.def.value + h->u.def.section->output_section->vma @@ -1464,8 +1541,7 @@ v850_elf_final_link_relocate (howto, inp h = bfd_link_hash_lookup (info->hash, "__ctbp", false, false, true); if (h == (struct bfd_link_hash_entry *) NULL || h->type != bfd_link_hash_defined) - /* Actually this indicates that __ctbp could not be found. */ - return bfd_reloc_dangerous + 1; + return bfd_reloc_ctbp_not_found; ctbp = (h->u.def.value + h->u.def.section->output_section->vma @@ -1486,7 +1562,7 @@ v850_elf_final_link_relocate (howto, inp h = bfd_link_hash_lookup (info->hash, "__ctbp", false, false, true); if (h == (struct bfd_link_hash_entry *) NULL || h->type != bfd_link_hash_defined) - return (bfd_reloc_dangerous + 1); + return bfd_reloc_ctbp_not_found; ctbp = (h->u.def.value + h->u.def.section->output_section->vma @@ -1500,6 +1576,9 @@ v850_elf_final_link_relocate (howto, inp case R_V850_NONE: case R_V850_GNU_VTINHERIT: case R_V850_GNU_VTENTRY: + case R_V850_LONGCALL: + case R_V850_LONGJUMP: + case R_V850_ALIGN: return bfd_reloc_ok; default: @@ -1682,15 +1761,15 @@ v850_elf_relocate_section (output_bfd, i msg = _("internal error: dangerous relocation"); goto common_error; - case bfd_reloc_other: + case bfd_reloc_gp_not_found: msg = _("could not locate special linker symbol __gp"); goto common_error; - case bfd_reloc_continue: + case bfd_reloc_ep_not_found: msg = _("could not locate special linker symbol __ep"); goto common_error; - case (bfd_reloc_dangerous + 1): + case bfd_reloc_ctbp_not_found: msg = _("could not locate special linker symbol __ctbp"); goto common_error; @@ -1768,9 +1847,12 @@ v850_elf_object_p (abfd) switch (elf_elfheader (abfd)->e_flags & EF_V850_ARCH) { default: - case E_V850_ARCH: (void) bfd_default_set_arch_mach (abfd, bfd_arch_v850, 0); break; - case E_V850E_ARCH: (void) bfd_default_set_arch_mach (abfd, bfd_arch_v850, bfd_mach_v850e); break; - case E_V850EA_ARCH: (void) bfd_default_set_arch_mach (abfd, bfd_arch_v850, bfd_mach_v850ea); break; + case E_V850_ARCH: + bfd_default_set_arch_mach (abfd, bfd_arch_v850, bfd_mach_v850); + break; + case E_V850E_ARCH: + bfd_default_set_arch_mach (abfd, bfd_arch_v850, bfd_mach_v850e); + break; } return true; } @@ -1786,10 +1868,9 @@ v850_elf_final_write_processing (abfd, l switch (bfd_get_mach (abfd)) { - default: - case 0: val = E_V850_ARCH; break; - case bfd_mach_v850e: val = E_V850E_ARCH; break; - case bfd_mach_v850ea: val = E_V850EA_ARCH; break; + default: + case bfd_mach_v850: val = E_V850_ARCH; break; + case bfd_mach_v850e: val = E_V850E_ARCH; break; } elf_elfheader (abfd)->e_flags &=~ EF_V850_ARCH; @@ -1882,7 +1963,6 @@ v850_elf_print_private_bfd_data (abfd, p default: case E_V850_ARCH: fprintf (file, _("v850 architecture")); break; case E_V850E_ARCH: fprintf (file, _("v850e architecture")); break; - case E_V850EA_ARCH: fprintf (file, _("v850ea architecture")); break; } fputc ('\n', file); @@ -2166,6 +2246,875 @@ v850_elf_fake_sections (abfd, hdr, sec) return true; } + +/* Delete some bytes from a section while relaxing. */ + +static boolean +v850_elf_relax_delete_bytes (abfd, sec, addr, toaddr, count) + bfd * abfd; + asection * sec; + bfd_vma addr; + bfd_vma toaddr; + int count; +{ + Elf_Internal_Shdr * symtab_hdr; + Elf32_External_Sym * extsyms; + Elf32_External_Sym * esym; + Elf32_External_Sym * esymend; + int index; + unsigned int sec_shndx; + bfd_byte * contents; + Elf_Internal_Rela * irel; + Elf_Internal_Rela * irelend; + struct elf_link_hash_entry * sym_hash; + Elf_Internal_Shdr * shndx_hdr; + Elf_External_Sym_Shndx * shndx; + + symtab_hdr = &elf_tdata (abfd)->symtab_hdr; + extsyms = (Elf32_External_Sym *) symtab_hdr->contents; + + sec_shndx = _bfd_elf_section_from_bfd_section (abfd, sec); + + contents = elf_section_data (sec)->this_hdr.contents; + + /* The deletion must stop at the next ALIGN reloc for an alignment + power larger than the number of bytes we are deleting. */ + + /* Actually delete the bytes. */ +#if (DEBUG_RELAX & 2) + fprintf (stderr, "relax_delete: contents: sec: %s %p .. %p %x\n", + sec->name, addr, toaddr, count ); +#endif + memmove (contents + addr, contents + addr + count, + toaddr - addr - count); + memset (contents + toaddr-count, 0, count); + + /* Adjust all the relocs. */ + irel = elf_section_data (sec)->relocs; + irelend = irel + sec->reloc_count; + shndx_hdr = &elf_tdata (abfd)->symtab_shndx_hdr; + shndx = (Elf_External_Sym_Shndx *) shndx_hdr->contents; + + for (; irel < irelend; irel++) + { + bfd_vma raddr, paddr, symval; + Elf_Internal_Sym isym; + + /* Get the new reloc address. */ + raddr = irel->r_offset; + if ((raddr >= (addr + count) && raddr < toaddr)) + irel->r_offset -= count; + + if (raddr >= addr && raddr < addr + count) + { + irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info), + (int) R_V850_NONE); + continue; + } + + if (ELF32_R_TYPE (irel->r_info) == (int) R_V850_ALIGN) + continue; + + bfd_elf32_swap_symbol_in (abfd, + extsyms + ELF32_R_SYM (irel->r_info), + shndx ? shndx + ELF32_R_SYM (irel->r_info) : NULL, + & isym); + + if (isym.st_shndx != sec_shndx) + continue; + + /* Get the value of the symbol referred to by the reloc. */ + if (ELF32_R_SYM (irel->r_info) < symtab_hdr->sh_info) + { + symval = isym.st_value; +#if (DEBUG_RELAX & 2) + { + char * name = bfd_elf_string_from_elf_section + (abfd, symtab_hdr->sh_link, isym.st_name); + fprintf (stderr, + "relax_delete: local: sec: %s, sym: %s (%d), value: %x + %x + %x addend %x\n", + sec->name, name, isym.st_name, + sec->output_section->vma, sec->output_offset, + isym.st_value, irel->r_addend); + } +#endif + } + else + { + unsigned long indx; + struct elf_link_hash_entry * h; + + /* An external symbol. */ + indx = ELF32_R_SYM (irel->r_info) - symtab_hdr->sh_info; + + h = elf_sym_hashes (abfd) [indx]; + BFD_ASSERT (h != NULL); + + symval = h->root.u.def.value; +#if (DEBUG_RELAX & 2) + fprintf (stderr, + "relax_delete: defined: sec: %s, name: %s, value: %x + %x + %x addend %x\n", + sec->name, h->root.root.string, h->root.u.def.value, + sec->output_section->vma, sec->output_offset, irel->r_addend); +#endif + } + + paddr = symval + irel->r_addend; + + if ( (symval >= addr + count && symval < toaddr) + && (paddr < addr + count || paddr >= toaddr)) + irel->r_addend += count; + else if ( (symval < addr + count || symval >= toaddr) + && (paddr >= addr + count && paddr < toaddr)) + irel->r_addend -= count; + } + + /* Adjust the local symbols defined in this section. */ + esym = extsyms; + esymend = esym + symtab_hdr->sh_info; + + for (; esym < esymend; esym++, shndx = (shndx ? shndx + 1 : NULL)) + { + Elf_Internal_Sym isym; + + bfd_elf32_swap_symbol_in (abfd, esym, shndx, & isym); + + if (isym.st_shndx == sec_shndx + && isym.st_value >= addr + count + && isym.st_value < toaddr) + { + isym.st_value -= count; + + if (isym.st_value + isym.st_size >= toaddr) + isym.st_size += count; + + bfd_elf32_swap_symbol_out (abfd, & isym, shndx, esym); + } + else if (isym.st_shndx == sec_shndx + && isym.st_value < addr + count) + { + if (isym.st_value+isym.st_size >= addr + count + && isym.st_value+isym.st_size < toaddr) + isym.st_size -= count; + + if (isym.st_value >= addr + && isym.st_value < addr + count) + isym.st_value = addr; + + bfd_elf32_swap_symbol_out (abfd, & isym, shndx, esym); + } + } + + /* Now adjust the global symbols defined in this section. */ + esym = extsyms + symtab_hdr->sh_info; + esymend = extsyms + (symtab_hdr->sh_size / sizeof (Elf32_External_Sym)); + + for (index = 0; esym < esymend; esym ++, index ++) + { + Elf_Internal_Sym isym; + + bfd_elf32_swap_symbol_in (abfd, esym, shndx, & isym); + sym_hash = elf_sym_hashes (abfd) [index]; + + if (isym.st_shndx == sec_shndx + && ((sym_hash)->root.type == bfd_link_hash_defined + || (sym_hash)->root.type == bfd_link_hash_defweak) + && (sym_hash)->root.u.def.section == sec + && (sym_hash)->root.u.def.value >= addr + count + && (sym_hash)->root.u.def.value < toaddr) + { + if ((sym_hash)->root.u.def.value + isym.st_size >= toaddr) + { + isym.st_size += count; + bfd_elf32_swap_symbol_out (abfd, & isym, shndx, esym); + } + + (sym_hash)->root.u.def.value -= count; + } + else if (isym.st_shndx == sec_shndx + && ((sym_hash)->root.type == bfd_link_hash_defined + || (sym_hash)->root.type == bfd_link_hash_defweak) + && (sym_hash)->root.u.def.section == sec + && (sym_hash)->root.u.def.value < addr + count) + { + if ((sym_hash)->root.u.def.value+isym.st_size >= addr + count + && (sym_hash)->root.u.def.value+isym.st_size < toaddr) + isym.st_size -= count; + + if ((sym_hash)->root.u.def.value >= addr + && (sym_hash)->root.u.def.value < addr + count) + (sym_hash)->root.u.def.value = addr; + + bfd_elf32_swap_symbol_out (abfd, & isym, shndx, esym); + } + + if (shndx) + ++ shndx; + } + + return true; +} + +#define NOP_OPCODE (0x0000) +#define MOVHI 0x0640 /* 4byte */ +#define MOVHI_MASK 0x07e0 +#define MOVHI_R1(insn) ((insn) & 0x1f) /* 4byte */ +#define MOVHI_R2(insn) ((insn) >> 11) +#define MOVEA 0x0620 /* 2byte */ +#define MOVEA_MASK 0x07e0 +#define MOVEA_R1(insn) ((insn) & 0x1f) +#define MOVEA_R2(insn) ((insn) >> 11) +#define JARL_4 0x00040780 /* 4byte */ +#define JARL_4_MASK 0xFFFF07FF +#define JARL_R2(insn) (int)(((insn) & (~JARL_4_MASK)) >> 11) +#define ADD_I 0x0240 /* 2byte */ +#define ADD_I_MASK 0x07e0 +#define ADD_I5(insn) ((((insn) & 0x001f) << 11) >> 11) /* 2byte */ +#define ADD_R2(insn) ((insn) >> 11) +#define JMP_R 0x0060 /* 2byte */ +#define JMP_R_MASK 0xFFE0 +#define JMP_R1(insn) ((insn) & 0x1f) + +static boolean +v850_elf_relax_section (abfd, sec, link_info, again) + bfd * abfd; + asection * sec; + struct bfd_link_info * link_info; + boolean * again; +{ + Elf_Internal_Shdr * symtab_hdr; + Elf_Internal_Rela * internal_relocs; + Elf_Internal_Rela * irel; + Elf_Internal_Rela * irelend; + Elf_Internal_Rela * irelalign = NULL; + Elf_Internal_Sym * isymbuf = NULL; + bfd_byte * contents = NULL; + bfd_vma addr = 0; + bfd_vma toaddr; + int align_pad_size = 0; + boolean result = true; + + * again = false; + + if (link_info->relocateable + || (sec->flags & SEC_RELOC) == 0 + || sec->reloc_count == 0) + return true; + + /* If this is the first time we have been called + for this section, initialize the cooked size. */ + if (sec->_cooked_size == 0) + sec->_cooked_size = sec->_raw_size; + + symtab_hdr = & elf_tdata (abfd)->symtab_hdr; + + internal_relocs = (_bfd_elf32_link_read_relocs + (abfd, sec, (PTR) NULL, (Elf_Internal_Rela *) NULL, + link_info->keep_memory)); + if (internal_relocs == NULL) + goto error_return; + + irelend = internal_relocs + sec->reloc_count; + + while (addr < sec->_cooked_size) + { + toaddr = sec->_cooked_size; + + for (irel = internal_relocs; irel < irelend; irel ++) + if (ELF32_R_TYPE (irel->r_info) == (int) R_V850_ALIGN + && irel->r_offset > addr + && irel->r_offset < toaddr) + toaddr = irel->r_offset; + +#ifdef DEBUG_RELAX + fprintf (stderr, "relax region 0x%x to 0x%x align pad %d\n", + addr, toaddr, align_pad_size); +#endif + if (irelalign) + { + bfd_vma alignto; + bfd_vma alignmoveto; + + alignmoveto = BFD_ALIGN (addr - align_pad_size, 1 << irelalign->r_addend); + alignto = BFD_ALIGN (addr, 1 << irelalign->r_addend); + + if (alignmoveto < alignto) + { + unsigned int i; + + align_pad_size = alignto - alignmoveto; +#ifdef DEBUG_RELAX + fprintf (stderr, "relax move region 0x%x to 0x%x delete size 0x%x\n", + alignmoveto, toaddr, align_pad_size); +#endif + if (!v850_elf_relax_delete_bytes (abfd, sec, alignmoveto, + toaddr, align_pad_size)) + goto error_return; + + for (i = BFD_ALIGN (toaddr - align_pad_size, 1); + (i + 1) < toaddr; i += 2) + bfd_put_16 (abfd, NOP_OPCODE, contents + i); + + addr = alignmoveto; + } + else + align_pad_size = 0; + } + + for (irel = internal_relocs; irel < irelend; irel++) + { + bfd_vma laddr; + bfd_vma addend; + bfd_vma symval; + int insn[5]; + int no_match = -1; + Elf_Internal_Rela * hi_irelfn; + Elf_Internal_Rela * lo_irelfn; + Elf_Internal_Rela * irelcall; + bfd_signed_vma foff; + + if (! (irel->r_offset >= addr && irel->r_offset < toaddr + && (ELF32_R_TYPE (irel->r_info) == (int) R_V850_LONGCALL + || ELF32_R_TYPE (irel->r_info) == (int) R_V850_LONGJUMP))) + continue; + +#ifdef DEBUG_RELAX + fprintf (stderr, "relax check r_info 0x%x r_offset 0x%x r_addend 0x%x\n", + irel->r_info, + irel->r_offset, + irel->r_addend ); +#endif + + /* Get the section contents. */ + if (contents == NULL) + { + if (elf_section_data (sec)->this_hdr.contents != NULL) + contents = elf_section_data (sec)->this_hdr.contents; + else + { + contents = (bfd_byte *) bfd_malloc (sec->_raw_size); + if (contents == NULL) + goto error_return; + + if (! bfd_get_section_contents (abfd, sec, contents, + (file_ptr) 0, sec->_raw_size)) + goto error_return; + } + } + + /* Read this BFD's local symbols if we haven't done so already. */ + if (isymbuf == NULL && symtab_hdr->sh_info != 0) + { + isymbuf = (Elf_Internal_Sym *) symtab_hdr->contents; + if (isymbuf == NULL) + isymbuf = bfd_elf_get_elf_syms (abfd, symtab_hdr, + symtab_hdr->sh_info, 0, + NULL, NULL, NULL); + if (isymbuf == NULL) + goto error_return; + } + + laddr = irel->r_offset; + + if (ELF32_R_TYPE (irel->r_info) == (int) R_V850_LONGCALL) + { + /* Check code for -mlong-calls output. */ + if (laddr + 16 <= (bfd_vma) sec->_raw_size) + { + insn[0] = bfd_get_16 (abfd, contents + laddr); + insn[1] = bfd_get_16 (abfd, contents + laddr + 4); + insn[2] = bfd_get_32 (abfd, contents + laddr + 8); + insn[3] = bfd_get_16 (abfd, contents + laddr + 12); + insn[4] = bfd_get_16 (abfd, contents + laddr + 14); + + if ((insn[0] & MOVHI_MASK) != MOVHI + || MOVHI_R1 (insn[0]) != 0) + no_match = 0; + + if (no_match < 0 + && ((insn[1] & MOVEA_MASK) != MOVEA + || MOVHI_R2 (insn[0]) != MOVEA_R1 (insn[1]))) + no_match = 1; + + if (no_match < 0 + && (insn[2] & JARL_4_MASK) != JARL_4) + no_match = 2; + + if (no_match < 0 + && ((insn[3] & ADD_I_MASK) != ADD_I + || ADD_I5 (insn[3]) != 4 + || JARL_R2 (insn[2]) != ADD_R2 (insn[3]))) + no_match = 3; + + if (no_match < 0 + && ((insn[4] & JMP_R_MASK) != JMP_R + || MOVEA_R2 (insn[1]) != JMP_R1 (insn[4]))) + no_match = 4; + } + else + { + ((*_bfd_error_handler) + ("%s: 0x%lx: warning: R_V850_LONGCALL points to unrecognized insns", + bfd_get_filename (abfd), (unsigned long) irel->r_offset)); + + continue; + } + + if (no_match >= 0) + { + ((*_bfd_error_handler) + ("%s: 0x%lx: warning: R_V850_LONGCALL points to unrecognized insn 0x%x", + bfd_get_filename (abfd), (unsigned long) irel->r_offset+no_match, insn[no_match])); + + continue; + } + + /* Get the reloc for the address from which the register is + being loaded. This reloc will tell us which function is + actually being called. */ + for (hi_irelfn = internal_relocs; hi_irelfn < irelend; hi_irelfn ++) + if (hi_irelfn->r_offset == laddr + 2 + && ELF32_R_TYPE (hi_irelfn->r_info) + == (int) R_V850_HI16_S) + break; + + for (lo_irelfn = internal_relocs; lo_irelfn < irelend; lo_irelfn ++) + if (lo_irelfn->r_offset == laddr + 6 + && ELF32_R_TYPE (lo_irelfn->r_info) + == (int) R_V850_LO16) + break; + + for (irelcall = internal_relocs; irelcall < irelend; irelcall ++) + if (irelcall->r_offset == laddr + 8 + && ELF32_R_TYPE (irelcall->r_info) + == (int) R_V850_22_PCREL) + break; + + if ( hi_irelfn == irelend + || lo_irelfn == irelend + || irelcall == irelend) + { + ((*_bfd_error_handler) + ("%s: 0x%lx: warning: R_V850_LONGCALL points to unrecognized reloc", + bfd_get_filename (abfd), (unsigned long) irel->r_offset )); + + continue; + } + + if (ELF32_R_SYM (irelcall->r_info) < symtab_hdr->sh_info) + { + Elf_Internal_Sym * isym; + + /* A local symbol. */ + isym = isymbuf + ELF32_R_SYM (irelcall->r_info); + + symval = isym->st_value; + } + else + { + unsigned long indx; + struct elf_link_hash_entry * h; + + /* An external symbol. */ + indx = ELF32_R_SYM (irelcall->r_info) - symtab_hdr->sh_info; + h = elf_sym_hashes (abfd)[indx]; + BFD_ASSERT (h != NULL); + + if ( h->root.type != bfd_link_hash_defined + && h->root.type != bfd_link_hash_defweak) + /* This appears to be a reference to an undefined + symbol. Just ignore it--it will be caught by the + regular reloc processing. */ + continue; + + symval = h->root.u.def.value; + } + + if (symval + irelcall->r_addend != irelcall->r_offset + 4) + { + ((*_bfd_error_handler) + ("%s: 0x%lx: warning: R_V850_LONGCALL points to unrecognized reloc 0x%lx", + bfd_get_filename (abfd), (unsigned long) irel->r_offset, irelcall->r_offset )); + + continue; + } + + /* Get the value of the symbol referred to by the reloc. */ + if (ELF32_R_SYM (hi_irelfn->r_info) < symtab_hdr->sh_info) + { + Elf_Internal_Sym * isym; + asection * sym_sec; + + /* A local symbol. */ + isym = isymbuf + ELF32_R_SYM (hi_irelfn->r_info); + + if (isym->st_shndx == SHN_UNDEF) + sym_sec = bfd_und_section_ptr; + else if (isym->st_shndx == SHN_ABS) + sym_sec = bfd_abs_section_ptr; + else if (isym->st_shndx == SHN_COMMON) + sym_sec = bfd_com_section_ptr; + else + sym_sec = bfd_section_from_elf_index (abfd, isym->st_shndx); + symval = (isym->st_value + + sym_sec->output_section->vma + + sym_sec->output_offset); + } + else + { + unsigned long indx; + struct elf_link_hash_entry * h; + + /* An external symbol. */ + indx = ELF32_R_SYM (hi_irelfn->r_info) - symtab_hdr->sh_info; + h = elf_sym_hashes (abfd)[indx]; + BFD_ASSERT (h != NULL); + + if ( h->root.type != bfd_link_hash_defined + && h->root.type != bfd_link_hash_defweak) + /* This appears to be a reference to an undefined + symbol. Just ignore it--it will be caught by the + regular reloc processing. */ + continue; + + symval = (h->root.u.def.value + + h->root.u.def.section->output_section->vma + + h->root.u.def.section->output_offset); + } + + addend = irel->r_addend; + + foff = (symval + addend + - (irel->r_offset + + sec->output_section->vma + + sec->output_offset + + 4)); +#ifdef DEBUG_RELAX + fprintf (stderr, "relax longcall r_offset 0x%x ptr 0x%x symbol 0x%x addend 0x%x distance 0x%x\n", + irel->r_offset, + (irel->r_offset + + sec->output_section->vma + + sec->output_offset), + symval, addend, foff); +#endif + + if (foff < -0x100000 || foff >= 0x100000) + /* After all that work, we can't shorten this function call. */ + continue; + + /* For simplicity of coding, we are going to modify the section + contents, the section relocs, and the BFD symbol table. We + must tell the rest of the code not to free up this + information. It would be possible to instead create a table + of changes which have to be made, as is done in coff-mips.c; + that would be more work, but would require less memory when + the linker is run. */ + elf_section_data (sec)->relocs = internal_relocs; + elf_section_data (sec)->this_hdr.contents = contents; + symtab_hdr->contents = (bfd_byte *) isymbuf; + + /* Replace the long call with a jarl. */ + irel->r_info = ELF32_R_INFO (ELF32_R_SYM (hi_irelfn->r_info), R_V850_22_PCREL); + + addend = 0; + + if (ELF32_R_SYM (hi_irelfn->r_info) < symtab_hdr->sh_info) + /* If this needs to be changed because of future relaxing, + it will be handled here like other internal IND12W + relocs. */ + bfd_put_32 (abfd, + 0x00000780 | (JARL_R2 (insn[2])<<11) | ((addend << 16) & 0xffff) | ((addend >> 16) & 0xf), + contents + irel->r_offset); + else + /* We can't fully resolve this yet, because the external + symbol value may be changed by future relaxing. + We let the final link phase handle it. */ + bfd_put_32 (abfd, 0x00000780 | (JARL_R2 (insn[2])<<11), + contents + irel->r_offset); + + hi_irelfn->r_info = + ELF32_R_INFO (ELF32_R_SYM (hi_irelfn->r_info), R_V850_NONE); + lo_irelfn->r_info = + ELF32_R_INFO (ELF32_R_SYM (lo_irelfn->r_info), R_V850_NONE); + irelcall->r_info = + ELF32_R_INFO (ELF32_R_SYM (irelcall->r_info), R_V850_NONE); + + if (! v850_elf_relax_delete_bytes (abfd, sec, + irel->r_offset + 4, toaddr, 12)) + goto error_return; + + align_pad_size += 12; + } + else if (ELF32_R_TYPE (irel->r_info) == (int) R_V850_LONGJUMP) + { + /* Check code for -mlong-jumps output. */ + if (laddr + 10 <= (bfd_vma) sec->_raw_size) + { + insn[0] = bfd_get_16 (abfd, contents + laddr); + insn[1] = bfd_get_16 (abfd, contents + laddr + 4); + insn[2] = bfd_get_16 (abfd, contents + laddr + 8); + + if ((insn[0] & MOVHI_MASK) != MOVHI + || MOVHI_R1 (insn[0]) != 0) + no_match = 0; + + if (no_match < 0 + && ((insn[1] & MOVEA_MASK) != MOVEA + || MOVHI_R2 (insn[0]) != MOVEA_R1 (insn[1]))) + no_match = 1; + + if (no_match < 0 + && ((insn[2] & JMP_R_MASK) != JMP_R + || MOVEA_R2 (insn[1]) != JMP_R1 (insn[2]))) + no_match = 4; + } + else + { + ((*_bfd_error_handler) + ("%s: 0x%lx: warning: R_V850_LONGJUMP points to unrecognized insns", + bfd_get_filename (abfd), (unsigned long) irel->r_offset)); + + continue; + } + + if (no_match >= 0) + { + ((*_bfd_error_handler) + ("%s: 0x%lx: warning: R_V850_LONGJUMP points to unrecognized insn 0x%x", + bfd_get_filename (abfd), (unsigned long) irel->r_offset+no_match, insn[no_match])); + + continue; + } + + /* Get the reloc for the address from which the register is + being loaded. This reloc will tell us which function is + actually being called. */ + for (hi_irelfn = internal_relocs; hi_irelfn < irelend; hi_irelfn ++) + if (hi_irelfn->r_offset == laddr + 2 + && ELF32_R_TYPE (hi_irelfn->r_info) == (int) R_V850_HI16_S) + break; + + for (lo_irelfn = internal_relocs; lo_irelfn < irelend; lo_irelfn ++) + if (lo_irelfn->r_offset == laddr + 6 + && ELF32_R_TYPE (lo_irelfn->r_info) == (int) R_V850_LO16) + break; + + if ( hi_irelfn == irelend + || lo_irelfn == irelend) + { + ((*_bfd_error_handler) + ("%s: 0x%lx: warning: R_V850_LONGJUMP points to unrecognized reloc", + bfd_get_filename (abfd), (unsigned long) irel->r_offset )); + + continue; + } + + /* Get the value of the symbol referred to by the reloc. */ + if (ELF32_R_SYM (hi_irelfn->r_info) < symtab_hdr->sh_info) + { + Elf_Internal_Sym * isym; + asection * sym_sec; + + /* A local symbol. */ + isym = isymbuf + ELF32_R_SYM (hi_irelfn->r_info); + + if (isym->st_shndx == SHN_UNDEF) + sym_sec = bfd_und_section_ptr; + else if (isym->st_shndx == SHN_ABS) + sym_sec = bfd_abs_section_ptr; + else if (isym->st_shndx == SHN_COMMON) + sym_sec = bfd_com_section_ptr; + else + sym_sec = bfd_section_from_elf_index (abfd, isym->st_shndx); + symval = (isym->st_value + + sym_sec->output_section->vma + + sym_sec->output_offset); +#ifdef DEBUG_RELAX + { + char * name = bfd_elf_string_from_elf_section + (abfd, symtab_hdr->sh_link, isym->st_name); + + fprintf (stderr, "relax long jump local: sec: %s, sym: %s (%d), value: %x + %x + %x addend %x\n", + sym_sec->name, name, isym->st_name, + sym_sec->output_section->vma, + sym_sec->output_offset, + isym->st_value, irel->r_addend); + } +#endif + } + else + { + unsigned long indx; + struct elf_link_hash_entry * h; + + /* An external symbol. */ + indx = ELF32_R_SYM (irel->r_info) - symtab_hdr->sh_info; + h = elf_sym_hashes (abfd)[indx]; + BFD_ASSERT (h != NULL); + + if ( h->root.type != bfd_link_hash_defined + && h->root.type != bfd_link_hash_defweak) + /* This appears to be a reference to an undefined + symbol. Just ignore it--it will be caught by the + regular reloc processing. */ + continue; + + symval = (h->root.u.def.value + + h->root.u.def.section->output_section->vma + + h->root.u.def.section->output_offset); +#ifdef DEBUG_RELAX + fprintf (stderr, + "relax longjump defined: sec: %s, name: %s, value: %x + %x + %x addend %x\n", + sec->name, h->root.root.string, h->root.u.def.value, + sec->output_section->vma, sec->output_offset, irel->r_addend); +#endif + } + + addend = irel->r_addend; + + foff = (symval + addend + - (irel->r_offset + + sec->output_section->vma + + sec->output_offset + + 4)); +#ifdef DEBUG_RELAX + fprintf (stderr, "relax longjump r_offset 0x%x ptr 0x%x symbol 0x%x addend 0x%x distance 0x%x\n", + irel->r_offset, + (irel->r_offset + + sec->output_section->vma + + sec->output_offset), + symval, addend, foff); +#endif + if (foff < -0x100000 || foff >= 0x100000) + /* After all that work, we can't shorten this function call. */ + continue; + + /* For simplicity of coding, we are going to modify the section + contents, the section relocs, and the BFD symbol table. We + must tell the rest of the code not to free up this + information. It would be possible to instead create a table + of changes which have to be made, as is done in coff-mips.c; + that would be more work, but would require less memory when + the linker is run. */ + elf_section_data (sec)->relocs = internal_relocs; + elf_section_data (sec)->this_hdr.contents = contents; + symtab_hdr->contents = (bfd_byte *) isymbuf; + + if (foff < -0x100 || foff >= 0x100) + { + /* Replace the long jump with a jr. */ + + irel->r_info = + ELF32_R_INFO (ELF32_R_SYM (irel->r_info), R_V850_22_PCREL); + + irel->r_addend = addend; + addend = 0; + + if (ELF32_R_SYM (hi_irelfn->r_info) < symtab_hdr->sh_info) + /* If this needs to be changed because of future relaxing, + it will be handled here like other internal IND12W + relocs. */ + bfd_put_32 (abfd, + 0x00000780 | ((addend << 15) & 0xffff0000) | ((addend >> 17) & 0xf), + contents + irel->r_offset); + else + /* We can't fully resolve this yet, because the external + symbol value may be changed by future relaxing. + We let the final link phase handle it. */ + bfd_put_32 (abfd, 0x00000780, contents + irel->r_offset); + + hi_irelfn->r_info = + ELF32_R_INFO (ELF32_R_SYM (hi_irelfn->r_info), R_V850_NONE); + lo_irelfn->r_info = + ELF32_R_INFO (ELF32_R_SYM (lo_irelfn->r_info), R_V850_NONE); + if (!v850_elf_relax_delete_bytes (abfd, sec, + irel->r_offset + 4, toaddr, 6)) + goto error_return; + + align_pad_size += 6; + } + else + { + /* Replace the long jump with a br. */ + + irel->r_info = + ELF32_R_INFO (ELF32_R_SYM (irel->r_info), R_V850_9_PCREL); + + irel->r_addend = addend; + addend = 0; + + if (ELF32_R_SYM (hi_irelfn->r_info) < symtab_hdr->sh_info) + /* If this needs to be changed because of future relaxing, + it will be handled here like other internal IND12W + relocs. */ + bfd_put_16 (abfd, + 0x0585 | ((addend << 10) & 0xf800) | ((addend << 3) & 0x0070), + contents + irel->r_offset); + else + /* We can't fully resolve this yet, because the external + symbol value may be changed by future relaxing. + We let the final link phase handle it. */ + bfd_put_16 (abfd, 0x0585, contents + irel->r_offset); + + hi_irelfn->r_info = + ELF32_R_INFO (ELF32_R_SYM (hi_irelfn->r_info), R_V850_NONE); + lo_irelfn->r_info = + ELF32_R_INFO (ELF32_R_SYM (lo_irelfn->r_info), R_V850_NONE); + if (!v850_elf_relax_delete_bytes (abfd, sec, + irel->r_offset + 2, toaddr, 8)) + goto error_return; + + align_pad_size += 8; + } + } + } + + irelalign = NULL; + for (irel = internal_relocs; irel < irelend; irel++) + { + if (ELF32_R_TYPE (irel->r_info) == (int) R_V850_ALIGN + && irel->r_offset == toaddr) + { + irel->r_offset -= align_pad_size; + + if (irelalign == NULL || irelalign->r_addend > irel->r_addend) + irelalign = irel; + } + } + + addr = toaddr; + } + + if (!irelalign) + { +#ifdef DEBUG_RELAX + fprintf (stderr, "relax pad %d shorten %d -> %d\n", + align_pad_size, + sec->_cooked_size, + sec->_cooked_size - align_pad_size); +#endif + sec->_cooked_size -= align_pad_size; + } + + finish: + if (internal_relocs != NULL + && elf_section_data (sec)->relocs != internal_relocs) + free (internal_relocs); + + if (contents != NULL + && elf_section_data (sec)->this_hdr.contents != (unsigned char *) contents) + free (contents); + + if (isymbuf != NULL + && symtab_hdr->contents != (bfd_byte *) isymbuf) + free (isymbuf); + + return result; + + error_return: + result = false; + goto finish; +} #define TARGET_LITTLE_SYM bfd_elf32_v850_vec #define TARGET_LITTLE_NAME "elf32-v850" @@ -2198,6 +3147,7 @@ v850_elf_fake_sections (abfd, hdr, sec) #define bfd_elf32_bfd_merge_private_bfd_data v850_elf_merge_private_bfd_data #define bfd_elf32_bfd_set_private_flags v850_elf_set_private_flags #define bfd_elf32_bfd_print_private_bfd_data v850_elf_print_private_bfd_data +#define bfd_elf32_bfd_relax_section v850_elf_relax_section #define elf_symbol_leading_char '_' diff -uprN binutils-2.13.90.0.4/bfd/elf32-vax.c binutils-2.13.90.0.10/bfd/elf32-vax.c --- binutils-2.13.90.0.4/bfd/elf32-vax.c Mon Jul 29 08:19:16 2002 +++ binutils-2.13.90.0.10/bfd/elf32-vax.c Wed Oct 2 10:17:19 2002 @@ -417,6 +417,11 @@ struct elf_vax_link_hash_table static boolean elf_vax_discard_copies PARAMS ((struct elf_vax_link_hash_entry *, PTR)); +/* Declare this now that the above structures are defined. */ + +static boolean elf_vax_instantiate_got_entries + PARAMS ((struct elf_link_hash_entry *, PTR)); + /* Traverse an VAX ELF linker hash table. */ #define elf_vax_link_hash_traverse(table, func, info) \ @@ -567,7 +572,6 @@ elf_vax_check_relocs (abfd, info, sec, r bfd *dynobj; Elf_Internal_Shdr *symtab_hdr; struct elf_link_hash_entry **sym_hashes; - bfd_signed_vma *local_got_refcounts; const Elf_Internal_Rela *rel; const Elf_Internal_Rela *rel_end; asection *sgot; @@ -580,7 +584,6 @@ elf_vax_check_relocs (abfd, info, sec, r dynobj = elf_hash_table (info)->dynobj; symtab_hdr = &elf_tdata (abfd)->symtab_hdr; sym_hashes = elf_sym_hashes (abfd); - local_got_refcounts = elf_local_got_refcounts (abfd); sgot = NULL; srelgot = NULL; @@ -651,18 +654,6 @@ elf_vax_check_relocs (abfd, info, sec, r { h->got.refcount = 1; eh->got_addend = rel->r_addend; - - /* Make sure this symbol is output as a dynamic symbol. */ - if (h->dynindx == -1) - { - if (!bfd_elf32_link_record_dynamic_symbol (info, h)) - return false; - } - - /* Allocate space in the .got section. */ - sgot->_raw_size += 4; - /* Allocate relocation space. */ - srelgot->_raw_size += sizeof (Elf32_External_Rela); } else { @@ -900,25 +891,18 @@ elf_vax_gc_sweep_hook (abfd, info, sec, { Elf_Internal_Shdr *symtab_hdr; struct elf_link_hash_entry **sym_hashes; - bfd_signed_vma *local_got_refcounts; const Elf_Internal_Rela *rel, *relend; unsigned long r_symndx; struct elf_link_hash_entry *h; bfd *dynobj; - asection *sgot; - asection *srelgot; symtab_hdr = &elf_tdata (abfd)->symtab_hdr; sym_hashes = elf_sym_hashes (abfd); - local_got_refcounts = elf_local_got_refcounts (abfd); dynobj = elf_hash_table (info)->dynobj; if (dynobj == NULL) return true; - sgot = bfd_get_section_by_name (dynobj, ".got"); - srelgot = bfd_get_section_by_name (dynobj, ".rela.got"); - relend = relocs + sec->reloc_count; for (rel = relocs; rel < relend; rel++) { @@ -930,29 +914,7 @@ elf_vax_gc_sweep_hook (abfd, info, sec, { h = sym_hashes[r_symndx - symtab_hdr->sh_info]; if (h->got.refcount > 0) - { - --h->got.refcount; - if (h->got.refcount == 0) - { - /* We don't need the .got entry any more. */ - sgot->_raw_size -= 4; - srelgot->_raw_size -= sizeof (Elf32_External_Rela); - } - } - } - else if (local_got_refcounts != NULL) - { - if (local_got_refcounts[r_symndx] > 0) - { - --local_got_refcounts[r_symndx]; - if (local_got_refcounts[r_symndx] == 0) - { - /* We don't need the .got entry any more. */ - sgot->_raw_size -= 4; - if (info->shared) - srelgot->_raw_size -= sizeof (Elf32_External_Rela); - } - } + --h->got.refcount; } break; @@ -1219,8 +1181,15 @@ elf_vax_size_dynamic_sections (output_bf fill them in in the relocate_section routine. */ if (info->shared && info->symbolic) elf_vax_link_hash_traverse (elf_vax_hash_table (info), - elf_vax_discard_copies, - (PTR) NULL); + elf_vax_discard_copies, + (PTR) NULL); + + /* If this is a -Bsymbolic shared link or a static link, we need to + discard all the got entries we've recorded. Otherwise, we need to + instantiate (allocate space for them). */ + elf_link_hash_traverse (elf_hash_table (info), + elf_vax_instantiate_got_entries, + (PTR) info); /* The check_relocs and adjust_dynamic_symbol entry points have determined the sizes of the various dynamic sections. Allocate @@ -1390,6 +1359,60 @@ elf_vax_discard_copies (h, ignore) return true; } +/* This function is called via elf_link_hash_traverse. It looks for entries + that have GOT or PLT (.GOT) references. If creating a static object or a + shared object with -Bsymbolic, it resets the reference count back to 0 + and sets the offset to -1 so normal PC32 relocation will be done. If + creating a shared object or executable, space in the .got and .rela.got + will be reserved for the symbol. */ + +/*ARGSUSED*/ +static boolean +elf_vax_instantiate_got_entries (h, infoptr) + struct elf_link_hash_entry *h; + PTR infoptr; +{ + struct bfd_link_info *info = (struct bfd_link_info *) infoptr; + bfd *dynobj; + asection *sgot; + asection *srelgot; + + /* We don't care about non-GOT (and non-PLT) entries. */ + if (h->got.refcount <= 0 && h->plt.refcount <= 0) + return true; + + dynobj = elf_hash_table (info)->dynobj; + if (dynobj == NULL) + return true; + + sgot = bfd_get_section_by_name (dynobj, ".got"); + srelgot = bfd_get_section_by_name (dynobj, ".rela.got"); + + if (!elf_hash_table (info)->dynamic_sections_created + || (info->shared && info->symbolic)) + { + h->got.refcount = 0; + h->got.offset = (bfd_vma) -1; + h->plt.refcount = 0; + h->plt.offset = (bfd_vma) -1; + } + else if (h->got.refcount > 0) + { + /* Make sure this symbol is output as a dynamic symbol. */ + if (h->dynindx == -1) + { + if (!bfd_elf32_link_record_dynamic_symbol (info, h)) + return false; + } + + /* Allocate space in the .got and .rela.got sections. */ + sgot->_raw_size += 4; + srelgot->_raw_size += sizeof (Elf32_External_Rela); + } + + return true; +} + /* Relocate an VAX ELF section. */ static boolean @@ -1537,8 +1560,7 @@ elf_vax_relocate_section (output_bfd, in case R_VAX_GOT32: /* Relocation is to the address of the entry for this symbol in the global offset table. */ - if (h != NULL - && strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0) + if (h == NULL || h->got.offset == (bfd_vma) -1) break; /* Relocation is the offset of the entry for this symbol in @@ -1547,18 +1569,6 @@ elf_vax_relocate_section (output_bfd, in { bfd_vma off; - if (!elf_hash_table (info)->dynamic_sections_created - || (h == NULL) - || (info->shared - && info->symbolic - && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR))) - { - /* This is actually a static link, or it is a -Bsymbolic link - and the symbol is defined locally or there is no symbol. - Change the GOT32 entry to a PC32 entry. */ - break; - } - if (sgot == NULL) { sgot = bfd_get_section_by_name (dynobj, ".got"); @@ -1568,6 +1578,7 @@ elf_vax_relocate_section (output_bfd, in BFD_ASSERT (h != NULL); off = h->got.offset; BFD_ASSERT (off != (bfd_vma) -1); + BFD_ASSERT (off < sgot->_raw_size); if (info->shared && h->dynindx == -1 @@ -1596,15 +1607,12 @@ elf_vax_relocate_section (output_bfd, in } relocation = sgot->output_offset + off; - /* Neither GOT relocation uses the addend. */ + /* The GOT relocation uses the addend. */ rel->r_addend = 0; - if (r_type == R_VAX_GOT32) - { - /* Change the reference to be indirect */ - contents[rel->r_offset - 1] |= 0x10; - relocation += sgot->output_section->vma; - } + /* Change the reference to be indirect. */ + contents[rel->r_offset - 1] |= 0x10; + relocation += sgot->output_section->vma; } break; @@ -1828,11 +1836,11 @@ elf_vax_relocate_section (output_bfd, in break; } - /* VAX PCREL relocations are from the end of relocation, not the start */ + /* VAX PCREL relocations are from the end of relocation, not the start. + So subtract the difference from the relocation amount since we can't + add it to the offset. */ if (howto->pc_relative && howto->pcrel_offset) - { - relocation -= bfd_get_reloc_size(howto); - } + relocation -= bfd_get_reloc_size(howto); r = _bfd_final_link_relocate (howto, input_bfd, input_section, contents, rel->r_offset, diff -uprN binutils-2.13.90.0.4/bfd/elf64-alpha-fbsd.c binutils-2.13.90.0.10/bfd/elf64-alpha-fbsd.c --- binutils-2.13.90.0.4/bfd/elf64-alpha-fbsd.c Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/bfd/elf64-alpha-fbsd.c Fri Sep 27 08:33:09 2002 @@ -0,0 +1,56 @@ +/* Alpha specific support for 64-bit ELF on FreeBSD. + Copyright 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. */ + +#define TARGET_LITTLE_SYM bfd_elf64_alpha_freebsd_vec +#define TARGET_LITTLE_NAME "elf64-alpha-freebsd" +#define ELF_ARCH bfd_arch_alpha +#define ELF_MACHINE_CODE EM_ALPHA +#define ELF_MAXPAGESIZE 0x10000 + +#include "bfd.h" +#include "sysdep.h" +#include "elf-bfd.h" + +/* The kernel recognizes executables as valid only if they carry a + "FreeBSD" label in the ELF header. So we put this label on all + executables and (for simplicity) also all other object files. */ + +static void elf_alpha_post_process_headers + PARAMS ((bfd *, struct bfd_link_info *)); + +static void +elf_alpha_post_process_headers (abfd, link_info) + bfd * abfd; + struct bfd_link_info * link_info ATTRIBUTE_UNUSED; +{ + Elf_Internal_Ehdr * i_ehdrp; /* ELF file header, internal form. */ + + i_ehdrp = elf_elfheader (abfd); + + /* Put an ABI label supported by FreeBSD >= 4.1. */ + i_ehdrp->e_ident[EI_OSABI] = ELFOSABI_FREEBSD; +#ifdef OLD_FREEBSD_ABI_LABEL + /* The ABI label supported by FreeBSD <= 4.0 is quite nonstandard. */ + memcpy (&i_ehdrp->e_ident[EI_ABIVERSION], "FreeBSD", 8); +#endif +} + +#define elf_backend_post_process_headers elf_alpha_post_process_headers + +#include "elf64-alpha.c" diff -uprN binutils-2.13.90.0.4/bfd/elf64-alpha.c binutils-2.13.90.0.10/bfd/elf64-alpha.c --- binutils-2.13.90.0.4/bfd/elf64-alpha.c Mon Jul 29 08:19:16 2002 +++ binutils-2.13.90.0.10/bfd/elf64-alpha.c Fri Sep 27 08:33:09 2002 @@ -3403,7 +3403,7 @@ elf64_alpha_merge_ind_symbols (hi, dummy { rin = ri->next; for (rs = rsh; rs ; rs = rs->next) - if (ri->rtype == rs->rtype) + if (ri->rtype == rs->rtype && ri->srel == rs->srel) { rs->count += ri->count; goto found_reloc; @@ -5480,7 +5480,7 @@ elf64_alpha_ecoff_debug_swap = /* Use a non-standard hash bucket size of 8. */ -const struct elf_size_info alpha_elf_size_info = +static const struct elf_size_info alpha_elf_size_info = { sizeof (Elf64_External_Ehdr), sizeof (Elf64_External_Phdr), @@ -5509,11 +5509,13 @@ const struct elf_size_info alpha_elf_siz NULL }; +#ifndef ELF_ARCH #define TARGET_LITTLE_SYM bfd_elf64_alpha_vec #define TARGET_LITTLE_NAME "elf64-alpha" #define ELF_ARCH bfd_arch_alpha #define ELF_MACHINE_CODE EM_ALPHA #define ELF_MAXPAGESIZE 0x10000 +#endif /* ELF_ARCH */ #define bfd_elf64_bfd_link_hash_table_create \ elf64_alpha_bfd_link_hash_table_create diff -uprN binutils-2.13.90.0.4/bfd/elf64-mips.c binutils-2.13.90.0.10/bfd/elf64-mips.c --- binutils-2.13.90.0.4/bfd/elf64-mips.c Mon Jul 29 08:19:16 2002 +++ binutils-2.13.90.0.10/bfd/elf64-mips.c Fri Sep 27 08:33:09 2002 @@ -1337,13 +1337,15 @@ mips_elf64_be_swap_reloc_out (abfd, src, mirel.r_offset = src[0].r_offset; BFD_ASSERT(src[0].r_offset == src[1].r_offset); +#if 0 BFD_ASSERT(src[0].r_offset == src[2].r_offset); +#endif mirel.r_type = ELF64_MIPS_R_TYPE (src[0].r_info); mirel.r_sym = ELF64_R_SYM (src[0].r_info); - mirel.r_type2 = ELF64_MIPS_R_TYPE2 (src[1].r_info); + mirel.r_type2 = ELF64_MIPS_R_TYPE (src[1].r_info); mirel.r_ssym = ELF64_MIPS_R_SSYM (src[1].r_info); - mirel.r_type3 = ELF64_MIPS_R_TYPE3 (src[2].r_info); + mirel.r_type3 = ELF64_MIPS_R_TYPE (src[2].r_info); mips_elf64_swap_reloc_out (abfd, &mirel, (Elf64_Mips_External_Rel *) dst); @@ -1369,9 +1371,9 @@ mips_elf64_be_swap_reloca_out (abfd, src BFD_ASSERT(src[1].r_addend == 0); BFD_ASSERT(src[2].r_addend == 0); - mirela.r_type2 = ELF64_MIPS_R_TYPE2 (src[1].r_info); + mirela.r_type2 = ELF64_MIPS_R_TYPE (src[1].r_info); mirela.r_ssym = ELF64_MIPS_R_SSYM (src[1].r_info); - mirela.r_type3 = ELF64_MIPS_R_TYPE3 (src[2].r_info); + mirela.r_type3 = ELF64_MIPS_R_TYPE (src[2].r_info); mips_elf64_swap_reloca_out (abfd, &mirela, (Elf64_Mips_External_Rela *) dst); @@ -1525,7 +1527,7 @@ mips_elf64_final_gp (output_bfd, symbol, if (relocateable) { /* Make up a value. */ - *pgp = symbol->section->output_section->vma + 0x4000; + *pgp = symbol->section->output_section->vma /*+ 0x4000*/; _bfd_set_gp_value (output_bfd, *pgp); } else if (!mips_elf64_assign_gp (output_bfd, pgp)) @@ -2689,8 +2691,6 @@ const struct elf_size_info mips_elf64_si #define elf_backend_may_use_rela_p 1 #define elf_backend_default_use_rela_p 1 -#define elf_backend_ignore_discarded_relocs \ - _bfd_mips_elf_ignore_discarded_relocs #define elf_backend_write_section _bfd_mips_elf_write_section /* We don't set bfd_elf64_bfd_is_local_label_name because the 32-bit diff -uprN binutils-2.13.90.0.4/bfd/elf64-ppc.c binutils-2.13.90.0.10/bfd/elf64-ppc.c --- binutils-2.13.90.0.4/bfd/elf64-ppc.c Thu Aug 8 22:49:55 2002 +++ binutils-2.13.90.0.10/bfd/elf64-ppc.c Tue Oct 8 17:47:53 2002 @@ -1952,7 +1952,8 @@ static boolean create_got_section static boolean ppc64_elf_create_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); static void ppc64_elf_copy_indirect_symbol - PARAMS ((struct elf_link_hash_entry *, struct elf_link_hash_entry *)); + PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *, + struct elf_link_hash_entry *)); static boolean ppc64_elf_check_relocs PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); @@ -2440,7 +2441,8 @@ ppc64_elf_create_dynamic_sections (dynob /* Copy the extra info we tack onto an elf_link_hash_entry. */ static void -ppc64_elf_copy_indirect_symbol (dir, ind) +ppc64_elf_copy_indirect_symbol (bed, dir, ind) + struct elf_backend_data *bed; struct elf_link_hash_entry *dir, *ind; { struct ppc_link_hash_entry *edir, *eind; @@ -2486,7 +2488,7 @@ ppc64_elf_copy_indirect_symbol (dir, ind edir->is_func_descriptor |= eind->is_func_descriptor; edir->is_entry |= eind->is_entry; - _bfd_elf_link_hash_copy_indirect (dir, ind); + _bfd_elf_link_hash_copy_indirect (bed, dir, ind); } /* Set a flag, used by ppc64_elf_gc_mark_hook, on the entry symbol and @@ -3673,12 +3675,16 @@ edit_opd (obfd, info) break; } - if (sym_sec->output_section == bfd_abs_section_ptr) - { - /* OK, we've found a function that's excluded from the - link. */ - need_edit = true; - } + /* opd entries are always for functions defined in the + current input bfd. If the symbol isn't defined in the + input bfd, then we won't be using the function in this + bfd; It must be defined in a linkonce section in another + bfd, or is weak. It's also possible that we are + discarding the function due to a linker script /DISCARD/, + which we test for via the output_section. */ + if (sym_sec->owner != ibfd + || sym_sec->output_section == bfd_abs_section_ptr) + need_edit = true; offset += 24; } @@ -3752,7 +3758,8 @@ edit_opd (obfd, info) sym->st_shndx); } - skip = sym_sec->output_section == bfd_abs_section_ptr; + skip = (sym_sec->owner != ibfd + || sym_sec->output_section == bfd_abs_section_ptr); if (skip) { if (h != NULL) @@ -4462,27 +4469,6 @@ ppc_build_one_stub (gen_entry, in_arg) break; case ppc_stub_plt_call: - /* Build the .glink lazy link call stub. */ - p = htab->sglink->contents + htab->sglink->_cooked_size; - indx = htab->sglink->reloc_count; - if (indx < 0x8000) - { - bfd_put_32 (htab->sglink->owner, LI_R0_0 | indx, p); - p += 4; - } - else - { - bfd_put_32 (htab->sglink->owner, LIS_R0_0 | PPC_HI (indx), p); - p += 4; - bfd_put_32 (htab->sglink->owner, ORI_R0_R0_0 | PPC_LO (indx), p); - p += 4; - } - bfd_put_32 (htab->sglink->owner, - B_DOT | ((htab->sglink->contents - p) & 0x3fffffc), p); - p += 4; - htab->sglink->_cooked_size = p - htab->sglink->contents; - htab->sglink->reloc_count += 1; - /* Do the best we can for shared libraries built without exporting ".foo" for each "foo". This can happen when symbol versioning scripts strip all bar a subset of symbols. */ @@ -5147,6 +5133,8 @@ ppc64_elf_build_stubs (info) if (htab->splt != NULL) { + unsigned int indx; + /* Build the .glink plt call stub. */ plt_r2 = (htab->splt->output_offset + htab->splt->output_section->vma @@ -5154,15 +5142,34 @@ ppc64_elf_build_stubs (info) - TOC_BASE_OFF); p = htab->sglink->contents; p = build_plt_stub (htab->sglink->owner, p, (int) plt_r2, 1); - while (p - htab->sglink->contents < GLINK_CALL_STUB_SIZE) + while (p < htab->sglink->contents + GLINK_CALL_STUB_SIZE) { bfd_put_32 (htab->sglink->owner, NOP, p); p += 4; } - htab->sglink->_cooked_size = p - htab->sglink->contents; - /* Use reloc_count to count entries. */ - htab->sglink->reloc_count = 0; + /* Build the .glink lazy link call stubs. */ + indx = 0; + while (p < htab->sglink->contents + htab->sglink->_raw_size) + { + if (indx < 0x8000) + { + bfd_put_32 (htab->sglink->owner, LI_R0_0 | indx, p); + p += 4; + } + else + { + bfd_put_32 (htab->sglink->owner, LIS_R0_0 | PPC_HI (indx), p); + p += 4; + bfd_put_32 (htab->sglink->owner, ORI_R0_R0_0 | PPC_LO (indx), p); + p += 4; + } + bfd_put_32 (htab->sglink->owner, + B_DOT | ((htab->sglink->contents - p) & 0x3fffffc), p); + indx++; + p += 4; + } + htab->sglink->_cooked_size = p - htab->sglink->contents; } if (htab->sbrlt->_raw_size != 0) @@ -5175,7 +5182,6 @@ ppc64_elf_build_stubs (info) /* Build the stubs as directed by the stub hash table. */ bfd_hash_traverse (&htab->stub_hash_table, ppc_build_one_stub, info); - htab->sglink->reloc_count = 0; for (stub_sec = htab->stub_bfd->sections; stub_sec != NULL; diff -uprN binutils-2.13.90.0.4/bfd/elf64-s390.c binutils-2.13.90.0.10/bfd/elf64-s390.c --- binutils-2.13.90.0.4/bfd/elf64-s390.c Mon Jul 29 08:19:16 2002 +++ binutils-2.13.90.0.10/bfd/elf64-s390.c Fri Sep 27 08:33:09 2002 @@ -40,7 +40,8 @@ static boolean create_got_section static boolean elf_s390_create_dynamic_sections PARAMS((bfd *, struct bfd_link_info *)); static void elf_s390_copy_indirect_symbol - PARAMS ((struct elf_link_hash_entry *, struct elf_link_hash_entry *)); + PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *, + struct elf_link_hash_entry *)); static boolean elf_s390_check_relocs PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); @@ -508,7 +509,8 @@ elf_s390_create_dynamic_sections (dynobj /* Copy the extra info we tack onto an elf_link_hash_entry. */ static void -elf_s390_copy_indirect_symbol (dir, ind) +elf_s390_copy_indirect_symbol (bed, dir, ind) + struct elf_backend_data *bed; struct elf_link_hash_entry *dir, *ind; { struct elf_s390_link_hash_entry *edir, *eind; @@ -550,7 +552,7 @@ elf_s390_copy_indirect_symbol (dir, ind) eind->dyn_relocs = NULL; } - _bfd_elf_link_hash_copy_indirect (dir, ind); + _bfd_elf_link_hash_copy_indirect (bed, dir, ind); } /* Look through the relocs for a section during the first phase, and diff -uprN binutils-2.13.90.0.4/bfd/elf64-sh64-lin.c binutils-2.13.90.0.10/bfd/elf64-sh64-lin.c --- binutils-2.13.90.0.4/bfd/elf64-sh64-lin.c Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/bfd/elf64-sh64-lin.c Wed Oct 9 21:09:41 2002 @@ -0,0 +1,29 @@ +/* Hitachi SH specific support for 64-bit Linux + Copyright 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. */ + +#define TARGET_BIG_SYM bfd_elf64_sh64blin_vec +#define TARGET_BIG_NAME "elf64-sh64big-linux" +#define TARGET_LITTLE_SYM bfd_elf64_sh64lin_vec +#define TARGET_LITTLE_NAME "elf64-sh64-linux" +#define ELF_ARCH bfd_arch_sh +#define ELF_MACHINE_CODE EM_SH +#define ELF_MAXPAGESIZE 0x10000 +#define elf_symbol_leading_char 0 + +#include "elf64-sh64.c" diff -uprN binutils-2.13.90.0.4/bfd/elf64-sh64.c binutils-2.13.90.0.10/bfd/elf64-sh64.c --- binutils-2.13.90.0.4/bfd/elf64-sh64.c Wed Jul 17 11:38:29 2002 +++ binutils-2.13.90.0.10/bfd/elf64-sh64.c Fri Sep 27 08:33:09 2002 @@ -2423,6 +2423,9 @@ sh_elf64_gc_mark_hook (sec, info, rel, h break; default: + while (h->root.type == bfd_link_hash_indirect + && h->root.u.i.link) + h = (struct elf_link_hash_entry *) h->root.u.i.link; switch (h->root.type) { case bfd_link_hash_defined: @@ -3016,7 +3019,7 @@ static const bfd_byte elf_sh64_plt0_entr 0xc8, 0x00, 0x01, 0x10, /* shori (.got.plt >> 16) & 65535, r17 */ 0xc8, 0x00, 0x01, 0x10, /* shori .got.plt & 65535, r17 */ 0x8d, 0x10, 0x09, 0x90, /* ld.q r17, 16, r25 */ - 0x6b, 0xf1, 0x46, 0x00, /* ptabs r17, tr0 */ + 0x6b, 0xf1, 0x66, 0x00, /* ptabs r25, tr0 */ 0x8d, 0x10, 0x05, 0x10, /* ld.q r17, 8, r17 */ 0x44, 0x01, 0xff, 0xf0, /* blink tr0, r63 */ 0x6f, 0xf0, 0xff, 0xf0, /* nop */ @@ -3036,7 +3039,7 @@ static const bfd_byte elf_sh64_plt0_entr 0x10, 0x01, 0x00, 0xc8, /* shori (.got.plt >> 16) & 65535, r17 */ 0x10, 0x01, 0x00, 0xc8, /* shori .got.plt & 65535, r17 */ 0x90, 0x09, 0x10, 0x8d, /* ld.q r17, 16, r25 */ - 0x00, 0x46, 0xf1, 0x6b, /* ptabs r17, tr0 */ + 0x00, 0x66, 0xf1, 0x6b, /* ptabs r25, tr0 */ 0x10, 0x05, 0x10, 0x8d, /* ld.q r17, 8, r17 */ 0xf0, 0xff, 0x01, 0x44, /* blink tr0, r63 */ 0xf0, 0xff, 0xf0, 0x6f, /* nop */ @@ -3062,9 +3065,9 @@ static const bfd_byte elf_sh64_plt_entry 0x6b, 0xf1, 0x66, 0x00, /* ptabs r25, tr0 */ 0x44, 0x01, 0xff, 0xf0, /* blink tr0, r63 */ 0x6f, 0xf0, 0xff, 0xf0, /* nop */ - 0xcc, 0x00, 0x01, 0x90, /* movi .PLT0 >> 16, r25 */ - 0xc8, 0x00, 0x01, 0x90, /* shori .PLT0 & 65535, r25 */ - 0x6b, 0xf1, 0x66, 0x00, /* ptabs r25, tr0 */ + 0xcc, 0x00, 0x01, 0x90, /* movi (.+8-.PLT0) >> 16, r25 */ + 0xc8, 0x00, 0x01, 0x90, /* shori (.+4-.PLT0) & 65535, r25 */ + 0x6b, 0xf5, 0x66, 0x00, /* ptrel r25, tr0 */ 0xcc, 0x00, 0x01, 0x50, /* movi reloc-offset >> 16, r21 */ 0xc8, 0x00, 0x01, 0x50, /* shori reloc-offset & 65535, r21 */ 0x44, 0x01, 0xff, 0xf0, /* blink tr0, r63 */ @@ -3082,9 +3085,9 @@ static const bfd_byte elf_sh64_plt_entry 0x00, 0x66, 0xf1, 0x6b, /* ptabs r25, tr0 */ 0xf0, 0xff, 0x01, 0x44, /* blink tr0, r63 */ 0xf0, 0xff, 0xf0, 0x6f, /* nop */ - 0x90, 0x01, 0x00, 0xcc, /* movi .PLT0 >> 16, r25 */ - 0x90, 0x01, 0x00, 0xc8, /* shori .PLT0 & 65535, r25 */ - 0x00, 0x66, 0xf1, 0x6b, /* ptabs r25, tr0 */ + 0x90, 0x01, 0x00, 0xcc, /* movi (.+8-.PLT0) >> 16, r25 */ + 0x90, 0x01, 0x00, 0xc8, /* shori (.+4-.PLT0) & 65535, r25 */ + 0x00, 0x66, 0xf5, 0x6b, /* ptrel r25, tr0 */ 0x50, 0x01, 0x00, 0xcc, /* movi reloc-offset >> 16, r21 */ 0x50, 0x01, 0x00, 0xc8, /* shori reloc-offset & 65535, r21 */ 0xf0, 0xff, 0x01, 0x44, /* blink tr0, r63 */ @@ -3714,7 +3717,7 @@ sh64_elf64_size_dynamic_sections (output } /* Allocate memory for the section contents. */ - s->contents = (bfd_byte *) bfd_alloc (dynobj, s->_raw_size); + s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->_raw_size); if (s->contents == NULL && s->_raw_size != 0) return false; } @@ -3805,7 +3808,8 @@ sh64_elf64_finish_dynamic_symbol (output The first three are reserved. */ got_offset = (plt_index + 3) * 8; - got_offset -= GOT_BIAS; + if (info->shared) + got_offset -= GOT_BIAS; /* Fill in the entry in the procedure linkage table. */ if (! info->shared) @@ -3824,8 +3828,11 @@ sh64_elf64_finish_dynamic_symbol (output (splt->contents + h->plt.offset + elf_sh64_plt_symbol_offset (info))); + /* Set bottom bit because its for a branch to SHmedia */ movi_shori_putval (output_bfd, - (splt->output_section->vma + splt->output_offset), + -(h->plt.offset + + elf_sh64_plt_plt0_offset (info) + 8) + | 1, (splt->contents + h->plt.offset + elf_sh64_plt_plt0_offset (info))); } @@ -3844,7 +3851,8 @@ sh64_elf64_finish_dynamic_symbol (output + elf_sh64_plt_symbol_offset (info))); } - got_offset += GOT_BIAS; + if (info->shared) + got_offset += GOT_BIAS; movi_shori_putval (output_bfd, plt_index * sizeof (Elf64_External_Rela), @@ -3987,6 +3995,7 @@ sh64_elf64_finish_dynamic_sections (outp Elf_Internal_Dyn dyn; const char *name; asection *s; + struct elf_link_hash_entry *h; bfd_elf64_swap_dyn_in (dynobj, dyncon, &dyn); @@ -3995,6 +4004,25 @@ sh64_elf64_finish_dynamic_sections (outp default: break; + case DT_INIT: + name = info->init_function; + goto get_sym; + + case DT_FINI: + name = info->fini_function; + get_sym: + if (dyn.d_un.d_val != 0) + { + h = elf_link_hash_lookup (elf_hash_table (info), name, + false, false, true); + if (h != NULL && (h->other & STO_SH5_ISA32)) + { + dyn.d_un.d_val |= 1; + bfd_elf64_swap_dyn_out (output_bfd, &dyn, dyncon); + } + } + break; + case DT_PLTGOT: name = ".got"; goto get_vma; diff -uprN binutils-2.13.90.0.4/bfd/elf64-sparc.c binutils-2.13.90.0.10/bfd/elf64-sparc.c --- binutils-2.13.90.0.4/bfd/elf64-sparc.c Mon Jul 29 08:19:16 2002 +++ binutils-2.13.90.0.10/bfd/elf64-sparc.c Fri Sep 27 08:33:09 2002 @@ -2727,11 +2727,12 @@ sparc64_elf_finish_dynamic_symbol (outpu } else { - bfd_put_64 (output_bfd, (bfd_vma) 0, sgot->contents + h->got.offset); rela.r_info = ELF64_R_INFO (h->dynindx, R_SPARC_GLOB_DAT); rela.r_addend = 0; } + bfd_put_64 (output_bfd, (bfd_vma) 0, + sgot->contents + (h->got.offset &~ (bfd_vma) 1)); bfd_elf64_swap_reloca_out (output_bfd, &rela, ((Elf64_External_Rela *) srela->contents + srela->reloc_count)); diff -uprN binutils-2.13.90.0.4/bfd/elf64-x86-64.c binutils-2.13.90.0.10/bfd/elf64-x86-64.c --- binutils-2.13.90.0.4/bfd/elf64-x86-64.c Mon Jul 29 08:19:16 2002 +++ binutils-2.13.90.0.10/bfd/elf64-x86-64.c Wed Oct 2 10:17:19 2002 @@ -40,16 +40,16 @@ static reloc_howto_type x86_64_elf_howto HOWTO(R_X86_64_64, 0, 4, 64, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_X86_64_64", false, MINUS_ONE, MINUS_ONE, false), - HOWTO(R_X86_64_PC32, 0, 4, 32, true, 0, complain_overflow_signed, + HOWTO(R_X86_64_PC32, 0, 2, 32, true, 0, complain_overflow_signed, bfd_elf_generic_reloc, "R_X86_64_PC32", false, 0xffffffff, 0xffffffff, true), - HOWTO(R_X86_64_GOT32, 0, 4, 32, false, 0, complain_overflow_signed, + HOWTO(R_X86_64_GOT32, 0, 2, 32, false, 0, complain_overflow_signed, bfd_elf_generic_reloc, "R_X86_64_GOT32", false, 0xffffffff, 0xffffffff, false), - HOWTO(R_X86_64_PLT32, 0, 4, 32, true, 0, complain_overflow_signed, + HOWTO(R_X86_64_PLT32, 0, 2, 32, true, 0, complain_overflow_signed, bfd_elf_generic_reloc, "R_X86_64_PLT32", false, 0xffffffff, 0xffffffff, true), - HOWTO(R_X86_64_COPY, 0, 4, 32, false, 0, complain_overflow_bitfield, + HOWTO(R_X86_64_COPY, 0, 2, 32, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_X86_64_COPY", false, 0xffffffff, 0xffffffff, false), HOWTO(R_X86_64_GLOB_DAT, 0, 4, 64, false, 0, complain_overflow_bitfield, @@ -61,13 +61,13 @@ static reloc_howto_type x86_64_elf_howto HOWTO(R_X86_64_RELATIVE, 0, 4, 64, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_X86_64_RELATIVE", false, MINUS_ONE, MINUS_ONE, false), - HOWTO(R_X86_64_GOTPCREL, 0, 4, 32, true,0 , complain_overflow_signed, + HOWTO(R_X86_64_GOTPCREL, 0, 2, 32, true, 0, complain_overflow_signed, bfd_elf_generic_reloc, "R_X86_64_GOTPCREL", false, 0xffffffff, 0xffffffff, true), - HOWTO(R_X86_64_32, 0, 4, 32, false, 0, complain_overflow_unsigned, + HOWTO(R_X86_64_32, 0, 2, 32, false, 0, complain_overflow_unsigned, bfd_elf_generic_reloc, "R_X86_64_32", false, 0xffffffff, 0xffffffff, false), - HOWTO(R_X86_64_32S, 0, 4, 32, false, 0, complain_overflow_signed, + HOWTO(R_X86_64_32S, 0, 2, 32, false, 0, complain_overflow_signed, bfd_elf_generic_reloc, "R_X86_64_32S", false, 0xffffffff, 0xffffffff, false), HOWTO(R_X86_64_16, 0, 1, 16, false, 0, complain_overflow_bitfield, @@ -78,6 +78,30 @@ static reloc_howto_type x86_64_elf_howto bfd_elf_generic_reloc, "R_X86_64_8", false, 0xff, 0xff, false), HOWTO(R_X86_64_PC8, 0, 0, 8, true, 0, complain_overflow_signed, bfd_elf_generic_reloc, "R_X86_64_PC8", false, 0xff, 0xff, true), + HOWTO(R_X86_64_DTPMOD64, 0, 4, 64, false, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_X86_64_DTPMOD64", false, MINUS_ONE, + MINUS_ONE, false), + HOWTO(R_X86_64_DTPOFF64, 0, 4, 64, false, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_X86_64_DTPOFF64", false, MINUS_ONE, + MINUS_ONE, false), + HOWTO(R_X86_64_TPOFF64, 0, 4, 64, false, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_X86_64_TPOFF64", false, MINUS_ONE, + MINUS_ONE, false), + HOWTO(R_X86_64_TLSGD, 0, 2, 32, true, 0, complain_overflow_signed, + bfd_elf_generic_reloc, "R_X86_64_TLSGD", false, 0xffffffff, + 0xffffffff, true), + HOWTO(R_X86_64_TLSLD, 0, 2, 32, true, 0, complain_overflow_signed, + bfd_elf_generic_reloc, "R_X86_64_TLSLD", false, 0xffffffff, + 0xffffffff, true), + HOWTO(R_X86_64_DTPOFF32, 0, 2, 32, false, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_X86_64_DTPOFF32", false, 0xffffffff, + 0xffffffff, false), + HOWTO(R_X86_64_GOTTPOFF, 0, 2, 32, true, 0, complain_overflow_signed, + bfd_elf_generic_reloc, "R_X86_64_GOTTPOFF", false, 0xffffffff, + 0xffffffff, true), + HOWTO(R_X86_64_TPOFF32, 0, 2, 32, false, 0, complain_overflow_signed, + bfd_elf_generic_reloc, "R_X86_64_TPOFF32", false, 0xffffffff, + 0xffffffff, false), /* GNU extension to record C++ vtable hierarchy. */ HOWTO (R_X86_64_GNU_VTINHERIT, 0, 4, 0, false, 0, complain_overflow_dont, @@ -114,6 +138,14 @@ static const struct elf_reloc_map x86_64 { BFD_RELOC_16_PCREL, R_X86_64_PC16, }, { BFD_RELOC_8, R_X86_64_8, }, { BFD_RELOC_8_PCREL, R_X86_64_PC8, }, + { BFD_RELOC_X86_64_DTPMOD64, R_X86_64_DTPMOD64, }, + { BFD_RELOC_X86_64_DTPOFF64, R_X86_64_DTPOFF64, }, + { BFD_RELOC_X86_64_TPOFF64, R_X86_64_TPOFF64, }, + { BFD_RELOC_X86_64_TLSGD, R_X86_64_TLSGD, }, + { BFD_RELOC_X86_64_TLSLD, R_X86_64_TLSLD, }, + { BFD_RELOC_X86_64_DTPOFF32, R_X86_64_DTPOFF32, }, + { BFD_RELOC_X86_64_GOTTPOFF, R_X86_64_GOTTPOFF, }, + { BFD_RELOC_X86_64_TPOFF32, R_X86_64_TPOFF32, }, { BFD_RELOC_VTABLE_INHERIT, R_X86_64_GNU_VTINHERIT, }, { BFD_RELOC_VTABLE_ENTRY, R_X86_64_GNU_VTENTRY, }, }; @@ -128,13 +160,18 @@ static boolean elf64_x86_64_grok_psinfo PARAMS ((bfd *, Elf_Internal_Note *)); static struct bfd_link_hash_table *elf64_x86_64_link_hash_table_create PARAMS ((bfd *)); +static int elf64_x86_64_tls_transition + PARAMS ((struct bfd_link_info *, int, int)); +static boolean elf64_x86_64_mkobject + PARAMS((bfd *)); static boolean elf64_x86_64_elf_object_p PARAMS ((bfd *abfd)); static boolean create_got_section PARAMS((bfd *, struct bfd_link_info *)); static boolean elf64_x86_64_create_dynamic_sections PARAMS((bfd *, struct bfd_link_info *)); static void elf64_x86_64_copy_indirect_symbol - PARAMS ((struct elf_link_hash_entry *, struct elf_link_hash_entry *)); + PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *, + struct elf_link_hash_entry *)); static boolean elf64_x86_64_check_relocs PARAMS ((bfd *, struct bfd_link_info *, asection *sec, const Elf_Internal_Rela *)); @@ -157,6 +194,10 @@ static boolean readonly_dynrelocs PARAMS ((struct elf_link_hash_entry *, PTR)); static boolean elf64_x86_64_size_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); +static bfd_vma dtpoff_base + PARAMS ((struct bfd_link_info *)); +static bfd_vma tpoff + PARAMS ((struct bfd_link_info *, bfd_vma)); static boolean elf64_x86_64_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)); @@ -197,13 +238,13 @@ elf64_x86_64_info_to_howto (abfd, cache_ r_type = ELF64_R_TYPE (dst->r_info); if (r_type < (unsigned int) R_X86_64_GNU_VTINHERIT) { - BFD_ASSERT (r_type <= (unsigned int) R_X86_64_PC8); + BFD_ASSERT (r_type <= (unsigned int) R_X86_64_TPOFF32); i = r_type; } else { BFD_ASSERT (r_type < (unsigned int) R_X86_64_max); - i = r_type - ((unsigned int) R_X86_64_GNU_VTINHERIT - R_X86_64_PC8 - 1); + i = r_type - ((unsigned int) R_X86_64_GNU_VTINHERIT - R_X86_64_TPOFF32 - 1); } cache_ptr->howto = &x86_64_elf_howto_table[i]; BFD_ASSERT (r_type == cache_ptr->howto->type); @@ -342,8 +383,32 @@ struct elf64_x86_64_link_hash_entry /* Track dynamic relocs copied for this symbol. */ struct elf64_x86_64_dyn_relocs *dyn_relocs; + +#define GOT_UNKNOWN 0 +#define GOT_NORMAL 1 +#define GOT_TLS_GD 2 +#define GOT_TLS_IE 3 + unsigned char tls_type; +}; + +#define elf64_x86_64_hash_entry(ent) \ + ((struct elf64_x86_64_link_hash_entry *)(ent)) + +struct elf64_x86_64_obj_tdata +{ + struct elf_obj_tdata root; + + /* tls_type for each local got entry. */ + char *local_got_tls_type; }; +#define elf64_x86_64_tdata(abfd) \ + ((struct elf64_x86_64_obj_tdata *) (abfd)->tdata.any) + +#define elf64_x86_64_local_got_tls_type(abfd) \ + (elf64_x86_64_tdata (abfd)->local_got_tls_type) + + /* x86-64 ELF linker hash table. */ struct elf64_x86_64_link_hash_table @@ -359,6 +424,11 @@ struct elf64_x86_64_link_hash_table asection *sdynbss; asection *srelbss; + union { + bfd_signed_vma refcount; + bfd_vma offset; + } tls_ld_got; + /* Small local sym to section mapping cache. */ struct sym_sec_cache sym_sec; }; @@ -394,6 +464,7 @@ link_hash_newfunc (entry, table, string) eh = (struct elf64_x86_64_link_hash_entry *) entry; eh->dyn_relocs = NULL; + eh->tls_type = GOT_UNKNOWN; } return entry; @@ -426,6 +497,7 @@ elf64_x86_64_link_hash_table_create (abf ret->sdynbss = NULL; ret->srelbss = NULL; ret->sym_sec.abfd = NULL; + ret->tls_ld_got.refcount = 0; return &ret->elf.root; } @@ -494,7 +566,8 @@ elf64_x86_64_create_dynamic_sections (dy /* Copy the extra info we tack onto an elf_link_hash_entry. */ static void -elf64_x86_64_copy_indirect_symbol (dir, ind) +elf64_x86_64_copy_indirect_symbol (bed, dir, ind) + struct elf_backend_data *bed; struct elf_link_hash_entry *dir, *ind; { struct elf64_x86_64_link_hash_entry *edir, *eind; @@ -536,18 +609,67 @@ elf64_x86_64_copy_indirect_symbol (dir, eind->dyn_relocs = NULL; } - _bfd_elf_link_hash_copy_indirect (dir, ind); + if (ind->root.type == bfd_link_hash_indirect + && dir->got.refcount <= 0) + { + edir->tls_type = eind->tls_type; + eind->tls_type = GOT_UNKNOWN; + } + + _bfd_elf_link_hash_copy_indirect (bed, dir, ind); } static boolean -elf64_x86_64_elf_object_p (abfd) +elf64_x86_64_mkobject (abfd) bfd *abfd; { + bfd_size_type amt = sizeof (struct elf64_x86_64_obj_tdata); + abfd->tdata.any = bfd_zalloc (abfd, amt); + if (abfd->tdata.any == NULL) + return false; + return true; +} + +static boolean +elf64_x86_64_elf_object_p (abfd) + bfd *abfd; +{ + /* Allocate our special target data. */ + struct elf64_x86_64_obj_tdata *new_tdata; + bfd_size_type amt = sizeof (struct elf64_x86_64_obj_tdata); + new_tdata = bfd_zalloc (abfd, amt); + if (new_tdata == NULL) + return false; + new_tdata->root = *abfd->tdata.elf_obj_data; + abfd->tdata.any = new_tdata; /* Set the right machine number for an x86-64 elf64 file. */ bfd_default_set_arch_mach (abfd, bfd_arch_i386, bfd_mach_x86_64); return true; } +static int +elf64_x86_64_tls_transition (info, r_type, is_local) + struct bfd_link_info *info; + int r_type; + int is_local; +{ + if (info->shared) + return r_type; + + switch (r_type) + { + case R_X86_64_TLSGD: + case R_X86_64_GOTTPOFF: + if (is_local) + return R_X86_64_TPOFF32; + return R_X86_64_GOTTPOFF; + case R_X86_64_TLSLD: + return R_X86_64_TPOFF32; + } + + return r_type; +} + /* Look through the relocs for a section during the first phase, and calculate needed space in the global offset table, procedure linkage table, and dynamic reloc sections. */ @@ -578,10 +700,12 @@ elf64_x86_64_check_relocs (abfd, info, s rel_end = relocs + sec->reloc_count; for (rel = relocs; rel < rel_end; rel++) { + unsigned int r_type; unsigned long r_symndx; struct elf_link_hash_entry *h; r_symndx = ELF64_R_SYM (rel->r_info); + r_type = ELF64_R_TYPE (rel->r_info); if (r_symndx >= NUM_SHDR_ENTRIES (symtab_hdr)) { @@ -596,38 +720,103 @@ elf64_x86_64_check_relocs (abfd, info, s else h = sym_hashes[r_symndx - symtab_hdr->sh_info]; - switch (ELF64_R_TYPE (rel->r_info)) + r_type = elf64_x86_64_tls_transition (info, r_type, h == NULL); + switch (r_type) { + case R_X86_64_TLSLD: + htab->tls_ld_got.refcount += 1; + goto create_got; + + case R_X86_64_TPOFF32: + if (info->shared) + { + (*_bfd_error_handler) + (_("%s: relocation %s can not be used when making a shared object; recompile with -fPIC"), + bfd_archive_filename (abfd), + x86_64_elf_howto_table[r_type].name); + bfd_set_error (bfd_error_bad_value); + return false; + } + break; + + case R_X86_64_GOTTPOFF: + if (info->shared) + info->flags |= DF_STATIC_TLS; + /* Fall through */ + case R_X86_64_GOT32: case R_X86_64_GOTPCREL: + case R_X86_64_TLSGD: /* This symbol requires a global offset table entry. */ - if (h != NULL) - { - h->got.refcount += 1; - } - else - { - bfd_signed_vma *local_got_refcounts; + { + int tls_type, old_tls_type; - /* This is a global offset table entry for a local symbol. */ - local_got_refcounts = elf_local_got_refcounts (abfd); - if (local_got_refcounts == NULL) - { - bfd_size_type size; + switch (r_type) + { + default: tls_type = GOT_NORMAL; break; + case R_X86_64_TLSGD: tls_type = GOT_TLS_GD; break; + case R_X86_64_GOTTPOFF: tls_type = GOT_TLS_IE; break; + } + + if (h != NULL) + { + h->got.refcount += 1; + old_tls_type = elf64_x86_64_hash_entry (h)->tls_type; + } + else + { + bfd_signed_vma *local_got_refcounts; + + /* This is a global offset table entry for a local symbol. */ + local_got_refcounts = elf_local_got_refcounts (abfd); + if (local_got_refcounts == NULL) + { + bfd_size_type size; - size = symtab_hdr->sh_info; - size *= sizeof (bfd_signed_vma); - local_got_refcounts = ((bfd_signed_vma *) - bfd_zalloc (abfd, size)); - if (local_got_refcounts == NULL) + size = symtab_hdr->sh_info; + size *= sizeof (bfd_signed_vma) + sizeof (char); + local_got_refcounts = ((bfd_signed_vma *) + bfd_zalloc (abfd, size)); + if (local_got_refcounts == NULL) + return false; + elf_local_got_refcounts (abfd) = local_got_refcounts; + elf64_x86_64_local_got_tls_type (abfd) + = (char *) (local_got_refcounts + symtab_hdr->sh_info); + } + local_got_refcounts[r_symndx] += 1; + old_tls_type + = elf64_x86_64_local_got_tls_type (abfd) [r_symndx]; + } + + /* If a TLS symbol is accessed using IE at least once, + there is no point to use dynamic model for it. */ + if (old_tls_type != tls_type && old_tls_type != GOT_UNKNOWN + && (old_tls_type != GOT_TLS_GD || tls_type != GOT_TLS_IE)) + { + if (old_tls_type == GOT_TLS_IE && tls_type == GOT_TLS_GD) + tls_type = old_tls_type; + else + { + (*_bfd_error_handler) + (_("%s: %s' accessed both as normal and thread local symbol"), + bfd_archive_filename (abfd), + h ? h->root.root.string : ""); return false; - elf_local_got_refcounts (abfd) = local_got_refcounts; - } - local_got_refcounts[r_symndx] += 1; - } + } + } + + if (old_tls_type != tls_type) + { + if (h != NULL) + elf64_x86_64_hash_entry (h)->tls_type = tls_type; + else + elf64_x86_64_local_got_tls_type (abfd) [r_symndx] = tls_type; + } + } /* Fall through */ //case R_X86_64_GOTPCREL: + create_got: if (htab->sgot == NULL) { if (htab->elf.dynobj == NULL) @@ -669,7 +858,7 @@ elf64_x86_64_check_relocs (abfd, info, s (*_bfd_error_handler) (_("%s: relocation %s can not be used when making a shared object; recompile with -fPIC"), bfd_archive_filename (abfd), - x86_64_elf_howto_table[ELF64_R_TYPE (rel->r_info)].name); + x86_64_elf_howto_table[r_type].name); bfd_set_error (bfd_error_bad_value); return false; } @@ -717,9 +906,9 @@ elf64_x86_64_check_relocs (abfd, info, s symbol. */ if ((info->shared && (sec->flags & SEC_ALLOC) != 0 - && (((ELF64_R_TYPE (rel->r_info) != R_X86_64_PC8) - && (ELF64_R_TYPE (rel->r_info) != R_X86_64_PC16) - && (ELF64_R_TYPE (rel->r_info) != R_X86_64_PC32)) + && (((r_type != R_X86_64_PC8) + && (r_type != R_X86_64_PC16) + && (r_type != R_X86_64_PC32)) || (h != NULL && (! info->symbolic || h->root.type == bfd_link_hash_defweak @@ -820,9 +1009,9 @@ elf64_x86_64_check_relocs (abfd, info, s } p->count += 1; - if (ELF64_R_TYPE (rel->r_info) == R_X86_64_PC8 - || ELF64_R_TYPE (rel->r_info) == R_X86_64_PC16 - || ELF64_R_TYPE (rel->r_info) == R_X86_64_PC32) + if (r_type == R_X86_64_PC8 + || r_type == R_X86_64_PC16 + || r_type == R_X86_64_PC32) p->pc_count += 1; } break; @@ -903,6 +1092,7 @@ elf64_x86_64_gc_sweep_hook (abfd, info, bfd_signed_vma *local_got_refcounts; const Elf_Internal_Rela *rel, *relend; unsigned long r_symndx; + int r_type; struct elf_link_hash_entry *h; elf_section_data (sec)->local_dynrel = NULL; @@ -913,8 +1103,18 @@ elf64_x86_64_gc_sweep_hook (abfd, info, relend = relocs + sec->reloc_count; for (rel = relocs; rel < relend; rel++) - switch (ELF64_R_TYPE (rel->r_info)) + switch ((r_type = elf64_x86_64_tls_transition (info, + ELF64_R_TYPE (rel->r_info), + ELF64_R_SYM (rel->r_info) + >= symtab_hdr->sh_info))) { + case R_X86_64_TLSLD: + if (elf64_x86_64_hash_table (info)->tls_ld_got.refcount > 0) + elf64_x86_64_hash_table (info)->tls_ld_got.refcount -= 1; + break; + + case R_X86_64_TLSGD: + case R_X86_64_GOTTPOFF: case R_X86_64_GOT32: case R_X86_64_GOTPCREL: r_symndx = ELF64_R_SYM (rel->r_info); @@ -1224,10 +1424,18 @@ allocate_dynrelocs (h, inf) h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT; } - if (h->got.refcount > 0) + /* If R_X86_64_GOTTPOFF symbol is now local to the binary, + make it a R_X86_64_TPOFF32 requiring no GOT entry. */ + if (h->got.refcount > 0 + && !info->shared + && h->dynindx == -1 + && elf64_x86_64_hash_entry (h)->tls_type == GOT_TLS_IE) + h->got.offset = (bfd_vma) -1; + else if (h->got.refcount > 0) { asection *s; boolean dyn; + int tls_type = elf64_x86_64_hash_entry (h)->tls_type; /* Make sure this symbol is output as a dynamic symbol. Undefined weak syms won't yet be marked as dynamic. */ @@ -1241,8 +1449,19 @@ allocate_dynrelocs (h, inf) s = htab->sgot; h->got.offset = s->_raw_size; s->_raw_size += GOT_ENTRY_SIZE; + /* R_X86_64_TLSGD needs 2 consecutive GOT slots. */ + if (tls_type == GOT_TLS_GD) + s->_raw_size += GOT_ENTRY_SIZE; dyn = htab->elf.dynamic_sections_created; - if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, info, h)) + /* R_X86_64_TLSGD needs one dynamic relocation if local symbol + and two if global. + R_X86_64_GOTTPOFF needs one dynamic relocation. */ + if ((tls_type == GOT_TLS_GD && h->dynindx == -1) + || tls_type == GOT_TLS_IE) + htab->srelgot->_raw_size += sizeof (Elf64_External_Rela); + else if (tls_type == GOT_TLS_GD) + htab->srelgot->_raw_size += 2 * sizeof (Elf64_External_Rela); + else if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, info, h)) htab->srelgot->_raw_size += sizeof (Elf64_External_Rela); } else @@ -1388,6 +1607,7 @@ elf64_x86_64_size_dynamic_sections (outp { bfd_signed_vma *local_got; bfd_signed_vma *end_local_got; + char *local_tls_type; bfd_size_type locsymcount; Elf_Internal_Shdr *symtab_hdr; asection *srel; @@ -1430,15 +1650,20 @@ elf64_x86_64_size_dynamic_sections (outp symtab_hdr = &elf_tdata (ibfd)->symtab_hdr; locsymcount = symtab_hdr->sh_info; end_local_got = local_got + locsymcount; + local_tls_type = elf64_x86_64_local_got_tls_type (ibfd); s = htab->sgot; srel = htab->srelgot; - for (; local_got < end_local_got; ++local_got) + for (; local_got < end_local_got; ++local_got, ++local_tls_type) { if (*local_got > 0) { *local_got = s->_raw_size; s->_raw_size += GOT_ENTRY_SIZE; - if (info->shared) + if (*local_tls_type == GOT_TLS_GD) + s->_raw_size += GOT_ENTRY_SIZE; + if (info->shared + || *local_tls_type == GOT_TLS_GD + || *local_tls_type == GOT_TLS_IE) srel->_raw_size += sizeof (Elf64_External_Rela); } else @@ -1446,6 +1671,17 @@ elf64_x86_64_size_dynamic_sections (outp } } + if (htab->tls_ld_got.refcount > 0) + { + /* Allocate 2 got entries and 1 dynamic reloc for R_X86_64_TLSLD + relocs. */ + htab->tls_ld_got.offset = htab->sgot->_raw_size; + htab->sgot->_raw_size += 2 * GOT_ENTRY_SIZE; + htab->srelgot->_raw_size += sizeof (Elf64_External_Rela); + } + else + htab->tls_ld_got.offset = -1; + /* Allocate global sym .plt and .got entries, and space for global sym dynamic relocs. */ elf_link_hash_traverse (&htab->elf, allocate_dynrelocs, (PTR) info); @@ -1556,6 +1792,38 @@ elf64_x86_64_size_dynamic_sections (outp return true; } +/* Return the base VMA address which should be subtracted from real addresses + when resolving @dtpoff relocation. + This is PT_TLS segment p_vaddr. */ + +static bfd_vma +dtpoff_base (info) + struct bfd_link_info *info; +{ + /* If tls_segment is NULL, we should have signalled an error already. */ + if (elf_hash_table (info)->tls_segment == NULL) + return 0; + return elf_hash_table (info)->tls_segment->start; +} + +/* Return the relocation value for @tpoff relocation + if STT_TLS virtual address is ADDRESS. */ + +static bfd_vma +tpoff (info, address) + struct bfd_link_info *info; + bfd_vma address; +{ + struct elf_link_tls_segment *tls_segment + = elf_hash_table (info)->tls_segment; + + /* If tls_segment is NULL, we should have signalled an error already. */ + if (tls_segment == NULL) + return 0; + return address - align_power (tls_segment->size, tls_segment->align) + - tls_segment->start; +} + /* Relocate an x86_64 ELF section. */ static boolean @@ -1589,7 +1857,7 @@ elf64_x86_64_relocate_section (output_bf relend = relocs + input_section->reloc_count; for (; rel < relend; rel++) { - int r_type; + unsigned int r_type; reloc_howto_type *howto; unsigned long r_symndx; struct elf_link_hash_entry *h; @@ -1599,13 +1867,14 @@ elf64_x86_64_relocate_section (output_bf bfd_vma relocation; boolean unresolved_reloc; bfd_reloc_status_type r; + int tls_type; r_type = ELF64_R_TYPE (rel->r_info); if (r_type == (int) R_X86_64_GNU_VTINHERIT || r_type == (int) R_X86_64_GNU_VTENTRY) continue; - if (r_type < 0 || r_type >= R_X86_64_max) + if (r_type >= R_X86_64_max) { bfd_set_error (bfd_error_bad_value); return false; @@ -1931,6 +2200,315 @@ elf64_x86_64_relocate_section (output_bf break; + case R_X86_64_TLSGD: + case R_X86_64_GOTTPOFF: + r_type = elf64_x86_64_tls_transition (info, r_type, h == NULL); + tls_type = GOT_UNKNOWN; + if (h == NULL && local_got_offsets) + tls_type = elf64_x86_64_local_got_tls_type (input_bfd) [r_symndx]; + else if (h != NULL) + { + tls_type = elf64_x86_64_hash_entry (h)->tls_type; + if (!info->shared && h->dynindx == -1 && tls_type == GOT_TLS_IE) + r_type = R_X86_64_TPOFF32; + } + if (r_type == R_X86_64_TLSGD) + { + if (tls_type == GOT_TLS_IE) + r_type = R_X86_64_GOTTPOFF; + } + + if (r_type == R_X86_64_TPOFF32) + { + BFD_ASSERT (! unresolved_reloc); + if (ELF64_R_TYPE (rel->r_info) == R_X86_64_TLSGD) + { + unsigned int i; + static unsigned char tlsgd[8] + = { 0x66, 0x48, 0x8d, 0x3d, 0x66, 0x66, 0x48, 0xe8 }; + + /* GD->LE transition. + .byte 0x66; leaq foo@tlsgd(%rip), %rdi + .word 0x6666; rex64; call __tls_get_addr@plt + Change it into: + movq %fs:0, %rax + leaq foo@tpoff(%rax), %rax */ + BFD_ASSERT (rel->r_offset >= 4); + for (i = 0; i < 4; i++) + BFD_ASSERT (bfd_get_8 (input_bfd, + contents + rel->r_offset - 4 + i) + == tlsgd[i]); + BFD_ASSERT (rel->r_offset + 12 <= input_section->_raw_size); + for (i = 0; i < 4; i++) + BFD_ASSERT (bfd_get_8 (input_bfd, + contents + rel->r_offset + 4 + i) + == tlsgd[i+4]); + BFD_ASSERT (rel + 1 < relend); + BFD_ASSERT (ELF64_R_TYPE (rel[1].r_info) == R_X86_64_PLT32); + memcpy (contents + rel->r_offset - 4, + "\x64\x48\x8b\x04\x25\0\0\0\0\x48\x8d\x80\0\0\0", + 16); + bfd_put_32 (output_bfd, tpoff (info, relocation), + contents + rel->r_offset + 8); + /* Skip R_X86_64_PLT32. */ + rel++; + continue; + } + else + { + unsigned int val, type, reg; + + /* IE->LE transition: + Originally it can be one of: + movq foo@gottpoff(%rip), %reg + addq foo@gottpoff(%rip), %reg + We change it into: + movq $foo, %reg + leaq foo(%reg), %reg + addq $foo, %reg. */ + BFD_ASSERT (rel->r_offset >= 3); + val = bfd_get_8 (input_bfd, contents + rel->r_offset - 3); + BFD_ASSERT (val == 0x48 || val == 0x4c); + type = bfd_get_8 (input_bfd, contents + rel->r_offset - 2); + BFD_ASSERT (type == 0x8b || type == 0x03); + reg = bfd_get_8 (input_bfd, contents + rel->r_offset - 1); + BFD_ASSERT ((reg & 0xc7) == 5); + reg >>= 3; + BFD_ASSERT (rel->r_offset + 4 <= input_section->_raw_size); + if (type == 0x8b) + { + /* movq */ + if (val == 0x4c) + bfd_put_8 (output_bfd, 0x49, + contents + rel->r_offset - 3); + bfd_put_8 (output_bfd, 0xc7, + contents + rel->r_offset - 2); + bfd_put_8 (output_bfd, 0xc0 | reg, + contents + rel->r_offset - 1); + } + else if (reg == 4) + { + /* addq -> addq - addressing with %rsp/%r12 is + special */ + if (val == 0x4c) + bfd_put_8 (output_bfd, 0x49, + contents + rel->r_offset - 3); + bfd_put_8 (output_bfd, 0x81, + contents + rel->r_offset - 2); + bfd_put_8 (output_bfd, 0xc0 | reg, + contents + rel->r_offset - 1); + } + else + { + /* addq -> leaq */ + if (val == 0x4c) + bfd_put_8 (output_bfd, 0x4d, + contents + rel->r_offset - 3); + bfd_put_8 (output_bfd, 0x8d, + contents + rel->r_offset - 2); + bfd_put_8 (output_bfd, 0x80 | reg | (reg << 3), + contents + rel->r_offset - 1); + } + bfd_put_32 (output_bfd, tpoff (info, relocation), + contents + rel->r_offset); + continue; + } + } + + if (htab->sgot == NULL) + abort (); + + if (h != NULL) + off = h->got.offset; + else + { + if (local_got_offsets == NULL) + abort (); + + off = local_got_offsets[r_symndx]; + } + + if ((off & 1) != 0) + off &= ~1; + else + { + Elf_Internal_Rela outrel; + Elf64_External_Rela *loc; + int dr_type, indx; + + if (htab->srelgot == NULL) + abort (); + + outrel.r_offset = (htab->sgot->output_section->vma + + htab->sgot->output_offset + off); + + indx = h && h->dynindx != -1 ? h->dynindx : 0; + if (r_type == R_X86_64_TLSGD) + dr_type = R_X86_64_DTPMOD64; + else + dr_type = R_X86_64_TPOFF64; + + bfd_put_64 (output_bfd, 0, htab->sgot->contents + off); + outrel.r_addend = 0; + if (dr_type == R_X86_64_TPOFF64 && indx == 0) + outrel.r_addend = relocation - dtpoff_base (info); + outrel.r_info = ELF64_R_INFO (indx, dr_type); + + loc = (Elf64_External_Rela *) htab->srelgot->contents; + loc += htab->srelgot->reloc_count++; + bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc); + + if (r_type == R_X86_64_TLSGD) + { + if (indx == 0) + { + BFD_ASSERT (! unresolved_reloc); + bfd_put_64 (output_bfd, + relocation - dtpoff_base (info), + htab->sgot->contents + off + GOT_ENTRY_SIZE); + } + else + { + bfd_put_64 (output_bfd, 0, + htab->sgot->contents + off + GOT_ENTRY_SIZE); + outrel.r_info = ELF64_R_INFO (indx, + R_X86_64_DTPOFF64); + outrel.r_offset += GOT_ENTRY_SIZE; + htab->srelgot->reloc_count++; + loc++; + bfd_elf64_swap_reloca_out (output_bfd, &outrel, + loc); + } + } + + if (h != NULL) + h->got.offset |= 1; + else + local_got_offsets[r_symndx] |= 1; + } + + if (off >= (bfd_vma) -2) + abort (); + if (r_type == ELF64_R_TYPE (rel->r_info)) + { + relocation = htab->sgot->output_section->vma + + htab->sgot->output_offset + off; + unresolved_reloc = false; + } + else + { + unsigned int i; + static unsigned char tlsgd[8] + = { 0x66, 0x48, 0x8d, 0x3d, 0x66, 0x66, 0x48, 0xe8 }; + + /* GD->IE transition. + .byte 0x66; leaq foo@tlsgd(%rip), %rdi + .word 0x6666; rex64; call __tls_get_addr@plt + Change it into: + movq %fs:0, %rax + addq foo@gottpoff(%rip), %rax */ + BFD_ASSERT (rel->r_offset >= 4); + for (i = 0; i < 4; i++) + BFD_ASSERT (bfd_get_8 (input_bfd, + contents + rel->r_offset - 4 + i) + == tlsgd[i]); + BFD_ASSERT (rel->r_offset + 12 <= input_section->_raw_size); + for (i = 0; i < 4; i++) + BFD_ASSERT (bfd_get_8 (input_bfd, + contents + rel->r_offset + 4 + i) + == tlsgd[i+4]); + BFD_ASSERT (rel + 1 < relend); + BFD_ASSERT (ELF64_R_TYPE (rel[1].r_info) == R_X86_64_PLT32); + memcpy (contents + rel->r_offset - 4, + "\x64\x48\x8b\x04\x25\0\0\0\0\x48\x03\x05\0\0\0", + 16); + + relocation = (htab->sgot->output_section->vma + + htab->sgot->output_offset + off + - rel->r_offset + - input_section->output_section->vma + - input_section->output_offset + - 12); + bfd_put_32 (output_bfd, relocation, + contents + rel->r_offset + 8); + /* Skip R_X86_64_PLT32. */ + rel++; + continue; + } + break; + + case R_X86_64_TLSLD: + if (! info->shared) + { + /* LD->LE transition: + Ensure it is: + leaq foo@tlsld(%rip), %rdi; call __tls_get_addr@plt. + We change it into: + .word 0x6666; .byte 0x66; movl %fs:0, %rax. */ + BFD_ASSERT (rel->r_offset >= 3); + BFD_ASSERT (bfd_get_8 (input_bfd, contents + rel->r_offset - 3) + == 0x48); + BFD_ASSERT (bfd_get_8 (input_bfd, contents + rel->r_offset - 2) + == 0x8d); + BFD_ASSERT (bfd_get_8 (input_bfd, contents + rel->r_offset - 1) + == 0x3d); + BFD_ASSERT (rel->r_offset + 9 <= input_section->_raw_size); + BFD_ASSERT (bfd_get_8 (input_bfd, contents + rel->r_offset + 4) + == 0xe8); + BFD_ASSERT (rel + 1 < relend); + BFD_ASSERT (ELF64_R_TYPE (rel[1].r_info) == R_X86_64_PLT32); + memcpy (contents + rel->r_offset - 3, + "\x66\x66\x66\x64\x48\x8b\x04\x25\0\0\0", 12); + /* Skip R_X86_64_PLT32. */ + rel++; + continue; + } + + if (htab->sgot == NULL) + abort (); + + off = htab->tls_ld_got.offset; + if (off & 1) + off &= ~1; + else + { + Elf_Internal_Rela outrel; + Elf64_External_Rela *loc; + + if (htab->srelgot == NULL) + abort (); + + outrel.r_offset = (htab->sgot->output_section->vma + + htab->sgot->output_offset + off); + + bfd_put_64 (output_bfd, 0, + htab->sgot->contents + off); + bfd_put_64 (output_bfd, 0, + htab->sgot->contents + off + GOT_ENTRY_SIZE); + outrel.r_info = ELF64_R_INFO (0, R_X86_64_DTPMOD64); + outrel.r_addend = 0; + loc = (Elf64_External_Rela *) htab->srelgot->contents; + loc += htab->srelgot->reloc_count++; + bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc); + htab->tls_ld_got.offset |= 1; + } + relocation = htab->sgot->output_section->vma + + htab->sgot->output_offset + off; + unresolved_reloc = false; + break; + + case R_X86_64_DTPOFF32: + if (info->shared || (input_section->flags & SEC_CODE) == 0) + relocation -= dtpoff_base (info); + else + relocation = tpoff (info, relocation); + break; + + case R_X86_64_TPOFF32: + BFD_ASSERT (! info->shared); + relocation = tpoff (info, relocation); + break; + default: break; } @@ -2085,13 +2663,15 @@ elf64_x86_64_finish_dynamic_symbol (outp } } - if (h->got.offset != (bfd_vma) -1) + if (h->got.offset != (bfd_vma) -1 + && elf64_x86_64_hash_entry (h)->tls_type != GOT_TLS_GD + && elf64_x86_64_hash_entry (h)->tls_type != GOT_TLS_IE) { Elf_Internal_Rela rela; Elf64_External_Rela *loc; /* This symbol has an entry in the global offset table. Set it - up. */ + up. */ if (htab->sgot == NULL || htab->srelgot == NULL) abort (); @@ -2349,5 +2929,6 @@ elf64_x86_64_finish_dynamic_sections (ou #define elf_backend_relocate_section elf64_x86_64_relocate_section #define elf_backend_size_dynamic_sections elf64_x86_64_size_dynamic_sections #define elf_backend_object_p elf64_x86_64_elf_object_p +#define bfd_elf64_mkobject elf64_x86_64_mkobject #include "elf64-target.h" diff -uprN binutils-2.13.90.0.4/bfd/elfcode.h binutils-2.13.90.0.10/bfd/elfcode.h --- binutils-2.13.90.0.4/bfd/elfcode.h Wed Jul 17 11:38:29 2002 +++ binutils-2.13.90.0.10/bfd/elfcode.h Fri Sep 27 08:33:09 2002 @@ -1377,6 +1377,7 @@ elf_slurp_reloc_table_from_section (abfd arelent *relent; unsigned int i; int entsize; + unsigned int symcount; allocated = (PTR) bfd_malloc (rel_hdr->sh_size); if (allocated == NULL) @@ -1393,6 +1394,11 @@ elf_slurp_reloc_table_from_section (abfd BFD_ASSERT (entsize == sizeof (Elf_External_Rel) || entsize == sizeof (Elf_External_Rela)); + if (dynamic) + symcount = bfd_get_dynamic_symcount (abfd); + else + symcount = bfd_get_symcount (abfd); + for (i = 0, relent = relents; i < reloc_count; i++, relent++, native_relocs += entsize) @@ -1421,6 +1427,13 @@ elf_slurp_reloc_table_from_section (abfd if (ELF_R_SYM (rela.r_info) == 0) relent->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; + else if (ELF_R_SYM (rela.r_info) > symcount) + { + (*_bfd_error_handler) + (_("%s(%s): relocation %d has invalid symbol index %ld"), + abfd->filename, asect->name, i, ELF_R_SYM (rela.r_info)); + relent->sym_ptr_ptr = bfd_abs_section.symbol_ptr_ptr; + } else { asymbol **ps, *s; diff -uprN binutils-2.13.90.0.4/bfd/elflink.h binutils-2.13.90.0.10/bfd/elflink.h --- binutils-2.13.90.0.4/bfd/elflink.h Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/bfd/elflink.h Mon Oct 7 23:08:00 2002 @@ -1044,7 +1044,7 @@ elf_add_default_symbol (abfd, info, h, n | ELF_LINK_HASH_DEF_REGULAR)) == 0); ht = (struct elf_link_hash_entry *) hi->root.u.i.link; - (*bed->elf_backend_copy_indirect_symbol) (ht, hi); + (*bed->elf_backend_copy_indirect_symbol) (bed, ht, hi); /* See if the new flags lead us to realize that the symbol must be dynamic. */ @@ -1116,7 +1116,7 @@ elf_add_default_symbol (abfd, info, h, n & (ELF_LINK_HASH_DEF_DYNAMIC | ELF_LINK_HASH_DEF_REGULAR)) == 0); - (*bed->elf_backend_copy_indirect_symbol) (h, hi); + (*bed->elf_backend_copy_indirect_symbol) (bed, h, hi); /* See if the new flags lead us to realize that the symbol must be dynamic. */ @@ -3886,9 +3886,12 @@ elf_fix_symbol_flags (h, eif) { struct elf_link_hash_entry *weakdef; + weakdef = h->weakdef; + if (h->root.type == bfd_link_hash_indirect) + h = (struct elf_link_hash_entry *) h->root.u.i.link; + BFD_ASSERT (h->root.type == bfd_link_hash_defined || h->root.type == bfd_link_hash_defweak); - weakdef = h->weakdef; BFD_ASSERT (weakdef->root.type == bfd_link_hash_defined || weakdef->root.type == bfd_link_hash_defweak); BFD_ASSERT (weakdef->elf_link_hash_flags & ELF_LINK_HASH_DEF_DYNAMIC); @@ -3903,7 +3906,7 @@ elf_fix_symbol_flags (h, eif) struct elf_backend_data *bed; bed = get_elf_backend_data (elf_hash_table (eif->info)->dynobj); - (*bed->elf_backend_copy_indirect_symbol) (weakdef, h); + (*bed->elf_backend_copy_indirect_symbol) (bed, weakdef, h); } } @@ -6812,20 +6815,12 @@ elf_link_input_bfd (finfo, input_bfd) || h->root.type == bfd_link_hash_defweak) && elf_discarded_section (h->root.u.def.section)) { -#if BFD_VERSION_DATE < 20031005 if ((o->flags & SEC_DEBUGGING) != 0) { -#if BFD_VERSION_DATE > 20021005 - (*finfo->info->callbacks->warning) - (finfo->info, - _("warning: relocation against removed section; zeroing"), - NULL, input_bfd, o, rel->r_offset); -#endif BFD_ASSERT (r_symndx != 0); memset (rel, 0, sizeof (*rel)); } else -#endif { if (! ((*finfo->info->callbacks->undefined_symbol) (finfo->info, h->root.root.string, @@ -6841,23 +6836,15 @@ elf_link_input_bfd (finfo, input_bfd) if (sec != NULL && elf_discarded_section (sec)) { -#if BFD_VERSION_DATE < 20031005 if ((o->flags & SEC_DEBUGGING) != 0 || (sec->flags & SEC_LINK_ONCE) != 0) { -#if BFD_VERSION_DATE > 20021005 - (*finfo->info->callbacks->warning) - (finfo->info, - _("warning: relocation against removed section"), - NULL, input_bfd, o, rel->r_offset); -#endif BFD_ASSERT (r_symndx != 0); rel->r_info = ELF_R_INFO (0, ELF_R_TYPE (rel->r_info)); rel->r_addend = 0; } else -#endif { boolean ok; const char *msg @@ -8479,7 +8466,12 @@ elf_bfd_discard_info (output_bfd, info) if (_bfd_elf_discard_section_eh_frame (abfd, info, eh, ehdr, elf_reloc_symbol_deleted_p, &cookie)) - ret = true; + { + /* Relocs have been edited. Ensure edited version is + used later in relocate_section. */ + elf_section_data (eh)->relocs = cookie.rels; + ret = true; + } if (cookie.rels && elf_section_data (eh)->relocs != cookie.rels) free (cookie.rels); } diff -uprN binutils-2.13.90.0.4/bfd/elfn32-mips.c binutils-2.13.90.0.10/bfd/elfn32-mips.c --- binutils-2.13.90.0.4/bfd/elfn32-mips.c Thu Aug 1 17:49:32 2002 +++ binutils-2.13.90.0.10/bfd/elfn32-mips.c Fri Sep 27 08:33:09 2002 @@ -1505,7 +1505,7 @@ mips_elf_final_gp (output_bfd, symbol, r if (relocateable) { /* Make up a value. */ - *pgp = symbol->section->output_section->vma + 0x4000; + *pgp = symbol->section->output_section->vma /*+ 0x4000*/; _bfd_set_gp_value (output_bfd, *pgp); } else if (!mips_elf_assign_gp (output_bfd, pgp)) diff -uprN binutils-2.13.90.0.4/bfd/elfxx-ia64.c binutils-2.13.90.0.10/bfd/elfxx-ia64.c --- binutils-2.13.90.0.4/bfd/elfxx-ia64.c Thu Aug 1 17:49:32 2002 +++ binutils-2.13.90.0.10/bfd/elfxx-ia64.c Fri Sep 27 08:33:09 2002 @@ -207,7 +207,8 @@ static struct bfd_hash_entry *elfNN_ia64 PARAMS ((struct bfd_hash_entry *entry, struct bfd_hash_table *table, const char *string)); static void elfNN_ia64_hash_copy_indirect - PARAMS ((struct elf_link_hash_entry *, struct elf_link_hash_entry *)); + PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *, + struct elf_link_hash_entry *)); static void elfNN_ia64_hash_hide_symbol PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *, boolean)); static struct bfd_link_hash_table *elfNN_ia64_hash_table_create @@ -723,7 +724,9 @@ elfNN_ia64_relax_section (abfd, sec, lin irelend = internal_relocs + sec->reloc_count; for (irel = internal_relocs; irel < irelend; irel++) - if (ELFNN_R_TYPE (irel->r_info) == (int) R_IA64_PCREL21B) + if (ELFNN_R_TYPE (irel->r_info) == (int) R_IA64_PCREL21B + || ELFNN_R_TYPE (irel->r_info) == (int) R_IA64_PCREL21M + || ELFNN_R_TYPE (irel->r_info) == (int) R_IA64_PCREL21F) break; /* No branch-type relocations. */ @@ -755,7 +758,9 @@ elfNN_ia64_relax_section (abfd, sec, lin struct one_fixup *f; bfd_size_type amt; - if (ELFNN_R_TYPE (irel->r_info) != (int) R_IA64_PCREL21B) + if (ELFNN_R_TYPE (irel->r_info) != (int) R_IA64_PCREL21B + && ELFNN_R_TYPE (irel->r_info) != (int) R_IA64_PCREL21M + && ELFNN_R_TYPE (irel->r_info) != (int) R_IA64_PCREL21F) continue; /* Get the value of the symbol referred to by the reloc. */ @@ -1602,7 +1607,8 @@ elfNN_ia64_new_elf_hash_entry (entry, ta } static void -elfNN_ia64_hash_copy_indirect (xdir, xind) +elfNN_ia64_hash_copy_indirect (bed, xdir, xind) + struct elf_backend_data *bed ATTRIBUTE_UNUSED; struct elf_link_hash_entry *xdir, *xind; { struct elfNN_ia64_link_hash_entry *dir, *ind; diff -uprN binutils-2.13.90.0.4/bfd/elfxx-mips.c binutils-2.13.90.0.10/bfd/elfxx-mips.c --- binutils-2.13.90.0.4/bfd/elfxx-mips.c Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/bfd/elfxx-mips.c Mon Oct 7 23:08:00 2002 @@ -364,6 +364,7 @@ static INLINE int elf_mips_isa PARAMS (( static INLINE char* elf_mips_abi_name PARAMS ((bfd *)); static void mips_elf_irix6_finish_dynamic_symbol PARAMS ((bfd *, const char *, Elf_Internal_Sym *)); +static boolean _bfd_mips_elf_mach_extends_p PARAMS ((flagword, flagword)); /* This will be used when we sort the dynamic relocation records. */ static bfd *reldyn_sorting_bfd; @@ -1486,7 +1487,7 @@ mips_elf_got_page (abfd, info, value, of g = mips_elf_got_info (elf_hash_table (info)->dynobj, &sgot); - /* Look to see if we aleady have an appropriate entry. */ + /* Look to see if we already have an appropriate entry. */ last_entry = sgot->contents + MIPS_ELF_GOT_SIZE (abfd) * g->assigned_gotno; for (entry = (sgot->contents + MIPS_ELF_GOT_SIZE (abfd) * MIPS_RESERVED_GOTNO); @@ -1639,7 +1640,7 @@ mips_elf_sort_hash_table (info, max_loca &hsd); /* There should have been enough room in the symbol table to - accomodate both the GOT and non-GOT symbols. */ + accommodate both the GOT and non-GOT symbols. */ BFD_ASSERT (hsd.max_non_got_dynindx <= hsd.min_got_dynindx); /* Now we know which dynamic symbol has the lowest dynamic symbol @@ -2937,6 +2938,10 @@ mips_elf_create_dynamic_relocation (outp know where the shared library will wind up at load-time. */ outrel[0].r_info = ELF_R_INFO (output_bfd, (unsigned long) indx, R_MIPS_REL32); + outrel[1].r_info = ELF_R_INFO (output_bfd, (unsigned long) 0, + R_MIPS_NONE); + outrel[2].r_info = ELF_R_INFO (output_bfd, (unsigned long) 0, + R_MIPS_NONE); /* Adjust the output offset of the relocation to reference the correct location in the output file. */ @@ -3058,9 +3063,18 @@ _bfd_elf_mips_mach (flags) case E_MIPS_MACH_4111: return bfd_mach_mips4111; + case E_MIPS_MACH_4120: + return bfd_mach_mips4120; + case E_MIPS_MACH_4650: return bfd_mach_mips4650; + case E_MIPS_MACH_5400: + return bfd_mach_mips5400; + + case E_MIPS_MACH_5500: + return bfd_mach_mips5500; + case E_MIPS_MACH_SB1: return bfd_mach_mips_sb1; @@ -3644,7 +3658,7 @@ _bfd_mips_elf_fake_sections (abfd, hdr, sh_offset == object size, and ld doesn't allow that. While the check is arguably bogus for empty or SHT_NOBITS sections, it can easily be avoided by not emitting those useless sections in the first place. */ - if ((IRIX_COMPAT (abfd) != ict_irix5 && (IRIX_COMPAT (abfd) != ict_irix6)) + if (! SGI_COMPAT (abfd) && ! NEWABI_P(abfd) && (sec->flags & SEC_RELOC) != 0) { struct bfd_elf_section_data *esd; @@ -3959,7 +3973,7 @@ _bfd_mips_elf_create_dynamic_sections (a return false; } - /* Change aligments of some sections. */ + /* Change alignments of some sections. */ s = bfd_get_section_by_name (abfd, ".hash"); if (s != NULL) bfd_set_section_alignment (abfd, s, 4); @@ -5935,10 +5949,22 @@ _bfd_mips_elf_final_write_processing (ab val = E_MIPS_ARCH_3 | E_MIPS_MACH_4111; break; + case bfd_mach_mips4120: + val = E_MIPS_ARCH_3 | E_MIPS_MACH_4120; + break; + case bfd_mach_mips4650: val = E_MIPS_ARCH_3 | E_MIPS_MACH_4650; break; + case bfd_mach_mips5400: + val = E_MIPS_ARCH_4 | E_MIPS_MACH_5400; + break; + + case bfd_mach_mips5500: + val = E_MIPS_ARCH_4 | E_MIPS_MACH_5500; + break; + case bfd_mach_mips5000: case bfd_mach_mips8000: case bfd_mach_mips10000: @@ -6107,9 +6133,9 @@ _bfd_mips_elf_modify_segment_map (abfd) /* For IRIX 6, we don't have .mdebug sections, nor does anything but .dynamic end up in PT_DYNAMIC. However, we do have to insert a - PT_OPTIONS segement immediately following the program header + PT_OPTIONS segment immediately following the program header table. */ - if (ABI_64_P (abfd)) + if (NEWABI_P (abfd)) { for (s = abfd->sections; s; s = s->next) if (elf_section_data (s)->this_hdr.sh_type == SHT_MIPS_OPTIONS) @@ -6122,7 +6148,7 @@ _bfd_mips_elf_modify_segment_map (abfd) /* Usually, there's a program header table. But, sometimes there's not (like when running the `ld' testsuite). So, if there's no program header table, we just put the - options segement at the end. */ + options segment at the end. */ for (pm = &elf_tdata (abfd)->segment_map; *pm != NULL; pm = &(*pm)->next) @@ -6369,12 +6395,13 @@ _bfd_mips_elf_gc_sweep_hook (abfd, info, _bfd_elf_link_hash_copy_indirect copy the flags for us. */ void -_bfd_mips_elf_copy_indirect_symbol (dir, ind) +_bfd_mips_elf_copy_indirect_symbol (bed, dir, ind) + struct elf_backend_data *bed; struct elf_link_hash_entry *dir, *ind; { struct mips_elf_link_hash_entry *dirmips, *indmips; - _bfd_elf_link_hash_copy_indirect (dir, ind); + _bfd_elf_link_hash_copy_indirect (bed, dir, ind); if (ind->root.type != bfd_link_hash_indirect) return; @@ -6791,7 +6818,7 @@ _bfd_elf_mips_get_relocated_section_cont asymbol *sym = *(*parent)->sym_ptr_ptr; if (bfd_is_abs_section (sym->section) && abfd) { - /* The special_function wouldn't get called anyways. */ + /* The special_function wouldn't get called anyway. */ } else if (!gp_found) { @@ -6983,6 +7010,8 @@ _bfd_mips_elf_final_link (abfd, info) <= g->global_gotno); } +#if 0 + /* We want to set the GP value for ld -r. */ /* On IRIX5, we omit the .options section. On IRIX6, however, we include it, even though we don't process it quite right. (Some entries are supposed to be merged.) Empirically, we seem to be @@ -7020,6 +7049,7 @@ _bfd_mips_elf_final_link (abfd, info) break; } } +#endif /* Get a value for the GP register. */ if (elf_gp (abfd) == 0) @@ -7633,6 +7663,26 @@ _bfd_mips_elf_final_link (abfd, info) return true; } +/* Return true if machine EXTENSION is an extension of machine BASE, + meaning that it should be safe to link code for the two machines + and set the output machine to EXTENSION. EXTENSION and BASE are + both submasks of EF_MIPS_MACH. */ + +static boolean +_bfd_mips_elf_mach_extends_p (base, extension) + flagword base, extension; +{ + /* The vr5500 ISA is an extension of the core vr5400 ISA, but doesn't + include the multimedia stuff. It seems better to allow vr5400 + and vr5500 code to be merged anyway, since many libraries will + just use the core ISA. Perhaps we could add some sort of ASE + flag if this ever proves a problem. */ + return (base == 0 + || (base == E_MIPS_MACH_5400 && extension == E_MIPS_MACH_5500) + || (base == E_MIPS_MACH_4100 && extension == E_MIPS_MACH_4111) + || (base == E_MIPS_MACH_4100 && extension == E_MIPS_MACH_4120)); +} + /* Merge backend specific data from an object file to the output object file when linking. */ @@ -7739,10 +7789,9 @@ _bfd_mips_elf_merge_private_bfd_data (ib /* If either has no machine specified, just compare the general isa's. Some combinations of machines are ok, if the isa's match. */ - if (! new_mach - || ! old_mach - || new_mach == old_mach - ) + if (new_mach == old_mach + || _bfd_mips_elf_mach_extends_p (new_mach, old_mach) + || _bfd_mips_elf_mach_extends_p (old_mach, new_mach)) { /* Don't warn about mixing code using 32-bit ISAs, or mixing code using 64-bit ISAs. They will normally use the same data sizes @@ -7759,8 +7808,11 @@ _bfd_mips_elf_merge_private_bfd_data (ib else { /* Do we need to update the mach field? */ - if (old_mach == 0 && new_mach != 0) - elf_elfheader (obfd)->e_flags |= new_mach; + if (_bfd_mips_elf_mach_extends_p (old_mach, new_mach)) + { + elf_elfheader (obfd)->e_flags &= ~EF_MIPS_MACH; + elf_elfheader (obfd)->e_flags |= new_mach; + } /* Do we need to update the ISA field? */ if (new_isa > old_isa) diff -uprN binutils-2.13.90.0.4/bfd/elfxx-mips.h binutils-2.13.90.0.10/bfd/elfxx-mips.h --- binutils-2.13.90.0.4/bfd/elfxx-mips.h Mon Jul 29 08:19:16 2002 +++ binutils-2.13.90.0.10/bfd/elfxx-mips.h Fri Sep 27 08:33:09 2002 @@ -68,7 +68,8 @@ extern boolean _bfd_mips_elf_gc_sweep_ho PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); extern void _bfd_mips_elf_copy_indirect_symbol - PARAMS ((struct elf_link_hash_entry *, struct elf_link_hash_entry *)); + PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *, + struct elf_link_hash_entry *)); extern void _bfd_mips_elf_hide_symbol PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *, boolean)); extern boolean _bfd_mips_elf_ignore_discarded_relocs diff -uprN binutils-2.13.90.0.4/bfd/irix-core.c binutils-2.13.90.0.10/bfd/irix-core.c --- binutils-2.13.90.0.4/bfd/irix-core.c Sun Feb 3 11:22:30 2002 +++ binutils-2.13.90.0.10/bfd/irix-core.c Fri Sep 27 08:33:09 2002 @@ -4,21 +4,21 @@ Written by Stu Grossman, Cygnus Support. Converted to back-end form by Ian Lance Taylor, Cygnus Support -This file is part of BFD, the Binary File Descriptor library. + 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 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 can only be compiled on systems which use Irix style core files (namely, Irix 4 and Irix 5, so far). */ @@ -49,6 +49,110 @@ static int irix_core_core_file_failing_s static boolean irix_core_core_file_matches_executable_p PARAMS ((bfd *, bfd *)); static void swap_abort PARAMS ((void)); +#ifdef CORE_MAGIC64 +static int do_sections64 PARAMS ((bfd *, struct coreout *)); +#endif +static int do_sections PARAMS ((bfd *, struct coreout *)); + +/* Helper function for irix_core_core_file_p: + 32-bit and 64-bit versions. */ + +#ifdef CORE_MAGIC64 +static int +do_sections64 (abfd, coreout) + bfd * abfd; + struct coreout * coreout; +{ + struct vmap64 vmap; + char *secname; + int i, val; + + for (i = 0; i < coreout->c_nvmap; i++) + { + val = bfd_bread ((PTR) &vmap, (bfd_size_type) sizeof vmap, abfd); + if (val != sizeof vmap) + break; + + switch (vmap.v_type) + { + case VDATA: + secname = ".data"; + break; + case VSTACK: + secname = ".stack"; + break; +#ifdef VMAPFILE + case VMAPFILE: + secname = ".mapfile"; + break; +#endif + default: + continue; + } + + /* A file offset of zero means that the + section is not contained in the corefile. */ + if (vmap.v_offset == 0) + continue; + + if (!make_bfd_asection (abfd, secname, + SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS, + vmap.v_len, vmap.v_vaddr, vmap.v_offset)) + /* Fail. */ + return 0; + } + + return 1; +} +#endif + +/* 32-bit version. */ + +static int +do_sections (abfd, coreout) + bfd * abfd; + struct coreout *coreout; +{ + struct vmap vmap; + char *secname; + int i, val; + + for (i = 0; i < coreout->c_nvmap; i++) + { + val = bfd_bread ((PTR) &vmap, (bfd_size_type) sizeof vmap, abfd); + if (val != sizeof vmap) + break; + + switch (vmap.v_type) + { + case VDATA: + secname = ".data"; + break; + case VSTACK: + secname = ".stack"; + break; +#ifdef VMAPFILE + case VMAPFILE: + secname = ".mapfile"; + break; +#endif + default: + continue; + } + + /* A file offset of zero means that the + section is not contained in the corefile. */ + if (vmap.v_offset == 0) + continue; + + if (!make_bfd_asection (abfd, secname, + SEC_ALLOC | SEC_LOAD+SEC_HAS_CONTENTS, + vmap.v_len, vmap.v_vaddr, vmap.v_offset)) + /* Fail. */ + return 0; + } + return 1; +} static asection * make_bfd_asection (abfd, name, flags, _raw_size, vma, filepos) @@ -79,8 +183,6 @@ irix_core_core_file_p (abfd) bfd *abfd; { int val; - int i; - char *secname; struct coreout coreout; struct idesc *idg, *idf, *ids; bfd_size_type amt; @@ -93,13 +195,22 @@ irix_core_core_file_p (abfd) return 0; } -#ifndef CORE_MAGICN32 -#define CORE_MAGICN32 CORE_MAGIC -#endif - if ((coreout.c_magic != CORE_MAGIC && coreout.c_magic != CORE_MAGICN32) - || coreout.c_version != CORE_VERSION1) + if (coreout.c_version != CORE_VERSION1) return 0; + /* Have we got a corefile? */ + switch (coreout.c_magic) + { + case CORE_MAGIC: break; +#ifdef CORE_MAGIC64 + case CORE_MAGIC64: break; +#endif +#ifdef CORE_MAGICN32 + case CORE_MAGICN32: break; +#endif + default: return 0; /* Un-identifiable or not corefile. */ + } + amt = sizeof (struct sgi_core_struct); core_hdr (abfd) = (struct sgi_core_struct *) bfd_zalloc (abfd, amt); if (!core_hdr (abfd)) @@ -111,45 +222,19 @@ irix_core_core_file_p (abfd) if (bfd_seek (abfd, coreout.c_vmapoffset, SEEK_SET) != 0) goto fail; - for (i = 0; i < coreout.c_nvmap; i++) + /* Process corefile sections. */ +#ifdef CORE_MAGIC64 + if (coreout.c_magic == (int) CORE_MAGIC64) { - struct vmap vmap; - - val = bfd_bread ((PTR) &vmap, (bfd_size_type) sizeof vmap, abfd); - if (val != sizeof vmap) - break; - - switch (vmap.v_type) - { - case VDATA: - secname = ".data"; - break; - case VSTACK: - secname = ".stack"; - break; -#ifdef VMAPFILE - case VMAPFILE: - secname = ".mapfile"; - break; -#endif - default: - continue; - } - - /* A file offset of zero means that the section is not contained - in the corefile. */ - if (vmap.v_offset == 0) - continue; - - if (!make_bfd_asection (abfd, secname, - SEC_ALLOC+SEC_LOAD+SEC_HAS_CONTENTS, - vmap.v_len, - vmap.v_vaddr, - vmap.v_offset)) + if (! do_sections64 (abfd, & coreout)) goto fail; } + else +#endif + if (! do_sections (abfd, & coreout)) + goto fail; - /* Make sure that the regs are contiguous within the core file. */ + /* Make sure that the regs are contiguous within the core file. */ idg = &coreout.c_idesc[I_GPREGS]; idf = &coreout.c_idesc[I_FPREGS]; diff -uprN binutils-2.13.90.0.4/bfd/libbfd.h binutils-2.13.90.0.10/bfd/libbfd.h --- binutils-2.13.90.0.4/bfd/libbfd.h Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/bfd/libbfd.h Wed Oct 2 10:17:19 2002 @@ -799,6 +799,9 @@ static const char *const bfd_reloc_code_ "BFD_RELOC_386_RELATIVE", "BFD_RELOC_386_GOTOFF", "BFD_RELOC_386_GOTPC", + "BFD_RELOC_386_TLS_TPOFF", + "BFD_RELOC_386_TLS_IE", + "BFD_RELOC_386_TLS_GOTIE", "BFD_RELOC_386_TLS_LE", "BFD_RELOC_386_TLS_GD", "BFD_RELOC_386_TLS_LDM", @@ -816,6 +819,14 @@ static const char *const bfd_reloc_code_ "BFD_RELOC_X86_64_RELATIVE", "BFD_RELOC_X86_64_GOTPCREL", "BFD_RELOC_X86_64_32S", + "BFD_RELOC_X86_64_DTPMOD64", + "BFD_RELOC_X86_64_DTPOFF64", + "BFD_RELOC_X86_64_TPOFF64", + "BFD_RELOC_X86_64_TLSGD", + "BFD_RELOC_X86_64_TLSLD", + "BFD_RELOC_X86_64_DTPOFF32", + "BFD_RELOC_X86_64_GOTTPOFF", + "BFD_RELOC_X86_64_TPOFF32", "BFD_RELOC_NS32K_IMM_8", "BFD_RELOC_NS32K_IMM_16", "BFD_RELOC_NS32K_IMM_32", @@ -1041,7 +1052,9 @@ static const char *const bfd_reloc_code_ "BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET", "BFD_RELOC_V850_CALLT_6_7_OFFSET", "BFD_RELOC_V850_CALLT_16_16_OFFSET", - + "BFD_RELOC_V850_LONGCALL", + "BFD_RELOC_V850_LONGJUMP", + "BFD_RELOC_V850_ALIGN", "BFD_RELOC_MN10300_32_PCREL", "BFD_RELOC_MN10300_16_PCREL", "BFD_RELOC_TIC30_LDP", diff -uprN binutils-2.13.90.0.4/bfd/mipsbsd.c binutils-2.13.90.0.10/bfd/mipsbsd.c --- binutils-2.13.90.0.4/bfd/mipsbsd.c Thu Oct 4 14:35:43 2001 +++ binutils-2.13.90.0.10/bfd/mipsbsd.c Fri Sep 27 08:33:09 2002 @@ -1,5 +1,5 @@ /* BFD backend for MIPS BSD (a.out) binaries. - Copyright 1993, 1994, 1995, 1997, 1998, 1999, 2000, 2001 + Copyright 1993, 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Written by Ralph Campbell. @@ -91,12 +91,12 @@ MY(set_arch_mach) (abfd, machtype) { case M_MIPS1: arch = bfd_arch_mips; - machine = 3000; + machine = bfd_mach_mips3000; break; case M_MIPS2: arch = bfd_arch_mips; - machine = 4000; + machine = bfd_mach_mips4000; break; default: @@ -164,8 +164,8 @@ MY (write_object_contents) (abfd) case bfd_arch_mips: switch (bfd_get_mach (abfd)) { - case 4000: - case 6000: + case bfd_mach_mips4000: + case bfd_mach_mips6000: N_SET_MACHTYPE (*execp, M_MIPS2); break; default: diff -uprN binutils-2.13.90.0.4/bfd/opncls.c binutils-2.13.90.0.10/bfd/opncls.c --- binutils-2.13.90.0.4/bfd/opncls.c Tue Jun 18 21:41:58 2002 +++ binutils-2.13.90.0.10/bfd/opncls.c Mon Oct 7 23:08:00 2002 @@ -63,7 +63,9 @@ _bfd_new_bfd () nbfd->direction = no_direction; nbfd->iostream = NULL; nbfd->where = 0; - if (!bfd_hash_table_init (&nbfd->section_htab, bfd_section_hash_newfunc)) + if (!bfd_hash_table_init_n (&nbfd->section_htab, + bfd_section_hash_newfunc, + 251)) { free (nbfd); return NULL; @@ -124,7 +126,7 @@ FUNCTION bfd_openr SYNOPSIS - bfd *bfd_openr(const char *filename, const char *target); + bfd *bfd_openr(const char *filename, const char *target); DESCRIPTION Open the file @var{filename} (using <>) with the target @@ -134,7 +136,8 @@ DESCRIPTION that function. If <> is returned then an error has occured. Possible errors - are <>, <> or <> error. + are <>, <> or + <> error. */ bfd * @@ -179,28 +182,28 @@ bfd_openr (filename, target) the file descriptor too, even though we didn't open it. */ /* FUNCTION - bfd_fdopenr + bfd_fdopenr SYNOPSIS - bfd *bfd_fdopenr(const char *filename, const char *target, int fd); + bfd *bfd_fdopenr(const char *filename, const char *target, int fd); DESCRIPTION - <> is to <> much like <> is to <>. - It opens a BFD on a file already described by the @var{fd} - supplied. - - When the file is later <>d, the file descriptor will be closed. - - If the caller desires that this file descriptor be cached by BFD - (opened as needed, closed as needed to free descriptors for - other opens), with the supplied @var{fd} used as an initial - file descriptor (but subject to closure at any time), call - bfd_set_cacheable(bfd, 1) on the returned BFD. The default is to - assume no cacheing; the file descriptor will remain open until - <>, and will not be affected by BFD operations on other - files. + <> is to <> much like <> is to + <>. It opens a BFD on a file already described by the + @var{fd} supplied. + + When the file is later <>d, the file descriptor will + be closed. If the caller desires that this file descriptor be + cached by BFD (opened as needed, closed as needed to free + descriptors for other opens), with the supplied @var{fd} used as + an initial file descriptor (but subject to closure at any time), + call bfd_set_cacheable(bfd, 1) on the returned BFD. The default + is to assume no cacheing; the file descriptor will remain open + until <>, and will not be affected by BFD operations + on other files. - Possible errors are <>, <> and <>. + Possible errors are <>, + <> and <>. */ bfd * @@ -389,10 +392,10 @@ SYNOPSIS DESCRIPTION - Close a BFD. If the BFD was open for writing, - then pending operations are completed and the file written out - and closed. If the created file is executable, then - <> is called to mark it as such. + Close a BFD. If the BFD was open for writing, then pending + operations are completed and the file written out and closed. + If the created file is executable, then <> is called + to mark it as such. All memory attached to the BFD is released. @@ -431,7 +434,7 @@ bfd_close (abfd) if (stat (abfd->filename, &buf) == 0) { - unsigned int mask = umask (0); + unsigned int mask = umask (0); umask (mask); chmod (abfd->filename, @@ -453,10 +456,10 @@ SYNOPSIS boolean bfd_close_all_done(bfd *); DESCRIPTION - Close a BFD. Differs from <> - since it does not complete any pending operations. This - routine would be used if the application had just used BFD for - swapping and didn't want to use any of the writing code. + Close a BFD. Differs from <> since it does not + complete any pending operations. This routine would be used + if the application had just used BFD for swapping and didn't + want to use any of the writing code. If the created file is executable, then <> is called to mark it as such. @@ -507,10 +510,9 @@ SYNOPSIS bfd *bfd_create(const char *filename, bfd *templ); DESCRIPTION - Create a new BFD in the manner of - <>, but without opening a file. The new BFD - takes the target from the target used by @var{template}. The - format is always set to <>. + Create a new BFD in the manner of <>, but without + opening a file. The new BFD takes the target from the target + used by @var{template}. The format is always set to <>. */ bfd * diff -uprN binutils-2.13.90.0.4/bfd/pdp11.c binutils-2.13.90.0.10/bfd/pdp11.c --- binutils-2.13.90.0.4/bfd/pdp11.c Wed Jun 26 09:24:56 2002 +++ binutils-2.13.90.0.10/bfd/pdp11.c Fri Sep 27 08:33:09 2002 @@ -955,7 +955,10 @@ NAME(aout,machine_type) (arch, machine, break; case bfd_arch_i386: - if (machine == 0) arch_flags = M_386; + if (machine == 0 + || machine == bfd_mach_i386_i386 + || machine == bfd_mach_i386_i386_intel_syntax) + arch_flags = M_386; break; case bfd_arch_a29k: diff -uprN binutils-2.13.90.0.4/bfd/po/SRC-POTFILES.in binutils-2.13.90.0.10/bfd/po/SRC-POTFILES.in --- binutils-2.13.90.0.4/bfd/po/SRC-POTFILES.in Mon Jul 29 08:19:16 2002 +++ binutils-2.13.90.0.10/bfd/po/SRC-POTFILES.in Fri Sep 27 08:33:09 2002 @@ -45,6 +45,7 @@ coff-sparc.c coff-stgo32.c coff-svm68k.c coff-tic30.c +coff-tic4x.c coff-tic54x.c coff-tic80.c coff-u68k.c @@ -98,6 +99,7 @@ cpu-s390.c cpu-sh.c cpu-sparc.c cpu-tic30.c +cpu-tic4x.c cpu-tic54x.c cpu-tic80.c cpu-v850.c @@ -135,6 +137,7 @@ elf32-h8300.c elf32-hppa.c elf32-hppa.h elf32-i370.c +elf32-i386-fbsd.c elf32-i386.c elf32-i386qnx.c elf32-i860.c @@ -151,6 +154,7 @@ elf32-openrisc.c elf32-or32.c elf32-pj.c elf32-ppc.c +elf32-ppcqnx.c elf32-s390.c elf32-sh-lin.c elf32-sh-nbsd.c @@ -158,11 +162,13 @@ elf32-sh.c elf32-sh64-com.c elf32-sh64-nbsd.c elf32-sh64.c +elf32-shqnx.c elf32-sparc.c elf32-v850.c elf32-vax.c elf32-xstormy16.c elf32.c +elf64-alpha-fbsd.c elf64-alpha.c elf64-gen.c elf64-hppa.c @@ -178,10 +184,12 @@ elf64-x86-64.c elf64.c elfarm-nabi.c elfarm-oabi.c +elfarmqnx-nabi.c elfcode.h elfcore.h elflink.c elflink.h +elfn32-mips.c elfxx-mips.c epoc-pe-arm.c epoc-pei-arm.c diff -uprN binutils-2.13.90.0.4/bfd/po/da.po binutils-2.13.90.0.10/bfd/po/da.po --- binutils-2.13.90.0.4/bfd/po/da.po Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/bfd/po/da.po Fri Sep 27 08:33:09 2002 @@ -0,0 +1,2745 @@ +# Danish messages for bfd. +# Copyright (C) 2001, 2002 Free Software Foundation, Inc. +# Keld Simonsen , 2002 +# +msgid "" +msgstr "" +"Project-Id-Version: bfd 2.12.91\n" +"POT-Creation-Date: 2002-07-23 15:55-0400\n" +"PO-Revision-Date: 2002-09-07 21:55+0200\n" +"Last-Translator: Keld Simonsen \n" +"Language-Team: Danish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" + +#: aout-adobe.c:197 +#, c-format +msgid "%s: Unknown section type in a.out.adobe file: %x\n" +msgstr "%s: Ukendt sektionstype i a.out.adobe-fil: %x\n" + +#: aout-cris.c:208 +#, c-format +msgid "%s: Invalid relocation type exported: %d" +msgstr "%s: Ugyldig relokaliseringstype eksporteret: %d" + +#: aout-cris.c:252 +#, c-format +msgid "%s: Invalid relocation type imported: %d" +msgstr "%s: Ugyldig relokaliseringstype importeret: %d" + +#: aout-cris.c:263 +#, c-format +msgid "%s: Bad relocation record imported: %d" +msgstr "%s: Fejlagtig relokaliseringstype importeret: %d" + +#: aoutx.h:1282 aoutx.h:1699 +#, c-format +msgid "%s: can not represent section `%s' in a.out object file format" +msgstr "%s: kan ikke representere sektionen \"%s\" i a.out-objektfilformat" + +#: aoutx.h:1669 +#, c-format +msgid "%s: can not represent section for symbol `%s' in a.out object file format" +msgstr "%s: kan ikke representere sektion for symbolet \"%s\" i a.out-objektfilformat" + +#: aoutx.h:1671 +msgid "*unknown*" +msgstr "*ukendt*" + +#: aoutx.h:3732 +#, c-format +msgid "%s: relocateable link from %s to %s not supported" +msgstr "%s: relokaliseringsbar lænke fra %s til %s understøttes inte" + +#: archive.c:1826 +msgid "Warning: writing archive was slow: rewriting timestamp\n" +msgstr "Advarsel: arkivskrivning var langsom: genskriver tidsstempel\n" + +#: archive.c:2093 +msgid "Reading archive file mod timestamp" +msgstr "Læser arkivfilens ændringstidsstempel" + +#. FIXME: bfd can't call perror. +#: archive.c:2120 +msgid "Writing updated armap timestamp" +msgstr "Skriver opdateret armap-tidsstempel" + +#: bfd.c:274 +msgid "No error" +msgstr "Ingen fejl" + +#: bfd.c:275 +msgid "System call error" +msgstr "Systemkaldsfejl" + +#: bfd.c:276 +msgid "Invalid bfd target" +msgstr "Ugyldigt bfd-mål" + +#: bfd.c:277 +msgid "File in wrong format" +msgstr "Filen er i forkert format" + +#: bfd.c:278 +msgid "Archive object file in wrong format" +msgstr "Arkivobjektfil er i forkert format" + +#: bfd.c:279 +msgid "Invalid operation" +msgstr "Ugyldig handling" + +#: bfd.c:280 +msgid "Memory exhausted" +msgstr "Hukommelsen er opbrugt" + +#: bfd.c:281 +msgid "No symbols" +msgstr "Ingen symboler" + +#: bfd.c:282 +msgid "Archive has no index; run ranlib to add one" +msgstr "Arkivet har intet index; kør ranlib for at tilføje ét" + +#: bfd.c:283 +msgid "No more archived files" +msgstr "Ikke flere arkiverede filer" + +#: bfd.c:284 +msgid "Malformed archive" +msgstr "Forvansket arkiv" + +#: bfd.c:285 +msgid "File format not recognized" +msgstr "Filformatet ikke genkendt" + +#: bfd.c:286 +msgid "File format is ambiguous" +msgstr "Filformatet er flertydigt" + +#: bfd.c:287 +msgid "Section has no contents" +msgstr "Sektionen har intet indhold" + +#: bfd.c:288 +msgid "Nonrepresentable section on output" +msgstr "Ikkerepræsenterbar sektion i uddata" + +#: bfd.c:289 +msgid "Symbol needs debug section which does not exist" +msgstr "Symbolet kræver fejlsøgningssektion som ikke eksisterer" + +#: bfd.c:290 +msgid "Bad value" +msgstr "Fejlagtigt værdi" + +#: bfd.c:291 +msgid "File truncated" +msgstr "Filen trunkeret" + +#: bfd.c:292 +msgid "File too big" +msgstr "Filen er for stor" + +#: bfd.c:293 +msgid "#" +msgstr "#" + +#: bfd.c:700 +#, c-format +msgid "BFD %s assertion fail %s:%d" +msgstr "BFD %s-forsikring mislykkedes %s:%d" + +#: bfd.c:719 +#, c-format +msgid "BFD %s internal error, aborting at %s line %d in %s\n" +msgstr "Intern BFD %s-fejl, afbryder ved %s linje %d i %s\n" + +#: bfd.c:723 +#, c-format +msgid "BFD %s internal error, aborting at %s line %d\n" +msgstr "Internt BFD %s-fejl, afbryder ved %s linje %d\n" + +#: bfd.c:725 +msgid "Please report this bug.\n" +msgstr "Rapportér gerne denne fejl.\n" + +#: binary.c:306 +#, c-format +msgid "Warning: Writing section `%s' to huge (ie negative) file offset 0x%lx." +msgstr "Advarsel: Skrivning af sektionen \"%s\" til enorm (dvs negativ) afsætsbyte 0x%lx." + +# src/menus.c:341 +#: coff-a29k.c:119 +msgid "Missing IHCONST" +msgstr "IHCONST mangler" + +# src/menus.c:341 +#: coff-a29k.c:180 +msgid "Missing IHIHALF" +msgstr "IHIHALF mangler" + +#: coff-a29k.c:212 coff-or32.c:229 +msgid "Unrecognized reloc" +msgstr "Ukendt relokalisering" + +#: coff-a29k.c:408 +msgid "missing IHCONST reloc" +msgstr "IHCONST-relokalisering mangler" + +#: coff-a29k.c:498 +msgid "missing IHIHALF reloc" +msgstr "IHIHALF-relokalisering mangler" + +#: coff-alpha.c:881 coff-alpha.c:918 coff-alpha.c:1989 coff-mips.c:1432 +msgid "GP relative relocation used when GP not defined" +msgstr "GP-relativ relokalisering bruges når GP ikke er defineret" + +#: coff-alpha.c:1485 +msgid "using multiple gp values" +msgstr "bruger flere gp-værdier" + +#: coff-arm.c:1066 elf32-arm.h:285 +#, c-format +msgid "%s: unable to find THUMB glue '%s' for `%s'" +msgstr "%s: kunne ikke finde THUMB-klistret \"%s\" til \"%s\"" + +#: coff-arm.c:1096 elf32-arm.h:320 +#, c-format +msgid "%s: unable to find ARM glue '%s' for `%s'" +msgstr "%s: kunne ikke finde ARM-klistret \"%s\" til \"%s\"" + +#: coff-arm.c:1391 coff-arm.c:1486 elf32-arm.h:887 elf32-arm.h:991 +#, c-format +msgid "%s(%s): warning: interworking not enabled." +msgstr "%s(%s): advarsel: samvirken er ikke aktiveret." + +#: coff-arm.c:1395 elf32-arm.h:994 +#, c-format +msgid " first occurrence: %s: arm call to thumb" +msgstr " første forekomst: %s: arm-kald til thumb" + +#: coff-arm.c:1490 elf32-arm.h:890 +#, c-format +msgid " first occurrence: %s: thumb call to arm" +msgstr " første forekomst: %s: thumb-kald til arm" + +#: coff-arm.c:1493 +msgid " consider relinking with --support-old-code enabled" +msgstr " overvej omlænkning med --support-old-code aktiveret" + +#: coff-arm.c:1785 coff-tic80.c:686 cofflink.c:3031 +#, c-format +msgid "%s: bad reloc address 0x%lx in section `%s'" +msgstr "%s: fejlagtig relokaliseringsadresse 0x%lx i sektionen \"%s\"" + +#: coff-arm.c:2127 +#, c-format +msgid "%s: illegal symbol index in reloc: %d" +msgstr "%s: utilladt symbolindex i relokalisering: %d" + +#: coff-arm.c:2255 +#, c-format +msgid "ERROR: %s is compiled for APCS-%d, whereas %s is compiled for APCS-%d" +msgstr "FEJL: %s kompileret for APCS-%d, mens %s er kompileret for APCS-%d" + +#: coff-arm.c:2270 elf32-arm.h:2297 +#, c-format +msgid "ERROR: %s passes floats in float registers, whereas %s passes them in integer registers" +msgstr "FEJL: %s overfører flydende tal i flydende talsregister, mens %s overfører dem i heltalsregister" + +#: coff-arm.c:2273 elf32-arm.h:2302 +#, c-format +msgid "ERROR: %s passes floats in integer registers, whereas %s passes them in float registers" +msgstr "FEJL: %s overfører flydende tal i heltalsregister, mens %s overfører dem i flydendetalsregister" + +#: coff-arm.c:2288 +#, c-format +msgid "ERROR: %s is compiled as position independent code, whereas target %s is absolute position" +msgstr "FEJL: %s er kompileret som positionsuafhængig kode, mens målet %s har absolut position" + +#: coff-arm.c:2291 +#, c-format +msgid "ERROR: %s is compiled as absolute position code, whereas target %s is position independent" +msgstr "FEJL: %s er kompileret som kode med absolut position, mens målet %s er positionsuafhængigt" + +#: coff-arm.c:2320 elf32-arm.h:2358 +#, c-format +msgid "Warning: %s supports interworking, whereas %s does not" +msgstr "Advarsel: %s understøtter samvirken, mens %s derimod ikke gør det" + +#: coff-arm.c:2323 elf32-arm.h:2365 +#, c-format +msgid "Warning: %s does not support interworking, whereas %s does" +msgstr "Advarsel: %s understøtter ikke samvirken, mens %s derimod gør det" + +#: coff-arm.c:2350 +#, c-format +msgid "private flags = %x:" +msgstr "private flag = %x:" + +#: coff-arm.c:2358 elf32-arm.h:2418 +msgid " [floats passed in float registers]" +msgstr " [flydende tal overført i flydendetalsregistre]" + +#: coff-arm.c:2360 +msgid " [floats passed in integer registers]" +msgstr " [flydende tal overført i heltalsregistre]" + +#: coff-arm.c:2363 elf32-arm.h:2421 +msgid " [position independent]" +msgstr " [positionsuafhængigt]" + +#: coff-arm.c:2365 +msgid " [absolute position]" +msgstr " [absolut position]" + +#: coff-arm.c:2369 +msgid " [interworking flag not initialised]" +msgstr " [samvirkendeflag er ikke initieret]" + +#: coff-arm.c:2371 +msgid " [interworking supported]" +msgstr " [samvirken understøttes]" + +#: coff-arm.c:2373 +msgid " [interworking not supported]" +msgstr " [samvirken understøttes ikke]" + +#: coff-arm.c:2421 elf32-arm.h:2124 +#, c-format +msgid "Warning: Not setting interworking flag of %s since it has already been specified as non-interworking" +msgstr "Advarsel: Sætter ikke samvirkeflaget for %s da den allerede er angivet som ikke-samvirkende" + +#: coff-arm.c:2425 elf32-arm.h:2128 +#, c-format +msgid "Warning: Clearing the interworking flag of %s due to outside request" +msgstr "Advarsel: Fjerner samvirkeflaget for %s på grund af anmodning udefra" + +#: coff-i960.c:136 coff-i960.c:485 +msgid "uncertain calling convention for non-COFF symbol" +msgstr "usikker kaldskonvention for ikke-COFF-symbol" + +#: coff-m68k.c:481 coff-mips.c:2429 elf32-m68k.c:2157 elf32-mips.c:1844 +msgid "unsupported reloc type" +msgstr "relokaliseringstypen understøttes ikke" + +#: coff-mips.c:874 elf32-mips.c:1062 elf64-mips.c:1609 +msgid "GP relative relocation when _gp not defined" +msgstr "GP-relativ relokalisering når _gp ikke var defineret" + +#. No other sections should appear in -membedded-pic +#. code. +#: coff-mips.c:2466 +msgid "reloc against unsupported section" +msgstr "relokalisering mod sektion som ikke understøttes" + +#: coff-mips.c:2474 +msgid "reloc not properly aligned" +msgstr "relokalisering ikke på lige grænse" + +#: coff-rs6000.c:2766 +#, c-format +msgid "%s: unsupported relocation type 0x%02x" +msgstr "%s: relokaliseringstypen 0x%02x understøttes ikke" + +#: coff-rs6000.c:2859 +#, c-format +msgid "%s: TOC reloc at 0x%x to symbol `%s' with no TOC entry" +msgstr "%s: TOC-relokalisering ved 0x%x til symbolet \"%s\" uden nogen TOC-post" + +#: coff-rs6000.c:3590 coff64-rs6000.c:2091 +#, c-format +msgid "%s: symbol `%s' has unrecognized smclas %d" +msgstr "%s: symbolet \"%s\" har ukendt smclas %d" + +#: coff-tic54x.c:279 coff-tic80.c:449 +#, c-format +msgid "Unrecognized reloc type 0x%x" +msgstr "Ukendt relokaliseringstype 0x%x" + +#: coff-tic54x.c:390 coffcode.h:4974 +#, c-format +msgid "%s: warning: illegal symbol index %ld in relocs" +msgstr "%s: advarsel: utilladt symbolindex %ld i relokaliseringerne" + +#: coff-w65.c:363 +#, c-format +msgid "ignoring reloc %s\n" +msgstr "ignorerer relokalisering %s\n" + +#: coffcode.h:1086 +#, c-format +msgid "%s (%s): Section flag %s (0x%x) ignored" +msgstr "%s (%s): Sektionsflaget %s (0x%x) ignoreredes" + +#: coffcode.h:2143 +#, c-format +msgid "Unrecognized TI COFF target id '0x%x'" +msgstr "Ukendt TI COFF-mål-id \"0x%x\"" + +#: coffcode.h:4365 +#, c-format +msgid "%s: warning: illegal symbol index %ld in line numbers" +msgstr "%s: advarsel: utilladt symbolindex %ld i linjenummer" + +#: coffcode.h:4379 +#, c-format +msgid "%s: warning: duplicate line number information for `%s'" +msgstr "%s: advarsel: dobbelt linjenummersinformation for \"%s\"" + +#: coffcode.h:4736 +#, c-format +msgid "%s: Unrecognized storage class %d for %s symbol `%s'" +msgstr "%s: Ukendt lagringsklasse %d for %s-symbolet \"%s\"" + +#: coffcode.h:4867 +#, c-format +msgid "warning: %s: local symbol `%s' has no section" +msgstr "advarsel: %s: lokalt symbol \"%s\" har ingen sektion" + +#: coffcode.h:5012 +#, c-format +msgid "%s: illegal relocation type %d at address 0x%lx" +msgstr "%s: utilladt relokaliseringstype %d på adresse 0x%lx" + +#: coffgen.c:1661 +#, c-format +msgid "%s: bad string table size %lu" +msgstr "%s: fejlagtig strengtabelstørrelse %lu" + +#: cofflink.c:534 elflink.h:1912 +#, c-format +msgid "Warning: type of symbol `%s' changed from %d to %d in %s" +msgstr "Advarsel: typen på symbol \"%s\" ændredes fra %d til %d i %s" + +#: cofflink.c:2321 +#, c-format +msgid "%s: relocs in section `%s', but it has no contents" +msgstr "%s: relokaliseringer i sektionen \"%s\", men den har intet indhold" + +#: cofflink.c:2664 coffswap.h:877 +#, c-format +msgid "%s: %s: reloc overflow: 0x%lx > 0xffff" +msgstr "%s: %s: relokalisering giver overløb: 0x%lx > 0xffff" + +#: cofflink.c:2673 coffswap.h:864 +#, c-format +msgid "%s: warning: %s: line number overflow: 0x%lx > 0xffff" +msgstr "%s: advarsel: %s: linjenummer giver overløb: 0x%lx > 0xffff" + +#: dwarf2.c:382 +msgid "Dwarf Error: Can't find .debug_str section." +msgstr "Dwarf-fejl: Kan ikke finde sektionen .debug_str." + +#: dwarf2.c:399 +#, c-format +msgid "Dwarf Error: DW_FORM_strp offset (%lu) greater than or equal to .debug_str size (%lu)." +msgstr "Dwarf-fejl: DW_FORM_strp-afstanden (%lu) større end eller lig med størrelsen på .debug_str (%lu)." + +#: dwarf2.c:543 +msgid "Dwarf Error: Can't find .debug_abbrev section." +msgstr "Dwarf-fejl: Kan ikke finde sektionen .debug_abbrev." + +#: dwarf2.c:560 +#, c-format +msgid "Dwarf Error: Abbrev offset (%lu) greater than or equal to .debug_abbrev size (%lu)." +msgstr "Dwarf-fejl: Forkortningsafstanden (%lu) større end eller lig med størrelsen .debug_abbrev (%lu)." + +#: dwarf2.c:757 +#, c-format +msgid "Dwarf Error: Invalid or unhandled FORM value: %u." +msgstr "Dwarf-fejl: Ugyldig eller ubehandlet FORM-værdi: %u." + +#: dwarf2.c:852 +msgid "Dwarf Error: mangled line number section (bad file number)." +msgstr "Dwarf-fejl: vanskabt linjenummerssektion (fejlagtigt filnummer)." + +#: dwarf2.c:938 +msgid "Dwarf Error: Can't find .debug_line section." +msgstr "Dwarf-fejl: Kan ikke finde sektionen .debug_line." + +#: dwarf2.c:961 +#, c-format +msgid "Dwarf Error: Line offset (%lu) greater than or equal to .debug_line size (%lu)." +msgstr "Dwarf-fejl: Linjeafstanden (%lu) større end eller lig med størrelsen .debug_line (%lu)." + +#: dwarf2.c:1159 +msgid "Dwarf Error: mangled line number section." +msgstr "Dwarf-fejl: vanskabt linjenummerssektion." + +#: dwarf2.c:1355 dwarf2.c:1566 +#, c-format +msgid "Dwarf Error: Could not find abbrev number %u." +msgstr "Dwarf-fejl: Kunne ikke finde forkortningsnumret %u." + +#: dwarf2.c:1527 +#, c-format +msgid "Dwarf Error: found dwarf version '%u', this reader only handles version 2 information." +msgstr "Dwarf-fejl: fandt dwarf version \"%u\", denne læser håndterer kun information fra version 2." + +#: dwarf2.c:1534 +#, c-format +msgid "Dwarf Error: found address size '%u', this reader can not handle sizes greater than '%u'." +msgstr "Dwarf-fejl: fandt adressestørrelsen \"%u\", denne læser kan ikke håndtere størrelser større end \"%u\"." + +#: dwarf2.c:1557 +#, c-format +msgid "Dwarf Error: Bad abbrev number: %u." +msgstr "Dwarf-fejl: Fejlagtigt forkortningsnummer: %u." + +#: ecoff.c:1318 +#, c-format +msgid "Unknown basic type %d" +msgstr "Ukendt grundtype %d" + +#: ecoff.c:1578 +#, c-format +msgid "" +"\n" +" End+1 symbol: %ld" +msgstr "" +"\n" +" Symbol slut+1: %ld" + +#: ecoff.c:1585 ecoff.c:1588 +#, c-format +msgid "" +"\n" +" First symbol: %ld" +msgstr "" +"\n" +" Første symbol: %ld" + +#: ecoff.c:1600 +#, c-format +msgid "" +"\n" +" End+1 symbol: %-7ld Type: %s" +msgstr "" +"\n" +" Symbol slut+1: %-7ld Typ: %s" + +#: ecoff.c:1607 +#, c-format +msgid "" +"\n" +" Local symbol: %ld" +msgstr "" +"\n" +" Lokalt symbol: %ld" + +#: ecoff.c:1615 +#, c-format +msgid "" +"\n" +" struct; End+1 symbol: %ld" +msgstr "" +"\n" +" struct; symbol slut+1: %ld" + +#: ecoff.c:1620 +#, c-format +msgid "" +"\n" +" union; End+1 symbol: %ld" +msgstr "" +"\n" +" union; symbol slut+1: %ld" + +#: ecoff.c:1625 +#, c-format +msgid "" +"\n" +" enum; End+1 symbol: %ld" +msgstr "" +"\n" +" enum; symbol slut+1: %ld" + +#: ecoff.c:1631 +#, c-format +msgid "" +"\n" +" Type: %s" +msgstr "" +"\n" +" Type: %s" + +#: elf-hppa.h:1476 elf-hppa.h:1509 elf32-ppc.c:3091 elf32-sh.c:4213 +#: elf64-sh64.c:1659 +#, c-format +msgid "%s: warning: unresolvable relocation against symbol `%s' from %s section" +msgstr "%s: advarsel: uløselig relokalisering mod symbol \"%s\" fra sektionen %s" + +#: elf-m10200.c:446 elf-m10300.c:656 elf32-arm.h:2084 elf32-avr.c:833 +#: elf32-cris.c:1403 elf32-d10v.c:481 elf32-fr30.c:635 elf32-frv.c:809 +#: elf32-h8300.c:548 elf32-i860.c:1031 elf32-m32r.c:1278 elf32-openrisc.c:439 +#: elf32-v850.c:1691 elf32-xstormy16.c:933 elf64-mmix.c:1302 +msgid "internal error: out of range error" +msgstr "intern fejl: udenfor intervallet" + +#: elf-m10200.c:450 elf-m10300.c:660 elf32-arm.h:2088 elf32-avr.c:837 +#: elf32-cris.c:1407 elf32-d10v.c:485 elf32-fr30.c:639 elf32-frv.c:813 +#: elf32-h8300.c:552 elf32-i860.c:1035 elf32-m32r.c:1282 elf32-openrisc.c:443 +#: elf32-v850.c:1695 elf32-xstormy16.c:937 elf64-mmix.c:1306 elfxx-mips.c:5264 +msgid "internal error: unsupported relocation error" +msgstr "intern fejl: relokaliseringen understøttes ikke" + +#: elf-m10200.c:454 elf-m10300.c:664 elf32-arm.h:2092 elf32-d10v.c:489 +#: elf32-h8300.c:556 elf32-m32r.c:1286 +msgid "internal error: dangerous error" +msgstr "intern fejl: farlig fejl" + +#: elf-m10200.c:458 elf-m10300.c:668 elf32-arm.h:2096 elf32-avr.c:845 +#: elf32-cris.c:1415 elf32-d10v.c:493 elf32-fr30.c:647 elf32-frv.c:821 +#: elf32-h8300.c:560 elf32-i860.c:1043 elf32-m32r.c:1290 elf32-openrisc.c:451 +#: elf32-v850.c:1715 elf32-xstormy16.c:945 elf64-mmix.c:1314 +msgid "internal error: unknown error" +msgstr "intern fejl: ukendt fejl" + +#: elf.c:343 +#, c-format +msgid "%s: invalid string offset %u >= %lu for section `%s'" +msgstr "%s: ugyldig strengafstand %u >= %lu for sektionen \"%s\"" + +#: elf.c:589 +#, c-format +msgid "%s: invalid SHT_GROUP entry" +msgstr "%s: ugyldig SHT_GROUP-post" + +#: elf.c:660 +#, c-format +msgid "%s: no group info for section %s" +msgstr "%s: ingen gruppeinformation for sektionen %s" + +#: elf.c:1023 +msgid "" +"\n" +"Program Header:\n" +msgstr "" +"\n" +"Programhoved:\n" + +#: elf.c:1073 +msgid "" +"\n" +"Dynamic Section:\n" +msgstr "" +"\n" +"Dynamisk sektion:\n" + +#: elf.c:1202 +msgid "" +"\n" +"Version definitions:\n" +msgstr "" +"\n" +"Versionsdefinitioner:\n" + +#: elf.c:1225 +msgid "" +"\n" +"Version References:\n" +msgstr "" +"\n" +"Versionsreferencer:\n" + +#: elf.c:1230 +#, c-format +msgid " required from %s:\n" +msgstr " kræves fra %s:\n" + +#: elf.c:1902 +#, c-format +msgid "%s: invalid link %lu for reloc section %s (index %u)" +msgstr "%s: ugyldig lænke %lu for relokaliseringssektion %s (index %u)" + +#: elf.c:3603 +#, c-format +msgid "%s: Not enough room for program headers (allocated %u, need %u)" +msgstr "%s: Ikke tilstrækkeligt med plads for programhoveder (allokerede %u, behøver %u)" + +#: elf.c:3708 +#, c-format +msgid "%s: Not enough room for program headers, try linking with -N" +msgstr "%s: Ikke tilstrækkeligt med plads for programhoveder, forsøg at lænke med -N" + +#: elf.c:3833 +#, c-format +msgid "Error: First section in segment (%s) starts at 0x%x whereas the segment starts at 0x%x" +msgstr "Fejl: Første sektion i segmentet (%s) begynder ved 0x%x mens segmentet begynder ved 0x%x" + +#: elf.c:4148 +#, c-format +msgid "%s: warning: allocated section `%s' not in segment" +msgstr "%s: advarsel: allokeret sektion \"%s\" ikke i segment" + +#: elf.c:4472 +#, c-format +msgid "%s: symbol `%s' required but not present" +msgstr "%s: symbol \"%s\" kræves men er ikke tilstede" + +#: elf.c:4749 +#, c-format +msgid "%s: warning: Empty loadable segment detected, is this intentional ?\n" +msgstr "%s: advarsel: Tomt indlæsningsbart segment opdaget, er dette meningen?\n" + +#: elf.c:6193 +#, c-format +msgid "%s: unsupported relocation type %s" +msgstr "%s: relokaliseringstypen %s understøttes ikke" + +#: elf32-arm.h:1221 +#, c-format +msgid "%s: Warning: Arm BLX instruction targets Arm function '%s'." +msgstr "%s: Advarsel: Arm BLX-instruktion bruger Arm-funktionen \"%s\" som mål." + +#: elf32-arm.h:1417 +#, c-format +msgid "%s: Warning: Thumb BLX instruction targets thumb function '%s'." +msgstr "%s: Advarsel: Thumb BLX-instruktionen bruger thumb-funktionen \"%s\" som mål." + +#: elf32-arm.h:1914 elf32-sh.c:4125 +#, c-format +msgid "%s(%s+0x%lx): %s relocation against SEC_MERGE section" +msgstr "%s(%s+0x%lx): %s relokalisering mod SEC_MERGE-sektion" + +#: elf32-arm.h:2008 +#, c-format +msgid "%s: warning: unresolvable relocation %d against symbol `%s' from %s section" +msgstr "%s: advarsel: uløselig relokalisering %d mod symbol \"%s\" fra sektionen %s" + +#: elf32-arm.h:2176 +#, c-format +msgid "Warning: Clearing the interworking flag of %s because non-interworking code in %s has been linked with it" +msgstr "Advarsel: Fjerner samvirkendeflaget i %s eftersom ikke-samvirkende kode i %s er lænket med det" + +#: elf32-arm.h:2271 +#, c-format +msgid "ERROR: %s is compiled for EABI version %d, whereas %s is compiled for version %d" +msgstr "FEJL: %s er kompileret for EABI version %d, mens %s er kompileret for version %d" + +#: elf32-arm.h:2285 +#, c-format +msgid "ERROR: %s is compiled for APCS-%d, whereas target %s uses APCS-%d" +msgstr "FEJL: %s er kompileret for APCS-%d, mens målet %s bruger APCS-%d" + +#: elf32-arm.h:2313 +#, c-format +msgid "ERROR: %s uses VFP instructions, whereas %s uses FPA instructions" +msgstr "FEJL: %s bruger VFP-instruktioner, mens %s bruger FPA-instruktioner" + +#: elf32-arm.h:2318 +#, c-format +msgid "ERROR: %s uses FPA instructions, whereas %s uses VFP instructions" +msgstr "FEJL: %s bruger FPA-instruktioner, mens %s bruger VFP-instruktioner" + +#: elf32-arm.h:2338 +#, c-format +msgid "ERROR: %s uses software FP, whereas %s uses hardware FP" +msgstr "FEJL: %s bruger programmeret flydende tal, mens %s bruger maskinens flydende tal" + +#: elf32-arm.h:2343 +#, c-format +msgid "ERROR: %s uses hardware FP, whereas %s uses software FP" +msgstr "FEJL: %s bruger maskinens flydende tal, mens %s bruger programmeret flydende tal" + +#. Ignore init flag - it may not be set, despite the flags field +#. containing valid data. +#: elf32-arm.h:2396 elf32-cris.c:2988 elf32-m68k.c:410 elf32-vax.c:543 +#: elfxx-mips.c:7756 +#, c-format +msgid "private flags = %lx:" +msgstr "private flag = %lx:" + +#: elf32-arm.h:2405 +msgid " [interworking enabled]" +msgstr " [samvirkende er aktiveret]" + +#: elf32-arm.h:2413 +msgid " [VFP float format]" +msgstr " [VFP-flydende talsformat]" + +#: elf32-arm.h:2415 +msgid " [FPA float format]" +msgstr " [FPA-flydende talsformat]" + +#: elf32-arm.h:2424 +msgid " [new ABI]" +msgstr " [nyt ABI]" + +#: elf32-arm.h:2427 +msgid " [old ABI]" +msgstr " [gammelt ABI]" + +#: elf32-arm.h:2430 +msgid " [software FP]" +msgstr " [programmeret FP]" + +#: elf32-arm.h:2438 +msgid " [Version1 EABI]" +msgstr " [Version1 EABI]" + +#: elf32-arm.h:2441 elf32-arm.h:2452 +msgid " [sorted symbol table]" +msgstr " [sorteret symboltabel]" + +#: elf32-arm.h:2443 elf32-arm.h:2454 +msgid " [unsorted symbol table]" +msgstr " [usorteret symboltabel]" + +#: elf32-arm.h:2449 +msgid " [Version2 EABI]" +msgstr " [Version2 EABI]" + +#: elf32-arm.h:2457 +msgid " [dynamic symbols use segment index]" +msgstr " [dynamiske symboler bruger segmentindex]" + +#: elf32-arm.h:2460 +msgid " [mapping symbols precede others]" +msgstr " [mapningssymboler foretrækkes frem for andre]" + +#: elf32-arm.h:2467 +msgid " " +msgstr " " + +#: elf32-arm.h:2474 +msgid " [relocatable executable]" +msgstr " [relokaliseringsbar kørbar fil]" + +#: elf32-arm.h:2477 +msgid " [has entry point]" +msgstr " [har startpunkt]" + +#: elf32-arm.h:2482 +msgid "" +msgstr "" + +#: elf32-avr.c:841 elf32-cris.c:1411 elf32-fr30.c:643 elf32-frv.c:817 +#: elf32-i860.c:1039 elf32-openrisc.c:447 elf32-v850.c:1699 +#: elf32-xstormy16.c:941 elf64-mmix.c:1310 +msgid "internal error: dangerous relocation" +msgstr "intern fejl: farlig relokalisering" + +#: elf32-cris.c:949 +#, c-format +msgid "%s: unresolvable relocation %s against symbol `%s' from %s section" +msgstr "%s: uløselig relokalisering %s mod symbol \"%s\" fra sektionen %s" + +#: elf32-cris.c:1012 +#, c-format +msgid "%s: No PLT nor GOT for relocation %s against symbol `%s' from %s section" +msgstr "%s: Hverken nogen PLT eller GOT for relokalisering %s mod symbol \"%s\" fra sektionen %s" + +#: elf32-cris.c:1015 elf32-cris.c:1141 +msgid "[whose name is lost]" +msgstr "[hvis navn er tabt]" + +#: elf32-cris.c:1130 +#, c-format +msgid "%s: relocation %s with non-zero addend %d against local symbol from %s section" +msgstr "%s: relokalisering %s med ikke-tomt addendum %d mod lokalt symbol fra sektionen %s" + +#: elf32-cris.c:1137 +#, c-format +msgid "%s: relocation %s with non-zero addend %d against symbol `%s' from %s section" +msgstr "%s: relokalisering %s med ikke-tomt addendum %d mod symbol \"%s\" fra sektionen %s" + +#: elf32-cris.c:1155 +#, c-format +msgid "%s: relocation %s is not allowed for global symbol: `%s' from %s section" +msgstr "%s: relokaliseringen %s er ikke tilladt for globalt symbol: \"%s\" fra sektionen %s" + +#: elf32-cris.c:1170 +#, c-format +msgid "%s: relocation %s in section %s with no GOT created" +msgstr "%s: relokalisering %s i sektionen %s uden GOT oprettet" + +#: elf32-cris.c:1288 +#, c-format +msgid "%s: Internal inconsistency; no relocation section %s" +msgstr "%s: Intern inkonsistens; ingen relokaliseringssektion %s" + +#: elf32-cris.c:2514 +#, c-format +msgid "" +"%s, section %s:\n" +" relocation %s should not be used in a shared object; recompile with -fPIC" +msgstr "" +"%s, sektion %s:\n" +" relokaliseringen %s bør ikke bruges i et delt objekt; genoversæt med -fPIC" + +#: elf32-cris.c:2991 +msgid " [symbols have a _ prefix]" +msgstr " [symboler har et _-prefix]" + +#: elf32-cris.c:3030 +#, c-format +msgid "%s: uses _-prefixed symbols, but writing file with non-prefixed symbols" +msgstr "%s: bruger symboler med _-prefix, men skriver fil med symboler uden prefix" + +#: elf32-cris.c:3031 +#, c-format +msgid "%s: uses non-prefixed symbols, but writing file with _-prefixed symbols" +msgstr "%s: bruger symboler uden prefix, men skriver fil med symboler med _-prefix" + +#: elf32-frv.c:1217 +#, c-format +msgid "%s: compiled with %s and linked with modules that use non-pic relocations" +msgstr "%s: kompileret med %s og lænket med moduler som bruger ikke-pic-relokalisering" + +#: elf32-frv.c:1267 +#, c-format +msgid "%s: compiled with %s and linked with modules compiled with %s" +msgstr "%s: kompileret med %s og lænket med moduler som kompileredes med %s" + +#: elf32-frv.c:1279 +#, c-format +msgid "%s: uses different unknown e_flags (0x%lx) fields than previous modules (0x%lx)" +msgstr "%s: bruger andre ukendte e_flags-felter (0x%lx) end tidligere moduler (0x%lx)" + +#: elf32-frv.c:1315 +#, c-format +msgid "private flags = 0x%lx:" +msgstr "private flag = 0x%lx:" + +#: elf32-gen.c:82 elf64-gen.c:82 +#, c-format +msgid "%s: Relocations in generic ELF (EM: %d)" +msgstr "%s: Relokalisering i generisk ELF (EM: %d)" + +#: elf32-hppa.c:671 elf64-ppc.c:2323 +#, c-format +msgid "%s: cannot create stub entry %s" +msgstr "%s: kan ikke oprette stubstarten %s" + +#: elf32-hppa.c:956 elf32-hppa.c:3555 +#, c-format +msgid "%s(%s+0x%lx): cannot reach %s, recompile with -ffunction-sections" +msgstr "%s(%s+0x%lx): kan ikke nå %s, genoversæt med -ffunction-sections" + +#: elf32-hppa.c:1338 elf64-x86-64.c:673 +#, c-format +msgid "%s: relocation %s can not be used when making a shared object; recompile with -fPIC" +msgstr "%s: relokaliseringen %s kan ikke bruges når et delt objekt oprettes; genoversæt med -fPIC" + +#: elf32-hppa.c:1358 +#, c-format +msgid "%s: relocation %s should not be used when making a shared object; recompile with -fPIC" +msgstr "%s: relokaliseringen %s bør ikke bruges når et delt objekt oprettes; genoversæt med -fPIC" + +#: elf32-hppa.c:1551 +#, c-format +msgid "Could not find relocation section for %s" +msgstr "Kunne ikke finde relokaliseringssektion for %s" + +#: elf32-hppa.c:2855 +#, c-format +msgid "%s: duplicate export stub %s" +msgstr "%s: dobbelt eksportstub %s" + +#: elf32-hppa.c:3433 +#, c-format +msgid "%s(%s+0x%lx): fixing %s" +msgstr "%s(%s+0x%lx): retter %s" + +#: elf32-hppa.c:4080 +#, c-format +msgid "%s(%s+0x%lx): cannot handle %s for %s" +msgstr "%s(%s+0x%lx): kan ikke håndtere %s for %s" + +#: elf32-hppa.c:4393 +msgid ".got section not immediately after .plt section" +msgstr ".got-sektionen følger ikke umiddelbart efter .plt-sektion" + +#: elf32-i386.c:379 +#, c-format +msgid "%s: invalid relocation type %d" +msgstr "%s: ugyldig relokaliseringstype %d" + +#: elf32-i386.c:876 elf32-s390.c:649 elf64-s390.c:595 elf64-x86-64.c:591 +#, c-format +msgid "%s: bad symbol index: %d" +msgstr "%s: fejlagtigt symbolindex: %d" + +#: elf32-i386.c:948 +#, c-format +msgid "%s: `%s' accessed both as normal and thread local symbol" +msgstr "%s: \"%s\" kaldt både som lokalt normalt symbol og lokalt trådsymbol" + +#: elf32-i386.c:1072 elf32-s390.c:808 elf64-ppc.c:2827 elf64-s390.c:759 +#: elf64-x86-64.c:761 +#, c-format +msgid "%s: bad relocation section name `%s'" +msgstr "%s: fejlagtig relokaliseringssektionsnavn \"%s\"" + +#: elf32-i386.c:1159 elf64-alpha.c:4768 +#, c-format +msgid "%s: TLS local exec code cannot be linked into shared objects" +msgstr "%s: lokal TLS-eksekveringskode kan ikke lænkes ind i delte objekter" + +#: elf32-i386.c:2747 elf32-s390.c:1981 elf32-sparc.c:1571 elf64-ppc.c:5918 +#: elf64-s390.c:1945 elf64-sparc.c:2578 elf64-x86-64.c:1948 +#, c-format +msgid "%s(%s+0x%lx): unresolvable relocation against symbol `%s'" +msgstr "%s(%s+0x%lx): uløselig relokalisering mod symbol \"%s\"" + +#: elf32-i386.c:2784 elf32-s390.c:2019 elf64-ppc.c:5977 elf64-s390.c:1983 +#: elf64-x86-64.c:1986 +#, c-format +msgid "%s(%s+0x%lx): reloc against `%s': error %d" +msgstr "%s(%s+0x%lx): relokalisering mod \"%s\": fejl %d" + +#: elf32-m32r.c:924 +msgid "SDA relocation when _SDA_BASE_ not defined" +msgstr "SDA-relokalisering når _SDA_BASE_ ikke er defineret" + +#: elf32-ia64.c:3687 elf32-m32r.c:1013 elf32-ppc.c:2987 elf64-alpha.c:4185 +#: elf64-alpha.c:4313 elf64-ia64.c:3687 +#, c-format +msgid "%s: unknown relocation type %d" +msgstr "%s: ukendt relokaliseringstype %d" + +#: elf32-m32r.c:1221 +#, c-format +msgid "%s: The target (%s) of an %s relocation is in the wrong section (%s)" +msgstr "%s: Målet (%s) for en %s-relokalisering er i forkert sektion (%s)" + +#: elf32-m32r.c:1947 +#, c-format +msgid "%s: Instruction set mismatch with previous modules" +msgstr "%s: Instruktionsopsætning passer ikke med tidligere moduler" + +#: elf32-m32r.c:1970 +#, c-format +msgid "private flags = %lx" +msgstr "private flag = %lx" + +#: elf32-m32r.c:1975 +msgid ": m32r instructions" +msgstr ": m32r-instruktioner" + +#: elf32-m32r.c:1976 +msgid ": m32rx instructions" +msgstr ": m32rx-instruktioner" + +#: elf32-m68k.c:413 +msgid " [cpu32]" +msgstr " [cpu32]" + +#: elf32-m68k.c:416 +msgid " [m68000]" +msgstr " [m68000]" + +#: elf32-mcore.c:354 elf32-mcore.c:457 +#, c-format +msgid "%s: Relocation %s (%d) is not currently supported.\n" +msgstr "%s: Relokalisering %s (%d) understøttes ikke i øjeblikket.\n" + +#: elf32-mcore.c:442 +#, c-format +msgid "%s: Unknown relocation type %d\n" +msgstr "%s: Ukendt relokaliseringstype %d\n" + +#: elf32-mips.c:1152 elf64-mips.c:1783 +msgid "32bits gp relative relocation occurs for an external symbol" +msgstr "32-bit gp-relativ relokalisering forekom for et eksternt symbol" + +#: elf32-mips.c:1301 +#, c-format +msgid "Linking mips16 objects into %s format is not supported" +msgstr "Lænkning af mips16-objekter til %s-format understøttes ikke" + +#: elf32-ppc.c:1460 +#, c-format +msgid "%s: compiled with -mrelocatable and linked with modules compiled normally" +msgstr "%s: kompileret med -mrelocatable og lænket med moduler som kompileredes normalt" + +#: elf32-ppc.c:1468 +#, c-format +msgid "%s: compiled normally and linked with modules compiled with -mrelocatable" +msgstr "%s: kompileret normalt og lænket med moduler som kompileredes med -mrelocatable" + +#: elf32-ppc.c:1494 elf64-sparc.c:2989 elfxx-mips.c:7713 +#, c-format +msgid "%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)" +msgstr "%s: bruger andre e_flags-felter (0x%lx) end tidligere moduler (0x%lx)" + +#: elf32-ppc.c:1592 +#, c-format +msgid "%s: Unknown special linker type %d" +msgstr "%s: Ukendt speciallænkertype %d" + +#: elf32-ppc.c:2273 elf32-ppc.c:2307 elf32-ppc.c:2342 +#, c-format +msgid "%s: relocation %s cannot be used when making a shared object" +msgstr "%s: relokaliseringen %s kan ikke bruges når et delt objekt oprettes" + +#: elf32-ppc.c:3126 elf64-ppc.c:5473 +#, c-format +msgid "%s: unknown relocation type %d for symbol %s" +msgstr "%s: ukendt relokaliseringstype %d for symbol %s" + +#: elf32-ppc.c:3482 elf32-ppc.c:3503 elf32-ppc.c:3553 +#, c-format +msgid "%s: The target (%s) of a %s relocation is in the wrong output section (%s)" +msgstr "%s: Målet (%s) for en %s-relokalisering er i forkert uddatasektion (%s)" + +#: elf32-ppc.c:3619 +#, c-format +msgid "%s: Relocation %s is not yet supported for symbol %s." +msgstr "%s: Relokaliseringen %s understøttes ikke endnu for symbol %s." + +#: elf32-sh.c:1964 +#, c-format +msgid "%s: 0x%lx: warning: bad R_SH_USES offset" +msgstr "%s: 0x%lx: advarsel: fejlagtig R_SH_USES-afstand" + +#: elf32-sh.c:1976 +#, c-format +msgid "%s: 0x%lx: warning: R_SH_USES points to unrecognized insn 0x%x" +msgstr "%s: 0x%lx: advarsel: R_SH_USES peger til ukendt instruktion 0x%x" + +#: elf32-sh.c:1993 +#, c-format +msgid "%s: 0x%lx: warning: bad R_SH_USES load offset" +msgstr "%s: 0x%lx: advarsel: fejlagtig R_SH_USES-indlæsningsafstand" + +#: elf32-sh.c:2008 +#, c-format +msgid "%s: 0x%lx: warning: could not find expected reloc" +msgstr "%s: 0x%lx: advarsel: kunne ikke finde forventet relokalisering" + +#: elf32-sh.c:2036 +#, c-format +msgid "%s: 0x%lx: warning: symbol in unexpected section" +msgstr "%s: 0x%lx: advarsel: symbol i uventet sektion" + +#: elf32-sh.c:2153 +#, c-format +msgid "%s: 0x%lx: warning: could not find expected COUNT reloc" +msgstr "%s: 0x%lx: advarsel: kunne ikke finde forventet COUNT-relokalisering" + +#: elf32-sh.c:2162 +#, c-format +msgid "%s: 0x%lx: warning: bad count" +msgstr "%s: 0x%lx: advarsel: fejlagtigt antal" + +#: elf32-sh.c:2550 elf32-sh.c:2926 +#, c-format +msgid "%s: 0x%lx: fatal: reloc overflow while relaxing" +msgstr "%s: 0x%lx: fatalt: relokalisering giver overløb ved forenklingen" + +#: elf32-sh.c:4073 elf64-sh64.c:1576 +msgid "Unexpected STO_SH5_ISA32 on local symbol is not handled" +msgstr "Uventet STO_SH5_ISA32 på lokalt symbol håndteres ikke" + +#: elf32-sh.c:4284 +#, c-format +msgid "%s: 0x%lx: fatal: unaligned branch target for relax-support relocation" +msgstr "%s: 0x%lx: fatalt: ujusteret grenmål for relokalisering for forenklingsunderstøttelse" + +#: elf32-sh64.c:203 elf64-sh64.c:2364 +#, c-format +msgid "%s: compiled as 32-bit object and %s is 64-bit" +msgstr "%s: kompileret som 32-bitsobjekt og %s er 64-bit" + +#: elf32-sh64.c:206 elf64-sh64.c:2367 +#, c-format +msgid "%s: compiled as 64-bit object and %s is 32-bit" +msgstr "%s: kompileret som 64-bitsobjekt og %s er 32-bit" + +#: elf32-sh64.c:208 elf64-sh64.c:2369 +#, c-format +msgid "%s: object size does not match that of target %s" +msgstr "%s: objektstørrelsen stemmer ikke overens med den hos målet %s" + +#: elf32-sh64.c:440 elf64-sh64.c:2941 +#, c-format +msgid "%s: encountered datalabel symbol in input" +msgstr "%s: mødte dataetikettesymbol i inddata" + +#: elf32-sh64.c:523 +msgid "PTB mismatch: a SHmedia address (bit 0 == 1)" +msgstr "PTB passer ikke: en SHmedia-adresse (bit 0 == 1)" + +#: elf32-sh64.c:526 +msgid "PTA mismatch: a SHcompact address (bit 0 == 0)" +msgstr "PTA passer ikke: en SHcompact-adresse (bit 0 == 0)" + +#: elf32-sh64.c:544 +#, c-format +msgid "%s: GAS error: unexpected PTB insn with R_SH_PT_16" +msgstr "%s: GAS-fejl: uventet PTB-instruktion med R_SH_PT_16" + +#: elf32-sh64.c:593 elf64-sh64.c:1703 +#, c-format +msgid "%s: error: unaligned relocation type %d at %08x reloc %08x\n" +msgstr "%s: fejl: ojusteret relokaliseringstype %d på %08x relokalisering %08x\n" + +#: elf32-sh64.c:677 +#, c-format +msgid "%s: could not write out added .cranges entries" +msgstr "%s: kunne ikke udskrive tilføjede .cranges-poster" + +#: elf32-sh64.c:739 +#, c-format +msgid "%s: could not write out sorted .cranges entries" +msgstr "%s: kunne ikke udskrive sorterede cranges-poster" + +#: elf32-sparc.c:1535 elf64-sparc.c:2224 +#, c-format +msgid "%s: probably compiled without -fPIC?" +msgstr "%s: nok kompileret uden -fPIC?" + +#: elf32-sparc.c:2002 +#, c-format +msgid "%s: compiled for a 64 bit system and target is 32 bit" +msgstr "%s: kompileret for et 64-bitssystem og målet er 32-bit" + +#: elf32-sparc.c:2016 +#, c-format +msgid "%s: linking little endian files with big endian files" +msgstr "%s: lænker little endian-filer med big endian-filer" + +#: elf32-v850.c:682 +#, c-format +msgid "Variable `%s' cannot occupy in multiple small data regions" +msgstr "Variabel \"%s\" kan ikke befinde sig i flere små dataområder" + +#: elf32-v850.c:685 +#, c-format +msgid "Variable `%s' can only be in one of the small, zero, and tiny data regions" +msgstr "Variabel \"%s\" kan kun være i et af de små, tomme og bittesmå dataområder" + +#: elf32-v850.c:688 +#, c-format +msgid "Variable `%s' cannot be in both small and zero data regions simultaneously" +msgstr "Variabel \"%s\" kan ikke være i både små og tomme dataområder samtidigt" + +#: elf32-v850.c:691 +#, c-format +msgid "Variable `%s' cannot be in both small and tiny data regions simultaneously" +msgstr "Variabel \"%s\" kan ikke være i både små og bittesmå dataområder samtidigt" + +#: elf32-v850.c:694 +#, c-format +msgid "Variable `%s' cannot be in both zero and tiny data regions simultaneously" +msgstr "Variabel \"%s\" kan ikke være i både tomme og bittesmå dataområder samtidigt" + +#: elf32-v850.c:1072 +msgid "FAILED to find previous HI16 reloc\n" +msgstr "MISLYKKEDES med at finde tidligere HI16-relokalisering\n" + +#: elf32-v850.c:1703 +msgid "could not locate special linker symbol __gp" +msgstr "kunne ikke lokalisere specielt lænkersymbol __gp" + +#: elf32-v850.c:1707 +msgid "could not locate special linker symbol __ep" +msgstr "kunne ikke lokalisere specielt lænkersymbol __ep" + +#: elf32-v850.c:1711 +msgid "could not locate special linker symbol __ctbp" +msgstr "kunne ikke lokalisere specielt lænkersymbol __ctbp" + +#: elf32-v850.c:1875 +#, c-format +msgid "%s: Architecture mismatch with previous modules" +msgstr "%s: Arkitekturen passer ikke sammen med tidligere moduler" + +#: elf32-v850.c:1895 +#, c-format +msgid "private flags = %lx: " +msgstr "private flag = %lx: " + +#: elf32-v850.c:1900 +msgid "v850 architecture" +msgstr "v850-arkitektur" + +#: elf32-v850.c:1901 +msgid "v850e architecture" +msgstr "v850e-arkitektur" + +#: elf32-v850.c:1902 +msgid "v850ea architecture" +msgstr "v850ea-arkitektur" + +#: elf32-vax.c:546 +msgid " [nonpic]" +msgstr " [ikke-pic]" + +#: elf32-vax.c:549 +msgid " [d-float]" +msgstr " [d-flydende tal]" + +#: elf32-vax.c:552 +msgid " [g-float]" +msgstr " [g-flydende tal]" + +#: elf32-vax.c:674 +#, c-format +msgid "%s: warning: GOT addend of %ld to `%s' does not match previous GOT addend of %ld" +msgstr "%s: advarsel: GOT-addendum %ld til \"%s\" stemmer ikke overens med tidligere GOT-addendum %ld" + +#: elf32-vax.c:1679 +#, c-format +msgid "%s: warning: PLT addend of %d to `%s' from %s section ignored" +msgstr "%s: advarsel: PLT-addendum %d til \"%s\" fra sektionen %s ignoreredes" + +#: elf32-vax.c:1814 +#, c-format +msgid "%s: warning: %s relocation against symbol `%s' from %s section" +msgstr "%s: advarsel: %s-relokalisering mod symbol \"%s\" fra sektionen %s" + +#: elf32-vax.c:1820 +#, c-format +msgid "%s: warning: %s relocation to 0x%x from %s section" +msgstr "%s: advarsel: %s-relokalisering til 0x%x fra sektionen %s" + +#: elf32-ia64.c:2280 elf32-xstormy16.c:414 elf64-ia64.c:2280 +msgid "non-zero addend in @fptr reloc" +msgstr "ikke-tomt addendum i @fptr-relokalisering" + +#: elf64-alpha.c:1097 +msgid "GPDISP relocation did not find ldah and lda instructions" +msgstr "GPDISP-relokalisering fandt ingen ldah- og lda-instruktioner" + +#: elf64-alpha.c:3675 +#, c-format +msgid "%s: .got subsegment exceeds 64K (size %d)" +msgstr "%s: .got-subsegment overskrider 64 kB (størrelse %d)" + +#: elf64-alpha.c:4498 elf64-alpha.c:4510 +#, c-format +msgid "%s: gp-relative relocation against dynamic symbol %s" +msgstr "%s: gp-relativ relokalisering mod dynamisk symbol %s" + +#: elf64-alpha.c:4536 elf64-alpha.c:4676 +#, c-format +msgid "%s: pc-relative relocation against dynamic symbol %s" +msgstr "%s: pc-relativ relokalisering mod dynamisk symbol %s" + +#: elf64-alpha.c:4564 +#, c-format +msgid "%s: change in gp: BRSGP %s" +msgstr "%s: ændring i gp: BRSGP %s" + +#: elf64-alpha.c:4589 +msgid "" +msgstr "" + +#: elf64-alpha.c:4594 +#, c-format +msgid "%s: !samegp reloc against symbol without .prologue: %s" +msgstr "%s: !samegp-relokalisering mod symbol uden .prologue: %s" + +#: elf64-alpha.c:4639 +#, c-format +msgid "%s: unhandled dynamic relocation against %s" +msgstr "%s: uhåndteret dynamisk relokalisering mod %s" + +#: elf64-alpha.c:4752 +#, c-format +msgid "%s: dtp-relative relocation against dynamic symbol %s" +msgstr "%s: dtp-relativ relokalisering mod dynamisk symbol %s" + +#: elf64-alpha.c:4775 +#, c-format +msgid "%s: tp-relative relocation against dynamic symbol %s" +msgstr "%s: tp-relativ relokalisering mod dynamisk symbol %s" + +#: elf64-hppa.c:2080 +#, c-format +msgid "stub entry for %s cannot load .plt, dp offset = %ld" +msgstr "stubpost for %s kan ikke læse in .plt, dp-afstand = %ld" + +#: elf64-mmix.c:1002 +#, c-format +msgid "" +"%s: Internal inconsistency error for value for\n" +" linker-allocated global register: linked: 0x%lx%08lx != relaxed: 0x%lx%08lx\n" +msgstr "" +"%s: Intern inkkonsistensfejl for værdien for\n" +" lænkerallokeret globalt register: lænket: 0x%lx%08lx != afslappet: 0x%lx%08lx\n" + +#: elf64-mmix.c:1386 +#, c-format +msgid "%s: base-plus-offset relocation against register symbol: (unknown) in %s" +msgstr "%s: base-plus-afstandsrelokalisering mod registersymbol: (ukendt) i %s" + +#: elf64-mmix.c:1391 +#, c-format +msgid "%s: base-plus-offset relocation against register symbol: %s in %s" +msgstr "%s: base-plus-afstandsrelokalisering mod registersymbol: %s i %s" + +#: elf64-mmix.c:1435 +#, c-format +msgid "%s: register relocation against non-register symbol: (unknown) in %s" +msgstr "%s: registerrelokalisering mod ikke-registersymbol: (ukendt) i %s" + +#: elf64-mmix.c:1440 +#, c-format +msgid "%s: register relocation against non-register symbol: %s in %s" +msgstr "%s: registerrelokalisering mod ikke-registersymbol: %s i %s" + +#: elf64-mmix.c:1477 +#, c-format +msgid "%s: directive LOCAL valid only with a register or absolute value" +msgstr "%s: LOCAL-direktivet er kun gyldigt med et register eller en absolutværdi" + +#: elf64-mmix.c:1505 +#, c-format +msgid "%s: LOCAL directive: Register $%ld is not a local register. First global register is $%ld." +msgstr "%s: LOCAL-direktiv: Register $%ld er ikke et lokalt register. Første globale register er $%ld." + +#: elf64-mmix.c:1965 +#, c-format +msgid "%s: Error: multiple definition of `%s'; start of %s is set in a earlier linked file\n" +msgstr "%s: Fejl: flere definitioner af \"%s\"; begyndelsen på %s er sat i en tidligere lænket fil\n" + +#: elf64-mmix.c:2024 +msgid "Register section has contents\n" +msgstr "Registersektion har indhold\n" + +#: elf64-mmix.c:2186 +#, c-format +msgid "" +"Internal inconsistency: remaining %u != max %u.\n" +" Please report this bug." +msgstr "" +"Intern inkonsekvens: genstående %u != max %u.\n" +" Rapportér gerne denne fejl." + +#: elf64-ppc.c:1669 libbfd.c:1435 +#, c-format +msgid "%s: compiled for a big endian system and target is little endian" +msgstr "%s: kompileret for et big endian-system og målet er little endian" + +#: elf64-ppc.c:1671 libbfd.c:1437 +#, c-format +msgid "%s: compiled for a little endian system and target is big endian" +msgstr "%s: kompileret for et little endian-system og målet er big endian" + +#: elf64-ppc.c:3610 +#, c-format +msgid "%s: unexpected reloc type %u in .opd section" +msgstr "%s: uventet relokaliseringstype %u i .opd-sektion" + +#: elf64-ppc.c:3630 +#, c-format +msgid "%s: .opd is not a regular array of opd entries" +msgstr "%s: .opd er ikke en almindelig vektor med opd-poster" + +#: elf64-ppc.c:3672 +#, c-format +msgid "%s: undefined sym `%s' in .opd section" +msgstr "%s: udefineret symbol \"%s\" i .opd-sektion" + +#: elf64-ppc.c:4397 +#, c-format +msgid "can't find branch stub `%s'" +msgstr "kan ikke finde grenstub \"%s\"" + +#: elf64-ppc.c:4436 elf64-ppc.c:4501 +#, c-format +msgid "linkage table error against `%s'" +msgstr "lænketabelsfejl mod \"%s\"" + +#: elf64-ppc.c:4573 +#, c-format +msgid "can't build branch stub `%s'" +msgstr "kan ikke bygge grenstub \"%s\"" + +#: elf64-ppc.c:5179 +msgid "stubs don't match calculated size" +msgstr "stubbe stemmer ikke overens med beregnet størrelse" + +#: elf64-ppc.c:5828 +#, c-format +msgid "%s: Relocation %s is not supported for symbol %s." +msgstr "%s: Relokaliseringen %s understøttes ikke for symbol %s." + +#: elf64-ppc.c:5872 +#, c-format +msgid "%s: error: relocation %s not a multiple of 4" +msgstr "%s: fejl: relokaliseringen %s er ikke en multipel af 4" + +#: elf64-sparc.c:1280 +#, c-format +msgid "%s: check_relocs: unhandled reloc type %d" +msgstr "%s: check_relocs: uhåndteret relokaliseringstype %d" + +#: elf64-sparc.c:1317 +#, c-format +msgid "%s: Only registers %%g[2367] can be declared using STT_REGISTER" +msgstr "%s: Kun register %%g[2367] kan deklareres med STT_REGISTER" + +#: elf64-sparc.c:1337 +#, c-format +msgid "Register %%g%d used incompatibly: %s in %s, previously %s in %s" +msgstr "Register %%g%d brugt inkompatibelt: %s i %s, tidligere %s i %s" + +#: elf64-sparc.c:1360 +#, c-format +msgid "Symbol `%s' has differing types: REGISTER in %s, previously %s in %s" +msgstr "Symbol \"%s\" har forskellige typer: REGISTER i %s, tidligere %s i %s" + +#: elf64-sparc.c:1406 +#, c-format +msgid "Symbol `%s' has differing types: %s in %s, previously REGISTER in %s" +msgstr "Symbol \"%s\" har forskellige typer: %s i %s, tidligere REGISTER i %s" + +#: elf64-sparc.c:2970 +#, c-format +msgid "%s: linking UltraSPARC specific with HAL specific code" +msgstr "%s: lænker UltraSPARC-specifik med HAL-specifik kode" + +#: elfcode.h:1198 +#, c-format +msgid "%s: version count (%ld) does not match symbol count (%ld)" +msgstr "%s: versionsantal (%ld) stemmer ikke med symbolantal (%ld)" + +#: elflink.c:440 +#, c-format +msgid "%s: Section %s is too large to add hole of %ld bytes" +msgstr "%s: Sektionen %s er for stor til at stoppa hul med %ld byte i" + +#: elflink.h:1090 +#, c-format +msgid "%s: warning: unexpected redefinition of `%s'" +msgstr "%s: advarsel: uventet omdefinition af \"%s\"" + +#: elflink.h:1727 +#, c-format +msgid "%s: %s: invalid version %u (max %d)" +msgstr "%s: %s: ugyldig version %u (max %d)" + +#: elflink.h:1768 +#, c-format +msgid "%s: %s: invalid needed version %d" +msgstr "%s: %s: ugyldig krævet version %d" + +#: elflink.h:1890 +#, c-format +msgid "Warning: size of symbol `%s' changed from %lu to %lu in %s" +msgstr "Advarsel: størrelsen på symbol \"%s\" ændredes fra %lu til %lu i %s" + +#: elflink.h:3174 +#, c-format +msgid "%s: .preinit_array section is not allowed in DSO" +msgstr "%s: .preinit_array-sektionen er ikke tilladt i DSO" + +#: elflink.h:4030 +#, c-format +msgid "warning: type and size of dynamic symbol `%s' are not defined" +msgstr "advarsel: typen og størrelsen på dynamisk symbol \"%s\" er ikke defineret" + +#: elflink.h:4345 +#, c-format +msgid "%s: undefined versioned symbol name %s" +msgstr "%s: udefineret symbolnavn med version %s" + +#: elflink.h:4611 elflink.h:4619 elflink.h:6508 elflink.h:7600 +msgid "Error: out of memory" +msgstr "Fejl: ikke mere hukommelse" + +#: elflink.h:4781 +msgid "Not enough memory to sort relocations" +msgstr "Ikke nok hukommelse til at sortere relokaliseringer" + +#: elflink.h:5682 elflink.h:5725 +#, c-format +msgid "%s: could not find output section %s" +msgstr "%s: kunne ikke finde uddatasektionen %s" + +#: elflink.h:5688 +#, c-format +msgid "warning: %s section has zero size" +msgstr "advarsel: %s-sektionen har nulstørrelse" + +#: elflink.h:6275 +#, c-format +msgid "%s: could not find output section %s for input section %s" +msgstr "%s: kunne ikke finde uddatasektionen %s for inddatasektionen %s" + +#: elflink.h:6486 +#, c-format +msgid "%s: relocation size mismatch in %s section %s" +msgstr "%s: relokaliseringsstørrelsen stemmer ikke overens i %s-sektionen %s" + +#: elflink.h:6849 +msgid "warning: relocation against removed section; zeroing" +msgstr "advarsel: relokalisering mod fjernet sektion; nulstiller" + +#: elflink.h:6879 +msgid "warning: relocation against removed section" +msgstr "advarsel: relokalisering mod fjernet sektion" + +#: elflink.h:6892 +#, c-format +msgid "local symbols in discarded section %s" +msgstr "lokale symboler i bortkastet sektion %s" + +#: elfxx-mips.c:734 +msgid "static procedure (no name)" +msgstr "statisk procedure (intet navn)" + +#: elfxx-mips.c:1601 +msgid "not enough GOT space for local GOT entries" +msgstr "ikke nok med GOT-plads for lokale GOT-poster" + +#: elfxx-mips.c:2750 +#, c-format +msgid "%s: %s+0x%lx: jump to stub routine which is not jal" +msgstr "%s: %s+0x%lx: hop til stubrutine som ikke er jal" + +#: elfxx-mips.c:4270 +#, c-format +msgid "%s: Malformed reloc detected for section %s" +msgstr "%s: Fejlagtig relokalisering for sektion %s opdaget" + +#: elfxx-mips.c:4348 +#, c-format +msgid "%s: CALL16 reloc at 0x%lx not against global symbol" +msgstr "%s: CALL16-relokalisering ved 0x%lx er ikke mod globalt symbol" + +#: elfxx-mips.c:7301 +#, c-format +msgid "%s: illegal section name `%s'" +msgstr "%s: ugyldigt sektionsnavn \"%s\"" + +#: elfxx-mips.c:7615 +#, c-format +msgid "%s: linking PIC files with non-PIC files" +msgstr "%s: lænker PIC-filer med ikke-PIC-filer" + +#: elfxx-mips.c:7625 +#, c-format +msgid "%s: linking abicalls files with non-abicalls files" +msgstr "%s: lænker abicalls-filer med ikke-abicalls-filer" + +#: elfxx-mips.c:7654 +#, c-format +msgid "%s: ISA mismatch (-mips%d) with previous modules (-mips%d)" +msgstr "%s: ISA (-mips%d) passer ikke med tidligere moduler (-mips%d)" + +#: elfxx-mips.c:7676 +#, c-format +msgid "%s: ISA mismatch (%d) with previous modules (%d)" +msgstr "%s: ISA (%d) passer ikke med tidligere moduler (%d)" + +#: elfxx-mips.c:7699 +#, c-format +msgid "%s: ABI mismatch: linking %s module with previous %s modules" +msgstr "%s: ABI passer ikke: lænker %s-modul med tidligere %s-moduler" + +#: elfxx-mips.c:7759 +msgid " [abi=O32]" +msgstr " [abi=O32]" + +#: elfxx-mips.c:7761 +msgid " [abi=O64]" +msgstr " [abi=O64]" + +#: elfxx-mips.c:7763 +msgid " [abi=EABI32]" +msgstr " [abi=EABI32]" + +#: elfxx-mips.c:7765 +msgid " [abi=EABI64]" +msgstr " [abi=EABI64]" + +#: elfxx-mips.c:7767 +msgid " [abi unknown]" +msgstr " [ukendt abi]" + +#: elfxx-mips.c:7769 +msgid " [abi=N32]" +msgstr " [abi=N32]" + +#: elfxx-mips.c:7771 +msgid " [abi=64]" +msgstr " [abi=64]" + +#: elfxx-mips.c:7773 +msgid " [no abi set]" +msgstr " [intet abi sat]" + +#: elfxx-mips.c:7776 +msgid " [mips1]" +msgstr " [mips1]" + +#: elfxx-mips.c:7778 +msgid " [mips2]" +msgstr " [mips2]" + +#: elfxx-mips.c:7780 +msgid " [mips3]" +msgstr " [mips3]" + +#: elfxx-mips.c:7782 +msgid " [mips4]" +msgstr " [mips4]" + +#: elfxx-mips.c:7784 +msgid " [mips5]" +msgstr " [mips5]" + +#: elfxx-mips.c:7786 +msgid " [mips32]" +msgstr " [mips32]" + +#: elfxx-mips.c:7788 +msgid " [mips64]" +msgstr " [mips64]" + +#: elfxx-mips.c:7790 +msgid " [unknown ISA]" +msgstr " [ukendt ISA]" + +#: elfxx-mips.c:7793 +msgid " [mdmx]" +msgstr " [mdmx]" + +#: elfxx-mips.c:7796 +msgid " [mips16]" +msgstr " [mips16]" + +#: elfxx-mips.c:7799 +msgid " [32bitmode]" +msgstr " [32-bittilstand]" + +#: elfxx-mips.c:7801 +msgid " [not 32bitmode]" +msgstr " [ikke 32-bittilstand]" + +#: i386linux.c:458 m68klinux.c:462 sparclinux.c:459 +#, c-format +msgid "Output file requires shared library `%s'\n" +msgstr "Uddatafilen kræver delt bibliotek \"%s\"\n" + +#: i386linux.c:466 m68klinux.c:470 sparclinux.c:467 +#, c-format +msgid "Output file requires shared library `%s.so.%s'\n" +msgstr "Uddatafilen kræver delt bibliotek \"%s.so.%s\"\n" + +#: i386linux.c:655 i386linux.c:705 m68klinux.c:662 m68klinux.c:710 +#: sparclinux.c:657 sparclinux.c:707 +#, c-format +msgid "Symbol %s not defined for fixups\n" +msgstr "Symbol %s er ikke defineret for rettelser\n" + +#: i386linux.c:729 m68klinux.c:734 sparclinux.c:731 +msgid "Warning: fixup count mismatch\n" +msgstr "Advarsel: antal rettelser stemmer ikke\n" + +#: ieee.c:235 +#, c-format +msgid "%s: string too long (%d chars, max 65535)" +msgstr "%s: strengen er for lang (%d tegn, max 65535)" + +#: ieee.c:365 +#, c-format +msgid "%s: unrecognized symbol `%s' flags 0x%x" +msgstr "%s: ukendt symbol \"%s\" flag 0x%x" + +#: ieee.c:877 +#, c-format +msgid "%s: unimplemented ATI record %u for symbol %u" +msgstr "%s: ikke implementeret ATI-post %u for symbol %u" + +#: ieee.c:902 +#, c-format +msgid "%s: unexpected ATN type %d in external part" +msgstr "%s: uventet ATN-type %d i ekstern del" + +#: ieee.c:924 +#, c-format +msgid "%s: unexpected type after ATN" +msgstr "%s: uventet type efter ATN" + +#: ihex.c:258 +#, c-format +msgid "%s:%d: unexpected character `%s' in Intel Hex file\n" +msgstr "%s:%d: uventet tegn \"%s\" i hexadecimal Intel-fil\n" + +#: ihex.c:366 +#, c-format +msgid "%s:%u: bad checksum in Intel Hex file (expected %u, found %u)" +msgstr "%s:%u: fejlagtig kontrolsum i hexadecimal Intel-fil (forventede %u, fandt %u)" + +#: ihex.c:420 +#, c-format +msgid "%s:%u: bad extended address record length in Intel Hex file" +msgstr "%s:%u: fejlagtig længde på post for udvidet adresse i hexadecimal Intel-fil" + +#: ihex.c:437 +#, c-format +msgid "%s:%u: bad extended start address length in Intel Hex file" +msgstr "%s:%u: fejlagtig længde på udvidet startadresse i hexadecimal Intel-fil" + +#: ihex.c:454 +#, c-format +msgid "%s:%u: bad extended linear address record length in Intel Hex file" +msgstr "%s:%u: fejlagtig længde på post for udvidet lineær adresse i hexadecimal Intel-fil" + +#: ihex.c:471 +#, c-format +msgid "%s:%u: bad extended linear start address length in Intel Hex file" +msgstr "%s:%u: fejlagtig længde på post for udvidet lineær startadresse i hexadecimal Intel-fil" + +#: ihex.c:488 +#, c-format +msgid "%s:%u: unrecognized ihex type %u in Intel Hex file\n" +msgstr "%s:%u: ukendt ihex-type %u i hexadecimal Intel-fil\n" + +#: ihex.c:607 +#, c-format +msgid "%s: internal error in ihex_read_section" +msgstr "%s: intern fejl i ihex_read_section" + +#: ihex.c:642 +#, c-format +msgid "%s: bad section length in ihex_read_section" +msgstr "%s: fejlagtig sektionslængde i ihex_read_sektion" + +#: ihex.c:860 +#, c-format +msgid "%s: address 0x%s out of range for Intel Hex file" +msgstr "%s: adressen 0x%s er udenfor intervallet for hexadecimal Intel-fil" + +#: libbfd.c:492 +#, c-format +msgid "not mapping: data=%lx mapped=%d\n" +msgstr "mapper ikke: data=%lx mappet=%d\n" + +#: libbfd.c:495 +msgid "not mapping: env var not set\n" +msgstr "mapper ikke: miljøvariabel er ikke sat\n" + +#: libbfd.c:1466 +#, c-format +msgid "Deprecated %s called at %s line %d in %s\n" +msgstr "Forældet %s kaldt ved %s linje %d i %s\n" + +#: libbfd.c:1469 +#, c-format +msgid "Deprecated %s called\n" +msgstr "Forældet %s kaldt\n" + +#: linker.c:1873 +#, c-format +msgid "%s: indirect symbol `%s' to `%s' is a loop" +msgstr "%s: indirekte symbol \"%s\" til \"%s\" er en løkke" + +#: linker.c:2776 +#, c-format +msgid "Attempt to do relocateable link with %s input and %s output" +msgstr "Forsøg at lave en relokaliseringsbar lænke med %s-inddata og %s-uddata" + +#: merge.c:892 +#, c-format +msgid "%s: access beyond end of merged section (%ld + %ld)" +msgstr "%s: adgang udover slutningen på sammenslagt sektion (%ld + %ld)" + +#: mmo.c:460 +#, c-format +msgid "%s: No core to allocate section name %s\n" +msgstr "%s: Ingen kerne til at allokere sektionsnavn %s\n" + +#: mmo.c:536 +#, c-format +msgid "%s: No core to allocate a symbol %d bytes long\n" +msgstr "%s: Ingen kerne for at allokere et %d byte langt symbol\n" + +#: mmo.c:1245 +#, c-format +msgid "%s: invalid mmo file: initialization value for $255 is not `Main'\n" +msgstr "%s: ugyldig mmo-fil: initieringsværdi for $255 er ikke \"Main\"\n" + +#: mmo.c:1391 +#, c-format +msgid "%s: unsupported wide character sequence 0x%02X 0x%02X after symbol name starting with `%s'\n" +msgstr "%s: bred tegnsekvens som ikke understøttes 0x%02X 0x%02X efter symbolnavnet som begynder med \"%s\"\n" + +#: mmo.c:1633 +#, c-format +msgid "%s: invalid mmo file: unsupported lopcode `%d'\n" +msgstr "%s: ugyldig mmo-fil: lopkod \"%d\" understøttes ikke\n" + +#: mmo.c:1643 +#, c-format +msgid "%s: invalid mmo file: expected YZ = 1 got YZ = %d for lop_quote\n" +msgstr "%s: ugyldig mmo-fil: forventede YZ = 1 fik YZ = %d for lop_quote\n" + +#: mmo.c:1679 +#, c-format +msgid "%s: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_loc\n" +msgstr "%s: ugyldig mmo-fil: forventede z = 1 eller z = 2, fik z = %d for lop_loc\n" + +#: mmo.c:1725 +#, c-format +msgid "%s: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_fixo\n" +msgstr "%s: ugyldig mmo-fil: forventede z = 1 eller z = 2, fik z = %d for lop_fixo\n" + +#: mmo.c:1764 +#, c-format +msgid "%s: invalid mmo file: expected y = 0, got y = %d for lop_fixrx\n" +msgstr "%s: ugyldig mmo-fil: forventede y = 0, fik y = %d for lop_fixrx\n" + +#: mmo.c:1773 +#, c-format +msgid "%s: invalid mmo file: expected z = 16 or z = 24, got z = %d for lop_fixrx\n" +msgstr "%s: ugyldig mmo-fil: forventede z = 16 eller z = 24, fik z = %d for lop_fixr\n" + +#: mmo.c:1796 +#, c-format +msgid "%s: invalid mmo file: leading byte of operand word must be 0 or 1, got %d for lop_fixrx\n" +msgstr "%s: ugyldig mmo-fil: indledende byte i operandord skal være 0 eller 1, fik %d for lop_fixrx\n" + +#: mmo.c:1819 +#, c-format +msgid "%s: cannot allocate file name for file number %d, %d bytes\n" +msgstr "%s: kan ikke allokere filnavn for fil nummer %d, %d byte\n" + +#: mmo.c:1839 +#, c-format +msgid "%s: invalid mmo file: file number %d `%s', was already entered as `%s'\n" +msgstr "%s: ugyldig mmo-fil: fil nummer %d \"%s\", var allerede angivet som \"%s\"\n" + +#: mmo.c:1852 +#, c-format +msgid "%s: invalid mmo file: file name for number %d was not specified before use\n" +msgstr "%s: ugyldig mmo-fil: filnavnet for nummer %d blev ikke angivet inden brug\n" + +#: mmo.c:1958 +#, c-format +msgid "%s: invalid mmo file: fields y and z of lop_stab non-zero, y: %d, z: %d\n" +msgstr "%s: ugyldig mmo-fil: felter y og z i lop_stab er ikke-tomme, y: %d, z: %d\n" + +#: mmo.c:1994 +#, c-format +msgid "%s: invalid mmo file: lop_end not last item in file\n" +msgstr "%s: ugyldig mmo-fil: lop_end er ikke sidste objekt i fil\n" + +#: mmo.c:2007 +#, c-format +msgid "%s: invalid mmo file: YZ of lop_end (%ld) not equal to the number of tetras to the preceding lop_stab (%ld)\n" +msgstr "%s: ugyldig mmo-fil: YZ i lop_end (%ld) er ikke lig med antal af tetraer til den foregående lop_stab (%ld)\n" + +#: mmo.c:2670 +#, c-format +msgid "%s: invalid symbol table: duplicate symbol `%s'\n" +msgstr "%s: ugyldig symboltabel: dubletsymbol \"%s\"\n" + +#: mmo.c:2921 +#, c-format +msgid "%s: Bad symbol definition: `Main' set to %s rather than the start address %s\n" +msgstr "%s: Fejlagtig symboldefinition: \"Main\" er sat til %s i stedet for startadressen %s\n" + +#: mmo.c:3011 +#, c-format +msgid "%s: warning: symbol table too large for mmo, larger than 65535 32-bit words: %d. Only `Main' will be emitted.\n" +msgstr "%s: advarsel: symboltabellen er for stor for mmo, større end 65535 32-bit ord: %d. Kun \"Main\" vil blive sendt.\n" + +#: mmo.c:3056 +#, c-format +msgid "%s: internal error, symbol table changed size from %d to %d words\n" +msgstr "%s: intern fejl, symboltabellen ændrede størrelse fra %d til %d ord\n" + +#: mmo.c:3111 +#, c-format +msgid "%s: internal error, internal register section %s had contents\n" +msgstr "%s: intern fejl, den interne registersektion %s havde indhold\n" + +#: mmo.c:3163 +#, c-format +msgid "%s: no initialized registers; section length 0\n" +msgstr "%s: ingen initierede registre; sektionslængde 0\n" + +#: mmo.c:3169 +#, c-format +msgid "%s: too many initialized registers; section length %ld\n" +msgstr "%s: for mange initierede registre; sektionslængde %ld\n" + +#: mmo.c:3174 +#, c-format +msgid "%s: invalid start address for initialized registers of length %ld: 0x%lx%08lx\n" +msgstr "%s: ugyldig startadresse for initierede registre med længden %ld: 0x%lx%08lx\n" + +#: oasys.c:1029 +#, c-format +msgid "%s: can not represent section `%s' in oasys" +msgstr "%s: kan ikke repræsentere sektionen \"%s\" i oasys" + +#: osf-core.c:132 +#, c-format +msgid "Unhandled OSF/1 core file section type %d\n" +msgstr "Uhåndteret sektionstype %d for OSF/1-hukommelsesfil\n" + +#: pe-mips.c:658 +#, c-format +msgid "%s: `ld -r' not supported with PE MIPS objects\n" +msgstr "%s: \"ld -r\" understøttes ikke med PE MIPS-objekt\n" + +#. OK, at this point the following variables are set up: +#. src = VMA of the memory we're fixing up +#. mem = pointer to memory we're fixing up +#. val = VMA of what we need to refer to +#. +#: pe-mips.c:794 +#, c-format +msgid "%s: unimplemented %s\n" +msgstr "%s: uimplementeret %s\n" + +#: pe-mips.c:820 +#, c-format +msgid "%s: jump too far away\n" +msgstr "%s: hop for langt bort\n" + +#: pe-mips.c:847 +#, c-format +msgid "%s: bad pair/reflo after refhi\n" +msgstr "%s: fejlagtigt par/reflo efter refhi\n" + +#. XXX code yet to be written. +#: peicode.h:785 +#, c-format +msgid "%s: Unhandled import type; %x" +msgstr "%s: Uhåndteret importtype; %x" + +#: peicode.h:790 +#, c-format +msgid "%s: Unrecognised import type; %x" +msgstr "%s: Ukendt importtype; %x" + +#: peicode.h:804 +#, c-format +msgid "%s: Unrecognised import name type; %x" +msgstr "%s: Ukendt importnavnstype; %x" + +#: peicode.h:1162 +#, c-format +msgid "%s: Unrecognised machine type (0x%x) in Import Library Format archive" +msgstr "%s: Ukendt maskintype (0x%x) i Import Library Format-arkiv" + +#: peicode.h:1174 +#, c-format +msgid "%s: Recognised but unhandled machine type (0x%x) in Import Library Format archive" +msgstr "%s: Kendt men uhåndteret maskintype (0x%x) i Import Library Format-arkiv" + +#: peicode.h:1191 +#, c-format +msgid "%s: size field is zero in Import Library Format header" +msgstr "%s: størrelsesfeltet er nul i Import Library Format-hoved" + +#: peicode.h:1219 +#, c-format +msgid "%s: string not null terminated in ILF object file." +msgstr "%s: streng ikke nultermineret i ILF-objektfil." + +#: ppcboot.c:416 +msgid "" +"\n" +"ppcboot header:\n" +msgstr "" +"\n" +"ppcboot-hoved:\n" + +#: ppcboot.c:417 +#, c-format +msgid "Entry offset = 0x%.8lx (%ld)\n" +msgstr "Startafstand = 0x%.8lx (%ld)\n" + +#: ppcboot.c:418 +#, c-format +msgid "Length = 0x%.8lx (%ld)\n" +msgstr "Længde = 0x%.8lx (%ld)\n" + +#: ppcboot.c:421 +#, c-format +msgid "Flag field = 0x%.2x\n" +msgstr "Flagfelt = 0x%.2x\n" + +#: ppcboot.c:427 +#, c-format +msgid "Partition name = \"%s\"\n" +msgstr "Partitionsnavn = \"%s\"\n" + +#: ppcboot.c:446 +#, c-format +msgid "" +"\n" +"Partition[%d] start = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }\n" +msgstr "" +"\n" +"Start på partition[%d] = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }\n" + +#: ppcboot.c:452 +#, c-format +msgid "Partition[%d] end = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }\n" +msgstr "Slut på partition[%d] = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }\n" + +#: ppcboot.c:458 +#, c-format +msgid "Partition[%d] sector = 0x%.8lx (%ld)\n" +msgstr "Sektor for partition[%d] = 0x%.8lx (%ld)\n" + +#: ppcboot.c:459 +#, c-format +msgid "Partition[%d] length = 0x%.8lx (%ld)\n" +msgstr "Længde på partition[%d] = 0x%.8lx (%ld)\n" + +#: som.c:5398 +msgid "som_sizeof_headers unimplemented" +msgstr "som_sizeof_headers er ikke implementeret" + +#: srec.c:301 +#, c-format +msgid "%s:%d: Unexpected character `%s' in S-record file\n" +msgstr "%s:%d: Uventet tegn \"%s\" i S-postfil\n" + +# Vad er stabs? +#: stabs.c:319 +#, c-format +msgid "%s(%s+0x%lx): Stabs entry has invalid string index." +msgstr "%s(%s+0x%lx): Stabpost har ugyldigt strengindex." + +#: syms.c:1044 +msgid "Unsupported .stab relocation" +msgstr ".stab-relokalisering som ikke understøttes" + +#: vms-gsd.c:356 +#, c-format +msgid "bfd_make_section (%s) failed" +msgstr "bfd_make_section (%s) mislykkedes" + +#: vms-gsd.c:371 +#, c-format +msgid "bfd_set_section_flags (%s, %x) failed" +msgstr "bfd_set_section_flags (%s, %x) mislykkedes" + +#: vms-gsd.c:407 +#, c-format +msgid "Size mismatch section %s=%lx, %s=%lx" +msgstr "Størrelsen passer ikke på sektion %s=%lx, %s=%lx" + +#: vms-gsd.c:702 +#, c-format +msgid "unknown gsd/egsd subtype %d" +msgstr "ukendt gsd/egsd-undertype %d" + +#: vms-hdr.c:406 +msgid "Object module NOT error-free !\n" +msgstr "Objektmodulet IKKE fejlfri!\n" + +#: vms-misc.c:543 +#, c-format +msgid "Stack overflow (%d) in _bfd_vms_push" +msgstr "Stakken giver overløb (%d) i _bfd_vms_push" + +#: vms-misc.c:561 +msgid "Stack underflow in _bfd_vms_pop" +msgstr "Stakken giver underløb i _bfd_vms_pop" + +#: vms-misc.c:919 +msgid "_bfd_vms_output_counted called with zero bytes" +msgstr "_bfd_vms_output_counted kaldt med nul byte" + +#: vms-misc.c:924 +msgid "_bfd_vms_output_counted called with too many bytes" +msgstr "_bfd_vms_output_counted called kaldt med for mange byte" + +#: vms-misc.c:1055 +#, c-format +msgid "Symbol %s replaced by %s\n" +msgstr "Symbol %s erstattet med %s\n" + +#: vms-misc.c:1117 +#, c-format +msgid "failed to enter %s" +msgstr "mislykkedes med at gå ind i %s" + +#: vms-tir.c:81 +msgid "No Mem !" +msgstr "Ingen hukommelse!" + +#: vms-tir.c:362 +#, c-format +msgid "bad section index in %s" +msgstr "fejlagtigt sektionsindex i %s" + +#: vms-tir.c:375 +#, c-format +msgid "unsupported STA cmd %s" +msgstr "STA-kommando %s understøttes ikke" + +#: vms-tir.c:380 vms-tir.c:1240 +#, c-format +msgid "reserved STA cmd %d" +msgstr "reserveret STA-kommando %d" + +#: vms-tir.c:491 vms-tir.c:514 +#, c-format +msgid "%s: no symbol \"%s\"" +msgstr "%s: intet symbol \"%s\"" + +#. unsigned shift +#. rotate +#. Redefine symbol to current location. +#. Define a literal. +#: vms-tir.c:581 vms-tir.c:693 vms-tir.c:803 vms-tir.c:821 vms-tir.c:829 +#: vms-tir.c:838 vms-tir.c:1563 +#, c-format +msgid "%s: not supported" +msgstr "%s: understøttes ikke" + +#: vms-tir.c:586 vms-tir.c:1418 +#, c-format +msgid "%s: not implemented" +msgstr "%s: ikke implementeret" + +#: vms-tir.c:590 vms-tir.c:1422 +#, c-format +msgid "reserved STO cmd %d" +msgstr "reserveret STO-kommando %d" + +#: vms-tir.c:708 vms-tir.c:1568 +#, c-format +msgid "reserved OPR cmd %d" +msgstr "reserveret OPR-kommando %d" + +#: vms-tir.c:776 vms-tir.c:1632 +#, c-format +msgid "reserved CTL cmd %d" +msgstr "reserveret CTL-kommando %d" + +#. stack byte from image +#. arg: none. +#: vms-tir.c:1148 +msgid "stack-from-image not implemented" +msgstr "stack-from-image er ikke implementeret" + +#: vms-tir.c:1166 +msgid "stack-entry-mask not fully implemented" +msgstr "stack-entry-mask er ikke helt implementeret" + +#. compare procedure argument +#. arg: cs symbol name +#. by argument index +#. da argument descriptor +#. +#. compare argument descriptor with symbol argument (ARG$V_PASSMECH) +#. and stack TRUE (args match) or FALSE (args dont match) value. +#: vms-tir.c:1180 +msgid "PASSMECH not fully implemented" +msgstr "PASSMECH er ikke helt implementeret" + +#: vms-tir.c:1199 +msgid "stack-local-symbol not fully implemented" +msgstr "stack-local-symbol er ikke helt implementeret" + +#: vms-tir.c:1212 +msgid "stack-literal not fully implemented" +msgstr "stack-literal er ikke helt implementeret" + +#: vms-tir.c:1233 +msgid "stack-local-symbol-entry-point-mask not fully implemented" +msgstr "stack-local-symbol-entry-point-mask er ikke helt implementeret" + +#: vms-tir.c:1510 vms-tir.c:1522 vms-tir.c:1534 vms-tir.c:1546 vms-tir.c:1611 +#: vms-tir.c:1619 vms-tir.c:1627 +#, c-format +msgid "%s: not fully implemented" +msgstr "%s: ikke helt implementeret" + +#: vms-tir.c:1684 +#, c-format +msgid "obj code %d not found" +msgstr "objektkode %d kunne ikke findes" + +#: vms-tir.c:2019 +#, c-format +msgid "SEC_RELOC with no relocs in section %s" +msgstr "SEC_RELOC uden relokaliseringer i sektion %s" + +#: vms-tir.c:2307 +#, c-format +msgid "Unhandled relocation %s" +msgstr "Uhåndteret relokalisering %s" + +#: xcofflink.c:1243 +#, c-format +msgid "%s: `%s' has line numbers but no enclosing section" +msgstr "%s: \"%s\" har linjenumre men ingen omsluttende sektion" + +#: xcofflink.c:1296 +#, c-format +msgid "%s: class %d symbol `%s' has no aux entries" +msgstr "%s: klasse %d-symbol \"%s\" har ingen ydre poster" + +#: xcofflink.c:1319 +#, c-format +msgid "%s: symbol `%s' has unrecognized csect type %d" +msgstr "%s: symbol \"%s\" har ukendt csect-type %d" + +#: xcofflink.c:1331 +#, c-format +msgid "%s: bad XTY_ER symbol `%s': class %d scnum %d scnlen %d" +msgstr "%s: fejlagtig XTY_ER-symbol \"%s\": klasse %d scnum %d scnlen %d" + +#: xcofflink.c:1367 +#, c-format +msgid "%s: XMC_TC0 symbol `%s' is class %d scnlen %d" +msgstr "%s: XMC_TC0-symbol \"%s\" er klasse %d scnlen %d" + +#: xcofflink.c:1519 +#, c-format +msgid "%s: csect `%s' not in enclosing section" +msgstr "%s: csect \"%s\" er ikke i omsluttende sektion" + +#: xcofflink.c:1626 +#, c-format +msgid "%s: misplaced XTY_LD `%s'" +msgstr "%s: fejlagtigt placeret XTY_LD \"%s\"" + +#: xcofflink.c:1957 +#, c-format +msgid "%s: reloc %s:%d not in csect" +msgstr "%s: relokaliseringen %s:%d er ikke i csect" + +#: xcofflink.c:2092 +#, c-format +msgid "%s: XCOFF shared object when not producing XCOFF output" +msgstr "%s: XCOFF delt objekt når ikke XCOFF-uddata produceres" + +#: xcofflink.c:2113 +#, c-format +msgid "%s: dynamic object with no .loader section" +msgstr "%s: dynamisk objekt uden nogen .loader-sektion" + +#: xcofflink.c:2758 +#, c-format +msgid "%s: no such symbol" +msgstr "%s: intet sådant symbol" + +#: xcofflink.c:2891 +msgid "error: undefined symbol __rtinit" +msgstr "fejl: udefineret symbol __rtinit" + +#: xcofflink.c:3453 +#, c-format +msgid "warning: attempt to export undefined symbol `%s'" +msgstr "advarsel: forsøg på at eksportere udefineret symbol \"%s\"" + +#: xcofflink.c:4447 +#, c-format +msgid "TOC overflow: 0x%lx > 0x10000; try -mminimal-toc when compiling" +msgstr "TOC giver overløb: 0x%lx > 0x10000; prøv -mminimal-toc ved kompilering" + +#: xcofflink.c:5287 xcofflink.c:5756 xcofflink.c:5818 xcofflink.c:6119 +#, c-format +msgid "%s: loader reloc in unrecognized section `%s'" +msgstr "%s: indlæserrelokalisering i ukendt sektion \"%s\"" + +#: xcofflink.c:5309 xcofflink.c:6130 +#, c-format +msgid "%s: `%s' in loader reloc but not loader sym" +msgstr "%s: \"%s\" i indlæserrelokalisering men ikke indlæsersym" + +#: xcofflink.c:5324 +#, c-format +msgid "%s: loader reloc in read-only section %s" +msgstr "%s: indlæserrelokalisering i skrivebeskyttet sektion %s" + +#: elf32-ia64.c:2222 elf64-ia64.c:2222 +msgid "@pltoff reloc against local symbol" +msgstr "@pltoff-relokalisering mod lokalt symbol" + +#: elf32-ia64.c:3562 elf64-ia64.c:3562 +#, c-format +msgid "%s: short data segment overflowed (0x%lx >= 0x400000)" +msgstr "%s: kort datasegment løb over (0x%lx >= 0x400000)" + +#: elf32-ia64.c:3573 elf64-ia64.c:3573 +#, c-format +msgid "%s: __gp does not cover short data segment" +msgstr "%s: __gp dækker ikke kort datasegment" + +#: elf32-ia64.c:3858 elf64-ia64.c:3858 +#, c-format +msgid "%s: linking non-pic code in a shared library" +msgstr "%s: lænker ikke-pic-kode i delt bibliotek" + +#: elf32-ia64.c:3891 elf64-ia64.c:3891 +#, c-format +msgid "%s: @gprel relocation against dynamic symbol %s" +msgstr "%s: @gprel-relokalisering mod dynamisk symbol %s" + +#: elf32-ia64.c:4030 elf64-ia64.c:4030 +#, c-format +msgid "%s: dynamic relocation against speculation fixup" +msgstr "%s: dynamisk relokalisering uden spekulationsrettelser" + +#: elf32-ia64.c:4038 elf64-ia64.c:4038 +#, c-format +msgid "%s: speculation fixup against undefined weak symbol" +msgstr "%s: spekulationsfix mod udefineret svagt symbol" + +#: elf32-ia64.c:4271 elf64-ia64.c:4271 +msgid "unsupported reloc" +msgstr "relokaliseringen understøttes ikke" + +#: elf32-ia64.c:4551 elf64-ia64.c:4551 +#, c-format +msgid "%s: linking trap-on-NULL-dereference with non-trapping files" +msgstr "%s: lænker fang-ved-NULL-dereference med ikkefangende filer" + +#: elf32-ia64.c:4560 elf64-ia64.c:4560 +#, c-format +msgid "%s: linking big-endian files with little-endian files" +msgstr "%s: lænker big endian-filer med little endian-filer" + +#: elf32-ia64.c:4569 elf64-ia64.c:4569 +#, c-format +msgid "%s: linking 64-bit files with 32-bit files" +msgstr "%s: lænker 64-bitfiler med 32-bitfiler" + +#: elf32-ia64.c:4578 elf64-ia64.c:4578 +#, c-format +msgid "%s: linking constant-gp files with non-constant-gp files" +msgstr "%s: lænker konstant-gp-filer med ikke-konstant-gp-filer" + +#: elf32-ia64.c:4588 elf64-ia64.c:4588 +#, c-format +msgid "%s: linking auto-pic files with non-auto-pic files" +msgstr "%s: lænker auto-pic-filer med ikke-auto-pic-filer" + +#: peigen.c:962 pepigen.c:962 +#, c-format +msgid "%s: line number overflow: 0x%lx > 0xffff" +msgstr "%s: linjenummer giver overløb: 0x%lx > 0xffff" + +#: peigen.c:979 pepigen.c:979 +#, c-format +msgid "%s: reloc overflow 1: 0x%lx > 0xffff" +msgstr "%s: relokalisering giver overløb 1: 0x%lx > 0xffff" + +#: peigen.c:993 pepigen.c:993 +msgid "Export Directory [.edata (or where ever we found it)]" +msgstr "Exportkatalog [.edata (eller hvor vi fandt det)]" + +#: peigen.c:994 pepigen.c:994 +msgid "Import Directory [parts of .idata]" +msgstr "Importkatalog [dele af .idata]" + +#: peigen.c:995 pepigen.c:995 +msgid "Resource Directory [.rsrc]" +msgstr "Resursekatalog [.rsrc]" + +#: peigen.c:996 pepigen.c:996 +msgid "Exception Directory [.pdata]" +msgstr "Undtagelseskatalog [.pdata]" + +#: peigen.c:997 pepigen.c:997 +msgid "Security Directory" +msgstr "Sikkerhedskatalog" + +#: peigen.c:998 pepigen.c:998 +msgid "Base Relocation Directory [.reloc]" +msgstr "Baserelokaliseringskatalog [.reloc]" + +#: peigen.c:999 pepigen.c:999 +msgid "Debug Directory" +msgstr "Fejlsøgningskatalog" + +#: peigen.c:1000 pepigen.c:1000 +msgid "Description Directory" +msgstr "Beskrivelseskatalog" + +#: peigen.c:1001 pepigen.c:1001 +msgid "Special Directory" +msgstr "Specialkatalog" + +#: peigen.c:1002 pepigen.c:1002 +msgid "Thread Storage Directory [.tls]" +msgstr "Trådlagringskatalog [.tls]" + +#: peigen.c:1003 pepigen.c:1003 +msgid "Load Configuration Directory" +msgstr "Indlæsningskonfigurationskatalog" + +#: peigen.c:1004 pepigen.c:1004 +msgid "Bound Import Directory" +msgstr "Katalog over bundne importer" + +#: peigen.c:1005 pepigen.c:1005 +msgid "Import Address Table Directory" +msgstr "Importadressetabelkatalog" + +#: peigen.c:1006 pepigen.c:1006 +msgid "Delay Import Directory" +msgstr "Katalog over forskinkede importer" + +#: peigen.c:1007 peigen.c:1008 pepigen.c:1007 pepigen.c:1008 +msgid "Reserved" +msgstr "Reserveret" + +#: peigen.c:1071 pepigen.c:1071 +msgid "" +"\n" +"There is an import table, but the section containing it could not be found\n" +msgstr "" +"\n" +"Der findes en importtabel, men sektionen som indeholder den kunne ikke findes\n" + +#: peigen.c:1076 pepigen.c:1076 +#, c-format +msgid "" +"\n" +"There is an import table in %s at 0x%lx\n" +msgstr "" +"\n" +"Der findes en importtabel i %s på 0x%lx\n" + +#: peigen.c:1113 pepigen.c:1113 +#, c-format +msgid "" +"\n" +"Function descriptor located at the start address: %04lx\n" +msgstr "" +"\n" +"Funktionsidentifikatorer fundet på startadressen: %04lx\n" + +#: peigen.c:1116 pepigen.c:1116 +#, c-format +msgid "\tcode-base %08lx toc (loadable/actual) %08lx/%08lx\n" +msgstr "\tkodebase %08lx toc (indlæsningsbar/reelt) %08lx/%08lx\n" + +#: peigen.c:1122 pepigen.c:1122 +msgid "" +"\n" +"No reldata section! Function descriptor not decoded.\n" +msgstr "" +"\n" +"Ingen reldata-sektion! Funktionsidentifikatorer afkodedes ikke.\n" + +#: peigen.c:1127 pepigen.c:1127 +#, c-format +msgid "" +"\n" +"The Import Tables (interpreted %s section contents)\n" +msgstr "" +"\n" +"Importtabellerne (tolket indhold i %s-sektion)\n" + +# Vad er thunk? +#: peigen.c:1130 pepigen.c:1130 +msgid "" +" vma: Hint Time Forward DLL First\n" +" Table Stamp Chain Name Thunk\n" +msgstr "" +" vma: Tips- Tids- Fremad- DLL- Første\n" +" tabel stempel kæde navn thunk\n" + +#: peigen.c:1181 pepigen.c:1181 +#, c-format +msgid "" +"\n" +"\tDLL Name: %s\n" +msgstr "" +"\n" +"\tDLL-navn: %s\n" + +#: peigen.c:1192 pepigen.c:1192 +msgid "\tvma: Hint/Ord Member-Name Bound-To\n" +msgstr "\tvma: Tips/Ordn Medlemsnavn Bundet till\n" + +#: peigen.c:1217 pepigen.c:1217 +msgid "" +"\n" +"There is a first thunk, but the section containing it could not be found\n" +msgstr "" +"\n" +"Der findes en første thunk, men sektionen som indeholder den kunne ikke findes\n" + +#: peigen.c:1357 pepigen.c:1357 +msgid "" +"\n" +"There is an export table, but the section containing it could not be found\n" +msgstr "" +"\n" +"Der findes en eksporttabel, men sektionen som indeholder den kunne ikke findes\n" + +#: peigen.c:1362 pepigen.c:1362 +#, c-format +msgid "" +"\n" +"There is an export table in %s at 0x%lx\n" +msgstr "" +"\n" +"Det findes en eksporttabel i %s ved 0x%lx\n" + +#: peigen.c:1393 pepigen.c:1393 +#, c-format +msgid "" +"\n" +"The Export Tables (interpreted %s section contents)\n" +"\n" +msgstr "" +"\n" +"Eksporttabellerne (tolket indhold i %s-sektion)\n" + +#: peigen.c:1397 pepigen.c:1397 +#, c-format +msgid "Export Flags \t\t\t%lx\n" +msgstr "Eksportflag \t\t\t%lx\n" + +#: peigen.c:1400 pepigen.c:1400 +#, c-format +msgid "Time/Date stamp \t\t%lx\n" +msgstr "Tids/datostempel \t\t%lx\n" + +#: peigen.c:1403 pepigen.c:1403 +#, c-format +msgid "Major/Minor \t\t\t%d/%d\n" +msgstr "Større/mindre \t\t\t%d/%d\n" + +#: peigen.c:1406 pepigen.c:1406 +msgid "Name \t\t\t\t" +msgstr "Navn \t\t\t\t" + +#: peigen.c:1412 pepigen.c:1412 +#, c-format +msgid "Ordinal Base \t\t\t%ld\n" +msgstr "Ordningsbase \t\t\t%ld\n" + +#: peigen.c:1415 pepigen.c:1415 +msgid "Number in:\n" +msgstr "Tal i:\n" + +#: peigen.c:1418 pepigen.c:1418 +#, c-format +msgid "\tExport Address Table \t\t%08lx\n" +msgstr "\tEksportadressetabel \t\t%08lx\n" + +#: peigen.c:1422 pepigen.c:1422 +#, c-format +msgid "\t[Name Pointer/Ordinal] Table\t%08lx\n" +msgstr "\t[Navnepeger/Ordningstal]-tabel\t%08lx\n" + +#: peigen.c:1425 pepigen.c:1425 +msgid "Table Addresses\n" +msgstr "Tabeladresser\n" + +#: peigen.c:1428 pepigen.c:1428 +msgid "\tExport Address Table \t\t" +msgstr "\tEksportadressetabel \t\t" + +#: peigen.c:1433 pepigen.c:1433 +msgid "\tName Pointer Table \t\t" +msgstr "\tNavnepegertabel \t\t" + +#: peigen.c:1438 pepigen.c:1438 +msgid "\tOrdinal Table \t\t\t" +msgstr "\tOrdningstalstabel \t\t\t" + +#: peigen.c:1453 pepigen.c:1453 +#, c-format +msgid "" +"\n" +"Export Address Table -- Ordinal Base %ld\n" +msgstr "" +"\n" +"Eksportadressetabel -- Ordningsbase %ld\n" + +#: peigen.c:1472 pepigen.c:1472 +msgid "Forwarder RVA" +msgstr "Videresender-RVA" + +#: peigen.c:1483 pepigen.c:1483 +msgid "Export RVA" +msgstr "Eksport-RVA" + +#: peigen.c:1490 pepigen.c:1490 +msgid "" +"\n" +"[Ordinal/Name Pointer] Table\n" +msgstr "" +"\n" +"[Ordningstals-/Navnepeger-]tabel\n" + +#: peigen.c:1545 pepigen.c:1545 +#, c-format +msgid "Warning, .pdata section size (%ld) is not a multiple of %d\n" +msgstr "Advarsel, størrelsen på .pdata-sektionen (%ld) er ikke en multipel af %d\n" + +#: peigen.c:1549 pepigen.c:1549 +msgid "" +"\n" +"The Function Table (interpreted .pdata section contents)\n" +msgstr "" +"\n" +"Funktionstabellen (tolket indhold fra .pdata-sektionen)\n" + +#: peigen.c:1552 pepigen.c:1552 +msgid " vma:\t\t\tBegin Address End Address Unwind Info\n" +msgstr " vma:\t\t\tStartadresse Slutadresse Tilbagespolings-information\n" + +#: peigen.c:1554 pepigen.c:1554 +msgid "" +" vma:\t\tBegin End EH EH PrologEnd Exception\n" +" \t\tAddress Address Handler Data Address Mask\n" +msgstr "" +" vma:\t\tStart- Slut- EH- EH- Prologsluts- Undtagelses-\n" +" \t\tadresse adresse håndterere data adresse maske\n" + +#: peigen.c:1624 pepigen.c:1624 +msgid " Register save millicode" +msgstr " Registergemnings millikode" + +#: peigen.c:1627 pepigen.c:1627 +msgid " Register restore millicode" +msgstr " Registergenskabnings millikode" + +#: peigen.c:1630 pepigen.c:1630 +msgid " Glue code sequence" +msgstr " Klisterkodesekvens" + +#: peigen.c:1682 pepigen.c:1682 +msgid "" +"\n" +"\n" +"PE File Base Relocations (interpreted .reloc section contents)\n" +msgstr "" +"\n" +"\n" +"PE-filbaserelokaliseringer (tolket indhold i .reloc-sektionen)\n" + +#: peigen.c:1712 pepigen.c:1712 +#, c-format +msgid "" +"\n" +"Virtual Address: %08lx Chunk size %ld (0x%lx) Number of fixups %ld\n" +msgstr "" +"\n" +"Virtuel adresse: %08lx Områdesstørrelse %ld (0x%lx) Antal rettelser %ld\n" + +#: peigen.c:1725 pepigen.c:1725 +#, c-format +msgid "\treloc %4d offset %4x [%4lx] %s" +msgstr "\trelokalisering %4d afstand %4x [%4lx] %s" + +#. The MS dumpbin program reportedly ands with 0xff0f before +#. printing the characteristics field. Not sure why. No reason to +#. emulate it here. +#: peigen.c:1765 pepigen.c:1765 +#, c-format +msgid "" +"\n" +"Characteristics 0x%x\n" +msgstr "" +"\n" +"Karakteristik 0x%x\n" diff -uprN binutils-2.13.90.0.4/bfd/po/tr.po binutils-2.13.90.0.10/bfd/po/tr.po --- binutils-2.13.90.0.4/bfd/po/tr.po Thu Feb 7 10:21:03 2002 +++ binutils-2.13.90.0.10/bfd/po/tr.po Fri Sep 27 08:33:09 2002 @@ -4,171 +4,171 @@ # msgid "" msgstr "" -"Project-Id-Version: bfd 2.12-pre020121\n" -"POT-Creation-Date: 2002-01-17 12:55+0000\n" -"PO-Revision-Date: 2002-01-24 13:11EET\n" +"Project-Id-Version: bfd 2.12.91\n" +"POT-Creation-Date: 2002-07-23 15:55-0400\n" +"PO-Revision-Date: 2002-08-10 13:11EET\n" "Last-Translator: Deniz Akkus Kanca \n" "Language-Team: Turkish \n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-9\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 0.9.5\n" -#: aout-adobe.c:196 +#: aout-adobe.c:197 #, c-format msgid "%s: Unknown section type in a.out.adobe file: %x\n" -msgstr "%s: a.out.adobe dosyasýnda bilinmeyen bölüm türü: %x\n" +msgstr "%s: a.out.adobe dosyasında bilinmeyen bölüm türü: %x\n" #: aout-cris.c:208 #, c-format msgid "%s: Invalid relocation type exported: %d" -msgstr "%s: Geçersiz yer deðiþtirme türü ihraç edilmiþ: %d" +msgstr "%s: Geçersiz yer deÄŸiÅŸtirme türü ihraç edilmiÅŸ: %d" #: aout-cris.c:252 #, c-format msgid "%s: Invalid relocation type imported: %d" -msgstr "%s: Geçersiz yer deðiþtirme türü ithal edilmiþ: %d" +msgstr "%s: Geçersiz yer deÄŸiÅŸtirme türü ithal edilmiÅŸ: %d" #: aout-cris.c:263 #, c-format msgid "%s: Bad relocation record imported: %d" -msgstr "%s: Geçersiz yer deðiþtirme kaydý ithal edilmiþ: %d" +msgstr "%s: Geçersiz yer deÄŸiÅŸtirme kaydı ithal edilmiÅŸ: %d" #: aoutx.h:1282 aoutx.h:1699 #, c-format msgid "%s: can not represent section `%s' in a.out object file format" -msgstr "%s: `%s' bölümü a.out nesne dosya biçeminde gösterilemez" +msgstr "%s: `%s' bölümü a.out nesne dosya biçeminde gösterilemez" #: aoutx.h:1669 #, c-format msgid "%s: can not represent section for symbol `%s' in a.out object file format" -msgstr "%s: `%s' sembol bölümü a.out nesne dosyasýnda gösterilemez" +msgstr "%s: `%s' sembol bölümü a.out nesne dosyasında gösterilemez" #: aoutx.h:1671 msgid "*unknown*" msgstr "*bilinmeyen*" -#: aoutx.h:3735 +#: aoutx.h:3732 #, c-format msgid "%s: relocateable link from %s to %s not supported" -msgstr "%s: %s'dan %s'ya yeri deðiþtirilebilen bað desteklenmiyor" +msgstr "%s: %s'dan %s'ya yeri deÄŸiÅŸtirilebilen baÄŸ desteklenmiyor" #: archive.c:1826 msgid "Warning: writing archive was slow: rewriting timestamp\n" -msgstr "Uyarý: arþiv yazma iþlemi yavaþ: zaman damgasý yeniden yazýlýyor\n" +msgstr "Uyarı: arÅŸiv yazma iÅŸlemi yavaÅŸ: zaman damgası yeniden yazılıyor\n" #: archive.c:2093 msgid "Reading archive file mod timestamp" -msgstr "Arþiv dosyasý deðiþim zaman damgasý okunuyor" +msgstr "ArÅŸiv dosyası deÄŸiÅŸim zaman damgası okunuyor" #. FIXME: bfd can't call perror. #: archive.c:2120 msgid "Writing updated armap timestamp" -msgstr "Güncellenmiþ armap zaman damgasý yazýlýyor" +msgstr "GüncellenmiÅŸ armap zaman damgası yazılıyor" -#: bfd.c:281 +#: bfd.c:274 msgid "No error" msgstr "Hata yok" -#: bfd.c:282 +#: bfd.c:275 msgid "System call error" -msgstr "Sistem çaðrý hatasý" +msgstr "Sistem çaÄŸrı hatası" -#: bfd.c:283 +#: bfd.c:276 msgid "Invalid bfd target" -msgstr "Geçersiz bfd hedefi" +msgstr "Geçersiz bfd hedefi" -#: bfd.c:284 +#: bfd.c:277 msgid "File in wrong format" -msgstr "Dosya yanlýþ biçemde" +msgstr "Dosya yanlış biçemde" -#: bfd.c:285 +#: bfd.c:278 msgid "Archive object file in wrong format" -msgstr "Arþiv nesne dosyasý yanlýþ biçemde" +msgstr "ArÅŸiv nesne dosyası yanlış biçemde" -#: bfd.c:286 +#: bfd.c:279 msgid "Invalid operation" -msgstr "Geçersiz iþlem" +msgstr "Geçersiz iÅŸlem" -#: bfd.c:287 +#: bfd.c:280 msgid "Memory exhausted" -msgstr "Bellek tükendi" +msgstr "Bellek tükendi" -#: bfd.c:288 +#: bfd.c:281 msgid "No symbols" msgstr "Sembol yok" -#: bfd.c:289 +#: bfd.c:282 msgid "Archive has no index; run ranlib to add one" -msgstr "Arþivin indeksi yok; ranlib çalýþtýrarak indeks ekleyin" +msgstr "ArÅŸivin indeksi yok; ranlib çalıştırarak indeks ekleyin" -#: bfd.c:290 +#: bfd.c:283 msgid "No more archived files" -msgstr "Baþka arþivlenmiþ dosya yok" +msgstr "BaÅŸka arÅŸivlenmiÅŸ dosya yok" -#: bfd.c:291 +#: bfd.c:284 msgid "Malformed archive" -msgstr "Bozuk arþiv" +msgstr "Bozuk arÅŸiv" -#: bfd.c:292 +#: bfd.c:285 msgid "File format not recognized" -msgstr "Dosya biçemi tanýnmýyor" +msgstr "Dosya biçemi tanınmıyor" -#: bfd.c:293 +#: bfd.c:286 msgid "File format is ambiguous" -msgstr "Dosya biçemi belirsiz" +msgstr "Dosya biçemi belirsiz" -#: bfd.c:294 +#: bfd.c:287 msgid "Section has no contents" -msgstr "Bölümde içerik yok" +msgstr "Bölümde içerik yok" -#: bfd.c:295 +#: bfd.c:288 msgid "Nonrepresentable section on output" -msgstr "Çýktýda gösterilemeyen bölüm" +msgstr "Çıktıda gösterilemeyen bölüm" -#: bfd.c:296 +#: bfd.c:289 msgid "Symbol needs debug section which does not exist" -msgstr "Sembol, olmayan hata ayýklama bölümünü istiyor" +msgstr "Sembol, olmayan hata ayıklama bölümünü istiyor" -#: bfd.c:297 +#: bfd.c:290 msgid "Bad value" -msgstr "Geçersiz deðer" +msgstr "Geçersiz deÄŸer" -#: bfd.c:298 +#: bfd.c:291 msgid "File truncated" -msgstr "Dosya budandý" +msgstr "Dosya budandı" -#: bfd.c:299 +#: bfd.c:292 msgid "File too big" -msgstr "Dosya fazla büyük" +msgstr "Dosya fazla büyük" -#: bfd.c:300 +#: bfd.c:293 msgid "#" -msgstr "#" +msgstr "#" -#: bfd.c:707 +#: bfd.c:700 #, c-format msgid "BFD %s assertion fail %s:%d" -msgstr "BFD %s, olumlama baþarýsýz %s:%d" +msgstr "BFD %s, olumlama baÅŸarısız %s:%d" -#: bfd.c:726 +#: bfd.c:719 #, c-format msgid "BFD %s internal error, aborting at %s line %d in %s\n" -msgstr "BFD %s iç hatasý, %s'da, %d satýrý, %s içerisinde iþlem durduruldu\n" +msgstr "BFD %s iç hatası, %s'da, %d satırı, %s içerisinde iÅŸlem durduruldu\n" -#: bfd.c:730 +#: bfd.c:723 #, c-format -msgid "BFD %sinternal error, aborting at %s line %d\n" -msgstr "BFD %s iç hatasý, %s, %d satýrýnda iþlem durduruldu\n" +msgid "BFD %s internal error, aborting at %s line %d\n" +msgstr "BFD %s iç hatası, %s, %d satırında iÅŸlem durduruldu\n" -#: bfd.c:732 +#: bfd.c:725 msgid "Please report this bug.\n" -msgstr "Lütfen bu hatayý bildirin.\n" +msgstr "Lütfen bu hatayı bildirin.\n" #: binary.c:306 #, c-format msgid "Warning: Writing section `%s' to huge (ie negative) file offset 0x%lx." -msgstr "Uyarý: `%s' bölümü çok büyük (negatif) dosya göreli konumu 0x%lx'e yazýlýyor." +msgstr "Uyarı: `%s' bölümü çok büyük (negatif) dosya göreli konumu 0x%lx'e yazılıyor." #: coff-a29k.c:119 msgid "Missing IHCONST" @@ -178,1337 +178,1584 @@ msgstr "IHCONST yok" msgid "Missing IHIHALF" msgstr "IHIHALF yok" -#: coff-a29k.c:212 +#: coff-a29k.c:212 coff-or32.c:229 msgid "Unrecognized reloc" -msgstr "Tanýnmayan yer deðiþtirme" +msgstr "Tanınmayan yer deÄŸiÅŸtirme" #: coff-a29k.c:408 msgid "missing IHCONST reloc" -msgstr "eksik IHCONST yer deðiþtirmesi" +msgstr "eksik IHCONST yer deÄŸiÅŸtirmesi" #: coff-a29k.c:498 msgid "missing IHIHALF reloc" -msgstr "eksik IHIHALF yer deðiþtirmesi" +msgstr "eksik IHIHALF yer deÄŸiÅŸtirmesi" -#: coff-alpha.c:881 coff-alpha.c:918 +#: coff-alpha.c:881 coff-alpha.c:918 coff-alpha.c:1989 coff-mips.c:1432 msgid "GP relative relocation used when GP not defined" -msgstr "GP tanýmlanmamýþken GP göreli yer deðiþtirmesi kullanýlmýþ" +msgstr "GP tanımlanmamışken GP göreli yer deÄŸiÅŸtirmesi kullanılmış" #: coff-alpha.c:1485 msgid "using multiple gp values" -msgstr "birden fazla gp deðeri kullanýlýyor" +msgstr "birden fazla gp deÄŸeri kullanılıyor" -#: coff-alpha.c:1989 coff-mips.c:1433 -msgid "GP relative relocation when GP not defined" -msgstr "GP tanýmlanmamýþken GP göreli yer deðiþtirmesi" - -#: coff-arm.c:1051 elf32-arm.h:285 +#: coff-arm.c:1066 elf32-arm.h:285 #, c-format msgid "%s: unable to find THUMB glue '%s' for `%s'" -msgstr "%1$s: `%3$s' için THUMB birleþtiricisi '%2$s' bulunamadý " +msgstr "%1$s: `%3$s' için THUMB birleÅŸtiricisi '%2$s' bulunamadı " -#: coff-arm.c:1080 elf32-arm.h:320 +#: coff-arm.c:1096 elf32-arm.h:320 #, c-format msgid "%s: unable to find ARM glue '%s' for `%s'" -msgstr "%1$s: `%3$s' için ARM birleþtiricisi '%2$s' bulunamadý" +msgstr "%1$s: `%3$s' için ARM birleÅŸtiricisi '%2$s' bulunamadı" -#: coff-arm.c:1375 coff-arm.c:1470 elf32-arm.h:886 elf32-arm.h:990 +#: coff-arm.c:1391 coff-arm.c:1486 elf32-arm.h:887 elf32-arm.h:991 #, c-format msgid "%s(%s): warning: interworking not enabled." -msgstr "%s(%s): uyarý: beraber çalýþma kipi etkin deðil." +msgstr "%s(%s): uyarı: beraber çalışma kipi etkin deÄŸil." -#: coff-arm.c:1379 elf32-arm.h:993 +#: coff-arm.c:1395 elf32-arm.h:994 #, c-format msgid " first occurrence: %s: arm call to thumb" -msgstr " ilk ortaya çýkýþ: %s: thumb'a arm'dan çaðrý" +msgstr " ilk ortaya çıkış: %s: thumb'a arm'dan çaÄŸrı" -#: coff-arm.c:1474 elf32-arm.h:889 +#: coff-arm.c:1490 elf32-arm.h:890 #, c-format msgid " first occurrence: %s: thumb call to arm" -msgstr " ilk ortaya çýkýþ: %s: arm'a thumb'dan çaðrý" +msgstr " ilk ortaya çıkış: %s: arm'a thumb'dan çaÄŸrı" -#: coff-arm.c:1477 +#: coff-arm.c:1493 msgid " consider relinking with --support-old-code enabled" -msgstr " --support-old-code seçeneði ile yeniden baðlamayý deneyin" +msgstr " --support-old-code seçeneÄŸi ile yeniden baÄŸlamayı deneyin" -#: coff-arm.c:1767 coff-tic80.c:686 cofflink.c:3017 +#: coff-arm.c:1785 coff-tic80.c:686 cofflink.c:3031 #, c-format msgid "%s: bad reloc address 0x%lx in section `%s'" -msgstr "%1$s: `%3$s' bölümünde geçersiz yer deðiþtirme adresi 0x%2$lx" +msgstr "%1$s: `%3$s' bölümünde geçersiz yer deÄŸiÅŸtirme adresi 0x%2$lx" -#: coff-arm.c:2107 +#: coff-arm.c:2127 #, c-format msgid "%s: illegal symbol index in reloc: %d" -msgstr "%s: yer deðiþtirmede geçersiz sembol indeksi: %d" +msgstr "%s: yer deÄŸiÅŸtirmede geçersiz sembol indeksi: %d" -#: coff-arm.c:2235 +#: coff-arm.c:2255 #, c-format -msgid "%s: ERROR: compiled for APCS-%d whereas target %s uses APCS-%d" -msgstr "%s: HATA: APCS-%d için derlenmiþ fakat hedef %s APCS-%d kullanýyor" +msgid "ERROR: %s is compiled for APCS-%d, whereas %s is compiled for APCS-%d" +msgstr "Hata: %s APCS-%d için derlenmiÅŸ, fakat %s APCS-%d için derlenmiÅŸ" -#: coff-arm.c:2250 +#: coff-arm.c:2270 elf32-arm.h:2297 #, c-format -msgid "%s: ERROR: passes floats in float registers whereas target %s uses integer registers" -msgstr "%s: HATA: kayan sayýlarý kayan yazmaçlarda geçiriyor fakat hedef %s tamsayý yazmaç kullanýyor" +msgid "ERROR: %s passes floats in float registers, whereas %s passes them in integer registers" +msgstr "" +"Hata: %s kayan sayıları kayan sayı yazmaçlarında geçiriyor, \n" +" fakat %s tamsayı yazmaçlarında geçiriyor" -#: coff-arm.c:2253 +#: coff-arm.c:2273 elf32-arm.h:2302 #, c-format -msgid "%s: ERROR: passes floats in integer registers whereas target %s uses float registers" -msgstr "%s: HATA: kayan sayýlarý tamsayý yazmaçlarda geçiriyor fakat hedef %s kayan yazmaç kullanýyor" +msgid "ERROR: %s passes floats in integer registers, whereas %s passes them in float registers" +msgstr "" +"Hata: %s kayan sayıları tamsayı yazmaçlarında geçiriyor, \n" +" fakat %s kayan sayı yazmaçlarında geçiriyor" -#: coff-arm.c:2268 +#: coff-arm.c:2288 #, c-format -msgid "%s: ERROR: compiled as position independent code, whereas target %s is absolute position" -msgstr "%s: HATA: yerden baðýmsýz kod olarak derlendi, fakat hedef %s yere baðýmlý" +msgid "ERROR: %s is compiled as position independent code, whereas target %s is absolute position" +msgstr "HATA: %s yerden bağımsız kod olarak derlendi, fakat hedef %s yere bağımlı" -#: coff-arm.c:2271 +#: coff-arm.c:2291 #, c-format -msgid "%s: ERROR: compiled as absolute position code, whereas target %s is position independent" -msgstr "%s: HATA: yere baðýmlý kod olarak derlendi, fakat hedef %s yerden baðýmsýz" +msgid "ERROR: %s is compiled as absolute position code, whereas target %s is position independent" +msgstr "HATA: %s yere bağımlı kod olarak derlendi, fakat hedef %s yerden bağımsız" -#: coff-arm.c:2300 +#: coff-arm.c:2320 elf32-arm.h:2358 #, c-format -msgid "Warning: input file %s supports interworking, whereas %s does not." -msgstr "Uyarý: %s girdi dosyasý beraber çalýþmayý destekliyor, fakat %s desteklemiyor." +msgid "Warning: %s supports interworking, whereas %s does not" +msgstr "Uyarı: %s girdi dosyası beraber çalışmayı destekliyor, fakat %s desteklemiyor." -#: coff-arm.c:2303 +#: coff-arm.c:2323 elf32-arm.h:2365 #, c-format -msgid "Warning: input file %s does not support interworking, whereas %s does." -msgstr "Uyarý: %s girdi dosyasý beraber çalýþmayý desteklemiyor, fakat %s destekliyor." +msgid "Warning: %s does not support interworking, whereas %s does" +msgstr "Uyarı: %s girdi dosyası beraber çalışmayı desteklemiyor, fakat %s destekliyor." -#: coff-arm.c:2330 +#: coff-arm.c:2350 #, c-format msgid "private flags = %x:" -msgstr "özel bayraklar = %x:" +msgstr "özel bayraklar = %x:" -#: coff-arm.c:2338 elf32-arm.h:2408 +#: coff-arm.c:2358 elf32-arm.h:2418 msgid " [floats passed in float registers]" -msgstr " [kayan sayýlar kayan yazmaçlarda geçirildi]" +msgstr " [kayan sayılar kayan yazmaçlarda geçirildi]" -#: coff-arm.c:2340 +#: coff-arm.c:2360 msgid " [floats passed in integer registers]" -msgstr " [kayan sayýlar tamsayý yazmaçlarda geçirildi]" +msgstr " [kayan sayılar tamsayı yazmaçlarda geçirildi]" -#: coff-arm.c:2343 elf32-arm.h:2411 +#: coff-arm.c:2363 elf32-arm.h:2421 msgid " [position independent]" -msgstr " [yerden baðýmsýz]" +msgstr " [yerden bağımsız]" -#: coff-arm.c:2345 +#: coff-arm.c:2365 msgid " [absolute position]" -msgstr " [yere baðýmlý]" +msgstr " [yere bağımlı]" -#: coff-arm.c:2349 +#: coff-arm.c:2369 msgid " [interworking flag not initialised]" -msgstr " [beraber çalýþma bayraðýna öndeðer atanmamýþ]" +msgstr " [beraber çalışma bayrağına öndeÄŸer atanmamış]" -#: coff-arm.c:2351 +#: coff-arm.c:2371 msgid " [interworking supported]" -msgstr " [beraber çalýþma destekleniyor]" +msgstr " [beraber çalışma destekleniyor]" -#: coff-arm.c:2353 +#: coff-arm.c:2373 msgid " [interworking not supported]" -msgstr " [beraber çalýþma desteklenmiyor]" +msgstr " [beraber çalışma desteklenmiyor]" -#: coff-arm.c:2401 +#: coff-arm.c:2421 elf32-arm.h:2124 #, c-format -msgid "Warning: Not setting interworking flag of %s, since it has already been specified as non-interworking" -msgstr "Uyarý: %s beraber çalýþma bayraðý atanmadý, çünkü beraber çalýþma olmayacaðý önceden belirtilmiþ" +msgid "Warning: Not setting interworking flag of %s since it has already been specified as non-interworking" +msgstr "Uyarı: %s beraber çalışma bayrağı atanmadı, çünkü beraber çalışma olmayacağı önceden belirtilmiÅŸ" -#: coff-arm.c:2405 +#: coff-arm.c:2425 elf32-arm.h:2128 #, c-format msgid "Warning: Clearing the interworking flag of %s due to outside request" -msgstr "Uyarý: %s beraber çalýþma bayraðý dýþ istek üzerine temizlendi" +msgstr "Uyarı: %s beraber çalışma bayrağı dış istek üzerine temizlendi" #: coff-i960.c:136 coff-i960.c:485 msgid "uncertain calling convention for non-COFF symbol" -msgstr "COFF olmayan sembol için belirsiz çaðrý davranýþý" +msgstr "COFF olmayan sembol için belirsiz çaÄŸrı davranışı" -#: coff-m68k.c:481 coff-mips.c:2431 elf32-m68k.c:2212 +#: coff-m68k.c:481 coff-mips.c:2429 elf32-m68k.c:2157 elf32-mips.c:1844 msgid "unsupported reloc type" -msgstr "desteklenmeyen yer deðiþtirme türü" +msgstr "desteklenmeyen yer deÄŸiÅŸtirme türü" -#: coff-mips.c:875 elf32-mips.c:1987 elf64-mips.c:1739 +#: coff-mips.c:874 elf32-mips.c:1062 elf64-mips.c:1609 msgid "GP relative relocation when _gp not defined" -msgstr "_gp tanýmsýz iken GP göreli yer deðiþtirmesi" +msgstr "_gp tanımsız iken GP göreli yer deÄŸiÅŸtirmesi" #. No other sections should appear in -membedded-pic #. code. -#: coff-mips.c:2468 +#: coff-mips.c:2466 msgid "reloc against unsupported section" -msgstr "desteklenmeyen bölümde yer deðiþtirme" +msgstr "desteklenmeyen bölümde yer deÄŸiÅŸtirme" -#: coff-mips.c:2476 +#: coff-mips.c:2474 msgid "reloc not properly aligned" -msgstr "yer deðiþtirme doðru hizalanmamýþ" +msgstr "yer deÄŸiÅŸtirme doÄŸru hizalanmamış" -#: coff-rs6000.c:2710 coff64-rs6000.c:1164 +#: coff-rs6000.c:2766 #, c-format msgid "%s: unsupported relocation type 0x%02x" -msgstr "%s: desteklenmeyen yükleyici yerdeðiþimi 0x%02x" +msgstr "%s: desteklenmeyen yükleyici yerdeÄŸiÅŸimi 0x%02x" -#: coff-rs6000.c:2756 coff64-rs6000.c:1210 +#: coff-rs6000.c:2859 #, c-format msgid "%s: TOC reloc at 0x%x to symbol `%s' with no TOC entry" -msgstr "%s: 0x%x'da TOC girdisi olmayan `%s' sembolüne TOC yerdeðiþimi" +msgstr "%s: 0x%x'da TOC girdisi olmayan `%s' sembolüne TOC yerdeÄŸiÅŸimi" -#: coff-rs6000.c:3006 coff64-rs6000.c:2060 +#: coff-rs6000.c:3590 coff64-rs6000.c:2091 #, c-format msgid "%s: symbol `%s' has unrecognized smclas %d" -msgstr "%s: `%s' sembolünde bilinmeyen %d var" +msgstr "%s: `%s' sembolünde bilinmeyen %d var" #: coff-tic54x.c:279 coff-tic80.c:449 #, c-format msgid "Unrecognized reloc type 0x%x" -msgstr "Bilinmeyen yer deðiþtirme türü 0x%x" +msgstr "Bilinmeyen yer deÄŸiÅŸtirme türü 0x%x" -#: coff-tic54x.c:390 coffcode.h:4847 +#: coff-tic54x.c:390 coffcode.h:4974 #, c-format msgid "%s: warning: illegal symbol index %ld in relocs" -msgstr "%s: uyarý: yer deðiþtirmelerde geçersiz sembol indeksi %ld" +msgstr "%s: uyarı: yer deÄŸiÅŸtirmelerde geçersiz sembol indeksi %ld" #: coff-w65.c:363 #, c-format msgid "ignoring reloc %s\n" -msgstr "yer deðiþtirme %s yoksayýldý\n" +msgstr "yer deÄŸiÅŸtirme %s yoksayıldı\n" -#: coffcode.h:1081 +#: coffcode.h:1086 #, c-format msgid "%s (%s): Section flag %s (0x%x) ignored" -msgstr "%s (%s): Bölüm bayraðý %s (0x%x) yoksayýldý" +msgstr "%s (%s): Bölüm bayrağı %s (0x%x) yoksayıldı" -#: coffcode.h:2125 +#: coffcode.h:2143 #, c-format msgid "Unrecognized TI COFF target id '0x%x'" -msgstr "Tanýnmayan TI COFF hedef kimliði '0x%x'" +msgstr "Tanınmayan TI COFF hedef kimliÄŸi '0x%x'" -#: coffcode.h:4236 +#: coffcode.h:4365 #, c-format msgid "%s: warning: illegal symbol index %ld in line numbers" -msgstr "%s: uyarý: satýr numaralarýnda geçersiz sembol indeksi %ld" +msgstr "%s: uyarı: satır numaralarında geçersiz sembol indeksi %ld" -#: coffcode.h:4250 +#: coffcode.h:4379 #, c-format msgid "%s: warning: duplicate line number information for `%s'" -msgstr "%s: uyarý: `%s' için tekrarlanmýþ satýr numarasý bilgisi" +msgstr "%s: uyarı: `%s' için tekrarlanmış satır numarası bilgisi" -#: coffcode.h:4609 +#: coffcode.h:4736 #, c-format msgid "%s: Unrecognized storage class %d for %s symbol `%s'" -msgstr "%1$s: %3$s sembolü `%4$s' için bilinmeyen saklama sýnýfý %2$d" +msgstr "%1$s: %3$s sembolü `%4$s' için bilinmeyen saklama sınıfı %2$d" -#: coffcode.h:4740 +#: coffcode.h:4867 #, c-format msgid "warning: %s: local symbol `%s' has no section" -msgstr "uyarý: %s: `%s' yerel sembolünün bölümü yok" +msgstr "uyarı: %s: `%s' yerel sembolünün bölümü yok" -#: coffcode.h:4885 +#: coffcode.h:5012 #, c-format msgid "%s: illegal relocation type %d at address 0x%lx" -msgstr "%1$s: 0x%3$lx adresinde geçersiz yer deðiþtirme türü %2$d" +msgstr "%1$s: 0x%3$lx adresinde geçersiz yer deÄŸiÅŸtirme türü %2$d" #: coffgen.c:1661 #, c-format msgid "%s: bad string table size %lu" -msgstr "%s: geçersiz dizge tablo boyu %lu" +msgstr "%s: geçersiz dizge tablo boyu %lu" -#: coffgen.c:2138 -#, c-format -msgid "AUX tagndx %ld ttlsiz 0x%lx lnnos %ld next %ld" -msgstr "AUX tagndx %ld ttlsiz 0x%lx lnnos %ld sonraki %ld" - -#: cofflink.c:536 elflink.h:1967 +#: cofflink.c:534 elflink.h:1912 #, c-format msgid "Warning: type of symbol `%s' changed from %d to %d in %s" -msgstr "Uyarý: %4$s içerisinde `%1$s' sembolünün türü %2$d'den %3$d'e deðiþtirildi" +msgstr "Uyarı: %4$s içerisinde `%1$s' sembolünün türü %2$d'den %3$d'e deÄŸiÅŸtirildi" -#: cofflink.c:2317 +#: cofflink.c:2321 #, c-format msgid "%s: relocs in section `%s', but it has no contents" -msgstr "%s: `%s' bölümünde yer deðiþtirmeler mevcut, fakat içi boþ" +msgstr "%s: `%s' bölümünde yer deÄŸiÅŸtirmeler mevcut, fakat içi boÅŸ" -#: cofflink.c:2653 coffswap.h:889 +#: cofflink.c:2664 coffswap.h:877 #, c-format msgid "%s: %s: reloc overflow: 0x%lx > 0xffff" -msgstr "%s: %s: yer deðiþtirme taþmasý: 0x%lx > 0xffff" +msgstr "%s: %s: yer deÄŸiÅŸtirme taÅŸması: 0x%lx > 0xffff" -#: cofflink.c:2662 coffswap.h:876 +#: cofflink.c:2673 coffswap.h:864 #, c-format msgid "%s: warning: %s: line number overflow: 0x%lx > 0xffff" -msgstr "%s: uyarý: %s: satýr numarasý taþmasý: 0x%lx > 0xffff" +msgstr "%s: uyarı: %s: satır numarası taÅŸması: 0x%lx > 0xffff" -#: dwarf2.c:381 +#: dwarf2.c:382 msgid "Dwarf Error: Can't find .debug_str section." -msgstr "Dwarf Hatasý: .debug_str bölümü bulunamadý." +msgstr "Dwarf Hatası: .debug_str bölümü bulunamadı." -#: dwarf2.c:398 +#: dwarf2.c:399 #, c-format -msgid "Dwarf Error: DW_FORM_strp offset (%u) greater than or equal to .debug_str size (%u)." +msgid "Dwarf Error: DW_FORM_strp offset (%lu) greater than or equal to .debug_str size (%lu)." msgstr "" -"Dwarf Hatasý: DW_FORM_strp göreli konumu (%u) .debug_str boyutundan (%u) \n" -" daha büyük veya eþit." +"Dwarf Hatası: DW_FORM_strp göreli konumu (%lu) .debug_str boyutundan (%lu) \n" +" daha büyük veya eÅŸit." -#: dwarf2.c:542 +#: dwarf2.c:543 msgid "Dwarf Error: Can't find .debug_abbrev section." -msgstr "Dwarf Hatasý: .debug_abbrev bölümü bulunamadý." +msgstr "Dwarf Hatası: .debug_abbrev bölümü bulunamadı." -#: dwarf2.c:559 +#: dwarf2.c:560 #, c-format -msgid "Dwarf Error: Abbrev offset (%u) greater than or equal to abbrev size (%u)." +msgid "Dwarf Error: Abbrev offset (%lu) greater than or equal to .debug_abbrev size (%lu)." msgstr "" -"Dwarf Hatasý: Kýsaltma göreli konumu (%u) kýsaltma boyutundan (%u) \n" -" daha büyük veya eþit." +"Dwarf Hatası: Kısaltma göreli konumu (%lu) kısaltma boyutundan (%lu) \n" +" daha büyük veya eÅŸit." -#: dwarf2.c:756 +#: dwarf2.c:757 #, c-format -msgid "Dwarf Error: Invalid or unhandled FORM value: %d." -msgstr "Dwarf Hatasý: Geçersiz veya desteklenmeyen FORM deðeri: %d." +msgid "Dwarf Error: Invalid or unhandled FORM value: %u." +msgstr "Dwarf Hatası: Geçersiz veya desteklenmeyen FORM deÄŸeri: %u." -#: dwarf2.c:843 +#: dwarf2.c:852 msgid "Dwarf Error: mangled line number section (bad file number)." -msgstr "Dwarf Hatasý: bozulmuþ satýr numarasý bölümü (geçersiz dosya numarasý)." +msgstr "Dwarf Hatası: bozulmuÅŸ satır numarası bölümü (geçersiz dosya numarası)." -#: dwarf2.c:929 +#: dwarf2.c:938 msgid "Dwarf Error: Can't find .debug_line section." -msgstr "Dwarf Hatasý: .debug_line bölümü bulunamadý." +msgstr "Dwarf Hatası: .debug_line bölümü bulunamadı." -#: dwarf2.c:952 +#: dwarf2.c:961 #, c-format -msgid "Dwarf Error: Line offset (%u) greater than or equal to line size (%u)." +msgid "Dwarf Error: Line offset (%lu) greater than or equal to .debug_line size (%lu)." msgstr "" -"Dwarf Hatasý: Satýr göreli konumu (%u) satýr boyutundan (%u)\n" -" daha büyük veya eþit." +"Dwarf Hatası: Satır göreli konumu (%lu) satır boyutundan (%lu)\n" +" daha büyük veya eÅŸit." -#: dwarf2.c:1143 +#: dwarf2.c:1159 msgid "Dwarf Error: mangled line number section." -msgstr "Dwarf Hatasý: bozuk satýr numarasý bölümü." +msgstr "Dwarf Hatası: bozuk satır numarası bölümü." -#: dwarf2.c:1318 dwarf2.c:1532 +#: dwarf2.c:1355 dwarf2.c:1566 #, c-format -msgid "Dwarf Error: Could not find abbrev number %d." -msgstr "Dwarf Hatasý: Kýsaltma numarasý %d bulunamadý." +msgid "Dwarf Error: Could not find abbrev number %u." +msgstr "Dwarf Hatası: Kısaltma numarası %u bulunamadı." -#: dwarf2.c:1493 +#: dwarf2.c:1527 #, c-format -msgid "Dwarf Error: found dwarf version '%hu', this reader only handles version 2 information." -msgstr "Dwarf Hatasý: dwarf sürümü '%hu' bulundu, bu okuyucu yalnýzca sürüm 2 bilgisini anlayabiliyor." +msgid "Dwarf Error: found dwarf version '%u', this reader only handles version 2 information." +msgstr "Dwarf Hatası: dwarf sürümü '%u' bulundu, bu okuyucu yalnızca sürüm 2 bilgisini anlayabiliyor." -#: dwarf2.c:1500 +#: dwarf2.c:1534 #, c-format msgid "Dwarf Error: found address size '%u', this reader can not handle sizes greater than '%u'." -msgstr "Dwarf Hatasý: adres boyu '%u' bulundu, bu okuyucu '%u'dan daha büyük boylarý okuyamýyor." +msgstr "Dwarf Hatası: adres boyu '%u' bulundu, bu okuyucu '%u'dan daha büyük boyları okuyamıyor." -#: dwarf2.c:1523 +#: dwarf2.c:1557 #, c-format -msgid "Dwarf Error: Bad abbrev number: %d." -msgstr "Dwarf Hatasý: Geçersiz kýsaltma numarasý: %d." +msgid "Dwarf Error: Bad abbrev number: %u." +msgstr "Dwarf Hatası: Geçersiz kısaltma numarası: %u." -#: ecoff.c:1328 +#: ecoff.c:1318 #, c-format msgid "Unknown basic type %d" -msgstr "Bilinmeyen temel tür %d" +msgstr "Bilinmeyen temel tür %d" -#: ecoff.c:1597 +#: ecoff.c:1578 #, c-format -msgid "\n End+1 symbol: %ld" -msgstr "\n Son+1 sembolü: %ld" +msgid "" +"\n" +" End+1 symbol: %ld" +msgstr "" +"\n" +" Son+1 sembolü: %ld" -#: ecoff.c:1604 ecoff.c:1607 +#: ecoff.c:1585 ecoff.c:1588 #, c-format -msgid "\n First symbol: %ld" -msgstr "\n Ýlk sembol: %ld" +msgid "" +"\n" +" First symbol: %ld" +msgstr "" +"\n" +" Ä°lk sembol: %ld" -#: ecoff.c:1619 +#: ecoff.c:1600 #, c-format -msgid "\n End+1 symbol: %-7ld Type: %s" -msgstr "\n Son+1 sembolü: %-7ld Tür: %s" +msgid "" +"\n" +" End+1 symbol: %-7ld Type: %s" +msgstr "" +"\n" +" Son+1 sembolü: %-7ld Tür: %s" -#: ecoff.c:1626 +#: ecoff.c:1607 #, c-format -msgid "\n Local symbol: %ld" -msgstr "\n Yerel sembol: %ld" +msgid "" +"\n" +" Local symbol: %ld" +msgstr "" +"\n" +" Yerel sembol: %ld" -#: ecoff.c:1634 +#: ecoff.c:1615 #, c-format -msgid "\n struct; End+1 symbol: %ld" -msgstr "\n yapý; Son+1 sembolü: %ld" +msgid "" +"\n" +" struct; End+1 symbol: %ld" +msgstr "" +"\n" +" yapı; Son+1 sembolü: %ld" -#: ecoff.c:1639 +#: ecoff.c:1620 #, c-format -msgid "\n union; End+1 symbol: %ld" -msgstr "\n birleþim; Son+1 sembolü: %ld" +msgid "" +"\n" +" union; End+1 symbol: %ld" +msgstr "" +"\n" +" birleÅŸim; Son+1 sembolü: %ld" -#: ecoff.c:1644 +#: ecoff.c:1625 #, c-format -msgid "\n enum; End+1 symbol: %ld" -msgstr "\n enum; Son+1 sembolü: %ld" +msgid "" +"\n" +" enum; End+1 symbol: %ld" +msgstr "" +"\n" +" enum; Son+1 sembolü: %ld" -#: ecoff.c:1650 +#: ecoff.c:1631 #, c-format -msgid "\n Type: %s" -msgstr "\n Tür: %s" +msgid "" +"\n" +" Type: %s" +msgstr "" +"\n" +" Tür: %s" -#: elf-hppa.h:1366 elf-hppa.h:1399 elf32-ppc.c:3062 elf32-sh.c:3201 -#: elf64-x86-64.c:1275 +#: elf-hppa.h:1476 elf-hppa.h:1509 elf32-ppc.c:3091 elf32-sh.c:4213 +#: elf64-sh64.c:1659 #, c-format msgid "%s: warning: unresolvable relocation against symbol `%s' from %s section" -msgstr "%1$s: uyarý: %3$s bölümünden `%2$s' sembolüne çözümlenemeyen yer deðiþimi" +msgstr "%1$s: uyarı: %3$s bölümünden `%2$s' sembolüne çözümlenemeyen yer deÄŸiÅŸimi" -#: elf-m10200.c:463 elf-m10300.c:673 elf32-arm.h:2074 elf32-avr.c:835 -#: elf32-cris.c:1392 elf32-d10v.c:482 elf32-fr30.c:653 elf32-h8300.c:547 -#: elf32-i860.c:1048 elf32-m32r.c:1281 elf32-openrisc.c:455 elf32-v850.c:1691 -#: elf64-mmix.c:1164 +#: elf-m10200.c:446 elf-m10300.c:656 elf32-arm.h:2084 elf32-avr.c:833 +#: elf32-cris.c:1403 elf32-d10v.c:481 elf32-fr30.c:635 elf32-frv.c:809 +#: elf32-h8300.c:548 elf32-i860.c:1031 elf32-m32r.c:1278 elf32-openrisc.c:439 +#: elf32-v850.c:1691 elf32-xstormy16.c:933 elf64-mmix.c:1302 msgid "internal error: out of range error" -msgstr "iç hata: kapsam dýþý hatasý" +msgstr "iç hata: kapsam dışı hatası" -#: elf-m10200.c:467 elf-m10300.c:677 elf32-arm.h:2078 elf32-avr.c:839 -#: elf32-cris.c:1396 elf32-d10v.c:486 elf32-fr30.c:657 elf32-h8300.c:551 -#: elf32-i860.c:1052 elf32-m32r.c:1285 elf32-mips.c:7565 elf32-openrisc.c:459 -#: elf32-v850.c:1695 elf64-mips.c:4464 elf64-mmix.c:1168 +#: elf-m10200.c:450 elf-m10300.c:660 elf32-arm.h:2088 elf32-avr.c:837 +#: elf32-cris.c:1407 elf32-d10v.c:485 elf32-fr30.c:639 elf32-frv.c:813 +#: elf32-h8300.c:552 elf32-i860.c:1035 elf32-m32r.c:1282 elf32-openrisc.c:443 +#: elf32-v850.c:1695 elf32-xstormy16.c:937 elf64-mmix.c:1306 elfxx-mips.c:5264 msgid "internal error: unsupported relocation error" -msgstr "iç hata: desteklenmeyen yer deðiþim hatasý" +msgstr "iç hata: desteklenmeyen yer deÄŸiÅŸim hatası" -#: elf-m10200.c:471 elf-m10300.c:681 elf32-arm.h:2082 elf32-d10v.c:490 -#: elf32-h8300.c:555 elf32-m32r.c:1289 +#: elf-m10200.c:454 elf-m10300.c:664 elf32-arm.h:2092 elf32-d10v.c:489 +#: elf32-h8300.c:556 elf32-m32r.c:1286 msgid "internal error: dangerous error" -msgstr "iç hata: ölümcül hata" +msgstr "iç hata: ölümcül hata" -#: elf-m10200.c:475 elf-m10300.c:685 elf32-arm.h:2086 elf32-avr.c:847 -#: elf32-cris.c:1404 elf32-d10v.c:494 elf32-fr30.c:665 elf32-h8300.c:559 -#: elf32-i860.c:1060 elf32-m32r.c:1293 elf32-openrisc.c:467 elf32-v850.c:1715 -#: elf64-mmix.c:1176 +#: elf-m10200.c:458 elf-m10300.c:668 elf32-arm.h:2096 elf32-avr.c:845 +#: elf32-cris.c:1415 elf32-d10v.c:493 elf32-fr30.c:647 elf32-frv.c:821 +#: elf32-h8300.c:560 elf32-i860.c:1043 elf32-m32r.c:1290 elf32-openrisc.c:451 +#: elf32-v850.c:1715 elf32-xstormy16.c:945 elf64-mmix.c:1314 msgid "internal error: unknown error" -msgstr "iç hata: bilinmeyen hata" +msgstr "iç hata: bilinmeyen hata" -#: elf.c:345 +#: elf.c:343 #, c-format msgid "%s: invalid string offset %u >= %lu for section `%s'" -msgstr "%1$s: `%4$s' bölümünde geçersiz dizge göreli konumu %2$u >= %3$lu" +msgstr "%1$s: `%4$s' bölümünde geçersiz dizge göreli konumu %2$u >= %3$lu" -#: elf.c:450 +#: elf.c:589 #, c-format msgid "%s: invalid SHT_GROUP entry" -msgstr "%s: geçersiz SHT_GROUP girdisi" +msgstr "%s: geçersiz SHT_GROUP girdisi" -#: elf.c:531 +#: elf.c:660 #, c-format msgid "%s: no group info for section %s" -msgstr "%s: %s bölümünde grup bilgisi yok" +msgstr "%s: %s bölümünde grup bilgisi yok" -#: elf.c:842 -msgid "\nProgram Header:\n" -msgstr "\nYazýlým Baþlýðý:\n" +#: elf.c:1023 +msgid "" +"\n" +"Program Header:\n" +msgstr "" +"\n" +"Yazılım BaÅŸlığı:\n" -#: elf.c:891 -msgid "\nDynamic Section:\n" -msgstr "\nDinamik Bölüm:\n" +#: elf.c:1073 +msgid "" +"\n" +"Dynamic Section:\n" +msgstr "" +"\n" +"Dinamik Bölüm:\n" -#: elf.c:1020 -msgid "\nVersion definitions:\n" -msgstr "\nSürüm tanýmlarý:\n" +#: elf.c:1202 +msgid "" +"\n" +"Version definitions:\n" +msgstr "" +"\n" +"Sürüm tanımları:\n" -#: elf.c:1043 -msgid "\nVersion References:\n" -msgstr "\nSürüm Referanslarý:\n" +#: elf.c:1225 +msgid "" +"\n" +"Version References:\n" +msgstr "" +"\n" +"Sürüm Referansları:\n" -#: elf.c:1048 +#: elf.c:1230 #, c-format msgid " required from %s:\n" msgstr " %s'den isteniyor:\n" -#: elf.c:1675 +#: elf.c:1902 #, c-format msgid "%s: invalid link %lu for reloc section %s (index %u)" -msgstr "%1$s: yerdeðiþim bölümü %3$s (indeks %4$u) için geçersiz bað %2$lu" +msgstr "%1$s: yerdeÄŸiÅŸim bölümü %3$s (indeks %4$u) için geçersiz baÄŸ %2$lu" -#: elf.c:3289 +#: elf.c:3603 #, c-format msgid "%s: Not enough room for program headers (allocated %u, need %u)" -msgstr "%s: Yazýlým baþlýklarý için yeterli yer yok (%u ayrýldý, %u gerekli)" +msgstr "%s: Yazılım baÅŸlıkları için yeterli yer yok (%u ayrıldı, %u gerekli)" -#: elf.c:3393 +#: elf.c:3708 #, c-format msgid "%s: Not enough room for program headers, try linking with -N" -msgstr "%s: yazýlým baþlýklarý için gerekli yer yok, -N ile baðlamayý deneyin" +msgstr "%s: yazılım baÅŸlıkları için gerekli yer yok, -N ile baÄŸlamayı deneyin" -#: elf.c:3518 +#: elf.c:3833 #, c-format msgid "Error: First section in segment (%s) starts at 0x%x whereas the segment starts at 0x%x" -msgstr "Hata: Parçadaki (%s) ilk bölüm 0x%x'de, parça ise 0x%x'de baþlýyor" +msgstr "Hata: Parçadaki (%s) ilk bölüm 0x%x'de, parça ise 0x%x'de baÅŸlıyor" -#: elf.c:3804 +#: elf.c:4148 #, c-format msgid "%s: warning: allocated section `%s' not in segment" -msgstr "%s: uyarý: ayrýlmýþ `%s' bölümü parça içinde deðil" +msgstr "%s: uyarı: ayrılmış `%s' bölümü parça içinde deÄŸil" -#: elf.c:4138 +#: elf.c:4472 #, c-format msgid "%s: symbol `%s' required but not present" -msgstr "%s: `%s' sembolü gerekli fakat mevcut deðil" - -#: elf.c:4147 -#, c-format -msgid "elf_symbol_from_bfd_symbol 0x%.8lx, name = %s, sym num = %d, flags = 0x%.8lx%s\n" -msgstr "bfd sembolünden elf sembolü:0x%.8lx, isim= %s, sem num = %d, bayrak = 0x%.8lx%s\n" +msgstr "%s: `%s' sembolü gerekli fakat mevcut deÄŸil" -#: elf.c:4391 +#: elf.c:4749 #, c-format -msgid "%s: warning: Empty loadable segment detected\n" -msgstr "%s: uyarý: Boþ yüklenebilir parça bulundu\n" +msgid "%s: warning: Empty loadable segment detected, is this intentional ?\n" +msgstr "%s: uyarı: BoÅŸ yüklenebilir parça bulundu, bu isteyerek mi yapılıyor?\n" -#: elf.c:5804 +#: elf.c:6193 #, c-format msgid "%s: unsupported relocation type %s" -msgstr "%s: desteklenmeyen yerdeðiþim türü %s" +msgstr "%s: desteklenmeyen yerdeÄŸiÅŸim türü %s" -#: elf32-arm.h:1224 +#: elf32-arm.h:1221 #, c-format msgid "%s: Warning: Arm BLX instruction targets Arm function '%s'." -msgstr "%s: Uyarý: Arm BLX iþlemi Arm iþlevi '%s' hedefliyor." +msgstr "%s: Uyarı: Arm BLX iÅŸlemi Arm iÅŸlevi '%s' hedefliyor." -#: elf32-arm.h:1420 +#: elf32-arm.h:1417 #, c-format msgid "%s: Warning: Thumb BLX instruction targets thumb function '%s'." -msgstr "%s: Uyarý: Thumb BLX iþlemi thumb iþlevi '%s'ý hedefliyor." +msgstr "%s: Uyarı: Thumb BLX iÅŸlemi thumb iÅŸlevi '%s'ı hedefliyor." -#: elf32-arm.h:1904 elf32-i386.c:1776 elf32-sh.c:3133 +#: elf32-arm.h:1914 elf32-sh.c:4125 #, c-format msgid "%s(%s+0x%lx): %s relocation against SEC_MERGE section" -msgstr "%s(%s+0x%lx): SEC_MERGE bölümüne %s yerdeðiþimi" +msgstr "%s(%s+0x%lx): SEC_MERGE bölümüne %s yerdeÄŸiÅŸimi" -#: elf32-arm.h:1998 +#: elf32-arm.h:2008 #, c-format msgid "%s: warning: unresolvable relocation %d against symbol `%s' from %s section" -msgstr "%1$s: uyarý: %4$s bölümünden `%3$s' sembolüne çözümlenemeyen %2$d yer deðiþimi" +msgstr "%1$s: uyarı: %4$s bölümünden `%3$s' sembolüne çözümlenemeyen %2$d yer deÄŸiÅŸimi" -#: elf32-arm.h:2114 +#: elf32-arm.h:2176 #, c-format -msgid "Warning: Not setting interwork flag of %s since it has already been specified as non-interworking" -msgstr "Uyarý: beraber çalýþmaz diye önceden belirtilmiþ olduðundan %s'nin beraber çalýþma bayraðý atanmadý" +msgid "Warning: Clearing the interworking flag of %s because non-interworking code in %s has been linked with it" +msgstr "Uyarı: %2$s'deki beraber çalışmaz kod ona baÄŸlandığı için %1$s'nin beraber çalışma bayrağı temizlendi" -#: elf32-arm.h:2118 +#: elf32-arm.h:2271 #, c-format -msgid "Warning: Clearing the interwork flag of %s due to outside request" -msgstr "Uyarý: Dýþ isteðe uyularak %s'nin beraber çalýþma bayraðý temizlendi" +msgid "ERROR: %s is compiled for EABI version %d, whereas %s is compiled for version %d" +msgstr "Hata: %s EABI sürüm %d için derlenmiÅŸ, fakat %s %d sürümü için derlenmiÅŸ" -#: elf32-arm.h:2166 +#: elf32-arm.h:2285 #, c-format -msgid "Warning: Clearing the interwork flag in %s because non-interworking code in %s has been linked with it" -msgstr "Uyarý: %2$s'deki beraber çalýþmaz kod ona baðlandýðý için %1$s'nin beraber çalýþma bayraðý temizlendi" +msgid "ERROR: %s is compiled for APCS-%d, whereas target %s uses APCS-%d" +msgstr "HATA: %s, APCS-%d için derlenmiÅŸ fakat hedef %s APCS-%d kullanıyor" -#: elf32-arm.h:2261 +#: elf32-arm.h:2313 #, c-format -msgid "Error: %s compiled for EABI version %d, whereas %s is compiled for version %d" -msgstr "Hata: %s EABI sürüm %d için derlenmiþ, fakat %s %d sürümü için derlenmiþ" +msgid "ERROR: %s uses VFP instructions, whereas %s uses FPA instructions" +msgstr "Hata: %s VFP iÅŸlemi kullanıyor, fakat %s FPA iÅŸlemi kullanıyor" -#: elf32-arm.h:2275 +#: elf32-arm.h:2318 #, c-format -msgid "Error: %s compiled for APCS-%d, whereas %s is compiled for APCS-%d" -msgstr "Hata: %s APCS-%d için derlenmiþ, fakat %s APCS-%d için derlenmiþ" +msgid "ERROR: %s uses FPA instructions, whereas %s uses VFP instructions" +msgstr "Hata: %s FPA iÅŸlemi kullanıyor, fakat %s VFP iÅŸlemi kullanıyor" -#: elf32-arm.h:2287 +#: elf32-arm.h:2338 #, c-format -msgid "Error: %s passes floats in FP registers, whereas %s passes them in integer registers" +msgid "ERROR: %s uses software FP, whereas %s uses hardware FP" msgstr "" -"Hata: %s kayan sayýlarý kayan sayý yazmaçlarýnda geçiriyor, \n" -" fakat %s tamsayý yazmaçlarýnda geçiriyor" +"Hata: %s yazılımda kayan sayı kullanıyor,\n" +" fakat %s donanımda kayan sayı kullanıyor" -#: elf32-arm.h:2292 +#: elf32-arm.h:2343 #, c-format -msgid "Error: %s passes floats in integer registers, whereas %s passes them in FP registers" +msgid "ERROR: %s uses hardware FP, whereas %s uses software FP" msgstr "" -"Hata: %s kayan sayýlarý tamsayý yazmaçlarýnda geçiriyor, \n" -" fakat %s kayan sayý yazmaçlarýnda geçiriyor" - -#: elf32-arm.h:2303 -#, c-format -msgid "Error: %s uses VFP instructions, whereas %s FPA instructions" -msgstr "Hata: %s VFP iþlemi kullanýyor, fakat %s FPA iþlemi kullanýyor" - -#: elf32-arm.h:2308 -#, c-format -msgid "Error: %s uses FPA instructions, whereas %s VFP instructions" -msgstr "Hata: %s FPA iþlemi kullanýyor, fakat %s VFP iþlemi kullanýyor" - -#: elf32-arm.h:2328 -#, c-format -msgid "Error: %s uses software FP, whereas %s uses hardware FP" -msgstr "" -"Hata: %s yazýlýmda kayan sayý kullanýyor,\n" -" fakat %s donanýmda kayan sayý kullanýyor" - -#: elf32-arm.h:2333 -#, c-format -msgid "Error: %s uses hardware FP, whereas %s uses software FP" -msgstr "" -"Hata: %s donanýmda kayan sayý kullanýyor,\n" -" fakat %s yazýlýmda kayan sayý kullanýyor" - -#: elf32-arm.h:2348 -#, c-format -msgid "Warning: %s supports interworking, whereas %s does not" -msgstr "Uyarý: %s girdi dosyasý beraber çalýþmayý destekliyor, fakat %s desteklemiyor." - -#: elf32-arm.h:2355 -#, c-format -msgid "Warning: %s does not support interworking, whereas %s does" -msgstr "Uyarý: %s girdi dosyasý beraber çalýþmayý desteklemiyor, fakat %s destekliyor." +"Hata: %s donanımda kayan sayı kullanıyor,\n" +" fakat %s yazılımda kayan sayı kullanıyor" #. Ignore init flag - it may not be set, despite the flags field #. containing valid data. -#: elf32-arm.h:2386 elf32-cris.c:2970 elf32-m68k.c:410 elf32-mips.c:3232 +#: elf32-arm.h:2396 elf32-cris.c:2988 elf32-m68k.c:410 elf32-vax.c:543 +#: elfxx-mips.c:7756 #, c-format msgid "private flags = %lx:" -msgstr "özel bayraklar = %lx:" +msgstr "özel bayraklar = %lx:" -#: elf32-arm.h:2395 +#: elf32-arm.h:2405 msgid " [interworking enabled]" -msgstr " [beraber çalýþma etkinleþtirilmiþ]" - -#: elf32-arm.h:2398 -msgid " [APCS-26]" -msgstr " [APCS-26]" +msgstr " [beraber çalışma etkinleÅŸtirilmiÅŸ]" -#: elf32-arm.h:2400 -msgid " [APCS-32]" -msgstr " [APCS-32]" - -#: elf32-arm.h:2403 +#: elf32-arm.h:2413 msgid " [VFP float format]" -msgstr " [VFP kayan nokta biçemi]" +msgstr " [VFP kayan nokta biçemi]" -#: elf32-arm.h:2405 +#: elf32-arm.h:2415 msgid " [FPA float format]" -msgstr " [FPA kayan nokta biçemi]" +msgstr " [FPA kayan nokta biçemi]" -#: elf32-arm.h:2414 +#: elf32-arm.h:2424 msgid " [new ABI]" msgstr " [yeni ABI]" -#: elf32-arm.h:2417 +#: elf32-arm.h:2427 msgid " [old ABI]" msgstr " [eski ABI]" -#: elf32-arm.h:2420 +#: elf32-arm.h:2430 msgid " [software FP]" -msgstr " [yazýlým FP]" +msgstr " [yazılım FP]" -#: elf32-arm.h:2428 +#: elf32-arm.h:2438 msgid " [Version1 EABI]" -msgstr " [Sürüm1 EABI]" +msgstr " [Sürüm1 EABI]" -#: elf32-arm.h:2431 elf32-arm.h:2442 +#: elf32-arm.h:2441 elf32-arm.h:2452 msgid " [sorted symbol table]" -msgstr " [sýralanmýþ sembol tablosu]" +msgstr " [sıralanmış sembol tablosu]" -#: elf32-arm.h:2433 elf32-arm.h:2444 +#: elf32-arm.h:2443 elf32-arm.h:2454 msgid " [unsorted symbol table]" -msgstr " [sýralanmamýþ sembol tablosu]" +msgstr " [sıralanmamış sembol tablosu]" -#: elf32-arm.h:2439 +#: elf32-arm.h:2449 msgid " [Version2 EABI]" -msgstr " [Sürüm2 EABI]" +msgstr " [Sürüm2 EABI]" -#: elf32-arm.h:2447 +#: elf32-arm.h:2457 msgid " [dynamic symbols use segment index]" -msgstr " [dinamik semboller bölüm indeksini kullanýyor]" +msgstr " [dinamik semboller bölüm indeksini kullanıyor]" -#: elf32-arm.h:2450 +#: elf32-arm.h:2460 msgid " [mapping symbols precede others]" -msgstr " [eþleþme sembolleri diðerlerinden önceliklidir]" +msgstr " [eÅŸleÅŸme sembolleri diÄŸerlerinden önceliklidir]" -#: elf32-arm.h:2457 +#: elf32-arm.h:2467 msgid " " -msgstr " " +msgstr " " -#: elf32-arm.h:2464 +#: elf32-arm.h:2474 msgid " [relocatable executable]" -msgstr " [yer deðiþtirebilir uygulama]" +msgstr " [yer deÄŸiÅŸtirebilir uygulama]" -#: elf32-arm.h:2467 +#: elf32-arm.h:2477 msgid " [has entry point]" -msgstr " [girdi noktasý var]" +msgstr " [girdi noktası var]" -#: elf32-arm.h:2472 +#: elf32-arm.h:2482 msgid "" -msgstr "" +msgstr "" -#: elf32-avr.c:843 elf32-cris.c:1400 elf32-fr30.c:661 elf32-i860.c:1056 -#: elf32-openrisc.c:463 elf32-v850.c:1699 elf64-mmix.c:1172 +#: elf32-avr.c:841 elf32-cris.c:1411 elf32-fr30.c:643 elf32-frv.c:817 +#: elf32-i860.c:1039 elf32-openrisc.c:447 elf32-v850.c:1699 +#: elf32-xstormy16.c:941 elf64-mmix.c:1310 msgid "internal error: dangerous relocation" -msgstr "iç hata: tehlikeli yer deðiþim" +msgstr "iç hata: tehlikeli yer deÄŸiÅŸim" #: elf32-cris.c:949 #, c-format msgid "%s: unresolvable relocation %s against symbol `%s' from %s section" -msgstr "%1$s: uyarý: %4$s bölümünden `%3$s' sembolüne çözümlenemeyen %2$s yer deðiþimi" +msgstr "%1$s: uyarı: %4$s bölümünden `%3$s' sembolüne çözümlenemeyen %2$s yer deÄŸiÅŸimi" #: elf32-cris.c:1012 #, c-format msgid "%s: No PLT nor GOT for relocation %s against symbol `%s' from %s section" -msgstr "%1$s: %4$s bölümünden `%3$s' sembolüne %2$s yer deðiþimi için PLT veya GOT yok" +msgstr "%1$s: %4$s bölümünden `%3$s' sembolüne %2$s yer deÄŸiÅŸimi için PLT veya GOT yok" -#: elf32-cris.c:1015 elf32-cris.c:1142 +#: elf32-cris.c:1015 elf32-cris.c:1141 msgid "[whose name is lost]" -msgstr "[adý kaybolmuþ]" +msgstr "[adı kaybolmuÅŸ]" -#: elf32-cris.c:1131 +#: elf32-cris.c:1130 #, c-format msgid "%s: relocation %s with non-zero addend %d against local symbol from %s section" msgstr "" -"%1$s: %4$s bölümünden yerel sembol sýfýr olmayan %3$d eklemesi ile\n" -" %2$s yerdeðiþimi" +"%1$s: %4$s bölümünden yerel sembol sıfır olmayan %3$d eklemesi ile\n" +" %2$s yerdeÄŸiÅŸimi" -#: elf32-cris.c:1138 +#: elf32-cris.c:1137 #, c-format msgid "%s: relocation %s with non-zero addend %d against symbol `%s' from %s section" -msgstr "%1$s: %5$s bölümünden `%4$s' sembolüne sýfýr olmayan %3$d eklemesi ile %2$s yerdeðiþimi" +msgstr "%1$s: %5$s bölümünden `%4$s' sembolüne sıfır olmayan %3$d eklemesi ile %2$s yerdeÄŸiÅŸimi" -#: elf32-cris.c:1156 +#: elf32-cris.c:1155 #, c-format msgid "%s: relocation %s is not allowed for global symbol: `%s' from %s section" -msgstr "%1$s: %4$s bölümünden %3$s evrensel sembolü için %2$s yerdeðiþimi yapýlamaz" +msgstr "%1$s: %4$s bölümünden %3$s evrensel sembolü için %2$s yerdeÄŸiÅŸimi yapılamaz" -#: elf32-cris.c:1275 +#: elf32-cris.c:1170 +#, c-format +msgid "%s: relocation %s in section %s with no GOT created" +msgstr "%1$s: `%3$s' bölümünde %2$s yer deÄŸiÅŸtirmesi mevcut, fakat GOT oluÅŸturulmamış" + +#: elf32-cris.c:1288 #, c-format msgid "%s: Internal inconsistency; no relocation section %s" -msgstr "%s: Ýç tutarsýzlýk; %s yerdeðiþim bölümü yok" +msgstr "%s: İç tutarsızlık; %s yerdeÄŸiÅŸim bölümü yok" -#: elf32-cris.c:2508 +#: elf32-cris.c:2514 #, c-format msgid "" "%s, section %s:\n" " relocation %s should not be used in a shared object; recompile with -fPIC" msgstr "" -"%s, %s bölümü:\n" -" %s yer deðiþimi paylaþýmlý nesne oluþtururken kullanýlamaz;\n" +"%s, %s bölümü:\n" +" %s yer deÄŸiÅŸimi paylaşımlı nesne oluÅŸtururken kullanılamaz;\n" " -fPIC ile yeniden derleyin" -#: elf32-cris.c:2973 +#: elf32-cris.c:2991 msgid " [symbols have a _ prefix]" -msgstr " [semboller _ önekine sahip]" +msgstr " [semboller _ önekine sahip]" -#: elf32-cris.c:3012 +#: elf32-cris.c:3030 #, c-format msgid "%s: uses _-prefixed symbols, but writing file with non-prefixed symbols" -msgstr "%s: _-önekli sembolleri kullanýyor, fakat dosyaya öneksiz sembolleri yazýyor" +msgstr "%s: _-önekli sembolleri kullanıyor, fakat dosyaya öneksiz sembolleri yazıyor" -#: elf32-cris.c:3013 +#: elf32-cris.c:3031 #, c-format msgid "%s: uses non-prefixed symbols, but writing file with _-prefixed symbols" -msgstr "%s: öneksiz sembolleri kullanýyor, fakat dosyaya _-önekli sembolleri yazýyor" +msgstr "%s: öneksiz sembolleri kullanıyor, fakat dosyaya _-önekli sembolleri yazıyor" + +#: elf32-frv.c:1217 +#, c-format +msgid "%s: compiled with %s and linked with modules that use non-pic relocations" +msgstr "%s: %s ile derlendi ve normal derlenmiÅŸ modüllerle baÄŸlandı" + +#: elf32-frv.c:1267 +#, c-format +msgid "%s: compiled with %s and linked with modules compiled with %s" +msgstr "%s: %s ile derlendi ve %s ile derlenmiÅŸ modüllerle baÄŸlandı" + +#: elf32-frv.c:1279 +#, c-format +msgid "%s: uses different unknown e_flags (0x%lx) fields than previous modules (0x%lx)" +msgstr "%s: önceki modüllerden farklı bilinmeyen e_flags (0x%lx) alanları kullanılıyor (0x%lx)" + +#: elf32-frv.c:1315 +#, c-format +msgid "private flags = 0x%lx:" +msgstr "özel bayraklar = 0x%lx:" #: elf32-gen.c:82 elf64-gen.c:82 #, c-format msgid "%s: Relocations in generic ELF (EM: %d)" -msgstr "%s: Normal ELF'de yerdeðiþimler (EM: %d)" +msgstr "%s: Normal ELF'de yerdeÄŸiÅŸimler (EM: %d)" -#: elf32-hppa.c:646 +#: elf32-hppa.c:671 elf64-ppc.c:2323 #, c-format msgid "%s: cannot create stub entry %s" -msgstr "%s: koçan giriþi %s oluþturulamadý" +msgstr "%s: koçan giriÅŸi %s oluÅŸturulamadı" -#: elf32-hppa.c:937 elf32-hppa.c:3540 +#: elf32-hppa.c:956 elf32-hppa.c:3555 #, c-format msgid "%s(%s+0x%lx): cannot reach %s, recompile with -ffunction-sections" -msgstr "%s(%s+0x%lx): %s'e ulaþýlamadý, -ffunction-sections ile derleyin" +msgstr "%s(%s+0x%lx): %s'e ulaşılamadı, -ffunction-sections ile derleyin" -#: elf32-hppa.c:1312 +#: elf32-hppa.c:1338 elf64-x86-64.c:673 #, c-format msgid "%s: relocation %s can not be used when making a shared object; recompile with -fPIC" -msgstr "%s: %s yer deðiþimi paylaþýmlý nesne oluþturulurken kullanýlamaz; -fPIC ile yeniden derleyin" +msgstr "%s: %s yer deÄŸiÅŸimi paylaşımlı nesne oluÅŸturulurken kullanılamaz; -fPIC ile yeniden derleyin" -#: elf32-hppa.c:1332 +#: elf32-hppa.c:1358 #, c-format msgid "%s: relocation %s should not be used when making a shared object; recompile with -fPIC" -msgstr "%s: %s yer deðiþimi paylaþýmlý nesne oluþtururken kullanýlamaz; -fPIC ile yeniden derleyin" +msgstr "%s: %s yer deÄŸiÅŸimi paylaşımlı nesne oluÅŸtururken kullanılamaz; -fPIC ile yeniden derleyin" -#: elf32-hppa.c:1525 +#: elf32-hppa.c:1551 #, c-format msgid "Could not find relocation section for %s" -msgstr "%s için yer deðiþtirme bölümü bulunamadý" +msgstr "%s için yer deÄŸiÅŸtirme bölümü bulunamadı" -#: elf32-hppa.c:2862 +#: elf32-hppa.c:2855 #, c-format msgid "%s: duplicate export stub %s" -msgstr "%s: birden fazla ihraç koçaný %s" +msgstr "%s: birden fazla ihraç koçanı %s" -#: elf32-hppa.c:3424 +#: elf32-hppa.c:3433 #, c-format msgid "%s(%s+0x%lx): fixing %s" -msgstr "%s(%s+0x%lx): %s düzeltiliyor" +msgstr "%s(%s+0x%lx): %s düzeltiliyor" -#: elf32-hppa.c:4064 +#: elf32-hppa.c:4080 #, c-format msgid "%s(%s+0x%lx): cannot handle %s for %s" -msgstr "%1$s(%2$s+0x%3$lx): %5$s için %4$s iþlenemedi" +msgstr "%1$s(%2$s+0x%3$lx): %5$s için %4$s iÅŸlenemedi" -#: elf32-hppa.c:4403 +#: elf32-hppa.c:4393 msgid ".got section not immediately after .plt section" -msgstr ".got bölümü .plt bölümünün hemen arkasýnda deðil" +msgstr ".got bölümü .plt bölümünün hemen arkasında deÄŸil" -#: elf32-i386.c:298 +#: elf32-i386.c:379 #, c-format msgid "%s: invalid relocation type %d" -msgstr "%s: geçersiz yer deðiþim türü %d" +msgstr "%s: geçersiz yer deÄŸiÅŸim türü %d" -#: elf32-i386.c:718 elf32-s390.c:636 elf64-s390.c:595 +#: elf32-i386.c:876 elf32-s390.c:649 elf64-s390.c:595 elf64-x86-64.c:591 #, c-format msgid "%s: bad symbol index: %d" -msgstr "%s: geçersiz sembol indeksi: %d" +msgstr "%s: geçersiz sembol indeksi: %d" + +#: elf32-i386.c:948 +#, c-format +msgid "%s: `%s' accessed both as normal and thread local symbol" +msgstr "%s: `%s'a hem normal, hem de dal yerel sembolü olarak eriÅŸildi" -#: elf32-i386.c:863 elf32-s390.c:790 elf64-ppc.c:2085 elf64-s390.c:759 +#: elf32-i386.c:1072 elf32-s390.c:808 elf64-ppc.c:2827 elf64-s390.c:759 +#: elf64-x86-64.c:761 #, c-format msgid "%s: bad relocation section name `%s'" -msgstr "%s: geçersiz yerdeðiþim bölümü adý `%s'" +msgstr "%s: geçersiz yerdeÄŸiÅŸim bölümü adı `%s'" + +#: elf32-i386.c:1159 elf64-alpha.c:4768 +#, c-format +msgid "%s: TLS local exec code cannot be linked into shared objects" +msgstr "%s: TLS yerel çalıştırma kodu paylaşımlı nesnelere baÄŸlanamaz" -#: elf32-i386.c:2067 elf32-s390.c:1949 elf64-ppc.c:3908 elf64-s390.c:1953 +#: elf32-i386.c:2747 elf32-s390.c:1981 elf32-sparc.c:1571 elf64-ppc.c:5918 +#: elf64-s390.c:1945 elf64-sparc.c:2578 elf64-x86-64.c:1948 #, c-format msgid "%s(%s+0x%lx): unresolvable relocation against symbol `%s'" -msgstr "%s(%s+0x%lx): `%s' sembolüne çözümlenemeyen yer deðiþimi" +msgstr "%s(%s+0x%lx): `%s' sembolüne çözümlenemeyen yer deÄŸiÅŸimi" -#: elf32-i386.c:2105 elf32-s390.c:1987 elf64-s390.c:1991 +#: elf32-i386.c:2784 elf32-s390.c:2019 elf64-ppc.c:5977 elf64-s390.c:1983 +#: elf64-x86-64.c:1986 #, c-format msgid "%s(%s+0x%lx): reloc against `%s': error %d" -msgstr "%s(%s+0x%lx): %s'e yer deðiþimi: %d hatasý" +msgstr "%s(%s+0x%lx): %s'e yer deÄŸiÅŸimi: %d hatası" #: elf32-m32r.c:924 msgid "SDA relocation when _SDA_BASE_ not defined" -msgstr "_SDA_BASE_ tanýmlanmamýþ iken SDA yer deðiþimi" +msgstr "_SDA_BASE_ tanımlanmamış iken SDA yer deÄŸiÅŸimi" -#: elf32-ia64.c:3538 elf32-m32r.c:1008 elf32-ppc.c:2930 elf64-ia64.c:3538 +#: elf32-ia64.c:3687 elf32-m32r.c:1013 elf32-ppc.c:2987 elf64-alpha.c:4185 +#: elf64-alpha.c:4313 elf64-ia64.c:3687 #, c-format msgid "%s: unknown relocation type %d" -msgstr "%s: bilinmeyen yer deðiþim türü %d" +msgstr "%s: bilinmeyen yer deÄŸiÅŸim türü %d" -#: elf32-m32r.c:1224 +#: elf32-m32r.c:1221 #, c-format msgid "%s: The target (%s) of an %s relocation is in the wrong section (%s)" -msgstr "%1$s: Bir %3$s yer deðiþiminin hedefi (%2$s) yanlýþ bölümde (%4$s)" +msgstr "%1$s: Bir %3$s yer deÄŸiÅŸiminin hedefi (%2$s) yanlış bölümde (%4$s)" -#: elf32-m32r.c:2001 +#: elf32-m32r.c:1947 #, c-format msgid "%s: Instruction set mismatch with previous modules" -msgstr "%s: Önceki modüllerle iþlem uyuþmazlýðý" +msgstr "%s: Önceki modüllerle iÅŸlem uyuÅŸmazlığı" -#: elf32-m32r.c:2024 +#: elf32-m32r.c:1970 #, c-format msgid "private flags = %lx" -msgstr "özel bayraklar = %lx" +msgstr "özel bayraklar = %lx" -#: elf32-m32r.c:2029 +#: elf32-m32r.c:1975 msgid ": m32r instructions" -msgstr ": m32r iþlemleri" +msgstr ": m32r iÅŸlemleri" -#: elf32-m32r.c:2030 +#: elf32-m32r.c:1976 msgid ": m32rx instructions" -msgstr ": m32rx iþlemleri" +msgstr ": m32rx iÅŸlemleri" #: elf32-m68k.c:413 msgid " [cpu32]" msgstr " [cpu32]" -#: elf32-mcore.c:353 elf32-mcore.c:479 +#: elf32-m68k.c:416 +msgid " [m68000]" +msgstr " [m68000]" + +#: elf32-mcore.c:354 elf32-mcore.c:457 #, c-format msgid "%s: Relocation %s (%d) is not currently supported.\n" -msgstr "%s: %s (%d) yer deðiþimi henüz desteklenmiyor.\n" +msgstr "%s: %s (%d) yer deÄŸiÅŸimi henüz desteklenmiyor.\n" -#: elf32-mcore.c:438 +#: elf32-mcore.c:442 #, c-format msgid "%s: Unknown relocation type %d\n" -msgstr "%s: Bilinmeyen yer deðiþim türü %d\n" +msgstr "%s: Bilinmeyen yer deÄŸiÅŸim türü %d\n" -#: elf32-mips.c:2146 elf64-mips.c:1972 +#: elf32-mips.c:1152 elf64-mips.c:1783 msgid "32bits gp relative relocation occurs for an external symbol" -msgstr "32 bitlik gp göreceli yer deðiþim bir dýþ sembol için yapýlýyor" +msgstr "32 bitlik gp göreceli yer deÄŸiÅŸim bir dış sembol için yapılıyor" -#: elf32-mips.c:2295 +#: elf32-mips.c:1301 #, c-format msgid "Linking mips16 objects into %s format is not supported" -msgstr "mips16 nesnelerini %s biçemine baðlamak desteklenmiyor" +msgstr "mips16 nesnelerini %s biçemine baÄŸlamak desteklenmiyor" -#: elf32-mips.c:3119 +#: elf32-ppc.c:1460 #, c-format -msgid "%s: linking PIC files with non-PIC files" -msgstr "%s: PIC dosyalarý PIC olmayan dosyalarla baðlanýyor" +msgid "%s: compiled with -mrelocatable and linked with modules compiled normally" +msgstr "%s: -mrelocatable ile derlendi ve normal derlenmiÅŸ modüllerle baÄŸlandı" -#: elf32-mips.c:3129 +#: elf32-ppc.c:1468 #, c-format -msgid "%s: linking abicalls files with non-abicalls files" -msgstr "%s: abicalls dosyalarý abicalls olmayan dosyalarla baðlanýyor" +msgid "%s: compiled normally and linked with modules compiled with -mrelocatable" +msgstr "%s: normal derlendi ve -mrelocatable ile derlenmiÅŸ modüllere baÄŸlandı" -#: elf32-mips.c:3158 +#: elf32-ppc.c:1494 elf64-sparc.c:2989 elfxx-mips.c:7713 #, c-format -msgid "%s: ISA mismatch (-mips%d) with previous modules (-mips%d)" -msgstr "%1$s: Önceki modüllerle (-mips%3$d) ile ISA uyumsuzluðu (-mips%2$d)" +msgid "%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)" +msgstr "%1$s: önceki modüllerden (0x%3$lx) farklı e_flags (0x%2$lx) alanları kullanılıyor" -#: elf32-mips.c:3167 +#: elf32-ppc.c:1592 #, c-format -msgid "%s: ISA mismatch (%d) with previous modules (%d)" -msgstr "%1$s: Önceki modüllerle (%3$d) ile ISA uyumsuzluðu (%2$d)" +msgid "%s: Unknown special linker type %d" +msgstr "%s: Bilinmeyen özel baÄŸlayıcı türü %d" -#: elf32-mips.c:3190 +#: elf32-ppc.c:2273 elf32-ppc.c:2307 elf32-ppc.c:2342 #, c-format -msgid "%s: ABI mismatch: linking %s module with previous %s modules" -msgstr "%s: ABI uyumsuzluðu: %s modülü önceki %s modülle baðlanýyor" +msgid "%s: relocation %s cannot be used when making a shared object" +msgstr "%s: %s yerdeÄŸiÅŸimi paylaşımlı nesne oluÅŸturulurken kullanılamaz" -#: elf32-mips.c:3204 elf32-ppc.c:1470 elf64-ppc.c:1538 elf64-sparc.c:3033 +#: elf32-ppc.c:3126 elf64-ppc.c:5473 #, c-format -msgid "%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)" -msgstr "%1$s: önceki modüllerden (0x%3$lx) farklý e_flags (0x%2$lx) alanlarý kullanýlýyor" - -#: elf32-mips.c:3235 -msgid " [abi=O32]" -msgstr " [abi=O32]" - -#: elf32-mips.c:3237 -msgid " [abi=O64]" -msgstr " [abi=O64]" - -#: elf32-mips.c:3239 -msgid " [abi=EABI32]" -msgstr " [abi=EABI32]" - -#: elf32-mips.c:3241 -msgid " [abi=EABI64]" -msgstr " [abi=EABI64]" - -#: elf32-mips.c:3243 -msgid " [abi unknown]" -msgstr " [abi bilinmiyor]" - -#: elf32-mips.c:3245 -msgid " [abi=N32]" -msgstr " [abi=N32]" - -#: elf32-mips.c:3247 -msgid " [abi=64]" -msgstr " [abi=64]" - -#: elf32-mips.c:3249 -msgid " [no abi set]" -msgstr " [abi atanmamýþ]" - -#: elf32-mips.c:3252 -msgid " [mips1]" -msgstr " [mips1]" - -#: elf32-mips.c:3254 -msgid " [mips2]" -msgstr " [mips2]" - -#: elf32-mips.c:3256 -msgid " [mips3]" -msgstr " [mips3]" - -#: elf32-mips.c:3258 -msgid " [mips4]" -msgstr " [mips4]" - -#: elf32-mips.c:3260 -msgid " [mips5]" -msgstr " [mips5]" - -#: elf32-mips.c:3262 -msgid " [mips32]" -msgstr " [mips32]" - -#: elf32-mips.c:3264 -msgid " [mips64]" -msgstr " [mips64]" - -#: elf32-mips.c:3266 -msgid " [unknown ISA]" -msgstr " [bilinmeyen ISA]" - -#: elf32-mips.c:3269 -msgid " [32bitmode]" -msgstr " [32bitkipi]" - -#: elf32-mips.c:3271 -msgid " [not 32bitmode]" -msgstr " [32bitkipi deðil]" - -#: elf32-mips.c:4947 -msgid "static procedure (no name)" -msgstr "statik altyordam (isimsiz)" +msgid "%s: unknown relocation type %d for symbol %s" +msgstr "%1$s: %3$s sembolü için bilinmeyen %2$d türünde yerdeÄŸiÅŸimi" -#: elf32-mips.c:5565 elf64-mips.c:6694 +#: elf32-ppc.c:3482 elf32-ppc.c:3503 elf32-ppc.c:3553 #, c-format -msgid "%s: illegal section name `%s'" -msgstr "%s: geçersiz bölüm adý `%s'" - -#: elf32-mips.c:6132 elf64-mips.c:3150 -msgid "not enough GOT space for local GOT entries" -msgstr "yerel GOT girdileri için yeterli GOT yeri yok" +msgid "%s: The target (%s) of a %s relocation is in the wrong output section (%s)" +msgstr "%1$s: %3$s yerdeÄŸiÅŸiminin hedefi (%2$s) yanlış çıktı bölümünde (%4$s)" -#: elf32-mips.c:7238 elf64-mips.c:4203 +#: elf32-ppc.c:3619 #, c-format -msgid "%s: %s+0x%lx: jump to stub routine which is not jal" -msgstr "%s: %s+0x%lx: jal olmayan koçan yordamýna sýçrama" +msgid "%s: Relocation %s is not yet supported for symbol %s." +msgstr "%s: %s yerdeÄŸiÅŸimi %s sembolü için henüz desteklenmiyor." -#: elf32-mips.c:8237 elf64-mips.c:5891 +#: elf32-sh.c:1964 #, c-format -msgid "%s: Malformed reloc detected for section %s" -msgstr "%s: %s bölümü için geçersiz yer deðiþim bulundu" +msgid "%s: 0x%lx: warning: bad R_SH_USES offset" +msgstr "%s: 0x%lx: uyarı: hatalı R_SH_USES göreli konumu" -#: elf32-mips.c:8315 elf64-mips.c:5969 +#: elf32-sh.c:1976 #, c-format -msgid "%s: CALL16 reloc at 0x%lx not against global symbol" -msgstr "%s: 0x%lx'deki CALL16 yerdeðiþimi evrensel sembole göre deðil" +msgid "%s: 0x%lx: warning: R_SH_USES points to unrecognized insn 0x%x" +msgstr "%s: 0x%lx: uyarı: R_SH_USES bilinmeyen insn 0x%x'ı imliyor" -#: elf32-ppc.c:1436 elf64-ppc.c:1503 +#: elf32-sh.c:1993 #, c-format -msgid "%s: compiled with -mrelocatable and linked with modules compiled normally" -msgstr "%s: -mrelocatable ile derlendi ve normal derlenmiþ modüllerle baðlandý" +msgid "%s: 0x%lx: warning: bad R_SH_USES load offset" +msgstr "%s: 0x%lx: uyarı: hatalı R_SH_USES yükleme göreli konumu" -#: elf32-ppc.c:1444 elf64-ppc.c:1511 +#: elf32-sh.c:2008 #, c-format -msgid "%s: compiled normally and linked with modules compiled with -mrelocatable" -msgstr "%s: normal derlendi ve -mrelocatable ile derlenmiþ modüllere baðlandý" +msgid "%s: 0x%lx: warning: could not find expected reloc" +msgstr "%s: 0x%lx: uyarı: beklenen yerdeÄŸiÅŸim bulunamadı" -#: elf32-ppc.c:1568 +#: elf32-sh.c:2036 #, c-format -msgid "%s: Unknown special linker type %d" -msgstr "%s: Bilinmeyen özel baðlayýcý türü %d" +msgid "%s: 0x%lx: warning: symbol in unexpected section" +msgstr "%s: 0x%lx: uyarı: beklenmeyen bölümde sembol" -#: elf32-ppc.c:2218 elf32-ppc.c:2252 elf32-ppc.c:2287 +#: elf32-sh.c:2153 #, c-format -msgid "%s: relocation %s cannot be used when making a shared object" -msgstr "%s: %s yerdeðiþimi paylaþýmlý nesne oluþturulurken kullanýlamaz" +msgid "%s: 0x%lx: warning: could not find expected COUNT reloc" +msgstr "%s: 0x%lx: uyarı: beklenen COUNT yerdeÄŸiÅŸimi bulunamadı" -#: elf32-ppc.c:3097 elf64-ppc.c:3500 +#: elf32-sh.c:2162 #, c-format -msgid "%s: unknown relocation type %d for symbol %s" -msgstr "%1$s: %3$s sembolü için bilinmeyen %2$d türünde yerdeðiþimi" +msgid "%s: 0x%lx: warning: bad count" +msgstr "%s: 0x%lx: uyarı: hatalı sayım" -#: elf32-ppc.c:3452 elf32-ppc.c:3473 elf32-ppc.c:3523 +#: elf32-sh.c:2550 elf32-sh.c:2926 #, c-format -msgid "%s: The target (%s) of a %s relocation is in the wrong output section (%s)" -msgstr "%1$s: %3$s yerdeðiþiminin hedefi (%2$s) yanlýþ çýktý bölümünde (%4$s)" +msgid "%s: 0x%lx: fatal: reloc overflow while relaxing" +msgstr "%s: 0x%lx: ölümcül: gevÅŸetilirken yerdeÄŸiÅŸim taÅŸması" -#: elf32-ppc.c:3589 -#, c-format -msgid "%s: Relocation %s is not yet supported for symbol %s." -msgstr "%s: %s yerdeðiþimi %s sembolü için henüz desteklenmiyor." +#: elf32-sh.c:4073 elf64-sh64.c:1576 +msgid "Unexpected STO_SH5_ISA32 on local symbol is not handled" +msgstr "Yerel sembolde STO_SH5_ISA32 desteklenmiyor" -#: elf32-sh.c:1101 +#: elf32-sh.c:4284 #, c-format -msgid "%s: 0x%lx: warning: bad R_SH_USES offset" -msgstr "%s: 0x%lx: uyarý: hatalý R_SH_USES göreli konumu" +msgid "%s: 0x%lx: fatal: unaligned branch target for relax-support relocation" +msgstr "%s: 0x%lx: ölümcül: gevÅŸetme destek yerdeÄŸiÅŸimi için hizalanmamış dal" -#: elf32-sh.c:1113 +#: elf32-sh64.c:203 elf64-sh64.c:2364 #, c-format -msgid "%s: 0x%lx: warning: R_SH_USES points to unrecognized insn 0x%x" -msgstr "%s: 0x%lx: uyarý: R_SH_USES bilinmeyen insn 0x%x'ý imliyor" +msgid "%s: compiled as 32-bit object and %s is 64-bit" +msgstr "%s: 32 bitlik sistem için derlenmiÅŸ ve %s 64 bit" -#: elf32-sh.c:1130 +#: elf32-sh64.c:206 elf64-sh64.c:2367 #, c-format -msgid "%s: 0x%lx: warning: bad R_SH_USES load offset" -msgstr "%s: 0x%lx: uyarý: hatalý R_SH_USES yükleme göreli konumu" +msgid "%s: compiled as 64-bit object and %s is 32-bit" +msgstr "%s: 64 bitlik sistem için derlenmiÅŸ ve %s 32 bit" -#: elf32-sh.c:1145 +#: elf32-sh64.c:208 elf64-sh64.c:2369 #, c-format -msgid "%s: 0x%lx: warning: could not find expected reloc" -msgstr "%s: 0x%lx: uyarý: beklenen yerdeðiþim bulunamadý" +msgid "%s: object size does not match that of target %s" +msgstr "%s: nesne boyu hedef %s'nin boyuyla eÅŸleÅŸmiyor" -#: elf32-sh.c:1202 +#: elf32-sh64.c:440 elf64-sh64.c:2941 #, c-format -msgid "%s: 0x%lx: warning: symbol in unexpected section" -msgstr "%s: 0x%lx: uyarý: beklenmeyen bölümde sembol" +msgid "%s: encountered datalabel symbol in input" +msgstr "%s: girdide veri etiketi sembolüne rastlandı" -#: elf32-sh.c:1323 +#: elf32-sh64.c:523 +msgid "PTB mismatch: a SHmedia address (bit 0 == 1)" +msgstr "PTB uyumsuzluÄŸu: SHmedia adresi (bit 0 == 1)" + +#: elf32-sh64.c:526 +msgid "PTA mismatch: a SHcompact address (bit 0 == 0)" +msgstr "PTA uyumsuzluÄŸu: SHcompact adresi (bit 0 == 0)" + +#: elf32-sh64.c:544 #, c-format -msgid "%s: 0x%lx: warning: could not find expected COUNT reloc" -msgstr "%s: 0x%lx: uyarý: beklenen COUNT yerdeðiþimi bulunamadý" +msgid "%s: GAS error: unexpected PTB insn with R_SH_PT_16" +msgstr "%s: GAS hatası: R_SH_PT_16 içeren PTB yönergesi beklenmiyordu" -#: elf32-sh.c:1332 +#: elf32-sh64.c:593 elf64-sh64.c:1703 #, c-format -msgid "%s: 0x%lx: warning: bad count" -msgstr "%s: 0x%lx: uyarý: hatalý sayým" +msgid "%s: error: unaligned relocation type %d at %08x reloc %08x\n" +msgstr "%1$s: %3$08x ve %4$08x yerdeÄŸiÅŸtirmesinde hizalanmamış yer deÄŸiÅŸtirme türü %2$d\n" -#: elf32-sh.c:1741 elf32-sh.c:2132 +#: elf32-sh64.c:677 #, c-format -msgid "%s: 0x%lx: fatal: reloc overflow while relaxing" -msgstr "%s: 0x%lx: ölümcül: gevþetilirken yerdeðiþim taþmasý" +msgid "%s: could not write out added .cranges entries" +msgstr "%s: eklenen .cranges girdileri yazılamadı" -#: elf32-sh.c:3267 +#: elf32-sh64.c:739 #, c-format -msgid "%s: 0x%lx: fatal: unaligned branch target for relax-support relocation" -msgstr "%s: 0x%lx: ölümcül: gevþetme destek yerdeðiþimi için hizalanmamýþ dal" +msgid "%s: could not write out sorted .cranges entries" +msgstr "%s: sıralanmış .cranges girdileri yazılamadı" -#: elf32-sparc.c:1554 elf64-sparc.c:2286 +#: elf32-sparc.c:1535 elf64-sparc.c:2224 #, c-format msgid "%s: probably compiled without -fPIC?" -msgstr "%s: acaba -fPIC olmaksýzýn mý derlenmiþ?" +msgstr "%s: acaba -fPIC olmaksızın mı derlenmiÅŸ?" -#: elf32-sparc.c:2007 +#: elf32-sparc.c:2002 #, c-format msgid "%s: compiled for a 64 bit system and target is 32 bit" -msgstr "%s: 64 bitlik sistem için derlenmiþ ve hedef 32 bit" +msgstr "%s: 64 bitlik sistem için derlenmiÅŸ ve hedef 32 bit" -#: elf32-sparc.c:2021 +#: elf32-sparc.c:2016 #, c-format msgid "%s: linking little endian files with big endian files" -msgstr "%s: küçük sonlu dosyalar büyük sonlu dosyalarla baðlanýyor" +msgstr "%s: küçük sonlu dosyalar büyük sonlu dosyalarla baÄŸlanıyor" #: elf32-v850.c:682 #, c-format msgid "Variable `%s' cannot occupy in multiple small data regions" -msgstr "`%s' deðiþkeni birden fazla küçük veri sahasýný kapsayamaz" +msgstr "`%s' deÄŸiÅŸkeni birden fazla küçük veri sahasını kapsayamaz" #: elf32-v850.c:685 #, c-format msgid "Variable `%s' can only be in one of the small, zero, and tiny data regions" -msgstr "`%s' deðiþkeni küçük, sýfýr ve ufak veri sahalarýndan yalnýz birinde olabilir" +msgstr "`%s' deÄŸiÅŸkeni küçük, sıfır ve ufak veri sahalarından yalnız birinde olabilir" #: elf32-v850.c:688 #, c-format msgid "Variable `%s' cannot be in both small and zero data regions simultaneously" -msgstr "`%s' deðiþkeni ayný anda hem küçük hem sýfýr veri sahalarýnda bulunamaz" +msgstr "`%s' deÄŸiÅŸkeni aynı anda hem küçük hem sıfır veri sahalarında bulunamaz" #: elf32-v850.c:691 #, c-format msgid "Variable `%s' cannot be in both small and tiny data regions simultaneously" -msgstr "`%s' deðiþkeni ayný anda hem küçük hem ufak veri sahalarýnda bulunamaz" +msgstr "`%s' deÄŸiÅŸkeni aynı anda hem küçük hem ufak veri sahalarında bulunamaz" #: elf32-v850.c:694 #, c-format msgid "Variable `%s' cannot be in both zero and tiny data regions simultaneously" -msgstr "`%s' deðiþkeni ayný anda hem sýfýr hem ufak veri sahalarýnda bulunamaz" +msgstr "`%s' deÄŸiÅŸkeni aynı anda hem sıfır hem ufak veri sahalarında bulunamaz" #: elf32-v850.c:1072 msgid "FAILED to find previous HI16 reloc\n" -msgstr "önceki HI16 yerdeðiþimi BULUNAMADI\n" +msgstr "önceki HI16 yerdeÄŸiÅŸimi BULUNAMADI\n" #: elf32-v850.c:1703 msgid "could not locate special linker symbol __gp" -msgstr "özel baðlayýcý sembolü __gp bulunamadý" +msgstr "özel baÄŸlayıcı sembolü __gp bulunamadı" #: elf32-v850.c:1707 msgid "could not locate special linker symbol __ep" -msgstr "özel baðlayýcý sembolü __ep bulunamadý" +msgstr "özel baÄŸlayıcı sembolü __ep bulunamadı" #: elf32-v850.c:1711 msgid "could not locate special linker symbol __ctbp" -msgstr "özel baðlayýcý sembolü __ctbp bulunamadý" +msgstr "özel baÄŸlayıcı sembolü __ctbp bulunamadı" -#: elf32-v850.c:1877 +#: elf32-v850.c:1875 #, c-format msgid "%s: Architecture mismatch with previous modules" -msgstr "%s: Önceki modüllerle platform uyumsuzluðu" +msgstr "%s: Önceki modüllerle platform uyumsuzluÄŸu" -#: elf32-v850.c:1897 +#: elf32-v850.c:1895 #, c-format msgid "private flags = %lx: " -msgstr "özel bayraklar = %lx:" +msgstr "özel bayraklar = %lx:" -#: elf32-v850.c:1902 +#: elf32-v850.c:1900 msgid "v850 architecture" msgstr "v850 platformu" -#: elf32-v850.c:1903 +#: elf32-v850.c:1901 msgid "v850e architecture" msgstr "v850e platformu" -#: elf32-v850.c:1904 +#: elf32-v850.c:1902 msgid "v850ea architecture" msgstr "v850ea platformu" -#: elf64-alpha.c:858 +#: elf32-vax.c:546 +msgid " [nonpic]" +msgstr " [nonpic]" + +#: elf32-vax.c:549 +msgid " [d-float]" +msgstr " [d-float]" + +#: elf32-vax.c:552 +msgid " [g-float]" +msgstr " [g-float]" + +#: elf32-vax.c:674 +#, c-format +msgid "%s: warning: GOT addend of %ld to `%s' does not match previous GOT addend of %ld" +msgstr "%1$s: uyarı: `%3$s'ye GOT %2$ld eklentisi bir önceki %4$ld GOT eklentisiyle eÅŸleÅŸmiyor" + +#: elf32-vax.c:1679 +#, c-format +msgid "%s: warning: PLT addend of %d to `%s' from %s section ignored" +msgstr "%1$s: uyarı: %4$s bölümünden `%3$s' sembolüne PLT eklentisi %2$d yok sayıldı" + +#: elf32-vax.c:1814 +#, c-format +msgid "%s: warning: %s relocation against symbol `%s' from %s section" +msgstr "%1$s: uyarı: %4$s bölümünden `%3$s' sembolüne %2$s yer deÄŸiÅŸimi" + +#: elf32-vax.c:1820 +#, c-format +msgid "%s: warning: %s relocation to 0x%x from %s section" +msgstr "%1$s: uyarı: %4$s bölümünden 0x%3$x'e %2$s yer deÄŸiÅŸimi" + +#: elf32-ia64.c:2280 elf32-xstormy16.c:414 elf64-ia64.c:2280 +msgid "non-zero addend in @fptr reloc" +msgstr "@fptr yerdeÄŸiÅŸiminde sıfır olmayan eklenti" + +#: elf64-alpha.c:1097 msgid "GPDISP relocation did not find ldah and lda instructions" -msgstr "GPDISP yerdeðiþimi ldah ve lda iþlemlerini bulamadý" +msgstr "GPDISP yerdeÄŸiÅŸimi ldah ve lda iÅŸlemlerini bulamadı" -#: elf64-alpha.c:2934 +#: elf64-alpha.c:3675 #, c-format msgid "%s: .got subsegment exceeds 64K (size %d)" -msgstr "%s: .got alt parçasý 64K'yý aþýyor (boy %d)" +msgstr "%s: .got alt parçası 64K'yı aşıyor (boy %d)" -#: elf64-alpha.c:3518 elf64-alpha.c:3530 +#: elf64-alpha.c:4498 elf64-alpha.c:4510 #, c-format msgid "%s: gp-relative relocation against dynamic symbol %s" -msgstr "%s: %s dinamik sembolüne gp göreceli yer deðiþimi" +msgstr "%s: %s dinamik sembolüne gp göreceli yer deÄŸiÅŸimi" + +#: elf64-alpha.c:4536 elf64-alpha.c:4676 +#, c-format +msgid "%s: pc-relative relocation against dynamic symbol %s" +msgstr "%s: %s dinamik sembolüne pc göreceli yer deÄŸiÅŸimi" -#: elf64-hppa.c:2070 +#: elf64-alpha.c:4564 +#, c-format +msgid "%s: change in gp: BRSGP %s" +msgstr "%s: gp içinde deÄŸiÅŸiklik: BRSGP %s" + +#: elf64-alpha.c:4589 +msgid "" +msgstr "" + +#: elf64-alpha.c:4594 +#, c-format +msgid "%s: !samegp reloc against symbol without .prologue: %s" +msgstr "%s: .prologue olmaksızın sembole !samegp yerdeÄŸiÅŸimi: %s" + +#: elf64-alpha.c:4639 +#, c-format +msgid "%s: unhandled dynamic relocation against %s" +msgstr "%s: %s'e desteklenmeyen dinamik yerdeÄŸiÅŸim" + +#: elf64-alpha.c:4752 +#, c-format +msgid "%s: dtp-relative relocation against dynamic symbol %s" +msgstr "%s: %s dinamik sembolüne dtp göreceli yer deÄŸiÅŸimi" + +#: elf64-alpha.c:4775 +#, c-format +msgid "%s: tp-relative relocation against dynamic symbol %s" +msgstr "%s: %s dinamik sembolüne tp göreceli yer deÄŸiÅŸimi" + +#: elf64-hppa.c:2080 #, c-format msgid "stub entry for %s cannot load .plt, dp offset = %ld" -msgstr "%s için koçan girdisi .plt'yi yükleyemedi, dp görecesi = %ld" +msgstr "%s için koçan girdisi .plt'yi yükleyemedi, dp görecesi = %ld" -#: elf64-mmix.c:1268 +#: elf64-mmix.c:1002 #, c-format -msgid "%s: register relocation against non-register symbol: %s in %s" -msgstr "%1$s: yazmaç olmayan sembole yazmaç yerdeðiþimi: %3$s içinde %2$s" +msgid "" +"%s: Internal inconsistency error for value for\n" +" linker-allocated global register: linked: 0x%lx%08lx != relaxed: 0x%lx%08lx\n" +msgstr "" +"%s: baÄŸlayıcı tarafından ayrılmış global yazmaç deÄŸeri için iç tutarsızlık hatası:\n" +" 0x%lx%08lx != gevÅŸetilmiÅŸ: 0x%lx%08lx\n" -#: elf64-mmix.c:1270 -msgid "(unknown)" -msgstr "(bilinmeyen)" +#: elf64-mmix.c:1386 +#, c-format +msgid "%s: base-plus-offset relocation against register symbol: (unknown) in %s" +msgstr "%s: yazmaç sembolüne temel artı görece yerdeÄŸiÅŸimi: %s içinde (bilinmeyen)" -#: elf64-mmix.c:1305 +#: elf64-mmix.c:1391 +#, c-format +msgid "%s: base-plus-offset relocation against register symbol: %s in %s" +msgstr "%1$s: yazmaç sembolüne temel artı görece yerdeÄŸiÅŸimi: %3$s içinde %2$s" + +#: elf64-mmix.c:1435 +#, c-format +msgid "%s: register relocation against non-register symbol: (unknown) in %s" +msgstr "%s: yazmaç olmayan sembole yazmaç yerdeÄŸiÅŸimi: %s içinde (bilinmeyen)" + +#: elf64-mmix.c:1440 +#, c-format +msgid "%s: register relocation against non-register symbol: %s in %s" +msgstr "%1$s: yazmaç olmayan sembole yazmaç yerdeÄŸiÅŸimi: %3$s içinde %2$s" + +#: elf64-mmix.c:1477 #, c-format msgid "%s: directive LOCAL valid only with a register or absolute value" -msgstr "%s: YEREL (LOCAL) yönergesi yalnýz bir yazmaç veya kesin deðerle geçerlidir" +msgstr "%s: YEREL (LOCAL) yönergesi yalnız bir yazmaç veya kesin deÄŸerle geçerlidir" -#: elf64-mmix.c:1333 +#: elf64-mmix.c:1505 #, c-format msgid "%s: LOCAL directive: Register $%ld is not a local register. First global register is $%ld." msgstr "" -"%s: YEREL (LOCAL) yönergesi: $%ld yazmacý yerel yazmaç deðil.\n" -" Ýlk evrensel yazmaç: $%ld." +"%s: YEREL (LOCAL) yönergesi: $%ld yazmacı yerel yazmaç deÄŸil.\n" +" Ä°lk evrensel yazmaç: $%ld." -#: elf64-mmix.c:1609 +#: elf64-mmix.c:1965 #, c-format msgid "%s: Error: multiple definition of `%s'; start of %s is set in a earlier linked file\n" msgstr "" -"%s: Hata: `%s' birden fazla defa tanýmlanmýþ; %s'nin baþlangýcý daha önce\n" -" baðlanan bir dosyada.\n" +"%s: Hata: `%s' birden fazla defa tanımlanmış; %s'nin baÅŸlangıcı daha önce\n" +" baÄŸlanan bir dosyada.\n" -#: elf64-mmix.c:1668 +#: elf64-mmix.c:2024 msgid "Register section has contents\n" -msgstr "Yazmaç bölümünde içerik yok\n" +msgstr "Yazmaç bölümünde içerik yok\n" -#: elf64-ppc.c:1466 libbfd.c:1436 +#: elf64-mmix.c:2186 +#, c-format +msgid "" +"Internal inconsistency: remaining %u != max %u.\n" +" Please report this bug." +msgstr "" +"İç uyumsuzluk: kalan %u != maksimum %u. \n" +" Lütfen bu hatayı bildirin." + +#: elf64-ppc.c:1669 libbfd.c:1435 #, c-format msgid "%s: compiled for a big endian system and target is little endian" -msgstr "%s: büyük sonlu sistem için derlenmiþ ve hedef küçük sonlu" +msgstr "%s: büyük sonlu sistem için derlenmiÅŸ ve hedef küçük sonlu" -#: elf64-ppc.c:1468 libbfd.c:1438 +#: elf64-ppc.c:1671 libbfd.c:1437 #, c-format msgid "%s: compiled for a little endian system and target is big endian" -msgstr "%s: küçük sonlu sistem için derlenmiþ ve hedef büyük sonlu" +msgstr "%s: küçük sonlu sistem için derlenmiÅŸ ve hedef büyük sonlu" + +#: elf64-ppc.c:3610 +#, c-format +msgid "%s: unexpected reloc type %u in .opd section" +msgstr "%s: opd bölümünde beklenmeyen yerdeÄŸiÅŸim türü %u" + +#: elf64-ppc.c:3630 +#, c-format +msgid "%s: .opd is not a regular array of opd entries" +msgstr "%s: opd, opd girdilerinin düzenli dizisi deÄŸil" + +#: elf64-ppc.c:3672 +#, c-format +msgid "%s: undefined sym `%s' in .opd section" +msgstr "%s: opd bölümünde tanımlanmamış `%s' sembolü" + +#: elf64-ppc.c:4397 +#, c-format +msgid "can't find branch stub `%s'" +msgstr "`%s' dal koçanı bulunamadı" + +#: elf64-ppc.c:4436 elf64-ppc.c:4501 +#, c-format +msgid "linkage table error against `%s'" +msgstr "`%s'ye baÄŸlama tablosu hatası" -#: elf64-ppc.c:3166 +#: elf64-ppc.c:4573 #, c-format -msgid "linkage table overflow against `%s'" -msgstr "`%s'ye baðlama tablosu taþmasý" +msgid "can't build branch stub `%s'" +msgstr "`%s' dal koçanı derlenemedi" -#: elf64-ppc.c:3244 -msgid "stub section size doesn't match calculated size" -msgstr "koçan bölümü boyu hesaplanan boyla eþleþmiyor" +#: elf64-ppc.c:5179 +msgid "stubs don't match calculated size" +msgstr "koçanlar hesaplanan boyla eÅŸleÅŸmiyor" -#: elf64-ppc.c:3845 +#: elf64-ppc.c:5828 #, c-format msgid "%s: Relocation %s is not supported for symbol %s." -msgstr "%s: %s yerdeðiþimi %s sembolü için henüz desteklenmiyor." +msgstr "%s: %s yerdeÄŸiÅŸimi %s sembolü için henüz desteklenmiyor." -#: elf64-ppc.c:3889 +#: elf64-ppc.c:5872 #, c-format msgid "%s: error: relocation %s not a multiple of 4" -msgstr "%s: hata: %s yerdeðiþimi 4'ün katý deðil" +msgstr "%s: hata: %s yerdeÄŸiÅŸimi 4'ün katı deÄŸil" -#: elf64-sparc.c:1277 +#: elf64-sparc.c:1280 #, c-format msgid "%s: check_relocs: unhandled reloc type %d" -msgstr "%s: check_relocs: desteklenmeyen yerdeðiþim türü %d" +msgstr "%s: check_relocs: desteklenmeyen yerdeÄŸiÅŸim türü %d" -#: elf64-sparc.c:1314 +#: elf64-sparc.c:1317 #, c-format msgid "%s: Only registers %%g[2367] can be declared using STT_REGISTER" -msgstr "%s: Yalnýz %%g[2367] yazmaçlarý STT_REGISTER ile bildirilebilir" +msgstr "%s: Yalnız %%g[2367] yazmaçları STT_REGISTER ile bildirilebilir" -#: elf64-sparc.c:1334 +#: elf64-sparc.c:1337 #, c-format -msgid "Register %%g%d used incompatibly: %s in %s" -msgstr "%%g%1$d yazmacý uyumsuz kullanýlmýþ: %3$s içinde %2$s" +msgid "Register %%g%d used incompatibly: %s in %s, previously %s in %s" +msgstr "%%g%1$d yazmacı uyumsuz kullanılmış: %3$s içinde %2$s, daha önce %5$s içinde %4$s idi" -#: elf64-sparc.c:1338 elf64-sparc.c:1362 elf64-sparc.c:1411 +#: elf64-sparc.c:1360 #, c-format -msgid " previously %s in %s" -msgstr " daha önce %2$s içinde %1$s" +msgid "Symbol `%s' has differing types: REGISTER in %s, previously %s in %s" +msgstr "`%1$s' sembolünün farklı türleri var: %2$s içinde REGISTER (yazmaç), daha önce %4$s içinde %3$s" -#: elf64-sparc.c:1359 elf64-sparc.c:1408 +#: elf64-sparc.c:1406 #, c-format -msgid "Symbol `%s' has differing types: %s in %s" -msgstr "`%1$s' sembolünün farklý türleri var: %3$s içinde %2$s" +msgid "Symbol `%s' has differing types: %s in %s, previously REGISTER in %s" +msgstr "" +"`%1$s' sembolünün farklı türleri var: %3$s içinde %2$s, \n" +" daha önce %4$s içinde REGISTER (yazmaç)" -#: elf64-sparc.c:3014 +#: elf64-sparc.c:2970 #, c-format msgid "%s: linking UltraSPARC specific with HAL specific code" -msgstr "%s: UltraSPARC'a özel kod HAL'e özel kod ile baðlanýyor" +msgstr "%s: UltraSPARC'a özel kod HAL'e özel kod ile baÄŸlanıyor" -#: elfcode.h:1218 +#: elfcode.h:1198 #, c-format msgid "%s: version count (%ld) does not match symbol count (%ld)" -msgstr "%s: sürüm sayýsý (%ld) sembol sayýsý (%ld) ile eþleþmiyor" +msgstr "%s: sürüm sayısı (%ld) sembol sayısı (%ld) ile eÅŸleÅŸmiyor" -#: elflink.c:434 +#: elflink.c:440 #, c-format msgid "%s: Section %s is too large to add hole of %ld bytes" -msgstr "%s: %s bölümü içine %ld baytlýk bir delik koymak için fazla büyük" +msgstr "%s: %s bölümü içine %ld baytlık bir delik koymak için fazla büyük" -#: elflink.h:1113 +#: elflink.h:1090 #, c-format msgid "%s: warning: unexpected redefinition of `%s'" -msgstr "%s: uyarý: `%s' için beklenmeyen yeniden tanýmlama" +msgstr "%s: uyarı: `%s' için beklenmeyen yeniden tanımlama" -#: elflink.h:1784 +#: elflink.h:1727 #, c-format msgid "%s: %s: invalid version %u (max %d)" -msgstr "%s: %s: geçersiz sürüm %u (maksimum %d)" +msgstr "%s: %s: geçersiz sürüm %u (maksimum %d)" -#: elflink.h:1825 +#: elflink.h:1768 #, c-format msgid "%s: %s: invalid needed version %d" -msgstr "%s: %s: geçersiz gerekli sürüm %d" +msgstr "%s: %s: geçersiz gerekli sürüm %d" -#: elflink.h:1945 +#: elflink.h:1890 #, c-format msgid "Warning: size of symbol `%s' changed from %lu to %lu in %s" -msgstr "Uyarý: `%s' sembolünün boyu %lu'dan %lu'ya %s içerisinde deðiþti" +msgstr "Uyarı: `%s' sembolünün boyu %lu'dan %lu'ya %s içerisinde deÄŸiÅŸti" + +#: elflink.h:3174 +#, c-format +msgid "%s: .preinit_array section is not allowed in DSO" +msgstr "%s: DSO içinde preinit_array'e izin verilmiyor" -#: elflink.h:4020 +#: elflink.h:4030 #, c-format msgid "warning: type and size of dynamic symbol `%s' are not defined" -msgstr "uyarý: `%s' dinamik sembolünün türü ve boyu tanýmlý deðil" +msgstr "uyarı: `%s' dinamik sembolünün türü ve boyu tanımlı deÄŸil" -#: elflink.h:4329 +#: elflink.h:4345 #, c-format msgid "%s: undefined versioned symbol name %s" -msgstr "%s: sürümlü sembol ismi %s tanýmlý deðil" +msgstr "%s: sürümlü sembol ismi %s tanımlı deÄŸil" -#: elflink.h:4559 elflink.h:4567 elflink.h:6218 elflink.h:7295 +#: elflink.h:4611 elflink.h:4619 elflink.h:6508 elflink.h:7600 msgid "Error: out of memory" -msgstr "Hata: bellek tükendi" +msgstr "Hata: bellek tükendi" -#: elflink.h:4729 +#: elflink.h:4781 msgid "Not enough memory to sort relocations" -msgstr "Yerdeðiþimleri sýralamak için gerekli bellek yok" +msgstr "YerdeÄŸiÅŸimleri sıralamak için gerekli bellek yok" -#: elflink.h:5995 +#: elflink.h:5682 elflink.h:5725 +#, c-format +msgid "%s: could not find output section %s" +msgstr "%s: çıktı bölümü %s bulunamadı" + +#: elflink.h:5688 +#, c-format +msgid "warning: %s section has zero size" +msgstr "uyarı: %s bölümü sıfır boyunda" + +#: elflink.h:6275 #, c-format msgid "%s: could not find output section %s for input section %s" -msgstr "%1$s: girdi bölümü %3$s için çýktý bölümü %2$s bulunamadý" +msgstr "%1$s: girdi bölümü %3$s için çıktı bölümü %2$s bulunamadı" -#: elflink.h:6568 +#: elflink.h:6486 +#, c-format +msgid "%s: relocation size mismatch in %s section %s" +msgstr "%1$s: %3$s bölümünde %2$s içinde yerdeÄŸiÅŸim boy uyuÅŸmazlığı" + +#: elflink.h:6849 msgid "warning: relocation against removed section; zeroing" -msgstr "uyarý: silinmiþ bölüme yer deðiþim; sýfýrlandý" +msgstr "uyarı: silinmiÅŸ bölüme yer deÄŸiÅŸim; sıfırlandı" -#: elflink.h:6598 +#: elflink.h:6879 msgid "warning: relocation against removed section" -msgstr "%1$s: silinmiþ bölüme yerdeðiþim" +msgstr "%1$s: silinmiÅŸ bölüme yerdeÄŸiÅŸim" -#: elflink.h:6611 +#: elflink.h:6892 #, c-format msgid "local symbols in discarded section %s" -msgstr "atýlmýþ %s bölümünde yerel semboller" +msgstr "atılmış %s bölümünde yerel semboller" + +#: elfxx-mips.c:734 +msgid "static procedure (no name)" +msgstr "statik altyordam (isimsiz)" + +#: elfxx-mips.c:1601 +msgid "not enough GOT space for local GOT entries" +msgstr "yerel GOT girdileri için yeterli GOT yeri yok" + +#: elfxx-mips.c:2750 +#, c-format +msgid "%s: %s+0x%lx: jump to stub routine which is not jal" +msgstr "%s: %s+0x%lx: jal olmayan koçan yordamına sıçrama" + +#: elfxx-mips.c:4270 +#, c-format +msgid "%s: Malformed reloc detected for section %s" +msgstr "%s: %s bölümü için geçersiz yer deÄŸiÅŸim bulundu" + +#: elfxx-mips.c:4348 +#, c-format +msgid "%s: CALL16 reloc at 0x%lx not against global symbol" +msgstr "%s: 0x%lx'deki CALL16 yerdeÄŸiÅŸimi evrensel sembole göre deÄŸil" -#: i386linux.c:455 m68klinux.c:459 sparclinux.c:456 +#: elfxx-mips.c:7301 +#, c-format +msgid "%s: illegal section name `%s'" +msgstr "%s: geçersiz bölüm adı `%s'" + +#: elfxx-mips.c:7615 +#, c-format +msgid "%s: linking PIC files with non-PIC files" +msgstr "%s: PIC dosyaları PIC olmayan dosyalarla baÄŸlanıyor" + +#: elfxx-mips.c:7625 +#, c-format +msgid "%s: linking abicalls files with non-abicalls files" +msgstr "%s: abicalls dosyaları abicalls olmayan dosyalarla baÄŸlanıyor" + +#: elfxx-mips.c:7654 +#, c-format +msgid "%s: ISA mismatch (-mips%d) with previous modules (-mips%d)" +msgstr "%1$s: Önceki modüllerle (-mips%3$d) ile ISA uyumsuzluÄŸu (-mips%2$d)" + +#: elfxx-mips.c:7676 +#, c-format +msgid "%s: ISA mismatch (%d) with previous modules (%d)" +msgstr "%1$s: Önceki modüllerle (%3$d) ile ISA uyumsuzluÄŸu (%2$d)" + +#: elfxx-mips.c:7699 +#, c-format +msgid "%s: ABI mismatch: linking %s module with previous %s modules" +msgstr "%s: ABI uyumsuzluÄŸu: %s modülü önceki %s modülle baÄŸlanıyor" + +#: elfxx-mips.c:7759 +msgid " [abi=O32]" +msgstr " [abi=O32]" + +#: elfxx-mips.c:7761 +msgid " [abi=O64]" +msgstr " [abi=O64]" + +#: elfxx-mips.c:7763 +msgid " [abi=EABI32]" +msgstr " [abi=EABI32]" + +#: elfxx-mips.c:7765 +msgid " [abi=EABI64]" +msgstr " [abi=EABI64]" + +#: elfxx-mips.c:7767 +msgid " [abi unknown]" +msgstr " [abi bilinmiyor]" + +#: elfxx-mips.c:7769 +msgid " [abi=N32]" +msgstr " [abi=N32]" + +#: elfxx-mips.c:7771 +msgid " [abi=64]" +msgstr " [abi=64]" + +#: elfxx-mips.c:7773 +msgid " [no abi set]" +msgstr " [abi atanmamış]" + +#: elfxx-mips.c:7776 +msgid " [mips1]" +msgstr " [mips1]" + +#: elfxx-mips.c:7778 +msgid " [mips2]" +msgstr " [mips2]" + +#: elfxx-mips.c:7780 +msgid " [mips3]" +msgstr " [mips3]" + +#: elfxx-mips.c:7782 +msgid " [mips4]" +msgstr " [mips4]" + +#: elfxx-mips.c:7784 +msgid " [mips5]" +msgstr " [mips5]" + +#: elfxx-mips.c:7786 +msgid " [mips32]" +msgstr " [mips32]" + +#: elfxx-mips.c:7788 +msgid " [mips64]" +msgstr " [mips64]" + +#: elfxx-mips.c:7790 +msgid " [unknown ISA]" +msgstr " [bilinmeyen ISA]" + +#: elfxx-mips.c:7793 +msgid " [mdmx]" +msgstr " [mdmx]" + +#: elfxx-mips.c:7796 +msgid " [mips16]" +msgstr " [mips16]" + +#: elfxx-mips.c:7799 +msgid " [32bitmode]" +msgstr " [32bitkipi]" + +#: elfxx-mips.c:7801 +msgid " [not 32bitmode]" +msgstr " [32bitkipi deÄŸil]" + +#: i386linux.c:458 m68klinux.c:462 sparclinux.c:459 #, c-format msgid "Output file requires shared library `%s'\n" -msgstr "Çýktý dosyasý için paylaþýmlý kitaplýk `%s' gerekli\n" +msgstr "Çıktı dosyası için paylaşımlı kitaplık `%s' gerekli\n" -#: i386linux.c:463 m68klinux.c:467 sparclinux.c:464 +#: i386linux.c:466 m68klinux.c:470 sparclinux.c:467 #, c-format msgid "Output file requires shared library `%s.so.%s'\n" -msgstr "Çýktý dosyasý için paylaþýmlý kitaplýk `%s.so.%s' gerekli\n" +msgstr "Çıktı dosyası için paylaşımlı kitaplık `%s.so.%s' gerekli\n" -#: i386linux.c:653 i386linux.c:703 m68klinux.c:660 m68klinux.c:708 -#: sparclinux.c:655 sparclinux.c:705 +#: i386linux.c:655 i386linux.c:705 m68klinux.c:662 m68klinux.c:710 +#: sparclinux.c:657 sparclinux.c:707 #, c-format msgid "Symbol %s not defined for fixups\n" -msgstr "%s sembolü düzeltmeler için tanýmlý deðil\n" +msgstr "%s sembolü düzeltmeler için tanımlı deÄŸil\n" -#: i386linux.c:727 m68klinux.c:732 sparclinux.c:729 +#: i386linux.c:729 m68klinux.c:734 sparclinux.c:731 msgid "Warning: fixup count mismatch\n" -msgstr "Uyarý: düzeltme sayý uyumsuzluðu\n" +msgstr "Uyarı: düzeltme sayı uyumsuzluÄŸu\n" #: ieee.c:235 #, c-format @@ -1518,261 +1765,261 @@ msgstr "%s: dizge fazla uzun (%d karakte #: ieee.c:365 #, c-format msgid "%s: unrecognized symbol `%s' flags 0x%x" -msgstr "%s: bilinmeyen `%s' sembol bayraklarý 0x%x" +msgstr "%s: bilinmeyen `%s' sembol bayrakları 0x%x" #: ieee.c:877 #, c-format -msgid "%s: unimplemented ATI record %u for symbol %u" -msgstr "%1$s: %3$u için desteklenmeyen ATI kaydý %2$u" +msgid "%s: unimplemented ATI record %u for symbol %u" +msgstr "%1$s: %3$u sembolü için desteklenmeyen ATI kaydı %2$u" #: ieee.c:902 #, c-format msgid "%s: unexpected ATN type %d in external part" -msgstr "%s: dýþ parçada beklenmeyen ATN türü %d" +msgstr "%s: dış parçada beklenmeyen ATN türü %d" #: ieee.c:924 #, c-format msgid "%s: unexpected type after ATN" -msgstr "%s: ATN'den sonra beklenmeyen tür" +msgstr "%s: ATN'den sonra beklenmeyen tür" #: ihex.c:258 #, c-format msgid "%s:%d: unexpected character `%s' in Intel Hex file\n" -msgstr "%s:%d: Intel Onaltýlýk dosyasýnda beklenmeyen `%s' karakteri\n" +msgstr "%s:%d: Intel Onaltılık dosyasında beklenmeyen `%s' karakteri\n" -#: ihex.c:368 +#: ihex.c:366 #, c-format msgid "%s:%u: bad checksum in Intel Hex file (expected %u, found %u)" msgstr "" -"%s:%u: Intel Onaltýlýk dosyasýnda hatalý saðlama toplamý\n" +"%s:%u: Intel Onaltılık dosyasında hatalı saÄŸlama toplamı\n" " (%u beklendi, %u bulundu)" -#: ihex.c:422 +#: ihex.c:420 #, c-format msgid "%s:%u: bad extended address record length in Intel Hex file" -msgstr "%s:%u: Intel Onaltýlýk dosyasýnda hatalý uzun adres kaydý uzunluðu" +msgstr "%s:%u: Intel Onaltılık dosyasında hatalı uzun adres kaydı uzunluÄŸu" -#: ihex.c:439 +#: ihex.c:437 #, c-format msgid "%s:%u: bad extended start address length in Intel Hex file" -msgstr "%s:%u: Intel Onaltýlýk dosyasýnda hatalý uzun baþlangýç adresi uzunluðu" +msgstr "%s:%u: Intel Onaltılık dosyasında hatalı uzun baÅŸlangıç adresi uzunluÄŸu" -#: ihex.c:456 +#: ihex.c:454 #, c-format msgid "%s:%u: bad extended linear address record length in Intel Hex file" -msgstr "%s:%u: Intel Onaltýlýk dosyasýnda hatalý uzun lineer adres kaydý uzunluðu" +msgstr "%s:%u: Intel Onaltılık dosyasında hatalı uzun lineer adres kaydı uzunluÄŸu" -#: ihex.c:473 +#: ihex.c:471 #, c-format msgid "%s:%u: bad extended linear start address length in Intel Hex file" -msgstr "%s:%u: Intel Onaltýlýk dosyasýnda hatalý uzun lineer baþlangýç adres uzunluðu" +msgstr "%s:%u: Intel Onaltılık dosyasında hatalı uzun lineer baÅŸlangıç adres uzunluÄŸu" -#: ihex.c:490 +#: ihex.c:488 #, c-format msgid "%s:%u: unrecognized ihex type %u in Intel Hex file\n" -msgstr "%s:%u: Intel Onaltýlýk dosyasýnda bilinmeyen onaltýlýk türü %u\n" +msgstr "%s:%u: Intel Onaltılık dosyasında bilinmeyen onaltılık türü %u\n" -#: ihex.c:610 +#: ihex.c:607 #, c-format msgid "%s: internal error in ihex_read_section" -msgstr "%s: ihex_read_section'da iç hata" +msgstr "%s: ihex_read_section'da iç hata" -#: ihex.c:645 +#: ihex.c:642 #, c-format msgid "%s: bad section length in ihex_read_section" -msgstr "%s: ihex_read_section'da hatalý bölüm uzunluðu" +msgstr "%s: ihex_read_section'da hatalı bölüm uzunluÄŸu" -#: ihex.c:863 +#: ihex.c:860 #, c-format -msgid "%s: address 0x%s out of range for Intex Hex file" -msgstr "%s: Intex Onaltýlýk dosyasý için 0x%s adresi kapsamdýþý" +msgid "%s: address 0x%s out of range for Intel Hex file" +msgstr "%s: Intex Onaltılık dosyası için 0x%s adresi kapsamdışı" #: libbfd.c:492 #, c-format msgid "not mapping: data=%lx mapped=%d\n" -msgstr "eþlenmeyen: veri=%lx eþleþen=%d\n" +msgstr "eÅŸlenmeyen: veri=%lx eÅŸleÅŸen=%d\n" #: libbfd.c:495 msgid "not mapping: env var not set\n" -msgstr "eþlenmeyen: çevre deðiþkeni atanmamýþ\n" +msgstr "eÅŸlenmeyen: çevre deÄŸiÅŸkeni atanmamış\n" -#: libbfd.c:1463 +#: libbfd.c:1466 #, c-format -msgid "Deprecated %s called" -msgstr "Geçerliliði kalkmýþ %s çaðrýldý" +msgid "Deprecated %s called at %s line %d in %s\n" +msgstr "GeçersizleÅŸmiÅŸ %s, %s'da, %d satırı, %s içerisinde çaÄŸrıldı\n" -#: libbfd.c:1465 +#: libbfd.c:1469 #, c-format -msgid " at %s line %d in %s\n" -msgstr "%s, %d satýrý, %s içerisinde\n" +msgid "Deprecated %s called\n" +msgstr "GeçerliliÄŸi kalkmış %s çaÄŸrıldı\n" -#: linker.c:1849 +#: linker.c:1873 #, c-format msgid "%s: indirect symbol `%s' to `%s' is a loop" -msgstr "%1$s: `%3$s'den endirekt sembol `%2$s'e çevrim" +msgstr "%1$s: `%3$s'den endirekt sembol `%2$s'e çevrim" -#: linker.c:2745 +#: linker.c:2776 #, c-format msgid "Attempt to do relocateable link with %s input and %s output" -msgstr "%s girdi ve %s çýktýsý ile yerdeðiþimli bað deneniyor" +msgstr "%s girdi ve %s çıktısı ile yerdeÄŸiÅŸimli baÄŸ deneniyor" -#: merge.c:897 +#: merge.c:892 #, c-format msgid "%s: access beyond end of merged section (%ld + %ld)" -msgstr "%s: karýþtýrýlmýþ bölümün sonundan ileride eriþim (%ld + %ld)" +msgstr "%s: karıştırılmış bölümün sonundan ileride eriÅŸim (%ld + %ld)" #: mmo.c:460 #, c-format msgid "%s: No core to allocate section name %s\n" -msgstr "%s: %s bölüm adýný ayýracak `core' yok\n" +msgstr "%s: %s bölüm adını ayıracak `core' yok\n" -#: mmo.c:537 +#: mmo.c:536 #, c-format msgid "%s: No core to allocate a symbol %d bytes long\n" -msgstr "%s: %d bayt uzunluðunda bir sembole yer ayýrmak için `core' yok\n" +msgstr "%s: %d bayt uzunluÄŸunda bir sembole yer ayırmak için `core' yok\n" -#: mmo.c:1190 +#: mmo.c:1245 #, c-format msgid "%s: invalid mmo file: initialization value for $255 is not `Main'\n" -msgstr "%s: geçersiz mmo dosyasý: $255 için baþlangýç deðeri `Main' deðil\n" +msgstr "%s: geçersiz mmo dosyası: $255 için baÅŸlangıç deÄŸeri `Main' deÄŸil\n" -#: mmo.c:1336 +#: mmo.c:1391 #, c-format msgid "%s: unsupported wide character sequence 0x%02X 0x%02X after symbol name starting with `%s'\n" msgstr "" -"%1$s: `%4$s' ile baþlayan sembol adýndan sonra desteklenmeyen\n" -" geniþ karakter dizisi 0x%2$02X 0x%3$02X\n" +"%1$s: `%4$s' ile baÅŸlayan sembol adından sonra desteklenmeyen\n" +" geniÅŸ karakter dizisi 0x%2$02X 0x%3$02X\n" -#: mmo.c:1571 +#: mmo.c:1633 #, c-format msgid "%s: invalid mmo file: unsupported lopcode `%d'\n" -msgstr "%s: geçersiz mmo dosyasý: desteklenmeyen lopkod `%d'\n" +msgstr "%s: geçersiz mmo dosyası: desteklenmeyen lopkod `%d'\n" -#: mmo.c:1581 +#: mmo.c:1643 #, c-format msgid "%s: invalid mmo file: expected YZ = 1 got YZ = %d for lop_quote\n" -msgstr "%s: geçersiz mmo dosyasý: YZ = 1 beklendi, lop_quote için YZ = %d bulundu\n" +msgstr "%s: geçersiz mmo dosyası: YZ = 1 beklendi, lop_quote için YZ = %d bulundu\n" -#: mmo.c:1617 +#: mmo.c:1679 #, c-format msgid "%s: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_loc\n" msgstr "" -"%s: geçersiz mmo dosyasý: z = 1 veya z = 2 beklendi, \n" -" lop_loc için z = %d bulundu\n" +"%s: geçersiz mmo dosyası: z = 1 veya z = 2 beklendi, \n" +" lop_loc için z = %d bulundu\n" -#: mmo.c:1663 +#: mmo.c:1725 #, c-format msgid "%s: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_fixo\n" -msgstr "%s: geçersiz mmo dosyasý: z = 1 veya z = 2 beklendi; lop_fixo için z = %d bulundu\n" +msgstr "%s: geçersiz mmo dosyası: z = 1 veya z = 2 beklendi; lop_fixo için z = %d bulundu\n" -#: mmo.c:1702 +#: mmo.c:1764 #, c-format msgid "%s: invalid mmo file: expected y = 0, got y = %d for lop_fixrx\n" -msgstr "%s: geçersiz mmo dosyasý: y = 0 beklendi; lop_fixrx için y = %d bulundu\n" +msgstr "%s: geçersiz mmo dosyası: y = 0 beklendi; lop_fixrx için y = %d bulundu\n" -#: mmo.c:1711 +#: mmo.c:1773 #, c-format msgid "%s: invalid mmo file: expected z = 16 or z = 24, got z = %d for lop_fixrx\n" msgstr "" -"%s: geçersiz mmo dosyasý: z = 16 veya z = 24 beklendi;\n" -" lop_fixrx için z = %d bulundu\n" +"%s: geçersiz mmo dosyası: z = 16 veya z = 24 beklendi;\n" +" lop_fixrx için z = %d bulundu\n" -#: mmo.c:1734 +#: mmo.c:1796 #, c-format msgid "%s: invalid mmo file: leading byte of operand word must be 0 or 1, got %d for lop_fixrx\n" msgstr "" -"%s: geçersiz mmo dosyasý: iþlenen word'un ilk baytý 0 veya 1 olmalý; \n" -" lop_fixrx için %d bulundu\n" +"%s: geçersiz mmo dosyası: iÅŸlenen word'un ilk baytı 0 veya 1 olmalı; \n" +" lop_fixrx için %d bulundu\n" -#: mmo.c:1757 +#: mmo.c:1819 #, c-format msgid "%s: cannot allocate file name for file number %d, %d bytes\n" -msgstr "%s: %d sayýlý dosya için dosya adý ayrýlamadý, %d bayt\n" +msgstr "%s: %d sayılı dosya için dosya adı ayrılamadı, %d bayt\n" -#: mmo.c:1777 +#: mmo.c:1839 #, c-format msgid "%s: invalid mmo file: file number %d `%s', was already entered as `%s'\n" -msgstr "%s: geçersiz mmo dosyasý: %d sayýlý dosya, `%s', zaten `%s' olarak girilmiþ\n" +msgstr "%s: geçersiz mmo dosyası: %d sayılı dosya, `%s', zaten `%s' olarak girilmiÅŸ\n" -#: mmo.c:1790 +#: mmo.c:1852 #, c-format msgid "%s: invalid mmo file: file name for number %d was not specified before use\n" msgstr "" -"%s: geçersiz mmo dosyasý: %d sayýsý için dosya adý kullanýmdan\n" -" önce belirtilmemiþ\n" +"%s: geçersiz mmo dosyası: %d sayısı için dosya adı kullanımdan\n" +" önce belirtilmemiÅŸ\n" -#: mmo.c:1896 +#: mmo.c:1958 #, c-format msgid "%s: invalid mmo file: fields y and z of lop_stab non-zero, y: %d, z: %d\n" msgstr "" -"%s: geçersiz mmo dosyasý: lop_stab'in y ve z alanlarý sýfýr deðil;\n" +"%s: geçersiz mmo dosyası: lop_stab'in y ve z alanları sıfır deÄŸil;\n" " y: %d, z: %d\n" -#: mmo.c:1932 +#: mmo.c:1994 #, c-format msgid "%s: invalid mmo file: lop_end not last item in file\n" -msgstr "%s: geçersiz mmo dosyasý: lop_end dosyadaki son girdi deðil\n" +msgstr "%s: geçersiz mmo dosyası: lop_end dosyadaki son girdi deÄŸil\n" -#: mmo.c:1945 +#: mmo.c:2007 #, c-format msgid "%s: invalid mmo file: YZ of lop_end (%ld) not equal to the number of tetras to the preceding lop_stab (%ld)\n" msgstr "" -"%s: geçersiz mmo dosyasý: lop_end'in YZ'si (%ld); bir önceki \n" -" lop_stab'in (%ld) dörtlü sayýsýna eþit deðil\n" +"%s: geçersiz mmo dosyası: lop_end'in YZ'si (%ld); bir önceki \n" +" lop_stab'in (%ld) dörtlü sayısına eÅŸit deÄŸil\n" -#: mmo.c:2610 +#: mmo.c:2670 #, c-format msgid "%s: invalid symbol table: duplicate symbol `%s'\n" -msgstr "%s: geçersiz sembol tablosu: tekrarlanmýþ sembol `%s'\n" +msgstr "%s: geçersiz sembol tablosu: tekrarlanmış sembol `%s'\n" -#: mmo.c:2898 +#: mmo.c:2921 #, c-format msgid "%s: Bad symbol definition: `Main' set to %s rather than the start address %s\n" msgstr "" -"%1$s: Hatalý sembol tanýmý: `Main' baþlangýç adresi %3$s yerine \n" -" %2$s olarak tanýmlanmýþ\n" +"%1$s: Hatalı sembol tanımı: `Main' baÅŸlangıç adresi %3$s yerine \n" +" %2$s olarak tanımlanmış\n" -#: mmo.c:2932 +#: mmo.c:3011 #, c-format msgid "%s: warning: symbol table too large for mmo, larger than 65535 32-bit words: %d. Only `Main' will be emitted.\n" msgstr "" -"%s: uyarý: sembol tablosu mmo için fazla büyük, 65535 32-bit word'den\n" -" fazla: %d. Yalnýz `Main' üretilecek. \n" +"%s: uyarı: sembol tablosu mmo için fazla büyük, 65535 32-bit word'den\n" +" fazla: %d. Yalnız `Main' üretilecek. \n" -#: mmo.c:2977 +#: mmo.c:3056 #, c-format msgid "%s: internal error, symbol table changed size from %d to %d words\n" -msgstr "%s: iç hata, sembol tablosu büyüklüðü %d'den %d word'e deðiþti\n" +msgstr "%s: iç hata, sembol tablosu büyüklüğü %d'den %d word'e deÄŸiÅŸti\n" -#: mmo.c:3032 +#: mmo.c:3111 #, c-format msgid "%s: internal error, internal register section %s had contents\n" -msgstr "%s: iç hata, %s iç yazmaç bölümü içerik taþýyor\n" +msgstr "%s: iç hata, %s iç yazmaç bölümü içerik taşıyor\n" -#: mmo.c:3084 +#: mmo.c:3163 #, c-format msgid "%s: no initialized registers; section length 0\n" -msgstr "%s: ilklenen yazmaç yok; bölüm uzunluðu 0\n" +msgstr "%s: ilklenen yazmaç yok; bölüm uzunluÄŸu 0\n" -#: mmo.c:3090 +#: mmo.c:3169 #, c-format msgid "%s: too many initialized registers; section length %ld\n" -msgstr "%s: çok fazla ilklenmiþ yazmaç; bölüm uzunluðu %ld\n" +msgstr "%s: çok fazla ilklenmiÅŸ yazmaç; bölüm uzunluÄŸu %ld\n" -#: mmo.c:3095 +#: mmo.c:3174 #, c-format msgid "%s: invalid start address for initialized registers of length %ld: 0x%lx%08lx\n" -msgstr "%s: %ld uzunluðunda ilklenmiþ yazmaçlar için hatalý baþlangýç adresi: 0x%lx%08lx\n" +msgstr "%s: %ld uzunluÄŸunda ilklenmiÅŸ yazmaçlar için hatalı baÅŸlangıç adresi: 0x%lx%08lx\n" -#: oasys.c:1036 +#: oasys.c:1029 #, c-format msgid "%s: can not represent section `%s' in oasys" -msgstr "%s: oasys'de `%s' bölümü gösterilemiyor" +msgstr "%s: oasys'de `%s' bölümü gösterilemiyor" #: osf-core.c:132 #, c-format msgid "Unhandled OSF/1 core file section type %d\n" -msgstr "Desteklenmeyen OSF/1 core dosyasý bölüm türü %d\n" +msgstr "Desteklenmeyen OSF/1 core dosyası bölüm türü %d\n" #: pe-mips.c:658 #, c-format @@ -1787,62 +2034,66 @@ msgstr "%s: `ld -r' PE MIPS nesneleri il #: pe-mips.c:794 #, c-format msgid "%s: unimplemented %s\n" -msgstr "%s: tamamlanmamýþ %s\n" +msgstr "%s: tamamlanmamış %s\n" #: pe-mips.c:820 #, c-format msgid "%s: jump too far away\n" -msgstr "%s: sýçrama fazla uzak\n" +msgstr "%s: sıçrama fazla uzak\n" #: pe-mips.c:847 #, c-format msgid "%s: bad pair/reflo after refhi\n" -msgstr "%s: refhi'den sonra hatalý çift/reflo\n" +msgstr "%s: refhi'den sonra hatalı çift/reflo\n" #. XXX code yet to be written. #: peicode.h:785 #, c-format msgid "%s: Unhandled import type; %x" -msgstr "%s: Desteklenmeyen ithal türü; %x" +msgstr "%s: Desteklenmeyen ithal türü; %x" #: peicode.h:790 #, c-format msgid "%s: Unrecognised import type; %x" -msgstr "%s: Tanýnmayan ithal türü; %x" +msgstr "%s: Tanınmayan ithal türü; %x" #: peicode.h:804 #, c-format msgid "%s: Unrecognised import name type; %x" -msgstr "%s: Tanýnmayan ithal isim türü; %x" +msgstr "%s: Tanınmayan ithal isim türü; %x" #: peicode.h:1162 #, c-format msgid "%s: Unrecognised machine type (0x%x) in Import Library Format archive" -msgstr "%s: Ýthal Kitaplýk Biçem (ILF) arþivinde tanýnmayan makina türü (0x%x) " +msgstr "%s: Ä°thal Kitaplık Biçem (ILF) arÅŸivinde tanınmayan makina türü (0x%x) " #: peicode.h:1174 #, c-format msgid "%s: Recognised but unhandled machine type (0x%x) in Import Library Format archive" -msgstr "%s: Ýthal Kitaplýk Biçem (ILF) arþivinde bilinen fakat desteklenmeyen makina türü (0x%x)" +msgstr "%s: Ä°thal Kitaplık Biçem (ILF) arÅŸivinde bilinen fakat desteklenmeyen makina türü (0x%x)" #: peicode.h:1191 #, c-format msgid "%s: size field is zero in Import Library Format header" -msgstr "%s: Ýthal Kitaplýk Biçem (ILF) baþlýðýnda boy alaný sýfýr" +msgstr "%s: Ä°thal Kitaplık Biçem (ILF) baÅŸlığında boy alanı sıfır" #: peicode.h:1219 #, c-format msgid "%s: string not null terminated in ILF object file." -msgstr "%s: ILF nesne dosyasýnda dizge boþ deðerle sonlanmamýþ." +msgstr "%s: ILF nesne dosyasında dizge boÅŸ deÄŸerle sonlanmamış." #: ppcboot.c:416 -msgid "\nppcboot header:\n" -msgstr "\nppcboot baþlýðý:\n" +msgid "" +"\n" +"ppcboot header:\n" +msgstr "" +"\n" +"ppcboot baÅŸlığı:\n" #: ppcboot.c:417 #, c-format msgid "Entry offset = 0x%.8lx (%ld)\n" -msgstr "Girdi göreli konumu = 0x%.8lx (%ld)\n" +msgstr "Girdi göreli konumu = 0x%.8lx (%ld)\n" #: ppcboot.c:418 #, c-format @@ -1852,702 +2103,807 @@ msgstr "Uzunluk = 0x%.8lx (% #: ppcboot.c:421 #, c-format msgid "Flag field = 0x%.2x\n" -msgstr "Bayrak alaný = 0x%.2x\n" +msgstr "Bayrak alanı = 0x%.2x\n" #: ppcboot.c:427 #, c-format msgid "Partition name = \"%s\"\n" -msgstr "Bölüm adý = \"%s\"\n" +msgstr "Bölüm adı = \"%s\"\n" #: ppcboot.c:446 #, c-format -msgid "\nPartition[%d] start = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }\n" -msgstr "\nBölüm[%d] baþlangýcý = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }\n" +msgid "" +"\n" +"Partition[%d] start = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }\n" +msgstr "" +"\n" +"Bölüm[%d] baÅŸlangıcı = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }\n" #: ppcboot.c:452 #, c-format msgid "Partition[%d] end = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }\n" -msgstr "Bölüm[%d] sonu = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }\n" +msgstr "Bölüm[%d] sonu = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }\n" #: ppcboot.c:458 #, c-format msgid "Partition[%d] sector = 0x%.8lx (%ld)\n" -msgstr "Bölüm[%d] sektörü = 0x%.8lx (%ld)\n" +msgstr "Bölüm[%d] sektörü = 0x%.8lx (%ld)\n" #: ppcboot.c:459 #, c-format msgid "Partition[%d] length = 0x%.8lx (%ld)\n" -msgstr "Bölüm[%d] uzunluðu = 0x%.8lx (%ld)\n" +msgstr "Bölüm[%d] uzunluÄŸu = 0x%.8lx (%ld)\n" -#: som.c:5402 +#: som.c:5398 msgid "som_sizeof_headers unimplemented" -msgstr "som_sizeof_headers tamamlanmamýþ" +msgstr "som_sizeof_headers tamamlanmamış" #: srec.c:301 #, c-format msgid "%s:%d: Unexpected character `%s' in S-record file\n" -msgstr "%s:%d: S-kayýt dosyasýnda beklenmeyen `%s' karakteri\n" +msgstr "%s:%d: S-kayıt dosyasında beklenmeyen `%s' karakteri\n" + +#: stabs.c:319 +#, c-format +msgid "%s(%s+0x%lx): Stabs entry has invalid string index." +msgstr "%s(%s+0x%lx): Stabs girdisinde geçersiz dizge indeksi." -#: syms.c:996 +#: syms.c:1044 msgid "Unsupported .stab relocation" -msgstr "Desteklenmeyen .stab yerdeðiþimi" +msgstr "Desteklenmeyen .stab yerdeÄŸiÅŸimi" #: vms-gsd.c:356 #, c-format msgid "bfd_make_section (%s) failed" -msgstr "bfd_make_section (%s) baþarýsýz" +msgstr "bfd_make_section (%s) baÅŸarısız" #: vms-gsd.c:371 #, c-format msgid "bfd_set_section_flags (%s, %x) failed" -msgstr "bfd_set_section_flags (%s, %x) baþarýsýz" +msgstr "bfd_set_section_flags (%s, %x) baÅŸarısız" #: vms-gsd.c:407 #, c-format msgid "Size mismatch section %s=%lx, %s=%lx" -msgstr "Boy uyumsuzluðu bölümü %s=%lx, %s=%lx" +msgstr "Boy uyumsuzluÄŸu bölümü %s=%lx, %s=%lx" -#: vms-gsd.c:704 +#: vms-gsd.c:702 #, c-format msgid "unknown gsd/egsd subtype %d" -msgstr "bilinmeyen gsd/egsd alt türü %d" +msgstr "bilinmeyen gsd/egsd alt türü %d" #: vms-hdr.c:406 msgid "Object module NOT error-free !\n" -msgstr "Nesne modülü hatasýz DEÐÝL !\n" +msgstr "Nesne modülü hatasız DEĞİL !\n" #: vms-misc.c:543 #, c-format msgid "Stack overflow (%d) in _bfd_vms_push" -msgstr "_bfd_vms_push'da yýðýt taþmasý (%d)" +msgstr "_bfd_vms_push'da yığıt taÅŸması (%d)" #: vms-misc.c:561 msgid "Stack underflow in _bfd_vms_pop" -msgstr "_bfd_vms_pop'da yýðýt alt taþmasý" +msgstr "_bfd_vms_pop'da yığıt alt taÅŸması" #: vms-misc.c:919 msgid "_bfd_vms_output_counted called with zero bytes" -msgstr "_bfd_vms_output_counted sýfýr bayt ile çaðrýldý" +msgstr "_bfd_vms_output_counted sıfır bayt ile çaÄŸrıldı" #: vms-misc.c:924 msgid "_bfd_vms_output_counted called with too many bytes" -msgstr "_bfd_vms_output_counted fazla bayt ile çaðrýldý" +msgstr "_bfd_vms_output_counted fazla bayt ile çaÄŸrıldı" #: vms-misc.c:1055 #, c-format msgid "Symbol %s replaced by %s\n" -msgstr "%s sembolü %s ile deðiþtirildi\n" +msgstr "%s sembolü %s ile deÄŸiÅŸtirildi\n" #: vms-misc.c:1117 #, c-format msgid "failed to enter %s" -msgstr "%s'e giriþ baþarýsýz" +msgstr "%s'e giriÅŸ baÅŸarısız" -#: vms-tir.c:78 +#: vms-tir.c:81 msgid "No Mem !" -msgstr "Hafýza Yok !" - -#: vms-tir.c:313 -msgid "Bad section index in ETIR_S_C_STA_PQ" -msgstr "ETIR_S_C_STA_PQ'de hatalý bölüm indeksi" +msgstr "Hafıza Yok !" -#: vms-tir.c:328 +#: vms-tir.c:362 #, c-format -msgid "Unsupported STA cmd %d" -msgstr "Desteklenmeyen STA komutu %d" +msgid "bad section index in %s" +msgstr "%s içinde hatalı bölüm indeksi" -#: vms-tir.c:333 vms-tir.c:1301 +#: vms-tir.c:375 #, c-format -msgid "Reserved STA cmd %d" -msgstr "Ayrýlmýþ STA komutu %d" +msgid "unsupported STA cmd %s" +msgstr "Desteklenmeyen STA komutu %s" -#: vms-tir.c:443 +#: vms-tir.c:380 vms-tir.c:1240 #, c-format -msgid "ETIR_S_C_STO_GBL: no symbol \"%s\"" -msgstr "ETIR_S_C_STO_GBL: sembol yok \"%s\"" +msgid "reserved STA cmd %d" +msgstr "Ayrılmış STA komutu %d" -#: vms-tir.c:465 +#: vms-tir.c:491 vms-tir.c:514 #, c-format -msgid "ETIR_S_C_STO_CA: no symbol \"%s\"" -msgstr "ETIR_S_C_STO_CA: sembol yok \"%s\"" - -#: vms-tir.c:478 -msgid "ETIR_S_C_STO_RB/AB: Not supported" -msgstr "ETIR_S_C_STO_RB/AB: Desteklenmiyor" - -#: vms-tir.c:538 -msgid "ETIR_S_C_STO_LP_PSB: Not supported" -msgstr "ETIR_S_C_STO_LP_PSB: Desteklenmiyor" - -#: vms-tir.c:544 -msgid "ETIR_S_C_STO_HINT_GBL: not implemented" -msgstr "ETIR_S_C_STO_HINT_GBL: tamamlanmamýþ" - -#: vms-tir.c:550 -msgid "ETIR_S_C_STO_HINT_PS: not implemented" -msgstr "ETIR_S_C_STO_HINT_PS: tamamlanmamýþ" +msgid "%s: no symbol \"%s\"" +msgstr "%s: \"%s\" sembolü yok" -#: vms-tir.c:554 vms-tir.c:1473 +#. unsigned shift +#. rotate +#. Redefine symbol to current location. +#. Define a literal. +#: vms-tir.c:581 vms-tir.c:693 vms-tir.c:803 vms-tir.c:821 vms-tir.c:829 +#: vms-tir.c:838 vms-tir.c:1563 #, c-format -msgid "Reserved STO cmd %d" -msgstr "Ayrýlmýþ STO komutu %d" +msgid "%s: not supported" +msgstr "%s: desteklenmiyor" -#: vms-tir.c:667 -msgid "ETIR_S_C_OPR_INSV: Not supported" -msgstr "ETIR_S_C_OPR_INSV: Desteklenmiyor" - -#: vms-tir.c:685 -msgid "ETIR_S_C_OPR_USH: Not supported" -msgstr "ETIR_S_C_OPR_USH: Desteklenmiyor" - -#: vms-tir.c:691 -msgid "ETIR_S_C_OPR_ROT: Not supported" -msgstr "ETIR_S_C_OPR_ROT: Desteklenmiyor" - -#: vms-tir.c:710 -msgid "ETIR_S_C_OPR_REDEF: Not supported" -msgstr "ETIR_S_C_OPR_REDEF: Desteklenmiyor" - -#: vms-tir.c:716 -msgid "ETIR_S_C_OPR_DFLIT: Not supported" -msgstr "ETIR_S_C_OPR_DFLIT: Desteklenmiyor" - -#: vms-tir.c:720 vms-tir.c:1668 +#: vms-tir.c:586 vms-tir.c:1418 #, c-format -msgid "Reserved OPR cmd %d" -msgstr "Ayrýlmýþ OPR komutu %d" +msgid "%s: not implemented" +msgstr "%s: tamamlanmamış" -#: vms-tir.c:788 vms-tir.c:1737 +#: vms-tir.c:590 vms-tir.c:1422 #, c-format -msgid "Reserved CTL cmd %d" -msgstr "Ayrýlmýþ CTL komutu %d" - -#: vms-tir.c:816 -msgid "ETIR_S_C_STC_LP: not supported" -msgstr "ETIR_S_C_STC_LP: desteklenmiyor" +msgid "reserved STO cmd %d" +msgstr "Ayrılmış STO komutu %d" -#: vms-tir.c:834 -msgid "ETIR_S_C_STC_GBL: not supported" -msgstr "ETIR_S_C_STC_GBL: desteklenmiyor" - -#: vms-tir.c:842 -msgid "ETIR_S_C_STC_GCA: not supported" -msgstr "ETIR_S_C_STC_GCA: desteklenmiyor" +#: vms-tir.c:708 vms-tir.c:1568 +#, c-format +msgid "reserved OPR cmd %d" +msgstr "Ayrılmış OPR komutu %d" -#: vms-tir.c:851 -msgid "ETIR_S_C_STC_PS: not supported" -msgstr "ETIR_S_C_STC_PS: desteklenmiyor" +#: vms-tir.c:776 vms-tir.c:1632 +#, c-format +msgid "reserved CTL cmd %d" +msgstr "Ayrılmış CTL komutu %d" -#. -#. * stack byte from image -#. * arg: - -#. * -#. -#: vms-tir.c:1199 -msgid "Stack-from-image not implemented" -msgstr "Görüntüden-yýðýt tamamlanmamýþ" +#. stack byte from image +#. arg: none. +#: vms-tir.c:1148 +msgid "stack-from-image not implemented" +msgstr "Görüntüden-yığıt tamamlanmamış" -#: vms-tir.c:1219 -msgid "Stack-entry-mask not fully implemented" -msgstr "Yýðýn girdi maský tamamlanmamýþ" +#: vms-tir.c:1166 +msgid "stack-entry-mask not fully implemented" +msgstr "Yığın girdi maskı tamamlanmamış" +#. compare procedure argument +#. arg: cs symbol name +#. by argument index +#. da argument descriptor #. -#. * compare procedure argument -#. * arg: cs symbol name -#. * by argument index -#. * da argument descriptor -#. * -#. * compare argument descriptor with symbol argument (ARG$V_PASSMECH) -#. * and stack TRUE (args match) or FALSE (args dont match) value -#. -#: vms-tir.c:1235 +#. compare argument descriptor with symbol argument (ARG$V_PASSMECH) +#. and stack TRUE (args match) or FALSE (args dont match) value. +#: vms-tir.c:1180 msgid "PASSMECH not fully implemented" -msgstr "PASSMECH tamamlanmamýþ" +msgstr "PASSMECH tamamlanmamış" -#: vms-tir.c:1256 -msgid "Stack-local-symbol not fully implemented" -msgstr "Yerel sembol yýðýtý tamamlanmamýþ" +#: vms-tir.c:1199 +msgid "stack-local-symbol not fully implemented" +msgstr "Yerel sembol yığıtı tamamlanmamış" -#: vms-tir.c:1271 -msgid "Stack-literal not fully implemented" -msgstr "Yýðýt sabiti tamamlanmamýþ" +#: vms-tir.c:1212 +msgid "stack-literal not fully implemented" +msgstr "Yığıt sabiti tamamlanmamış" -#: vms-tir.c:1294 -msgid "Stack-local-symbol-entry-point-mask not fully implemented" -msgstr "Yýðýn yerel sembol girdi nokta maský tamamlanmamýþ" +#: vms-tir.c:1233 +msgid "stack-local-symbol-entry-point-mask not fully implemented" +msgstr "Yığın yerel sembol girdi noktası maskı tamamlanmamış" -#: vms-tir.c:1469 +#: vms-tir.c:1510 vms-tir.c:1522 vms-tir.c:1534 vms-tir.c:1546 vms-tir.c:1611 +#: vms-tir.c:1619 vms-tir.c:1627 #, c-format -msgid "Unimplemented STO cmd %d" -msgstr "Tamamlanmamýþ STO komutu %d" - -#: vms-tir.c:1608 -msgid "TIR_S_C_OPR_ASH incomplete" -msgstr "TIR_S_C_OPR_ASH tamamlanmamýþ" +msgid "%s: not fully implemented" +msgstr "%s: tamamlanmamış" -#: vms-tir.c:1622 -msgid "TIR_S_C_OPR_USH incomplete" -msgstr "TIR_S_C_OPR_USH tamamlanmamýþ" - -#: vms-tir.c:1636 -msgid "TIR_S_C_OPR_ROT incomplete" -msgstr "TIR_S_C_OPR_ROT tamamlanmamýþ" - -#. -#. * redefine symbol to current location -#. -#: vms-tir.c:1657 -msgid "TIR_S_C_OPR_REDEF not supported" -msgstr "TIR_S_C_OPR_REDEF desteklenmiyor" - -#. -#. * define a literal -#. -#: vms-tir.c:1664 -msgid "TIR_S_C_OPR_DFLIT not supported" -msgstr "TIR_S_C_OPR_DFLIT desteklenmiyor" - -#: vms-tir.c:1718 -msgid "TIR_S_C_CTL_DFLOC not fully implemented" -msgstr "TIR_S_C_CTL_DFLOC tamamlanmamýþ" - -#: vms-tir.c:1726 -msgid "TIR_S_C_CTL_STLOC not fully implemented" -msgstr "TIR_S_C_CTL_STLOC tamamlanmamýþ" - -#: vms-tir.c:1734 -msgid "TIR_S_C_CTL_STKDL not fully implemented" -msgstr "TIR_S_C_CTL_STKDL tamamlanmamýþ" - -#: vms-tir.c:1791 +#: vms-tir.c:1684 #, c-format -msgid "Obj code %d not found" -msgstr "Nesne kodu %d bulunmadý" +msgid "obj code %d not found" +msgstr "Nesne kodu %d bulunmadı" -#: vms-tir.c:2137 +#: vms-tir.c:2019 #, c-format msgid "SEC_RELOC with no relocs in section %s" -msgstr "%s bölümünde yerdeðiþim olmaksýzýn SEC_RELOC" +msgstr "%s bölümünde yerdeÄŸiÅŸim olmaksızın SEC_RELOC" -#: vms-tir.c:2424 +#: vms-tir.c:2307 #, c-format msgid "Unhandled relocation %s" -msgstr "Desteklenmeyen yerdeðiþim %s" +msgstr "Desteklenmeyen yerdeÄŸiÅŸim %s" -#: xcofflink.c:1241 +#: xcofflink.c:1243 #, c-format msgid "%s: `%s' has line numbers but no enclosing section" -msgstr "%s: `%s' satýr numaralarýna sahip fakat onu içeren bölümü yok" +msgstr "%s: `%s' satır numaralarına sahip fakat onu içeren bölümü yok" -#: xcofflink.c:1294 +#: xcofflink.c:1296 #, c-format msgid "%s: class %d symbol `%s' has no aux entries" -msgstr "%s: sýnýf %d sembol `%s'un alternatif girdileri yok" +msgstr "%s: sınıf %d sembol `%s'un alternatif girdileri yok" -#: xcofflink.c:1317 +#: xcofflink.c:1319 #, c-format msgid "%s: symbol `%s' has unrecognized csect type %d" -msgstr "%s: `%s' sembolünde bilinmeyen csect türü %d var" +msgstr "%s: `%s' sembolünde bilinmeyen csect türü %d var" -#: xcofflink.c:1329 +#: xcofflink.c:1331 #, c-format msgid "%s: bad XTY_ER symbol `%s': class %d scnum %d scnlen %d" -msgstr "%s: hatalý XTY_ER sembolü `%s': sýnýf %d scnum %d scnlen %d" +msgstr "%s: hatalı XTY_ER sembolü `%s': sınıf %d scnum %d scnlen %d" -#: xcofflink.c:1365 +#: xcofflink.c:1367 #, c-format msgid "%s: XMC_TC0 symbol `%s' is class %d scnlen %d" -msgstr "%s: XMC_TC0 sembolü `%s': sýnýf %d scnlen %d" +msgstr "%s: XMC_TC0 sembolü `%s': sınıf %d scnlen %d" -#: xcofflink.c:1517 +#: xcofflink.c:1519 #, c-format msgid "%s: csect `%s' not in enclosing section" -msgstr "%s: csect `%s' onu içeren bölümde deðil" +msgstr "%s: csect `%s' onu içeren bölümde deÄŸil" -#: xcofflink.c:1624 +#: xcofflink.c:1626 #, c-format msgid "%s: misplaced XTY_LD `%s'" -msgstr "%s: XTY_LD `%s'yanlýþ yerde" +msgstr "%s: XTY_LD `%s'yanlış yerde" -#: xcofflink.c:1948 +#: xcofflink.c:1957 #, c-format msgid "%s: reloc %s:%d not in csect" -msgstr "%s: yerdeðiþim %s:%d csect içinde deðil" +msgstr "%s: yerdeÄŸiÅŸim %s:%d csect içinde deÄŸil" -#: xcofflink.c:2083 +#: xcofflink.c:2092 #, c-format msgid "%s: XCOFF shared object when not producing XCOFF output" -msgstr "%s: XCOFF çýktýsý oluþturulmazken XCOFF paylaþýmlý nesnesi" +msgstr "%s: XCOFF çıktısı oluÅŸturulmazken XCOFF paylaşımlı nesnesi" -#: xcofflink.c:2104 +#: xcofflink.c:2113 #, c-format msgid "%s: dynamic object with no .loader section" -msgstr "%s: .loader bölümü olmayan dinamik nesne" +msgstr "%s: .loader bölümü olmayan dinamik nesne" -#: xcofflink.c:2749 +#: xcofflink.c:2758 #, c-format msgid "%s: no such symbol" -msgstr "%s: böyle bir sembol yok" +msgstr "%s: böyle bir sembol yok" -#: xcofflink.c:2890 +#: xcofflink.c:2891 msgid "error: undefined symbol __rtinit" -msgstr "hata: tanýmlanmamýþ sembol __rtinit" +msgstr "hata: tanımlanmamış sembol __rtinit" -#: xcofflink.c:3458 +#: xcofflink.c:3453 #, c-format msgid "warning: attempt to export undefined symbol `%s'" -msgstr "uyarý: tanýmlanmamýþ `%s' sembolünü ihraç denemesi" +msgstr "uyarı: tanımlanmamış `%s' sembolünü ihraç denemesi" -#: xcofflink.c:4452 +#: xcofflink.c:4447 #, c-format msgid "TOC overflow: 0x%lx > 0x10000; try -mminimal-toc when compiling" -msgstr "TOC taþmasý: 0x%lx > 0x10000; -mminimal-toc ile derlemeyi deneyin" +msgstr "TOC taÅŸması: 0x%lx > 0x10000; -mminimal-toc ile derlemeyi deneyin" -#: xcofflink.c:5292 xcofflink.c:5754 xcofflink.c:5816 xcofflink.c:6117 +#: xcofflink.c:5287 xcofflink.c:5756 xcofflink.c:5818 xcofflink.c:6119 #, c-format msgid "%s: loader reloc in unrecognized section `%s'" -msgstr "%s: bilinmeyen `%s' bölümünde yükleyici yerdeðiþimi" +msgstr "%s: bilinmeyen `%s' bölümünde yükleyici yerdeÄŸiÅŸimi" -#: xcofflink.c:5314 xcofflink.c:6128 +#: xcofflink.c:5309 xcofflink.c:6130 #, c-format msgid "%s: `%s' in loader reloc but not loader sym" -msgstr "%s: `%s' yükleyici yerdeðiþiminde fakat yükleyici sembolü deðil" +msgstr "%s: `%s' yükleyici yerdeÄŸiÅŸiminde fakat yükleyici sembolü deÄŸil" -#: xcofflink.c:5329 +#: xcofflink.c:5324 #, c-format msgid "%s: loader reloc in read-only section %s" -msgstr "%s: %s salt-okunur bölümünde yükleyici yerdeðiþimi" +msgstr "%s: %s salt-okunur bölümünde yükleyici yerdeÄŸiÅŸimi" -#: elf32-ia64.c:2190 elf64-ia64.c:2190 +#: elf32-ia64.c:2222 elf64-ia64.c:2222 msgid "@pltoff reloc against local symbol" msgstr "yerel sembole @pltoff yerdegisimi" -#: elf32-ia64.c:2248 elf64-ia64.c:2248 -msgid "non-zero addend in @fptr reloc" -msgstr "@fptr yerdeðiþiminde sýfýr olmayan eklenti" - -#: elf32-ia64.c:3414 elf64-ia64.c:3414 +#: elf32-ia64.c:3562 elf64-ia64.c:3562 #, c-format msgid "%s: short data segment overflowed (0x%lx >= 0x400000)" -msgstr "%s: kýsa veri bölümünde taþma (0x%lx >= 0x400000)" +msgstr "%s: kısa veri bölümünde taÅŸma (0x%lx >= 0x400000)" -#: elf32-ia64.c:3425 elf64-ia64.c:3425 +#: elf32-ia64.c:3573 elf64-ia64.c:3573 #, c-format msgid "%s: __gp does not cover short data segment" -msgstr "%s: __gp kýsa veri bölümünü kapsamýyor" +msgstr "%s: __gp kısa veri bölümünü kapsamıyor" -#: elf32-ia64.c:3729 elf64-ia64.c:3729 +#: elf32-ia64.c:3858 elf64-ia64.c:3858 #, c-format msgid "%s: linking non-pic code in a shared library" -msgstr "%s: pic olmayan kod paylaþmalý kitaplýkta baðlanýyor" +msgstr "%s: pic olmayan kod paylaÅŸmalı kitaplıkta baÄŸlanıyor" -#: elf32-ia64.c:3762 elf64-ia64.c:3762 +#: elf32-ia64.c:3891 elf64-ia64.c:3891 #, c-format msgid "%s: @gprel relocation against dynamic symbol %s" -msgstr "%s: %s dinamik sembolüne @gprel yerdeðiþimi" +msgstr "%s: %s dinamik sembolüne @gprel yerdeÄŸiÅŸimi" -#: elf32-ia64.c:3901 elf64-ia64.c:3901 +#: elf32-ia64.c:4030 elf64-ia64.c:4030 #, c-format msgid "%s: dynamic relocation against speculation fixup" -msgstr "%s: kuþkulu düzeltmeye dinamik yerdeðiþim" +msgstr "%s: kuÅŸkulu düzeltmeye dinamik yerdeÄŸiÅŸim" -#: elf32-ia64.c:3909 elf64-ia64.c:3909 +#: elf32-ia64.c:4038 elf64-ia64.c:4038 #, c-format msgid "%s: speculation fixup against undefined weak symbol" -msgstr "%s: tanýmlanmamýþ gevþek sembole tartýþmalý düzeltme" +msgstr "%s: tanımlanmamış gevÅŸek sembole tartışmalı düzeltme" -#: elf32-ia64.c:4093 elf64-ia64.c:4093 +#: elf32-ia64.c:4271 elf64-ia64.c:4271 msgid "unsupported reloc" -msgstr "desteklenmeyen yerdeðiþim" +msgstr "desteklenmeyen yerdeÄŸiÅŸim" -#: elf32-ia64.c:4373 elf64-ia64.c:4373 +#: elf32-ia64.c:4551 elf64-ia64.c:4551 #, c-format msgid "%s: linking trap-on-NULL-dereference with non-trapping files" -msgstr "%s: NULL-halinde-tuzakla karþý-baþvurusu tuzaklamayan dosyalarla baðlandý" +msgstr "%s: NULL-halinde-tuzakla karşı-baÅŸvurusu tuzaklamayan dosyalarla baÄŸlandı" -#: elf32-ia64.c:4382 elf64-ia64.c:4382 +#: elf32-ia64.c:4560 elf64-ia64.c:4560 #, c-format msgid "%s: linking big-endian files with little-endian files" -msgstr "%s: büyük sonlu dosyalar küçük sonlu dosyalarla baðlanýyor" +msgstr "%s: büyük sonlu dosyalar küçük sonlu dosyalarla baÄŸlanıyor" -#: elf32-ia64.c:4391 elf64-ia64.c:4391 +#: elf32-ia64.c:4569 elf64-ia64.c:4569 #, c-format msgid "%s: linking 64-bit files with 32-bit files" -msgstr "%s: 64 bitlik dosyalar 32 bitlik dosyalarla baðlanýyor" +msgstr "%s: 64 bitlik dosyalar 32 bitlik dosyalarla baÄŸlanıyor" -#: elf32-ia64.c:4400 elf64-ia64.c:4400 +#: elf32-ia64.c:4578 elf64-ia64.c:4578 #, c-format msgid "%s: linking constant-gp files with non-constant-gp files" -msgstr "%s: constant-gp dosyalarý constant-gp olmayan dosyalarla baðlanýyor" +msgstr "%s: constant-gp dosyaları constant-gp olmayan dosyalarla baÄŸlanıyor" -#: elf32-ia64.c:4410 elf64-ia64.c:4410 +#: elf32-ia64.c:4588 elf64-ia64.c:4588 #, c-format msgid "%s: linking auto-pic files with non-auto-pic files" -msgstr "%s: auto-pic dosyalarý auto-pic olmayan dosyalarla baðlanýyor" +msgstr "%s: auto-pic dosyaları auto-pic olmayan dosyalarla baÄŸlanıyor" -#: peigen.c:964 pepigen.c:964 +#: peigen.c:962 pepigen.c:962 #, c-format msgid "%s: line number overflow: 0x%lx > 0xffff" -msgstr "%s: satýr numarasý taþmasý: 0x%lx > 0xffff" +msgstr "%s: satır numarası taÅŸması: 0x%lx > 0xffff" -#: peigen.c:981 pepigen.c:981 +#: peigen.c:979 pepigen.c:979 #, c-format msgid "%s: reloc overflow 1: 0x%lx > 0xffff" -msgstr "%s: yerdeðiþim taþmasý 1: 0x%lx > 0xffff" +msgstr "%s: yerdeÄŸiÅŸim taÅŸması 1: 0x%lx > 0xffff" -#: peigen.c:995 pepigen.c:995 +#: peigen.c:993 pepigen.c:993 msgid "Export Directory [.edata (or where ever we found it)]" -msgstr "Ýhraç Dizini [.edata (veya nerede bulundu ise)]" +msgstr "Ä°hraç Dizini [.edata (veya nerede bulundu ise)]" -#: peigen.c:996 pepigen.c:996 +#: peigen.c:994 pepigen.c:994 msgid "Import Directory [parts of .idata]" -msgstr "Ýthal Dizini [.idata'nýn parçalarý]" +msgstr "Ä°thal Dizini [.idata'nın parçaları]" -#: peigen.c:997 pepigen.c:997 +#: peigen.c:995 pepigen.c:995 msgid "Resource Directory [.rsrc]" msgstr "Kaynak Dizini [.rsrc]" -#: peigen.c:998 pepigen.c:998 +#: peigen.c:996 pepigen.c:996 msgid "Exception Directory [.pdata]" -msgstr "Ýstisna Dizini [.pdata]" +msgstr "Ä°stisna Dizini [.pdata]" -#: peigen.c:999 pepigen.c:999 +#: peigen.c:997 pepigen.c:997 msgid "Security Directory" -msgstr "Güvenlik Dizini" +msgstr "Güvenlik Dizini" -#: peigen.c:1000 pepigen.c:1000 +#: peigen.c:998 pepigen.c:998 msgid "Base Relocation Directory [.reloc]" -msgstr "Temel Yerdeðiþim Dizini [.reloc]" +msgstr "Temel YerdeÄŸiÅŸim Dizini [.reloc]" -#: peigen.c:1001 pepigen.c:1001 +#: peigen.c:999 pepigen.c:999 msgid "Debug Directory" -msgstr "Hata Ayýklama Dizini" +msgstr "Hata Ayıklama Dizini" -#: peigen.c:1002 pepigen.c:1002 +#: peigen.c:1000 pepigen.c:1000 msgid "Description Directory" -msgstr "Açýklama Dizini" +msgstr "Açıklama Dizini" -#: peigen.c:1003 pepigen.c:1003 +#: peigen.c:1001 pepigen.c:1001 msgid "Special Directory" -msgstr "Özel Dizin" +msgstr "Özel Dizin" -#: peigen.c:1004 pepigen.c:1004 +#: peigen.c:1002 pepigen.c:1002 msgid "Thread Storage Directory [.tls]" msgstr "Dal Saklama Dizini [.tls]" -#: peigen.c:1005 pepigen.c:1005 +#: peigen.c:1003 pepigen.c:1003 msgid "Load Configuration Directory" -msgstr "Ayar Yükleme Dizini" +msgstr "Ayar Yükleme Dizini" -#: peigen.c:1006 pepigen.c:1006 +#: peigen.c:1004 pepigen.c:1004 msgid "Bound Import Directory" -msgstr "Sýnýr Ýthal Dizini" +msgstr "Sınır Ä°thal Dizini" -#: peigen.c:1007 pepigen.c:1007 +#: peigen.c:1005 pepigen.c:1005 msgid "Import Address Table Directory" -msgstr "Adres Tablosu Ýthal Dizini" +msgstr "Adres Tablosu Ä°thal Dizini" -#: peigen.c:1008 pepigen.c:1008 +#: peigen.c:1006 pepigen.c:1006 msgid "Delay Import Directory" -msgstr "Gecikmeli Ýthal Dizini" +msgstr "Gecikmeli Ä°thal Dizini" -#: peigen.c:1009 peigen.c:1010 pepigen.c:1009 pepigen.c:1010 +#: peigen.c:1007 peigen.c:1008 pepigen.c:1007 pepigen.c:1008 msgid "Reserved" -msgstr "Ayrýlmýþ" +msgstr "Ayrılmış" -#: peigen.c:1073 pepigen.c:1073 -msgid "\nThere is an import table, but the section containing it could not be found\n" -msgstr "\nBir ithal tablosu var, fakat onu içeren bölüm bulunamadý\n" +#: peigen.c:1071 pepigen.c:1071 +msgid "" +"\n" +"There is an import table, but the section containing it could not be found\n" +msgstr "" +"\n" +"Bir ithal tablosu var, fakat onu içeren bölüm bulunamadı\n" -#: peigen.c:1078 pepigen.c:1078 +#: peigen.c:1076 pepigen.c:1076 #, c-format -msgid "\nThere is an import table in %s at 0x%lx\n" -msgstr "\n%s içerisinde 0x%lx'de bir ithal tablosu var\n" +msgid "" +"\n" +"There is an import table in %s at 0x%lx\n" +msgstr "" +"\n" +"%s içerisinde 0x%lx'de bir ithal tablosu var\n" -#: peigen.c:1115 pepigen.c:1115 +#: peigen.c:1113 pepigen.c:1113 #, c-format -msgid "\nFunction descriptor located at the start address: %04lx\n" -msgstr "\nBaþlangýç adresinde iþlev betimleyicisi bulundu: %04lx\n" +msgid "" +"\n" +"Function descriptor located at the start address: %04lx\n" +msgstr "" +"\n" +"BaÅŸlangıç adresinde iÅŸlev betimleyicisi bulundu: %04lx\n" -#: peigen.c:1118 pepigen.c:1118 +#: peigen.c:1116 pepigen.c:1116 #, c-format msgid "\tcode-base %08lx toc (loadable/actual) %08lx/%08lx\n" -msgstr "\tkod temeli %08lx toc (yüklenebilir/gerçek) %08lx/%08lx\n" +msgstr "\tkod temeli %08lx toc (yüklenebilir/gerçek) %08lx/%08lx\n" -#: peigen.c:1124 pepigen.c:1124 -msgid "\nNo reldata section! Function descriptor not decoded.\n" -msgstr "\nReldata bölümü yok! Ýþlev betimleyicisi çözümlenemedi.\n" +#: peigen.c:1122 pepigen.c:1122 +msgid "" +"\n" +"No reldata section! Function descriptor not decoded.\n" +msgstr "" +"\n" +"Reldata bölümü yok! Ä°ÅŸlev betimleyicisi çözümlenemedi.\n" -#: peigen.c:1129 pepigen.c:1129 +#: peigen.c:1127 pepigen.c:1127 #, c-format -msgid "\nThe Import Tables (interpreted %s section contents)\n" -msgstr "\nÝthal Tablolarý (%s bölüm içeriði çözümlendi)\n" - -#: peigen.c:1132 pepigen.c:1132 -msgid " vma: Hint Time Forward DLL First\n" -msgstr " vma: Ýpucu Zaman Ýleri DLL Ýlk\n" +msgid "" +"\n" +"The Import Tables (interpreted %s section contents)\n" +msgstr "" +"\n" +"Ä°thal Tabloları (%s bölüm içeriÄŸi çözümlendi)\n" -#: peigen.c:1134 pepigen.c:1134 -msgid " Table Stamp Chain Name Thunk\n" -msgstr " Tablo Damga Zincir Ýsim Parça\n" +#: peigen.c:1130 pepigen.c:1130 +msgid "" +" vma: Hint Time Forward DLL First\n" +" Table Stamp Chain Name Thunk\n" +msgstr "" +" vma: Ä°pucu Zaman Ä°leri DLL Ä°lk\n" +" Tablo Damga Zincir Ä°sim Parça\n" -#: peigen.c:1182 pepigen.c:1182 +#: peigen.c:1181 pepigen.c:1181 #, c-format -msgid "\n\tDLL Name: %s\n" -msgstr "\n\tDLL Adý: %s\n" - -#: peigen.c:1186 peigen.c:1249 pepigen.c:1186 pepigen.c:1249 -msgid "\tvma: Hint/Ord Member-Name\n" -msgstr "\tvma: Ýpucu/Sýra Üye-Adý\n" - -#: peigen.c:1248 pepigen.c:1248 -msgid "\tThe Import Address Table (difference found)\n" -msgstr "\tÝthal Adres Tablosu (fark bulundu)\n" +msgid "" +"\n" +"\tDLL Name: %s\n" +msgstr "" +"\n" +"\tDLL Adı: %s\n" -#: peigen.c:1255 pepigen.c:1255 -msgid "\t>>> Ran out of IAT members!\n" -msgstr "\t>>> IAT üyeleri bitti!\n" +#: peigen.c:1192 pepigen.c:1192 +msgid "\tvma: Hint/Ord Member-Name Bound-To\n" +msgstr "\tvma: Ä°pucu/Sıra Ãœye-Adı Sınır\n" -#: peigen.c:1273 pepigen.c:1273 -msgid "\tThe Import Address Table is identical\n" -msgstr "\tÝthal Adres Tablosu ayný\n" +#: peigen.c:1217 pepigen.c:1217 +msgid "" +"\n" +"There is a first thunk, but the section containing it could not be found\n" +msgstr "" +"\n" +"Bir ilk parça var, fakat onu içeren bölüm bulunamadı\n" -#: peigen.c:1345 pepigen.c:1345 -msgid "\nThere is an export table, but the section containing it could not be found\n" -msgstr "\nBir ihraç tablosu var, fakat onu içeren bölüm bulunamadý\n" +#: peigen.c:1357 pepigen.c:1357 +msgid "" +"\n" +"There is an export table, but the section containing it could not be found\n" +msgstr "" +"\n" +"Bir ihraç tablosu var, fakat onu içeren bölüm bulunamadı\n" -#: peigen.c:1350 pepigen.c:1350 +#: peigen.c:1362 pepigen.c:1362 #, c-format -msgid "\nThere is an export table in %s at 0x%lx\n" -msgstr "\n%s içinde 0x%lx'de bir ihraç tablosu var\n" +msgid "" +"\n" +"There is an export table in %s at 0x%lx\n" +msgstr "" +"\n" +"%s içinde 0x%lx'de bir ihraç tablosu var\n" -#: peigen.c:1381 pepigen.c:1381 +#: peigen.c:1393 pepigen.c:1393 #, c-format -msgid "\nThe Export Tables (interpreted %s section contents)\n\n" -msgstr "\nÝhraç Tablolarý (%s bölüm içeriði çözümlendi)\n\n" +msgid "" +"\n" +"The Export Tables (interpreted %s section contents)\n" +"\n" +msgstr "" +"\n" +"Ä°hraç Tabloları (%s bölüm içeriÄŸi çözümlendi)\n" +"\n" -#: peigen.c:1385 pepigen.c:1385 +#: peigen.c:1397 pepigen.c:1397 #, c-format msgid "Export Flags \t\t\t%lx\n" -msgstr "Ýhraç Bayraklarý \t\t\t%lx\n" +msgstr "Ä°hraç Bayrakları \t\t\t%lx\n" -#: peigen.c:1388 pepigen.c:1388 +#: peigen.c:1400 pepigen.c:1400 #, c-format msgid "Time/Date stamp \t\t%lx\n" -msgstr "Saat/Tarih damgasý \t\t%lx\n" +msgstr "Saat/Tarih damgası \t\t%lx\n" -#: peigen.c:1391 pepigen.c:1391 +#: peigen.c:1403 pepigen.c:1403 #, c-format msgid "Major/Minor \t\t\t%d/%d\n" -msgstr "Majör/Minör \t\t\t%d/%d\n" +msgstr "Majör/Minör \t\t\t%d/%d\n" -#: peigen.c:1394 pepigen.c:1394 +#: peigen.c:1406 pepigen.c:1406 msgid "Name \t\t\t\t" -msgstr "Ýsim \t\t\t\t" +msgstr "Ä°sim \t\t\t\t" -#: peigen.c:1400 pepigen.c:1400 +#: peigen.c:1412 pepigen.c:1412 #, c-format msgid "Ordinal Base \t\t\t%ld\n" msgstr "Onluk Sistem \t\t\t%ld\n" -#: peigen.c:1403 pepigen.c:1403 +#: peigen.c:1415 pepigen.c:1415 msgid "Number in:\n" -msgstr "Sayý içinde:\n" +msgstr "Sayı içinde:\n" -#: peigen.c:1406 pepigen.c:1406 +#: peigen.c:1418 pepigen.c:1418 #, c-format msgid "\tExport Address Table \t\t%08lx\n" -msgstr "\tÝhraç Adres Tablosu \t\t%08lx\n" +msgstr "\tÄ°hraç Adres Tablosu \t\t%08lx\n" -#: peigen.c:1410 pepigen.c:1410 +#: peigen.c:1422 pepigen.c:1422 #, c-format msgid "\t[Name Pointer/Ordinal] Table\t%08lx\n" -msgstr "\t[Ýsim Gösterge/Onluk] Tablo\t%08lx\n" +msgstr "\t[Ä°sim Gösterge/Onluk] Tablo\t%08lx\n" -#: peigen.c:1413 pepigen.c:1413 +#: peigen.c:1425 pepigen.c:1425 msgid "Table Addresses\n" msgstr "Tablo Adresleri\n" -#: peigen.c:1416 pepigen.c:1416 +#: peigen.c:1428 pepigen.c:1428 msgid "\tExport Address Table \t\t" -msgstr "\tÝhraç Adres Tablosu \t\t" +msgstr "\tÄ°hraç Adres Tablosu \t\t" -#: peigen.c:1421 pepigen.c:1421 +#: peigen.c:1433 pepigen.c:1433 msgid "\tName Pointer Table \t\t" -msgstr "\tÝsim Gösterge Tablosu \t\t" +msgstr "\tÄ°sim Gösterge Tablosu \t\t" -#: peigen.c:1426 pepigen.c:1426 +#: peigen.c:1438 pepigen.c:1438 msgid "\tOrdinal Table \t\t\t" msgstr "\tOnluk Tablo \t\t\t" -#: peigen.c:1441 pepigen.c:1441 +#: peigen.c:1453 pepigen.c:1453 #, c-format -msgid "\nExport Address Table -- Ordinal Base %ld\n" -msgstr "\nÝhraç Adres Tablosu -- Onluk Sistem %ld\n" +msgid "" +"\n" +"Export Address Table -- Ordinal Base %ld\n" +msgstr "" +"\n" +"Ä°hraç Adres Tablosu -- Onluk Sistem %ld\n" -#: peigen.c:1460 pepigen.c:1460 +#: peigen.c:1472 pepigen.c:1472 msgid "Forwarder RVA" -msgstr "RVA Yönlendiricisi" +msgstr "RVA Yönlendiricisi" -#: peigen.c:1471 pepigen.c:1471 +#: peigen.c:1483 pepigen.c:1483 msgid "Export RVA" -msgstr "RVA Ýhracý" +msgstr "RVA Ä°hracı" -#: peigen.c:1478 pepigen.c:1478 -msgid "\n[Ordinal/Name Pointer] Table\n" -msgstr "\n[Onluk/Ýsim Gösterge] Tablosu\n" +#: peigen.c:1490 pepigen.c:1490 +msgid "" +"\n" +"[Ordinal/Name Pointer] Table\n" +msgstr "" +"\n" +"[Onluk/Ä°sim Gösterge] Tablosu\n" -#: peigen.c:1533 pepigen.c:1533 +#: peigen.c:1545 pepigen.c:1545 #, c-format msgid "Warning, .pdata section size (%ld) is not a multiple of %d\n" -msgstr "Uyarý, .pdata bölüm boyu (%ld) %d'nin katý deðil\n" +msgstr "Uyarı, .pdata bölüm boyu (%ld) %d'nin katı deÄŸil\n" -#: peigen.c:1537 pepigen.c:1537 -msgid "\nThe Function Table (interpreted .pdata section contents)\n" -msgstr "\nÝþlev Tablosu (.pdata bölüm içeriði çözümlendi)\n" +#: peigen.c:1549 pepigen.c:1549 +msgid "" +"\n" +"The Function Table (interpreted .pdata section contents)\n" +msgstr "" +"\n" +"Ä°ÅŸlev Tablosu (.pdata bölüm içeriÄŸi çözümlendi)\n" -#: peigen.c:1540 pepigen.c:1540 +#: peigen.c:1552 pepigen.c:1552 msgid " vma:\t\t\tBegin Address End Address Unwind Info\n" -msgstr " vma:\t\t\tBaþlangýç Adresi Sonlanma Adresi Geri Al Bilgisi\n" +msgstr " vma:\t\t\tBaÅŸlangıç Adresi Sonlanma Adresi Geri Al Bilgisi\n" -#: peigen.c:1543 pepigen.c:1543 -msgid " vma:\t\tBegin End EH EH PrologEnd Exception\n" -msgstr " vma:\t\tBaþl. Son EH EH PrologSon Ýstisna\n" - -#: peigen.c:1545 pepigen.c:1545 -msgid " \t\tAddress Address Handler Data Address Mask\n" -msgstr " \t\tAdres Adres Yön. Veri Adres Mask\n" +#: peigen.c:1554 pepigen.c:1554 +msgid "" +" vma:\t\tBegin End EH EH PrologEnd Exception\n" +" \t\tAddress Address Handler Data Address Mask\n" +msgstr "" +" vma:\t\tBaÅŸl. Son EH EH PrologSon Ä°stisna\n" +" \t\tAdres Adres Yakalay Veri Adres Maske\n" -#: peigen.c:1613 pepigen.c:1613 +#: peigen.c:1624 pepigen.c:1624 msgid " Register save millicode" msgstr " Yazma milikodunu kaydet" -#: peigen.c:1616 pepigen.c:1616 +#: peigen.c:1627 pepigen.c:1627 msgid " Register restore millicode" msgstr " Geri alma milikodunu kaydet" -#: peigen.c:1619 pepigen.c:1619 +#: peigen.c:1630 pepigen.c:1630 msgid " Glue code sequence" -msgstr " Birleþtirici kod dizisi" +msgstr " BirleÅŸtirici kod dizisi" -#: peigen.c:1671 pepigen.c:1671 -msgid "\n\nPE File Base Relocations (interpreted .reloc section contents)\n" -msgstr "\n\nPE Dosya Temel Yerdeðiþimi (.reloc bölüm içeriði çözümlendi)\n" +#: peigen.c:1682 pepigen.c:1682 +msgid "" +"\n" +"\n" +"PE File Base Relocations (interpreted .reloc section contents)\n" +msgstr "" +"\n" +"\n" +"PE Dosya Temel YerdeÄŸiÅŸimi (.reloc bölüm içeriÄŸi çözümlendi)\n" -#: peigen.c:1701 pepigen.c:1701 +#: peigen.c:1712 pepigen.c:1712 #, c-format -msgid "\nVirtual Address: %08lx Chunk size %ld (0x%lx) Number of fixups %ld\n" -msgstr "\nSanal Adres: %08lx Parça boyu %ld (0x%lx) Düzeltme Sayýsý %ld\n" +msgid "" +"\n" +"Virtual Address: %08lx Chunk size %ld (0x%lx) Number of fixups %ld\n" +msgstr "" +"\n" +"Sanal Adres: %08lx Parça boyu %ld (0x%lx) Düzeltme Sayısı %ld\n" -#: peigen.c:1714 pepigen.c:1714 +#: peigen.c:1725 pepigen.c:1725 #, c-format msgid "\treloc %4d offset %4x [%4lx] %s" -msgstr "\tyer deðiþim %4d göreli konum %4x [%4lx] %s" +msgstr "\tyer deÄŸiÅŸim %4d göreli konum %4x [%4lx] %s" #. The MS dumpbin program reportedly ands with 0xff0f before #. printing the characteristics field. Not sure why. No reason to #. emulate it here. -#: peigen.c:1754 pepigen.c:1754 +#: peigen.c:1765 pepigen.c:1765 #, c-format -msgid "\nCharacteristics 0x%x\n" -msgstr "\nÖzellikler 0x%x\n" +msgid "" +"\n" +"Characteristics 0x%x\n" +msgstr "" +"\n" +"Özellikler 0x%x\n" + +#~ msgid "GP relative relocation when GP not defined" +#~ msgstr "GP tanımlanmamışken GP göreli yer deÄŸiÅŸtirmesi" + +#~ msgid "%s: ERROR: passes floats in float registers whereas target %s uses integer registers" +#~ msgstr "%s: HATA: kayan sayıları kayan yazmaçlarda geçiriyor fakat hedef %s tamsayı yazmaç kullanıyor" + +#~ msgid "%s: ERROR: passes floats in integer registers whereas target %s uses float registers" +#~ msgstr "%s: HATA: kayan sayıları tamsayı yazmaçlarda geçiriyor fakat hedef %s kayan yazmaç kullanıyor" + +#~ msgid "Warning: input file %s supports interworking, whereas %s does not." +#~ msgstr "Uyarı: %s girdi dosyası beraber çalışmayı destekliyor, fakat %s desteklemiyor." + +#~ msgid "Warning: input file %s does not support interworking, whereas %s does." +#~ msgstr "Uyarı: %s girdi dosyası beraber çalışmayı desteklemiyor, fakat %s destekliyor." + +#~ msgid "AUX tagndx %ld ttlsiz 0x%lx lnnos %ld next %ld" +#~ msgstr "AUX tagndx %ld ttlsiz 0x%lx lnnos %ld sonraki %ld" + +#~ msgid "elf_symbol_from_bfd_symbol 0x%.8lx, name = %s, sym num = %d, flags = 0x%.8lx%s\n" +#~ msgstr "bfd sembolünden elf sembolü:0x%.8lx, isim= %s, sem num = %d, bayrak = 0x%.8lx%s\n" + +#~ msgid "Warning: Not setting interwork flag of %s since it has already been specified as non-interworking" +#~ msgstr "Uyarı: beraber çalışmaz diye önceden belirtilmiÅŸ olduÄŸundan %s'nin beraber çalışma bayrağı atanmadı" + +#~ msgid "Warning: Clearing the interwork flag of %s due to outside request" +#~ msgstr "Uyarı: Dış isteÄŸe uyularak %s'nin beraber çalışma bayrağı temizlendi" + +#~ msgid " [APCS-26]" +#~ msgstr " [APCS-26]" + +#~ msgid " [APCS-32]" +#~ msgstr " [APCS-32]" + +#~ msgid "(unknown)" +#~ msgstr "(bilinmeyen)" + +#~ msgid " previously %s in %s" +#~ msgstr " daha önce %2$s içinde %1$s" + +#~ msgid "ETIR_S_C_STO_GBL: no symbol \"%s\"" +#~ msgstr "ETIR_S_C_STO_GBL: sembol yok \"%s\"" + +#~ msgid "ETIR_S_C_STO_CA: no symbol \"%s\"" +#~ msgstr "ETIR_S_C_STO_CA: sembol yok \"%s\"" + +#~ msgid "ETIR_S_C_STO_RB/AB: Not supported" +#~ msgstr "ETIR_S_C_STO_RB/AB: Desteklenmiyor" + +#~ msgid "ETIR_S_C_STO_LP_PSB: Not supported" +#~ msgstr "ETIR_S_C_STO_LP_PSB: Desteklenmiyor" + +#~ msgid "ETIR_S_C_STO_HINT_GBL: not implemented" +#~ msgstr "ETIR_S_C_STO_HINT_GBL: tamamlanmamış" + +#~ msgid "ETIR_S_C_STO_HINT_PS: not implemented" +#~ msgstr "ETIR_S_C_STO_HINT_PS: tamamlanmamış" + +#~ msgid "ETIR_S_C_OPR_INSV: Not supported" +#~ msgstr "ETIR_S_C_OPR_INSV: Desteklenmiyor" + +#~ msgid "ETIR_S_C_OPR_USH: Not supported" +#~ msgstr "ETIR_S_C_OPR_USH: Desteklenmiyor" + +#~ msgid "ETIR_S_C_OPR_ROT: Not supported" +#~ msgstr "ETIR_S_C_OPR_ROT: Desteklenmiyor" + +#~ msgid "ETIR_S_C_OPR_REDEF: Not supported" +#~ msgstr "ETIR_S_C_OPR_REDEF: Desteklenmiyor" + +#~ msgid "ETIR_S_C_OPR_DFLIT: Not supported" +#~ msgstr "ETIR_S_C_OPR_DFLIT: Desteklenmiyor" + +#~ msgid "ETIR_S_C_STC_GBL: not supported" +#~ msgstr "ETIR_S_C_STC_GBL: desteklenmiyor" + +#~ msgid "ETIR_S_C_STC_GCA: not supported" +#~ msgstr "ETIR_S_C_STC_GCA: desteklenmiyor" + +#~ msgid "ETIR_S_C_STC_PS: not supported" +#~ msgstr "ETIR_S_C_STC_PS: desteklenmiyor" + +#~ msgid "Unimplemented STO cmd %d" +#~ msgstr "Tamamlanmamış STO komutu %d" + +#~ msgid "TIR_S_C_OPR_ASH incomplete" +#~ msgstr "TIR_S_C_OPR_ASH tamamlanmamış" + +#~ msgid "TIR_S_C_OPR_USH incomplete" +#~ msgstr "TIR_S_C_OPR_USH tamamlanmamış" + +#~ msgid "TIR_S_C_OPR_ROT incomplete" +#~ msgstr "TIR_S_C_OPR_ROT tamamlanmamış" + +#~ msgid "TIR_S_C_OPR_REDEF not supported" +#~ msgstr "TIR_S_C_OPR_REDEF desteklenmiyor" + +#~ msgid "TIR_S_C_OPR_DFLIT not supported" +#~ msgstr "TIR_S_C_OPR_DFLIT desteklenmiyor" + +#~ msgid "TIR_S_C_CTL_DFLOC not fully implemented" +#~ msgstr "TIR_S_C_CTL_DFLOC tamamlanmamış" + +#~ msgid "TIR_S_C_CTL_STLOC not fully implemented" +#~ msgstr "TIR_S_C_CTL_STLOC tamamlanmamış" + +#~ msgid "TIR_S_C_CTL_STKDL not fully implemented" +#~ msgstr "TIR_S_C_CTL_STKDL tamamlanmamış" + +#~ msgid " vma: Hint Time Forward DLL First\n" +#~ msgstr " vma: Ä°pucu Zaman Ä°leri DLL Ä°lk\n" + +#~ msgid "\tThe Import Address Table (difference found)\n" +#~ msgstr "\tÄ°thal Adres Tablosu (fark bulundu)\n" + +#~ msgid "\t>>> Ran out of IAT members!\n" +#~ msgstr "\t>>> IAT üyeleri bitti!\n" + +#~ msgid "\tThe Import Address Table is identical\n" +#~ msgstr "\tÄ°thal Adres Tablosu aynı\n" + +#~ msgid " \t\tAddress Address Handler Data Address Mask\n" +#~ msgstr " \t\tAdres Adres Yön. Veri Adres Mask\n" diff -uprN binutils-2.13.90.0.4/bfd/reloc.c binutils-2.13.90.0.10/bfd/reloc.c --- binutils-2.13.90.0.4/bfd/reloc.c Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/bfd/reloc.c Wed Oct 2 10:17:19 2002 @@ -2123,6 +2123,12 @@ ENUMX ENUMX BFD_RELOC_386_GOTPC ENUMX + BFD_RELOC_386_TLS_TPOFF +ENUMX + BFD_RELOC_386_TLS_IE +ENUMX + BFD_RELOC_386_TLS_GOTIE +ENUMX BFD_RELOC_386_TLS_LE ENUMX BFD_RELOC_386_TLS_GD @@ -2159,6 +2165,22 @@ ENUMX BFD_RELOC_X86_64_GOTPCREL ENUMX BFD_RELOC_X86_64_32S +ENUMX + BFD_RELOC_X86_64_DTPMOD64 +ENUMX + BFD_RELOC_X86_64_DTPOFF64 +ENUMX + BFD_RELOC_X86_64_TPOFF64 +ENUMX + BFD_RELOC_X86_64_TLSGD +ENUMX + BFD_RELOC_X86_64_TLSLD +ENUMX + BFD_RELOC_X86_64_DTPOFF32 +ENUMX + BFD_RELOC_X86_64_GOTTPOFF +ENUMX + BFD_RELOC_X86_64_TPOFF32 ENUMDOC x86-64/elf relocations @@ -2788,8 +2810,18 @@ ENUM BFD_RELOC_V850_CALLT_16_16_OFFSET ENUMDOC This is a 16 bit offset from the call table base pointer. -COMMENT - +ENUM + BFD_RELOC_V850_LONGCALL +ENUMDOC + Used for relaxing indirect function calls. +ENUM + BFD_RELOC_V850_LONGJUMP +ENUMDOC + Used for relaxing indirect jumps. +ENUM + BFD_RELOC_V850_ALIGN +ENUMDOC + Used to maintain alignment whilst relaxing. ENUM BFD_RELOC_MN10300_32_PCREL ENUMDOC diff -uprN binutils-2.13.90.0.4/bfd/syms.c binutils-2.13.90.0.10/bfd/syms.c --- binutils-2.13.90.0.4/bfd/syms.c Wed Jul 17 11:38:29 2002 +++ binutils-2.13.90.0.10/bfd/syms.c Fri Sep 27 08:33:09 2002 @@ -806,6 +806,7 @@ _bfd_generic_read_minisymbols (abfd, dyn return symcount; error_return: + bfd_set_error (bfd_error_no_symbols); if (syms != NULL) free (syms); return -1; diff -uprN binutils-2.13.90.0.4/bfd/targets.c binutils-2.13.90.0.10/bfd/targets.c --- binutils-2.13.90.0.4/bfd/targets.c Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/bfd/targets.c Wed Oct 9 21:09:41 2002 @@ -520,6 +520,7 @@ extern const bfd_target bfd_elf32_h8300_ extern const bfd_target bfd_elf32_hppa_linux_vec; extern const bfd_target bfd_elf32_hppa_vec; extern const bfd_target bfd_elf32_i370_vec; +extern const bfd_target bfd_elf32_i386_freebsd_vec; extern const bfd_target bfd_elf32_i386_vec; extern const bfd_target bfd_elf32_i386qnx_vec; extern const bfd_target bfd_elf32_i860_little_vec; @@ -558,6 +559,8 @@ extern const bfd_target bfd_elf32_powerp extern const bfd_target bfd_elf32_s390_vec; extern const bfd_target bfd_elf32_sh64_vec; extern const bfd_target bfd_elf32_sh64l_vec; +extern const bfd_target bfd_elf32_sh64lin_vec; +extern const bfd_target bfd_elf32_sh64blin_vec; extern const bfd_target bfd_elf32_sh64lnbsd_vec; extern const bfd_target bfd_elf32_sh64nbsd_vec; extern const bfd_target bfd_elf32_sh_vec; @@ -565,7 +568,9 @@ extern const bfd_target bfd_elf32_shblin extern const bfd_target bfd_elf32_shl_vec; extern const bfd_target bfd_elf32_shlin_vec; extern const bfd_target bfd_elf32_shlnbsd_vec; +extern const bfd_target bfd_elf32_shlqnx_vec; extern const bfd_target bfd_elf32_shnbsd_vec; +extern const bfd_target bfd_elf32_shqnx_vec; extern const bfd_target bfd_elf32_sparc_vec; extern const bfd_target bfd_elf32_tradbigmips_vec; extern const bfd_target bfd_elf32_tradlittlemips_vec; @@ -573,6 +578,7 @@ extern const bfd_target bfd_elf32_us_cri extern const bfd_target bfd_elf32_v850_vec; extern const bfd_target bfd_elf32_vax_vec; extern const bfd_target bfd_elf32_xstormy16_vec; +extern const bfd_target bfd_elf64_alpha_freebsd_vec; extern const bfd_target bfd_elf64_alpha_vec; extern const bfd_target bfd_elf64_big_generic_vec; extern const bfd_target bfd_elf64_bigmips_vec; @@ -591,6 +597,8 @@ extern const bfd_target bfd_elf64_powerp extern const bfd_target bfd_elf64_s390_vec; extern const bfd_target bfd_elf64_sh64_vec; extern const bfd_target bfd_elf64_sh64l_vec; +extern const bfd_target bfd_elf64_sh64lin_vec; +extern const bfd_target bfd_elf64_sh64blin_vec; extern const bfd_target bfd_elf64_sh64lnbsd_vec; extern const bfd_target bfd_elf64_sh64nbsd_vec; extern const bfd_target bfd_elf64_sparc_vec; @@ -681,6 +689,12 @@ extern const bfd_target sparcnetbsd_vec; extern const bfd_target sunos_big_vec; extern const bfd_target tic30_aout_vec; extern const bfd_target tic30_coff_vec; +extern const bfd_target tic4x_coff0_beh_vec; +extern const bfd_target tic4x_coff0_vec; +extern const bfd_target tic4x_coff1_beh_vec; +extern const bfd_target tic4x_coff1_vec; +extern const bfd_target tic4x_coff2_beh_vec; +extern const bfd_target tic4x_coff2_vec; extern const bfd_target tic54x_coff0_beh_vec; extern const bfd_target tic54x_coff0_vec; extern const bfd_target tic54x_coff1_beh_vec; @@ -790,6 +804,7 @@ static const bfd_target * const _bfd_tar &bfd_elf32_hppa_linux_vec, &bfd_elf32_hppa_vec, &bfd_elf32_i370_vec, + &bfd_elf32_i386_freebsd_vec, &bfd_elf32_i386_vec, &bfd_elf32_i386qnx_vec, &bfd_elf32_i860_little_vec, @@ -849,6 +864,7 @@ static const bfd_target * const _bfd_tar &bfd_elf32_vax_vec, &bfd_elf32_xstormy16_vec, #ifdef BFD64 + &bfd_elf64_alpha_freebsd_vec, &bfd_elf64_alpha_vec, &bfd_elf64_big_generic_vec, &bfd_elf64_bigmips_vec, diff -uprN binutils-2.13.90.0.4/bfd/ticoff.h binutils-2.13.90.0.10/bfd/ticoff.h --- binutils-2.13.90.0.4/bfd/ticoff.h Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/bfd/ticoff.h Fri Sep 27 08:33:09 2002 @@ -0,0 +1,130 @@ +/* Copyright 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. */ + +#undef F_LSYMS +#define F_LSYMS F_LSYMS_TICOFF + +static boolean +ticoff0_bad_format_hook (abfd, filehdr) + bfd *abfd; + PTR filehdr; +{ + struct internal_filehdr *internal_f = (struct internal_filehdr *) filehdr; + + if (COFF0_BADMAG (*internal_f)) + return false; + + return true; +} + +static boolean +ticoff1_bad_format_hook (abfd, filehdr) + bfd *abfd ATTRIBUTE_UNUSED; + PTR filehdr; +{ + struct internal_filehdr *internal_f = (struct internal_filehdr *) filehdr; + + if (COFF1_BADMAG (*internal_f)) + return false; + + return true; +} + +/* Replace the stock _bfd_coff_is_local_label_name + to recognize TI COFF local labels. */ +static boolean +ticoff_bfd_is_local_label_name (abfd, name) + bfd *abfd ATTRIBUTE_UNUSED; + const char *name; +{ + if (TICOFF_LOCAL_LABEL_P(name)) + return true; + return false; +} + +#define coff_bfd_is_local_label_name ticoff_bfd_is_local_label_name + +/* Customize coffcode.h; the default coff_ functions are set up to use COFF2; + coff_bad_format_hook uses BADMAG, so set that for COFF2. The COFF1 + and COFF0 vectors use custom _bad_format_hook procs instead of setting + BADMAG. */ +#define BADMAG(x) COFF2_BADMAG(x) +#include "coffcode.h" + +/* COFF0 differs in file/section header size and relocation entry size. */ +static const bfd_coff_backend_data ticoff0_swap_table = +{ + coff_SWAP_aux_in, coff_SWAP_sym_in, coff_SWAP_lineno_in, + coff_SWAP_aux_out, coff_SWAP_sym_out, + coff_SWAP_lineno_out, coff_SWAP_reloc_out, + coff_SWAP_filehdr_out, coff_SWAP_aouthdr_out, + coff_SWAP_scnhdr_out, + FILHSZ_V0, AOUTSZ, SCNHSZ_V01, SYMESZ, AUXESZ, RELSZ_V0, LINESZ, FILNMLEN, +#ifdef COFF_LONG_FILENAMES + true, +#else + false, +#endif +#ifdef COFF_LONG_SECTION_NAMES + true, +#else + false, +#endif + COFF_DEFAULT_SECTION_ALIGNMENT_POWER, + coff_SWAP_filehdr_in, coff_SWAP_aouthdr_in, coff_SWAP_scnhdr_in, + coff_SWAP_reloc_in, ticoff0_bad_format_hook, coff_set_arch_mach_hook, + coff_mkobject_hook, styp_to_sec_flags, coff_set_alignment_hook, + coff_slurp_symbol_table, symname_in_debug_hook, coff_pointerize_aux_hook, + coff_print_aux, coff_reloc16_extra_cases, coff_reloc16_estimate, + coff_classify_symbol, coff_compute_section_file_positions, + coff_start_final_link, coff_relocate_section, coff_rtype_to_howto, + coff_adjust_symndx, coff_link_add_one_symbol, + coff_link_output_has_begun, coff_final_link_postscript +}; + +/* COFF1 differs in section header size. */ +static const bfd_coff_backend_data ticoff1_swap_table = +{ + coff_SWAP_aux_in, coff_SWAP_sym_in, coff_SWAP_lineno_in, + coff_SWAP_aux_out, coff_SWAP_sym_out, + coff_SWAP_lineno_out, coff_SWAP_reloc_out, + coff_SWAP_filehdr_out, coff_SWAP_aouthdr_out, + coff_SWAP_scnhdr_out, + FILHSZ, AOUTSZ, SCNHSZ_V01, SYMESZ, AUXESZ, RELSZ, LINESZ, FILNMLEN, +#ifdef COFF_LONG_FILENAMES + true, +#else + false, +#endif +#ifdef COFF_LONG_SECTION_NAMES + true, +#else + false, +#endif + COFF_DEFAULT_SECTION_ALIGNMENT_POWER, + coff_SWAP_filehdr_in, coff_SWAP_aouthdr_in, coff_SWAP_scnhdr_in, + coff_SWAP_reloc_in, ticoff1_bad_format_hook, coff_set_arch_mach_hook, + coff_mkobject_hook, styp_to_sec_flags, coff_set_alignment_hook, + coff_slurp_symbol_table, symname_in_debug_hook, coff_pointerize_aux_hook, + coff_print_aux, coff_reloc16_extra_cases, coff_reloc16_estimate, + coff_classify_symbol, coff_compute_section_file_positions, + coff_start_final_link, coff_relocate_section, coff_rtype_to_howto, + coff_adjust_symndx, coff_link_add_one_symbol, + coff_link_output_has_begun, coff_final_link_postscript +}; + diff -uprN binutils-2.13.90.0.4/bfd/version.h binutils-2.13.90.0.10/bfd/version.h --- binutils-2.13.90.0.4/bfd/version.h Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/bfd/version.h Wed Oct 9 21:09:41 2002 @@ -1 +1 @@ -#define BFD_VERSION_DATE 20020814 +#define BFD_VERSION_DATE 20021010 diff -uprN binutils-2.13.90.0.4/binutils/ChangeLog binutils-2.13.90.0.10/binutils/ChangeLog --- binutils-2.13.90.0.4/binutils/ChangeLog Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/binutils/ChangeLog Wed Oct 9 21:09:41 2002 @@ -1,3 +1,108 @@ +2002-10-09 Daniel Jacobowitz + + * readelf.c (display_debug_info): Ignore empty .rela.debug_info + sections. Allow relocations against the absolute symbol. Don't + use the value in compunit.cu_abbrev_offset if we found a RELA + relocation. + +2002-10-07 Gordon Chaffee + + * addr2line.c (slurp_symtab): Read in dynamic symbols if no + ordinary ones are available. + +2002-09-30 H.J. Lu + + * readelf.c (get_machine_flags): Handle E_MIPS_MACH_4120, + E_MIPS_MACH_5400 and E_MIPS_MACH_5500. + +2002-09-17 Zack Weinberg + + * Makefile.am (CFILES): Add cxxfilt.c. + (cxxfilt_SOURCES): Now just cxxfilt.c $(BULIBS). + (cxxfilt_LDADD): Delete. + Remove all references to underscore.c. + Regen dependencies. + * configure.in: Define TARGET_PREPENDS_UNDERSCORE in + config.h from $UNDERSCORE, rather than AC_SUBSTing it. + * binutils/cxxfilt.c: Moved here from gcc/cp, minor + adjustments to fit into binutils framework. + * configure, config.in, Makefile.in, doc/Makefile.in: Regenerate. + +2002-09-12 Roland McGrath + + * readelf.c (decode_location_expression): DW_OP_calli -> DW_OP_call_ref + Handle DW_OP_GNU_push_tls_address. + +2002-09-11 Nick Clifton + + * po/tr.po: Updated Turkish translation. + +2002-09-10 Nick Clifton + + * MAINTAINERS: Add Ben Elliston as a maintainer for configure and + testsuite changes. Add paragraphs about testsuite and config + patches. + +2002-08-29 Nick Clifton + + * readelf.c (get_machine_flags): Remove redundant reference to + E_V850EA_ARCH. + +2002-08-28 Alan Modra + + * objdump.c (dump_bfd): Restore lines accidentally deleted in + last commit. + +2002-08-28 Michael Hayes + + * objdump.c (dump_headers): Add printing of HAS_LOAD_PAGE flag. + (dump_bfd_header): Likewise. + +2002-08-27 Alan Modra + + * nm.c: Revert last change. + +2002-08-26 Alan Modra + + * nm.c (display_rel_file): Don't report "no symbols" as an error. + * objdump.c (slurp_symtab): Likewise. + (slurp_dynamic_symtab): Likewise. + (dump_symbols): Likewise. Do print "no symbols" to stdout. + +2002-08-24 Geoffrey Keating + + * MAINTAINERS: Change my mailing address. + +2002-08-23 John David Anglin + + * MAINTAINERS: Add Dave Anglin as HPPA co-maintainer. + +2002-08-22 Nick Clifton + + * MAINTAINERS: Add Jeff Law as (maintainance) maintainer for + HPPA. + +2002-08-21 John David Anglin + + * readelf.c (parse_args): Change debug_dump_opt to static. + +2002-08-16 Sivaguru Sankaridurg + + * stabs.c (parse_stab_argtype): Pass length of physname to + stab_demangle_argtypes. + (stab_demangle_argtypes): Add new parameter - length of physname. + Pass length of physname on to stab_demangle_prefix. + (stab_demangle_prefix): Add new parameter - length of physname. + Use length of physname (if supplied) to compute end of function + name. + +2002-08-15 Alan Modra + + * readelf.c: Include elf/i370.h. + (dump_relocations): Handle EM_S370. + (dynamic_segment_parisc_val): Print \n. + (process_dynamic_segment ): Here too. + 2002-08-14 Nick Clifton * nm.c (usage): Change 'gnu-new-abi' to 'gnu-v3'. @@ -44,7 +149,7 @@ * po/fr.po: Updated French translation. 2002-07-24 Nick Clifton - + * po/es.po: Updated Spanish translation. 2002-07-23 Alan Modra @@ -172,7 +277,7 @@ 2002-06-18 Elias Athanasopoulos * nm.c (print_size_symbols): Remove assignment, which makes - the symbol's size equal to its value when --size-sort is + the symbol's size equal to its value when --size-sort is used. 2002-06-18 Dave Brolley @@ -232,7 +337,7 @@ DW_CFA_def_cfa_sf and DW_CFA_def_cfa_offset_sf. 2002-06-07 Elias Athanasopoulos - + * nm.c: When computing size of symbols for an ELF target use the internal size field. @@ -449,8 +554,8 @@ bfd_find_nearest_line is non-NULL. 2002-04-25 Elena Zannoni - - * readelf.c (get_AT_name): Handle DW_AT_GNU_vector. + + * readelf.c (get_AT_name): Handle DW_AT_GNU_vector. 2002-04-24 Christian Groessler @@ -476,11 +581,11 @@ 2002-04-15 Eric Kohl - * rcparse.y: Allow two to five parameter in FONT statement of + * rcparse.y: Allow two to five parameter in FONT statement of DIALOGEX resources. * resbin.c (bin_to_res_dialog): Fixed read/write code for dialogex resource data. - (res_to_bin_dialog): Likewise. + (res_to_bin_dialog): Likewise. * windres.h: Added misssing charset variable to dialog_ex structure. @@ -490,7 +595,7 @@ 2002-04-09 Bernd Herd - * rcparse.y: CLASS definitions in DIALOG resources + * rcparse.y: CLASS definitions in DIALOG resources are quoted. Fix typo in BEDIT warning. Don't add default dialog style when explicit style specified. @@ -603,10 +708,10 @@ 2002-02-18 Timothy Daly - * readelf.c (dump_relocations): Display 2nd and 3rd reloc - types for 64-bit MIPS. Narrow some fields for 80-char + * readelf.c (dump_relocations): Display 2nd and 3rd reloc + types for 64-bit MIPS. Narrow some fields for 80-char output. - (dump_relocations): Change spelling from 'unrecognised' + (dump_relocations): Change spelling from 'unrecognised' to 'unrecognized'. (decode_ARM_machine_flags): Likewise. (parse_args): Likewise. @@ -733,7 +838,7 @@ (main): Accept -H as an alias for --help. * objcopy.c (strip_main): Accept -H as an alias for --help. * objdump.c (main): Accept -v as an alias for --verbose. - * readelf.c (usage): Adjust format to match style used in + * readelf.c (usage): Adjust format to match style used in other binutils. * size.c (usage): Update text to provide verbose description of the command line options. @@ -785,9 +890,9 @@ 2002-01-15 Nick Clifton * objcopy.c (copy_usage): Use "options" instead of "switches". - (strip_usage): Use "options" instead of "switches". + (strip_usage): Use "options" instead of "switches". * doc/binutils.texi (dlltool): Refer to "options" instead of - "switches". + "switches". 2002-01-14 Richard Earnshaw @@ -1388,9 +1493,9 @@ 2001-08-03 John Healy - Patch suggested by Frank Eigler . - * objdump.c (disassemble_data): Fill in section member of the - disasm_info structure. + Patch suggested by Frank Eigler . + * objdump.c (disassemble_data): Fill in section member of the + disasm_info structure. 2001-08-03 Tom Walsh @@ -1408,18 +1513,18 @@ 2001-07-31 Nick Clifton - * objcopy.c: Fix formatting. - (section_rename): New structure. - (OPTION_RENAME_SECTION): New switch. - (copy_usage): Document new switch. - (add_section_rename): New function: Add a node to the section - rename list. - (find_section_rename): New function: Find the new name and - flags for a section. - (setup_section): Call find_section_name to determine the name - of the output section. - (copy_main): Handle OPTION_RENAME_SECTION. - * binutils.texi: Document new switch. + * objcopy.c: Fix formatting. + (section_rename): New structure. + (OPTION_RENAME_SECTION): New switch. + (copy_usage): Document new switch. + (add_section_rename): New function: Add a node to the section + rename list. + (find_section_rename): New function: Find the new name and + flags for a section. + (setup_section): Call find_section_name to determine the name + of the output section. + (copy_main): Handle OPTION_RENAME_SECTION. + * binutils.texi: Document new switch. * NEWS: Mention new switch. 2001-07-30 Nick Clifton @@ -1583,23 +1688,23 @@ 2001-06-18 H.J. Lu & Nick Clifton - * Makefile.am: Move documentation into doc subdirectory. - * Makefile.in: Regenerated. + * Makefile.am: Move documentation into doc subdirectory. + * Makefile.in: Regenerated. * binutils.texi: Move into doc subdirectory. - * addr2line.1: Removed. - * ar.1: Likewise. - * dlltool.1: Likewise. - * nlmconv.1: Likewise. - * nm.1: Likewise. - * objcopy.1: Likewise. - * objdump.1: Likewise. - * ranlib.1: Likewise. - * readelf.1: Likewise. - * size.1: Likewise. - * strings.1: Likewise. - * strip.1: Likewise. - * windres.1: Likewise. - * cxxfilt.man: Likewise. + * addr2line.1: Removed. + * ar.1: Likewise. + * dlltool.1: Likewise. + * nlmconv.1: Likewise. + * nm.1: Likewise. + * objcopy.1: Likewise. + * objdump.1: Likewise. + * ranlib.1: Likewise. + * readelf.1: Likewise. + * size.1: Likewise. + * strings.1: Likewise. + * strip.1: Likewise. + * windres.1: Likewise. + * cxxfilt.man: Likewise. * doc: New Directory. * doc/Makefile.am: New file. * doc/Makefile.in: Generate. @@ -1667,7 +1772,7 @@ 2001-04-27 Johan Rydberg - * NEWS: Announce support for OpenRISC. + * NEWS: Announce support for OpenRISC. 2001-04-17 Danny Smith diff -uprN binutils-2.13.90.0.4/binutils/ChangeLog.linux binutils-2.13.90.0.10/binutils/ChangeLog.linux --- binutils-2.13.90.0.4/binutils/ChangeLog.linux Wed Jul 17 11:38:29 2002 +++ binutils-2.13.90.0.10/binutils/ChangeLog.linux Fri Sep 27 08:33:09 2002 @@ -1,3 +1,23 @@ +2002-09-18 H.J. Lu + + * cxxfilt.c: Updated from + + Sun Oct 10 19:23:28 1999 H.J. Lu (hjl@gnu.org) + + * cplus-dem.c (flags): Removed. + (main): Call init_demangler () with options for Java for "-j". + (demangle_it): Call demangle_symbol () instead of + cplus_demangle (). + (main): Likewise. + + Sun Oct 10 15:48:07 1999 H.J. Lu (hjl@gnu.org) + + * cplus-dem.c (usage): Modified -s/--format. Added + -d/--demangler. + (long_options): Add demangler. + (main): Handle 'd'. Use o_style () for setting + current_demangling_style. Call init_demangler (). + 2002-07-05 H.J. Lu * budemang.c (demangle): Call demangle_symbol instead of diff -uprN binutils-2.13.90.0.4/binutils/MAINTAINERS binutils-2.13.90.0.10/binutils/MAINTAINERS --- binutils-2.13.90.0.4/binutils/MAINTAINERS Thu Aug 8 22:49:55 2002 +++ binutils-2.13.90.0.10/binutils/MAINTAINERS Fri Sep 27 08:33:09 2002 @@ -56,11 +56,14 @@ responsibility among the other maintaine ARM Richard Earnshaw AVR Denis Chertykov AVR Marek Michalkiewicz + CONFIGURE Ben Elliston CRIS Hans-Peter Nilsson DWARF2 Jason Merrill FR30 Dave Brolley FRV Dave Brolley HPPA elf32 Alan Modra + HPPA elf64 Jeff Law [Basic maintainance only] + HPPA Dave Anglin IA64 Jim Wilson i860 Jason Eckhardt ix86 Alan Modra @@ -74,12 +77,13 @@ responsibility among the other maintaine MMIX Hans-Peter Nilsson MN10300 Eric Christopher MN10300 Alexandre Oliva - PPC Geoff Keating + PPC Geoff Keating s390, s390x Martin Schwidefsky SH Jörn Rennecke SH Hans-Peter Nilsson SH Alexandre Oliva SPARC Jakub Jelinek + TESTSUITES Ben Elliston TIC54X Timothy Wall VAX Jason R Thorpe x86_64 Jan Hubicka @@ -135,3 +139,21 @@ great). If you are uncertain as to whet the branch, ask the branch maintainer. This is: Daniel Jacobowitz + + -------- Testsuites --------------- + +In general patches to any of the binutils testsuites should be +considered generic and sent to the binutils mailing list for +approval. Patches to target specific tests are the responsibility the +relevent port maintainer(s), and can be approved/checked in by them. +Other testsuite patches need the approval of a blanket-write-priveleges +person. + + -------- Configure patches ---------- + +Patches to the top level configure files (config.sub & config.guess) +are not the domain of the binutils project and they cannot be approved +by the binutils group. Instead they should be submitted to the config +maintainer at: + + config-patches@gnu.org diff -uprN binutils-2.13.90.0.4/binutils/Makefile.am binutils-2.13.90.0.10/binutils/Makefile.am --- binutils-2.13.90.0.4/binutils/Makefile.am Mon Jul 29 08:19:16 2002 +++ binutils-2.13.90.0.10/binutils/Makefile.am Fri Sep 27 08:33:09 2002 @@ -87,7 +87,7 @@ GENERATED_HFILES = arparse.h sysroff.h s CFILES = \ addr2line.c ar.c arsup.c binemul.c bucomm.c budemang.c \ - coffdump.c coffgrok.c debug.c dlltool.c dllwrap.c \ + coffdump.c coffgrok.c cxxfilt.c debug.c dlltool.c dllwrap.c \ emul_aix.c emul_vanilla.c filemode.c \ ieee.c is-ranlib.c is-strip.c maybe-ranlib.c maybe-strip.c \ nlmconv.c nm.c not-ranlib.c not-strip.c \ @@ -98,7 +98,7 @@ CFILES = \ windres.c winduni.c wrstabs.c GENERATED_CFILES = \ - underscore.c arparse.c arlex.c sysroff.c sysinfo.c syslex.c \ + arparse.c arlex.c sysroff.c sysinfo.c syslex.c \ defparse.c deflex.c nlmheader.c rcparse.c rclex.c DEBUG_SRCS = rddbg.c debug.c stabs.c ieee.c rdcoff.c @@ -180,19 +180,7 @@ objdump_LDADD = $(OPCODES) $(BFDLIB) $(L objdump.o:objdump.c $(COMPILE) -c $(OBJDUMP_DEFS) $(srcdir)/objdump.c -underscore.c: stamp-under ; @true - -stamp-under: Makefile - echo '/*WARNING: This file is automatically generated!*/' >underscore.t - echo "int prepends_underscore = @UNDERSCORE@;" >>underscore.t - $(SHELL) $(srcdir)/../move-if-change underscore.t underscore.c - touch stamp-under - -cplus-dem.o: $(BASEDIR)/libiberty/cplus-dem.c $(INCDIR)/getopt.h Makefile - $(COMPILE) -c -DMAIN -DVERSION='"$(VERSION)"' $(BASEDIR)/libiberty/cplus-dem.c - -cxxfilt_SOURCES = -cxxfilt_LDADD = cplus-dem.o underscore.o $(LIBIBERTY) $(INTLLIBS) +cxxfilt_SOURCES = cxxfilt.c $(BULIBS) ar_SOURCES = arparse.y arlex.l ar.c not-ranlib.c arsup.c rename.c binemul.c \ emul_$(EMULATION).c $(BULIBS) @@ -290,7 +278,7 @@ EXTRA_DIST = arparse.c arparse.h arlex.c diststuff: $(EXTRA_DIST) info -DISTCLEANFILES = stamp-under sysinfo underscore.c sysroff.c sysroff.h \ +DISTCLEANFILES = sysinfo sysroff.c sysroff.h \ site.exp site.bak Makefile: $(BFDDIR)/configure.in @@ -404,6 +392,9 @@ coffgrok.o: coffgrok.c ../bfd/bfd.h $(IN $(INCDIR)/symcat.h $(INCDIR)/libiberty.h bucomm.h config.h \ $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h $(INCDIR)/coff/internal.h \ $(BFDDIR)/libcoff.h $(INCDIR)/bfdlink.h coffgrok.h +cxxfilt.o: cxxfilt.c config.h ../bfd/bfd.h $(INCDIR)/ansidecl.h \ + $(INCDIR)/symcat.h bucomm.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \ + $(INCDIR)/libiberty.h $(INCDIR)/demangle.h $(INCDIR)/safe-ctype.h debug.o: debug.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h debug.h @@ -474,15 +465,15 @@ readelf.o: readelf.c ../bfd/bfd.h $(INCD $(INCDIR)/elf/avr.h $(INCDIR)/elf/cris.h $(INCDIR)/elf/d10v.h \ $(INCDIR)/elf/d30v.h $(INCDIR)/elf/dlx.h $(INCDIR)/elf/fr30.h \ $(INCDIR)/elf/frv.h $(INCDIR)/elf/h8.h $(INCDIR)/elf/hppa.h \ - $(INCDIR)/elf/i386.h $(INCDIR)/elf/i860.h $(INCDIR)/elf/i960.h \ - $(INCDIR)/elf/ia64.h $(INCDIR)/elf/ip2k.h $(INCDIR)/elf/m32r.h \ - $(INCDIR)/elf/m68k.h $(INCDIR)/elf/m68hc11.h $(INCDIR)/elf/mcore.h \ - $(INCDIR)/elf/mips.h $(INCDIR)/elf/mmix.h $(INCDIR)/elf/mn10200.h \ - $(INCDIR)/elf/mn10300.h $(INCDIR)/elf/or32.h $(INCDIR)/elf/pj.h \ - $(INCDIR)/elf/ppc.h $(INCDIR)/elf/s390.h $(INCDIR)/elf/sh.h \ - $(INCDIR)/elf/sparc.h $(INCDIR)/elf/v850.h $(INCDIR)/elf/vax.h \ - $(INCDIR)/elf/x86-64.h $(INCDIR)/elf/xstormy16.h bucomm.h \ - config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \ + $(INCDIR)/elf/i386.h $(INCDIR)/elf/i370.h $(INCDIR)/elf/i860.h \ + $(INCDIR)/elf/i960.h $(INCDIR)/elf/ia64.h $(INCDIR)/elf/ip2k.h \ + $(INCDIR)/elf/m32r.h $(INCDIR)/elf/m68k.h $(INCDIR)/elf/m68hc11.h \ + $(INCDIR)/elf/mcore.h $(INCDIR)/elf/mips.h $(INCDIR)/elf/mmix.h \ + $(INCDIR)/elf/mn10200.h $(INCDIR)/elf/mn10300.h $(INCDIR)/elf/or32.h \ + $(INCDIR)/elf/pj.h $(INCDIR)/elf/ppc.h $(INCDIR)/elf/s390.h \ + $(INCDIR)/elf/sh.h $(INCDIR)/elf/sparc.h $(INCDIR)/elf/v850.h \ + $(INCDIR)/elf/vax.h $(INCDIR)/elf/x86-64.h $(INCDIR)/elf/xstormy16.h \ + bucomm.h config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \ unwind-ia64.h rename.o: rename.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ @@ -541,7 +532,6 @@ wrstabs.o: wrstabs.c ../bfd/bfd.h $(INCD $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h \ debug.h budbg.h $(INCDIR)/aout/aout64.h $(INCDIR)/aout/stab_gnu.h \ $(INCDIR)/aout/stab.def -underscore.o: underscore.c arparse.o: arparse.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ $(INCDIR)/fopen-same.h arsup.h diff -uprN binutils-2.13.90.0.4/binutils/Makefile.in binutils-2.13.90.0.10/binutils/Makefile.in --- binutils-2.13.90.0.4/binutils/Makefile.in Mon Jul 29 08:19:16 2002 +++ binutils-2.13.90.0.10/binutils/Makefile.in Fri Sep 27 08:33:09 2002 @@ -1,4 +1,4 @@ -# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am +# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am # Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation @@ -109,7 +109,6 @@ POFILES = @POFILES@ POSUB = @POSUB@ RANLIB = @RANLIB@ STRIP = @STRIP@ -UNDERSCORE = @UNDERSCORE@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ @@ -182,38 +181,18 @@ INCDIR = $(BASEDIR)/include MKDEP = gcc -MM -INCLUDES = -D_GNU_SOURCE \ - -I. -I$(srcdir) -I../bfd -I$(BFDDIR) -I$(INCDIR) \ - @HDEFINES@ \ - -I$(srcdir)/../intl -I../intl \ - -DLOCALEDIR="\"$(prefix)/share/locale\"" \ - -Dbin_dummy_emulation=$(EMULATION_VECTOR) +INCLUDES = -D_GNU_SOURCE -I. -I$(srcdir) -I../bfd -I$(BFDDIR) -I$(INCDIR) @HDEFINES@ -I$(srcdir)/../intl -I../intl -DLOCALEDIR="\"$(prefix)/share/locale\"" -Dbin_dummy_emulation=$(EMULATION_VECTOR) -HFILES = \ - arsup.h binemul.h bucomm.h budbg.h budemang.h \ - coffgrok.h debug.h dlltool.h nlmconv.h \ - windres.h winduni.h +HFILES = arsup.h binemul.h bucomm.h budbg.h budemang.h coffgrok.h debug.h dlltool.h nlmconv.h windres.h winduni.h GENERATED_HFILES = arparse.h sysroff.h sysinfo.h defparse.h rcparse.h -CFILES = \ - addr2line.c ar.c arsup.c binemul.c bucomm.c budemang.c \ - coffdump.c coffgrok.c debug.c dlltool.c dllwrap.c \ - emul_aix.c emul_vanilla.c filemode.c \ - ieee.c is-ranlib.c is-strip.c maybe-ranlib.c maybe-strip.c \ - nlmconv.c nm.c not-ranlib.c not-strip.c \ - objcopy.c objdump.c prdbg.c \ - rdcoff.c rddbg.c readelf.c rename.c \ - resbin.c rescoff.c resrc.c resres.c \ - size.c srconv.c stabs.c strings.c sysdump.c version.c \ - windres.c winduni.c wrstabs.c - - -GENERATED_CFILES = \ - underscore.c arparse.c arlex.c sysroff.c sysinfo.c syslex.c \ - defparse.c deflex.c nlmheader.c rcparse.c rclex.c +CFILES = addr2line.c ar.c arsup.c binemul.c bucomm.c budemang.c coffdump.c coffgrok.c cxxfilt.c debug.c dlltool.c dllwrap.c emul_aix.c emul_vanilla.c filemode.c ieee.c is-ranlib.c is-strip.c maybe-ranlib.c maybe-strip.c nlmconv.c nm.c not-ranlib.c not-strip.c objcopy.c objdump.c prdbg.c rdcoff.c rddbg.c readelf.c rename.c resbin.c rescoff.c resrc.c resres.c size.c srconv.c stabs.c strings.c sysdump.c version.c windres.c winduni.c wrstabs.c + + +GENERATED_CFILES = arparse.c arlex.c sysroff.c sysinfo.c syslex.c defparse.c deflex.c nlmheader.c rcparse.c rclex.c DEBUG_SRCS = rddbg.c debug.c stabs.c ieee.c rdcoff.c @@ -230,29 +209,12 @@ LIBIBERTY = ../libiberty/libiberty.a POTFILES = $(CFILES) $(DEBUG_SRCS) $(HFILES) -EXPECT = `if [ -f $$r/../expect/expect ] ; then \ - echo $$r/../expect/expect ; \ - else echo expect ; fi` - -RUNTEST = `if [ -f ${srcdir}/../dejagnu/runtest ] ; then \ - echo ${srcdir}/../dejagnu/runtest ; \ - else echo runtest ; fi` - - -CC_FOR_TARGET = ` \ - if [ -f $$r/../gcc/xgcc ] ; then \ - if [ -f $$r/../newlib/Makefile ] ; then \ - echo $$r/../gcc/xgcc -B$$r/../gcc/ -idirafter $$r/../newlib/targ-include -idirafter $${srcroot}/../newlib/libc/include -nostdinc; \ - else \ - echo $$r/../gcc/xgcc -B$$r/../gcc/; \ - fi; \ - else \ - if [ "@host@" = "@target@" ] ; then \ - echo $(CC); \ - else \ - echo gcc | sed '$(transform)'; \ - fi; \ - fi` +EXPECT = `if [ -f $$r/../expect/expect ] ; then echo $$r/../expect/expect ; else echo expect ; fi` + +RUNTEST = `if [ -f ${srcdir}/../dejagnu/runtest ] ; then echo ${srcdir}/../dejagnu/runtest ; else echo runtest ; fi` + + +CC_FOR_TARGET = ` if [ -f $$r/../gcc/xgcc ] ; then if [ -f $$r/../newlib/Makefile ] ; then echo $$r/../gcc/xgcc -B$$r/../gcc/ -idirafter $$r/../newlib/targ-include -idirafter $${srcroot}/../newlib/libc/include -nostdinc; else echo $$r/../gcc/xgcc -B$$r/../gcc/; fi; else if [ "@host@" = "@target@" ] ; then echo $(CC); else echo gcc | sed '$(transform)'; fi; fi` LDADD = $(BFDLIB) $(LIBIBERTY) $(INTLLIBS) @@ -273,16 +235,13 @@ nm_new_SOURCES = nm.c budemang.c $(BULIB objdump_SOURCES = objdump.c budemang.c prdbg.c $(DEBUG_SRCS) $(BULIBS) objdump_LDADD = $(OPCODES) $(BFDLIB) $(LIBIBERTY) $(INTLLIBS) -cxxfilt_SOURCES = -cxxfilt_LDADD = cplus-dem.o underscore.o $(LIBIBERTY) $(INTLLIBS) +cxxfilt_SOURCES = cxxfilt.c $(BULIBS) -ar_SOURCES = arparse.y arlex.l ar.c not-ranlib.c arsup.c rename.c binemul.c \ - emul_$(EMULATION).c $(BULIBS) +ar_SOURCES = arparse.y arlex.l ar.c not-ranlib.c arsup.c rename.c binemul.c emul_$(EMULATION).c $(BULIBS) ar_LDADD = $(BFDLIB) $(LIBIBERTY) @LEXLIB@ $(INTLLIBS) -ranlib_SOURCES = ar.c is-ranlib.c arparse.y arlex.l arsup.c rename.c \ - binemul.c emul_$(EMULATION).c $(BULIBS) +ranlib_SOURCES = ar.c is-ranlib.c arparse.y arlex.l arsup.c rename.c binemul.c emul_$(EMULATION).c $(BULIBS) ranlib_LDADD = $(BFDLIB) $(LIBIBERTY) @LEXLIB@ $(INTLLIBS) @@ -299,20 +258,17 @@ sysdump_SOURCES = sysdump.c $(BULIBS) nlmconv_SOURCES = nlmconv.c nlmheader.y $(BULIBS) -windres_SOURCES = windres.c resrc.c rescoff.c resbin.c rcparse.y rclex.l \ - winduni.c resres.c $(BULIBS) +windres_SOURCES = windres.c resrc.c rescoff.c resbin.c rcparse.y rclex.l winduni.c resres.c $(BULIBS) windres_LDADD = $(BFDLIB) $(LIBIBERTY) @LEXLIB@ $(INTLLIBS) dllwrap_SOURCES = dllwrap.c version.c dllwrap_LDADD = $(LIBIBERTY) $(INTLLIBS) -EXTRA_DIST = arparse.c arparse.h arlex.c nlmheader.c sysinfo.c sysinfo.h \ - syslex.c deflex.c defparse.h defparse.c rclex.c rcparse.h rcparse.c +EXTRA_DIST = arparse.c arparse.h arlex.c nlmheader.c sysinfo.c sysinfo.h syslex.c deflex.c defparse.h defparse.c rclex.c rcparse.h rcparse.c -DISTCLEANFILES = stamp-under sysinfo underscore.c sysroff.c sysroff.h \ - site.exp site.bak +DISTCLEANFILES = sysinfo sysroff.c sysroff.h site.exp site.bak ### @@ -424,9 +380,10 @@ version.$(OBJEXT) filemode.$(OBJEXT) strip_new_LDADD = $(LDADD) strip_new_DEPENDENCIES = ../bfd/libbfd.la ../libiberty/libiberty.a strip_new_LDFLAGS = -cxxfilt_OBJECTS = -cxxfilt_DEPENDENCIES = cplus-dem.o underscore.o \ -../libiberty/libiberty.a +cxxfilt_OBJECTS = cxxfilt.$(OBJEXT) bucomm.$(OBJEXT) version.$(OBJEXT) \ +filemode.$(OBJEXT) +cxxfilt_LDADD = $(LDADD) +cxxfilt_DEPENDENCIES = ../bfd/libbfd.la ../libiberty/libiberty.a cxxfilt_LDFLAGS = LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LEXLIB = @LEXLIB@ @@ -731,7 +688,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCE awk ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)config.in$$unique$(LISP)$$tags" \ - || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags config.in $$unique $(LISP) -o $$here/TAGS) + || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags config.in $$unique $(LISP)) mostlyclean-tags: @@ -822,7 +779,7 @@ site.exp: Makefile @echo 'set build_alias $(build_alias)' >> $@-t @echo 'set build_triplet $(build_triplet)' >> $@-t @echo '## All variables above are generated by configure. Do Not Edit ##' >> $@-t - @test ! -f site.exp || sed '1,/^## All variables above are.*##/ d' site.exp >> $@-t + @test ! -f $(srcdir)/site.exp || sed '1,/^## All variables above are.*##/ d' $(srcdir)/site.exp >> $@-t @test ! -f site.exp || mv site.exp site.bak @mv $@-t site.exp info-am: @@ -871,7 +828,7 @@ distclean-generic: -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: - -test -z "arlexldeflexlrclexlarparseharparsecdefparsehdefparsecnlmheaderhnlmheadercrcparsehrcparsec" || rm -f arlexl deflexl rclexl arparseh arparsec defparseh defparsec nlmheaderh nlmheaderc rcparseh rcparsec + -test -z "arlexcdeflexcrclexcarparseharparsecdefparsehdefparsecnlmheaderhnlmheadercrcparsehrcparsec" || rm -f arlexc deflexc rclexc arparseh arparsec defparseh defparsec nlmheaderh nlmheaderc rcparseh rcparsec mostlyclean-am: mostlyclean-hdr mostlyclean-binPROGRAMS \ mostlyclean-noinstPROGRAMS mostlyclean-compile \ mostlyclean-libtool mostlyclean-tags \ @@ -952,14 +909,6 @@ installcheck: objdump.o:objdump.c $(COMPILE) -c $(OBJDUMP_DEFS) $(srcdir)/objdump.c -underscore.c: stamp-under ; @true - -stamp-under: Makefile - echo '/*WARNING: This file is automatically generated!*/' >underscore.t - echo "int prepends_underscore = @UNDERSCORE@;" >>underscore.t - $(SHELL) $(srcdir)/../move-if-change underscore.t underscore.c - touch stamp-under - cplus-dem.o: $(BASEDIR)/libiberty/cplus-dem.c $(INCDIR)/getopt.h Makefile $(COMPILE) -c -DMAIN -DVERSION='"$(VERSION)"' $(BASEDIR)/libiberty/cplus-dem.c @@ -1132,6 +1081,9 @@ coffgrok.o: coffgrok.c ../bfd/bfd.h $(IN $(INCDIR)/symcat.h $(INCDIR)/libiberty.h bucomm.h config.h \ $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h $(INCDIR)/coff/internal.h \ $(BFDDIR)/libcoff.h $(INCDIR)/bfdlink.h coffgrok.h +cxxfilt.o: cxxfilt.c config.h ../bfd/bfd.h $(INCDIR)/ansidecl.h \ + $(INCDIR)/symcat.h bucomm.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \ + $(INCDIR)/libiberty.h $(INCDIR)/demangle.h $(INCDIR)/safe-ctype.h debug.o: debug.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h debug.h @@ -1202,15 +1154,15 @@ readelf.o: readelf.c ../bfd/bfd.h $(INCD $(INCDIR)/elf/avr.h $(INCDIR)/elf/cris.h $(INCDIR)/elf/d10v.h \ $(INCDIR)/elf/d30v.h $(INCDIR)/elf/dlx.h $(INCDIR)/elf/fr30.h \ $(INCDIR)/elf/frv.h $(INCDIR)/elf/h8.h $(INCDIR)/elf/hppa.h \ - $(INCDIR)/elf/i386.h $(INCDIR)/elf/i860.h $(INCDIR)/elf/i960.h \ - $(INCDIR)/elf/ia64.h $(INCDIR)/elf/ip2k.h $(INCDIR)/elf/m32r.h \ - $(INCDIR)/elf/m68k.h $(INCDIR)/elf/m68hc11.h $(INCDIR)/elf/mcore.h \ - $(INCDIR)/elf/mips.h $(INCDIR)/elf/mmix.h $(INCDIR)/elf/mn10200.h \ - $(INCDIR)/elf/mn10300.h $(INCDIR)/elf/or32.h $(INCDIR)/elf/pj.h \ - $(INCDIR)/elf/ppc.h $(INCDIR)/elf/s390.h $(INCDIR)/elf/sh.h \ - $(INCDIR)/elf/sparc.h $(INCDIR)/elf/v850.h $(INCDIR)/elf/vax.h \ - $(INCDIR)/elf/x86-64.h $(INCDIR)/elf/xstormy16.h bucomm.h \ - config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \ + $(INCDIR)/elf/i386.h $(INCDIR)/elf/i370.h $(INCDIR)/elf/i860.h \ + $(INCDIR)/elf/i960.h $(INCDIR)/elf/ia64.h $(INCDIR)/elf/ip2k.h \ + $(INCDIR)/elf/m32r.h $(INCDIR)/elf/m68k.h $(INCDIR)/elf/m68hc11.h \ + $(INCDIR)/elf/mcore.h $(INCDIR)/elf/mips.h $(INCDIR)/elf/mmix.h \ + $(INCDIR)/elf/mn10200.h $(INCDIR)/elf/mn10300.h $(INCDIR)/elf/or32.h \ + $(INCDIR)/elf/pj.h $(INCDIR)/elf/ppc.h $(INCDIR)/elf/s390.h \ + $(INCDIR)/elf/sh.h $(INCDIR)/elf/sparc.h $(INCDIR)/elf/v850.h \ + $(INCDIR)/elf/vax.h $(INCDIR)/elf/x86-64.h $(INCDIR)/elf/xstormy16.h \ + bucomm.h config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \ unwind-ia64.h rename.o: rename.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ @@ -1269,7 +1221,6 @@ wrstabs.o: wrstabs.c ../bfd/bfd.h $(INCD $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h \ debug.h budbg.h $(INCDIR)/aout/aout64.h $(INCDIR)/aout/stab_gnu.h \ $(INCDIR)/aout/stab.def -underscore.o: underscore.c arparse.o: arparse.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ $(INCDIR)/fopen-same.h arsup.h diff -uprN binutils-2.13.90.0.4/binutils/addr2line.c binutils-2.13.90.0.10/binutils/addr2line.c --- binutils-2.13.90.0.4/binutils/addr2line.c Thu Aug 1 17:49:32 2002 +++ binutils-2.13.90.0.10/binutils/addr2line.c Mon Oct 7 23:08:00 2002 @@ -103,19 +103,16 @@ static void slurp_symtab (abfd) bfd *abfd; { - long storage; long symcount; + unsigned int size; if ((bfd_get_file_flags (abfd) & HAS_SYMS) == 0) return; - storage = bfd_get_symtab_upper_bound (abfd); - if (storage < 0) - bfd_fatal (bfd_get_filename (abfd)); - - syms = (asymbol **) xmalloc (storage); + symcount = bfd_read_minisymbols (abfd, false, (PTR) &syms, &size); + if (symcount == 0) + symcount = bfd_read_minisymbols (abfd, true /* dynamic */, (PTR) &syms, &size); - symcount = bfd_canonicalize_symtab (abfd, syms); if (symcount < 0) bfd_fatal (bfd_get_filename (abfd)); } diff -uprN binutils-2.13.90.0.4/binutils/config.in binutils-2.13.90.0.10/binutils/config.in --- binutils-2.13.90.0.4/binutils/config.in Wed Jun 26 09:24:56 2002 +++ binutils-2.13.90.0.10/binutils/config.in Fri Sep 27 08:33:09 2002 @@ -1,4 +1,4 @@ -/* config.in. Generated automatically from configure.in by autoheader. */ +/* config.in. Generated automatically from configure.in by autoheader 2.13. */ /* Define if using alloca.c. */ #undef C_ALLOCA @@ -211,3 +211,6 @@ /* Configured target name. */ #undef TARGET +/* Define to 1 if user symbol names have a leading underscore, 0 if not. */ +#undef TARGET_PREPENDS_UNDERSCORE + diff -uprN binutils-2.13.90.0.4/binutils/configure binutils-2.13.90.0.10/binutils/configure --- binutils-2.13.90.0.4/binutils/configure Wed Jun 26 09:24:56 2002 +++ binutils-2.13.90.0.10/binutils/configure Fri Sep 27 08:33:09 2002 @@ -5673,6 +5673,9 @@ if test "x$targ_underscore" = "xyes"; th else UNDERSCORE=0 fi +cat >> confdefs.h <, and he assures me + this is right, but I still strongly suspect that there's a + misunderstanding here. + + If we decide it's better for c++filt to use HP's assembler syntax + to scrape identifiers out of its input, here's the definition of + the symbol name syntax from the HP assembler manual: + + Symbols are composed of uppercase and lowercase letters, decimal + digits, dollar symbol, period (.), ampersand (&), pound sign(#) and + underscore (_). A symbol can begin with a letter, digit underscore or + dollar sign. If a symbol begins with a digit, it must contain a + non-digit character. + + So have fun. */ +static const char * +hp_symbol_characters () +{ + return "_$.<>#,*&[]:(){}"; +} + +extern int main PARAMS ((int, char **)); + +int +main (argc, argv) + int argc; + char **argv; +{ + char *result; + int c; + const char *valid_symbols; + const char *demangler = NULL; + const char *options = NULL; + + program_name = argv[0]; + xmalloc_set_program_name (program_name); + + strip_underscore = TARGET_PREPENDS_UNDERSCORE; + + while ((c = getopt_long (argc, argv, "_ns:d:", long_options, (int *) 0)) != EOF) + { + switch (c) + { + case '?': + usage (stderr, 1); + break; + case 'h': + usage (stdout, 0); + case 'n': + strip_underscore = 0; + break; + case 'v': + print_version ("c++filt"); + return (0); + case '_': + strip_underscore = 1; + break; + case 'd': + demangler = optarg; + break; + case 's': + current_demangling_style + = cplus_demangle_name_to_style (optarg); + if (current_demangling_style == unknown_demangling) + { + fprintf (stderr, "%s: unknown demangling style `%s'\n", + program_name, optarg); + return (1); + } + break; + } + } + + init_demangler (NULL, options, demangler); + + if (optind < argc) + { + for ( ; optind < argc; optind++) + { + demangle_it (argv[optind]); + } + } + else + { + switch (current_demangling_style) + { + case gnu_demangling: + case lucid_demangling: + case arm_demangling: + case java_demangling: + case edg_demangling: + case gnat_demangling: + case gnu_v3_demangling: + case auto_demangling: + case compaq_demangling: + valid_symbols = standard_symbol_characters (); + break; + case hp_demangling: + valid_symbols = hp_symbol_characters (); + break; + default: + /* Folks should explicitly indicate the appropriate alphabet for + each demangling. Providing a default would allow the + question to go unconsidered. */ + fatal ("Internal error: no symbol alphabet for current style"); + } + + for (;;) + { + int i = 0; + c = getchar (); + /* Try to read a label. */ + while (c != EOF && (ISALNUM (c) || strchr (valid_symbols, c))) + { + if (i >= MBUF_SIZE-1) + break; + mbuffer[i++] = c; + c = getchar (); + } + if (i > 0) + { + int skip_first = 0; + + mbuffer[i] = 0; + if (mbuffer[0] == '.' || mbuffer[0] == '$') + ++skip_first; + if (strip_underscore && mbuffer[skip_first] == '_') + ++skip_first; + + if (skip_first > i) + skip_first = i; + + result = demangle_symbol (mbuffer + skip_first); + if (result) + { + if (mbuffer[0] == '.') + putc ('.', stdout); + fputs (result, stdout); + free (result); + } + else + fputs (mbuffer, stdout); + + fflush (stdout); + } + if (c == EOF) + break; + putchar (c); + fflush (stdout); + } + } + + return (0); +} diff -uprN binutils-2.13.90.0.4/binutils/doc/Makefile.in binutils-2.13.90.0.10/binutils/doc/Makefile.in --- binutils-2.13.90.0.4/binutils/doc/Makefile.in Sat Jun 8 20:44:52 2002 +++ binutils-2.13.90.0.10/binutils/doc/Makefile.in Fri Sep 27 08:33:09 2002 @@ -113,7 +113,6 @@ POFILES = @POFILES@ POSUB = @POSUB@ RANLIB = @RANLIB@ STRIP = @STRIP@ -UNDERSCORE = @UNDERSCORE@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ diff -uprN binutils-2.13.90.0.4/binutils/objdump.c binutils-2.13.90.0.10/binutils/objdump.c --- binutils-2.13.90.0.4/binutils/objdump.c Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/binutils/objdump.c Fri Sep 27 08:33:09 2002 @@ -74,7 +74,8 @@ static bfd_vma adjust_section_vma = 0; / static int file_start_context = 0; /* --file-start-context */ /* Extra info to pass to the disassembler address printing function. */ -struct objdump_disasm_info { +struct objdump_disasm_info +{ bfd *abfd; asection *sec; boolean require_sec; @@ -371,6 +372,8 @@ dump_headers (abfd) if (wide_output) printf (_(" Flags")); + if (abfd->flags & HAS_LOAD_PAGE) + printf (_(" Pg")); printf ("\n"); bfd_map_over_sections (abfd, dump_section_header, (PTR) NULL); @@ -385,7 +388,6 @@ slurp_symtab (abfd) if (!(bfd_get_file_flags (abfd) & HAS_SYMS)) { - non_fatal (_("%s: no symbols"), bfd_get_filename (abfd)); symcount = 0; return NULL; } @@ -399,8 +401,6 @@ slurp_symtab (abfd) symcount = bfd_canonicalize_symtab (abfd, sy); if (symcount < 0) bfd_fatal (bfd_get_filename (abfd)); - if (symcount == 0) - non_fatal (_("%s: no symbols"), bfd_get_filename (abfd)); return sy; } @@ -431,8 +431,6 @@ slurp_dynamic_symtab (abfd) dynsymcount = bfd_canonicalize_dynamic_symtab (abfd, sy); if (dynsymcount < 0) bfd_fatal (bfd_get_filename (abfd)); - if (dynsymcount == 0) - non_fatal (_("%s: No dynamic symbols"), bfd_get_filename (abfd)); return sy; } @@ -2009,6 +2007,7 @@ dump_bfd_header (abfd) PF (WP_TEXT, "WP_TEXT"); PF (D_PAGED, "D_PAGED"); PF (BFD_IS_RELAXABLE, "BFD_IS_RELAXABLE"); + PF (HAS_LOAD_PAGE, "HAS_LOAD_PAGE"); printf (_("\nstart address 0x")); bfd_printf_vma (abfd, abfd->start_address); printf ("\n"); @@ -2052,14 +2051,12 @@ dump_bfd (abfd) putchar ('\n'); if (dump_section_headers) dump_headers (abfd); + if (dump_symtab || dump_reloc_info || disassemble || dump_debugging) - { - syms = slurp_symtab (abfd); - } + syms = slurp_symtab (abfd); if (dump_dynamic_symtab || dump_dynamic_reloc_info) - { - dynsyms = slurp_dynamic_symtab (abfd); - } + dynsyms = slurp_dynamic_symtab (abfd); + if (dump_symtab) dump_symbols (abfd, false); if (dump_dynamic_symtab) @@ -2089,11 +2086,13 @@ dump_bfd (abfd) } } } + if (syms) { free (syms); syms = NULL; } + if (dynsyms) { free (dynsyms); @@ -2286,19 +2285,18 @@ dump_symbols (abfd, dynamic) { current = dynsyms; max = dynsymcount; - if (max == 0) - return; printf ("DYNAMIC SYMBOL TABLE:\n"); } else { current = syms; max = symcount; - if (max == 0) - return; printf ("SYMBOL TABLE:\n"); } + if (max == 0) + printf (_("no symbols\n")); + for (count = 0; count < max; count++) { if (*current) diff -uprN binutils-2.13.90.0.4/binutils/po/tr.po binutils-2.13.90.0.10/binutils/po/tr.po --- binutils-2.13.90.0.4/binutils/po/tr.po Thu Feb 7 10:21:04 2002 +++ binutils-2.13.90.0.10/binutils/po/tr.po Fri Sep 27 08:33:09 2002 @@ -4,297 +4,346 @@ # msgid "" msgstr "" -"Project-Id-Version: binutils 2.12-pre020121\n" -"POT-Creation-Date: 2002-01-17 13:58+0000\n" -"PO-Revision-Date: 2002-02-04 21:49EET\n" +"Project-Id-Version: binutils 2.12.91\n" +"POT-Creation-Date: 2002-07-23 15:55-0400\n" +"PO-Revision-Date: 2002-08-10 21:49EET\n" "Last-Translator: Deniz Akkus Kanca \n" "Language-Team: Turkish \n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-9\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 0.9.5\n" -#: addr2line.c:73 +#: addr2line.c:74 #, c-format +msgid "Usage: %s [option(s)] [addr(s)]\n" +msgstr "Kullanım: %s [seçenekler] [adresler]\n" + +#: addr2line.c:75 +msgid " Convert addresses into line number/file name pairs.\n" +msgstr " adresleri satır numarası/dosya adı çiftlerine çevirir.\n" + +#: addr2line.c:76 +msgid " If no addresses are specified on the command line, they will be read from stdin\n" +msgstr " EÄŸer komut satırında adres belirtilmezse, standart girdiden okunur\n" + +#: addr2line.c:77 msgid "" -"Usage: %s [-CfsHV] [-b bfdname] [--target=bfdname]\n" -" [-e executable] [--exe=executable] [--demangle[=style]]\n" -" [--basenames] [--functions] [addr addr ...]\n" -msgstr "" -"Kullaným: %s [-CfsHV] [-b bfd_adý] \n" -" [--target=bfd_adý] hedef\n" -" [-e uygulama] [--exe=uygulama] \n" -" [--demangle[=tarz]] düzeltme tarzý\n" -" [--basenames] temel isimler\n" -" [--functions] [adres adres ...] iþlevler\n" +" The options are:\n" +" -b --target= Set the binary file format\n" +" -e --exe= Set the input file name (default is a.out)\n" +" -s --basenames Strip directory names\n" +" -f --functions Show function names\n" +" -C --demangle[=style] Demangle function names\n" +" -h --help Display this information\n" +" -v --version Display the program's version\n" +"\n" +msgstr "" +" Seçenekler:\n" +" -b --target= Ä°kilik dosya biçemini belirtir\n" +" -e --exe=<çalıştırılabilir dosya> Girdi adını belirtir (öntanımlı: a.out)\n" +" -s --basenames Dizin adlarını soyar\n" +" -f --functions Ä°ÅŸlev adlarını gösterir\n" +" -C --demangle[=tarz] Ä°ÅŸlev adlarını düzeltir\n" +" -h --help Bu bilgiyi gösterir\n" +" -v --version Program sürüm no'sunu gösterir\n" +"\n" -#: addr2line.c:80 ar.c:289 nlmconv.c:1121 objcopy.c:423 objcopy.c:455 -#: readelf.c:2181 size.c:91 strings.c:655 windres.c:737 +#: addr2line.c:89 ar.c:297 coffdump.c:479 nlmconv.c:1119 objcopy.c:424 +#: objcopy.c:457 readelf.c:2310 size.c:104 srconv.c:1962 strings.c:666 +#: sysdump.c:774 windres.c:733 #, c-format msgid "Report bugs to %s\n" -msgstr "Yazýlým hatalarýný %s adresine, çeviri hatalarýný adresine gönderin\n" +msgstr "Yazılım hatalarını %s adresine, çeviri hatalarını adresine gönderin\n" -#: addr2line.c:240 +#: addr2line.c:248 #, c-format msgid "%s: can not get addresses from archive" -msgstr "%s: arþivden adresler alýnamadý" +msgstr "%s: arÅŸivden adresler alınamadı" -#: addr2line.c:312 nm.c:447 objdump.c:2800 +#: addr2line.c:320 nm.c:395 objdump.c:2782 #, c-format msgid "unknown demangling style `%s'" -msgstr "bilinmeyen düzeltme tarzý '%s'" +msgstr "bilinmeyen düzeltme tarzı '%s'" -#: ar.c:237 +#: ar.c:238 #, c-format msgid "no entry %s in archive\n" -msgstr "arþivde %s girdisi yok\n" +msgstr "arÅŸivde %s girdisi yok\n" -#: ar.c:254 +#: ar.c:255 #, c-format -msgid "Usage: %s [-X32_64] [-]{dmpqrstx}[abcfilNoPsSuvV] [member-name] [count] archive-file file...\n" -msgstr "Kullaným: %s [-X32_64] [-]{dmpqrstx}[abcfilNoPsSuvV] [üye-adý] [sayý] arþiv-dosyasý dosya...\n" +msgid "Usage: %s [emulation options] [-]{dmpqrstx}[abcfilNoPsSuvV] [member-name] [count] archive-file file...\n" +msgstr "Kullanım: %s [öykünüm seçenekleri] [-]{dmpqrstx}[abcfilNoPsSuvV] [üye-adı] [sayı] arÅŸiv-dosyası dosya...\n" -#: ar.c:257 +#: ar.c:258 #, c-format msgid " %s -M [\n\n" -msgstr "\n<üye %s>\n\n" +msgid "" +"\n" +"\n" +"\n" +msgstr "" +"\n" +"<üye %s>\n" +"\n" -#: ar.c:850 ar.c:918 +#: ar.c:857 ar.c:925 #, c-format msgid "%s is not a valid archive" -msgstr "%s geçerli bir arþiv deðil" +msgstr "%s geçerli bir arÅŸiv deÄŸil" -#: ar.c:886 +#: ar.c:893 #, c-format msgid "stat returns negative size for %s" -msgstr "stat komutu, %s için negatif büyüklük gösteriyor" +msgstr "stat komutu, %s için negatif büyüklük gösteriyor" -#: ar.c:1013 +#: ar.c:1020 #, c-format msgid "%s is not an archive" -msgstr "%s bir arþiv deðil" +msgstr "%s bir arÅŸiv deÄŸil" -#: ar.c:1020 +#: ar.c:1027 #, c-format msgid "creating %s" -msgstr "%s oluþturuluyor" +msgstr "%s oluÅŸturuluyor" -#: ar.c:1226 +#: ar.c:1233 #, c-format msgid "No member named `%s'\n" -msgstr "`%s' adýnda bir üye yok\n" +msgstr "`%s' adında bir üye yok\n" -#: ar.c:1278 +#: ar.c:1285 #, c-format msgid "no entry %s in archive %s!" -msgstr "arþiv %2$s içerisinde %1$s girdisi yok!" +msgstr "arÅŸiv %2$s içerisinde %1$s girdisi yok!" -#: ar.c:1439 +#: ar.c:1422 #, c-format msgid "%s: no archive map to update" -msgstr "%s: güncellenecek arþiv eþlemesi yok" +msgstr "%s: güncellenecek arÅŸiv eÅŸlemesi yok" -#: arsup.c:88 +#: arsup.c:86 #, c-format msgid "No entry %s in archive.\n" -msgstr "Arþiv içinde %s girdisi yok.\n" +msgstr "ArÅŸiv içinde %s girdisi yok.\n" -#: arsup.c:120 +#: arsup.c:117 #, c-format msgid "Can't open file %s\n" -msgstr "%s dosyasý açýlamadý\n" +msgstr "%s dosyası açılamadı\n" -#: arsup.c:171 +#: arsup.c:172 #, c-format msgid "%s: Can't open output archive %s\n" -msgstr "%s: Çýktý arþivi %s açýlamadý\n" +msgstr "%s: Çıktı arÅŸivi %s açılamadı\n" -#: arsup.c:183 +#: arsup.c:189 #, c-format msgid "%s: Can't open input archive %s\n" -msgstr "%s: Girdi arþivi %s açýlamadý\n" +msgstr "%s: Girdi arÅŸivi %s açılamadı\n" -#: arsup.c:189 +#: arsup.c:198 #, c-format msgid "%s: file %s is not an archive\n" -msgstr "%s: %s dosyasý bir arþiv deðil\n" +msgstr "%s: %s dosyası bir arÅŸiv deÄŸil\n" -#: arsup.c:230 +#: arsup.c:241 #, c-format msgid "%s: no output archive specified yet\n" -msgstr "%s: henüz bir çýktý arþivi belirtilmedi\n" +msgstr "%s: henüz bir çıktı arÅŸivi belirtilmedi\n" -#: arsup.c:250 arsup.c:285 arsup.c:321 arsup.c:341 arsup.c:399 +#: arsup.c:262 arsup.c:301 arsup.c:343 arsup.c:364 arsup.c:430 #, c-format msgid "%s: no open output archive\n" -msgstr "%s: açýk çýktý arþivi yok\n" +msgstr "%s: açık çıktı arÅŸivi yok\n" -#: arsup.c:258 arsup.c:359 arsup.c:379 +#: arsup.c:273 arsup.c:385 arsup.c:411 #, c-format msgid "%s: can't open file %s\n" -msgstr "%s: %s dosyasý açýlamadý\n" +msgstr "%s: %s dosyası açılamadı\n" -#: arsup.c:306 arsup.c:375 arsup.c:454 +#: arsup.c:328 arsup.c:407 arsup.c:489 #, c-format msgid "%s: can't find module file %s\n" -msgstr "%s: modül dosyasý %s bulunamadý\n" +msgstr "%s: modül dosyası %s bulunamadı\n" -#: arsup.c:406 +#: arsup.c:439 #, c-format msgid "Current open archive is %s\n" -msgstr "Þimdiki açýk arþiv %s\n" +msgstr "Åžimdiki açık arÅŸiv %s\n" + +#: arsup.c:464 +#, c-format +msgid "%s: no open archive\n" +msgstr "%s: açık arÅŸiv yok\n" + +#: binemul.c:39 +#, c-format +msgid " No emulation specific options\n" +msgstr " Öykünüme özgü seçenekler yok\n" -#: arsup.c:433 +#. Macros for common output. +#: binemul.h:42 #, c-format -msgid "%s: no open archive\n" -msgstr "%s: açýk arþiv yok\n" +msgid " emulation options: \n" +msgstr " öykünüm seçenekleri: \n" #: bucomm.c:106 #, c-format msgid "can't set BFD default target to `%s': %s" -msgstr "BFD öntanýmlý hedef `%s' olarak atanamadý: %s" +msgstr "BFD öntanımlı hedef `%s' olarak atanamadı: %s" #: bucomm.c:118 #, c-format msgid "%s: Matching formats:" -msgstr "%s: Eþleþen biçemler:" +msgstr "%s: EÅŸleÅŸen biçemler:" #: bucomm.c:135 msgid "Supported targets:" @@ -317,686 +366,719 @@ msgstr "%s: desteklenen platformlar:" #: bucomm.c:262 #, c-format msgid "%s: bad number: %s" -msgstr "%s: hatalý sayý: %s" +msgstr "%s: hatalı sayı: %s" -#: coffdump.c:106 +#: coffdump.c:107 #, c-format msgid "#lines %d " -msgstr "#satýrlar %d " +msgstr "#satırlar %d " -#: coffdump.c:468 sysdump.c:740 +#: coffdump.c:471 sysdump.c:767 #, c-format -msgid "%s: Print a human readable interpretation of a SYSROFF object file\n" -msgstr "%s: SYSROFF nesne dosyasýný insan tarafýndan okunabilir biçemde yazdýrýr\n" +msgid "Usage: %s [option(s)] in-file\n" +msgstr "Kullanım: %s girdi-dosya(ları)\n" + +#: coffdump.c:472 +msgid " Print a human readable interpretation of a SYSROFF object file\n" +msgstr " SYSROFF nesne dosyasını insan tarafından okunabilir biçemde yazdırır\n" -#: coffdump.c:531 srconv.c:2029 sysdump.c:799 +#: coffdump.c:473 +msgid "" +" The options are:\n" +" -h --help Display this information\n" +" -v --version Display the program's version\n" +"\n" +msgstr "" +" Seçenekler:\n" +" -h --help Bu bilgiyi gösterir\n" +" -v --version Program sürüm no'sunu gösterir\n" +"\n" + +#: coffdump.c:541 srconv.c:2052 sysdump.c:831 msgid "no input file specified" -msgstr "girdi dosyasý belirtilmedi" +msgstr "girdi dosyası belirtilmedi" #: debug.c:653 msgid "debug_add_to_current_namespace: no current file" -msgstr "hata_ayýkla_mevcut_isim_uzayýna_ekle: mevcut dosya yok" +msgstr "hata_ayıkla_mevcut_isim_uzayına_ekle: mevcut dosya yok" #: debug.c:736 msgid "debug_start_source: no debug_set_filename call" -msgstr "hata_ayýkla_kaynak: hata_ayýkla_dosya_adý_ata çaðrýlmadý" +msgstr "hata_ayıkla_kaynak: hata_ayıkla_dosya_adı_ata çaÄŸrılmadı" #: debug.c:795 msgid "debug_record_function: no debug_set_filename call" -msgstr "hata_ayýkla_kayýt_iþlevi: hata_ayýkla_dosya_adý_ata çaðrýlmadý" +msgstr "hata_ayıkla_kayıt_iÅŸlevi: hata_ayıkla_dosya_adı_ata çaÄŸrılmadı" #: debug.c:851 msgid "debug_record_parameter: no current function" -msgstr "hata_ayýkla_kayýt_parametresi: mevcut iþlev yok" +msgstr "hata_ayıkla_kayıt_parametresi: mevcut iÅŸlev yok" #: debug.c:885 msgid "debug_end_function: no current function" -msgstr "hata_ayýkla_son_iþlev: mevcut iþlev yok" +msgstr "hata_ayıkla_son_iÅŸlev: mevcut iÅŸlev yok" #: debug.c:891 msgid "debug_end_function: some blocks were not closed" -msgstr "hata_ayýkla_son_iþlev: bazý bloklar kapatýlmamýþ" +msgstr "hata_ayıkla_son_iÅŸlev: bazı bloklar kapatılmamış" #: debug.c:921 msgid "debug_start_block: no current block" -msgstr "hata_ayýkla_baþla_blok: mevcut blok yok" +msgstr "hata_ayıkla_baÅŸla_blok: mevcut blok yok" #: debug.c:959 msgid "debug_end_block: no current block" -msgstr "hata_ayýkla_son_blok: mevcut blok yok" +msgstr "hata_ayıkla_son_blok: mevcut blok yok" #: debug.c:966 msgid "debug_end_block: attempt to close top level block" -msgstr "hata_ayýkla_son_blok: tepe seviye bloðu kapama denemesi" +msgstr "hata_ayıkla_son_blok: tepe seviye bloÄŸu kapama denemesi" #: debug.c:992 msgid "debug_record_line: no current unit" -msgstr "hata_ayýkla_kayýt_satýr: mevcut birim yok" +msgstr "hata_ayıkla_kayıt_satır: mevcut birim yok" #. FIXME #: debug.c:1046 msgid "debug_start_common_block: not implemented" -msgstr "hata_ayýkla_ortak_blok_baþla: henüz tamamlanmamýþ" +msgstr "hata_ayıkla_ortak_blok_baÅŸla: henüz tamamlanmamış" #. FIXME #: debug.c:1058 msgid "debug_end_common_block: not implemented" -msgstr "hata_ayýkla_ortak_blok_son: henüz tamamlanmamýþ" +msgstr "hata_ayıkla_ortak_blok_son: henüz tamamlanmamış" #. FIXME. #: debug.c:1152 -msgid "debug_record_label not implemented" -msgstr "hata_ayýkla_kayýt_etiket: henüz tamamlanmamýþ" +msgid "debug_record_label: not implemented" +msgstr "hata_ayıkla_kayıt_etiket: henüz tamamlanmamış" #: debug.c:1178 msgid "debug_record_variable: no current file" -msgstr "hata_ayýkla_kayýt_deðiþken: mevcut dosya yok" +msgstr "hata_ayıkla_kayıt_deÄŸiÅŸken: mevcut dosya yok" #: debug.c:1194 msgid "debug_record_variable: no current block" -msgstr "hata_ayýkla_kayýt_deðiþken: mevcut blok yok" +msgstr "hata_ayıkla_kayıt_deÄŸiÅŸken: mevcut blok yok" -#: debug.c:1764 +#: debug.c:1763 msgid "debug_make_undefined_type: unsupported kind" -msgstr "hata_ayýkla_tanýmlanmamýþ_tip: desteklenmeyen tip" +msgstr "hata_ayıkla_tanımlanmamış_tip: desteklenmeyen tip" -#: debug.c:1970 +#: debug.c:1964 msgid "debug_name_type: no current file" -msgstr "hata_ayýkla_isim_tipi: mevcut dosya yok" +msgstr "hata_ayıkla_isim_tipi: mevcut dosya yok" -#: debug.c:2018 +#: debug.c:2012 msgid "debug_tag_type: no current file" -msgstr "hata_ayýkla_etiket_tipi: mevcut dosya yok" +msgstr "hata_ayıkla_etiket_tipi: mevcut dosya yok" -#: debug.c:2026 +#: debug.c:2020 msgid "debug_tag_type: extra tag attempted" -msgstr "hata_ayýkla_etiket_tipi: fazla etiketleme denendi" +msgstr "hata_ayıkla_etiket_tipi: fazla etiketleme denendi" -#: debug.c:2066 +#: debug.c:2059 #, c-format msgid "Warning: changing type size from %d to %d\n" -msgstr "Uyarý: tip boyutu %d'den %d'ye deðiþtirildi\n" +msgstr "Uyarı: tip boyutu %d'den %d'ye deÄŸiÅŸtirildi\n" -#: debug.c:2090 +#: debug.c:2083 msgid "debug_find_named_type: no current compilation unit" -msgstr "hata_ayýkla_isimli_tipi_bul: mevcut derleme birimi yok" +msgstr "hata_ayıkla_isimli_tipi_bul: mevcut derleme birimi yok" -#: debug.c:2197 +#: debug.c:2190 #, c-format msgid "debug_get_real_type: circular debug information for %s\n" -msgstr "hata_ayýkla_gerçek_tipi_al: %s için çevrimsel hata ayýklama bilgisi\n" +msgstr "hata_ayıkla_gerçek_tipi_al: %s için çevrimsel hata ayıklama bilgisi\n" -#: debug.c:2662 +#: debug.c:2650 msgid "debug_write_type: illegal type encountered" -msgstr "hata_ayýkla_yaz_tipi: geçersiz tip bulundu" +msgstr "hata_ayıkla_yaz_tipi: geçersiz tip bulundu" -#: dlltool.c:743 dlltool.c:768 dlltool.c:794 +#: dlltool.c:735 dlltool.c:760 dlltool.c:786 #, c-format msgid "Internal error: Unknown machine type: %d" -msgstr "Ýç hata: Bilinmeyen makina tipi: %d" +msgstr "İç hata: Bilinmeyen makina tipi: %d" -#: dlltool.c:831 +#: dlltool.c:823 #, c-format msgid "Can't open def file: %s" -msgstr "Taným dosyasý açýlamadý: %s" +msgstr "Tanım dosyası açılamadı: %s" -#: dlltool.c:836 +#: dlltool.c:828 #, c-format msgid "Processing def file: %s" -msgstr "Taným dosyasý iþleniyor: %s" +msgstr "Tanım dosyası iÅŸleniyor: %s" -#: dlltool.c:840 +#: dlltool.c:832 msgid "Processed def file" -msgstr "Taným dosyasý iþlendi" +msgstr "Tanım dosyası iÅŸlendi" -#: dlltool.c:866 +#: dlltool.c:858 #, c-format msgid "Syntax error in def file %s:%d" -msgstr "Taným dosyasý %s'nda sözdizim hatasý:%d" +msgstr "Tanım dosyası %s'nda sözdizim hatası:%d" -#: dlltool.c:905 +#: dlltool.c:897 #, c-format msgid "NAME: %s base: %x" -msgstr "ÝSÝM: %s temel: %x" +msgstr "Ä°SÄ°M: %s temel: %x" -#: dlltool.c:908 dlltool.c:927 +#: dlltool.c:900 dlltool.c:919 msgid "Can't have LIBRARY and NAME" -msgstr "KÝTAPLIK ve ÝSÝM beraber olamaz" +msgstr "KÄ°TAPLIK ve Ä°SÄ°M beraber olamaz" -#: dlltool.c:924 +#: dlltool.c:916 #, c-format msgid "LIBRARY: %s base: %x" -msgstr "KÝTAPLIK: %s temel: %x" +msgstr "KÄ°TAPLIK: %s temel: %x" -#: dlltool.c:1182 resrc.c:271 +#: dlltool.c:1174 resrc.c:271 #, c-format msgid "wait: %s" msgstr "bekle: %s" -#: dlltool.c:1187 dllwrap.c:455 resrc.c:276 +#: dlltool.c:1179 dllwrap.c:430 resrc.c:276 #, c-format msgid "subprocess got fatal signal %d" -msgstr "Ast-iþlem %d ölümcül sinyalini aldý" +msgstr "Ast-iÅŸlem %d ölümcül sinyalini aldı" -#: dlltool.c:1193 dllwrap.c:462 resrc.c:283 +#: dlltool.c:1185 dllwrap.c:437 resrc.c:283 #, c-format msgid "%s exited with status %d" -msgstr "%s %d durumu ile çýktý" +msgstr "%s %d durumu ile çıktı" -#: dlltool.c:1225 +#: dlltool.c:1217 #, c-format msgid "Sucking in info from %s section in %s" -msgstr "%2$s'in %1$s bölümünden bilgi emiliyor" +msgstr "%2$s'in %1$s bölümünden bilgi emiliyor" -#: dlltool.c:1349 +#: dlltool.c:1341 #, c-format msgid "Excluding symbol: %s" -msgstr "Sembol dýþlandý: %s" +msgstr "Sembol dışlandı: %s" -#: dlltool.c:1444 dlltool.c:1455 nm.c:958 nm.c:969 objdump.c:383 objdump.c:400 +#: dlltool.c:1436 dlltool.c:1447 nm.c:959 nm.c:970 objdump.c:386 objdump.c:401 #, c-format msgid "%s: no symbols" msgstr "%s: sembol yok" #. FIXME: we ought to read in and block out the base relocations -#: dlltool.c:1482 +#: dlltool.c:1474 #, c-format msgid "Done reading %s" msgstr "%s okundu" -#: dlltool.c:1493 +#: dlltool.c:1485 #, c-format msgid "Unable to open object file: %s" -msgstr "Nesne dosyasý açýlamadý: %s" +msgstr "Nesne dosyası açılamadı: %s" -#: dlltool.c:1496 +#: dlltool.c:1488 #, c-format msgid "Scanning object file %s" -msgstr "Nesne dosyasý %s taranýyor" +msgstr "Nesne dosyası %s taranıyor" -#: dlltool.c:1511 +#: dlltool.c:1503 #, c-format msgid "Cannot produce mcore-elf dll from archive file: %s" -msgstr "Arþiv dosyasýndan mcore-elf dll oluþturulamadý: %s" +msgstr "ArÅŸiv dosyasından mcore-elf dll oluÅŸturulamadı: %s" -#: dlltool.c:1603 +#: dlltool.c:1595 msgid "Adding exports to output file" -msgstr "Çýktý dosyasýna ihraçlar ekleniyor" +msgstr "Çıktı dosyasına ihraçlar ekleniyor" -#: dlltool.c:1648 +#: dlltool.c:1640 msgid "Added exports to output file" -msgstr "Çýktý dosyasýna ihraçlar eklendi" +msgstr "Çıktı dosyasına ihraçlar eklendi" -#: dlltool.c:1772 +#: dlltool.c:1764 #, c-format msgid "Generating export file: %s" -msgstr "Ýhraç dosyasý oluþturuluyor: %s" +msgstr "Ä°hraç dosyası oluÅŸturuluyor: %s" -#: dlltool.c:1777 +#: dlltool.c:1769 #, c-format msgid "Unable to open temporary assembler file: %s" -msgstr "Geçiçi üretici dosyasý açýlamadý: %s" +msgstr "Geçiçi üretici dosyası açılamadı: %s" -#: dlltool.c:1780 +#: dlltool.c:1772 #, c-format msgid "Opened temporary file: %s" -msgstr "Geçici dosya açýldý: %s" +msgstr "Geçici dosya açıldı: %s" -#: dlltool.c:2004 +#: dlltool.c:1996 msgid "Generated exports file" -msgstr "Ýhraç dosyasý oluþturuldu" +msgstr "Ä°hraç dosyası oluÅŸturuldu" -#: dlltool.c:2266 +#: dlltool.c:2258 #, c-format msgid "bfd_open failed open stub file: %s" -msgstr "koçan dosyasý bfd_open ile açýlamadý: %s" +msgstr "koçan dosyası bfd_open ile açılamadı: %s" -#: dlltool.c:2269 +#: dlltool.c:2261 #, c-format msgid "Creating stub file: %s" -msgstr "Koçan dosyasý oluþturuluyor: %s" +msgstr "Koçan dosyası oluÅŸturuluyor: %s" -#: dlltool.c:2658 +#: dlltool.c:2650 #, c-format msgid "failed to open temporary head file: %s" -msgstr "geçici baþlýk dosyasý açýlamadý: %s" +msgstr "geçici baÅŸlık dosyası açılamadı: %s" -#: dlltool.c:2717 +#: dlltool.c:2709 #, c-format msgid "failed to open temporary tail file: %s" -msgstr "geçici kuyruk dosyasý açýlamadý: %s" +msgstr "geçici kuyruk dosyası açılamadı: %s" -#: dlltool.c:2785 +#: dlltool.c:2777 #, c-format msgid "Can't open .lib file: %s" -msgstr ".lib dosyasý açýlamadý: %s" +msgstr ".lib dosyası açılamadı: %s" -#: dlltool.c:2788 +#: dlltool.c:2780 #, c-format msgid "Creating library file: %s" -msgstr "Kitaplýk dosyasý açýlamadý: %s" +msgstr "Kitaplık dosyası açılamadı: %s" -#: dlltool.c:2847 +#: dlltool.c:2839 #, c-format msgid "cannot delete %s: %s" msgstr "%s silinemedi: %s" -#: dlltool.c:2851 +#: dlltool.c:2843 msgid "Created lib file" -msgstr "Lib dosyasý oluþturuldu" +msgstr "Lib dosyası oluÅŸturuldu" -#: dlltool.c:2956 +#: dlltool.c:2948 #, c-format msgid "Warning, ignoring duplicate EXPORT %s %d,%d" -msgstr "Uyarý, EXPORT tekrarý %s %d,%d yoksayýldý" +msgstr "Uyarı, EXPORT tekrarı %s %d,%d yoksayıldı" -#: dlltool.c:2962 +#: dlltool.c:2954 #, c-format msgid "Error, duplicate EXPORT with oridinals: %s" -msgstr "Hata, orjinal hali ile EXPORT tekrarý: %s" +msgstr "Hata, orjinal hali ile EXPORT tekrarı: %s" -#: dlltool.c:3089 +#: dlltool.c:3081 msgid "Processing definitions" -msgstr "Tanýmlar iþleniyor" +msgstr "Tanımlar iÅŸleniyor" -#: dlltool.c:3127 +#: dlltool.c:3119 msgid "Processed definitions" -msgstr "Tanýmlar iþlendi" +msgstr "Tanımlar iÅŸlendi" #. xgetext:c-format -#: dlltool.c:3138 dllwrap.c:519 +#: dlltool.c:3130 dllwrap.c:495 #, c-format -msgid "Usage %s \n" -msgstr "Kullaným %s \n" +msgid "Usage %s \n" +msgstr "Kullanım %s \n" #. xgetext:c-format -#: dlltool.c:3140 +#: dlltool.c:3132 #, c-format msgid " -m --machine Create as DLL for . [default: %s]\n" -msgstr " -m --machine için DLL olarak oluþtur. [öntanýmlý: %s]\n" +msgstr " -m --machine için DLL olarak oluÅŸtur. [öntanımlı: %s]\n" -#: dlltool.c:3141 +#: dlltool.c:3133 msgid " possible : arm[_interwork], i386, mcore[-elf]{-le|-be}, ppc, thumb\n" -msgstr " tanýmlý : arm[_interwork], i386, mcore[-elf]{-le|-be}, ppc, thumb\n" +msgstr " tanımlı : arm[_interwork], i386, mcore[-elf]{-le|-be}, ppc, thumb\n" -#: dlltool.c:3142 +#: dlltool.c:3134 msgid " -e --output-exp Generate an export file.\n" -msgstr " -e --output-exp <çýktýadý> Ýhraç dosyasý oluþturur.\n" +msgstr " -e --output-exp <çıktıadı> Ä°hraç dosyası oluÅŸturur.\n" -#: dlltool.c:3143 +#: dlltool.c:3135 msgid " -l --output-lib Generate an interface library.\n" -msgstr " -l --output-lib <çýktýadý> Arayüz kitaplýðý oluþturur.\n" +msgstr " -l --output-lib <çıktıadı> Arayüz kitaplığı oluÅŸturur.\n" -#: dlltool.c:3144 +#: dlltool.c:3136 msgid " -a --add-indirect Add dll indirects to export file.\n" -msgstr " -a --add-indirect Ýhraç dosyasýna dll yönlendirmelerini ekler.\n" +msgstr " -a --add-indirect Ä°hraç dosyasına dll yönlendirmelerini ekler.\n" -#: dlltool.c:3145 +#: dlltool.c:3137 msgid " -D --dllname Name of input dll to put into interface lib.\n" -msgstr " -D --dllname Arayüz kitaplýðýna eklenecek girdi dll adý.\n" +msgstr " -D --dllname Arayüz kitaplığına eklenecek girdi dll adı.\n" -#: dlltool.c:3146 +#: dlltool.c:3138 msgid " -d --input-def Name of .def file to be read in.\n" -msgstr " -d --input-def Okunacak .def dosyasýnýn adý.\n" +msgstr " -d --input-def Okunacak .def dosyasının adı.\n" -#: dlltool.c:3147 +#: dlltool.c:3139 msgid " -z --output-def Name of .def file to be created.\n" -msgstr " -z --output-def Oluþturulacak .def dosyasýnýn adý.\n" +msgstr " -z --output-def OluÅŸturulacak .def dosyasının adı.\n" -#: dlltool.c:3148 +#: dlltool.c:3140 msgid " --export-all-symbols Export all symbols to .def\n" -msgstr " --export-all-symbols Bütün sembolleri .def'e ihraç eder\n" +msgstr " --export-all-symbols Bütün sembolleri .def'e ihraç eder\n" -#: dlltool.c:3149 +#: dlltool.c:3141 msgid " --no-export-all-symbols Only export listed symbols\n" -msgstr " --no-export-all-symbols Yalnýzca listelenmiþ sembolleri ihraç eder\n" +msgstr " --no-export-all-symbols Yalnızca listelenmiÅŸ sembolleri ihraç eder\n" -#: dlltool.c:3150 +#: dlltool.c:3142 msgid " --exclude-symbols Don't export \n" -msgstr " --exclude-symbols 'yi ihraç etmez\n" +msgstr " --exclude-symbols 'yi ihraç etmez\n" -#: dlltool.c:3151 +#: dlltool.c:3143 msgid " --no-default-excludes Clear default exclude symbols\n" -msgstr " --no-default-excludes Öntanýmlý ihraç edilmeyecek sembol listesini boþaltýr\n" +msgstr " --no-default-excludes Öntanımlı ihraç edilmeyecek sembol listesini boÅŸaltır\n" -#: dlltool.c:3152 +#: dlltool.c:3144 msgid " -b --base-file Read linker generated base file.\n" -msgstr " -b --base-file Baðlayýcýnýn oluþturduðu temel dosyayý okur.\n" +msgstr " -b --base-file BaÄŸlayıcının oluÅŸturduÄŸu temel dosyayı okur.\n" -#: dlltool.c:3153 +#: dlltool.c:3145 msgid " -x --no-idata4 Don't generate idata$4 section.\n" -msgstr " -x --no-idata4 idata$4 bölümü oluþturmaz.\n" +msgstr " -x --no-idata4 idata$4 bölümü oluÅŸturmaz.\n" -#: dlltool.c:3154 +#: dlltool.c:3146 msgid " -c --no-idata5 Don't generate idata$5 section.\n" -msgstr " -c --no-idata5 idata$5 bölümü oluþturmaz.\n" +msgstr " -c --no-idata5 idata$5 bölümü oluÅŸturmaz.\n" -#: dlltool.c:3155 +#: dlltool.c:3147 msgid " -U --add-underscore Add underscores to symbols in interface library.\n" -msgstr " -U --add-underscore Arayüz kitaplýðýndaki sembollere alt-tire ekler.\n" +msgstr " -U --add-underscore Arayüz kitaplığındaki sembollere alt-tire ekler.\n" -#: dlltool.c:3156 +#: dlltool.c:3148 msgid " -k --kill-at Kill @ from exported names.\n" -msgstr " -k --kill-at Ýhraç edilmiþ isimlerden @'da öldürür.\n" +msgstr " -k --kill-at Ä°hraç edilmiÅŸ isimlerden @'da öldürür.\n" -#: dlltool.c:3157 +#: dlltool.c:3149 msgid " -A --add-stdcall-alias Add aliases without @.\n" -msgstr " -A --add-stdcall-alias Rumuzlarý @ içermeksizin ekler.\n" +msgstr " -A --add-stdcall-alias Rumuzları @ içermeksizin ekler.\n" -#: dlltool.c:3158 +#: dlltool.c:3150 msgid " -S --as Use for assembler.\n" -msgstr " -S --as Üretici olarak kullanýr.\n" +msgstr " -S --as Ãœretici olarak kullanır.\n" -#: dlltool.c:3159 +#: dlltool.c:3151 msgid " -f --as-flags Pass to the assembler.\n" -msgstr " -f --as-flags Üreticiye i geçirir.\n" +msgstr " -f --as-flags Ãœreticiye i geçirir.\n" -#: dlltool.c:3160 +#: dlltool.c:3152 msgid " -C --compat-implib Create backward compatible import library.\n" -msgstr " -C --compat-implib Geçmiþe uyumlu ithal kitaplýðý oluþturur.\n" +msgstr " -C --compat-implib GeçmiÅŸe uyumlu ithal kitaplığı oluÅŸturur.\n" -#: dlltool.c:3161 +#: dlltool.c:3153 msgid " -n --no-delete Keep temp files (repeat for extra preservation).\n" -msgstr " -n --no-delete Geçici dosyalarý tutar (daha da koruyucu olmasý için tekrarlanabilir).\n" +msgstr " -n --no-delete Geçici dosyaları tutar (daha da koruyucu olması için tekrarlanabilir).\n" -#: dlltool.c:3162 +#: dlltool.c:3154 msgid " -v --verbose Be verbose.\n" -msgstr " -v --verbose Açýklama verir.\n" +msgstr " -v --verbose Açıklama verir.\n" -#: dlltool.c:3163 +#: dlltool.c:3155 msgid " -V --version Display the program version.\n" -msgstr " -V --version Sürüm bilgilerini gösterir.\n" +msgstr " -V --version Sürüm bilgilerini gösterir.\n" -#: dlltool.c:3164 +#: dlltool.c:3156 msgid " -h --help Display this information.\n" -msgstr " -h --help Bu yardýmý gösterir.\n" +msgstr " -h --help Bu yardımı gösterir.\n" -#: dlltool.c:3166 +#: dlltool.c:3158 msgid " -M --mcore-elf Process mcore-elf object files into .\n" -msgstr " -M --mcore-elf <çýktý_adý> mcore-elf nesne dosyalarýný <çýktý_adý>'na iþler.\n" +msgstr " -M --mcore-elf <çıktı_adı> mcore-elf nesne dosyalarını <çıktı_adı>'na iÅŸler.\n" -#: dlltool.c:3167 +#: dlltool.c:3159 msgid " -L --linker Use as the linker.\n" -msgstr " -L --linker Baðlayýcý olarak kullanýr.\n" +msgstr " -L --linker BaÄŸlayıcı olarak kullanır.\n" -#: dlltool.c:3168 +#: dlltool.c:3160 msgid " -F --linker-flags Pass to the linker.\n" -msgstr " -F --linker-flags i baðlayýcýya geçirir.\n" +msgstr " -F --linker-flags i baÄŸlayıcıya geçirir.\n" -#: dlltool.c:3315 +#: dlltool.c:3310 #, c-format msgid "Unable to open base-file: %s" -msgstr "Temel-dosyasý açýlamadý: %s" +msgstr "Temel-dosyası açılamadı: %s" -#: dlltool.c:3344 +#: dlltool.c:3339 #, c-format msgid "Machine '%s' not supported" -msgstr "'%s' makinasý desteklenmiyor" +msgstr "'%s' makinası desteklenmiyor" -#: dlltool.c:3447 dllwrap.c:240 +#: dlltool.c:3442 dllwrap.c:214 #, c-format msgid "Tried file: %s" msgstr "Dosya denendi: %s" -#: dlltool.c:3454 dllwrap.c:247 +#: dlltool.c:3449 dllwrap.c:221 #, c-format msgid "Using file: %s" -msgstr "Dosya kullanýlýyor: %s" +msgstr "Dosya kullanılıyor: %s" -#: dllwrap.c:334 +#: dllwrap.c:308 #, c-format msgid "Keeping temporary base file %s" -msgstr "Geçici temel dosya %s tutuldu" +msgstr "Geçici temel dosya %s tutuldu" -#: dllwrap.c:336 +#: dllwrap.c:310 #, c-format msgid "Deleting temporary base file %s" -msgstr "Geçici temel dosya %s silindi" +msgstr "Geçici temel dosya %s silindi" -#: dllwrap.c:350 +#: dllwrap.c:324 #, c-format msgid "Keeping temporary exp file %s" -msgstr "Geçici ihraç dosyasý %s tutuldu" +msgstr "Geçici ihraç dosyası %s tutuldu" -#: dllwrap.c:352 +#: dllwrap.c:326 #, c-format msgid "Deleting temporary exp file %s" -msgstr "Geçici ihraç dosyasý %s silindi" +msgstr "Geçici ihraç dosyası %s silindi" -#: dllwrap.c:365 +#: dllwrap.c:339 #, c-format msgid "Keeping temporary def file %s" -msgstr "Geçici taným dosyasý %s tutuldu" +msgstr "Geçici tanım dosyası %s tutuldu" -#: dllwrap.c:367 +#: dllwrap.c:341 #, c-format msgid "Deleting temporary def file %s" -msgstr "Geçici taným dosyasý %s silindi" +msgstr "Geçici tanım dosyası %s silindi" -#: dllwrap.c:520 +#: dllwrap.c:496 msgid " Generic options:\n" -msgstr " Genel seçenekler: \n" +msgstr " Genel seçenekler: \n" -#: dllwrap.c:521 +#: dllwrap.c:497 msgid " --quiet, -q Work quietly\n" -msgstr " --quiet, -q Sessiz çalýþýr\n" +msgstr " --quiet, -q Sessiz çalışır\n" -#: dllwrap.c:522 +#: dllwrap.c:498 msgid " --verbose, -v Verbose\n" -msgstr " --verbose, -v Açýklamalý\n" +msgstr " --verbose, -v Açıklamalı\n" -#: dllwrap.c:523 +#: dllwrap.c:499 msgid " --version Print dllwrap version\n" -msgstr " --version dllwrap sürümünü yazdýrýr\n" +msgstr " --version dllwrap sürümünü yazdırır\n" -#: dllwrap.c:524 +#: dllwrap.c:500 msgid " --implib Synonym for --output-lib\n" -msgstr " --implib <çýktý_adý> --output-lib ile eþanlamlý\n" +msgstr " --implib <çıktı_adı> --output-lib ile eÅŸanlamlı\n" -#: dllwrap.c:525 +#: dllwrap.c:501 #, c-format msgid " Options for %s:\n" -msgstr " %s için seçenekler:\n" +msgstr " %s için seçenekler:\n" -#: dllwrap.c:526 +#: dllwrap.c:502 msgid " --driver-name Defaults to \"gcc\"\n" -msgstr " --driver-name \"gcc\"ye öntanýmlý\n" +msgstr " --driver-name \"gcc\"ye öntanımlı\n" -#: dllwrap.c:527 +#: dllwrap.c:503 msgid " --driver-flags Override default ld flags\n" -msgstr " --driver-flags Öntanýmlý ld seçeneklerinin yerine geçer\n" +msgstr " --driver-flags Öntanımlı ld seçeneklerinin yerine geçer\n" -#: dllwrap.c:528 +#: dllwrap.c:504 msgid " --dlltool-name Defaults to \"dlltool\"\n" -msgstr " --dlltool-name \"dlltool\"a öntanýmlý\n" +msgstr " --dlltool-name \"dlltool\"a öntanımlı\n" -#: dllwrap.c:529 +#: dllwrap.c:505 msgid " --entry Specify alternate DLL entry point\n" -msgstr " --entry Alternatif DLL giriþ noktasý belirtir\n" +msgstr " --entry Alternatif DLL giriÅŸ noktası belirtir\n" -#: dllwrap.c:530 +#: dllwrap.c:506 msgid " --image-base Specify image base address\n" -msgstr " --image-base Ýmaj temel adresini belirtir\n" +msgstr " --image-base Ä°maj temel adresini belirtir\n" -#: dllwrap.c:531 +#: dllwrap.c:507 msgid " --target i386-cygwin32 or i386-mingw32\n" msgstr " --target hedef makina, i386-cygwin32 veya i386-mingw32\n" -#: dllwrap.c:532 +#: dllwrap.c:508 msgid " --dry-run Show what needs to be run\n" -msgstr " --dry-run Çalýþtýrýlmasý gerekenleri gösterir\n" +msgstr " --dry-run Çalıştırılması gerekenleri gösterir\n" -#: dllwrap.c:533 +#: dllwrap.c:509 msgid " --mno-cygwin Create Mingw DLL\n" -msgstr " --mno-cygwin Mingw DLL oluþturur\n" +msgstr " --mno-cygwin Mingw DLL oluÅŸturur\n" -#: dllwrap.c:534 +#: dllwrap.c:510 msgid " Options passed to DLLTOOL:\n" -msgstr " DLLTOOL'a geçirilen seçenekler:\n" +msgstr " DLLTOOL'a geçirilen seçenekler:\n" -#: dllwrap.c:535 +#: dllwrap.c:511 msgid " --machine \n" msgstr " --machine \n" -#: dllwrap.c:536 +#: dllwrap.c:512 msgid " --output-exp Generate export file.\n" -msgstr " --output-exp <çýktý_adý> Ýhraç dosyasý oluþturur.\n" +msgstr " --output-exp <çıktı_adı> Ä°hraç dosyası oluÅŸturur.\n" -#: dllwrap.c:537 +#: dllwrap.c:513 msgid " --output-lib Generate input library.\n" -msgstr " --output-lib <çýktý_adý> Girdi kitaplýðý oluþturur.\n" +msgstr " --output-lib <çıktı_adı> Girdi kitaplığı oluÅŸturur.\n" -#: dllwrap.c:538 +#: dllwrap.c:514 msgid " --add-indirect Add dll indirects to export file.\n" -msgstr " --add-indirect Dll yönlendirmelerini ihraç dosyasýna ekler.\n" +msgstr " --add-indirect Dll yönlendirmelerini ihraç dosyasına ekler.\n" -#: dllwrap.c:539 +#: dllwrap.c:515 msgid " --dllname Name of input dll to put into output lib.\n" -msgstr " --dllname Çýktý kitaplýðýna konulacak girdi dll adý.\n" +msgstr " --dllname Çıktı kitaplığına konulacak girdi dll adı.\n" -#: dllwrap.c:540 +#: dllwrap.c:516 msgid " --def Name input .def file\n" -msgstr " --def Girdi .def dosyasý adý\n" +msgstr " --def Girdi .def dosyası adı\n" -#: dllwrap.c:541 +#: dllwrap.c:517 msgid " --output-def Name output .def file\n" -msgstr " --output-def Çýktý .def dosyasýnýn adý\n" +msgstr " --output-def Çıktı .def dosyasının adı\n" -#: dllwrap.c:542 +#: dllwrap.c:518 msgid " --export-all-symbols Export all symbols to .def\n" -msgstr " --export-all-symbols Bütün sembolleri .def'e ihraç eder\n" +msgstr " --export-all-symbols Bütün sembolleri .def'e ihraç eder\n" -#: dllwrap.c:543 +#: dllwrap.c:519 msgid " --no-export-all-symbols Only export .drectve symbols\n" -msgstr " --no-export-all-symbols Yalnýzca .drectve sembollerini ihraç eder\n" +msgstr " --no-export-all-symbols Yalnızca .drectve sembollerini ihraç eder\n" -#: dllwrap.c:544 +#: dllwrap.c:520 msgid " --exclude-symbols Exclude from .def\n" -msgstr " --exclude-symbols deki sembolleri .def'e ihraç etmez\n" +msgstr " --exclude-symbols deki sembolleri .def'e ihraç etmez\n" -#: dllwrap.c:545 +#: dllwrap.c:521 msgid " --no-default-excludes Zap default exclude symbols\n" -msgstr " --no-default-excludes Dýþlanacak sembol öntanýmlarýný boþaltýr\n" +msgstr " --no-default-excludes Dışlanacak sembol öntanımlarını boÅŸaltır\n" -#: dllwrap.c:546 +#: dllwrap.c:522 msgid " --base-file Read linker generated base file\n" -msgstr " --base-file Baðlayýcý tarafýndan oluþturulan temel dosyayý okur\n" +msgstr " --base-file BaÄŸlayıcı tarafından oluÅŸturulan temel dosyayı okur\n" -#: dllwrap.c:547 +#: dllwrap.c:523 msgid " --no-idata4 Don't generate idata$4 section\n" -msgstr " --no-idata4 idata$4 bölümünü oluþturmaz\n" +msgstr " --no-idata4 idata$4 bölümünü oluÅŸturmaz\n" -#: dllwrap.c:548 +#: dllwrap.c:524 msgid " --no-idata5 Don't generate idata$5 section\n" -msgstr " --no-idata5 idata$5 bölümünü oluþturmaz\n" +msgstr " --no-idata5 idata$5 bölümünü oluÅŸturmaz\n" -#: dllwrap.c:549 +#: dllwrap.c:525 msgid " -U Add underscores to .lib\n" msgstr " -U .lib'e alt-tire ekler\n" -#: dllwrap.c:550 +#: dllwrap.c:526 msgid " -k Kill @ from exported names\n" -msgstr " -k @'i ihraç edilmiþ isimlerden çýkartýr\n" +msgstr " -k @'i ihraç edilmiÅŸ isimlerden çıkartır\n" -#: dllwrap.c:551 +#: dllwrap.c:527 msgid " --add-stdcall-alias Add aliases without @\n" -msgstr " --add-stdcall-alias Rumuzlarý @ olmaksýzýn ekler\n" +msgstr " --add-stdcall-alias Rumuzları @ olmaksızın ekler\n" -#: dllwrap.c:552 +#: dllwrap.c:528 msgid " --as Use for assembler\n" -msgstr " --as Üretici olarak 'i kullanýr\n" +msgstr " --as Ãœretici olarak 'i kullanır\n" -#: dllwrap.c:553 +#: dllwrap.c:529 msgid " --nodelete Keep temp files.\n" -msgstr " --nodelete Geçici dosyalarý tutar.\n" +msgstr " --nodelete Geçici dosyaları tutar.\n" -#: dllwrap.c:554 +#: dllwrap.c:530 msgid " Rest are passed unmodified to the language driver\n" -msgstr " Kalanlar dil sürücüsüne deðiþtirilmeksizin geçirilir\n" +msgstr " Kalanlar dil sürücüsüne deÄŸiÅŸtirilmeksizin geçirilir\n" -#: dllwrap.c:824 +#: dllwrap.c:802 msgid "Must provide at least one of -o or --dllname options" -msgstr "-o veya --dllname (dll adý) seçeneklerinin en azýndan bir tanesi belirtilmelidir" +msgstr "-o veya --dllname (dll adı) seçeneklerinin en azından bir tanesi belirtilmelidir" -#: dllwrap.c:852 +#: dllwrap.c:830 msgid "" "no export definition file provided.\n" "Creating one, but that may not be what you want" msgstr "" -"ihraç taným dosyasý verilmemiþ.\n" -"Bir tane oluþturuluyor fakat istediðiniz bu olmayabilir" +"ihraç tanım dosyası verilmemiÅŸ.\n" +"Bir tane oluÅŸturuluyor fakat istediÄŸiniz bu olmayabilir" -#: dllwrap.c:1014 +#: dllwrap.c:992 #, c-format msgid "DLLTOOL name : %s\n" -msgstr "DLLTOOL adý : %s\n" +msgstr "DLLTOOL adı : %s\n" -#: dllwrap.c:1015 +#: dllwrap.c:993 #, c-format msgid "DLLTOOL options : %s\n" -msgstr "DLLTOOL seçenekleri : %s\n" +msgstr "DLLTOOL seçenekleri : %s\n" -#: dllwrap.c:1016 +#: dllwrap.c:994 #, c-format msgid "DRIVER name : %s\n" -msgstr "SÜRÜCÜ adý : %s\n" +msgstr "SÃœRÃœCÃœ adı : %s\n" -#: dllwrap.c:1017 +#: dllwrap.c:995 #, c-format msgid "DRIVER options : %s\n" -msgstr "SÜRÜCÜ seçenekleri : %s\n" +msgstr "SÃœRÃœCÃœ seçenekleri : %s\n" + +#: emul_aix.c:52 +#, c-format +msgid " [-g] - 32 bit small archive\n" +msgstr " [-g] - 32 bitlik küçük arÅŸiv\n" + +#: emul_aix.c:53 +msgid " [-X32] - ignores 64 bit objects\n" +msgstr " [-X32] - 64 bitlik nesneleri yok sayar\n" + +#: emul_aix.c:54 +msgid " [-X64] - ignores 32 bit objects\n" +msgstr " [-X64] - 32 bitlik nesneleri yok sayar\n" + +#: emul_aix.c:55 +msgid " [-X32_64] - accepts 32 and 64 bit objects\n" +msgstr " [-X32_64] - 32 ve 64 bitlik nesneleri kabul eder\n" #: ieee.c:317 msgid "unexpected end of debugging information" -msgstr "hata ayýklama bilgilerinde beklenmeyen son" +msgstr "hata ayıklama bilgilerinde beklenmeyen son" #: ieee.c:412 msgid "invalid number" -msgstr "geçersiz sayý" +msgstr "geçersiz sayı" #: ieee.c:471 msgid "invalid string length" -msgstr "geçersiz dizge uzunluðu" +msgstr "geçersiz dizge uzunluÄŸu" #: ieee.c:528 ieee.c:569 msgid "expression stack overflow" -msgstr "ifade yýðýtýnda taþma" +msgstr "ifade yığıtında taÅŸma" #: ieee.c:548 msgid "unsupported IEEE expression operator" -msgstr "desteklenmeyen IEEE ifade iþlemimi" +msgstr "desteklenmeyen IEEE ifade iÅŸlemimi" #: ieee.c:563 msgid "unknown section" -msgstr "bilinmeyen bölüm" +msgstr "bilinmeyen bölüm" #: ieee.c:584 msgid "expression stack underflow" -msgstr "ifade yýðýt taþmasý" +msgstr "ifade yığıt taÅŸması" #: ieee.c:598 msgid "expression stack mismatch" -msgstr "ifade yýðýtý uyumsuzluðu" +msgstr "ifade yığıtı uyumsuzluÄŸu" #: ieee.c:637 msgid "unknown builtin type" -msgstr "bilinmeyen oluþumiçi tip" +msgstr "bilinmeyen oluÅŸumiçi tip" #: ieee.c:782 msgid "BCD float type not supported" -msgstr "BCD gerçel tipi desteklenmiyor" +msgstr "BCD gerçel tipi desteklenmiyor" #: ieee.c:928 msgid "unexpected number" -msgstr "beklenmeyen sayý" +msgstr "beklenmeyen sayı" #: ieee.c:935 msgid "unexpected record type" -msgstr "beklenmeyen kayýt tipi" +msgstr "beklenmeyen kayıt tipi" #: ieee.c:968 msgid "blocks left on stack at end" -msgstr "yýðýt üzerinde bloklar kaldý" +msgstr "yığıt üzerinde bloklar kaldı" #: ieee.c:1233 msgid "unknown BB type" @@ -1004,19 +1086,19 @@ msgstr "bilinmeyen BB tipi" #: ieee.c:1242 msgid "stack overflow" -msgstr "yýðýt taþmasý" +msgstr "yığıt taÅŸması" #: ieee.c:1267 msgid "stack underflow" -msgstr "yýðýt alt taþmasý" +msgstr "yığıt alt taÅŸması" #: ieee.c:1381 ieee.c:1453 ieee.c:2152 msgid "illegal variable index" -msgstr "geçersiz deðiþken endeksi" +msgstr "geçersiz deÄŸiÅŸken endeksi" #: ieee.c:1431 msgid "illegal type index" -msgstr "geçersiz tip endeksi" +msgstr "geçersiz tip endeksi" #: ieee.c:1441 ieee.c:1478 msgid "unknown TY code" @@ -1024,20 +1106,20 @@ msgstr "bilinmeyen TY kodu" #: ieee.c:1460 msgid "undefined variable in TY" -msgstr "TY'de tanýmsýz deðiþken" +msgstr "TY'de tanımsız deÄŸiÅŸken" #. Pascal file name. FIXME. #: ieee.c:1871 msgid "Pascal file name not supported" -msgstr "Pascal dosya adý desteklenmiyor" +msgstr "Pascal dosya adı desteklenmiyor" #: ieee.c:1919 -msgid "unsupported qualifer" +msgid "unsupported qualifier" msgstr "desteklenmeyen niteleyici" #: ieee.c:2190 msgid "undefined variable in ATN" -msgstr "ATN'de tanýmsýz deðiþken" +msgstr "ATN'de tanımsız deÄŸiÅŸken" #: ieee.c:2233 msgid "unknown ATN type" @@ -1055,23 +1137,23 @@ msgstr "desteklenmeyen ATN12" #: ieee.c:2442 msgid "unexpected string in C++ misc" -msgstr "C++ misc içinde beklenmeyen dizge" +msgstr "C++ misc içinde beklenmeyen dizge" #: ieee.c:2455 msgid "bad misc record" -msgstr "hatalý misc kaydý" +msgstr "hatalı misc kaydı" #: ieee.c:2498 msgid "unrecognized C++ misc record" -msgstr "bilinmeyen C++ misc kaydý" +msgstr "bilinmeyen C++ misc kaydı" #: ieee.c:2615 msgid "undefined C++ object" -msgstr "tanýmlanmamýþ C++ nesnesi" +msgstr "tanımlanmamış C++ nesnesi" #: ieee.c:2649 msgid "unrecognized C++ object spec" -msgstr "bilinmeyen C++ nesne tanýmý" +msgstr "bilinmeyen C++ nesne tanımı" #: ieee.c:2685 msgid "unsupported C++ object type" @@ -1079,59 +1161,59 @@ msgstr "desteklenmeyen C++ nesne tipi" #: ieee.c:2695 msgid "C++ base class not defined" -msgstr "C++ temel sýnýfý tanýmlanmamýþ" +msgstr "C++ temel sınıfı tanımlanmamış" #: ieee.c:2707 ieee.c:2812 msgid "C++ object has no fields" -msgstr "C++ nesnesinde hiç alan yok" +msgstr "C++ nesnesinde hiç alan yok" #: ieee.c:2726 msgid "C++ base class not found in container" -msgstr "C++ temel sýnýfý taþýyýcý içinde bulunamadý" +msgstr "C++ temel sınıfı taşıyıcı içinde bulunamadı" #: ieee.c:2833 msgid "C++ data member not found in container" -msgstr "C++ veri üyesi taþýyýcý içinde bulunamadý" +msgstr "C++ veri üyesi taşıyıcı içinde bulunamadı" #: ieee.c:2874 ieee.c:3024 msgid "unknown C++ visibility" -msgstr "bilinmeyen C++ görünürlüðü" +msgstr "bilinmeyen C++ görünürlüğü" #: ieee.c:2908 msgid "bad C++ field bit pos or size" -msgstr "hatalý C++ alan biti konum veya boyu" +msgstr "hatalı C++ alan biti konum veya boyu" #: ieee.c:3000 msgid "bad type for C++ method function" -msgstr "C++ yöntem iþlevi için hatalý tip" +msgstr "C++ yöntem iÅŸlevi için hatalı tip" #: ieee.c:3010 msgid "no type information for C++ method function" -msgstr "C++ yöntem iþlevi için tip bilgisi yok" +msgstr "C++ yöntem iÅŸlevi için tip bilgisi yok" #: ieee.c:3049 msgid "C++ static virtual method" -msgstr "C++ statik sanal yöntem" +msgstr "C++ statik sanal yöntem" #: ieee.c:3144 msgid "unrecognized C++ object overhead spec" -msgstr "bilinmeyen C++ nesne masraf tanýmý" +msgstr "bilinmeyen C++ nesne masraf tanımı" #: ieee.c:3183 msgid "undefined C++ vtable" -msgstr "tanýmlanmamýþ C++ vtablosu" +msgstr "tanımlanmamış C++ vtablosu" #: ieee.c:3254 msgid "C++ default values not in a function" -msgstr "C++ öntanýmlý deðerleri iþlev içerisinde deðil" +msgstr "C++ öntanımlı deÄŸerleri iÅŸlev içerisinde deÄŸil" #: ieee.c:3294 msgid "unrecognized C++ default type" -msgstr "bilinmeyen öntanýmlý C++ tipi" +msgstr "bilinmeyen öntanımlı C++ tipi" #: ieee.c:3325 msgid "reference parameter is not a pointer" -msgstr "referans parametresi imleyici deðil" +msgstr "referans parametresi imleyici deÄŸil" #: ieee.c:3410 msgid "unrecognized C++ reference type" @@ -1139,11 +1221,11 @@ msgstr "bilinmeyen C++ referans tipi" #: ieee.c:3492 msgid "C++ reference not found" -msgstr "C++ referansý bulunamadý" +msgstr "C++ referansı bulunamadı" #: ieee.c:3500 msgid "C++ reference is not pointer" -msgstr "C++ referansý imleyici deðil" +msgstr "C++ referansı imleyici deÄŸil" #: ieee.c:3529 ieee.c:3537 msgid "missing required ASN" @@ -1155,233 +1237,237 @@ msgstr "Gerekli ATN65 yok" #: ieee.c:3589 msgid "bad ATN65 record" -msgstr "hatalý ATN65 kaydý" +msgstr "hatalı ATN65 kaydı" -#: ieee.c:4236 +#: ieee.c:4234 msgid "IEEE numeric overflow: 0x" -msgstr "IEEE sayýsal taþma: 0x" +msgstr "IEEE sayısal taÅŸma: 0x" -#: ieee.c:4282 +#: ieee.c:4280 #, c-format msgid "IEEE string length overflow: %u\n" -msgstr "IEEE dizge uzunluk taþmasý: %u\n" +msgstr "IEEE dizge uzunluk taÅŸması: %u\n" -#: ieee.c:5333 +#: ieee.c:5330 #, c-format msgid "IEEE unsupported integer type size %u\n" -msgstr "IEEE desteklenmeyen tamsayý tip boyu %u\n" +msgstr "IEEE desteklenmeyen tamsayı tip boyu %u\n" -#: ieee.c:5369 +#: ieee.c:5366 #, c-format msgid "IEEE unsupported float type size %u\n" -msgstr "IEEE desteklenmeyen gerçel tip boyu %u\n" +msgstr "IEEE desteklenmeyen gerçel tip boyu %u\n" -#: ieee.c:5405 +#: ieee.c:5402 #, c-format msgid "IEEE unsupported complex type size %u\n" -msgstr "IEEE desteklenmeyen karmaþýk tip boyu %u\n" +msgstr "IEEE desteklenmeyen karmaşık tip boyu %u\n" -#: nlmconv.c:278 srconv.c:2020 +#: nlmconv.c:281 srconv.c:2043 msgid "input and output files must be different" -msgstr "girdi ve çýktý dosyalarý farklý olmalý" +msgstr "girdi ve çıktı dosyaları farklı olmalı" -#: nlmconv.c:325 +#: nlmconv.c:328 msgid "input file named both on command line and with INPUT" -msgstr "girdi dosyasý ismi hem komut satýrýnda hem INPUT olarak verilmiþ" +msgstr "girdi dosyası ismi hem komut satırında hem INPUT olarak verilmiÅŸ" -#: nlmconv.c:334 +#: nlmconv.c:337 msgid "no input file" -msgstr "girdi dosyasý yok" +msgstr "girdi dosyası yok" -#: nlmconv.c:364 +#: nlmconv.c:367 msgid "no name for output file" -msgstr "çýktý dosyasý için isim yok" +msgstr "çıktı dosyası için isim yok" -#: nlmconv.c:377 +#: nlmconv.c:380 msgid "warning: input and output formats are not compatible" -msgstr "uyarý: girdi ve çýktý biçemleri uyumlu deðil" +msgstr "uyarı: girdi ve çıktı biçemleri uyumlu deÄŸil" -#: nlmconv.c:406 +#: nlmconv.c:409 msgid "make .bss section" -msgstr ".bss bölümü oluþtur" +msgstr ".bss bölümü oluÅŸtur" -#: nlmconv.c:415 +#: nlmconv.c:418 msgid "make .nlmsections section" -msgstr ".nlmsections bölümü oluþtur" +msgstr ".nlmsections bölümü oluÅŸtur" -#: nlmconv.c:417 +#: nlmconv.c:420 msgid "set .nlmsections flags" -msgstr ".nlmsections seçenekleri atar" +msgstr ".nlmsections seçenekleri atar" -#: nlmconv.c:445 +#: nlmconv.c:448 msgid "set .bss vma" msgstr ".bss vma atar" -#: nlmconv.c:452 +#: nlmconv.c:455 msgid "set .data size" msgstr ".data boyu atar" -#: nlmconv.c:632 +#: nlmconv.c:635 #, c-format msgid "warning: symbol %s imported but not in import list" -msgstr "uyarý: %s sembolü ithal edildi ama ithal listesinde deðil" +msgstr "uyarı: %s sembolü ithal edildi ama ithal listesinde deÄŸil" -#: nlmconv.c:652 +#: nlmconv.c:655 msgid "set start address" -msgstr "baþlangýç adresini atar" +msgstr "baÅŸlangıç adresini atar" -#: nlmconv.c:701 +#: nlmconv.c:704 #, c-format msgid "warning: START procedure %s not defined" -msgstr "uyarý: START altyordamý %s tanýmsýz" +msgstr "uyarı: START altyordamı %s tanımsız" -#: nlmconv.c:703 +#: nlmconv.c:706 #, c-format msgid "warning: EXIT procedure %s not defined" -msgstr "uyarý: EXIT altyordamý %s tanýmsýz" +msgstr "uyarı: EXIT altyordamı %s tanımsız" -#: nlmconv.c:705 +#: nlmconv.c:708 #, c-format msgid "warning: CHECK procedure %s not defined" -msgstr "warning: CHECK altyordamý %s tanýmsýz" +msgstr "warning: CHECK altyordamı %s tanımsız" -#: nlmconv.c:726 nlmconv.c:915 +#: nlmconv.c:729 nlmconv.c:918 msgid "custom section" -msgstr "özel bölüm" +msgstr "özel bölüm" -#: nlmconv.c:747 nlmconv.c:944 +#: nlmconv.c:750 nlmconv.c:947 msgid "help section" -msgstr "yardým bölümü" +msgstr "yardım bölümü" -#: nlmconv.c:769 nlmconv.c:962 +#: nlmconv.c:772 nlmconv.c:965 msgid "message section" -msgstr "ileti bölümü" +msgstr "ileti bölümü" -#: nlmconv.c:785 nlmconv.c:995 +#: nlmconv.c:788 nlmconv.c:998 msgid "module section" -msgstr "modül bölümü" +msgstr "modül bölümü" -#: nlmconv.c:805 nlmconv.c:1011 +#: nlmconv.c:808 nlmconv.c:1014 msgid "rpc section" -msgstr "rpc bölümü" +msgstr "rpc bölümü" #. There is no place to record this information. -#: nlmconv.c:841 +#: nlmconv.c:844 #, c-format msgid "%s: warning: shared libraries can not have uninitialized data" -msgstr "%s: uyarý: paylaþýmlý kitaplýklar öndeðer atanmamýþ veri kapsayamaz" +msgstr "%s: uyarı: paylaşımlı kitaplıklar öndeÄŸer atanmamış veri kapsayamaz" -#: nlmconv.c:862 nlmconv.c:1030 +#: nlmconv.c:865 nlmconv.c:1033 msgid "shared section" -msgstr "paylaþýmlý bölüm" +msgstr "paylaşımlı bölüm" -#: nlmconv.c:870 +#: nlmconv.c:873 msgid "warning: No version number given" -msgstr "uyarý: Sürüm numarasý verilmemiþ" +msgstr "uyarı: Sürüm numarası verilmemiÅŸ" -#: nlmconv.c:910 nlmconv.c:939 nlmconv.c:957 nlmconv.c:1006 nlmconv.c:1025 +#: nlmconv.c:913 nlmconv.c:942 nlmconv.c:960 nlmconv.c:1009 nlmconv.c:1028 #, c-format msgid "%s: read: %s" msgstr "%s: okundu: %s" -#: nlmconv.c:932 +#: nlmconv.c:935 msgid "warning: MAP and FULLMAP are not supported; try ld -M" -msgstr "uyarý: MAP ve FULLMAP desteklenmiyor; ld -M komutunu deneyin" +msgstr "uyarı: MAP ve FULLMAP desteklenmiyor; ld -M komutunu deneyin" -#: nlmconv.c:1101 +#: nlmconv.c:1107 #, c-format -msgid "%s: Convert an object file into a NetWare Loadable Module\n" -msgstr "%s: Bir nesne dosyasýný NetWare Yüklenebilir Modül haline getirir\n" +msgid "Usage: %s [option(s)] [in-file [out-file]]\n" +msgstr "Kullanım: %s [seçenekler] [girdi-dosyası [çıktı-dosyası]]\n" -#: nlmconv.c:1113 -#, c-format +#: nlmconv.c:1108 +msgid " Convert an object file into a NetWare Loadable Module\n" +msgstr " Bir nesne dosyasını NetWare Yüklenebilir Modül haline getirir\n" + +#: nlmconv.c:1109 msgid "" -"Usage: %s [-dhV] [-I bfdname] [-O bfdname] [-T header-file] [-l linker]\n" -" [--input-target=bfdname] [--output-target=bfdname]\n" -" [--header-file=file] [--linker=linker] [--debug]\n" -" [--help] [--version]\n" -" [in-file [out-file]]\n" -msgstr "" -"Kullaným: %s [-dhV] [-I bfd_adý] [-O bfd_adý] [-T baþlýk-dosyasý]\n" -" [-l baðlayýcý]\n" -" [--input-target=bfd_adý] girdi dosyasý adý\n" -" [--output-target=bfd_adý] çýktý dosyasý adý\n" -" [--header-file=dosya] baþlýk dosyasý adý\n" -" [--linker=baðlayýcý] baðlayýcý yazýlým adý\n" -" [--debug] hata ayýklama kipi\n" -" [--help] bu yardýmý gösterir\n" -" [--version] sürüm bilgisini gösterir\n" -" [girdi-dosyasý [çýktý-dosyasý]]\n" +" The options are:\n" +" -I --input-target= Set the input binary file format\n" +" -O --output-target= Set the output binary file format\n" +" -T --header-file= Read for NLM header information\n" +" -l --linker= Use for any linking\n" +" -d --debug Display on stderr the linker command line\n" +" -h --help Display this information\n" +" -v --version Display the program's version\n" +msgstr "" +" Seçenekler:\n" +" -I --input-target= Girdi ikilik dosya biçemini belirler\n" +" -O --output-target= Çıktı ikilik dosya biçemini belirler\n" +" -T --header-file= NLM baÅŸlık bilgilerini dan okur\n" +" -l --linker= BaÄŸlama iÅŸlemi için yı kullanır\n" +" -d --debug Standart hatada baÄŸlayıcı komut satırını gösterir\n" +" -h --help Bu bilgiyi gösterir\n" +" -v --version Program sürüm no'sunu gösterir\n" -#: nlmconv.c:1153 +#: nlmconv.c:1151 #, c-format msgid "support not compiled in for %s" -msgstr "%s için destek derlenmemiþ" +msgstr "%s için destek derlenmemiÅŸ" -#: nlmconv.c:1193 +#: nlmconv.c:1191 msgid "make section" -msgstr "bölüm oluþtur" +msgstr "bölüm oluÅŸtur" -#: nlmconv.c:1207 +#: nlmconv.c:1205 msgid "set section size" -msgstr "bölüm boyu belirtir" +msgstr "bölüm boyu belirtir" -#: nlmconv.c:1213 +#: nlmconv.c:1211 msgid "set section alignment" -msgstr "bölüm hizalanmasý atar" +msgstr "bölüm hizalanması atar" -#: nlmconv.c:1217 +#: nlmconv.c:1215 msgid "set section flags" -msgstr "bölüm seçeneklerini atar" +msgstr "bölüm seçeneklerini atar" -#: nlmconv.c:1228 +#: nlmconv.c:1226 msgid "set .nlmsections size" msgstr ".nlmsections boyunu atar" -#: nlmconv.c:1316 nlmconv.c:1324 nlmconv.c:1333 nlmconv.c:1338 +#: nlmconv.c:1314 nlmconv.c:1322 nlmconv.c:1331 nlmconv.c:1336 msgid "set .nlmsection contents" -msgstr ".nlmsection içeriðini atar" +msgstr ".nlmsection içeriÄŸini atar" -#: nlmconv.c:1841 +#: nlmconv.c:1837 msgid "stub section sizes" -msgstr "koçan bölüm boylarý" +msgstr "koçan bölüm boyları" -#: nlmconv.c:1890 +#: nlmconv.c:1886 msgid "writing stub" -msgstr "koçan yazýlýyor" +msgstr "koçan yazılıyor" -#: nlmconv.c:1980 +#: nlmconv.c:1975 #, c-format msgid "unresolved PC relative reloc against %s" -msgstr "%s'e göreli PC yer deðiþtirme çözümlenemedi" +msgstr "%s'e göreli PC yer deÄŸiÅŸtirme çözümlenemedi" -#: nlmconv.c:2044 +#: nlmconv.c:2039 #, c-format msgid "overflow when adjusting relocation against %s" -msgstr "%s'e göreli yer deðiþtirme ayarlanýrken taþma oluþtu" +msgstr "%s'e göreli yer deÄŸiÅŸtirme ayarlanırken taÅŸma oluÅŸtu" -#: nlmconv.c:2161 +#: nlmconv.c:2156 #, c-format msgid "%s: execution of %s failed: " -msgstr "%s: %s'in çalýþtýrýlmasý baþarýsýz oldu: " +msgstr "%s: %s'in çalıştırılması baÅŸarısız oldu: " -#: nlmconv.c:2176 +#: nlmconv.c:2171 #, c-format msgid "Execution of %s failed" -msgstr "%s'in çalýþtýrýlmasý baþarýsýz oldu" +msgstr "%s'in çalıştırılması baÅŸarısız oldu" -#: nm.c:300 +#: nm.c:246 size.c:85 strings.c:650 #, c-format -msgid "Usage: %s [OPTION]... [FILE]...\n" -msgstr "Kullaným: %s [SEÇENEK]... [DOSYA]...\n" +msgid "Usage: %s [option(s)] [file(s)]\n" +msgstr "Kullanım: %s [seçenekler] [dosya(lar)]\n" -#: nm.c:301 -msgid "List symbols from FILEs (a.out by default).\n" -msgstr "DOSYAlardaki sembolleri listeler (öntanýmlý a.out).\n" +#: nm.c:247 +msgid " List symbols in [file(s)] (a.out by default).\n" +msgstr " [dosya(lar)]daki sembolleri listeler (öntanımlı a.out).\n" -#: nm.c:302 +#: nm.c:248 msgid "" -"\n" +" The options are:\n" " -a, --debug-syms Display debugger-only symbols\n" " -A, --print-file-name Print name of the input file before every symbol\n" " -B Same as --format=bsd\n" @@ -1395,7 +1481,6 @@ msgid "" " -f, --format=FORMAT Use the output format FORMAT. FORMAT can be `bsd',\n" " `sysv' or `posix'. The default is `bsd'\n" " -g, --extern-only Display only external symbols\n" -" -h, --help Display this information\n" " -l, --line-numbers Use debugging information to find a filename and\n" " line number for each symbol\n" " -n, --numeric-sort Sort symbols numerically by address\n" @@ -1403,114 +1488,180 @@ msgid "" " -p, --no-sort Do not sort the symbols\n" " -P, --portability Same as --format=posix\n" " -r, --reverse-sort Reverse the sense of the sort\n" +" -S, --print-size Print size of defined symbols\n" " -s, --print-armap Include index for symbols from archive members\n" " --size-sort Sort symbols by size\n" " -t, --radix=RADIX Use RADIX for printing symbol values\n" " --target=BFDNAME Specify the target object format as BFDNAME\n" " -u, --undefined-only Display only undefined symbols\n" -" -V, --version Display this program's version number\n" " -X 32_64 (ignored)\n" +" -h, --help Display this information\n" +" -V, --version Display this program's version number\n" "\n" msgstr "" -"\n" -" -a, --debug-syms Yalnýzca hata ayýklamaya dair sembolleri gösterir\n" -" -A, --print-file-name Her sembolden önce girdi dosyasýnýn adýný yazdýrýr\n" -" -B --format=bsd ile ayný\n" -" -C, --demangle[=TARZ] Alt düzey sembol adlarýný kullanýcý seviyesinde adlara çevirir\n" -" TARZ, eðer belirtilirse, 'auto' (öntanýmlý),\n" +" Seçenekler:\n" +" -a, --debug-syms Yalnızca hata ayıklamaya dair sembolleri gösterir\n" +" -A, --print-file-name Her sembolden önce girdi dosyasının adını yazdırır\n" +" -B --format=bsd ile aynı\n" +" -C, --demangle[=TARZ] Alt düzey sembol adlarını kullanıcı seviyesinde adlara çevirir\n" +" TARZ, eÄŸer belirtilirse, 'auto' (öntanımlı),\n" " `gnu', 'lucid', 'arm', 'hp', 'edg' veya 'gnu-new-abi' olabilir\n" -" --no-demangle Alt düzey sembol adlarýný çevirmez\n" -" -D, --dynamic Normal semboller yerine dinamik sembolleri gösterir\n" -" --defined-only Yalnýzca tanýmlanmýþ sembolleri gösterir\n" -" -e (yoksayýlýr)\n" -" -f, --format=BÝÇEM Çýktý biçemi için BÝÇEM'i kullanýr. BÝÇEM, 'bsd' (öntanýmlý),\n" +" --no-demangle Alt düzey sembol adlarını çevirmez\n" +" -D, --dynamic Normal semboller yerine dinamik sembolleri gösterir\n" +" --defined-only Yalnızca tanımlanmış sembolleri gösterir\n" +" -e (yoksayılır)\n" +" -f, --format=BİÇEM Çıktı biçemi için BİÇEM'i kullanır. BİÇEM, 'bsd' (öntanımlı),\n" " `sysv' veya `posix' olabilir\n" -" -g, --extern-only Yalnýzca harici sembolleri gösterir\n" -" -h, --help Bu bilgiyi gösterir\n" -" -l, --line-numbers Hata ayýklama bilgisini kullanarak her sembol için bir\n" -" satýr numarasý ve dosya adý bulur.\n" -" -n, --numeric-sort Sembolleri adres numarasýna göre sýralar\n" -" -o -A ile ayný\n" -" -p, --no-sort Sembolleri sýralamaz\n" -" -P, --portability --format=posix ile ayný\n" -" -r, --reverse-sort Ters sýralar\n" -" -s, --print-armap Arþiv üyelerinden gelen semboller için endeks içerir\n" -" --size-sort Sembolleri büyüklüðe göre sýralar\n" -" -t, --radix=RADIX Sembol deðerlerini yazdýrmak için RADIX kullanýr\n" -" --target=BFD_ADI Hedef nesne biçemini BFD_ADI olarak belirler\n" -" -u, --undefined-only Yalnýzca tanýmlanmamýþ sembolleri gösterir\n" -" -V, --version Sürüm bilgilerini gösterir\n" -" -X 32_64 (yoksayýlýr)\n" +" -g, --extern-only Yalnızca harici sembolleri gösterir\n" +" -l, --line-numbers Hata ayıklama bilgisini kullanarak her sembol için bir\n" +" satır numarası ve dosya adı bulur.\n" +" -n, --numeric-sort Sembolleri adres numarasına göre sıralar\n" +" -o -A ile aynı\n" +" -p, --no-sort Sembolleri sıralamaz\n" +" -P, --portability --format=posix ile aynı\n" +" -r, --reverse-sort Ters sıralar\n" +" -S, --print-size Tanımlı sembollerin boyunu gösterir\n" +" -s, --print-armap ArÅŸiv üyelerinden gelen semboller için endeks içerir\n" +" --size-sort Sembolleri büyüklüğe göre sıralar\n" +" -t, --radix=RADIX Sembol deÄŸerlerini yazdırmak için RADIX kullanır\n" +" --target=BFD_ADI Hedef nesne biçemini BFD_ADI olarak belirler\n" +" -u, --undefined-only Yalnızca tanımlanmamış sembolleri gösterir\n" +" -X 32_64 (yok sayılır)\n" +" -h, --help Bu bilgiyi gösterir\n" +" -V, --version Sürüm bilgilerini gösterir\n" "\n" -#: nm.c:334 objdump.c:216 +#: nm.c:281 objdump.c:217 #, c-format msgid "Report bugs to %s.\n" msgstr "" -"Hatalarý %s adresine, \n" -"çeviri hatalarýný adresine bildiriniz.\n" +"Hataları %s adresine, \n" +"çeviri hatalarını adresine bildiriniz.\n" -#: nm.c:367 +#: nm.c:314 #, c-format msgid "%s: invalid radix" -msgstr "%s: geçersiz radix" +msgstr "%s: geçersiz radix" -#: nm.c:392 +#: nm.c:339 #, c-format msgid "%s: invalid output format" -msgstr "%s: geçersiz çýktý biçemi" +msgstr "%s: geçersiz çıktı biçemi" -#: nm.c:504 +#: nm.c:456 msgid "Only -X 32_64 is supported" -msgstr "Yalnýz -X 32_64 destekleniyor" +msgstr "Yalnız -X 32_64 destekleniyor" -#: nm.c:546 +#: nm.c:498 #, c-format msgid "data size %ld" -msgstr "veri büyüklüðü %ld" +msgstr "veri büyüklüğü %ld" + +#: nm.c:523 readelf.c:5306 readelf.c:5342 +#, c-format +msgid ": %d" +msgstr ": %d" + +#: nm.c:525 readelf.c:5308 readelf.c:5354 +#, c-format +msgid ": %d" +msgstr "<Ä°S'e özel>: %d" + +#: nm.c:527 readelf.c:5310 readelf.c:5357 +#, c-format +msgid ": %d" +msgstr ": %d" -#: nm.c:1340 +#: nm.c:1339 #, c-format -msgid "\n\nUndefined symbols from %s:\n\n" -msgstr "\n\n%s'de tanýmlanmamýþ semboller:\n\n" +msgid "" +"\n" +"\n" +"Undefined symbols from %s:\n" +"\n" +msgstr "" +"\n" +"\n" +"%s'de tanımlanmamış semboller:\n" +"\n" -#: nm.c:1342 +#: nm.c:1341 #, c-format -msgid "\n\nSymbols from %s:\n\n" -msgstr "\n\n%s'de semboller:\n\n" +msgid "" +"\n" +"\n" +"Symbols from %s:\n" +"\n" +msgstr "" +"\n" +"\n" +"%s'de semboller:\n" +"\n" -#: nm.c:1343 nm.c:1397 -msgid "Name Value Class Type Size Line Section\n\n" +#: nm.c:1343 nm.c:1401 +msgid "" +"Name Value Class Type Size Line Section\n" +"\n" msgstr "" -"Name Value Class Type Size Line Section\n" +"Ä°sim DeÄŸer Sınıf Tip Boy Satır Bölüm\n" +"\n" + +#: nm.c:1346 nm.c:1404 +msgid "" +"Name Value Class Type Size Line Section\n" "\n" -"Ýsim Deðer Sýnýf Tip Boy Satýr Bölüm\n" +msgstr "" +"Ä°sim DeÄŸer Sınıf Tip Boy Satır Bölüm\n" "\n" -#: nm.c:1394 +#: nm.c:1397 #, c-format -msgid "\n\nUndefined symbols from %s[%s]:\n\n" -msgstr "\n\n%s[%s]'de tanýmlanmamýþ semboller:\n\n" +msgid "" +"\n" +"\n" +"Undefined symbols from %s[%s]:\n" +"\n" +msgstr "" +"\n" +"\n" +"%s[%s]'de tanımlanmamış semboller:\n" +"\n" -#: nm.c:1396 +#: nm.c:1399 #, c-format -msgid "\n\nSymbols from %s[%s]:\n\n" -msgstr "\n\n%s[%s]'de semboller:\n\n" +msgid "" +"\n" +"\n" +"Symbols from %s[%s]:\n" +"\n" +msgstr "" +"\n" +"\n" +"%s[%s]'de semboller:\n" +"\n" -#: nm.c:1564 -msgid "\nArchive index:\n" -msgstr "\nArþiv endeksi:\n" +#: nm.c:1614 +msgid "" +"\n" +"Archive index:\n" +msgstr "" +"\n" +"ArÅŸiv endeksi:\n" -#: objcopy.c:363 +#: objcopy.c:363 srconv.c:1952 #, c-format -msgid "Usage: %s in-file [out-file]\n" -msgstr "Kullaným: %s girdi-dosyasý [çýktý-dosyasý]\n" +msgid "Usage: %s [option(s)] in-file [out-file]\n" +msgstr "Kullanım: %s [seçenekler] girdi-dosyası [çıktı-dosyası]\n" + +#: objcopy.c:364 +msgid " Copies a binary file, possibly transforming it in the process\n" +msgstr " Ä°kilik dosyayı, muhtemelen deÄŸiÅŸtirerek kopyalar\n" -#: objcopy.c:364 objcopy.c:433 +#: objcopy.c:365 objcopy.c:435 msgid " The options are:\n" -msgstr " Seçenekler:\n" +msgstr " Seçenekler:\n" -#: objcopy.c:365 +#: objcopy.c:366 msgid "" " -I --input-target Assume input file is in format \n" " -O --output-target Create an output file in format \n" @@ -1567,105 +1718,109 @@ msgid "" " -V --version Display this program's version number\n" " -h --help Display this output\n" msgstr "" -" -I --input-target Girdi dosyasýnýn biçeminde\n" -" olduðunu varsayar\n" -" -O --output-target Çýktý dosyasýný biçeminde\n" -" oluþturur\n" -" -B --binary-architecture Girdi ikilik biçeminde olduðu zaman çýktý\n" -" dosyasýnýn platformunu belirler.\n" -" -F --target Hem girdi, hem de çýktý biçemini \n" +" -I --input-target Girdi dosyasının biçeminde\n" +" olduÄŸunu varsayar\n" +" -O --output-target Çıktı dosyasını biçeminde\n" +" oluÅŸturur\n" +" -B --binary-architecture Girdi ikilik biçeminde olduÄŸu zaman çıktı\n" +" dosyasının platformunu belirler.\n" +" -F --target Hem girdi, hem de çıktı biçemini \n" " olarak atar\n" -" --debugging Mümkün olduðu kadar hata ayýklama\n" -" bilgisini dönüþtürür\n" -" -p --preserve-dates Çýktýya deðiþim/eriþim zaman damgalarýný\n" +" --debugging Mümkün olduÄŸu kadar hata ayıklama\n" +" bilgisini dönüştürür\n" +" -p --preserve-dates Çıktıya deÄŸiÅŸim/eriÅŸim zaman damgalarını\n" " kopyalar\n" -" -j --only-section Çýktýya yalnýzca bölümünü kopyalar\n" -" -R --remove-section Çýktýdan bölümünü çýkarýr\n" -" -S --strip-all Bütün sembol ve yer deðiþtirme bilgisini\n" +" -j --only-section Çıktıya yalnızca bölümünü kopyalar\n" +" -R --remove-section Çıktıdan bölümünü çıkarır\n" +" -S --strip-all Bütün sembol ve yer deÄŸiÅŸtirme bilgisini\n" " siler\n" -" -g --strip-debug Bütün hata ayýklama sembollerini siler\n" -" --strip-unneeded Yer deðiþtirmeler için gerekmeyen bütün\n" +" -g --strip-debug Bütün hata ayıklama sembollerini siler\n" +" --strip-unneeded Yer deÄŸiÅŸtirmeler için gerekmeyen bütün\n" " sembolleri siler\n" -" -N --strip-symbol sembolünü kopyalamaz\n" -" -K --keep-symbol Yalnýzca sembolünü kopyalar\n" -" -L --localize-symbol sembolünün yerel olarak\n" -" tanýmlanmasýný saðlar\n" -" -G --keep-global-symbol haricindeki bütün sembolleri\n" -" yerelleþtirir.\n" -" -W --weaken-symbol sembolünün zayýf olarak\n" -" tanýmlanmasýný saðlar\n" -" --weaken Bütün evrensel sembollerin zayýf olarak\n" -" tanýmlanmasýný saðlar\n" -" -x --discard-all Evrensel olmayan bütün sembolleri siler\n" -" -X --discard-locals Derleyici tarafýndan oluþturulan bütün\n" +" -N --strip-symbol sembolünü kopyalamaz\n" +" -K --keep-symbol Yalnızca sembolünü kopyalar\n" +" -L --localize-symbol sembolünün yerel olarak\n" +" tanımlanmasını saÄŸlar\n" +" -G --keep-global-symbol haricindeki bütün sembolleri\n" +" yerelleÅŸtirir.\n" +" -W --weaken-symbol sembolünün zayıf olarak\n" +" tanımlanmasını saÄŸlar\n" +" --weaken Bütün evrensel sembollerin zayıf olarak\n" +" tanımlanmasını saÄŸlar\n" +" -x --discard-all Evrensel olmayan bütün sembolleri siler\n" +" -X --discard-locals Derleyici tarafından oluÅŸturulan bütün\n" " sembolleri siler\n" -" -i --interleave Her bayttan yalnýz birini kopyalar\n" -" -b --byte Her serpiþtirilmiþ bloktan numaralý\n" -" baytý seçer\n" -" --gap-fill Bölümler arasý boþluklarý ile\n" +" -i --interleave Her bayttan yalnız birini kopyalar\n" +" -b --byte Her serpiÅŸtirilmiÅŸ bloktan numaralı\n" +" baytı seçer\n" +" --gap-fill Bölümler arası boÅŸlukları ile\n" " doldurur\n" -" --pad-to Son bölümü e kadar boþlukla doldurur\n" -" --set-start Baþlangýç adresini olarak belirtir\n" +" --pad-to Son bölümü e kadar boÅŸlukla doldurur\n" +" --set-start BaÅŸlangıç adresini olarak belirtir\n" " {--change-start|--adjust-start} \n" -" Baþlangýç adresine ekler\n" +" BaÅŸlangıç adresine ekler\n" " {--change-addresses|--adjust-vma} \n" -" LMA, VMA ve baþlangýç adreslerine \n" +" LMA, VMA ve baÅŸlangıç adreslerine \n" " ekler\n" -" {--change-section-address|--adjust-section-vma} {=|+|-}\n" -" bölümünün LMA ve VMA'sýný \n" -" kadar deðiþtirir\n" -" --change-section-lma {=|+|-}\n" -" bölümünün LMA'sýný kadar\n" -" deðiþtirir\n" -" --change-section-vma {=|+|-}\n" -" bölümünün VMA'sýný kadar\n" -" deðiþtirir\n" +" {--change-section-address|--adjust-section-vma} {=|+|-}\n" +" bölümünün LMA ve VMA'sını \n" +" kadar deÄŸiÅŸtirir\n" +" --change-section-lma {=|+|-}\n" +" bölümünün LMA'sını kadar\n" +" deÄŸiÅŸtirir\n" +" --change-section-vma {=|+|-}\n" +" bölümünün VMA'sını kadar\n" +" deÄŸiÅŸtirir\n" " {--[no-]change-warnings|--[no-]adjust-warnings}\n" -" Eðer isimli bir bölüm yok ise uyarý verir\n" -" --set-section-flags =\n" -" bölümünün özniteliklerini\n" -" e ayarlar\n" -" --add-section = içinde bulunan bölümünü\n" -" çýktýya ekler\n" -" --rename-section =[,] bölümünü olarak\n" -" yeniden adlandýrýr\n" -" --change-leading-char Çýktý biçeminin baþlangýç karakter tipini\n" -" deðiþtirir\n" -" --remove-leading-char Evrensel sembollerden baþlangýç\n" -" karakterini çýkarýr\n" -" --redefine-sym = isimli sembolü isimli olarak\n" -" yeniden tanýmlar\n" -" --srec-len Oluþturulan S kayýtlarýnýn boyutunu\n" -" kýsýtlar\n" -" --srec-forceS3 Oluþturulan S kayýtlarý tipini S3 olarak\n" -" kýsýtlar\n" -" --strip-symbols daki bütün semboller için -N uygular\n" -" --keep-symbols daki bütün semboller için -K uygular\n" -" --localize-symbols daki bütün semboller için -L uygular\n" -" --keep-global-symbols daki bütün semboller için -G uygular\n" -" --weaken-symbols daki bütün semboller için -W uygular\n" -" --alt-machine-code Çýktý için alternatif makina kodu kullanýr\n" -" -v --verbose Deðiþtirilen tüm nesne dosyalarýný listeler\n" -" -V --version Bu yazýlýmýn sürüm bilgilerini gösterir\n" -" -h --help Bu çýktýyý gösterir\n" +" EÄŸer isimli bir bölüm yok ise uyarı verir\n" +" --set-section-flags =\n" +" bölümünün özniteliklerini\n" +" e ayarlar\n" +" --add-section = içinde bulunan bölümünü\n" +" çıktıya ekler\n" +" --rename-section =[,] bölümünü olarak\n" +" yeniden adlandırır\n" +" --change-leading-char Çıktı biçeminin baÅŸlangıç karakter tipini\n" +" deÄŸiÅŸtirir\n" +" --remove-leading-char Evrensel sembollerden baÅŸlangıç\n" +" karakterini çıkarır\n" +" --redefine-sym = isimli sembolü isimli olarak\n" +" yeniden tanımlar\n" +" --srec-len OluÅŸturulan S kayıtlarının boyutunu\n" +" kısıtlar\n" +" --srec-forceS3 OluÅŸturulan S kayıtları tipini S3 olarak\n" +" kısıtlar\n" +" --strip-symbols daki bütün semboller için -N uygular\n" +" --keep-symbols daki bütün semboller için -K uygular\n" +" --localize-symbols daki bütün semboller için -L uygular\n" +" --keep-global-symbols daki bütün semboller için -G uygular\n" +" --weaken-symbols daki bütün semboller için -W uygular\n" +" --alt-machine-code Çıktı için alternatif makina kodu kullanır\n" +" -v --verbose DeÄŸiÅŸtirilen tüm nesne dosyalarını listeler\n" +" -V --version Bu yazılımın sürüm bilgilerini gösterir\n" +" -h --help Bu çıktıyı gösterir\n" -#: objcopy.c:432 +#: objcopy.c:433 #, c-format -msgid "Usage: %s in-file(s)\n" -msgstr "Kullaným: %s girdi-dosya(larý)\n" +msgid "Usage: %s in-file(s)\n" +msgstr "Kullanım: %s girdi-dosya(ları)\n" #: objcopy.c:434 +msgid " Removes symbols and sections from files\n" +msgstr " Dosyalardan sembol ve bölümleri çıkarır\n" + +#: objcopy.c:436 msgid "" -" -I --input-target Assume input file is in format \n" -" -O --output-target Create an output file in format \n" -" -F --target Set both input and output format to \n" +" -I --input-target= Assume input file is in format \n" +" -O --output-target= Create an output file in format \n" +" -F --target= Set both input and output format to \n" " -p --preserve-dates Copy modified/access timestamps to the output\n" -" -R --remove-section Remove section from the output\n" +" -R --remove-section= Remove section from the output\n" " -s --strip-all Remove all symbol and relocation information\n" -" -g -S --strip-debug Remove all debugging symbols\n" +" -g -S -d --strip-debug Remove all debugging symbols\n" " --strip-unneeded Remove all symbols not needed by relocations\n" -" -N --strip-symbol Do not copy symbol \n" -" -K --keep-symbol Only copy symbol \n" +" -N --strip-symbol= Do not copy symbol \n" +" -K --keep-symbol= Only copy symbol \n" " -x --discard-all Remove all non-global symbols\n" " -X --discard-locals Remove any compiler-generated symbols\n" " -v --verbose List all object files modified\n" @@ -1673,230 +1828,230 @@ msgid "" " -h --help Display this output\n" " -o Place stripped output into \n" msgstr "" -" -I --input-target Girdi dosyasýnýn biçeminde olduðunu varsayar\n" -" -O --output-target Çýktý dosyasýný biçeminde oluþturur\n" -" -F --target Girdi ve çýktý biçemlerini olarak atar\n" -" -p --preserve-dates Çýktýya deðiþim/eriþim zaman damgalarýný kopyalar\n" -" -R --remove-section Çýktýdan bölümünü çýkarýr\n" -" -s --strip-all Bütün sembol ve yer deðiþtirme bilgisini siler\n" -" -g -S --strip-debug Bütün hata ayýklama sembollerini siler\n" -" --strip-unneeded Yer deðiþtirmeler için gerekmeyen bütün sembolleri siler\n" -" -N --strip-symbol sembolünü kopyalamaz\n" -" -K --keep-symbol Yalnýzca sembolünü kopyalar\n" -" -x --discard-all Evrensel olmayan bütün sembolleri siler\n" -" -X --discard-locals Derleyici tarafýndan oluþturulan bütün sembolleri siler\n" -" -v --verbose Deðiþtirilen tüm nesne dosyalarýný listeler\n" -" -V --version Bu yazýlýmýn sürüm bilgilerini gösterir\n" -" -h --help Bu çýktýyý gösterir\n" -" -o Sembolleri silinmiþ çýktýyý ya yerleþtirir\n" +" -I --input-target= Girdi dosyasının biçeminde olduÄŸunu varsayar\n" +" -O --output-target= Çıktı dosyasını biçeminde oluÅŸturur\n" +" -F --target= Girdi ve çıktı biçemlerini olarak atar\n" +" -p --preserve-dates Çıktıya deÄŸiÅŸim/eriÅŸim zaman damgalarını kopyalar\n" +" -R --remove-section= Çıktıdan bölümünü çıkarır\n" +" -s --strip-all Bütün sembol ve yer deÄŸiÅŸtirme bilgisini siler\n" +" -g -S --strip-debug Bütün hata ayıklama sembollerini siler\n" +" --strip-unneeded Yer deÄŸiÅŸtirmeler için gerekmeyen bütün sembolleri siler\n" +" -N --strip-symbol= sembolünü kopyalamaz\n" +" -K --keep-symbol= Yalnızca sembolünü kopyalar\n" +" -x --discard-all Evrensel olmayan bütün sembolleri siler\n" +" -X --discard-locals Derleyici tarafından oluÅŸturulan bütün sembolleri siler\n" +" -v --verbose DeÄŸiÅŸtirilen tüm nesne dosyalarını listeler\n" +" -V --version Bu yazılımın sürüm bilgilerini gösterir\n" +" -h --help Bu çıktıyı gösterir\n" +" -o Sembolleri silinmiÅŸ çıktıyı ya yerleÅŸtirir\n" -#: objcopy.c:504 +#: objcopy.c:506 #, c-format msgid "unrecognized section flag `%s'" -msgstr "bilinmeyen bölüm seçeneði `%s'" +msgstr "bilinmeyen bölüm seçeneÄŸi `%s'" -#: objcopy.c:505 +#: objcopy.c:507 #, c-format msgid "supported flags: %s" -msgstr "desteklenen seçenekler: %s" +msgstr "desteklenen seçenekler: %s" -#: objcopy.c:582 objcopy.c:2206 +#: objcopy.c:584 objcopy.c:2243 #, c-format msgid "cannot stat: %s: %s" -msgstr "durumlanamadý: %s: %s" +msgstr "durumlanamadı: %s: %s" -#: objcopy.c:589 objcopy.c:2224 +#: objcopy.c:591 objcopy.c:2261 #, c-format msgid "cannot open: %s: %s" -msgstr "açýlamadý: %s: %s" +msgstr "açılamadı: %s: %s" -#: objcopy.c:592 objcopy.c:2228 +#: objcopy.c:594 objcopy.c:2265 #, c-format msgid "%s: fread failed" -msgstr "%s: fread baþarýsýz" +msgstr "%s: fread baÅŸarısız" -#: objcopy.c:665 +#: objcopy.c:667 #, c-format msgid "Ignoring rubbish found on line %d of %s" -msgstr "%2$s içinde %1$d satýrýnda bulunan bozukluk yoksayýldý" +msgstr "%2$s içinde %1$d satırında bulunan bozukluk yoksayıldı" -#: objcopy.c:886 +#: objcopy.c:888 #, c-format msgid "%s: Multiple redefinition of symbol \"%s\"" -msgstr "%s: \"%s\" sembolü tekrar tanýmlanmýþ" +msgstr "%s: \"%s\" sembolü tekrar tanımlanmış" -#: objcopy.c:891 +#: objcopy.c:893 #, c-format msgid "%s: Symbol \"%s\" is target of more than one redefinition" -msgstr "%s: \"%s\" sembolü birden fazla yeniden tanýmlamanýn hedefi" +msgstr "%s: \"%s\" sembolü birden fazla yeniden tanımlamanın hedefi" -#: objcopy.c:943 +#: objcopy.c:945 msgid "Unable to change endianness of input file(s)" -msgstr "Girdi dosyanýn küçük/büyük sonluluðu deðiþtirilemedi" +msgstr "Girdi dosyanın küçük/büyük sonluluÄŸu deÄŸiÅŸtirilemedi" -#: objcopy.c:951 +#: objcopy.c:953 #, c-format msgid "copy from %s(%s) to %s(%s)\n" msgstr "%s(%s)'dan %s(%s)'a kopyalar\n" -#: objcopy.c:975 +#: objcopy.c:977 #, c-format msgid "Warning: Output file cannot represent architecture %s" -msgstr "Uyarý: Çýktý dosyasý %s mimarisini temsil edemez" +msgstr "Uyarı: Çıktı dosyası %s mimarisini temsil edemez" -#: objcopy.c:1002 +#: objcopy.c:1004 #, c-format msgid "can't create section `%s': %s" -msgstr "`%s' bölümü oluþturulamadý: %s" +msgstr "`%s' bölümü oluÅŸturulamadı: %s" -#: objcopy.c:1088 +#: objcopy.c:1090 #, c-format msgid "Can't fill gap after %s: %s" -msgstr "%s'den sonraki boþluk doldurulamadý: %s" +msgstr "%s'den sonraki boÅŸluk doldurulamadı: %s" -#: objcopy.c:1113 +#: objcopy.c:1115 #, c-format msgid "Can't add padding to %s: %s" msgstr "%s'ye dolgu eklenemedi: %s" -#: objcopy.c:1252 +#: objcopy.c:1254 #, c-format msgid "%s: error copying private BFD data: %s" -msgstr "%s: özel BFD verisi kopyalanýrken hata: %s" +msgstr "%s: özel BFD verisi kopyalanırken hata: %s" -#: objcopy.c:1265 +#: objcopy.c:1267 msgid "unknown alternate machine code, ignored" -msgstr "bilinmeyen alternatif makina kodu, yoksayýldý" +msgstr "bilinmeyen alternatif makina kodu, yoksayıldı" -#: objcopy.c:1295 +#: objcopy.c:1300 objcopy.c:1330 #, c-format msgid "cannot mkdir %s for archive copying (error: %s)" -msgstr "arþiv kopyalamasý için mkdir %s baþarýlý olamadý (hata: %s)" +msgstr "arÅŸiv kopyalaması için mkdir %s baÅŸarılı olamadı (hata: %s)" -#: objcopy.c:1466 +#: objcopy.c:1497 #, c-format msgid "Multiple renames of section %s" -msgstr "%s bölümünde birden fazla yeniden isimleme" +msgstr "%s bölümünde birden fazla yeniden isimleme" -#: objcopy.c:1550 +#: objcopy.c:1581 msgid "making" -msgstr "oluþturuluyor" +msgstr "oluÅŸturuluyor" -#: objcopy.c:1559 +#: objcopy.c:1590 msgid "size" msgstr "boyut" -#: objcopy.c:1573 +#: objcopy.c:1604 msgid "vma" msgstr "vma" -#: objcopy.c:1599 +#: objcopy.c:1630 msgid "alignment" msgstr "hizalama" -#: objcopy.c:1607 +#: objcopy.c:1638 msgid "flags" -msgstr "seçenekler" +msgstr "seçenekler" -#: objcopy.c:1624 +#: objcopy.c:1655 msgid "private data" -msgstr "özel veri" +msgstr "özel veri" -#: objcopy.c:1632 +#: objcopy.c:1663 #, c-format msgid "%s: section `%s': error in %s: %s" -msgstr "%s: bölüm `%s': %s'da hata: %s" +msgstr "%s: bölüm `%s': %s'da hata: %s" -#: objcopy.c:1910 +#: objcopy.c:1946 #, c-format msgid "%s: can't create debugging section: %s" -msgstr "%s: hata ayýklama bölümü oluþturulamadý: %s" +msgstr "%s: hata ayıklama bölümü oluÅŸturulamadı: %s" -#: objcopy.c:1925 +#: objcopy.c:1961 #, c-format msgid "%s: can't set debugging section contents: %s" -msgstr "%s: hata ayýklama bölüm içeriði atanamadý: %s" +msgstr "%s: hata ayıklama bölüm içeriÄŸi atanamadı: %s" -#: objcopy.c:1934 +#: objcopy.c:1970 #, c-format msgid "%s: don't know how to write debugging information for %s" -msgstr "%s: %s için hata ayýklama bilgisinin nasýl yazýlacaðý bilinmiyor" +msgstr "%s: %s için hata ayıklama bilgisinin nasıl yazılacağı bilinmiyor" -#: objcopy.c:2041 +#: objcopy.c:2078 #, c-format msgid "%s: cannot stat: %s" -msgstr "%s: durumlanamadý: %s" +msgstr "%s: durumlanamadı: %s" -#: objcopy.c:2092 +#: objcopy.c:2129 msgid "byte number must be non-negative" -msgstr "bayt numarasý negatif olmamalý" +msgstr "bayt numarası negatif olmamalı" -#: objcopy.c:2102 +#: objcopy.c:2139 msgid "interleave must be positive" -msgstr "serpiþtirme pozitif olmalý" +msgstr "serpiÅŸtirme pozitif olmalı" -#: objcopy.c:2122 objcopy.c:2130 +#: objcopy.c:2159 objcopy.c:2167 #, c-format msgid "%s both copied and removed" -msgstr "%s hem kopyalandý hem silindi" +msgstr "%s hem kopyalandı hem silindi" -#: objcopy.c:2203 objcopy.c:2273 objcopy.c:2373 objcopy.c:2400 objcopy.c:2424 -#: objcopy.c:2428 objcopy.c:2448 +#: objcopy.c:2240 objcopy.c:2310 objcopy.c:2410 objcopy.c:2437 objcopy.c:2461 +#: objcopy.c:2465 objcopy.c:2485 #, c-format msgid "bad format for %s" -msgstr "%s için hatalý biçem" +msgstr "%s için hatalı biçem" -#: objcopy.c:2342 +#: objcopy.c:2379 #, c-format msgid "Warning: truncating gap-fill from 0x%s to 0x%x" -msgstr "Uyarý: dolgu, 0x%s'dan 0x%x'ya kýrpýldý" +msgstr "Uyarı: dolgu, 0x%s'dan 0x%x'ya kırpıldı" -#: objcopy.c:2494 +#: objcopy.c:2531 msgid "alternate machine code index must be positive" -msgstr "alternatif makina kodu indeksi pozitif olmalý" +msgstr "alternatif makina kodu indeksi pozitif olmalı" -#: objcopy.c:2512 +#: objcopy.c:2550 msgid "byte number must be less than interleave" -msgstr "bayt numarasý serpiþtirmeden daha küçük olmalý" +msgstr "bayt numarası serpiÅŸtirmeden daha küçük olmalı" -#: objcopy.c:2539 +#: objcopy.c:2577 #, c-format msgid "architecture %s unknown" msgstr "%s platformu bilinmiyor" -#: objcopy.c:2543 +#: objcopy.c:2581 msgid "Warning: input target 'binary' required for binary architecture parameter." -msgstr "Uyarý: ikilik platform parametresi için ikilik (`binary') girdi hedefi gerekli." +msgstr "Uyarı: ikilik platform parametresi için ikilik (`binary') girdi hedefi gerekli." -#: objcopy.c:2544 +#: objcopy.c:2582 #, c-format msgid " Argument %s ignored" -msgstr " %s argümaný yoksayýldý" +msgstr " %s argümanı yoksayıldı" -#: objcopy.c:2550 +#: objcopy.c:2588 #, c-format msgid "Cannot stat: %s: %s" -msgstr "Durumlanamadý: %s: %s" +msgstr "Durumlanamadı: %s: %s" -#: objcopy.c:2590 objcopy.c:2604 +#: objcopy.c:2628 objcopy.c:2642 #, c-format msgid "%s %s%c0x%s never used" -msgstr "%s %s%c0x%s hiç kullanýlmadý" - -#: objdump.c:164 -#, c-format -msgid "Usage: %s OPTION... FILE...\n" -msgstr "Kullaným: %s SEÇENEK... DOSYA...\n" +msgstr "%s %s%c0x%s hiç kullanılmadı" #: objdump.c:165 -msgid "Display information from object FILE.\n" -msgstr "Nesne DOSYA'sýndan bilgi gösterir.\n" +#, c-format +msgid "Usage: %s \n" +msgstr "Kullanım: %s \n" #: objdump.c:166 -msgid "\n At least one of the following switches must be given:\n" -msgstr "\n En azýndan aþaðýdaki seçeneklerin biri verilmelidir:\n" +msgid " Display information from object .\n" +msgstr "Nesne 'sından bilgi gösterir.\n" #: objdump.c:167 +msgid " At least one of the following switches must be given:\n" +msgstr " En azından aÅŸağıdaki seçeneklerin biri verilmelidir:\n" + +#: objdump.c:168 msgid "" " -a, --archive-headers Display archive header information\n" " -f, --file-headers Display the contents of the overall file header\n" @@ -1913,35 +2068,39 @@ msgid "" " -T, --dynamic-syms Display the contents of the dynamic symbol table\n" " -r, --reloc Display the relocation entries in the file\n" " -R, --dynamic-reloc Display the dynamic relocation entries in the file\n" -" -V, --version Display this program's version number\n" +" -v, --version Display this program's version number\n" " -i, --info List object formats and architectures supported\n" " -H, --help Display this information\n" msgstr "" -" -a, --archive-headers Arþiv baþlýk bilgilerini gösterir\n" -" -f, --file-headers Dosya baþlýk bilgilerini gösterir\n" -" -p, --private-headers Nesne biçemine özgü dosya baþlýk bilgilerini gösterir\n" -" -h, --[section-]headers Bölüm baþlýklarýný gösterir\n" -" -x, --all-headers Bütün baþlýklarý gösterir\n" -" -d, --disassemble Uygulama bölümlerinin üretici içeriðini gösterir\n" -" -D, --disassemble-all Bütün bölümlerin üretici içeriklerini gösterir\n" -" -S, --source Üretici içerikleri ile kaynak kodunu bir arada gösterir\n" -" -s, --full-contents Ýstenen bütün bölümlerin bütün içeriðini gösterir\n" -" -g, --debugging Nesne dosyasýndaki hata ayýklama bilgilerini gösterir\n" -" -G, --stabs Dosyadaki STABS bilgisini (ham hali ile) gösterir\n" -" -t, --syms Sembol tablolarýnýn içeriðini gösterir\n" -" -T, --dynamic-syms Dinamik sembol tablolarýnýn içeriðini gösterir\n" -" -r, --reloc Dosyadaki yer deðiþtirme girdilerini gösterir\n" -" -R, --dynamic-reloc Dosyadaki dinamik yer deðiþtirme bilgilerini gösterir\n" -" -V, --version Bu yazýlýmýn sürüm bilgilerini gösterir\n" -" -i, --info Desteklenen biçem ve mimarileri gösterir\n" -" -H, --help Bu bilgiyi gösterir\n" - -#: objdump.c:189 -msgid "\n The following switches are optional:\n" -msgstr "\n Aþaðýdaki seçenekler isteðe baðlý:\n" +" -a, --archive-headers ArÅŸiv baÅŸlık bilgilerini gösterir\n" +" -f, --file-headers Dosya baÅŸlık bilgilerini gösterir\n" +" -p, --private-headers Nesne biçemine özgü dosya baÅŸlık bilgilerini gösterir\n" +" -h, --[section-]headers Bölüm baÅŸlıklarını gösterir\n" +" -x, --all-headers Bütün baÅŸlıkları gösterir\n" +" -d, --disassemble Uygulama bölümlerinin üretici içeriÄŸini gösterir\n" +" -D, --disassemble-all Bütün bölümlerin üretici içeriklerini gösterir\n" +" -S, --source Ãœretici içerikleri ile kaynak kodunu bir arada gösterir\n" +" -s, --full-contents Ä°stenen bütün bölümlerin bütün içeriÄŸini gösterir\n" +" -g, --debugging Nesne dosyasındaki hata ayıklama bilgilerini gösterir\n" +" -G, --stabs Dosyadaki STABS bilgisini (ham hali ile) gösterir\n" +" -t, --syms Sembol tablolarının içeriÄŸini gösterir\n" +" -T, --dynamic-syms Dinamik sembol tablolarının içeriÄŸini gösterir\n" +" -r, --reloc Dosyadaki yer deÄŸiÅŸtirme girdilerini gösterir\n" +" -R, --dynamic-reloc Dosyadaki dinamik yer deÄŸiÅŸtirme bilgilerini gösterir\n" +" -V, --version Bu yazılımın sürüm bilgilerini gösterir\n" +" -i, --info Desteklenen biçem ve mimarileri gösterir\n" +" -H, --help Bu bilgiyi gösterir\n" #: objdump.c:190 msgid "" +"\n" +" The following switches are optional:\n" +msgstr "" +"\n" +" AÅŸağıdaki seçenekler isteÄŸe baÄŸlı:\n" + +#: objdump.c:191 +msgid "" " -b, --target=BFDNAME Specify the target object format as BFDNAME\n" " -m, --architecture=MACHINE Specify the target architecture as MACHINE\n" " -j, --section=NAME Only display information for section NAME\n" @@ -1962,165 +2121,181 @@ msgid "" " --adjust-vma=OFFSET Add OFFSET to all displayed section addresses\n" "\n" msgstr "" -" -b, --target=BFD_ADI Hedef nesne biçemini BFD_ADI olarak belirtir\n" -" -m, --architecture=MAKÝNA Hedef mimariyi MAKÝNA olarak belirtir\n" -" -j, --section=ÝSÝM Yalnýzca ÝSÝM bölümü için bilgi gösterir\n" -" -M, --disassembler-options=SEÇ Karþýt-çeviriciye metin SEÇeneklerini geçirir\n" -" -EB --endian=big Karþýt-çevirim esnasýnda big-endian biçemini varsayar\n" -" -EL --endian=little Karþýt-çevirim esnasýnda little-endian biçemini varsayar\n" -" --file-start-context Dosyanýn baþlangýcýndan itibaren baðlamý içerir (-S ile)\n" -" -l, --line-numbers Çýktýda dosya isimleri ve satýr numaralarý gösterir\n" -" -C, --demangle[=TARZ] Karýþtýrýlmýþ/iþlenmiþ sembol isimlerini çözümler\n" -" Tarz, eðer belirtilmiþse, `auto', 'gnu',\n" +" -b, --target=BFD_ADI Hedef nesne biçemini BFD_ADI olarak belirtir\n" +" -m, --architecture=MAKÄ°NA Hedef mimariyi MAKÄ°NA olarak belirtir\n" +" -j, --section=Ä°SÄ°M Yalnızca Ä°SÄ°M bölümü için bilgi gösterir\n" +" -M, --disassembler-options=SEÇ Karşıt-çeviriciye metin SEÇeneklerini geçirir\n" +" -EB --endian=big Karşıt-çevirim esnasında big-endian biçemini varsayar\n" +" -EL --endian=little Karşıt-çevirim esnasında little-endian biçemini varsayar\n" +" --file-start-context Dosyanın baÅŸlangıcından itibaren baÄŸlamı içerir (-S ile)\n" +" -l, --line-numbers Çıktıda dosya isimleri ve satır numaraları gösterir\n" +" -C, --demangle[=TARZ] Karıştırılmış/iÅŸlenmiÅŸ sembol isimlerini çözümler\n" +" Tarz, eÄŸer belirtilmiÅŸse, `auto', 'gnu',\n" " 'lucid', 'arm', 'hp', 'edg', veya 'gnu-new-abi' olabilir\n" -" -w, --wide Çýktýyý 80 sütundan daha geniþ olarak biçemler\n" -" -z, --disassemble-zeroes Karþýt-çevirim esnasýnda sýfýr bloklarýný atlamaz\n" -" --start-address=ADRES Yalnýzca adresi >= ADRES olan verileri iþler\n" -" --stop-address=ADRES Yalnýzca adresi <= ADRES olan verileri iþler\n" -" --prefix-addresses Tam adresi karþýt çevirim ile birlikte yazdýrýr\n" -" --[no-]show-raw-insn Onaltýlýk bilgi ile sembolik karþýt-çevrimi birlikte yazdýrýr\n" -" --adjust-vma=BASAMAK Bütün gösterilen bölüm adreslerine BASAMAK ekler\n" +" -w, --wide Çıktıyı 80 sütundan daha geniÅŸ olarak biçemler\n" +" -z, --disassemble-zeroes Karşıt-çevirim esnasında sıfır bloklarını atlamaz\n" +" --start-address=ADRES Yalnızca adresi >= ADRES olan verileri iÅŸler\n" +" --stop-address=ADRES Yalnızca adresi <= ADRES olan verileri iÅŸler\n" +" --prefix-addresses Tam adresi karşıt çevirim ile birlikte yazdırır\n" +" --[no-]show-raw-insn Onaltılık bilgi ile sembolik karşıt-çevrimi birlikte yazdırır\n" +" --adjust-vma=BASAMAK Bütün gösterilen bölüm adreslerine BASAMAK ekler\n" "\n" -#: objdump.c:359 +#: objdump.c:358 msgid "Sections:\n" -msgstr "Bölümler:\n" +msgstr "Bölümler:\n" -#: objdump.c:362 +#: objdump.c:361 objdump.c:365 msgid "Idx Name Size VMA LMA File off Algn" -msgstr "Idx Adý Boy VMA LMA Dosya of Hiza" +msgstr "Idx Adı Boy VMA LMA Dosya of Hiza" -#: objdump.c:364 +#: objdump.c:367 msgid "Idx Name Size VMA LMA File off Algn" -msgstr "Idx Adý Boy VMA LMA Dosya of Hiza" +msgstr "Idx Adı Boy VMA LMA Dosya of Hiza" -#: objdump.c:368 +#: objdump.c:371 msgid " Flags" -msgstr " Seçenekler" +msgstr " Seçenekler" -#: objdump.c:418 +#: objdump.c:419 #, c-format msgid "%s: not a dynamic object" -msgstr "%s: dinamik nesne deðil" +msgstr "%s: dinamik nesne deÄŸil" -#: objdump.c:434 +#: objdump.c:433 #, c-format msgid "%s: No dynamic symbols" msgstr "%s: Dinamik sembol yok" -#: objdump.c:1124 +#: objdump.c:1114 msgid "Out of virtual memory" -msgstr "Sanal bellek tükendi" +msgstr "Sanal bellek tükendi" -#: objdump.c:1553 +#: objdump.c:1543 #, c-format msgid "Can't use supplied machine %s" -msgstr "Verilen makina %s kullanýlamadý" +msgstr "Verilen makina %s kullanılamadı" -#: objdump.c:1571 +#: objdump.c:1561 #, c-format msgid "Can't disassemble for architecture %s\n" -msgstr "%s mimarisi için karþýt çevirim yapýlamadý\n" +msgstr "%s mimarisi için karşıt çevirim yapılamadı\n" -#: objdump.c:1653 +#: objdump.c:1643 #, c-format msgid "Disassembly of section %s:\n" -msgstr "%s bölümünün karþýt çevrimi:\n" +msgstr "%s bölümünün karşıt çevrimi:\n" -#: objdump.c:1828 +#: objdump.c:1818 #, c-format -msgid "No %s section present\n\n" -msgstr "%s bölümü yok\n\n" +msgid "" +"No %s section present\n" +"\n" +msgstr "" +"%s bölümü yok\n" +"\n" -#: objdump.c:1835 +#: objdump.c:1825 #, c-format msgid "%s has no %s section" -msgstr "%s %s bölümü yok" +msgstr "%s %s bölümü yok" -#: objdump.c:1849 +#: objdump.c:1839 #, c-format msgid "Reading %s section of %s failed: %s" -msgstr "%2$s'nin %1$s bölümünün okunmasý baþarýsýz: %3$s" +msgstr "%2$s'nin %1$s bölümünün okunması baÅŸarısız: %3$s" -#: objdump.c:1861 +#: objdump.c:1851 #, c-format msgid "Reading %s section of %s failed: %s\n" -msgstr "%2$s'nin %1$s bölümünün okunmasý baþarýsýz: %3$s\n" +msgstr "%2$s'nin %1$s bölümünün okunması baÅŸarısız: %3$s\n" -#: objdump.c:1904 +#: objdump.c:1894 #, c-format -msgid "Contents of %s section:\n\n" -msgstr "%s bölümünün içeriði:\n\n" +msgid "" +"Contents of %s section:\n" +"\n" +msgstr "" +"%s bölümünün içeriÄŸi:\n" +"\n" -#: objdump.c:2004 +#: objdump.c:1994 #, c-format msgid "architecture: %s, " msgstr "mimari: %s," -#: objdump.c:2007 +#: objdump.c:1997 #, c-format msgid "flags 0x%08x:\n" -msgstr "seçenekler 0x%08x:\n" +msgstr "seçenekler 0x%08x:\n" -#: objdump.c:2020 -msgid "\nstart address 0x" -msgstr "\nbaþlangýç adresi 0x" +#: objdump.c:2010 +msgid "" +"\n" +"start address 0x" +msgstr "" +"\n" +"baÅŸlangıç adresi 0x" -#: objdump.c:2052 +#: objdump.c:2042 #, c-format -msgid "\n%s: file format %s\n" -msgstr "\n%s: %s dosya biçemi\n" +msgid "" +"\n" +"%s: file format %s\n" +msgstr "" +"\n" +"%s: %s dosya biçemi\n" -#: objdump.c:2094 +#: objdump.c:2084 #, c-format msgid "%s: printing debugging information failed" -msgstr "%s: hata ayýklama bilgisinin yazdýrýlmasý baþarýsýz" +msgstr "%s: hata ayıklama bilgisinin yazdırılması baÅŸarısız" -#: objdump.c:2171 +#: objdump.c:2161 #, c-format msgid "In archive %s:\n" -msgstr "%s arþivi içinde:\n" +msgstr "%s arÅŸivi içinde:\n" -#: objdump.c:2223 +#: objdump.c:2213 #, c-format msgid "Contents of section %s:\n" -msgstr "%s bölümünün içeriði:\n" +msgstr "%s bölümünün içeriÄŸi:\n" -#: objdump.c:2736 +#: objdump.c:2718 #, c-format msgid "BFD header file version %s\n" -msgstr "BFD baþlýk dosyasý sürümü %s\n" +msgstr "BFD baÅŸlık dosyası sürümü %s\n" -#: objdump.c:2825 +#: objdump.c:2807 msgid "unrecognized -E option" -msgstr "tanýnmayan -E seçeneði" +msgstr "tanınmayan -E seçeneÄŸi" -#: objdump.c:2836 +#: objdump.c:2818 #, c-format msgid "unrecognized --endian type `%s'" -msgstr "tanýnmayan --endian tipi `%s'" +msgstr "tanınmayan --endian tipi `%s'" -#: rdcoff.c:205 +#: rdcoff.c:204 #, c-format msgid "parse_coff_type: Bad type code 0x%x" -msgstr "parse_coff_type: Kötü tip kodu 0x%x" +msgstr "parse_coff_type: Kötü tip kodu 0x%x" -#: rdcoff.c:423 rdcoff.c:531 rdcoff.c:730 +#: rdcoff.c:422 rdcoff.c:530 rdcoff.c:729 #, c-format msgid "bfd_coff_get_syment failed: %s" -msgstr "bfd_coff_get_syment baþarýsýz: %s" +msgstr "bfd_coff_get_syment baÅŸarısız: %s" -#: rdcoff.c:439 rdcoff.c:750 +#: rdcoff.c:438 rdcoff.c:749 #, c-format msgid "bfd_coff_get_auxent failed: %s" -msgstr "bfd_coff_get_auxent baþarýsýz: %s" +msgstr "bfd_coff_get_auxent baÅŸarısız: %s" -#: rdcoff.c:817 +#: rdcoff.c:816 #, c-format msgid "%ld: .bf without preceding function" -msgstr "%ld: öncesinde iþlev olmadan .bf" +msgstr "%ld: öncesinde iÅŸlev olmadan .bf" -#: rdcoff.c:867 +#: rdcoff.c:866 #, c-format msgid "%ld: unexpected .ef\n" msgstr "%ld: beklenmeyen .ef\n" @@ -2128,1826 +2303,2056 @@ msgstr "%ld: beklenmeyen .ef\n" #: rddbg.c:87 #, c-format msgid "%s: no recognized debugging information" -msgstr "%s: tanýnan hata ayýklama bilgisi yok" +msgstr "%s: tanınan hata ayıklama bilgisi yok" #: rddbg.c:410 msgid "Last stabs entries before error:\n" -msgstr "Hata öncesi son stabs girdileri:\n" +msgstr "Hata öncesi son stabs girdileri:\n" -#: readelf.c:318 +#: readelf.c:328 #, c-format msgid "%s: Error: " msgstr "%s: Hata: " -#: readelf.c:329 +#: readelf.c:339 #, c-format msgid "%s: Warning: " -msgstr "%s: Uyarý: " +msgstr "%s: Uyarı: " -#: readelf.c:351 +#: readelf.c:361 #, c-format msgid "Unable to seek to %x for %s\n" -msgstr "%2$s için %1$x'e kadar arama yapýlamadý\n" +msgstr "%2$s için %1$x'e kadar arama yapılamadı\n" -#: readelf.c:362 +#: readelf.c:372 #, c-format msgid "Out of memory allocating %d bytes for %s\n" -msgstr "%2$s için %1$d bayt ayrýlýrken bellek tükendi\n" +msgstr "%2$s için %1$d bayt ayrılırken bellek tükendi\n" -#: readelf.c:370 +#: readelf.c:380 #, c-format msgid "Unable to read in %d bytes of %s\n" -msgstr "%2$s'in %1$d baytý okunamadý\n" +msgstr "%2$s'in %1$d baytı okunamadı\n" -#: readelf.c:423 readelf.c:581 +#: readelf.c:433 readelf.c:591 #, c-format msgid "Unhandled data length: %d\n" -msgstr "Desteklenmeyen veri uzunluðu: %d\n" +msgstr "Desteklenmeyen veri uzunluÄŸu: %d\n" -#: readelf.c:660 +#: readelf.c:675 msgid "Don't know about relocations on this machine architecture\n" -msgstr "Bu makina mimarisi üzerinde yer deðiþtirmeler konusunda bilgi yok\n" +msgstr "Bu makina mimarisi üzerinde yer deÄŸiÅŸtirmeler konusunda bilgi yok\n" -#: readelf.c:682 readelf.c:711 readelf.c:757 readelf.c:784 +#: readelf.c:697 readelf.c:726 readelf.c:772 readelf.c:799 msgid "relocs" -msgstr "yerdeðiþimler" +msgstr "yerdeÄŸiÅŸimler" -#: readelf.c:693 readelf.c:722 readelf.c:767 readelf.c:794 +#: readelf.c:708 readelf.c:737 readelf.c:782 readelf.c:809 msgid "out of memory parsing relocs" -msgstr "yer deðiþtirmeleri tararken bellek tükendi" +msgstr "yer deÄŸiÅŸtirmeleri tararken bellek tükendi" + +#: readelf.c:861 +msgid " Offset Info Type Sym. Value Symbol's Name + Addend\n" +msgstr " Görece Bilgi Tür Sembol DeÄŸeri Sembol Adı + Sonekleme\n" + +#: readelf.c:863 +msgid " Offset Info Type Sym.Value Sym. Name + Addend\n" +msgstr " Görece Bilgi Tür Sembol DeÄŸeri Sembol Adı + Sonekleme\n" -#: readelf.c:845 -msgid " Offset Info Type Symbol's Value Symbol's Name Addend\n" -msgstr " Görece Bilgi Tür Sembol Deðeri Sembol Adý Sonekleme\n" +#: readelf.c:868 +msgid " Offset Info Type Sym. Value Symbol's Name\n" +msgstr " Görece Bilgi Tür Sembol DeÄŸeri Sembol Adı\n" -#: readelf.c:848 -msgid " Offset Info Type Symbol's Value Symbol's Name\n" -msgstr " Görece Bilgi Tür Sembol Deðeri Sembol Adý\n" +#: readelf.c:870 +msgid " Offset Info Type Sym.Value Sym. Name\n" +msgstr " Görece Bilgi Tür Sembol DeÄŸeri Sembol Adı\n" -#: readelf.c:854 -msgid " Offset Info Type Symbol's Value Symbol's Name Addend\n" -msgstr " Görece Bilgi Tür Sembol Deðeri Sembol Adý Sonekleme\n" +#: readelf.c:878 +msgid " Offset Info Type Symbol's Value Symbol's Name + Addend\n" +msgstr " Görece Bilgi Tür Sembol DeÄŸeri Sembol Adı + Sonek\n" -#: readelf.c:857 -msgid " Offset Info Type Symbol's Value Symbol's Name\n" -msgstr " Görece Bilgi Tür Sembol Deðeri Sembol Adý\n" +#: readelf.c:880 +msgid " Offset Info Type Sym. Value Sym. Name + Addend\n" +msgstr " Görece Bilgi Tür Sembol DeÄŸeri Sembol Adı + Sonekleme\n" -#: readelf.c:1061 readelf.c:1063 +#: readelf.c:885 +msgid " Offset Info Type Symbol's Value Symbol's Name\n" +msgstr " Görece Bilgi Tür Sembol DeÄŸeri Sembol Adı\n" + +#: readelf.c:887 +msgid " Offset Info Type Sym. Value Sym. Name\n" +msgstr " Görece Bilgi Tür Sembol DeÄŸeri Sembol Adı\n" + +#: readelf.c:1134 readelf.c:1136 readelf.c:1184 readelf.c:1186 readelf.c:1195 +#: readelf.c:1197 #, c-format -msgid "unrecognised: %-7lx" +msgid "unrecognized: %-7lx" msgstr "bilinmeyen: %-7lx" -#: readelf.c:1085 +#: readelf.c:1158 #, c-format msgid "" msgstr "" -#: readelf.c:1315 +#: readelf.c:1423 #, c-format msgid "Processor Specific: %lx" -msgstr "Ýþlemciye Özel: %lx" +msgstr "Ä°ÅŸlemciye Özel: %lx" -#: readelf.c:1334 +#: readelf.c:1442 #, c-format msgid "Operating System specific: %lx" -msgstr "Ýþletim Sistemine Özel: %lx" +msgstr "Ä°ÅŸletim Sistemine Özel: %lx" -#: readelf.c:1337 readelf.c:1961 +#: readelf.c:1445 readelf.c:2086 #, c-format msgid ": %lx" msgstr ": %lx" -#: readelf.c:1351 +#: readelf.c:1459 msgid "NONE (None)" -msgstr "HÝÇBÝRÝ (Hiçbiri)" +msgstr "HİÇBÄ°RÄ° (Hiçbiri)" -#: readelf.c:1352 +#: readelf.c:1460 msgid "REL (Relocatable file)" -msgstr "YER (Yer deðiþtirebilen dosya)" +msgstr "YER (Yer deÄŸiÅŸtirebilen dosya)" -#: readelf.c:1353 +#: readelf.c:1461 msgid "EXEC (Executable file)" -msgstr "UYGU (Uygulama dosyasý)" +msgstr "UYGU (Uygulama dosyası)" -#: readelf.c:1354 +#: readelf.c:1462 msgid "DYN (Shared object file)" -msgstr "DÝN (Paylaþýmlý nesne dosyasý)" +msgstr "DÄ°N (Paylaşımlı nesne dosyası)" -#: readelf.c:1355 +#: readelf.c:1463 msgid "CORE (Core file)" -msgstr "CORE (Core dosyasý)" +msgstr "CORE (Core dosyası)" -#: readelf.c:1359 +#: readelf.c:1467 #, c-format msgid "Processor Specific: (%x)" -msgstr "Ýþlemciye Özel: (%x)" +msgstr "Ä°ÅŸlemciye Özel: (%x)" -#: readelf.c:1361 +#: readelf.c:1469 #, c-format msgid "OS Specific: (%x)" -msgstr "Ýþletim Sistemine Özel: (%x)" +msgstr "Ä°ÅŸletim Sistemine Özel: (%x)" -#: readelf.c:1363 readelf.c:1460 readelf.c:2112 +#: readelf.c:1471 readelf.c:1573 readelf.c:2238 #, c-format msgid ": %x" msgstr ": %x" -#: readelf.c:1376 +#: readelf.c:1484 msgid "None" -msgstr "Hiçbiri" +msgstr "Hiçbiri" -#: readelf.c:2152 -msgid "Usage: readelf {options} elf-file(s)\n" -msgstr "Kullaným: readelf {seçenekler} elf-dosya(larý)\n" +#: readelf.c:2278 +msgid "Usage: readelf elf-file(s)\n" +msgstr "Kullanım: readelf elf-dosya(ları)\n" -#: readelf.c:2153 -msgid " Options are:\n" -msgstr " Seçenekler:\n" +#: readelf.c:2279 +msgid " Display information about the contents of ELF format files\n" +msgstr " ELF biçem dosyalarının içeriÄŸi hakkında bilgi gösterir\n" -#: readelf.c:2154 -msgid " -a or --all Equivalent to: -h -l -S -s -r -d -V -A -I\n" -msgstr " -a veya --all Buna eþit: -h -l -S -s -r -d -V -A -I\n" +#: readelf.c:2280 +msgid "" +" Options are:\n" +" -a --all Equivalent to: -h -l -S -s -r -d -V -A -I\n" +" -h --file-header Display the ELF file header\n" +" -l --program-headers Display the program headers\n" +" --segments An alias for --program-headers\n" +" -S --section-headers Display the sections' header\n" +" --sections An alias for --section-headers\n" +" -e --headers Equivalent to: -h -l -S\n" +" -s --syms Display the symbol table\n" +" --symbols An alias for --syms\n" +" -n --notes Display the core notes (if present)\n" +" -r --relocs Display the relocations (if present)\n" +" -u --unwind Display the unwind info (if present)\n" +" -d --dynamic Display the dynamic segment (if present)\n" +" -V --version-info Display the version sections (if present)\n" +" -A --arch-specific Display architecture specific information (if any).\n" +" -D --use-dynamic Use the dynamic section info when displaying symbols\n" +" -x --hex-dump= Dump the contents of section \n" +" -w --debug-dump[=line,=info,=abbrev,=pubnames,=ranges,=macro,=frames,=str,=loc]\n" +" Display the contents of DWARF2 debug sections\n" +msgstr "" +" Seçenekler:\n" +" -a --all -h -l -S -s -r -d -V -A -I ile aynı\n" +" -h --file-header ELF dosya baÅŸlığını gösterir\n" +" -l --program-headers Yazılım baÅŸlıklarını gösterir\n" +" --segments --program-headers ile aynı\n" +" -S --section-headers Bölüm baÅŸlıklarını gösterir\n" +" --sections --section-headers ile aynı\n" +" -e --headers -h -l -S ile aynı\n" +" -s --syms Sembol tablosunu gösterir\n" +" --symbols --syms ile aynı\n" +" -n --notes EÄŸer varsa, 'core' dosyasını gösterir\n" +" -r --relocs EÄŸer varsa, yerdeÄŸiÅŸimleri gösterir\n" +" -u --unwind EÄŸer varsa, geri dönüşümleri gösterir\n" +" -d --dynamic EÄŸer varsa, dinamik bölümleri gösterir\n" +" -V --version-info EÄŸer varsa, sürüm bölümlerini gösterir\n" +" -A --arch-specific EÄŸer varsa, platforma özgü bilgileri gösterir\n" +" -D --use-dynamic Sembolleri gösterirken dinamik bölümleri kullanır\n" +" -x --hex-dump= no'lu bölümün içeriÄŸini gösterir\n" +" -w --debug-dump[=line,=info,=abbrev,=pubnames,=ranges,=macro,=frames,=str,=loc]\n" +" DWARF2 hata ayıklama bölümlerinin içeriÄŸini gösterir\n" -#: readelf.c:2155 -msgid " -h or --file-header Display the ELF file header\n" -msgstr " -h veya --file-header ELF dosyasý baþlýðýný gösterir\n" +#: readelf.c:2301 +msgid "" +" -i --instruction-dump=\n" +" Disassemble the contents of section \n" +msgstr "" +" -i --instruction-dump=\n" +" bölümünün içeriÄŸini karşıt-çevirir\n" -#: readelf.c:2156 -msgid " -l or --program-headers or --segments\n" -msgstr " -l veya --program-headers veya --segments\n" +#: readelf.c:2305 +msgid "" +" -I --histogram Display histogram of bucket list lengths\n" +" -W --wide Allow output width to exceed 80 characters\n" +" -H --help Display this information\n" +" -v --version Display the version number of readelf\n" +msgstr "" +" -I --histogram Küme listesi uzunluklarının geçmiÅŸ grafiÄŸini gösterir\n" +" -W --wide Çıktı geniÅŸliÄŸinin 80 karakteri geçmesine izin verir\n" +" -H --help Bu bilgiyi gösterir\n" +" -v --version readelf'in sürüm no'sunu gösterir\n" -#: readelf.c:2157 -msgid " Display the program headers\n" -msgstr " Yazýlým baþlýklarýný gösterir\n" +#: readelf.c:2327 +msgid "Out of memory allocating dump request table." +msgstr "Döküm istek tablosu ayrılırken bellek tükendi." -#: readelf.c:2158 -msgid " -S or --section-headers or --sections\n" -msgstr " -S veya --section-headers veya --sections\n" +#: readelf.c:2491 +#, c-format +msgid "Unrecognized debug option '%s'\n" +msgstr "Tanınmayan hata ayıklama seçeneÄŸi '%s'\n" -#: readelf.c:2159 -msgid " Display the sections' header\n" -msgstr " Bölüm baþlýklarýný gösterir\n" +#: readelf.c:2519 +#, c-format +msgid "Invalid option '-%c'\n" +msgstr "Geçersiz seçenek '-%c'\n" -#: readelf.c:2160 -msgid " -e or --headers Equivalent to: -h -l -S\n" -msgstr " -e veya --headers Buna eþit: -h -l -S\n" - -#: readelf.c:2161 -msgid " -s or --syms or --symbols Display the symbol table\n" -msgstr " -s veya --syms veya --symbols Sembol tablosunu gösterir\n" - -#: readelf.c:2162 -msgid " -n or --notes Display the core notes (if present)\n" -msgstr " -n veya --notes (Eðer varsa) core notlarýný gösterir\n" - -#: readelf.c:2163 -msgid " -r or --relocs Display the relocations (if present)\n" -msgstr " -r veya --relocs (Eðer varsa) yer deðiþtirmeleri gösterir\n" - -#: readelf.c:2164 -msgid " -u or --unwind Display the unwind info (if present)\n" -msgstr " -u veya --unwind (Eðer varsa) geri alma bilgisini gösterir\n" - -#: readelf.c:2165 -msgid " -d or --dynamic Display the dynamic segment (if present)\n" -msgstr " -d veya --dynamic (Eðer varsa) dinamik bölümü gösterir\n" - -#: readelf.c:2166 -msgid " -V or --version-info Display the version sections (if present)\n" -msgstr " -V veya --version-info (Eðer varsa) sürüm bölümlerini gösterir\n" - -#: readelf.c:2167 -msgid " -A or --arch-specific Display architecture specific information (if any).\n" -msgstr " -A veya --arch-specific (Eðer varsa) mimariye özel bilgiyi gösterir.\n" - -#: readelf.c:2168 -msgid " -D or --use-dynamic Use the dynamic section info when displaying symbols\n" -msgstr " -D veya --use-dynamic Sembolleri gösterirken dinamik bölüm bilgisini kullanýr\n" - -#: readelf.c:2169 -msgid " -x or --hex-dump=\n" -msgstr " -x veya --hex-dump=\n" - -#: readelf.c:2170 -msgid " Dump the contents of section \n" -msgstr " bölümünün içeriðini gösterir\n" - -#: readelf.c:2171 -msgid " -w[liaprmfs] or --debug-dump[=line,=info,=abbrev,=pubnames,=ranges,=macro,=frames,=str]\n" -msgstr " -w[liaprmfs] veya --debug-dump[=line,=info,=abbrev,=pubnames,=ranges,=macro,=frames,=str]\n" - -#: readelf.c:2172 -msgid " Display the contents of DWARF2 debug sections\n" -msgstr " DWARF2 hata ayýklama bölümlerinin içeriðini gösterir\n" - -#: readelf.c:2174 -msgid " -i or --instruction-dump=\n" -msgstr " -i veya --instruction-dump=\n" - -#: readelf.c:2175 -msgid " Disassemble the contents of section \n" -msgstr " bölümünün içeriðini karþýt-çevirir\n" - -#: readelf.c:2177 -msgid " -I or --histogram Display histogram of bucket list lengths\n" -msgstr " -I veya --histogram Küme liste uzunluðu geçmiþ grafiðini gösterir\n" - -#: readelf.c:2178 -msgid " -v or --version Display the version number of readelf\n" -msgstr " -v veya --version readelf'in sürüm numarasýný gösterir\n" - -#: readelf.c:2179 -msgid " -W or --wide Don't split lines or truncate symbols to fit into 80 columns\n" -msgstr " -W veya --wide 80 sütuna sýðdýrmak için satýrlarý bölmez veya kesmez\n" - -#: readelf.c:2180 -msgid " -H or --help Display this information\n" -msgstr " -H veya --help Bu bilgiyi gösterir\n" - -#: readelf.c:2198 -msgid "Out of memory allocating dump request table." -msgstr "Döküm istek tablosu ayrýlýrken bellek tükendi." - -#: readelf.c:2357 -#, c-format -msgid "Unrecognised debug option '%s'\n" -msgstr "Tanýnmayan hata ayýklama seçeneði '%s'\n" - -#: readelf.c:2385 -#, c-format -msgid "Invalid option '-%c'\n" -msgstr "Geçersiz seçenek '-%c'\n" - -#: readelf.c:2398 +#: readelf.c:2532 msgid "Nothing to do.\n" -msgstr "Yapýlacak bir þey yok.\n" +msgstr "Yapılacak bir ÅŸey yok.\n" -#: readelf.c:2411 readelf.c:2428 readelf.c:4700 +#: readelf.c:2545 readelf.c:2562 readelf.c:4867 msgid "none" msgstr "yok" -#: readelf.c:2415 readelf.c:2432 readelf.c:2460 +#: readelf.c:2549 readelf.c:2566 readelf.c:2594 #, c-format msgid "" msgstr "" -#: readelf.c:2429 +#: readelf.c:2563 msgid "2's complement, little endian" msgstr "2's complement, little endian" -#: readelf.c:2430 +#: readelf.c:2564 msgid "2's complement, big endian" msgstr "2's complement, big endian" -#: readelf.c:2457 +#: readelf.c:2591 msgid "Standalone App" -msgstr "Tekbaþýna Uygulama" +msgstr "Tekbaşına Uygulama" -#: readelf.c:2475 +#: readelf.c:2609 msgid "Not an ELF file - it has the wrong magic bytes at the start\n" -msgstr "ELF dosyasý deðil - baþlangýçta yanlýþ sihirli baytlar var\n" +msgstr "ELF dosyası deÄŸil - baÅŸlangıçta yanlış sihirli baytlar var\n" -#: readelf.c:2483 +#: readelf.c:2617 msgid "ELF Header:\n" -msgstr "ELF Baþlýðý:\n" +msgstr "ELF BaÅŸlığı:\n" -#: readelf.c:2484 +#: readelf.c:2618 msgid " Magic: " msgstr " Sihir: " -#: readelf.c:2488 +#: readelf.c:2622 #, c-format msgid " Class: %s\n" -msgstr " Sýnýf: %s\n" +msgstr " Sınıf: %s\n" -#: readelf.c:2490 +#: readelf.c:2624 #, c-format msgid " Data: %s\n" msgstr " Veri: %s\n" -#: readelf.c:2492 +#: readelf.c:2626 #, c-format msgid " Version: %d %s\n" -msgstr " Sürüm: %d %s\n" +msgstr " Sürüm: %d %s\n" -#: readelf.c:2499 +#: readelf.c:2633 #, c-format msgid " OS/ABI: %s\n" msgstr " OS/ABI: %s\n" -#: readelf.c:2501 +#: readelf.c:2635 #, c-format msgid " ABI Version: %d\n" -msgstr " ABI Sürümü: %d\n" +msgstr " ABI Sürümü: %d\n" -#: readelf.c:2503 +#: readelf.c:2637 #, c-format msgid " Type: %s\n" msgstr " Tip: %s\n" -#: readelf.c:2505 +#: readelf.c:2639 #, c-format msgid " Machine: %s\n" msgstr " Makina: %s\n" -#: readelf.c:2507 +#: readelf.c:2641 #, c-format msgid " Version: 0x%lx\n" -msgstr " Sürüm: 0x%lx\n" +msgstr " Sürüm: 0x%lx\n" -#: readelf.c:2510 +#: readelf.c:2644 msgid " Entry point address: " -msgstr " Girdi noktasý adresi: " +msgstr " Girdi noktası adresi: " -#: readelf.c:2512 -msgid "\n Start of program headers: " -msgstr "\n Yazýlým baþlýklarý baþlangýcý: " +#: readelf.c:2646 +msgid "" +"\n" +" Start of program headers: " +msgstr "" +"\n" +" Yazılım baÅŸlıkları baÅŸlangıcı: " -#: readelf.c:2514 +#: readelf.c:2648 msgid "" " (bytes into file)\n" " Start of section headers: " msgstr "" -" (bayt dosya içinde)\n" -" Bölüm baþlýklarý baþlangýcý: " +" (bayt dosya içinde)\n" +" Bölüm baÅŸlıkları baÅŸlangıcı: " -#: readelf.c:2516 +#: readelf.c:2650 msgid " (bytes into file)\n" -msgstr " (bayt dosya içinde)\n" +msgstr " (bayt dosya içinde)\n" -#: readelf.c:2518 +#: readelf.c:2652 #, c-format msgid " Flags: 0x%lx%s\n" -msgstr " Seçenekler: 0x%lx%s\n" +msgstr " Seçenekler: 0x%lx%s\n" -#: readelf.c:2521 +#: readelf.c:2655 #, c-format msgid " Size of this header: %ld (bytes)\n" -msgstr " Bu baþlýðýn boyu: %ld (bayt)\n" +msgstr " Bu baÅŸlığın boyu: %ld (bayt)\n" -#: readelf.c:2523 +#: readelf.c:2657 #, c-format msgid " Size of program headers: %ld (bytes)\n" -msgstr " Yazýlým baþlýk boyu: %ld (bayt)\n" +msgstr " Yazılım baÅŸlık boyu: %ld (bayt)\n" -#: readelf.c:2525 +#: readelf.c:2659 #, c-format msgid " Number of program headers: %ld\n" -msgstr " Yazýlým baþlýk sayýsý: %ld\n" +msgstr " Yazılım baÅŸlık sayısı: %ld\n" -#: readelf.c:2527 +#: readelf.c:2661 #, c-format msgid " Size of section headers: %ld (bytes)\n" -msgstr " Bölüm baþlýk boyu: %ld (bayt)\n" +msgstr " Bölüm baÅŸlık boyu: %ld (bayt)\n" -#: readelf.c:2529 +#: readelf.c:2663 #, c-format msgid " Number of section headers: %ld" -msgstr " Bölüm baþlýklarý sayýsý: %ld" +msgstr " Bölüm baÅŸlıkları sayısı: %ld" -#: readelf.c:2534 +#: readelf.c:2668 #, c-format msgid " Section header string table index: %ld" -msgstr " Bölüm baþlýðý dizge tablo endeksi: %ld" +msgstr " Bölüm baÅŸlığı dizge tablo endeksi: %ld" -#: readelf.c:2568 readelf.c:2604 +#: readelf.c:2702 readelf.c:2738 msgid "program headers" -msgstr "Yazýlým Baþlýklarý" +msgstr "Yazılım BaÅŸlıkları" -#: readelf.c:2638 -msgid "\nThere are no program headers in this file.\n" -msgstr "\nBu dosyada yazýlým baþlýðý yok.\n" +#: readelf.c:2772 +msgid "" +"\n" +"There are no program headers in this file.\n" +msgstr "" +"\n" +"Bu dosyada yazılım baÅŸlığı yok.\n" -#: readelf.c:2644 +#: readelf.c:2778 #, c-format -msgid "\nElf file type is %s\n" -msgstr "\nElf dosya tipi: %s\n" +msgid "" +"\n" +"Elf file type is %s\n" +msgstr "" +"\n" +"Elf dosya tipi: %s\n" -#: readelf.c:2645 +#: readelf.c:2779 msgid "Entry point " -msgstr "Giriþ noktasý " +msgstr "GiriÅŸ noktası " -#: readelf.c:2647 +#: readelf.c:2781 #, c-format -msgid "\nThere are %d program headers, starting at offset " -msgstr "\n%d adet yazýlým baþlýðý var, göreli konumdan baþlanýyor" +msgid "" +"\n" +"There are %d program headers, starting at offset " +msgstr "" +"\n" +"%d adet yazılım baÅŸlığı var, göreli konumdan baÅŸlanıyor" -#: readelf.c:2658 readelf.c:2883 readelf.c:2929 readelf.c:2992 readelf.c:3059 -#: readelf.c:4087 readelf.c:4130 readelf.c:4310 readelf.c:5246 readelf.c:5260 -#: readelf.c:9246 readelf.c:9286 +#: readelf.c:2792 readelf.c:3019 readelf.c:3065 readelf.c:3128 readelf.c:3195 +#: readelf.c:4229 readelf.c:4272 readelf.c:4461 readelf.c:5414 readelf.c:5428 +#: readelf.c:9659 readelf.c:9699 msgid "Out of memory\n" -msgstr "Bellek tükendi\n" +msgstr "Bellek tükendi\n" -#: readelf.c:2676 -#, c-format -msgid "\nProgram Header%s:\n" -msgstr "\nYazýlým Baþlýðý%s:\n" +#: readelf.c:2810 readelf.c:2812 +msgid "" +"\n" +"Program Headers:\n" +msgstr "" +"\n" +"Yazılım BaÅŸlıkları:\n" -#: readelf.c:2680 +#: readelf.c:2816 msgid " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align\n" -msgstr " Tip Basamak SanalAdr GerçAdrs DosyaBoyBelBoy Seç Hiza\n" +msgstr " Tip Basamak SanalAdr GerçAdrs DosyaBoyBelBoy Seç Hiza\n" -#: readelf.c:2683 +#: readelf.c:2819 msgid " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align\n" -msgstr " Tür Görece SanalAdr GerçAdrs DosyaBoy BelBoy Seç Hiza\n" +msgstr " Tür Görece SanalAdr GerçAdrs DosyaBoy BelBoy Seç Hiza\n" -#: readelf.c:2687 +#: readelf.c:2823 msgid " Type Offset VirtAddr PhysAddr\n" -msgstr " Tip Basamak SanalAdres GerçekAdres\n" +msgstr " Tip Basamak SanalAdres GerçekAdres\n" -#: readelf.c:2689 +#: readelf.c:2825 msgid " FileSiz MemSiz Flags Align\n" -msgstr " DosyaBoyu BellekBoyu Seç Hiza\n" +msgstr " DosyaBoyu BellekBoyu Seç Hiza\n" -#: readelf.c:2789 +#: readelf.c:2925 msgid "more than one dynamic segment\n" -msgstr "bir dinamik parçadan fazla\n" +msgstr "bir dinamik parçadan fazla\n" -#: readelf.c:2797 +#: readelf.c:2933 msgid "Unable to find program interpreter name\n" -msgstr "Yazýlým yorumlayýcýsý adý bulunamadý\n" +msgstr "Yazılım yorumlayıcısı adı bulunamadı\n" -#: readelf.c:2804 +#: readelf.c:2940 #, c-format -msgid "\n [Requesting program interpreter: %s]" -msgstr "\n [Yazýlým yorumlayýcýsý isteniyor: %s]" +msgid "" +"\n" +" [Requesting program interpreter: %s]" +msgstr "" +"\n" +" [Yazılım yorumlayıcısı isteniyor: %s]" -#: readelf.c:2822 -msgid "\n Section to Segment mapping:\n" -msgstr "\n Bölümden parçaya eþleþme:\n" +#: readelf.c:2958 +msgid "" +"\n" +" Section to Segment mapping:\n" +msgstr "" +"\n" +" Bölümden parçaya eÅŸleÅŸme:\n" -#: readelf.c:2823 +#: readelf.c:2959 msgid " Segment Sections...\n" -msgstr " Parça Bölümleri...\n" +msgstr " Parça Bölümleri...\n" -#: readelf.c:2874 readelf.c:2920 +#: readelf.c:3010 readelf.c:3056 msgid "section headers" -msgstr "Bölüm Baþlýklarý" +msgstr "Bölüm BaÅŸlıkları" -#: readelf.c:2968 readelf.c:3035 +#: readelf.c:3104 readelf.c:3171 msgid "symbols" msgstr "semboller" -#: readelf.c:2979 readelf.c:3046 +#: readelf.c:3115 readelf.c:3182 msgid "symtab shndx" msgstr "symtab shndx" -#: readelf.c:3147 -msgid "\nThere are no sections in this file.\n" -msgstr "\nBu dosyada bölüm yok.\n" +#: readelf.c:3284 +msgid "" +"\n" +"There are no sections in this file.\n" +msgstr "" +"\n" +"Bu dosyada bölüm yok.\n" -#: readelf.c:3153 +#: readelf.c:3290 #, c-format msgid "There are %d section headers, starting at offset 0x%lx:\n" -msgstr "%d adet bölüm baþlýðý mevcut, göreli konum 0x%lx'dan baþlanýyor:\n" +msgstr "%d adet bölüm baÅŸlığı mevcut, göreli konum 0x%lx'dan baÅŸlanıyor:\n" -#: readelf.c:3170 readelf.c:3479 readelf.c:3826 readelf.c:5397 +#: readelf.c:3307 readelf.c:3621 readelf.c:3968 readelf.c:5565 msgid "string table" msgstr "dizge tablosu" -#: readelf.c:3191 +#: readelf.c:3328 msgid "File contains multiple dynamic symbol tables\n" msgstr "Dosyada birden fazla dinamik sembol tablosu var\n" -#: readelf.c:3203 +#: readelf.c:3340 msgid "File contains multiple dynamic string tables\n" msgstr "Dosyada birden fazla dinamik dizge tablosu var\n" -#: readelf.c:3209 +#: readelf.c:3346 msgid "dynamic strings" msgstr "dinamik dizgeler" -#: readelf.c:3215 +#: readelf.c:3352 msgid "File contains multiple symtab shndx tables\n" msgstr "Dosyada birden fazla symtab shndx tablosu var\n" -#: readelf.c:3250 -#, c-format -msgid "\nSection Header%s:\n" -msgstr "\nBölüm Baþlýðý%s:\n" +#: readelf.c:3390 +msgid "" +"\n" +"Section Headers:\n" +msgstr "" +"\n" +"Bölüm BaÅŸlıkları:\n" + +#: readelf.c:3392 +msgid "" +"\n" +"Section Header:\n" +msgstr "" +"\n" +"Bölüm BaÅŸlığı:\n" -#: readelf.c:3254 +#: readelf.c:3396 msgid " [Nr] Name Type Addr Off Size ES Flg Lk Inf Al\n" -msgstr " [Nr] Ýsim Tip Adres Bas Boy ES Seç Lk Inf Al\n" +msgstr " [Nr] Ä°sim Tip Adres Bas Boy ES Seç Lk Inf Al\n" -#: readelf.c:3257 +#: readelf.c:3399 msgid " [Nr] Name Type Address Off Size ES Flg Lk Inf Al\n" -msgstr " [Nr] Ýsim Tür Adres Görece Boy ES Seç Lk Inf Al\n" +msgstr " [Nr] Ä°sim Tür Adres Görece Boy ES Seç Lk Inf Al\n" -#: readelf.c:3260 +#: readelf.c:3402 msgid " [Nr] Name Type Address Offset\n" -msgstr " [Nr] Ýsim Tip Adres Basamak\n" +msgstr " [Nr] Ä°sim Tip Adres Basamak\n" -#: readelf.c:3261 +#: readelf.c:3403 msgid " Size EntSize Flags Link Info Align\n" -msgstr " Boy EntBoy Seç Bað Bilgi Hiza\n" +msgstr " Boy EntBoy Seç BaÄŸ Bilgi Hiza\n" -#: readelf.c:3356 +#: readelf.c:3498 msgid "" "Key to Flags:\n" " W (write), A (alloc), X (execute), M (merge), S (strings)\n" " I (info), L (link order), G (group), x (unknown)\n" " O (extra OS processing required) o (OS specific), p (processor specific)\n" msgstr "" -"Seçenekler:\n" -" W (yazdýrýr), A (ayýrýr), X (uygular), M (birleþtirir), S (dizgeler)\n" -" I (bilgi), L (bað sýrasý), G (grup), x (bilinmeyen)\n" -" O (daha fazla OS iþlemesi gerekli) o (OS'e özgü), p (iþlemciye özgü)\n" +"Seçenekler:\n" +" W (yazdırır), A (ayırır), X (uygular), M (birleÅŸtirir), S (dizgeler)\n" +" I (bilgi), L (baÄŸ sırası), G (grup), x (bilinmeyen)\n" +" O (daha fazla OS iÅŸlemesi gerekli) o (OS'e özgü), p (iÅŸlemciye özgü)\n" -#: readelf.c:3417 +#: readelf.c:3559 #, c-format -msgid "\nRelocation section at offset 0x%lx contains %ld bytes:\n" -msgstr "\nGöreli konum 0x%lx'da yer deðiþtirme bölümü %ld bayt içeriyor:\n" +msgid "" +"\n" +"Relocation section at offset 0x%lx contains %ld bytes:\n" +msgstr "" +"\n" +"Göreli konum 0x%lx'da yer deÄŸiÅŸtirme bölümü %ld bayt içeriyor:\n" -#: readelf.c:3424 -msgid "\nThere are no dynamic relocations in this file.\n" -msgstr "\nBu dosyada dinamik yer deðiþtirmeler yok.\n" +#: readelf.c:3566 +msgid "" +"\n" +"There are no dynamic relocations in this file.\n" +msgstr "" +"\n" +"Bu dosyada dinamik yer deÄŸiÅŸtirmeler yok.\n" -#: readelf.c:3451 -msgid "\nRelocation section " -msgstr "\nYer deðiþtirme bölümü " +#: readelf.c:3593 +msgid "" +"\n" +"Relocation section " +msgstr "" +"\n" +"Yer deÄŸiÅŸtirme bölümü " -#: readelf.c:3458 readelf.c:3905 +#: readelf.c:3598 readelf.c:4031 readelf.c:4045 +#, c-format +msgid "'%s'" +msgstr "'%s'" + +#: readelf.c:3600 readelf.c:4047 #, c-format msgid " at offset 0x%lx contains %lu entries:\n" -msgstr "göreli konum 0x%lx %lu girdi içeriyor:\n" +msgstr "göreli konum 0x%lx %lu girdi içeriyor:\n" -#: readelf.c:3496 -msgid "\nThere are no relocations in this file.\n" -msgstr "\nBu dosyada yer deðiþtirmeler yok.\n" +#: readelf.c:3638 +msgid "" +"\n" +"There are no relocations in this file.\n" +msgstr "" +"\n" +"Bu dosyada yer deÄŸiÅŸtirmeler yok.\n" -#: readelf.c:3692 +#: readelf.c:3834 msgid "unwind table" msgstr "geri alma tablosu" -#: readelf.c:3743 readelf.c:3755 readelf.c:7608 readelf.c:7619 +#: readelf.c:3885 readelf.c:3897 readelf.c:7890 readelf.c:7901 #, c-format msgid "Skipping unexpected symbol type %u\n" -msgstr "beklenmeyen sembol türü %u atlanýyor\n" +msgstr "beklenmeyen sembol türü %u atlanıyor\n" -#: readelf.c:3763 +#: readelf.c:3905 #, c-format msgid "Skipping unexpected relocation type %s\n" -msgstr "beklenmeyen yerdeðiþim türü %s atlanýyor\n" +msgstr "beklenmeyen yerdeÄŸiÅŸim türü %s atlanıyor\n" -#: readelf.c:3808 readelf.c:3833 -msgid "\nThere are no unwind sections in this file.\n" -msgstr "\nBu dosyada geri alma bölümü yok.\n" +#: readelf.c:3950 readelf.c:3975 +msgid "" +"\n" +"There are no unwind sections in this file.\n" +msgstr "" +"\n" +"Bu dosyada geri alma bölümü yok.\n" -#: readelf.c:3884 -msgid "\nCould not find unwind info section for " -msgstr "\nGeri alma bilgi bölümü bulunamadý " +#: readelf.c:4026 +msgid "" +"\n" +"Could not find unwind info section for " +msgstr "" +"\n" +"Geri alma bilgi bölümü bulunamadı " -#: readelf.c:3896 +#: readelf.c:4038 msgid "unwind info" msgstr "geri alma bilgisi" -#: readelf.c:3898 -msgid "\nUnwind section " -msgstr "\nGeri alma bölümü " +#: readelf.c:4040 +msgid "" +"\n" +"Unwind section " +msgstr "" +"\n" +"Geri alma bölümü " -#: readelf.c:4071 readelf.c:4114 +#: readelf.c:4213 readelf.c:4256 msgid "dynamic segment" -msgstr "dinamik bölüm" +msgstr "dinamik bölüm" -#: readelf.c:4183 -msgid "\nThere is no dynamic segment in this file.\n" -msgstr "\nBu dosyada dinamik parça yok.\n" +#: readelf.c:4334 +msgid "" +"\n" +"There is no dynamic segment in this file.\n" +msgstr "" +"\n" +"Bu dosyada dinamik parça yok.\n" -#: readelf.c:4217 +#: readelf.c:4368 msgid "Unable to seek to end of file!" -msgstr "Dosya sonuna kadar aranamýyor!" +msgstr "Dosya sonuna kadar aranamıyor!" -#: readelf.c:4228 +#: readelf.c:4379 msgid "Unable to determine the number of symbols to load\n" -msgstr "Yüklenecek sembol sayýsý belirlenemedi\n" +msgstr "Yüklenecek sembol sayısı belirlenemedi\n" -#: readelf.c:4258 +#: readelf.c:4409 msgid "Unable to seek to end of file\n" -msgstr "Dosyanýn sonuna kadar aranamadý\n" +msgstr "Dosyanın sonuna kadar aranamadı\n" -#: readelf.c:4264 +#: readelf.c:4415 msgid "Unable to determine the length of the dynamic string table\n" -msgstr "Dinamik dizge tablosunun uzunluðu belirlenemedi\n" +msgstr "Dinamik dizge tablosunun uzunluÄŸu belirlenemedi\n" -#: readelf.c:4269 +#: readelf.c:4420 msgid "dynamic string table" msgstr "dinamik dizge tablosu" -#: readelf.c:4303 +#: readelf.c:4454 msgid "symbol information" msgstr "sembol bilgisi" -#: readelf.c:4327 +#: readelf.c:4478 #, c-format -msgid "\nDynamic segment at offset 0x%x contains %ld entries:\n" -msgstr "\nGöreli konum 0x%x'deki dinamik parça %ld girdi içeriyor:\n" +msgid "" +"\n" +"Dynamic segment at offset 0x%x contains %ld entries:\n" +msgstr "" +"\n" +"Göreli konum 0x%x'deki dinamik parça %ld girdi içeriyor:\n" -#: readelf.c:4330 +#: readelf.c:4481 msgid " Tag Type Name/Value\n" -msgstr " Etiket Tip Ýsim/Deðer\n" +msgstr " Etiket Tip Ä°sim/DeÄŸer\n" -#: readelf.c:4366 +#: readelf.c:4517 msgid "Auxiliary library" -msgstr "Yardýmcý kitaplýk" +msgstr "Yardımcı kitaplık" -#: readelf.c:4370 +#: readelf.c:4521 msgid "Filter library" -msgstr "Filtre kitaplýðý" +msgstr "Filtre kitaplığı" -#: readelf.c:4374 +#: readelf.c:4525 msgid "Configuration file" -msgstr "Ayar dosyasý" +msgstr "Ayar dosyası" -#: readelf.c:4378 +#: readelf.c:4529 msgid "Dependency audit library" -msgstr "Baðýmlýlýk denetim kitaplýðý" +msgstr "Bağımlılık denetim kitaplığı" -#: readelf.c:4382 +#: readelf.c:4533 msgid "Audit library" -msgstr "Denetim kitaplýðý" +msgstr "Denetim kitaplığı" -#: readelf.c:4400 readelf.c:4426 readelf.c:4452 +#: readelf.c:4551 readelf.c:4577 readelf.c:4603 msgid "Flags:" -msgstr "Seçenekler:" +msgstr "Seçenekler:" -#: readelf.c:4402 readelf.c:4428 readelf.c:4454 +#: readelf.c:4553 readelf.c:4579 readelf.c:4605 msgid " None\n" -msgstr " Hiçbiri\n" +msgstr " Hiçbiri\n" -#: readelf.c:4573 +#: readelf.c:4724 #, c-format msgid "Shared library: [%s]" -msgstr "Paylaþýmlý kitaplýk: [%s]" +msgstr "Paylaşımlı kitaplık: [%s]" -#: readelf.c:4576 +#: readelf.c:4727 msgid " program interpreter" -msgstr " yazýlým yorumlayýcýsý" +msgstr " yazılım yorumlayıcısı" -#: readelf.c:4580 +#: readelf.c:4731 #, c-format msgid "Library soname: [%s]" -msgstr "Kitaplýk so_adý: [%s]" +msgstr "Kitaplık so_adı: [%s]" -#: readelf.c:4584 +#: readelf.c:4735 #, c-format msgid "Library rpath: [%s]" -msgstr "Kitaplýk r_yolu: [%s]" +msgstr "Kitaplık r_yolu: [%s]" -#: readelf.c:4588 +#: readelf.c:4739 #, c-format msgid "Library runpath: [%s]" -msgstr "Kitaplýk çalýþým yolu: [%s]" +msgstr "Kitaplık çalışım yolu: [%s]" -#: readelf.c:4649 +#: readelf.c:4802 #, c-format msgid "Not needed object: [%s]\n" msgstr "Gereksiz nesne: [%s]\n" -#: readelf.c:4746 +#: readelf.c:4913 #, c-format -msgid "\nVersion definition section '%s' contains %ld entries:\n" -msgstr "\nSürüm tanýmý bölümü '%s' %ld girdi içeriyor:\n" +msgid "" +"\n" +"Version definition section '%s' contains %ld entries:\n" +msgstr "" +"\n" +"Sürüm tanımı bölümü '%s' %ld girdi içeriyor:\n" -#: readelf.c:4749 +#: readelf.c:4916 msgid " Addr: 0x" msgstr " Adres: 0x" -#: readelf.c:4751 readelf.c:4946 +#: readelf.c:4918 readelf.c:5113 #, c-format msgid " Offset: %#08lx Link: %lx (%s)\n" -msgstr " Basamak: %#08lx Bað: %lx (%s)\n" +msgstr " Basamak: %#08lx BaÄŸ: %lx (%s)\n" -#: readelf.c:4758 +#: readelf.c:4925 msgid "version definition section" -msgstr "sürüm tanýmý bölümü" +msgstr "sürüm tanımı bölümü" -#: readelf.c:4784 +#: readelf.c:4951 #, c-format msgid " %#06x: Rev: %d Flags: %s" -msgstr " %#06x: Sür: %d Seçenek: %s" +msgstr " %#06x: Sür: %d Seçenek: %s" -#: readelf.c:4787 +#: readelf.c:4954 #, c-format msgid " Index: %d Cnt: %d " -msgstr " Endeks: %d Sayý: %d " +msgstr " Endeks: %d Sayı: %d " -#: readelf.c:4798 +#: readelf.c:4965 #, c-format msgid "Name: %s\n" -msgstr "Ýsim: %s\n" +msgstr "Ä°sim: %s\n" -#: readelf.c:4800 +#: readelf.c:4967 #, c-format msgid "Name index: %ld\n" -msgstr "Ýsim Endeksi: %ld\n" +msgstr "Ä°sim Endeksi: %ld\n" -#: readelf.c:4815 +#: readelf.c:4982 #, c-format msgid " %#06x: Parent %d: %s\n" -msgstr " %#06x: Üst %d: %s\n" +msgstr " %#06x: Ãœst %d: %s\n" -#: readelf.c:4818 +#: readelf.c:4985 #, c-format msgid " %#06x: Parent %d, name index: %ld\n" -msgstr " %#06x: Üst %d, isim endeksi: %ld\n" +msgstr " %#06x: Ãœst %d, isim endeksi: %ld\n" -#: readelf.c:4837 +#: readelf.c:5004 #, c-format -msgid "\nVersion needs section '%s' contains %ld entries:\n" -msgstr "\nSürüm gereksinimleri bölümü '%s' %ld girdi içeriyor:\n" +msgid "" +"\n" +"Version needs section '%s' contains %ld entries:\n" +msgstr "" +"\n" +"Sürüm gereksinimleri bölümü '%s' %ld girdi içeriyor:\n" -#: readelf.c:4840 +#: readelf.c:5007 msgid " Addr: 0x" msgstr " Adres: 0x" -#: readelf.c:4842 +#: readelf.c:5009 #, c-format msgid " Offset: %#08lx Link to section: %ld (%s)\n" -msgstr " Basamak: %#08lx Bölüme bað: %ld (%s)\n" +msgstr " Basamak: %#08lx Bölüme baÄŸ: %ld (%s)\n" -#: readelf.c:4848 +#: readelf.c:5015 msgid "version need section" -msgstr "Sürüm Gereksinim Bölüm" +msgstr "Sürüm Gereksinim Bölüm" -#: readelf.c:4870 +#: readelf.c:5037 #, c-format msgid " %#06x: Version: %d" -msgstr " %#06x: Sürüm: %d" +msgstr " %#06x: Sürüm: %d" -#: readelf.c:4873 +#: readelf.c:5040 #, c-format msgid " File: %s" msgstr " Dosya: %s" -#: readelf.c:4875 +#: readelf.c:5042 #, c-format msgid " File: %lx" msgstr " Dosya: %lx" -#: readelf.c:4877 +#: readelf.c:5044 #, c-format msgid " Cnt: %d\n" -msgstr " Sayý: %d\n" +msgstr " Sayı: %d\n" -#: readelf.c:4895 +#: readelf.c:5062 #, c-format msgid " %#06x: Name: %s" -msgstr " %#06x: Ýsim: %s" +msgstr " %#06x: Ä°sim: %s" -#: readelf.c:4898 +#: readelf.c:5065 #, c-format msgid " %#06x: Name index: %lx" -msgstr " %#06x: Ýsim endeksi: %lx" +msgstr " %#06x: Ä°sim endeksi: %lx" -#: readelf.c:4901 +#: readelf.c:5068 #, c-format msgid " Flags: %s Version: %d\n" -msgstr " Seçenekler: %s Sürüm: %d\n" +msgstr " Seçenekler: %s Sürüm: %d\n" -#: readelf.c:4937 +#: readelf.c:5104 msgid "version string table" -msgstr "Sürüm Dizge Tablo" +msgstr "Sürüm Dizge Tablo" -#: readelf.c:4941 +#: readelf.c:5108 #, c-format -msgid "\nVersion symbols section '%s' contains %d entries:\n" -msgstr "\nSürüm sembolleri bölümü '%s' %d girdi içeriyor:\n" +msgid "" +"\n" +"Version symbols section '%s' contains %d entries:\n" +msgstr "" +"\n" +"Sürüm sembolleri bölümü '%s' %d girdi içeriyor:\n" -#: readelf.c:4944 +#: readelf.c:5111 msgid " Addr: " msgstr " Adres: " -#: readelf.c:4954 +#: readelf.c:5121 msgid "version symbol data" -msgstr "Sürüm Sembol Veri" +msgstr "Sürüm Sembol Veri" -#: readelf.c:4981 +#: readelf.c:5148 msgid " 0 (*local*) " msgstr " 0 (*yerel*) " -#: readelf.c:4985 +#: readelf.c:5152 msgid " 1 (*global*) " msgstr " 1 (*evrensel*) " -#: readelf.c:5020 readelf.c:5454 +#: readelf.c:5187 readelf.c:5622 msgid "version need" -msgstr "Sürüm Gereksinim" +msgstr "Sürüm Gereksinim" -#: readelf.c:5030 +#: readelf.c:5197 msgid "version need aux (2)" -msgstr "Sürüm Gereksinim Yardýmcý (2)" +msgstr "Sürüm Gereksinim Yardımcı (2)" -#: readelf.c:5071 readelf.c:5516 +#: readelf.c:5238 readelf.c:5684 msgid "version def" -msgstr "sürüm tanýmý" +msgstr "sürüm tanımı" -#: readelf.c:5090 readelf.c:5531 +#: readelf.c:5257 readelf.c:5699 msgid "version def aux" -msgstr "Sürüm yardýmcý tanýmý" - -#: readelf.c:5121 -msgid "\nNo version information found in this file.\n" -msgstr "\nBu dosyada sürüm bilgisi yok.\n" - -#: readelf.c:5139 readelf.c:5174 -#, c-format -msgid ": %d" -msgstr ": %d" +msgstr "Sürüm yardımcı tanımı" -#: readelf.c:5141 readelf.c:5186 -#, c-format -msgid ": %d" -msgstr "<ÝS'e özel>: %d" - -#: readelf.c:5143 readelf.c:5189 -#, c-format -msgid ": %d" -msgstr ": %d" +#: readelf.c:5288 +msgid "" +"\n" +"No version information found in this file.\n" +msgstr "" +"\n" +"Bu dosyada sürüm bilgisi yok.\n" -#: readelf.c:5252 +#: readelf.c:5420 msgid "Unable to read in dynamic data\n" -msgstr "Dinamik veri okunamadý\n" +msgstr "Dinamik veri okunamadı\n" -#: readelf.c:5294 +#: readelf.c:5462 msgid "Unable to seek to start of dynamic information" -msgstr "Dinamik bilginin baþlangýcýna kadar aranamadý" +msgstr "Dinamik bilginin baÅŸlangıcına kadar aranamadı" -#: readelf.c:5300 +#: readelf.c:5468 msgid "Failed to read in number of buckets\n" -msgstr "Küme sayýsý okunamadý\n" +msgstr "Küme sayısı okunamadı\n" -#: readelf.c:5306 +#: readelf.c:5474 msgid "Failed to read in number of chains\n" -msgstr "Zincir sayýsý okunamadý\n" +msgstr "Zincir sayısı okunamadı\n" -#: readelf.c:5326 -msgid "\nSymbol table for image:\n" -msgstr "\nÝmaj için sembol tablosu:\n" +#: readelf.c:5494 +msgid "" +"\n" +"Symbol table for image:\n" +msgstr "" +"\n" +"Ä°maj için sembol tablosu:\n" -#: readelf.c:5328 +#: readelf.c:5496 msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n" -msgstr " Küme Num: Deðer Boy Tip Bað Gör Ndx Ýsim\n" +msgstr " Küme Num: DeÄŸer Boy Tip BaÄŸ Gör Ndx Ä°sim\n" -#: readelf.c:5330 +#: readelf.c:5498 msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n" -msgstr " Küme Num: Deðer Boy Tip Bað Gör Ndx Ýsim\n" +msgstr " Küme Num: DeÄŸer Boy Tip BaÄŸ Gör Ndx Ä°sim\n" -#: readelf.c:5375 +#: readelf.c:5543 #, c-format -msgid "\nSymbol table '%s' contains %lu entries:\n" -msgstr "\n'%s' sembol tablosu %lu girdi içeriyor:\n" +msgid "" +"\n" +"Symbol table '%s' contains %lu entries:\n" +msgstr "" +"\n" +"'%s' sembol tablosu %lu girdi içeriyor:\n" -#: readelf.c:5379 +#: readelf.c:5547 msgid " Num: Value Size Type Bind Vis Ndx Name\n" -msgstr " Num: Deðer Boy Tip Bað Gör Ndx Ýsim\n" +msgstr " Num: DeÄŸer Boy Tip BaÄŸ Gör Ndx Ä°sim\n" -#: readelf.c:5381 +#: readelf.c:5549 msgid " Num: Value Size Type Bind Vis Ndx Name\n" -msgstr " Num: Deðer Boy Tip Bað Gör Ndx Ýsim\n" +msgstr " Num: DeÄŸer Boy Tip BaÄŸ Gör Ndx Ä°sim\n" -#: readelf.c:5427 +#: readelf.c:5595 msgid "version data" -msgstr "sürüm verisi" +msgstr "sürüm verisi" -#: readelf.c:5467 +#: readelf.c:5635 msgid "version need aux (3)" -msgstr "Sürüm Gereksinim Yardýmcý (3)" +msgstr "Sürüm Gereksinim Yardımcı (3)" -#: readelf.c:5492 +#: readelf.c:5660 msgid "bad dynamic symbol" -msgstr "hatalý dinamik sembol" +msgstr "hatalı dinamik sembol" -#: readelf.c:5554 -msgid "\nDynamic symbol information is not available for displaying symbols.\n" -msgstr "\nDinamik sembolleri göstermek için dinamik sembol bilgisi mevcut deðil.\n" +#: readelf.c:5722 +msgid "" +"\n" +"Dynamic symbol information is not available for displaying symbols.\n" +msgstr "" +"\n" +"Dinamik sembolleri göstermek için dinamik sembol bilgisi mevcut deÄŸil.\n" -#: readelf.c:5566 +#: readelf.c:5734 #, c-format -msgid "\nHistogram for bucket list length (total of %d buckets):\n" -msgstr "\nKüme liste boyu (toplam %d küme) geçmiþ grafiði:\n" +msgid "" +"\n" +"Histogram for bucket list length (total of %d buckets):\n" +msgstr "" +"\n" +"Küme liste boyu (toplam %d küme) geçmiÅŸ grafiÄŸi:\n" -#: readelf.c:5568 +#: readelf.c:5736 #, c-format msgid " Length Number %% of total Coverage\n" msgstr "" " Length Number %% of total Coverage\n" -" Boy Numara toplam kapsamýn %%\n" +" Boy Numara toplam kapsamın %%\n" -#: readelf.c:5573 readelf.c:5592 readelf.c:8825 readelf.c:9017 +#: readelf.c:5741 readelf.c:5760 readelf.c:9146 readelf.c:9338 msgid "Out of memory" msgstr "Bellek yetersiz" -#: readelf.c:5641 +#: readelf.c:5809 #, c-format -msgid "\nDynamic info segment at offset 0x%lx contains %d entries:\n" -msgstr "\nGöreli konum 0x%lx'de yer alan dinamik bilgi parçasý %d girdi içeriyor:\n" +msgid "" +"\n" +"Dynamic info segment at offset 0x%lx contains %d entries:\n" +msgstr "" +"\n" +"Göreli konum 0x%lx'de yer alan dinamik bilgi parçası %d girdi içeriyor:\n" -#: readelf.c:5644 +#: readelf.c:5812 msgid " Num: Name BoundTo Flags\n" -msgstr " Num: Ýsim Baðlý Seçenekler\n" +msgstr " Num: Ä°sim BaÄŸlı Seçenekler\n" -#: readelf.c:5696 +#: readelf.c:5864 #, c-format -msgid "\nAssembly dump of section %s\n" -msgstr "\n%s bölümünün üretici dökümü\n" +msgid "" +"\n" +"Assembly dump of section %s\n" +msgstr "" +"\n" +"%s bölümünün üretici dökümü\n" -#: readelf.c:5719 +#: readelf.c:5887 #, c-format -msgid "\nSection '%s' has no data to dump.\n" -msgstr "\n'%s' bölümünde dökülecek veri yok.\n" +msgid "" +"\n" +"Section '%s' has no data to dump.\n" +msgstr "" +"\n" +"'%s' bölümünde dökülecek veri yok.\n" -#: readelf.c:5724 +#: readelf.c:5892 #, c-format -msgid "\nHex dump of section '%s':\n" -msgstr "\n'%s' bölümünün onaltýlýk dökümü:\n" +msgid "" +"\n" +"Hex dump of section '%s':\n" +msgstr "" +"\n" +"'%s' bölümünün onaltılık dökümü:\n" -#: readelf.c:5729 +#: readelf.c:5897 msgid "section data" -msgstr "bölüm verisi" +msgstr "bölüm verisi" -#: readelf.c:5878 +#: readelf.c:6046 msgid "badly formed extended line op encountered!\n" -msgstr "hatalý oluþturulmuþ uzun satýr iþlevi bulundu!\n" +msgstr "hatalı oluÅŸturulmuÅŸ uzun satır iÅŸlevi bulundu!\n" -#: readelf.c:5885 +#: readelf.c:6053 #, c-format msgid " Extended opcode %d: " msgstr " Ek opkod %d: " -#: readelf.c:5890 -msgid "End of Sequence\n\n" -msgstr "Dizi Sonu\n\n" +#: readelf.c:6058 +msgid "" +"End of Sequence\n" +"\n" +msgstr "" +"Dizi Sonu\n" +"\n" -#: readelf.c:5896 +#: readelf.c:6064 #, c-format msgid "set Address to 0x%lx\n" msgstr "Adresi 0x%lx olarak atar\n" -#: readelf.c:5901 +#: readelf.c:6069 msgid " define new File Table entry\n" -msgstr " yeni Dosya Tablosu girdisi tanýmlar\n" +msgstr " yeni Dosya Tablosu girdisi tanımlar\n" -#: readelf.c:5902 readelf.c:6031 +#: readelf.c:6070 readelf.c:6199 msgid " Entry\tDir\tTime\tSize\tName\n" -msgstr " Girdi\tDizin\tZaman\tBoy\tÝsim\n" +msgstr " Girdi\tDizin\tZaman\tBoy\tÄ°sim\n" -#: readelf.c:5904 +#: readelf.c:6072 #, c-format msgid " %d\t" msgstr " %d\t" -#: readelf.c:5907 readelf.c:5909 readelf.c:5911 readelf.c:6043 readelf.c:6045 -#: readelf.c:6047 +#: readelf.c:6075 readelf.c:6077 readelf.c:6079 readelf.c:6211 readelf.c:6213 +#: readelf.c:6215 #, c-format msgid "%lu\t" msgstr "%lu\t" -#: readelf.c:5912 +#: readelf.c:6080 #, c-format -msgid "%s\n\n" -msgstr "%s\n\n" +msgid "" +"%s\n" +"\n" +msgstr "" +"%s\n" +"\n" -#: readelf.c:5916 +#: readelf.c:6084 #, c-format msgid "UNKNOWN: length %d\n" msgstr "TANIMSIZ: uzunluk %d\n" -#: readelf.c:5942 +#: readelf.c:6110 #, c-format -msgid "\nDump of debug contents of section %s:\n\n" -msgstr "\n%s bölümünün hata ayýklama içeriði dökümü:\n\n" +msgid "" +"\n" +"Dump of debug contents of section %s:\n" +"\n" +msgstr "" +"\n" +"%s bölümünün hata ayıklama içeriÄŸi dökümü:\n" +"\n" -#: readelf.c:5954 +#: readelf.c:6122 msgid "64-bit DWARF line info is not supported yet.\n" -msgstr "64 bitlik DWARF satýr bilgisi henüz desteklenmiyor.\n" +msgstr "64 bitlik DWARF satır bilgisi henüz desteklenmiyor.\n" -#: readelf.c:5961 +#: readelf.c:6129 msgid "The line info appears to be corrupt - the section is too small\n" -msgstr "Satýr bilgisi bozuk - bölüm çok küçük\n" +msgstr "Satır bilgisi bozuk - bölüm çok küçük\n" -#: readelf.c:5969 +#: readelf.c:6137 msgid "Only DWARF version 2 line info is currently supported.\n" -msgstr "Þimdilik yalnýzca DWARF sürüm 2 satýr bilgisi destekleniyor.\n" +msgstr "Åžimdilik yalnızca DWARF sürüm 2 satır bilgisi destekleniyor.\n" -#: readelf.c:5984 +#: readelf.c:6152 #, c-format msgid " Length: %ld\n" msgstr " Uzunluk: %ld\n" -#: readelf.c:5985 +#: readelf.c:6153 #, c-format msgid " DWARF Version: %d\n" -msgstr " DWARF Sürümü: %d\n" +msgstr " DWARF Sürümü: %d\n" -#: readelf.c:5986 +#: readelf.c:6154 #, c-format msgid " Prologue Length: %d\n" -msgstr " Giriþ Uzunluðu: %d\n" +msgstr " GiriÅŸ UzunluÄŸu: %d\n" -#: readelf.c:5987 +#: readelf.c:6155 #, c-format msgid " Minimum Instruction Length: %d\n" -msgstr " Minimum Ýþlem Uzunluðu: %d\n" +msgstr " Minimum Ä°ÅŸlem UzunluÄŸu: %d\n" -#: readelf.c:5988 +#: readelf.c:6156 #, c-format msgid " Initial value of 'is_stmt': %d\n" -msgstr " 'is_stmt' baþlangýç deðeri: %d\n" +msgstr " 'is_stmt' baÅŸlangıç deÄŸeri: %d\n" -#: readelf.c:5989 +#: readelf.c:6157 #, c-format msgid " Line Base: %d\n" -msgstr " Satýr Temeli: %d\n" +msgstr " Satır Temeli: %d\n" -#: readelf.c:5990 +#: readelf.c:6158 #, c-format msgid " Line Range: %d\n" -msgstr " Satýr Aralýðý: %d\n" +msgstr " Satır Aralığı: %d\n" -#: readelf.c:5991 +#: readelf.c:6159 #, c-format msgid " Opcode Base: %d\n" msgstr " Opkod Temeli: %d\n" -#: readelf.c:6000 -msgid "\n Opcodes:\n" -msgstr "\n Opkodlar:\n" +#: readelf.c:6168 +msgid "" +"\n" +" Opcodes:\n" +msgstr "" +"\n" +" Opkodlar:\n" -#: readelf.c:6003 +#: readelf.c:6171 #, c-format msgid " Opcode %d has %d args\n" -msgstr " %d opkodunun %d seçeneði var\n" +msgstr " %d opkodunun %d seçeneÄŸi var\n" -#: readelf.c:6009 -msgid "\n The Directory Table is empty.\n" -msgstr "\n Dizin Tablosu boþ.\n" +#: readelf.c:6177 +msgid "" +"\n" +" The Directory Table is empty.\n" +msgstr "" +"\n" +" Dizin Tablosu boÅŸ.\n" -#: readelf.c:6012 -msgid "\n The Directory Table:\n" -msgstr "\n Dizin Tablosu:\n" +#: readelf.c:6180 +msgid "" +"\n" +" The Directory Table:\n" +msgstr "" +"\n" +" Dizin Tablosu:\n" -#: readelf.c:6016 +#: readelf.c:6184 #, c-format msgid " %s\n" msgstr " %s\n" -#: readelf.c:6027 -msgid "\n The File Name Table is empty.\n" -msgstr "\n Dosya Adý Tablosu boþ.\n" - -#: readelf.c:6030 -msgid "\n The File Name Table:\n" -msgstr "\n Dosya Adý Tablosu:\n" +#: readelf.c:6195 +msgid "" +"\n" +" The File Name Table is empty.\n" +msgstr "" +"\n" +" Dosya Adı Tablosu boÅŸ.\n" + +#: readelf.c:6198 +msgid "" +"\n" +" The File Name Table:\n" +msgstr "" +"\n" +" Dosya Adı Tablosu:\n" -#: readelf.c:6038 +#: readelf.c:6206 #, c-format msgid " %d\t" msgstr " %d\t" -#: readelf.c:6049 +#: readelf.c:6217 #, c-format msgid "%s\n" msgstr "%s\n" #. Now display the statements. -#: readelf.c:6057 -msgid "\n Line Number Statements:\n" -msgstr "\n Satýr Numarasý Deyimleri:\n" +#: readelf.c:6225 +msgid "" +"\n" +" Line Number Statements:\n" +msgstr "" +"\n" +" Satır Numarası Deyimleri:\n" -#: readelf.c:6073 +#: readelf.c:6241 #, c-format msgid " Special opcode %d: advance Address by %d to 0x%lx" -msgstr " Özel opkod %1$d: Adresi 0x%3$lx'e kadar %2$d ilerletir" +msgstr " Özel opkod %1$d: Adresi 0x%3$lx'e kadar %2$d ilerletir" -#: readelf.c:6077 +#: readelf.c:6245 #, c-format msgid " and Line by %d to %d\n" -msgstr " ve Satýr'ý %2$d'ye kadar %1$d\n" +msgstr " ve Satır'ı %2$d'ye kadar %1$d\n" -#: readelf.c:6088 +#: readelf.c:6256 msgid " Copy\n" msgstr " Kopyalar\n" -#: readelf.c:6095 +#: readelf.c:6263 #, c-format msgid " Advance PC by %d to %lx\n" msgstr " PC'yi %2$lx'ye kadar, %1$d ilerletir\n" -#: readelf.c:6103 +#: readelf.c:6271 #, c-format msgid " Advance Line by %d to %d\n" -msgstr " Satýrý %2$d'ye kadar %1$d ilerletir\n" +msgstr " Satırı %2$d'ye kadar %1$d ilerletir\n" -#: readelf.c:6110 +#: readelf.c:6278 #, c-format msgid " Set File Name to entry %d in the File Name Table\n" -msgstr " Dosya Adýný, Dosya Ýsim Tablosunda, %d numaralý girdi olarak atar\n" +msgstr " Dosya Adını, Dosya Ä°sim Tablosunda, %d numaralı girdi olarak atar\n" -#: readelf.c:6118 +#: readelf.c:6286 #, c-format msgid " Set column to %d\n" -msgstr " Sütunu %d olarak atar\n" +msgstr " Sütunu %d olarak atar\n" -#: readelf.c:6125 +#: readelf.c:6293 #, c-format msgid " Set is_stmt to %d\n" msgstr " is_stmt'i %d olarak atar\n" -#: readelf.c:6130 +#: readelf.c:6298 msgid " Set basic block\n" -msgstr " Temel bloðu atar\n" +msgstr " Temel bloÄŸu atar\n" -#: readelf.c:6138 +#: readelf.c:6306 #, c-format msgid " Advance PC by constant %d to 0x%lx\n" msgstr " PC'yi 0x%2$lx'e kadar %1$d ilerletir\n" -#: readelf.c:6146 +#: readelf.c:6314 #, c-format msgid " Advance PC by fixed size amount %d to 0x%lx\n" msgstr " PC'yi 0x%2$lx'e kadar %1$d ilerletir\n" -#: readelf.c:6151 +#: readelf.c:6319 msgid " Set prologue_end to true\n" -msgstr " Prologue_end'i doðru (true) olarak atar\n" +msgstr " Prologue_end'i doÄŸru (true) olarak atar\n" -#: readelf.c:6155 +#: readelf.c:6323 msgid " Set epilogue_begin to true\n" -msgstr " Epilogue_begin'i doðru (true) olarak atar\n" +msgstr " Epilogue_begin'i doÄŸru (true) olarak atar\n" -#: readelf.c:6161 +#: readelf.c:6329 #, c-format msgid " Set ISA to %d\n" -msgstr " ISA'yý %d olarak atar\n" +msgstr " ISA'yı %d olarak atar\n" -#: readelf.c:6165 +#: readelf.c:6333 #, c-format msgid " Unknown opcode %d with operands: " -msgstr " Bilinmeyen %d opkodu ve iþlenenleri: " +msgstr " Bilinmeyen %d opkodu ve iÅŸlenenleri: " -#: readelf.c:6197 readelf.c:6658 readelf.c:6730 +#: readelf.c:6365 readelf.c:6827 readelf.c:6899 #, c-format -msgid "Contents of the %s section:\n\n" -msgstr "%s bölümünün içeriði:\n\n" +msgid "" +"Contents of the %s section:\n" +"\n" +msgstr "" +"%s bölümünün içeriÄŸi:\n" +"\n" -#: readelf.c:6216 +#: readelf.c:6384 msgid "64-bit DWARF pubnames are not supported yet.\n" -msgstr "64 bitlik DWARF genel isimleri henüz desteklenmiyor\n" +msgstr "64 bitlik DWARF genel isimleri henüz desteklenmiyor\n" -#: readelf.c:6226 +#: readelf.c:6394 msgid "Only DWARF 2 pubnames are currently supported\n" -msgstr "Þimdilik yalnýz DWARF 2 genel isimleri destekleniyor\n" +msgstr "Åžimdilik yalnız DWARF 2 genel isimleri destekleniyor\n" -#: readelf.c:6233 +#: readelf.c:6401 #, c-format msgid " Length: %ld\n" msgstr " Uzunluk: %ld\n" -#: readelf.c:6235 +#: readelf.c:6403 #, c-format msgid " Version: %d\n" -msgstr " Sürüm: %d\n" +msgstr " Sürüm: %d\n" -#: readelf.c:6237 +#: readelf.c:6405 #, c-format msgid " Offset into .debug_info section: %ld\n" -msgstr ".debug_info bölümünün içine göreli konum: %ld\n" +msgstr ".debug_info bölümünün içine göreli konum: %ld\n" -#: readelf.c:6239 +#: readelf.c:6407 #, c-format msgid " Size of area in .debug_info section: %ld\n" -msgstr ".debug_info bölümünde alan büyüklüðü: %ld\n" +msgstr ".debug_info bölümünde alan büyüklüğü: %ld\n" -#: readelf.c:6242 -msgid "\n Offset\tName\n" -msgstr "\n Basamak\tÝsim\n" +#: readelf.c:6410 +msgid "" +"\n" +" Offset\tName\n" +msgstr "" +"\n" +" Basamak\tÄ°sim\n" -#: readelf.c:6333 +#: readelf.c:6501 #, c-format msgid "Unknown TAG value: %lx" -msgstr "Bilinmeyen TAG deðeri: %lx" +msgstr "Bilinmeyen TAG deÄŸeri: %lx" -#: readelf.c:6443 +#: readelf.c:6612 #, c-format msgid "Unknown AT value: %lx" -msgstr "Bilinmeyen AT deðeri: %lx" +msgstr "Bilinmeyen AT deÄŸeri: %lx" -#: readelf.c:6480 +#: readelf.c:6649 #, c-format msgid "Unknown FORM value: %lx" -msgstr "Bilinmeyen FORM deðeri: %lx" +msgstr "Bilinmeyen FORM deÄŸeri: %lx" -#: readelf.c:6679 +#: readelf.c:6848 #, c-format msgid " DW_MACINFO_start_file - lineno: %d filenum: %d\n" -msgstr " DW_MACINFO_start_file - satýr no: %d dosya no: %d\n" +msgstr " DW_MACINFO_start_file - satır no: %d dosya no: %d\n" -#: readelf.c:6684 +#: readelf.c:6853 msgid " DW_MACINFO_end_file\n" msgstr " DW_MACINFO_end_file\n" -#: readelf.c:6692 +#: readelf.c:6861 #, c-format msgid " DW_MACINFO_define - lineno : %d macro : %s\n" -msgstr " DW_MACINFO_define - satýr no : %d makro : %s\n" +msgstr " DW_MACINFO_define - satır no : %d makro : %s\n" -#: readelf.c:6700 +#: readelf.c:6869 #, c-format msgid " DW_MACINFO_undef - lineno : %d macro : %s\n" -msgstr " DW_MACINFO_undef - satýr no : %d makro : %s\n" +msgstr " DW_MACINFO_undef - satır no : %d makro : %s\n" -#: readelf.c:6711 +#: readelf.c:6880 #, c-format msgid " DW_MACINFO_vendor_ext - constant : %d string : %s\n" msgstr " DW_MACINFO_vendor_ext - sabit : %d dizge : %s\n" -#: readelf.c:6739 +#: readelf.c:6908 msgid " Number TAG\n" -msgstr " Sayý TAG\n" +msgstr " Sayı TAG\n" -#: readelf.c:6745 +#: readelf.c:6914 #, c-format msgid " %ld %s [%s]\n" msgstr " %ld %s [%s]\n" -#: readelf.c:6748 +#: readelf.c:6917 msgid "has children" -msgstr "astlarý var" +msgstr "astları var" -#: readelf.c:6748 +#: readelf.c:6917 msgid "no children" -msgstr "astlarý yok" +msgstr "astları yok" -#: readelf.c:6752 +#: readelf.c:6921 #, c-format msgid " %-18s %s\n" msgstr " %-18s %s\n" -#: readelf.c:6773 +#: readelf.c:6942 #, c-format msgid " %lu byte block: " -msgstr " %lu baytlýk blok: " +msgstr " %lu baytlık blok: " -#: readelf.c:7096 +#: readelf.c:7265 msgid "(User defined location op)" -msgstr "(Kullanýcý tanýmlý yer yönergesi)" +msgstr "(Kullanıcı tanımlı yer yönergesi)" -#: readelf.c:7098 +#: readelf.c:7267 msgid "(Unknown location op)" -msgstr "(Bilinmeyen yer yönergesi)" +msgstr "(Bilinmeyen yer yönergesi)" + +#: readelf.c:7305 +msgid "debug_loc section data" +msgstr "hata ayıklama bölüm verisi" + +#: readelf.c:7336 +msgid "" +"\n" +"The .debug_loc section is empty.\n" +msgstr "" +"\n" +".debug_loc bölümü boÅŸ.\n" + +#: readelf.c:7339 +msgid "" +"Contents of the .debug_loc section:\n" +"\n" +msgstr "" +".debug_loc bölümünün içeriÄŸi:\n" +"\n" + +#: readelf.c:7340 +msgid "" +"\n" +" Offset Begin End Expression\n" +msgstr "" +"\n" +" Görece BaÅŸlan. Son Ä°fade\n" -#: readelf.c:7137 +#: readelf.c:7412 msgid "debug_str section data" -msgstr "debug_str bölüm verisi" +msgstr "debug_str bölüm verisi" -#: readelf.c:7156 +#: readelf.c:7431 msgid "" -msgstr "<.debug_str bölümü yok>" +msgstr "<.debug_str bölümü yok>" -#: readelf.c:7159 +#: readelf.c:7434 msgid "" -msgstr "" +msgstr "" -#: readelf.c:7179 -msgid "\nThe .debug_str section is empty.\n" -msgstr "\n.debug_str bölümü boþ.\n" +#: readelf.c:7454 +msgid "" +"\n" +"The .debug_str section is empty.\n" +msgstr "" +"\n" +".debug_str bölümü boÅŸ.\n" -#: readelf.c:7183 -msgid "Contents of the .debug_str section:\n\n" -msgstr ".debug_str bölümünün içeriði:\n\n" +#: readelf.c:7458 +msgid "" +"Contents of the .debug_str section:\n" +"\n" +msgstr "" +".debug_str bölümünün içeriÄŸi:\n" +"\n" -#: readelf.c:7354 +#: readelf.c:7629 #, c-format msgid " (indirect string, offset: 0x%lx): " -msgstr " (dolaylý dizge, görece: 0x%lx): " +msgstr " (dolaylı dizge, görece: 0x%lx): " -#: readelf.c:7363 +#: readelf.c:7638 #, c-format -msgid "Unrecognised form: %d\n" +msgid "Unrecognized form: %d\n" msgstr "Bilinmeyen form: %d\n" -#: readelf.c:7376 +#: readelf.c:7651 msgid "(not inlined)" -msgstr "(inline'lanamadý)" +msgstr "(inline'lanamadı)" -#: readelf.c:7377 +#: readelf.c:7652 msgid "(inlined)" -msgstr "(inline'landý)" +msgstr "(inline'landı)" -#: readelf.c:7378 +#: readelf.c:7653 msgid "(declared as inline but ignored)" -msgstr "(inline olarak tanýmlandý ama yoksayýldý)" +msgstr "(inline olarak tanımlandı ama yoksayıldı)" -#: readelf.c:7379 +#: readelf.c:7654 msgid "(declared as inline and inlined)" -msgstr "(inline olarak tanýmlandý ve inline'landý)" +msgstr "(inline olarak tanımlandı ve inline'landı)" -#: readelf.c:7380 +#: readelf.c:7655 #, c-format msgid " (Unknown inline attribute value: %lx)" -msgstr " (Bilinmeyen inline öznitelik deðeri: %lx)" +msgstr " (Bilinmeyen inline öznitelik deÄŸeri: %lx)" -#: readelf.c:7545 readelf.c:7746 +#: readelf.c:7826 readelf.c:8029 #, c-format -msgid "The section %s contains:\n\n" -msgstr "%s bölümü içeriyor:\n\n" +msgid "" +"The section %s contains:\n" +"\n" +msgstr "" +"%s bölümü içeriyor:\n" +"\n" -#: readelf.c:7568 +#: readelf.c:7850 msgid "64-bit DWARF debug info is not supported yet.\n" -msgstr "64 bitlik DWARF hata ayýklama bilgisi henüz desteklenmiyor.\n" +msgstr "64 bitlik DWARF hata ayıklama bilgisi henüz desteklenmiyor.\n" -#: readelf.c:7637 +#: readelf.c:7919 #, c-format msgid " Compilation Unit @ %lx:\n" msgstr " Derleme Birimi @ %lx:\n" -#: readelf.c:7638 +#: readelf.c:7920 #, c-format msgid " Length: %ld\n" msgstr " Uzunluk: %ld\n" -#: readelf.c:7639 +#: readelf.c:7921 #, c-format msgid " Version: %d\n" -msgstr " Sürüm: %d\n" +msgstr " Sürüm: %d\n" -#: readelf.c:7640 +#: readelf.c:7922 #, c-format msgid " Abbrev Offset: %ld\n" -msgstr " Kýsaltma Basamaðý: %ld\n" +msgstr " Kısaltma Basamağı: %ld\n" -#: readelf.c:7641 +#: readelf.c:7923 #, c-format msgid " Pointer Size: %d\n" -msgstr " Gösterge Boyu: %d\n" +msgstr " Gösterge Boyu: %d\n" -#: readelf.c:7645 +#: readelf.c:7927 msgid "Only version 2 DWARF debug information is currently supported.\n" -msgstr "Þimdilik yalnýzca DWARF Sürüm 2 hata ayýklama bilgisi destekleniyor.\n" +msgstr "Åžimdilik yalnızca DWARF Sürüm 2 hata ayıklama bilgisi destekleniyor.\n" -#: readelf.c:7666 +#: readelf.c:7948 msgid "Unable to locate .debug_abbrev section!\n" -msgstr ".debug_abbrev bölümü bulunamadý!\n" +msgstr ".debug_abbrev bölümü bulunamadı!\n" -#: readelf.c:7672 +#: readelf.c:7954 msgid "debug_abbrev section data" -msgstr "debug_abbrev bölüm verisi" +msgstr "debug_abbrev bölüm verisi" -#: readelf.c:7709 +#: readelf.c:7991 #, c-format msgid "Unable to locate entry %lu in the abbreviation table\n" -msgstr "Kýsaltma tablosunda %lu girdisi bulunamadý\n" +msgstr "Kısaltma tablosunda %lu girdisi bulunamadı\n" -#: readelf.c:7714 +#: readelf.c:7996 #, c-format msgid " <%d><%lx>: Abbrev Number: %lu (%s)\n" -msgstr " <%d><%lx>: Kýsaltma Numarasý: %lu (%s)\n" +msgstr " <%d><%lx>: Kısaltma Numarası: %lu (%s)\n" -#: readelf.c:7767 +#: readelf.c:8050 msgid "64-bit DWARF aranges are not supported yet.\n" -msgstr "64 bitlik DWARF a-aralýklarý henüz desteklenmiyor.\n" +msgstr "64 bitlik DWARF a-aralıkları henüz desteklenmiyor.\n" -#: readelf.c:7773 +#: readelf.c:8056 msgid "Only DWARF 2 aranges are currently supported.\n" -msgstr "Þimdilik yalnýzca DWARF 2 a-aralýklarý destekleniyor.\n" +msgstr "Åžimdilik yalnızca DWARF 2 a-aralıkları destekleniyor.\n" -#: readelf.c:7777 +#: readelf.c:8060 #, c-format msgid " Length: %ld\n" msgstr " Uzunluk: %ld\n" -#: readelf.c:7778 +#: readelf.c:8061 #, c-format msgid " Version: %d\n" -msgstr " Sürüm: %d\n" +msgstr " Sürüm: %d\n" -#: readelf.c:7779 +#: readelf.c:8062 #, c-format msgid " Offset into .debug_info: %lx\n" -msgstr " .debug_info'nun içine göreli konum: %lx\n" +msgstr " .debug_info'nun içine göreli konum: %lx\n" -#: readelf.c:7780 +#: readelf.c:8063 #, c-format msgid " Pointer Size: %d\n" -msgstr " Gösterge Boyu: %d\n" +msgstr " Gösterge Boyu: %d\n" -#: readelf.c:7781 +#: readelf.c:8064 #, c-format msgid " Segment Size: %d\n" -msgstr " Parça Boyu: %d\n" +msgstr " Parça Boyu: %d\n" -#: readelf.c:7783 -msgid "\n Address Length\n" -msgstr "\n Adres Uzunluk\n" +#: readelf.c:8066 +msgid "" +"\n" +" Address Length\n" +msgstr "" +"\n" +" Adres Uzunluk\n" -#: readelf.c:7965 +#: readelf.c:8248 #, c-format msgid "The section %s contains:\n" -msgstr "%s bölümü içeriyor:\n" +msgstr "%s bölümü içeriyor:\n" -#: readelf.c:7988 +#: readelf.c:8271 msgid "64-bit DWARF format frames are not supported yet.\n" -msgstr "64 bitlik DWARF biçem çerçeveleri henüz desteklenmiyor.\n" +msgstr "64 bitlik DWARF biçem çerçeveleri henüz desteklenmiyor.\n" -#: readelf.c:8499 +#: readelf.c:8820 #, c-format msgid "Displaying the debug contents of section %s is not yet supported.\n" -msgstr "%s bölümünün hata ayýklama içerik bilgilerini göstermek henüz desteklenmiyor.\n" +msgstr "%s bölümünün hata ayıklama içerik bilgilerini göstermek henüz desteklenmiyor.\n" -#: readelf.c:8565 +#: readelf.c:8886 #, c-format -msgid "\nSection '%s' has no debugging data.\n" -msgstr "\n'%s' bölümünde hata ayýklama bilgisi yok.\n" +msgid "" +"\n" +"Section '%s' has no debugging data.\n" +msgstr "" +"\n" +"'%s' bölümünde hata ayıklama bilgisi yok.\n" -#: readelf.c:8570 readelf.c:8632 +#: readelf.c:8891 readelf.c:8953 msgid "debug section data" -msgstr "hata ayýklama bölüm verisi" +msgstr "hata ayıklama bölüm verisi" -#: readelf.c:8586 +#: readelf.c:8907 #, c-format -msgid "Unrecognised debug section: %s\n" -msgstr "Tanýnmayan hata ayýklama bölümü: %s\n" +msgid "Unrecognized debug section: %s\n" +msgstr "Tanınmayan hata ayıklama bölümü: %s\n" -#: readelf.c:8660 +#: readelf.c:8981 msgid "Some sections were not dumped because they do not exist!\n" -msgstr "Bazý bölümler dökülmedi çünkü mevcut deðiller!\n" +msgstr "Bazı bölümler dökülmedi çünkü mevcut deÄŸiller!\n" -#: readelf.c:8733 +#: readelf.c:9054 readelf.c:9418 msgid "liblist" msgstr "liblist" -#: readelf.c:8818 +#: readelf.c:9139 msgid "options" -msgstr "seçenekler" +msgstr "seçenekler" -#: readelf.c:8849 +#: readelf.c:9170 #, c-format -msgid "\nSection '%s' contains %d entries:\n" -msgstr "\n'%s' bölümü %d girdi içeriyor:\n" +msgid "" +"\n" +"Section '%s' contains %d entries:\n" +msgstr "" +"\n" +"'%s' bölümü %d girdi içeriyor:\n" -#: readelf.c:9010 -msgid "conflict list with without table" -msgstr "tablolu ve tablosuz çeliþki listesi" +#: readelf.c:9331 +msgid "conflict list found without a dynamic symbol table" +msgstr "dinamik sembol tablosu olmayan çeliÅŸki listesi bulundu" -#: readelf.c:9028 readelf.c:9044 +#: readelf.c:9349 readelf.c:9365 msgid "conflict" -msgstr "çakýþma" +msgstr "çakışma" -#: readelf.c:9054 +#: readelf.c:9375 #, c-format -msgid "\nSection '.conflict' contains %ld entries:\n" -msgstr "\n'.conflict' bölümü %ld girdi içeriyor:\n" +msgid "" +"\n" +"Section '.conflict' contains %ld entries:\n" +msgstr "" +"\n" +"'.conflict' bölümü %ld girdi içeriyor:\n" -#: readelf.c:9056 +#: readelf.c:9377 msgid " Num: Index Value Name" -msgstr " Num: Endeks Deðer Ýsim" +msgstr " Num: Endeks DeÄŸer Ä°sim" + +#: readelf.c:9426 +msgid "liblist string table" +msgstr "liblist dizge tablosu" -#: readelf.c:9083 +#: readelf.c:9435 +#, c-format +msgid "" +"\n" +"Library list section '%s' contains %lu entries:\n" +msgstr "" +"\n" +"Kitaplık liste bölümü '%s', %lu girdi içeriyor:\n" + +#: readelf.c:9484 msgid "NT_PRSTATUS (prstatus structure)" -msgstr "NT_PRSTATUS (prstatus yapýsý)" +msgstr "NT_PRSTATUS (prstatus yapısı)" -#: readelf.c:9084 +#: readelf.c:9485 msgid "NT_FPREGSET (floating point registers)" -msgstr "NT_FPREGSET (kayan nokta yazmaçlarý)" +msgstr "NT_FPREGSET (kayan nokta yazmaçları)" -#: readelf.c:9085 +#: readelf.c:9486 msgid "NT_PRPSINFO (prpsinfo structure)" -msgstr "NT_PRPSINFO (prpsinfo yapýsý)" +msgstr "NT_PRPSINFO (prpsinfo yapısı)" -#: readelf.c:9086 +#: readelf.c:9487 msgid "NT_TASKSTRUCT (task structure)" -msgstr "NT_TASKSTRUCT (görev yapýsý)" +msgstr "NT_TASKSTRUCT (görev yapısı)" -#: readelf.c:9087 +#: readelf.c:9488 msgid "NT_PRXFPREG (user_xfpregs structure)" -msgstr "NT_PRXFPREG (user_xfpregs yapýsý)" +msgstr "NT_PRXFPREG (user_xfpregs yapısı)" -#: readelf.c:9088 +#: readelf.c:9489 msgid "NT_PSTATUS (pstatus structure)" -msgstr "NT_PSTATUS (pstatus yapýsý)" +msgstr "NT_PSTATUS (pstatus yapısı)" -#: readelf.c:9089 +#: readelf.c:9490 msgid "NT_FPREGS (floating point registers)" -msgstr "NT_FPREGS (kayan nokta yazmaçlarý)" +msgstr "NT_FPREGS (kayan nokta yazmaçları)" -#: readelf.c:9090 +#: readelf.c:9491 msgid "NT_PSINFO (psinfo structure)" -msgstr "NT_PSINFO (psinfo yapýsý)" +msgstr "NT_PSINFO (psinfo yapısı)" -#: readelf.c:9091 +#: readelf.c:9492 msgid "NT_LWPSTATUS (lwpstatus_t structure)" -msgstr "NT_LWPSTATUS (lwpstatus_t yapýsý)" +msgstr "NT_LWPSTATUS (lwpstatus_t yapısı)" -#: readelf.c:9092 +#: readelf.c:9493 msgid "NT_LWPSINFO (lwpsinfo_t structure)" -msgstr "NT_LWPSINFO (lwpsinfo_t yapýsý)" +msgstr "NT_LWPSINFO (lwpsinfo_t yapısı)" -#: readelf.c:9093 -msgid "NT_WIN32PSTATUS (win32_pstatus strcuture)" -msgstr "NT_WIN32PSTATUS (win32_pstatus yapýsý)" +#: readelf.c:9494 +msgid "NT_WIN32PSTATUS (win32_pstatus structure)" +msgstr "NT_WIN32PSTATUS (win32_pstatus yapısı)" -#: readelf.c:9095 readelf.c:9119 +#: readelf.c:9496 readelf.c:9520 #, c-format msgid "Unknown note type: (0x%08x)" msgstr "Bilinmeyen not tipi: (0x%08x)" #. NetBSD core "procinfo" structure. -#: readelf.c:9109 +#: readelf.c:9510 msgid "NetBSD procinfo structure" -msgstr "NetBSD procinfo yapýsý" +msgstr "NetBSD procinfo yapısı" -#: readelf.c:9136 readelf.c:9150 +#: readelf.c:9537 readelf.c:9551 msgid "PT_GETREGS (reg structure)" -msgstr "PT_GETREGS (yazmaç yapýsý)" +msgstr "PT_GETREGS (yazmaç yapısı)" -#: readelf.c:9138 readelf.c:9152 +#: readelf.c:9539 readelf.c:9553 msgid "PT_GETFPREGS (fpreg structure)" -msgstr "PT_GETFPREGS (kayan nokta yazmaç yapýsý)" +msgstr "PT_GETFPREGS (kayan nokta yazmaç yapısı)" -#: readelf.c:9158 +#: readelf.c:9559 #, c-format msgid "PT_FIRSTMACH+%d" msgstr "PT_FIRSTMACH+%d" -#: readelf.c:9212 +#: readelf.c:9613 msgid "notes" msgstr "notlar" -#: readelf.c:9218 +#: readelf.c:9619 #, c-format -msgid "\nNotes at offset 0x%08lx with length 0x%08lx:\n" -msgstr "\n0x%08lx göreli konumunda, 0x%08lx uzunluðunda notlar:\n" +msgid "" +"\n" +"Notes at offset 0x%08lx with length 0x%08lx:\n" +msgstr "" +"\n" +"0x%08lx göreli konumunda, 0x%08lx uzunluÄŸunda notlar:\n" -#: readelf.c:9220 +#: readelf.c:9621 msgid " Owner\t\tData size\tDescription\n" -msgstr " Sahip\t\tVeri Boyu\tAçýklama\n" +msgstr " Sahip\t\tVeri Boyu\tAçıklama\n" -#: readelf.c:9331 +#: readelf.c:9640 +#, c-format +msgid "corrupt note found at offset %x into core notes\n" +msgstr "'core' notlarının içinde, %x görecesinde bozuk not bulundu\n" + +#: readelf.c:9642 +#, c-format +msgid " type: %x, namesize: %08lx, descsize: %08lx\n" +msgstr " tür: %x, isimboyu: %08lx, tanımboyu: %08lx\n" + +#: readelf.c:9744 msgid "No note segments present in the core file.\n" -msgstr "Core dosyasýnda not parçalarý yok.\n" +msgstr "Core dosyasında not parçaları yok.\n" -#: readelf.c:9409 +#: readelf.c:9822 msgid "" "This instance of readelf has been built without support for a\n" "64 bit data type and so it cannot read 64 bit ELF files.\n" msgstr "" -"Bu readelf, 64 bitlik veri türü desteði olmaksýzýn derlenmiþtir ve\n" -"64 bitlik ELF dosyalarýný okuyamaz.\n" +"Bu readelf, 64 bitlik veri türü desteÄŸi olmaksızın derlenmiÅŸtir ve\n" +"64 bitlik ELF dosyalarını okuyamaz.\n" -#: readelf.c:9452 +#: readelf.c:9868 #, c-format msgid "Cannot stat input file %s.\n" -msgstr "%s girdi dosyasý durumlanamadý.\n" +msgstr "%s girdi dosyası durumlanamadı.\n" -#: readelf.c:9459 +#: readelf.c:9875 #, c-format msgid "Input file %s not found.\n" -msgstr "Girdi dosyasý %s bulunamadý.\n" +msgstr "Girdi dosyası %s bulunamadı.\n" -#: readelf.c:9465 +#: readelf.c:9881 #, c-format msgid "%s: Failed to read file header\n" -msgstr "%s: Dosya baþlýðý okunamadý\n" +msgstr "%s: Dosya baÅŸlığı okunamadı\n" -#: readelf.c:9479 +#: readelf.c:9895 #, c-format -msgid "\nFile: %s\n" -msgstr "\nDosya: %s\n" +msgid "" +"\n" +"File: %s\n" +msgstr "" +"\n" +"Dosya: %s\n" #: rename.c:131 #, c-format msgid "%s: cannot set time: %s" -msgstr "%s: zaman atanamadý: %s" +msgstr "%s: zaman atanamadı: %s" #. We have to clean up here. #: rename.c:170 rename.c:203 #, c-format msgid "%s: rename: %s" -msgstr "%s: yeniden adlandýrma: %s" +msgstr "%s: yeniden adlandırma: %s" #: rename.c:211 #, c-format msgid "%s: simple_copy: %s" msgstr "%s: simple_copy: %s" -#: resbin.c:130 +#: resbin.c:134 #, c-format msgid "%s: not enough binary data" msgstr "%s: yeterli ikilik veri yok" -#: resbin.c:149 +#: resbin.c:153 msgid "null terminated unicode string" -msgstr "boþ deðerle sonlanmýþ unicode dizgesi" +msgstr "boÅŸ deÄŸerle sonlanmış unicode dizgesi" -#: resbin.c:179 resbin.c:185 +#: resbin.c:183 resbin.c:189 msgid "resource ID" msgstr "kaynak ID" -#: resbin.c:229 +#: resbin.c:233 msgid "cursor" -msgstr "gösterge" +msgstr "gösterge" -#: resbin.c:263 resbin.c:270 +#: resbin.c:267 resbin.c:274 msgid "menu header" -msgstr "menü baþlýðý" +msgstr "menü baÅŸlığı" -#: resbin.c:280 +#: resbin.c:284 msgid "menuex header" -msgstr "menuex baþlýðý" +msgstr "menuex baÅŸlığı" -#: resbin.c:284 +#: resbin.c:288 msgid "menuex offset" -msgstr "menuex basamaðý" +msgstr "menuex basamağı" -#: resbin.c:291 +#: resbin.c:295 #, c-format msgid "unsupported menu version %d" -msgstr "desteklenmeyen menü sürümü %d" +msgstr "desteklenmeyen menü sürümü %d" -#: resbin.c:319 resbin.c:334 resbin.c:400 +#: resbin.c:323 resbin.c:338 resbin.c:404 msgid "menuitem header" -msgstr "menü üyesi baþlýðý" +msgstr "menü üyesi baÅŸlığı" -#: resbin.c:430 +#: resbin.c:434 msgid "menuitem" -msgstr "menü üyesi" +msgstr "menü üyesi" -#: resbin.c:471 resbin.c:499 +#: resbin.c:475 resbin.c:503 msgid "dialog header" -msgstr "diyalog baþlýðý" +msgstr "diyalog baÅŸlığı" -#: resbin.c:489 +#: resbin.c:493 #, c-format -msgid "unexpected dialog signature %d" -msgstr "beklenmeyen diyalog imzasý %d" +msgid "unexpected DIALOGEX version %d" +msgstr "beklenmeyen DIALOGEX sürümü %d" -#: resbin.c:531 +#: resbin.c:538 msgid "dialog font point size" -msgstr "diyalog yazýtipi büyüklüðü" +msgstr "diyalog yazıtipi büyüklüğü" -#: resbin.c:539 +#: resbin.c:546 msgid "dialogex font information" -msgstr "dialogex yazýtipi bilgisi" +msgstr "dialogex yazıtipi bilgisi" -#: resbin.c:564 resbin.c:582 +#: resbin.c:572 resbin.c:590 msgid "dialog control" -msgstr "diyalog kontrolü" +msgstr "diyalog kontrolü" -#: resbin.c:574 +#: resbin.c:582 msgid "dialogex control" -msgstr "dialogex kontrolü" +msgstr "dialogex kontrolü" -#: resbin.c:603 +#: resbin.c:611 msgid "dialog control end" msgstr "diyalog kontrol sonu" -#: resbin.c:615 +#: resbin.c:623 msgid "dialog control data" msgstr "diyalog kontrol verisi" -#: resbin.c:658 +#: resbin.c:666 msgid "stringtable string length" -msgstr "dizgetablosu dizge uzunluðu" +msgstr "dizgetablosu dizge uzunluÄŸu" -#: resbin.c:668 +#: resbin.c:676 msgid "stringtable string" msgstr "dizgetablosu dizgesi" -#: resbin.c:701 +#: resbin.c:709 msgid "fontdir header" -msgstr "yazýtipi dizin baþlýðý" +msgstr "yazıtipi dizin baÅŸlığı" -#: resbin.c:714 +#: resbin.c:722 msgid "fontdir" -msgstr "yazýtipi dizini" +msgstr "yazıtipi dizini" -#: resbin.c:730 +#: resbin.c:738 msgid "fontdir device name" -msgstr "yazýtipi aygýt adý" +msgstr "yazıtipi aygıt adı" -#: resbin.c:736 +#: resbin.c:744 msgid "fontdir face name" -msgstr "yazýtipi dizini aile ismi" +msgstr "yazıtipi dizini aile ismi" -#: resbin.c:779 +#: resbin.c:787 msgid "accelerator" -msgstr "hýzlandýrýcý" +msgstr "hızlandırıcı" -#: resbin.c:843 +#: resbin.c:851 msgid "group cursor header" -msgstr "grup gösterge baþlýðý" +msgstr "grup gösterge baÅŸlığı" -#: resbin.c:847 +#: resbin.c:855 #, c-format msgid "unexpected group cursor type %d" -msgstr "beklenmeyen grup gösterge tipi %d" +msgstr "beklenmeyen grup gösterge tipi %d" -#: resbin.c:862 +#: resbin.c:870 msgid "group cursor" -msgstr "grup göstergesi" +msgstr "grup göstergesi" -#: resbin.c:901 +#: resbin.c:909 msgid "group icon header" -msgstr "grup ikon baþlýðý" +msgstr "grup ikon baÅŸlığı" -#: resbin.c:905 +#: resbin.c:913 #, c-format msgid "unexpected group icon type %d" msgstr "beklenmeyen grup ikon tipi %d" -#: resbin.c:920 +#: resbin.c:928 msgid "group icon" msgstr "grup ikonu" -#: resbin.c:991 resbin.c:1210 +#: resbin.c:999 resbin.c:1218 msgid "unexpected version string" -msgstr "dizgenin beklenmeyen sürümü" +msgstr "dizgenin beklenmeyen sürümü" -#: resbin.c:1025 +#: resbin.c:1033 #, c-format msgid "version length %d does not match resource length %lu" -msgstr "sürüm uzunluðu %d, kaynak uzunluðu %lu ile eþleþmiyor" +msgstr "sürüm uzunluÄŸu %d, kaynak uzunluÄŸu %lu ile eÅŸleÅŸmiyor" -#: resbin.c:1029 +#: resbin.c:1037 #, c-format msgid "unexpected version type %d" -msgstr "beklenmeyen sürüm tipi %d" +msgstr "beklenmeyen sürüm tipi %d" -#: resbin.c:1041 +#: resbin.c:1049 #, c-format msgid "unexpected fixed version information length %d" -msgstr "beklenmeyen sabit sürüm bilgi uzunluðu %d" +msgstr "beklenmeyen sabit sürüm bilgi uzunluÄŸu %d" -#: resbin.c:1044 +#: resbin.c:1052 msgid "fixed version info" -msgstr "sabit sürüm bilgisi" +msgstr "sabit sürüm bilgisi" -#: resbin.c:1048 +#: resbin.c:1056 #, c-format msgid "unexpected fixed version signature %lu" -msgstr "beklenmeyen sabit sürüm imzasý %lu" +msgstr "beklenmeyen sabit sürüm imzası %lu" -#: resbin.c:1052 +#: resbin.c:1060 #, c-format msgid "unexpected fixed version info version %lu" -msgstr "beklenmeyen sabit sürüm bilgisi sürümü %lu" +msgstr "beklenmeyen sabit sürüm bilgisi sürümü %lu" -#: resbin.c:1081 +#: resbin.c:1089 msgid "version var info" -msgstr "sürüm deðiþken bilgisi" +msgstr "sürüm deÄŸiÅŸken bilgisi" -#: resbin.c:1098 +#: resbin.c:1106 #, c-format msgid "unexpected stringfileinfo value length %d" -msgstr "beklenmeyen dizge dosya bilgi deðer uzunluðu %d" +msgstr "beklenmeyen dizge dosya bilgi deÄŸer uzunluÄŸu %d" -#: resbin.c:1108 +#: resbin.c:1116 #, c-format msgid "unexpected version stringtable value length %d" -msgstr "beklenmeyen sürüm dizge tablo deðer uzunluðu %d" +msgstr "beklenmeyen sürüm dizge tablo deÄŸer uzunluÄŸu %d" -#: resbin.c:1142 +#: resbin.c:1150 #, c-format msgid "unexpected version string length %d != %d + %d" -msgstr "beklenmeyen sürüm dizge uzunluðu %d != %d + %d" +msgstr "beklenmeyen sürüm dizge uzunluÄŸu %d != %d + %d" -#: resbin.c:1153 +#: resbin.c:1161 #, c-format msgid "unexpected version string length %d < %d" -msgstr "beklenmeyen sürüm dizge uzunluðu %d < %d" +msgstr "beklenmeyen sürüm dizge uzunluÄŸu %d < %d" -#: resbin.c:1170 +#: resbin.c:1178 #, c-format msgid "unexpected varfileinfo value length %d" -msgstr "beklenmeyen deðiþken dosya bilgi deðer uzunluðu %d" +msgstr "beklenmeyen deÄŸiÅŸken dosya bilgi deÄŸer uzunluÄŸu %d" -#: resbin.c:1189 +#: resbin.c:1197 msgid "version varfileinfo" -msgstr "deðiþken dosya bilgi sürümü" +msgstr "deÄŸiÅŸken dosya bilgi sürümü" -#: resbin.c:1204 +#: resbin.c:1212 #, c-format msgid "unexpected version value length %d" -msgstr "beklenmeyen sürüm deðer uzunluðu %d" +msgstr "beklenmeyen sürüm deÄŸer uzunluÄŸu %d" #: rescoff.c:128 msgid "filename required for COFF input" -msgstr "COFF girdisi için dosya adý gerekli" +msgstr "COFF girdisi için dosya adı gerekli" #: rescoff.c:145 #, c-format msgid "%s: no resource section" -msgstr "%s: kaynak bölümü yok" +msgstr "%s: kaynak bölümü yok" #: rescoff.c:152 msgid "can't read resource section" -msgstr "kaynak bölümü okunamýyor" +msgstr "kaynak bölümü okunamıyor" #: rescoff.c:178 #, c-format msgid "%s: %s: address out of bounds" -msgstr "%s: %s: adres sýnýrlarýn dýþýnda" +msgstr "%s: %s: adres sınırların dışında" #: rescoff.c:197 msgid "directory" @@ -3979,7 +4384,7 @@ msgstr "ID altdizini" #: rescoff.c:302 msgid "ID resource" -msgstr "ID kaynaðý" +msgstr "ID kaynağı" #: rescoff.c:328 msgid "resource type unknown" @@ -3999,21 +4404,21 @@ msgstr "kaynak veri boyu" #: rescoff.c:439 msgid "filename required for COFF output" -msgstr "COFF çýktý için dosya adý gerekli" +msgstr "COFF çıktı için dosya adı gerekli" #: rescoff.c:738 msgid "can't get BFD_RELOC_RVA relocation type" -msgstr "BFD_RELOC_RVA yer deðiþtirme tipi alýnamýyor" +msgstr "BFD_RELOC_RVA yer deÄŸiÅŸtirme tipi alınamıyor" #: resrc.c:240 resrc.c:312 #, c-format msgid "can't open temporary file `%s': %s" -msgstr "`%s' geçici dosyasý açýlamýyor: %s" +msgstr "`%s' geçici dosyası açılamıyor: %s" #: resrc.c:246 #, c-format msgid "can't redirect stdout: `%s': %s" -msgstr "standart çýktý yönlendirilemiyor: `%s': %s" +msgstr "standart çıktı yönlendirilemiyor: `%s': %s" #: resrc.c:262 #, c-format @@ -4023,21 +4428,21 @@ msgstr "%s %s: %s" #: resrc.c:308 #, c-format msgid "can't execute `%s': %s" -msgstr "`%s' çalýþtýrýlamýyor: %s" +msgstr "`%s' çalıştırılamıyor: %s" #: resrc.c:317 #, c-format msgid "Using temporary file `%s' to read preprocessor output\n" -msgstr "`%s' geçici dosyasý öniþlemci çýktýsýný okumak için kullanýlýyor\n" +msgstr "`%s' geçici dosyası öniÅŸlemci çıktısını okumak için kullanılıyor\n" #: resrc.c:324 #, c-format msgid "can't popen `%s': %s" -msgstr "`%s' popen yapýlamýyor: %s" +msgstr "`%s' popen yapılamıyor: %s" #: resrc.c:326 msgid "Using popen to read preprocessor output\n" -msgstr "Öniþlemci çýktýsý popen ile okunuyor\n" +msgstr "ÖniÅŸlemci çıktısı popen ile okunuyor\n" #: resrc.c:369 #, c-format @@ -4047,367 +4452,559 @@ msgstr "`%s' denendi\n" #: resrc.c:380 #, c-format msgid "Using `%s'\n" -msgstr "`%s' kullanýlýyor\n" +msgstr "`%s' kullanılıyor\n" -#: resrc.c:541 +#: resrc.c:542 #, c-format msgid "%s:%d: %s\n" msgstr "%s:%d: %s\n" -#: resrc.c:550 +#: resrc.c:551 #, c-format msgid "%s: unexpected EOF" msgstr "%s: beklenmeyen dosya sonu" -#: resrc.c:607 +#: resrc.c:608 #, c-format msgid "%s: read of %lu returned %lu" -msgstr "%s: %lu'nun okunmasý %lu döndürdü" +msgstr "%s: %lu'nun okunması %lu döndürdü" -#: resrc.c:649 resrc.c:903 resrc.c:1176 resrc.c:1330 +#: resrc.c:650 resrc.c:904 resrc.c:1177 resrc.c:1331 #, c-format msgid "stat failed on bitmap file `%s': %s" -msgstr "`%s' bitmap dosyasý durumlanamadý: %s" +msgstr "`%s' bitmap dosyası durumlanamadı: %s" -#: resrc.c:702 +#: resrc.c:703 #, c-format msgid "cursor file `%s' does not contain cursor data" -msgstr "gösterge dosyasý '%s' gösterge verisi içermiyor" +msgstr "gösterge dosyası '%s' gösterge verisi içermiyor" -#: resrc.c:734 resrc.c:1047 +#: resrc.c:735 resrc.c:1048 #, c-format msgid "%s: fseek to %lu failed: %s" -msgstr "%s: %lu'ya fseek baþarýsýz: %s" +msgstr "%s: %lu'ya fseek baÅŸarısız: %s" -#: resrc.c:871 +#: resrc.c:872 msgid "help ID requires DIALOGEX" -msgstr "yardým ID için DIALOGEX gerekli" +msgstr "yardım ID için DIALOGEX gerekli" -#: resrc.c:873 +#: resrc.c:874 msgid "control data requires DIALOGEX" -msgstr "kontrol verisi için DIALOGEX gerekli" +msgstr "kontrol verisi için DIALOGEX gerekli" -#: resrc.c:1016 +#: resrc.c:1017 #, c-format msgid "icon file `%s' does not contain icon data" -msgstr "ikon dosyasý '%s' ikon verisi içermiyor" +msgstr "ikon dosyası '%s' ikon verisi içermiyor" -#: resrc.c:1535 +#: resrc.c:1536 #, c-format msgid "can't open `%s' for output: %s" -msgstr "'%s' çýktý için açýlamadý: %s" +msgstr "'%s' çıktı için açılamadı: %s" + +#: size.c:86 +msgid " Displays the sizes of sections inside binary files\n" +msgstr " Ä°kilik dosyalar içinde bölüm boylarını gösterir\n" + +#: size.c:87 +msgid " If no input file(s) are specified, a.out is assumed\n" +msgstr " EÄŸer girdi dosyası belirtilmezse, a.out varsayılır\n" -#: size.c:79 +#: size.c:88 #, c-format msgid "" -"Usage: %s [-A | --format=sysv | -B | --format=berkeley]\n" -" [-o | --radix=8 | -d | --radix=10 | -h | --radix=16]\n" -" [-V | --version] [--target=bfdname] [--help] [file...]\n" +" The options are:\n" +" -A|-B --format={sysv|berkeley} Select output style (default is %s)\n" +" -o|-d|-h --radix={8|10|16} Display numbers in octal, decimal or hex\n" +" -t --totals Display the total sizes (Berkeley only)\n" +" --target= Set the binary file format\n" +" -h --help Display this information\n" +" -v --version Display the program's version\n" +"\n" msgstr "" -"Kullaným: %s [-A | --format=sysv | -B | --format=berkeley] Biçem\n" -" [-o | --radix=8 | -d | --radix=10 | -h | --radix=16]\n" -" [-V | --version] Sürüm\n" -" [--target=bfd_adý] Hedef\n" -" [--help] Yardým\n" -" [dosya...] [dosya]\n" - -#: size.c:85 -msgid "default is --format=berkeley\n" -msgstr "--format=berkeley öntanýmlý\n" - -#: size.c:87 -msgid "default is --format=sysv\n" -msgstr "--format=sysv öntanýmlý\n" +" Seçenekler:\n" +" -A|-B --format={sysv|berkeley} Çıktı tarzını belirler (%s öntanımlı)\n" +" -o|-d|-h --radix={8|10|16} Rakamları sekizlik, onluk, onaltılık\n" +" olarak gösterir\n" +" -t --totals Toplam boyları gösterir (yalnız\n" +" Berkeley'de)\n" +" --target= Ä°kilik dosya biçemini belirler\n" +" -h --help Bu bilgileri gösterir\n" +" -v --version Sürüm bilgilerini gösterir\n" +"\n" -#: size.c:146 +#: size.c:160 #, c-format msgid "invalid argument to --format: %s" -msgstr "--format'a geçersiz seçenek: %s" +msgstr "--format'a geçersiz seçenek: %s" -#: size.c:173 +#: size.c:187 #, c-format msgid "Invalid radix: %s\n" -msgstr "Geçersiz radix: %s\n" +msgstr "Geçersiz radix: %s\n" -#: srconv.c:1931 -#, c-format -msgid "Usage: %s [-dhVq] in-file [out-file]\n" -msgstr "Kullaným: %s [-dhVq] girdi-dosyasý [çýktý-dosyasý]\n" +#: srconv.c:1953 +msgid "Convert a COFF object file into a SYSROFF object file\n" +msgstr "Bir COFF nesne dosyasını SYSROFF nesne dosyasına çevirir\n" -#: srconv.c:1938 -#, c-format -msgid "%s: Convert a COFF object file into a SYSROFF object file\n" -msgstr "%s: Bir COFF nesne dosyasýný SYSROFF nesne dosyasýna çevirir\n" +#: srconv.c:1954 +msgid "" +" The options are:\n" +" -q --quick (Obsolete - ignoerd)\n" +" -n --noprescan Do not perform a scan to convert commons into defs\n" +" -d --debug Display information about what is being done\n" +" -h --help Display this information\n" +" -v --version Print the program's version number\n" +msgstr "" +" Seçenekler:\n" +" -q --quick (Eski - yoksayılır)\n" +" -n --noprescan common'ları def'lere çevirmek için taramaz\n" +" -d --debug Ne yapıldığı hakkında bilgi verir\n" +" -h --help Bu bilgiyi gösterir\n" +" -v --version Sürüm numarasını gösterir\n" -#: srconv.c:2074 +#: srconv.c:2099 #, c-format msgid "unable to open output file %s" -msgstr "çýktý dosyasý %s açýlamadý" +msgstr "çıktı dosyası %s açılamadı" -#: stabs.c:343 stabs.c:1760 +#: stabs.c:343 stabs.c:1759 msgid "numeric overflow" -msgstr "sayýsal taþma" +msgstr "sayısal taÅŸma" #: stabs.c:354 #, c-format msgid "Bad stab: %s\n" -msgstr "Kötü stab: %s\n" +msgstr "Kötü stab: %s\n" #: stabs.c:364 #, c-format msgid "Warning: %s: %s\n" -msgstr "Uyarý: %s: %s\n" +msgstr "Uyarı: %s: %s\n" -#: stabs.c:486 +#: stabs.c:485 msgid "N_LBRAC not within function\n" -msgstr "N_LBRAC iþlev içerisinde deðil\n" +msgstr "N_LBRAC iÅŸlev içerisinde deÄŸil\n" -#: stabs.c:525 +#: stabs.c:524 msgid "Too many N_RBRACs\n" -msgstr "Fazla sayýda N_RBRAC\n" +msgstr "Fazla sayıda N_RBRAC\n" -#: stabs.c:770 +#: stabs.c:769 msgid "unknown C++ encoded name" -msgstr "Bilinmeyen C++ þifreli ismi" +msgstr "Bilinmeyen C++ ÅŸifreli ismi" #. Complain and keep going, so compilers can invent new #. cross-reference types. -#: stabs.c:1297 +#: stabs.c:1296 msgid "unrecognized cross reference type" -msgstr "tanýnmayan çapraz baþvuru tipi" +msgstr "tanınmayan çapraz baÅŸvuru tipi" #. Does this actually ever happen? Is that why we are worrying #. about dealing with it rather than just calling error_type? -#: stabs.c:1852 +#: stabs.c:1851 msgid "missing index type" msgstr "eksik endeks tipi" -#: stabs.c:2179 +#: stabs.c:2178 msgid "unknown virtual character for baseclass" -msgstr "temel sýnýf için bilinmeyen sanal karakter" +msgstr "temel sınıf için bilinmeyen sanal karakter" -#: stabs.c:2197 +#: stabs.c:2196 msgid "unknown visibility character for baseclass" -msgstr "temel sýnýf için bilinmeyen görünebilirlik karakteri" +msgstr "temel sınıf için bilinmeyen görünebilirlik karakteri" -#: stabs.c:2389 +#: stabs.c:2388 msgid "unnamed $vb type" -msgstr "isimlenmemiþ $vb tipi" +msgstr "isimlenmemiÅŸ $vb tipi" -#: stabs.c:2395 +#: stabs.c:2394 msgid "unrecognized C++ abbreviation" -msgstr "tanýnmayan C++ kýsaltmasý" +msgstr "tanınmayan C++ kısaltması" -#: stabs.c:2475 +#: stabs.c:2474 msgid "unknown visibility character for field" -msgstr "alan için bilinmeyen görünürlük karakteri" +msgstr "alan için bilinmeyen görünürlük karakteri" -#: stabs.c:2731 +#: stabs.c:2730 msgid "const/volatile indicator missing" -msgstr "sabit/deðiþken belirteci eksik" +msgstr "sabit/deÄŸiÅŸken belirteci eksik" -#: stabs.c:2971 +#: stabs.c:2970 #, c-format msgid "No mangling for \"%s\"\n" -msgstr "\"%s\" için karýþtýrma yok\n" +msgstr "\"%s\" için karıştırma yok\n" -#: stabs.c:3284 +#: stabs.c:3283 msgid "Undefined N_EXCL" -msgstr "N_EXCL tanýmsýz" +msgstr "N_EXCL tanımsız" -#: stabs.c:3372 +#: stabs.c:3371 #, c-format msgid "Type file number %d out of range\n" -msgstr "Tip dosya numarasý %d aralýk dýþý\n" +msgstr "Tip dosya numarası %d aralık dışı\n" -#: stabs.c:3377 +#: stabs.c:3376 #, c-format msgid "Type index number %d out of range\n" -msgstr "Tip endeks numarasý %d aralýk dýþý\n" +msgstr "Tip endeks numarası %d aralık dışı\n" -#: stabs.c:3464 +#: stabs.c:3463 #, c-format msgid "Unrecognized XCOFF type %d\n" msgstr "Bilinmeyen XCOFF tipi %d\n" -#: stabs.c:3763 +#: stabs.c:3762 #, c-format msgid "bad mangled name `%s'\n" -msgstr "kötü karýþtýrýlmýþ isim '%s'\n" +msgstr "kötü karıştırılmış isim '%s'\n" -#: stabs.c:3859 +#: stabs.c:3858 msgid "no argument types in mangled string\n" -msgstr "karýþtýrýlmýþ dizgede argüman tipi yok\n" +msgstr "karıştırılmış dizgede argüman tipi yok\n" -#: strings.c:199 +#: strings.c:200 #, c-format msgid "invalid number %s" -msgstr "geçersiz sayý %s" +msgstr "geçersiz sayı %s" -#: strings.c:638 +#: strings.c:640 #, c-format msgid "invalid integer argument %s" -msgstr "geçersiz tamsayý argümaný %s" +msgstr "geçersiz tamsayı argümanı %s" -#: strings.c:648 -#, c-format +#: strings.c:651 +msgid " Display printable strings in [file(s)] (stdin by default)\n" +msgstr " [dosya(lar)]daki yazdırılabilir dizgeleri gösterir (öntanımlı standart girdi)\n" + +#: strings.c:652 msgid "" -"Usage: %s [-afov] [-n min-len] [-min-len] [-t {o,x,d}] [-e {s,b,l,B,L}]\n" -" [-] [--all] [--print-file-name] [--bytes=min-len] [--radix={o,x,d}]\n" -" [--target=bfdname] [--encoding {s,b,l,B,L}] [--help] [--version] file...\n" +" The options are:\n" +" -a - --all Scan the entire file, not just the data section\n" +" -f --print-file-name Print the name of the file before each string\n" +" -n --bytes=[number] Locate & print any NUL-terminated sequence of at\n" +" - least [number] characters (default 4).\n" +" -t --radix={o,x,d} Print the location of the string in base 8, 10 or 16\n" +" -o An alias for --radix=o\n" +" -T --target= Specify the binary file format\n" +" -e --encoding={s,b,l,B,L} Select character size and endianness:\n" +" s = 8-bit, {b,l} = 16-bit, {B,L} = 32-bit\n" +" -h --help Display this information\n" +" -v --version Print the program's version number\n" msgstr "" -"Kullaným: %s [-afov] [-n min-uzun] [-min-len] En az uzunluk\n" -" [-t {o,x,d}] [-e {s,b,l,B,L}] [-]\n" -" [--all] Hepsi\n" -" [--print-file-name] Dosya adýný yazdýrýr\n" -" [--bytes=min-uzun] En az bayt\n" -" [--radix={o,x,d}]\n" -" [--target=bfd_adý] Hedef\n" -" [--encoding {s,b,l,B,L}] Kodlama\n" -" [--help] Yardým\n" -" [--version] Sürüm bilgisi\n" -" dosya... \n" +" Seçenekler:\n" +" -a - --all Yalnız veri bölümünü deÄŸil, bütün dosyayı tarar\n" +" -f --print-file-name Her dizgeden önce dosya adını yazdırır\n" +" -n --bytes=[sayı] En az [sayı] karakterde ve NUL ile sonlanmış olan\n" +" - bütün dizgeleri yazdırır (öntanımlı 4)\n" +" -t --radix={o,x,d} Dizgenin yerini 8'lik, 10'luk veya 16'lık düzende\n" +" yazdırır\n" +" -o --radix=o ile aynı\n" +" -T --target= Ä°kilik dosya biçemini belirtir\n" +" -e --encoding={s,b,l,B,L} Karakter boyu ve sonlamayı seçtirir:\n" +" s = 8-bit, {b,l} = 16-bit, {B,L} = 32-bit\n" +" -h --help Bu bilgiyi gösterir\n" +" -v --version Yazılımın sürüm no'sunu gösterir\n" + +#: sysdump.c:768 +msgid "Print a human readable interpretation of a SYSROFF object file\n" +msgstr "SYSROFF nesne dosyasını insan tarafından okunabilir biçemde yazdırır\n" -#: sysdump.c:733 -#, c-format -msgid "Usage: %s [-hV] in-file\n" -msgstr "Kullaným: %s [-hV] girdi-dosyasý\n" +#: sysdump.c:769 +msgid "" +" The options are:\n" +" -h --help Display this information\n" +" -v --version Print the program's version number\n" +msgstr "" +" Seçenekler:\n" +" -h --help Bu bilgiyi gösterir\n" +" -v --version Yazılımın sürüm no'sunu gösterir\n" -#: sysdump.c:805 +#: sysdump.c:836 #, c-format msgid "cannot open input file %s" -msgstr "%s girdi dosyasý açýlamadý" +msgstr "%s girdi dosyası açılamadı" #: version.c:35 -msgid "Copyright 2001 Free Software Foundation, Inc.\n" -msgstr "Telif Hakký (c) 2001 Free Software Foundation, Inc.\n" +msgid "Copyright 2002 Free Software Foundation, Inc.\n" +msgstr "Telif Hakkı (c) 2002 Free Software Foundation, Inc.\n" #: version.c:36 msgid "" "This program is free software; you may redistribute it under the terms of\n" "the GNU General Public License. This program has absolutely no warranty.\n" msgstr "" -"Bu, bir serbest yazýlýmdýr; GNU Genel Kamu Lisansý koþullarý altýnda deðiþiklik \n" -"yapabilir ve/veya yeniden daðýtabilirsiniz. \n" -"Bu yazýlýmýn herhangi bir garantisi yoktur.\n" +"Bu, bir serbest yazılımdır; GNU Genel Kamu Lisansı koÅŸulları altında deÄŸiÅŸiklik \n" +"yapabilir ve/veya yeniden dağıtabilirsiniz. \n" +"Bu yazılımın herhangi bir garantisi yoktur.\n" -#: windres.c:237 +#: windres.c:239 #, c-format msgid "can't open %s `%s': %s" -msgstr "%s `%s' açýlamadý: %s" +msgstr "%s `%s' açılamadı: %s" -#: windres.c:416 +#: windres.c:418 msgid ": expected to be a directory\n" msgstr ": dizin beklendi\n" -#: windres.c:428 +#: windres.c:430 msgid ": expected to be a leaf\n" msgstr ": yaprak beklendi\n" -#: windres.c:437 +#: windres.c:439 #, c-format msgid "%s: warning: " -msgstr "%s: uyarý: " +msgstr "%s: uyarı: " -#: windres.c:439 +#: windres.c:441 msgid ": duplicate value\n" -msgstr ": çift deðer\n" +msgstr ": çift deÄŸer\n" #: windres.c:602 #, c-format msgid "unknown format type `%s'" -msgstr "bilinmeyen biçem tipi `%s'" +msgstr "bilinmeyen biçem tipi `%s'" #: windres.c:603 #, c-format msgid "%s: supported formats:" -msgstr "%s: desteklenen biçemler:" +msgstr "%s: desteklenen biçemler:" #. Otherwise, we give up. -#: windres.c:690 +#: windres.c:688 #, c-format msgid "can not determine type of file `%s'; use the -I option" -msgstr "`%s' dosyasýnýn tipi belirlenemedi; -I seçeneðini kullanýn" +msgstr "`%s' dosyasının tipi belirlenemedi; -I seçeneÄŸini kullanın" -#: windres.c:704 +#: windres.c:702 #, c-format -msgid "Usage: %s [options] [input-file] [output-file]\n" -msgstr "Kullaným: %s [seçenekler] [girdi-dosyasý] [çýktý-dosyasý]\n" +msgid "Usage: %s [option(s)] [input-file] [output-file]\n" +msgstr "Kullanım: %s [seçenekler] [girdi-dosyası] [çıktı-dosyası]\n" -#: windres.c:706 +#: windres.c:704 msgid "" -"Options:\n" -" -i FILE, --input FILE Name input file\n" -" -o FILE, --output FILE Name output file\n" -" -I FORMAT, --input-format FORMAT\n" -" Specify input format\n" -" -O FORMAT, --output-format FORMAT\n" -" Specify output format\n" -" -F TARGET, --target TARGET Specify COFF target\n" -" --preprocessor PROGRAM Program to use to preprocess rc file\n" -" --include-dir DIR Include directory when preprocessing rc file\n" -" -DSYM[=VAL], --define SYM[=VAL]\n" -" Define SYM when preprocessing rc file\n" -" -v Verbose - tells you what it's doing\n" -" --language VAL Set language when reading rc file\n" -" --use-temp-file Use a temporary file instead of popen to read\n" -" the preprocessor output\n" -" --no-use-temp-file Use popen (default)\n" -msgstr "" -"Seçenekler:\n" -" -i DOSYA, --input DOSYA Girdi dosyasý ismi\n" -" -o DOSYA, --output DOSYA Çýktý dosyasý ismi\n" -" -I BÝÇEM, --input-format BÝÇEM\n" -" Girdi biçemini belirtir\n" -" -O BÝÇEM, --output-format BÝÇEM\n" -" Çýktý biçemini belirtir\n" -" -F HEDEF, --target HEDEF COFF hedefini belirtir\n" -" --preprocessor YAZILIM rc dosyasýný öniþlemek için kullanýlacak yazýlým\n" -" --include-dir DÝZÝN rc dosyasý öniþlenirken dizini dahil et\n" -" -DSYM[=DEÐER], --define SYM[=DEÐER]\n" -" rc dosyasý öniþlenirken SYM'i tanýmlar\n" -" -v Açýklamalý - ne yapýldýðýný anlatýr\n" -" --language DEÐER rc dosyasý okunurken dili belirtir\n" -" --use-temp-file Öniþlemci çýktýsýný okumak için popen yerine geçici dosya kullanýr\n" -" --no-use-temp-file (öntanýmlý) popen kullanýr\n" - -#: windres.c:725 -msgid " --yydebug Turn on parser debugging\n" -msgstr " --yydebug Tarayýcýda hata ayýklamayý etkinleþtirir\n" +" The options are:\n" +" -i --input= Name input file\n" +" -o --output= Name output file\n" +" -I --input-format= Specify input format\n" +" -O --output-format= Specify output format\n" +" -F --target= Specify COFF target\n" +" --preprocessor= Program to use to preprocess rc file\n" +" --include-dir= Include directory when preprocessing rc file\n" +" -D --define [=] Define SYM when preprocessing rc file\n" +" -v --verbose Verbose - tells you what it's doing\n" +" --language= Set language when reading rc file\n" +" --use-temp-file Use a temporary file instead of popen to read\n" +" the preprocessor output\n" +" --no-use-temp-file Use popen (default)\n" +msgstr "" +"Seçenekler:\n" +" -i --input= Girdi dosyası ismi\n" +" -o --output= Çıktı dosyası ismi\n" +" -I --input-format= Girdi biçemini belirtir\n" +" -O --output-format= Çıktı biçemini belirtir\n" +" -F --target= COFF hedefini belirtir\n" +" --preprocessor= rc dosyasını öniÅŸlemek için kullanılacak yazılım\n" +" --include-dir= rc dosyası öniÅŸlenirken dizini dahil et\n" +" -D --define SYM[=DEÄžER] rc dosyası öniÅŸlenirken SYM'i tanımlar\n" +" -v --verbose Açıklamalı - ne yapıldığını anlatır\n" +" --language= rc dosyası okunurken dili belirtir\n" +" --use-temp-file ÖniÅŸlemci çıktısını okumak için popen yerine\n" +" geçici dosya kullanır\n" +" --no-use-temp-file (öntanımlı) popen kullanır\n" + +#: windres.c:719 +msgid " --yydebug Turn on parser debugging\n" +msgstr " --yydebug Tarayıcıda hata ayıklamayı etkinleÅŸtirir\n" -#: windres.c:728 +#: windres.c:722 msgid "" -" --help Print this help message\n" -" --version Print version information\n" +" -h --help Print this help message\n" +" -V --version Print version information\n" msgstr "" -" --help Bu yardýmý gösterir\n" -" --version Sürüm bilgisini gösterir\n" +" -h --help Bu yardımı gösterir\n" +" -V --version Bu sürüm bilgisini gösterir\n" -#: windres.c:731 +#: windres.c:725 msgid "" "FORMAT is one of rc, res, or coff, and is deduced from the file name\n" "extension if not specified. A single file name is an input file.\n" "No input-file is stdin, default rc. No output-file is stdout, default rc.\n" msgstr "" -"BÝÇEM rc, res, veya coff deðerlerinden biri olup, eðer belirtilmezse dosya ismi sonekinden bulunur. Tek bir dosya ismi bir girdi dosyasý kabul edilir\n" -"Girdi dosya ismi verilmezse standart girdi, öntanýmlý rc okunur. \n" -"Çýktý dosya ismi verilmezse standart çýktý, öntanýmlý rc okunur.\n" +"BİÇEM rc, res, veya coff deÄŸerlerinden biri olup, eÄŸer belirtilmezse dosya ismi sonekinden bulunur. Tek bir dosya ismi bir girdi dosyası kabul edilir\n" +"Girdi dosya ismi verilmezse standart girdi, öntanımlı rc okunur. \n" +"Çıktı dosya ismi verilmezse standart çıktı, öntanımlı rc okunur.\n" -#: windres.c:983 +#: windres.c:988 msgid "no resources" msgstr "kaynak yok" -#: wrstabs.c:366 wrstabs.c:2027 +#: wrstabs.c:366 wrstabs.c:2026 #, c-format msgid "string_hash_lookup failed: %s" -msgstr "string_hash_lookup baþarýsýz: %s" +msgstr "string_hash_lookup baÅŸarısız: %s" #: wrstabs.c:666 #, c-format msgid "stab_int_type: bad size %u" -msgstr "stab_int_type: hatalý boy %u" +msgstr "stab_int_type: hatalı boy %u" -#: wrstabs.c:1467 +#: wrstabs.c:1466 #, c-format msgid "%s: warning: unknown size for field `%s' in struct" -msgstr "%s: uyarý: Yapý içinde `%s' alaný için bilinmeyen boy" +msgstr "%s: uyarı: Yapı içinde `%s' alanı için bilinmeyen boy" + +#~ msgid "" +#~ "Usage: %s [-CfsHV] [-b bfdname] [--target=bfdname]\n" +#~ " [-e executable] [--exe=executable] [--demangle[=style]]\n" +#~ " [--basenames] [--functions] [addr addr ...]\n" +#~ msgstr "" +#~ "Kullanım: %s [-CfsHV] [-b bfd_adı] \n" +#~ " [--target=bfd_adı] hedef\n" +#~ " [-e uygulama] [--exe=uygulama] \n" +#~ " [--demangle[=tarz]] düzeltme tarzı\n" +#~ " [--basenames] temel isimler\n" +#~ " [--functions] [adres adres ...] iÅŸlevler\n" + +#~ msgid "" +#~ "Usage: %s [-dhV] [-I bfdname] [-O bfdname] [-T header-file] [-l linker]\n" +#~ " [--input-target=bfdname] [--output-target=bfdname]\n" +#~ " [--header-file=file] [--linker=linker] [--debug]\n" +#~ " [--help] [--version]\n" +#~ " [in-file [out-file]]\n" +#~ msgstr "" +#~ "Kullanım: %s [-dhV] [-I bfd_adı] [-O bfd_adı] [-T baÅŸlık-dosyası]\n" +#~ " [-l baÄŸlayıcı]\n" +#~ " [--input-target=bfd_adı] girdi dosyası adı\n" +#~ " [--output-target=bfd_adı] çıktı dosyası adı\n" +#~ " [--header-file=dosya] baÅŸlık dosyası adı\n" +#~ " [--linker=baÄŸlayıcı] baÄŸlayıcı yazılım adı\n" +#~ " [--debug] hata ayıklama kipi\n" +#~ " [--help] bu yardımı gösterir\n" +#~ " [--version] sürüm bilgisini gösterir\n" +#~ " [girdi-dosyası [çıktı-dosyası]]\n" + +#~ msgid "Usage: %s [OPTION]... [FILE]...\n" +#~ msgstr "Kullanım: %s [SEÇENEK]... [DOSYA]...\n" + +#~ msgid "Usage: %s OPTION... FILE...\n" +#~ msgstr "Kullanım: %s SEÇENEK... DOSYA...\n" + +#~ msgid " Options are:\n" +#~ msgstr " Seçenekler:\n" + +#~ msgid " -a or --all Equivalent to: -h -l -S -s -r -d -V -A -I\n" +#~ msgstr " -a veya --all Buna eÅŸit: -h -l -S -s -r -d -V -A -I\n" + +#~ msgid " -h or --file-header Display the ELF file header\n" +#~ msgstr " -h veya --file-header ELF dosyası baÅŸlığını gösterir\n" + +#~ msgid " -l or --program-headers or --segments\n" +#~ msgstr " -l veya --program-headers veya --segments\n" + +#~ msgid " Display the program headers\n" +#~ msgstr " Yazılım baÅŸlıklarını gösterir\n" + +#~ msgid " -S or --section-headers or --sections\n" +#~ msgstr " -S veya --section-headers veya --sections\n" + +#~ msgid " Display the sections' header\n" +#~ msgstr " Bölüm baÅŸlıklarını gösterir\n" + +#~ msgid " -e or --headers Equivalent to: -h -l -S\n" +#~ msgstr " -e veya --headers Buna eÅŸit: -h -l -S\n" + +#~ msgid " -s or --syms or --symbols Display the symbol table\n" +#~ msgstr " -s veya --syms veya --symbols Sembol tablosunu gösterir\n" + +#~ msgid " -n or --notes Display the core notes (if present)\n" +#~ msgstr " -n veya --notes (EÄŸer varsa) core notlarını gösterir\n" + +#~ msgid " -r or --relocs Display the relocations (if present)\n" +#~ msgstr " -r veya --relocs (EÄŸer varsa) yer deÄŸiÅŸtirmeleri gösterir\n" + +#~ msgid " -u or --unwind Display the unwind info (if present)\n" +#~ msgstr " -u veya --unwind (EÄŸer varsa) geri alma bilgisini gösterir\n" + +#~ msgid " -d or --dynamic Display the dynamic segment (if present)\n" +#~ msgstr " -d veya --dynamic (EÄŸer varsa) dinamik bölümü gösterir\n" + +#~ msgid " -V or --version-info Display the version sections (if present)\n" +#~ msgstr " -V veya --version-info (EÄŸer varsa) sürüm bölümlerini gösterir\n" + +#~ msgid " -A or --arch-specific Display architecture specific information (if any).\n" +#~ msgstr " -A veya --arch-specific (EÄŸer varsa) mimariye özel bilgiyi gösterir.\n" + +#~ msgid " -D or --use-dynamic Use the dynamic section info when displaying symbols\n" +#~ msgstr " -D veya --use-dynamic Sembolleri gösterirken dinamik bölüm bilgisini kullanır\n" + +#~ msgid " -x or --hex-dump=\n" +#~ msgstr " -x veya --hex-dump=\n" + +#~ msgid " Dump the contents of section \n" +#~ msgstr " bölümünün içeriÄŸini gösterir\n" + +#~ msgid " -w[liaprmfs] or --debug-dump[=line,=info,=abbrev,=pubnames,=ranges,=macro,=frames,=str]\n" +#~ msgstr " -w[liaprmfs] veya --debug-dump[=line,=info,=abbrev,=pubnames,=ranges,=macro,=frames,=str]\n" + +#~ msgid " Display the contents of DWARF2 debug sections\n" +#~ msgstr " DWARF2 hata ayıklama bölümlerinin içeriÄŸini gösterir\n" + +#~ msgid " -i or --instruction-dump=\n" +#~ msgstr " -i veya --instruction-dump=\n" + +#~ msgid " -I or --histogram Display histogram of bucket list lengths\n" +#~ msgstr " -I veya --histogram Küme liste uzunluÄŸu geçmiÅŸ grafiÄŸini gösterir\n" + +#~ msgid " -v or --version Display the version number of readelf\n" +#~ msgstr " -v veya --version readelf'in sürüm numarasını gösterir\n" + +#~ msgid " -W or --wide Don't split lines or truncate symbols to fit into 80 columns\n" +#~ msgstr " -W veya --wide 80 sütuna sığdırmak için satırları bölmez veya kesmez\n" + +#~ msgid " -H or --help Display this information\n" +#~ msgstr " -H veya --help Bu bilgiyi gösterir\n" + +#~ msgid "unexpected dialog signature %d" +#~ msgstr "beklenmeyen diyalog imzası %d" + +#~ msgid "" +#~ "Usage: %s [-A | --format=sysv | -B | --format=berkeley]\n" +#~ " [-o | --radix=8 | -d | --radix=10 | -h | --radix=16]\n" +#~ " [-V | --version] [--target=bfdname] [--help] [file...]\n" +#~ msgstr "" +#~ "Kullanım: %s [-A | --format=sysv | -B | --format=berkeley] Biçem\n" +#~ " [-o | --radix=8 | -d | --radix=10 | -h | --radix=16]\n" +#~ " [-V | --version] Sürüm\n" +#~ " [--target=bfd_adı] Hedef\n" +#~ " [--help] Yardım\n" +#~ " [dosya...] [dosya]\n" + +#~ msgid "default is --format=berkeley\n" +#~ msgstr "--format=berkeley öntanımlı\n" + +#~ msgid "default is --format=sysv\n" +#~ msgstr "--format=sysv öntanımlı\n" + +#~ msgid "Usage: %s [-dhVq] in-file [out-file]\n" +#~ msgstr "Kullanım: %s [-dhVq] girdi-dosyası [çıktı-dosyası]\n" + +#~ msgid "" +#~ "Usage: %s [-afov] [-n min-len] [-min-len] [-t {o,x,d}] [-e {s,b,l,B,L}]\n" +#~ " [-] [--all] [--print-file-name] [--bytes=min-len] [--radix={o,x,d}]\n" +#~ " [--target=bfdname] [--encoding {s,b,l,B,L}] [--help] [--version] file...\n" +#~ msgstr "" +#~ "Kullanım: %s [-afov] [-n min-uzun] [-min-len] En az uzunluk\n" +#~ " [-t {o,x,d}] [-e {s,b,l,B,L}] [-]\n" +#~ " [--all] Hepsi\n" +#~ " [--print-file-name] Dosya adını yazdırır\n" +#~ " [--bytes=min-uzun] En az bayt\n" +#~ " [--radix={o,x,d}]\n" +#~ " [--target=bfd_adı] Hedef\n" +#~ " [--encoding {s,b,l,B,L}] Kodlama\n" +#~ " [--help] Yardım\n" +#~ " [--version] Sürüm bilgisi\n" +#~ " dosya... \n" + +#~ msgid "Usage: %s [-hV] in-file\n" +#~ msgstr "Kullanım: %s [-hV] girdi-dosyası\n" diff -uprN binutils-2.13.90.0.4/binutils/readelf.c binutils-2.13.90.0.10/binutils/readelf.c --- binutils-2.13.90.0.4/binutils/readelf.c Thu Aug 1 17:49:32 2002 +++ binutils-2.13.90.0.10/binutils/readelf.c Wed Oct 9 21:09:41 2002 @@ -62,6 +62,7 @@ #include "elf/h8.h" #include "elf/hppa.h" #include "elf/i386.h" +#include "elf/i370.h" #include "elf/i860.h" #include "elf/i960.h" #include "elf/ia64.h" @@ -1118,6 +1119,10 @@ dump_relocations (file, rel_offset, rel_ rtype = elf_x86_64_reloc_type (type); break; + case EM_S370: + rtype = i370_reloc_type (type); + break; + case EM_S390_OLD: case EM_S390: rtype = elf_s390_reloc_type (type); @@ -1772,9 +1777,6 @@ get_machine_flags (e_flags, e_machine) case E_V850E_ARCH: strcat (buf, ", v850e"); break; - case E_V850EA_ARCH: - strcat (buf, ", v850ea"); - break; case E_V850_ARCH: strcat (buf, ", v850"); break; @@ -1819,8 +1821,11 @@ get_machine_flags (e_flags, e_machine) case E_MIPS_MACH_3900: strcat (buf, ", 3900"); break; case E_MIPS_MACH_4010: strcat (buf, ", 4010"); break; case E_MIPS_MACH_4100: strcat (buf, ", 4100"); break; - case E_MIPS_MACH_4650: strcat (buf, ", 4650"); break; case E_MIPS_MACH_4111: strcat (buf, ", 4111"); break; + case E_MIPS_MACH_4120: strcat (buf, ", 4120"); break; + case E_MIPS_MACH_4650: strcat (buf, ", 4650"); break; + case E_MIPS_MACH_5400: strcat (buf, ", 5400"); break; + case E_MIPS_MACH_5500: strcat (buf, ", 5500"); break; case E_MIPS_MACH_SB1: strcat (buf, ", sb1"); break; case 0: /* We simply ignore the field in this case to avoid confusion: @@ -2512,7 +2517,7 @@ parse_args (argc, argv) do_debugging = 1; else { - const char *debug_dump_opt[] + static const char *debug_dump_opt[] = { "line", "info", "abbrev", "pubnames", "ranges", "macro", "frames", "frames-interp", "str", "loc", NULL }; unsigned int index; @@ -3845,13 +3850,13 @@ dump_ia64_unwind (aux) print_vma (tp->start.offset, PREFIX_HEX); fputc ('-', stdout); print_vma (tp->end.offset, PREFIX_HEX); - printf ("), info at +0x%lx\n", + printf ("], info at +0x%lx\n", (unsigned long) (tp->info.offset - aux->seg_base)); head = aux->info + (tp->info.offset - aux->info_addr); stamp = BYTE_GET8 ((unsigned char *) head); - printf (" v%u, flags=0x%lx (%s%s ), len=%lu bytes\n", + printf (" v%u, flags=0x%lx (%s%s), len=%lu bytes\n", (unsigned) UNW_VER (stamp), (unsigned long) ((stamp & UNW_FLAG_MASK) >> 32), UNW_FLAG_EHANDLER (stamp) ? " ehandler" : "", @@ -4294,6 +4299,7 @@ dynamic_segment_parisc_val (entry) print_vma (entry->d_un.d_ptr, PREFIX_HEX); break; } + putchar ('\n'); } static int @@ -4644,11 +4650,13 @@ process_dynamic_segment (file) if (do_dynamic) { printf (_("Flags:")); + if (entry->d_un.d_val == 0) printf (_(" None\n")); else { unsigned long int val = entry->d_un.d_val; + if (val & DTF_1_PARINIT) { printf (" PARINIT"); @@ -4670,11 +4678,13 @@ process_dynamic_segment (file) if (do_dynamic) { printf (_("Flags:")); + if (entry->d_un.d_val == 0) printf (_(" None\n")); else { unsigned long int val = entry->d_un.d_val; + if (val & DF_P1_LAZYLOAD) { printf (" LAZYLOAD"); @@ -4701,6 +4711,7 @@ process_dynamic_segment (file) else { unsigned long int val = entry->d_un.d_val; + if (val & DF_1_NOW) { printf (" NOW"); @@ -4906,6 +4917,8 @@ process_dynamic_segment (file) case DT_BIND_NOW: /* The value of this entry is ignored. */ + if (do_dynamic) + putchar ('\n'); break; case DT_GNU_PRELINKED: @@ -7338,7 +7351,7 @@ decode_location_expression (data, pointe printf ("DW_OP_nop"); break; - /* DWARF 2.1 extensions. */ + /* DWARF 3 extensions. */ case DW_OP_push_object_address: printf ("DW_OP_push_object_address"); break; @@ -7350,8 +7363,13 @@ decode_location_expression (data, pointe printf ("DW_OP_call4: <%lx>", (long) byte_get (data, 4)); data += 4; break; - case DW_OP_calli: - printf ("DW_OP_calli"); + case DW_OP_call_ref: + printf ("DW_OP_call_ref"); + break; + + /* GNU extensions. */ + case DW_OP_GNU_push_tls_address: + printf ("DW_OP_GNU_push_tls_address"); break; default: @@ -7426,13 +7444,16 @@ display_debug_loc (section, start, file) addr = section->sh_addr; bytes = section->sh_size; section_end = start + bytes; + if (bytes == 0) { printf (_("\nThe .debug_loc section is empty.\n")); return 0; } + printf (_("Contents of the .debug_loc section:\n\n")); printf (_("\n Offset Begin End Expression\n")); + while (start < section_end) { unsigned long begin; @@ -7531,7 +7552,6 @@ fetch_indirect_string (offset) return debug_str_contents + offset; } - static int display_debug_str (section, start, file) Elf32_Internal_Shdr * section; @@ -7592,7 +7612,6 @@ display_debug_str (section, start, file) return 1; } - static unsigned char * read_and_display_attr_value (attribute, form, data, cu_offset, pointer_size) unsigned long attribute; @@ -7946,8 +7965,8 @@ display_debug_info (section, start, file break; } - /* Check for RELA relocations in the abbrev_offset address, and - apply them. */ + /* Check for RELA relocations in the + abbrev_offset address, and apply them. */ for (relsec = section_headers; relsec < section_headers + elf_header.e_shnum; ++relsec) @@ -7959,7 +7978,8 @@ display_debug_info (section, start, file Elf_Internal_Sym *sym; if (relsec->sh_type != SHT_RELA - || SECTION_HEADER (relsec->sh_info) != section) + || SECTION_HEADER (relsec->sh_info) != section + || relsec->sh_size == 0) continue; if (!slurp_rela_relocs (file, relsec->sh_offset, relsec->sh_size, @@ -7980,7 +8000,8 @@ display_debug_info (section, start, file { sym = symtab + ELF32_R_SYM (rp->r_info); - if (ELF32_ST_TYPE (sym->st_info) != STT_SECTION) + if (ELF32_R_SYM (rp->r_info) != 0 + && ELF32_ST_TYPE (sym->st_info) != STT_SECTION) { warn (_("Skipping unexpected symbol type %u\n"), ELF32_ST_TYPE (sym->st_info)); @@ -7991,7 +8012,8 @@ display_debug_info (section, start, file { sym = symtab + ELF64_R_SYM (rp->r_info); - if (ELF64_ST_TYPE (sym->st_info) != STT_SECTION) + if (ELF64_R_SYM (rp->r_info) != 0 + && ELF64_ST_TYPE (sym->st_info) != STT_SECTION) { warn (_("Skipping unexpected symbol type %u\n"), ELF64_ST_TYPE (sym->st_info)); @@ -7999,7 +8021,7 @@ display_debug_info (section, start, file } } - compunit.cu_abbrev_offset += rp->r_addend; + compunit.cu_abbrev_offset = rp->r_addend; break; } @@ -8026,7 +8048,6 @@ display_debug_info (section, start, file free_abbrevs (); /* Read in the abbrevs used by this compilation unit. */ - { Elf32_Internal_Shdr * sec; unsigned char * begin; diff -uprN binutils-2.13.90.0.4/binutils/stabs.c binutils-2.13.90.0.10/binutils/stabs.c --- binutils-2.13.90.0.4/binutils/stabs.c Fri Jun 7 19:22:17 2002 +++ binutils-2.13.90.0.10/binutils/stabs.c Fri Sep 27 08:33:09 2002 @@ -1,5 +1,5 @@ /* stabs.c -- Parse stabs debugging information - Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001 + Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Written by Ian Lance Taylor . @@ -213,7 +213,7 @@ static debug_type stab_find_tagged_type PARAMS ((PTR, struct stab_handle *, const char *, int, enum debug_type_kind)); static debug_type *stab_demangle_argtypes - PARAMS ((PTR, struct stab_handle *, const char *, boolean *)); + PARAMS ((PTR, struct stab_handle *, const char *, boolean *, unsigned int)); /* Save a string in memory. */ @@ -2908,6 +2908,7 @@ parse_stab_argtypes (dhandle, info, clas boolean is_destructor; debug_type *args; boolean varargs; + unsigned int physname_len = 0; /* Constructors are sometimes handled specially. */ is_full_physname_constructor = ((argtypes[0] == '_' @@ -2984,6 +2985,7 @@ parse_stab_argtypes (dhandle, info, clas strcpy (physname, fieldname); } + physname_len = strlen (physname); strcat (physname, buf); if (tagname != NULL) strcat (physname, tagname); @@ -3000,7 +3002,7 @@ parse_stab_argtypes (dhandle, info, clas false); } - args = stab_demangle_argtypes (dhandle, info, *pphysname, &varargs); + args = stab_demangle_argtypes (dhandle, info, *pphysname, &varargs, physname_len); if (args == NULL) return DEBUG_TYPE_NULL; @@ -3729,7 +3731,7 @@ static unsigned int stab_demangle_count static boolean stab_demangle_get_count PARAMS ((const char **, unsigned int *)); static boolean stab_demangle_prefix - PARAMS ((struct stab_demangle_info *, const char **)); + PARAMS ((struct stab_demangle_info *, const char **, unsigned int)); static boolean stab_demangle_function_name PARAMS ((struct stab_demangle_info *, const char **, const char *)); static boolean stab_demangle_signature @@ -3821,11 +3823,12 @@ stab_demangle_get_count (pp, pi) terminated array of argument types. */ static debug_type * -stab_demangle_argtypes (dhandle, info, physname, pvarargs) +stab_demangle_argtypes (dhandle, info, physname, pvarargs, physname_len) PTR dhandle; struct stab_handle *info; const char *physname; boolean *pvarargs; + unsigned int physname_len; { struct stab_demangle_info minfo; @@ -3842,7 +3845,7 @@ stab_demangle_argtypes (dhandle, info, p /* cplus_demangle checks for special GNU mangled forms, but we can't see any of them in mangled method argument types. */ - if (! stab_demangle_prefix (&minfo, &physname)) + if (! stab_demangle_prefix (&minfo, &physname, physname_len)) goto error_return; if (*physname != '\0') @@ -3869,9 +3872,10 @@ stab_demangle_argtypes (dhandle, info, p /* Demangle the prefix of the mangled name. */ static boolean -stab_demangle_prefix (minfo, pp) +stab_demangle_prefix (minfo, pp, physname_len) struct stab_demangle_info *minfo; const char **pp; + unsigned int physname_len; { const char *scan; unsigned int i; @@ -3879,26 +3883,29 @@ stab_demangle_prefix (minfo, pp) /* cplus_demangle checks for global constructors and destructors, but we can't see them in mangled argument types. */ - /* Look for `__'. */ - scan = *pp; - do + if (physname_len) + scan = *pp + physname_len; + else { - scan = strchr (scan, '_'); - } - while (scan != NULL && *++scan != '_'); + /* Look for `__'. */ + scan = *pp; + do + scan = strchr (scan, '_'); + while (scan != NULL && *++scan != '_'); - if (scan == NULL) - { - stab_bad_demangle (*pp); - return false; - } + if (scan == NULL) + { + stab_bad_demangle (*pp); + return false; + } - --scan; + --scan; - /* We found `__'; move ahead to the last contiguous `__' pair. */ - i = strspn (scan, "_"); - if (i > 2) - scan += i - 2; + /* We found `__'; move ahead to the last contiguous `__' pair. */ + i = strspn (scan, "_"); + if (i > 2) + scan += i - 2; + } if (scan == *pp && (ISDIGIT (scan[2]) diff -uprN binutils-2.13.90.0.4/binutils/testsuite/ChangeLog binutils-2.13.90.0.10/binutils/testsuite/ChangeLog --- binutils-2.13.90.0.4/binutils/testsuite/ChangeLog Fri Jun 7 19:22:17 2002 +++ binutils-2.13.90.0.10/binutils/testsuite/ChangeLog Fri Sep 27 08:33:09 2002 @@ -1,3 +1,19 @@ +2002-08-27 Alan Modra + + * binutils-all/objcopy.exp: Revert last change. + +2002-08-26 Alan Modra + + * binutils-all/objcopy.exp (strip_test): Adjust for "no symbols" on + stdout. + (strip_executable): Likewise. + +2002-08-13 Alan Modra + + * binutils-all/objdump.exp (cpus_expected): Add fr500, ip2022, + tic80, tms320c30. + * binutils-all/objcopy.exp (simple copy): Revise xfails. + 2002-05-29 Alan Modra * binutils-all/objcopy.exp (strip_test_with_saving_a_symbol): diff -uprN binutils-2.13.90.0.4/binutils/testsuite/ChangeLog.linux binutils-2.13.90.0.10/binutils/testsuite/ChangeLog.linux --- binutils-2.13.90.0.4/binutils/testsuite/ChangeLog.linux Sat Aug 4 19:52:15 2001 +++ binutils-2.13.90.0.10/binutils/testsuite/ChangeLog.linux Wed Oct 2 10:17:19 2002 @@ -1,3 +1,8 @@ +2002-09-30 H.J. Lu + + * binutils-all/objcopy.exp (copy_setup): Skip the test if the + cross binary fails to run. + 2001-08-04 H.J. Lu * binutils-all/windres/bmp1.bmp.uu: Removed. diff -uprN binutils-2.13.90.0.4/binutils/testsuite/binutils-all/objcopy.exp binutils-2.13.90.0.10/binutils/testsuite/binutils-all/objcopy.exp --- binutils-2.13.90.0.4/binutils/testsuite/binutils-all/objcopy.exp Fri Jun 7 19:22:17 2002 +++ binutils-2.13.90.0.10/binutils/testsuite/binutils-all/objcopy.exp Wed Oct 2 10:17:19 2002 @@ -70,20 +70,20 @@ if ![string match "" $got] then { # in the first place, and may order things a little differently. # Those systems should use setup_xfail here. - setup_xfail "sh-*-coff" "sh-*-hms" - setup_xfail "m68*-*-hpux*" "m68*-*-sunos*" "m68*-*-coff" "m68*-*-vxworks*" - setup_xfail "m68*-ericsson-ose" "m68k*-motorola-sysv*" - setup_xfail "i*86-*-aout*" - setup_xfail "i*86-*-sysv3" "i*86-*-isc*" "i*86-*-sco*" "i*86-*-coff" - setup_xfail "i*86-*-aix*" "i*86-*-go32*" "i*86-*-msdos*" - setup_xfail "a29k-*-udi" "a29k-*-coff" "a29k-*-vxworks*" - setup_xfail "i960-*-coff" - setup_xfail "h8300-*-hms" "h8300-*-coff" - setup_xfail "h8500-*-hms" "h8500-*-coff" + setup_xfail "a29k-*" + setup_xfail "h8300-*-rtems*" "h8300-*-coff" + setup_xfail "h8500-*-rtems*" "h8500-*-coff" setup_xfail "hppa*-*-*" - clear_xfail "hppa*64*-*-hpux*" "hppa*-*-*elf*" "hppa*-*-linux*" - setup_xfail "m88*-*-coff" "m88*-motorola-sysv*" - setup_xfail "z8*-*-coff" + setup_xfail "i960-*" + setup_xfail "m68*-*-*coff" "m68*-*-hpux*" "m68*-*-lynxos*" + setup_xfail "m68*-*-sysv*" "m68*-apple-aux*" + setup_xfail "m8*-*" + setup_xfail "or32-*-rtems*" "or32-*-coff" + setup_xfail "sh-*-coff*" "sh-*-rtems*" + setup_xfail "tic80-*-*" "w65-*" "z8*-*" + + clear_xfail "hppa*64*-*-hpux*" "hppa*-*-linux*" "hppa*-*-lites*" + clear_xfail "hppa*-*-*n*bsd*" "hppa*-*-rtems*" "*-*-*elf*" "m68*-*-sysv4*" if [string match "" $exec_output] then { pass "objcopy (simple copy)" @@ -453,8 +453,15 @@ proc copy_setup { } { set status [lindex $result 0]; if { $status != "pass" } { - perror "unresolved setup, status = $status" - return 3 + set msg [lindex $result 1]; + if { ![isnative] \ + && ![is_remote host] \ + && [regexp "cannot execute binary file" $msg] } then { + return 2 + } else { + perror "unresolved setup, status = $status" + return 3 + } } return 0 diff -uprN binutils-2.13.90.0.4/binutils/testsuite/binutils-all/objdump.exp binutils-2.13.90.0.10/binutils/testsuite/binutils-all/objdump.exp --- binutils-2.13.90.0.4/binutils/testsuite/binutils-all/objdump.exp Thu Mar 7 11:52:37 2002 +++ binutils-2.13.90.0.10/binutils/testsuite/binutils-all/objdump.exp Fri Sep 27 08:33:09 2002 @@ -36,10 +36,11 @@ set got [binutils_run $OBJDUMP "$OBJDUMP set cpus_expected [list] lappend cpus_expected a29k alliant alpha arc arm convex -lappend cpus_expected d10v d30v fr30 h8 hppa i386 i860 i960 +lappend cpus_expected d10v d30v fr30 fr500 h8 hppa i386 i860 i960 ip2022 lappend cpus_expected m32r m68hc11 m68hc12 m68k m88k MCore lappend cpus_expected mips mn10200 mn10300 ns32k pj powerpc pyramid -lappend cpus_expected romp rs6000 s390 sh sparc tahoe tic54x tms320c54x v850 +lappend cpus_expected romp rs6000 s390 sh sparc +lappend cpus_expected tahoe tic54x tic80 tms320c30 tms320c4x tms320c54x v850 lappend cpus_expected vax we32k x86-64 xscale z8k z8001 z8002 # Make sure the target CPU shows up in the list. diff -uprN binutils-2.13.90.0.4/binutils.spec binutils-2.13.90.0.10/binutils.spec --- binutils-2.13.90.0.4/binutils.spec Wed Aug 14 10:33:23 2002 +++ binutils-2.13.90.0.10/binutils.spec Thu Oct 10 09:19:57 2002 @@ -9,7 +9,7 @@ Summary: A GNU collection of binary utilities. Name: binutils -Version: 2.13.90.0.4 +Version: 2.13.90.0.10 Release: 1 Copyright: GPL Group: Development/Tools @@ -55,7 +55,7 @@ echo "include Makefile" >> makefile ADDITIONAL_TARGETS="" %ifos linux %if %{all_targets} -ADDITIONAL_TARGETS="--enable-targets=alpha-linux,arm-linux,cris-linux,hppa-linux,i386-linux,x86_64-linux,ia64-linux,m68k-linux,mips-linux,mips64-linux,mips64el-linux,mipsel-linux,ppc-linux,s390-linux,s390x-linux,sh-linux,sparc-linux,sparc64-linux,i386-linuxaout" +ADDITIONAL_TARGETS="--enable-targets=alpha-linux,arm-linux,cris-linux,hppa-linux,i386-linux,x86_64-linux,ia64-linux,m68k-linux,mips-linux,mips64-linux,mips64el-linux,mipsel-linux,ppc-linux,ppc64-linux,s390-linux,s390x-linux,sh-linux,sparc-linux,sparc64-linux,i386-linuxaout" %else %ifarch %{ix86} ADDITIONAL_TARGETS="--enable-targets=i386-linuxaout" diff -uprN binutils-2.13.90.0.4/binutils.spec.in binutils-2.13.90.0.10/binutils.spec.in --- binutils-2.13.90.0.4/binutils.spec.in Wed Jun 26 09:24:56 2002 +++ binutils-2.13.90.0.10/binutils.spec.in Thu Oct 10 09:16:57 2002 @@ -55,7 +55,7 @@ echo "include Makefile" >> makefile ADDITIONAL_TARGETS="" %ifos linux %if %{all_targets} -ADDITIONAL_TARGETS="--enable-targets=alpha-linux,arm-linux,cris-linux,hppa-linux,i386-linux,x86_64-linux,ia64-linux,m68k-linux,mips-linux,mips64-linux,mips64el-linux,mipsel-linux,ppc-linux,s390-linux,s390x-linux,sh-linux,sparc-linux,sparc64-linux,i386-linuxaout" +ADDITIONAL_TARGETS="--enable-targets=alpha-linux,arm-linux,cris-linux,hppa-linux,i386-linux,x86_64-linux,ia64-linux,m68k-linux,mips-linux,mips64-linux,mips64el-linux,mipsel-linux,ppc-linux,ppc64-linux,s390-linux,s390x-linux,sh-linux,sparc-linux,sparc64-linux,i386-linuxaout" %else %ifarch %{ix86} ADDITIONAL_TARGETS="--enable-targets=i386-linuxaout" diff -uprN binutils-2.13.90.0.4/config.guess binutils-2.13.90.0.10/config.guess --- binutils-2.13.90.0.4/config.guess Wed Jul 17 11:38:29 2002 +++ binutils-2.13.90.0.10/config.guess Fri Sep 27 08:33:09 2002 @@ -3,7 +3,7 @@ # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002 Free Software Foundation, Inc. -timestamp='2002-07-09' +timestamp='2002-09-12' # 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 @@ -231,6 +231,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. + eval $set_cc_for_build cat <$dummy.s .data \$Lformat: @@ -256,7 +257,6 @@ 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 @@ -281,6 +281,9 @@ EOF 2-1307) UNAME_MACHINE="alphaev68" ;; + 3-1307) + UNAME_MACHINE="alphaev7" + ;; esac fi rm -f $dummy.s $dummy && rmdir $tmpdir @@ -443,6 +446,9 @@ EOF Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit 0 ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit 0 ;; Night_Hawk:*:*:PowerMAX_OS) echo powerpc-harris-powermax exit 0 ;; @@ -875,7 +881,7 @@ EOF ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" - exit 0 ;; + exit 0 ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" exit 0 ;; @@ -986,6 +992,9 @@ EOF # "miniframe" echo m68010-convergent-sysv exit 0 ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + 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 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0) @@ -1079,6 +1088,9 @@ EOF SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit 0 ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux${UNAME_RELEASE} + exit 0 ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit 0 ;; @@ -1099,7 +1111,7 @@ EOF *:QNX:*:4*) echo i386-pc-qnx exit 0 ;; - NSR-[GKLNPTVW]:NONSTOP_KERNEL:*:*) + NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit 0 ;; *:NonStop-UX:*:*) diff -uprN binutils-2.13.90.0.4/config.sub binutils-2.13.90.0.10/config.sub --- binutils-2.13.90.0.4/config.sub Wed Jul 17 11:38:29 2002 +++ binutils-2.13.90.0.10/config.sub Fri Sep 27 08:33:09 2002 @@ -3,7 +3,7 @@ # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002 Free Software Foundation, Inc. -timestamp='2002-07-03' +timestamp='2002-09-12' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -233,7 +233,7 @@ case $basic_machine in | 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 \ + | clipper \ | d10v | d30v | dlx | dsp16xx \ | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ @@ -243,6 +243,7 @@ case $basic_machine in | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ + | mips64vr | mips64vrel \ | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ @@ -250,6 +251,7 @@ case $basic_machine in | mipsisa32 | mipsisa32el \ | mipsisa64 | mipsisa64el \ | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | ns16k | ns32k \ @@ -296,7 +298,7 @@ case $basic_machine in | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* \ | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c54x-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* \ | clipper-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ @@ -311,6 +313,7 @@ case $basic_machine in | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ + | mips64vr-* | mips64vrel-* \ | mips64orion-* | mips64orionel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ @@ -318,6 +321,7 @@ case $basic_machine in | mipsisa32-* | mipsisa32el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39 | mipstx39el \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ @@ -329,7 +333,7 @@ case $basic_machine in | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* | tic30-* | tic54x-* | tic80-* | tron-* \ + | tahoe-* | thumb-* | tic30-* | tic4x-* | tic54x-* | tic80-* | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ @@ -749,13 +753,13 @@ case $basic_machine in pbb) basic_machine=m68k-tti ;; - pc532 | pc532-*) + pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; - pentiumpro | p6 | 6x86 | athlon) + pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2) @@ -776,22 +780,22 @@ case $basic_machine in power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown - ;; + ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown - ;; + ;; 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/^[^-]*-//'` ;; @@ -822,6 +826,12 @@ case $basic_machine in basic_machine=a29k-amd os=-udi ;; + sb1) + basic_machine=mipsisa64sb1-unknown + ;; + sb1el) + basic_machine=mipsisa64sb1el-unknown + ;; sequent) basic_machine=i386-sequent ;; @@ -887,7 +897,7 @@ case $basic_machine in sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; - sv1) + sv1) basic_machine=sv1-cray os=-unicos ;; @@ -907,6 +917,10 @@ case $basic_machine in basic_machine=t90-cray os=-unicos ;; + tic4x | c4x*) + basic_machine=tic4x-unknown + os=-coff + ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff @@ -945,8 +959,8 @@ case $basic_machine in os=-vms ;; vpp*|vx|vx-*) - basic_machine=f301-fujitsu - ;; + basic_machine=f301-fujitsu + ;; vxworks960) basic_machine=i960-wrs os=-vxworks @@ -971,7 +985,7 @@ case $basic_machine in basic_machine=i386-pc os=-windows32-msvcrt ;; - xps | xps100) + xps | xps100) basic_machine=xps100-honeywell ;; ymp) @@ -1026,7 +1040,7 @@ case $basic_machine in sparc | sparcv9 | sparcv9b) basic_machine=sparc-sun ;; - cydra) + cydra) basic_machine=cydra-cydrome ;; orion) @@ -1041,10 +1055,6 @@ case $basic_machine in pmac | pmac-mpw) basic_machine=powerpc-apple ;; - c4x*) - basic_machine=c4x-none - os=-coff - ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; @@ -1176,7 +1186,7 @@ case $os in os=-rtmk-nova ;; -ns2 ) - os=-nextstep2 + os=-nextstep2 ;; -nsk*) os=-nsk @@ -1215,8 +1225,8 @@ case $os in -xenix) os=-xenix ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - os=-mint + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint ;; -none) ;; @@ -1253,7 +1263,7 @@ case $basic_machine in pdp10-*) os=-tops20 ;; - pdp11-*) + pdp11-*) os=-none ;; *-dec | vax-*) @@ -1346,19 +1356,19 @@ case $basic_machine in *-next) os=-nextstep3 ;; - *-gould) + *-gould) os=-sysv ;; - *-highlevel) + *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; - *-sgi) + *-sgi) os=-irix ;; - *-siemens) + *-siemens) os=-sysv4 ;; *-masscomp) diff -uprN binutils-2.13.90.0.4/configure binutils-2.13.90.0.10/configure --- binutils-2.13.90.0.4/configure Fri Jun 7 19:22:16 2002 +++ binutils-2.13.90.0.10/configure Wed Oct 2 10:17:19 2002 @@ -89,7 +89,7 @@ subdirs= target_alias=NOTARGET target_makefile_frag= undefs=NOUNDEFS -version="$Revision: 1.17 $" +version="$Revision: 1.24 $" x11=default bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' @@ -1356,8 +1356,7 @@ EOF rm -f ${subdir}/Makefile.tm2 sedtemp=sed.$$ cat >$sedtemp < ${subdir}/Makefile.tm2 @@ -1365,21 +1364,21 @@ EOF rm -f ${subdir}/Makefile.tem mv ${subdir}/Makefile.tm2 ${subdir}/Makefile.tem fi - sed -e "s|^prefix[ ]*=.*$|prefix = ${prefix}|" \ - -e "s|^exec_prefix[ ]*=.*$|exec_prefix = ${exec_prefix}|" \ - -e "s|^bindir[ ]*=.*$|bindir = ${bindir}|" \ - -e "s|^sbindir[ ]*=.*$|sbindir = ${sbindir}|" \ - -e "s|^libexecdir[ ]*=.*$|libexecdir = ${libexecdir}|" \ - -e "s|^datadir[ ]*=.*$|datadir = ${datadir}|" \ - -e "s|^sysconfdir[ ]*=.*$|sysconfdir = ${sysconfdir}|" \ - -e "s|^sharedstatedir[ ]*=.*$|sharedstatedir = ${sharedstatedir}|" \ - -e "s|^localstatedir[ ]*=.*$|localstatedir = ${localstatedir}|" \ - -e "s|^libdir[ ]*=.*$|libdir = ${libdir}|" \ - -e "s|^includedir[ ]*=.*$|includedir = ${includedir}|" \ - -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}|" \ + sed -e "s|@prefix@|${prefix}|" \ + -e "s|@exec_prefix@|${exec_prefix}|" \ + -e "s|@bindir@|${bindir}|" \ + -e "s|@sbindir@|${sbindir}|" \ + -e "s|@libexecdir@|${libexecdir}|" \ + -e "s|@datadir@|${datadir}|" \ + -e "s|@sysconfdir@|${sysconfdir}|" \ + -e "s|@sharedstatedir@|${sharedstatedir}|" \ + -e "s|@localstatedir@|${localstatedir}|" \ + -e "s|@libdir@|${libdir}|" \ + -e "s|@includedir@|${includedir}|" \ + -e "s|@oldincludedir@|${oldincludedir}|" \ + -e "s|@infodir@|${infodir}|" \ + -e "s|@mandir@|${mandir}|" \ + -e "s|@all_build_modules@|${all_build_modules}|" \ -e "/^CC[ ]*=/{ :loop1 /\\\\$/ N @@ -1408,20 +1407,18 @@ EOF t loop4 s%^CXXFLAGS[ ]*=.*$%CXXFLAGS = ${CXXFLAGS}% }" \ - -e "s|^SHELL[ ]*=.*$|SHELL = ${config_shell}|" \ - -e "s|^srcdir[ ]*=.*$|srcdir = ${makesrcdir}|" \ + -e "s|@config_shell@|${config_shell}|" \ + -e "s|@srcdir@|${makesrcdir}|" \ -e "s/ //" \ - -e "s:^program_prefix[ ]*=.*$:program_prefix = ${program_prefix}:" \ - -e "s:^program_suffix[ ]*=.*$:program_suffix = ${program_suffix}:" \ - -e "s:^program_transform_name[ ]*=.*$:program_transform_name = ${program_transform_name}:" \ - -e "s|^tooldir[ ]*=.*$|tooldir = ${tooldir}|" \ - -e "s|^build_tooldir[ ]*=.*$|build_tooldir = ${tooldir}|" \ - -e "s:^DEFAULT_YACC[ ]*=.*$:DEFAULT_YACC = ${DEFAULT_YACC}:" \ - -e "s:^DEFAULT_LEX[ ]*=.*$:DEFAULT_LEX = ${DEFAULT_LEX}:" \ - -e "s:^DEFAULT_M4[ ]*=.*$:DEFAULT_M4 = ${DEFAULT_M4}:" \ + -e "s:@program_transform_name@:${program_transform_name}:" \ + -e "s|@tooldir@|${tooldir}|" \ + -e "s|@build_tooldir@|${tooldir}|" \ + -e "s:@DEFAULT_YACC@:${DEFAULT_YACC}:" \ + -e "s:@DEFAULT_LEX@:${DEFAULT_LEX}:" \ + -e "s:@DEFAULT_M4@:${DEFAULT_M4}:" \ ${subdir}/Makefile.tem >> ${Makefile} - sed -e "s:^GDB_TK[ ]*=.*$:GDB_TK = ${GDB_TK}:" ${Makefile} >${Makefile}.tem + sed -e "s:@GDB_TK@:${GDB_TK}:" ${Makefile} >${Makefile}.tem mv -f ${Makefile}.tem ${Makefile} # If this is a Canadian Cross, preset the values of many more diff -uprN binutils-2.13.90.0.4/configure.in binutils-2.13.90.0.10/configure.in --- binutils-2.13.90.0.4/configure.in Thu Aug 8 22:49:55 2002 +++ binutils-2.13.90.0.10/configure.in Mon Oct 7 23:07:59 2002 @@ -80,22 +80,6 @@ target_tools="target-examples target-gro ################################################################################ -## These two lists are of directories that are to be removed from the -## ${configdirs} list for either cross-compilations or for native- -## compilations. For example, it doesn't make that much sense to -## cross-compile Emacs, nor is it terribly useful to compile target-libiberty in -## a native environment. - -# directories to be built in the native environment only -# -# This must be a single line because of the way it is searched by grep in -# the code below. -native_only="autoconf automake libtool fileutils find gawk gettext grep gzip hello indent m4 rcs recode sed shellutils tar textutils uudecode wdiff gprof target-groff guile perl time ash bash bzip2 prms snavigator gnuserv target-gperf" - -# directories to be built in a cross environment only -# -cross_only="target-libgloss target-newlib target-opcodes" - ## All tools belong in one of the four categories, and are assigned above ## We assign ${configdirs} this way to remove all embedded newlines. This ## is important because configure will choke if they ever get through. @@ -184,8 +168,12 @@ case ${with_x} in esac # Some tools are only suitable for building in a "native" situation. -# Remove these if host!=target. Similarly, some are only suitable -# for cross toolchains; remove if host=target. +# Remove these if host!=target. +native_only="autoconf automake libtool fileutils find gawk gettext grep gzip hello indent m4 rcs recode sed shellutils tar textutils uudecode wdiff gprof target-groff guile perl time ash bash bzip2 prms snavigator gnuserv target-gperf" + +# Similarly, some are only suitable for cross toolchains. +# Remove these if host=target. +cross_only="target-libgloss target-newlib target-opcodes" case $is_cross_compiler in no) skipdirs="${skipdirs} ${cross_only}" ;; @@ -277,7 +265,7 @@ case "${target}" in ;; *-*-netbsd*) # Skip some stuff on all NetBSD configurations. - skipdirs="$skipdirs target-newlib target-libiberty target-libgloss" + noconfigdirs="$noconfigdirs target-newlib target-libiberty target-libgloss" # Skip some stuff that's unsupported on some NetBSD configurations. case "${target}" in @@ -333,7 +321,7 @@ case "${target}" in noconfigdirs="$noconfigdirs expect dejagnu" # the C++ libraries don't build on top of CE's C libraries noconfigdirs="$noconfigdirs ${libstdcxx_version}" - skipdirs="$skipdirs target-newlib" + noconfigdirs="$noconfigdirs target-newlib" case "${host}" in *-*-cygwin*) ;; # keep gdb and readline *) noconfigdirs="$noconfigdirs gdb readline ${libstdcxx_version}" @@ -343,6 +331,12 @@ case "${target}" in arc-*-*) noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" ;; + arm-*-coff | strongarm-*-coff | xscale-*-coff) + noconfigdirs="$noconfigdirs ${libgcj}" + ;; + arm-*-elf* | strongarm-*-elf* | xscale-*-elf*) + noconfigdirs="$noconfigdirs target-libffi target-qthreads" + ;; arm-*-pe*) noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" ;; @@ -358,18 +352,6 @@ case "${target}" in thumb-*-oabi) noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" ;; - strongarm-*-elf) - noconfigdirs="$noconfigdirs ${libgcj}" - ;; - strongarm-*-coff) - noconfigdirs="$noconfigdirs ${libgcj}" - ;; - xscale-*-elf) - noconfigdirs="$noconfigdirs target-libffi target-qthreads" - ;; - xscale-*-coff) - noconfigdirs="$noconfigdirs ${libgcj}" - ;; thumb-*-pe) noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" ;; @@ -379,7 +361,7 @@ case "${target}" in avr-*-*) noconfigdirs="$noconfigdirs target-libiberty ${libstdcxx_version} ${libgcj}" ;; - c4x-*-*) + c4x-*-* | tic4x-*-*) noconfigdirs="$noconfigdirs ${libstdcxx_version} target-libgloss ${libgcj}" ;; c54x*-*-* | tic54x-*-*) @@ -439,10 +421,6 @@ case "${target}" in i[34567]86-*-freebsd*) noconfigdirs="$noconfigdirs target-newlib target-libgloss" ;; - s390*-*-linux*) - # The libffi port is not yet in the GCC tree - noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}" - ;; i[3456]86-*-linux*) # This section makes it possible to build newlib natively on linux. # If we are using a cross compiler then don't configure newlib. @@ -539,6 +517,9 @@ case "${target}" in powerpc-*-beos*) noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}" ;; + powerpc-*-darwin*) + noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes gdb tk itcl tix libgui gprof ${libgcj}" + ;; powerpc-*-eabi) noconfigdirs="$noconfigdirs ${libgcj}" ;; @@ -755,8 +736,7 @@ for dir in . $skipdirs $noconfigdirs ; d dirname=`echo $dir | sed -e s/target-//g` if test $dir != . && echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then configdirs=`echo " ${configdirs} " | sed -e "s/ ${dir} / /"` - if test -r $srcdir/$dirname/configure \ - || test -r $srcdir/$dirname/configure.in ; then + if test -r $srcdir/$dirname/configure ; then if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then true else @@ -766,8 +746,7 @@ for dir in . $skipdirs $noconfigdirs ; d fi if test $dir != . && echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then target_configdirs=`echo " ${target_configdirs} " | sed -e "s/ ${dir} / /"` - if test -r $srcdir/$dirname/configure \ - || test -r $srcdir/$dirname/configure.in ; then + if test -r $srcdir/$dirname/configure ; then if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then true else @@ -783,7 +762,7 @@ if test -n "${target_configdirs}" ; then others= for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do if test "$i" != "libiberty" ; then - if test -r $srcdir/$i/configure || test -r $srcdir/$i/configure.in ; then + if test -r $srcdir/$i/configure ; then others=yes; break; fi @@ -876,36 +855,41 @@ esac copy_dirs= -# Handle --with-headers=XXX. The contents of the named directory are -# copied to $(tooldir)/sys-include. +# Handle --with-headers=XXX. If the value is not "yes", the contents of +# the named directory are copied to $(tooldir)/sys-include. if test x"${with_headers}" != x ; then if test x${is_cross_compiler} = xno ; then echo 1>&2 '***' --with-headers is only supported when cross compiling exit 1 fi - case "${exec_prefixoption}" in - "") x=${prefix} ;; - *) x=${exec_prefix} ;; - esac - copy_dirs="${copy_dirs} ${with_headers} $x/${target_alias}/sys-include" + if test x"${with_headers}" != xyes ; then + case "${exec_prefixoption}" in + "") x=${prefix} ;; + *) x=${exec_prefix} ;; + esac + copy_dirs="${copy_dirs} ${with_headers} $x/${target_alias}/sys-include" + fi fi -# Handle --with-libs=XXX. Multiple directories are permitted. The -# contents are copied to $(tooldir)/lib. +# Handle --with-libs=XXX. If the value is not "yes", the contents of +# the name directories are copied to $(tooldir)/lib. Multiple directories +# are permitted. if test x"${with_libs}" != x ; then if test x${is_cross_compiler} = xno ; then echo 1>&2 '***' --with-libs is only supported when cross compiling exit 1 fi - # Copy the libraries in reverse order, so that files in the first named - # library override files in subsequent libraries. - case "${exec_prefixoption}" in - "") x=${prefix} ;; - *) x=${exec_prefix} ;; - esac - for l in ${with_libs}; do - copy_dirs="$l $x/${target_alias}/lib ${copy_dirs}" - done + if test x"${with_libs}" != xyes ; then + # Copy the libraries in reverse order, so that files in the first named + # library override files in subsequent libraries. + case "${exec_prefixoption}" in + "") x=${prefix} ;; + *) x=${exec_prefix} ;; + esac + for l in ${with_libs}; do + copy_dirs="$l $x/${target_alias}/lib ${copy_dirs}" + done + fi fi # Handle ${copy_dirs} @@ -1127,25 +1111,6 @@ if test -n "${host_makefile_frag}" ; the host_makefile_frag=mh-frag fi -# If we aren't going to be using gcc, see if we can extract a definition -# of CC from the fragment. -# Actually, use the 'pre-extracted' version above. -if test -z "${CC}" && test "${build}" = "${host}" ; then - IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" - found= - for dir in $PATH; do - test -z "$dir" && dir=. - if test -f $dir/gcc; then - found=yes - break - fi - done - IFS="$save_ifs" - if test -z "${found}" && test -n "${tentative_cc}" ; then - CC=$tentative_cc - fi -fi - case "${target}" in v810*) target_makefile_frag="config/mt-v810" @@ -1282,6 +1247,25 @@ case "${host}" in ;; esac +# If we aren't going to be using gcc, see if we can extract a definition +# of CC from the fragment. +# Actually, use the 'pre-extracted' version above. +if test -z "${CC}" && test "${build}" = "${host}" ; then + IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" + found= + for dir in $PATH; do + test -z "$dir" && dir=. + if test -f $dir/gcc; then + found=yes + break + fi + done + IFS="$save_ifs" + if test -z "${found}" && test -n "${tentative_cc}" ; then + CC=$tentative_cc + fi +fi + # post-target: # Make sure that the compiler is able to generate an executable. If it @@ -1337,20 +1321,23 @@ esac # If --enable-shared was set, we must set LD_LIBRARY_PATH so that the # binutils tools will find libbfd.so. if test "${shared}" = "yes" ; then - sed -e 's/^SET_LIB_PATH[ ]*=.*$/SET_LIB_PATH = $(REALLY_SET_LIB_PATH)/' \ - Makefile > Makefile.tem - rm -f Makefile - mv -f Makefile.tem Makefile - - case "${host}" in - *-*-hpux*) - sed -e 's/^RPATH_ENVVAR[ ]*=.*$/RPATH_ENVVAR = SHLIB_PATH/' \ - Makefile > Makefile.tem - rm -f Makefile - mv -f Makefile.tem Makefile - ;; - esac + SET_LIB_PATH="\$(REALLY_SET_LIB_PATH)" +else + SET_LIB_PATH= fi +sed -e "s/@SET_LIB_PATH@/${SET_LIB_PATH}/" Makefile > Makefile.tem +rm -f Makefile +mv -f Makefile.tem Makefile + + +case "${host}" in + *-*-hpux*) RPATH_ENVVAR=SHLIB_PATH ;; + *) RPATH_ENVVAR=LD_LIBRARY_PATH ;; +esac +sed -e "s/@RPATH_ENVVAR@/${RPATH_ENVVAR}/" Makefile > Makefile.tem +rm -f Makefile +mv -f Makefile.tem Makefile + # Base args. Strip norecursion, cache-file, srcdir, host, build, target. # These are the ones we might not want to pass down to subconfigures. @@ -1551,17 +1538,17 @@ qqCXX_FOR_TARGET=`echo "$qCXX_FOR_TARGET sedtemp=sed.$$ cat >$sedtemp < Makefile.tem rm -f Makefile $sedtemp diff -uprN binutils-2.13.90.0.4/gas/ChangeLog binutils-2.13.90.0.10/gas/ChangeLog --- binutils-2.13.90.0.4/gas/ChangeLog Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/gas/ChangeLog Thu Oct 10 09:16:57 2002 @@ -1,3 +1,839 @@ +Thu Oct 10 14:31:30 2002 J"orn Rennecke + + * config/tc-sh.c (assemble_ppi): Initialize reg_x / reg_y / reg_n + inside loop. + +2002-10-09 Richard Shann + Stephen Clarke + + * config/tc-sh64.c (sh64_target_format): Add support for sh64 + Linux environment. + +2002-10-03 Kaz Kojima + + * contig/tc-sh.c (sh_local_pcrel): New. + (sh_force_relocation): Use sh_local_pcrel. + (md_pcrel_from_section): Check the relocation type whether it + should be resolved locally. Use S_FORCE_RELOC. + +2002-10-01 Alan Modra + + * config/tc-mips.h (TC_FORCE_RELOCATION_SUB_SAME): Define. + (TC_FORCE_RELOCATION): Tidy arg. + +2002-09-30 Gavin Romig-Koch + Ken Raeburn + Aldy Hernandez + DJ Delorie + Michael Meissner + Eric Christopher + Richard Sandiford + + * doc/c-mips.texi: Add entries for -march=vr4120,vr4130,vr4181, + vr5400 and vr5500. Add entry for -mfix-vr4122-bugs. + * config/tc-mips.c (CPU_HAS_DROR, CPU_HAS_ROR): New macros. + (hilo_interlocks): True for CPU_VR5500. + (gpr_interlocks, cop_interlocks): True for CPU_VR5400 and CPU_VR5500. + (mips_fix_vr4122_bugs): New. + (append_insn): Work around 4122 errors if mips_fix_vr4122_bugs. + (mips_emit_delays): Likewise. + (macro2) [M_DROLI]: Use dror or dror32 if CPU_HAS_DROR. + [M_ROLI]: Likewise ror if CPU_HAS_ROR. + (validate_mips_insn, mips_ip): Handle '[', ']', 'e' and '%'. + (OPTION_FIX_VR4122, OPTION_NO_FIX_VR4122): New options. + (md_longopts): Add -mfix-vr4122-bugs and -no-mfix-vr4122-bugs. + (OPTION_ELF_BASE): Bump. + (md_parse_option): Handle the new options. + (mips_cpu_info_table): Add entries for vr4120, vr4130, vr4181, + vr5400 and vr5500. + +2002-09-29 H.J. Lu + + * config/tc-mips.c (md_apply_fix3): Subtract the symbol value + twice if howto->pcrel_offset is true. + +2002-09-28 Matt Thomas + Jason Thorpe + + * config/tc-vax.c (md_estimate_size_before_relax): Only try to + convert undefined references to GOT32/PLT32 if PIC code is + requested. Fix comment. + +2002-09-27 Kaz Kojima + + * config/tc-sh.c (sh_force_relocation): Return 0 for + some PC relative relocations when not relaxing. + +2002-09-26 Jakub Jelinek + + * config/tc-i386.c (tc_i386_fix_adjustable): Add x86-64 TLS relocs. + Define them if not BFD_ASSEMBLER. + (lex_got): Handle @tlsgd, @dtpoff and @tpoff in 64-bit mode, add + @tlsld. + (md_apply_fix3): No addend for BFD_RELOC_X86_64_TLSGD, + BFD_RELOC_X86_64_TLSLD and BFD_RELOC_X86_64_GOTTPOFF. + (tc_gen_reloc): Handle x86-64 TLS relocs. + +2002-09-27 Alan Modra + + * config/tc-avr.c (md_apply_fix3): Reinstate code handling pcrel + fixups to current or absolute section. + +2002-09-26 Jim Wilson + + * config/tc-v850.c (v850_offset): Use frag_var instead of frag_now_fix + and frag_more. + +2002-09-26 Thiemo Seufer + + * config/tc-mips.c (CPU_HAS_MIPS16): Add mips-lsi-elf as MIPS16 + capable configuration. + (macro_build): Check for MIPS16 capability, not for actual MIPS16 code + generation. + (mips_ip): Likewise. + +2002-09-26 Thiemo Seufer + + * config/tc-mips.c (append_insn): Fix jump overflow check. + +2002-09-24 Alan Modra + + * config/tc-i386.c (process_operands): Warn about "lea" segment + overrides. + +2002-09-22 Mark Elbrecht + + * write.c: Delete set_segment_vma and prototype. Update all callers. + +2002-09-21 Alan Modra + + * config/tc-i386.c (md_apply_fix3): Replace S_IS_EXTERNAL, + S_IS_WEAK etc. with S_FORCE_RELOC call. Correct comment. + Rename "fseg" to "sym_seg". + * Makefile.am: Run "make dep-am". + * Makefile.in: Regenerate. + * doc/Makefile.in: Regenerate. + +2002-09-20 Nick Clifton + + * symbols.c (colon): Do not allow symbols to be created in the + absolute section if WORKING_DOT_WORD is not defined and + new_broken_words would require a new frag to be created. + +2002-09-20 Alan Modra + + * expr.c (expr): Simplify foo-foo here. + (clean_up_expression): Remove O_subtract code. + + * write.h (struct fix): Add fx_dot_value. + (dot_value): Declare. + * write.c (dot_value): New var. + (fix_new_internal): Save dot_value as fx_dot_value. + (fixup_segment): Adjust fx_offset using fx_dot_value. + * expr.c (expr): Update dot_value. + +2002-09-19 Jakub Jelinek + + * config/tc-i386.c (tc_i386_fix_adjustable): Handle + BFD_RELOC_386_TLS_IE and BFD_RELOC_386_TLS_GOTIE. + (BFD_RELOC_386_TLS_IE, BFD_RELOC_386_TLS_GOTIE): Define to 0 + if not defined. + (lex_got): Handle @GOTNTPOFF and @INDNTPOFF. + (md_apply_fix3, tc_gen_reloc): Handle BFD_RELOC_386_TLS_IE and + BFD_RELOC_386_TLS_GOTIE. + +2002-09-19 Richard Henderson + + * config/tc-alpha.c (md_pcrel_from): Only adjust special for + branch type relocs. + (alpha_force_relocation): Don't special-case branch type relocs. + +2002-09-19 Nick Clifton + + * config/tc-m68k.c (select_control_regs): Handle situation where + architecture has not yet been selected. + +2002-09-18 Chris Demetriou + + * config/tc-mips.c (IS_SEXT_32BIT_NUM): Move closer to top of file. + (IS_SEXT_16BIT_NUM): New macro. + (macro_build_ldst_constoffset): New function, to build a set of + instructions to do a load or store from a constant offset relative + to a given register. + (macro, s_cprestore): Use macro_build_ldst_constoffset to implement + .cprestore pseudo-op. + +2002-09-18 Chris Demetriou + + * config/tc-mips.c (md_apply_fix3): Just return for BFD_RELOC_8. + +2002-09-18 Thiemo Seufer + + * config/tc-mips.c (s_change_section): Fix parsing. Code cleanup. + +2002-09-17 Stan Cox + + * tc-mips.c (load_address): Use BFD_RELOC_MIPS_GOT_DISP for newabi. + (macro): Likewise for la. Likewise for ld. + (mips_after_parse_args): Make -xgot optional, not the default. + (md_apply_fix3): Allow composite relocation to set up gp. + (tc_gen_reloc): Allow relaxing for newabi. + Relax R_MIPS_CALL16 to R_MIPS_GOT_PAGE/R_MIPS_GOT_OFST if local. + Relax R_MIPS_GOT16/R_MIPS_LO16 to R_MIPS_GOT_DISP if local. + +2002-09-17 Nick Clifton + + * config/tc-arm.c (md_apply_fix3): Note that an implemented + BFD_RELOC_ARM_IMMEDIATE has been done. + (tc_gen_reloc): Do not issue reloc number of unimplemented + BFD_RELOC_ARM_IMMEDIATE and BFD_RELOC_ARM_OFFSET_IMM relocs - + their name is already in the error message - plus remove them + from the default case. + + * config/tc-arm.c (do_ldmstm): Warn about unpredictable + behavior of instructions. + +2002-09-17 Svein E. Seldal + + * config/tc-tic4x.c: Add function declarations and ATTRIBUTE_UNUSED. + Convert functions to K&R format. + +2002-09-17 Thiemo Seufer + + * config/tc-mips.c (pdr_seg): Define only for ELF. + (s_change_section): Remove unused variable. Don't use for nonELF. + +2002-09-17 Thiemo Seufer + + * config/obj-elf.c (obj_elf_change_section): Move prototype to + obj-elf.h + * config/obj-elf.h (obj_elf_change_section): Likewise. + +2002-09-16 Elias Athanasopoulos + + * dwarf2dbg.c (out_debug_abbrev): Add support for the DW_AT_name field. + (out_debug_info): Likewise. + +2002-09-16 Bruno Haible + + * config/tc-i386.h (ELF_TARGET_FORMAT): New macro. + (TARGET_FORMAT): Use ELF_TARGET_FORMAT instead of "elf32-i386". + * config/tc-i386.c (i386_target_format): Likewise. + * config/tc-alpha.h (ELF_TARGET_FORMAT): New macro. + (TARGET_FORMAT): Use ELF_TARGET_FORMAT instead of "elf64-alpha". + +2002-09-13 Nick Clifton + + * config/tc-ppc.c (md_assemble): Do not count FAKE operands + when deciding if any operands have been skipped. + +2002-09-11 Nick Clifton + + * NEWS: New TI port supports both C4x and C3x series of DSPs. + + * po/tr.po: Updated Turkish translation. + +2002-09-11 Jakub Jelinek + + * config/tc-i386.c (md_apply_fix3): Allow addend for + BFD_RELOC_386_TLS_LDO_32, BFD_RELOC_386_TLS_LE and + BFD_RELOC_386_TLS_LE_32. + +2002-09-05 Jeff Law + + * config/tc-hppa.c (md_apply_fix3): Don't set fx_done for + marker relocations such as ENTRY/EXIT. + * config/tc-hppa.h (MD_APPLY_SYM_VALUE): Definition applies + to both OBJ_ELF and OBJ_SOM. + +2002-09-05 Alan Modra + + * doc/internals.texi (md_apply_fix3): Expand. + (TC_VALIDATE_FIX, TC_FORCE_RELOCATION, TC_FORCE_RELOCATION_ABS, + TC_FORCE_RELOCATION_LOCAL, TC_FORCE_RELOCATION_SUB_SAME, + TC_FORCE_RELOCATION_SUB_ABS, TC_FORCE_RELOCATION_SUB_LOCAL, + TC_VALIDATE_FIX_SUB, MD_APPLY_SYM_VALUE, S_FORCE_RELOC, + EXTERN_FORCE_RELOC): Document. + (TC_HANDLES_FX_DONE, obj_fix_adjustable): Remove. + * as.h: Don't include struc-symbol.h for arc. + (IS_ELF): Define. + * cgen.c (gas_cgen_md_apply_fix3): Remove *valP fudges and code to + subtract absolute symbol. + * obj.h (struct format_ops): Add frob_file_before_fix. + * subsegs.c (section_symbol): Set BSF_SECTION_SYM flag. + * symbols.c (S_FORCE_RELOC): New function. + * symbols.h (S_FORCE_RELOC): Declare. + * write.c (TC_FORCE_RELOCATION): Change default. + (TC_FORCE_RELOCATION_ABS): Define. + (TC_RELOC_RTSYM_LOC_FIXUP): Don't define. + (TC_FORCE_RELOCATION_LOCAL): Define this instead. + (TC_FORCE_RELOCATION_SECTION): Don't define. + (TC_FORCE_RELOCATION_SUB_SAME): Define this instead. + (TC_FORCE_RELOCATION_SUB_ABS): Define. + (TC_FORCE_RELOCATION_SUB_LOCAL): Define. + (TC_VALIDATE_FIX_SUB): Define. + (TC_FIX_ADJUSTABLE): Don't define. + (MD_APPLY_SYM_VALUE): Define this instead. + (abs_section_sym): New variable. + (adjust_reloc_syms): Use S_FORCE_RELOC. Remove obj_fix_adjustable + call. Don't symbol_mark_used_in_reloc here. Simplify link_once tests. + Don't put the absolute section sym on fixups here. + (fix_segment): New function. + (write_relocs): Don't call fixup_segment from here. + (write_object_file): Instead call tc_frob_file_before_fix, + obj_frob_file_before_fix, and fix_segment prior to symbol table code. + Don't output the absolute section symbol. + (fixup_segment): Rewrite. + * write.h (abs_section_sym): Declare. + * config/obj-aout.c (obj_aout_frob_file_before_fix): Rename from + obj_aout_frob_file. + (aout_format_ops): Adjust to suit. + * config/obj-aout.h (obj_frob_file): Don't define. + (obj_frob_file_before_fix): Define. + (obj_aout_frob_file_before_fix): Rename from obj_aout_frob_file. + (S_FORCE_RELOC): Define. + * config/obj-bout.h (S_FORCE_RELOC): Define. + * config/obj-coff.c (coff_format_ops): Init new field. + * config/obj-coff.h: Formatting fixes. + (obj_sec_sym_ok_for_reloc): Define. + (S_FORCE_RELOC): Define. + * config/obj-ecoff.c (ecoff_frob_file_before_fix): Split out .. + (ecoff_frob_file): .. from here. + (ecoff_format_ops): Add new function. + * config/obj-ecoff.h (ecoff_frob_file_before_fix): Declare. + (obj_frob_file_before_fix): Define. + * config/obj-elf.c (elf_format_ops): Init new field. + * config/obj-elf.h (obj_sec_sym_ok_for_reloc): Expand comment. + * config/obj-ieee.h: Formatting fixes. + (S_FORCE_RELOC): Define. + * config/obj-multi.h (obj_frob_file_before_fix): Define. + * config/obj-vms.h (S_FORCE_RELOC): Define. + * config/tc-alpha.c (md_apply_fix3): Correct GPDISP comment. + (alpha_force_relocation): Use S_FORCE_RELOC, and don't return 0 + for BFD_RELOC_32 and BFD_RELOC_64. + (alpha_fix_adjustable): Remove extern and weak tests. + (alpha_before_fix): Rename from alpha_adjust_symtab. + (alpha_adjust_relocs): Rename from alpha_adjust_symtab_relocs. + * config/tc-alpha.h (struct fix, struct alpha_reloc_tag): Declare. + (TC_VALIDATE_FIX): Tweak param name. + (TC_FORCE_RELOCATION, tc_fix_adjustable): Likewise. + (TC_RELOC_RTSYM_LOC_FIXUP): Don't define. + (TC_FORCE_RELOCATION_LOCAL): Define this instead. + (MD_APPLY_SYM_VALUE): Define. + (tc_adjust_symtab): Don't define. + (alpha_adjust_symtab): Don't declare. + (tc_frob_file_before_fix): Define. + (alpha_before_fix): Declare. + (TC_INIT_FIX_DATA): Tweak param names. + * config/tc-arc.c: Include "struc-symbol.h". + (md_pcrel_from): Remove undefined sym fudge. + (md_apply_fix3): Remove *valP fudges and code to subtract abs sym. + Don't set fx_addnumber. + (tc_gen_reloc): Remove spurious fx_addnumber comment. + * config/tc-arc.h (MD_APPLY_SYM_VALUE): Define. + (EXTERN_FORCE_RELOC): Define. + * config/tc-arm.c (md_apply_fix3 ): Remove. + (tc_gen_reloc): Fudge ARM_GOTPC addend. + (arm_validate_fix): Return void. + (arm_fix_adjustable ): Remove extern and weak tests. + Add plt and got reloc tests. + (arm_force_relocation): Call S_FORCE_RELOC. + * config/tc-arm.h (struct fix): Forward declare. + (TC_VALIDATE_FIX): No longer set add_symbolP. + (arm_validate_fix): Adjust declaration. + (TC_FORCE_RELOCATION ): Call i386_force_relocation. + (i386_force_relocation): Declare. + (TC_RELOC_RTSYM_LOC_FIXUP): Don't define. + (TC_FORCE_RELOCATION_LOCAL): Define this instead. + (TC_FORCE_RELOCATION ): Call S_FORCE_RELOC. + * config/tc-i860.c (md_apply_fix3): Don't cast valP pointer type. + * config/tc-i860.h (MD_APPLY_SYM_VALUE): Define. + (EXTERN_FORCE_RELOC): Define. + * config/tc-i960.c (reloc_callj): Remove declaration. Return false. + (md_apply_fix3): Don't cast valP pointer type. Move code here from + old fixup_segment. No need to test fx_pcrel before setting fx_done. + (i960_validate_fix): Remove add_symbolPP arg and add_symbolP macro. + Use fx_addsy instead of add_symbolP, as_bad_where instead of as_bad. + Remove #if 0 code. Invert return boolean. + * config/tc-i960.h (TC_COUNT_RELOC): Tweak param name. + (TC_COFF_FIX2RTYPE, TC_ADJUST_RELOC_COUNT, TC_VALIDATE_FIX): Likewise. + (tc_headers_hook, tc_coff_fix2rtype): Remove declaration. + (tc_coff_sizemachdep): Prototype. + (i960_handle_align): Likewise. + (i960_validate_fix): Adjust declaration. + (reloc_callj): Likewise. + (EXTERN_FORCE_RELOC): Define. + (TC_FORCE_RELOCATION_SUB_SAME): Define. + (TC_FORCE_RELOCATION_ABS): Define. + (TC_RELOC_RTSYM_LOC_FIXUP): Don't define. + (TC_FORCE_RELOCATION_LOCAL): Define this instead. + (TC_FIX_ADJUSTABLE): Don't define. + (MD_APPLY_SYM_VALUE): Define. + * config/tc-ia64.c (ia64_force_relocation): Call S_FORCE_RELOC. + * config/tc-ia64.h (MD_APPLY_SYM_VALUE): Define. + (TC_RELOC_RTSYM_LOC_FIXUP): Don't define. + (TC_FORCE_RELOCATION_LOCAL): Define this instead. + * config/tc-ip2k.c (ip2k_force_relocation): Call S_FORCE_RELOC. + * config/tc-ip2k.h (MD_APPLY_FIX3): Don't define. + (MD_APPLY_SYM_VALUE): Define. + (EXTERN_FORCE_RELOC): Define. + (TC_FORCE_RELOCATION): Tweak param name. + * config/tc-m32r.c (m32r_force_relocation): Call S_FORCE_RELOC. + (m32r_fix_adjustable): Don't test extern, weak. + * config/tc-m32r.h (MD_PCREL_FROM_SECTION): Tweak param name. + (MD_APPLY_SYM_VALUE): Define. + (obj_fix_adjustable): Don't define. + (tc_fix_adjustable): Define. + (tc_frob_file): Don't define. + (tc_frob_file_before_fix): Define. + (EXTERN_FORCE_RELOC): Define. + * config/tc-m68hc11.c (tc_gen_reloc): Set addend to zero. Adjust + BFD_RELOC_VTABLE_ENTRY address. + (tc_m68hc11_force_relocation): Call S_FORCE_RELOC. + (tc_m68hc11_fix_adjustable): Don't test relaxable_symbol. + (md_apply_fix3): Remove *valP fudges and code to subtract abs sym. + Remove duplicated fx_done code. + * config/tc-m68hc11.h (MD_APPLY_SYM_VALUE): Define. + (EXTERN_FORCE_RELOC): Define. + * config/tc-m68k.c (tc_m68k_fix_adjustable): Don't test + relaxable_symbol. + * config/tc-m68k.h (TC_COFF_FIX2RTYPE): Tweak param name. + (TC_RELOC_RTSYM_LOC_FIXUP): Don't define. + (TC_FIX_ADJUSTABLE): Don't define. + (EXTERN_FORCE_RELOC): Define. + (MD_APPLY_SYM_VALUE): Define. + (TC_FORCE_RELOCATION): Call S_FORCE_RELOC. + * config/tc-mcore.c (md_apply_fix3): Don't cast valP pointer type. + Remove fx_addsy tests. + (mcore_force_relocation): Call S_FORCE_RELOC. + (mcore_fix_adjustable): Don't test fx_addsy. + * config/tc-mcore.h (MD_PCREL_FROM_SECTION): Tweak param name. + (EXTERN_FORCE_RELOC): Define. + (obj_fix_adjustable): Don't define. + (tc_fix_adjustable): Define. + (MD_APPLY_SYM_VALUE): Define. + * config/tc-mips.c (enum mips_pic_level): Move to tc-mips.h. + (mips_pic): No longer static. + (mips_force_relocation): Call S_FORCE_RELOC. + (mips_fix_adjustable): Remove extern, weak tests. + * config/tc-mips.h (enum mips_pic_level): Declare. + (mips_pic): Declare. + (tc_frob_file): Don't define. + (tc_frob_file_before_fix): Define this instead. + (EXTERN_FORCE_RELOC): Define. + * config/tc-mmix.c (md_apply_fix3): Replace real_reg_section tests + with reg_section tests. Set fx_done instead of calling + symbol_clear_used_in_reloc on bad relocs. + (tc_gen_reloc): Zero fx_addsy on bad relocs. + (mmix_force_relocation): Remove weak sym test. Call S_FORCE_RELOC. + (mmix_adjust_symtab): Simplify list handling. Abort on any + nonsense. + * config/tc-mmix.h (tc_fix_adjustable): Remove weak tests. Check + BFD_RELOC_MMIX_LOCAL. + (tc_frob_symbol): Keep user defined syms in reg_section. Don't punt. + (EXTERN_FORCE_RELOC): Define. + (MD_PCREL_FROM_SECTION): Tweak param name. + (tc_frob_file): Don't define. + (tc_frob_file_before_fix): Define this instead. + * config/tc-mn10300.c (mn10300_force_relocation): Call S_FORCE_RELOC. + Remove SEC_CODE checks. + (mn10300_fix_adjustable): Remove extern and weak tests. + * config/tc-mn10300.h (EXTERN_FORCE_RELOC): Define. + (TC_FORCE_RELOCATION): Tweak param name. + (obj_fix_adjustable): Don't define. + (TC_FORCE_RELOCATION_SUB_SAME): Define to handle SEC_CODE. + * config/tc-ns32k.h (TC_FIX_DATA_PRINT): Tweak param name. + * config/tc-openrisc.c (openrisc_force_relocation): Call S_FORCE_RELOC. + (openrisc_fix_adjustable): Don't test fx_addsy. + * config/tc-openrisc.h (MD_APPLY_SYM_VALUE): Define. + (obj_fix_adjustable): Don't define. + (tc_fix_adjustable): Define this instead. + (MD_PCREL_FROM_SECTION): Remove duplicate. Tweak param name. + * config/tc-or32.c (md_apply_fix3): Don't cast valP pointer type. + (tc_gen_reloc): Don't fiddle with BFD_RELOC_VTABLE_INHERIT relocs. + Adjust the address for BFD_RELOC_VTABLE_ENTRY, not the addend. + * config/tc-or32.h (EXTERN_FORCE_RELOC): Define. + (MD_APPLY_SYM_VALUE): Define. + * config/tc-pj.c (md_apply_fix3): Don't cast valP pointer type. + Don't subtract symbol value. + * config/tc-pj.h (md_pcrel_from): Tweak param name. + (EXTERN_FORCE_RELOC): Define. + (TC_FORCE_RELOCATION): Call S_FORCE_RELOC. + (MD_APPLY_SYM_VALUE): Define. + (obj_fix_adjustable): Don't define. + (tc_fix_adjustable): Define this instead. + * config/tc-ppc.c (ppc_frob_symbol ): Ignore absolute + section sym. + (ppc_force_relocation ): Call S_FORCE_RELOC. + (ppc_force_relocation ): New. + (ppc_fix_adjustable ): Remove extern and weak tests. + (md_apply_fix3): Don't subtract symbol values for ELF. Update + comments. Don't subtract fx_subsy as that is already done. + * config/tc-ppc.h (tc_fix_adjustable): Tweak param name. + (MD_PCREL_FROM_SECTION): Likewise. + (TC_FORCE_RELOCATION): Define for both ELF and XCOFF as calling + ppc_force_relocation. + (TC_FORCE_RELOCATION_SECTION): Delete. + (TC_RELOC_RTSYM_LOC_FIXUP): Don't define. + (TC_FORCE_RELOCATION_LOCAL): Define this instead. + (MD_APPLY_SYM_VALUE): Define. + * config/tc-s390.c: #include "dwarf2dbg.h". + (s390_insn): Remove excess parens. + (tc_s390_fix_adjustable): Remove extern, weak, SEC_MERGE tests. + (tc_s390_force_relocation): Call S_FORCE_RELOC. + (md_apply_fix3): Add ATTRIBUTE_UNUSED on "seg". Abort when fx_subsy + non-NULL. Don't subtract off fx_addsy value. + * config/tc-s390.h (TC_RELOC_RTSYM_LOC_FIXUP): Don't define. + (TC_FORCE_RELOCATION, MD_PCREL_FROM_SECTION): Tweak param name. + (TC_FIX_ADJUSTABLE): Don't define. + (MD_APPLY_SYM_VALUE): Define. + * config/tc-sh.c (SWITCH_TABLE_CONS): Move to tc-sh.h. + (SWITCH_TABLE): Likewise. + (sh_force_relocation): Call S_FORCE_RELOC. + (sh_fix_adjustable): Remove "return 1" cases handled by the default. + Replace TC_RELOC_RTSYM_LOC_FIXUP with reloc type tests. + (md_apply_fix3 ): Simplify, + fx_addnumber is zero on entry. Save val in fx_addnumber. + (tc_gen_reloc): Don't subtract fx_subsy. + * config/tc-sh.h (struct fix): Move. + (obj_fix_adjustable): Don't define. + (tc_fix_adjustable): Define this instead. + (TC_FIX_ADJUSTABLE): Don't define. + (MD_APPLY_SYM_VALUE): Define. + (SWITCH_TABLE_CONS): Define. + (SWITCH_TABLE): Define. + (TC_FORCE_RELOCATION_SUB_SAME): Define. + (TC_VALIDATE_FIX_SUB): Define. + (MD_PCREL_FROM_SECTION): Tweak param name. + (TC_RELOC_RTSYM_LOC_FIXUP): Don't define. + (TC_FORCE_RELOCATION_LOCAL): Define this instead. + (TC_FORCE_RELOCATION_SUB_ABS): Define. + * config/tc-sh64.h (TC_RELOC_RTSYM_LOC_FIXUP): Don't define. + (TC_FORCE_RELOCATION_LOCAL): Define this instead. + (TC_FORCE_RELOCATION_SUB_SAME): Define. + (TC_VALIDATE_FIX_SUB): Define. + (MD_PCREL_FROM_SECTION): Tweak param name. + * config/tc-sparc.c (md_apply_fix3): Don't subtract off symbol value. + (tc_gen_reloc): Use S_FORCE_RELOC. + (elf32_sparc_force_relocation): Call S_FORCE_RELOC. + * config/tc-sparc.h (TC_FORCE_RELOCATION ): Remove. + (TC_FORCE_RELOCATION_ABS): Define this instead. + (TC_RELOC_RTSYM_LOC_FIXUP): Don't define. + (TC_FORCE_RELOCATION_LOCAL): Define this instead. + (tc_fix_adjustable): Remove extern and weak tests. Use S_FORCE_RELOC. + (MD_APPLY_SYM_VALUE): Define. + (TC_FIX_DATA_PRINT): Tweak param name. + * config/tc-tic30.c (USE_STDOUT): Don't define. + (md_parse_option): Remove stupid debug code. + (tc_gen_reloc): Don't use fx_addnumber. + * config/tc-v850.c (v850_fix_adjustable): Remove extern and weak tests. + (v850_force_relocation): Remove weak test. Call S_FORCE_RELOC. + * config/tc-v850.h (obj_fix_adjustable): Don't define. + (tc_fix_adjustable): Define this instead. + (TC_FIX_ADJUSTABLE): Don't define. + (MD_APPLY_SYM_VALUE): Define this instead. + (TC_FORCE_RELOCATION, MD_PCREL_FROM_SECTION): Tweak param name. + * config/tc-vax.h (TC_RELOC_RTSYM_LOC_FIXUP): Don't define. + (TC_FIX_ADJUSTABLE): Don't define. + (MD_APPLY_SYM_VALUE): Define this instead. + (tc_fix_adjustable): Remove extern and weak tests. + * config/tc-w65.h (struct fix): Forward declare. + * config/tc-xstormy16.c (xstormy16_force_relocation): Call + S_FORCE_RELOC. + (xstormy16_fix_adjustable): Remove extern and weak tests. Don't + call xstormy16_force_relocation; Instead test for FPTR16 reloc. + (xstormy16_md_apply_fix3): Remove *valP fudges and code to subtract + absolute symbol. + * config/tc-xstormy16.h (MD_APPLY_FIX3): Don't define. + (MD_APPLY_SYM_VALUE): Define. + (obj_fix_adjustable): Don't define. + (tc_fix_adjustable): Define this instead. + (MD_PCREL_FROM_SECTION): Remove duplicate. Tweak param name. + +2002-09-04 Alan Modra + + * config/tc-ppc.c (ppc_frob_symbol): Formatting, warning fix. + (ppc_fix_adjustable ): Cleanup. + + * config/tc-ppc.c (PPC_HIGHER, PPC_HIGHEST): Fix warning. + (md_parse_option): No -a64 without BFD64. + (ppc_set_cpu): Select appropriate cpu when ppc_obj64. + (ppc_arch): Use bfd_mach_rs6k for bfd_arch_rs6000. + +2002-09-04 Nick Clifton + + * config/tc-ppc.c (md_begin): Do not insert non-BookE32 + instructions into the hash table if the target cpu is the BookE32. + +2002-08-31 Hans-Peter Nilsson + + * read.c (do_align): Use ATTRIBUTE_UNUSED_LABEL for label, not + ATTRIBUTE_UNUSED. + +2000-08-28 Catherine Moore + + * tc-v850.c (v850_relax): Declare. + (v850_longcode): New routine. + (v850_handle_align): New routine. + (md_pseudo_table): Add longcall and longjump. + (md_parse_option): Check for relax option. + (tc_gen_reloc): Handle BFD_RELOC_V850_LONGCALL, + BFD_RELOC_V850_LONGJUMP, and BFD_RELOC_V850_ALIGN. + (md_apply_fix3): Likewise. + (v850_force_relocation): Likewise. + (v850_comm): Change the current section. + (md_assemble): Ensure that the correct value is put in the + fixup. + (v850_sdata, v850_tdata, v850_zdata, v850_sbss, v850_tbss, + v850_zbss, v850_rosdata, v850_rozdata): Fix section book keeping. + Remove redundant v850ea support. + * tc-v850.h (HANDLE_ALIGN): Define. + (v850_handle_align): Declare. + * doc/c-v850.c: Document -mrelax, .longcall and .longjump. + +2002-08-28 Svein E. Seldal + + * configure.in: Add tic4x-coff* and c4x-coff*-coff-coff targets. + * configure: Regenerate. + * NEWS: Mention new port. + +2002-08-28 Michael Hayes + + * config/obj-coff.c: Add sdef definition. + * config/obj-coff.h: Add tic4x include file and set + target format. + * config/tc-tic4x.c: New file. + * config/tc-tic4x.h: New file. + +2002-08-28 Alan Modra + + * write.c (BFD_FAST_SECTION_FILL): Remove unused macro. + (TC_ADJUST_RELOC_COUNT): Tweak param name. + (TC_FORCE_RELOCATION, TC_FORCE_RELOCATION_SECTION): Likewise. + (TC_FIX_ADJUSTABLE, MD_PCREL_FROM_SECTION): Likewise. + (RELOC_ENUM): Define. + (fix_new_internal): Use RELOC_ENUM. + (fix_new, fix_new_exp): Likewise. + (adjust_reloc_syms): Comment. Remove unnecessary tests on sym != NULL. + Replace gotos with continue. + (write_relocs): Formatting. Avoid symbol loops in + RELOC_EXPANSION_POSSIBLE case too. Report bfd_reloc_outofrange + errors, and error number in other cases. + (fixup_segment): Remove param names from prototype. Rename + "this_segment_type" to "this_segment". Update linkrelax comment. + Remove "size, "place" and "where" local vars. Formatting. Update + "no symbol" comment. Remove #if 0 and #if 1. + + * app.c (do_scrub_chars): Don't test IGNORE_NONSTANDARD_ESCAPES. Tidy. + +2002-08-27 Alan Modra + + * dwarf2dbg.c: Always include dwarf2dbg.h. + (dwarf2_directive_file): Adjust dummy version args. + * ecoff.c (ecoff_directive_weakext): Add ATTRIBUTE_UNUSED. + * expr.c (clean_up_expression ): Allow subtraction + when symbol values differ. + * read.c (do_align): Add ATTRIBUTE_UNUSED to label. + (pseudo_set ): Remove unnecessary segment test. + * config/obj-bout.c (obj_pseudo_table): Warning fix. + +2002-08-26 Alan Modra + + * config/tc-w65.c (md_section_align): Fix typo. + (md_parse_option): Return 0, not 1. + +2002-08-22 Nick Clifton + + * doc/as.texinfo (Section): Note that if '@' is a comment + character then another symbol is used to prefix the section's + type. + +2002-08-22 Christian Groessler + + * config/tc-z8k.c (get_operands): Adjust ptr variable also in + "case 0" case. + +2002-08-12 Graeme Peterson + + * configure.in: Add support for sh-**-nto* target. + * configure: Regenerate. + +2002-08-21 Nitin Gupta + + * config/tc-h8300.h (TC_LINKRELAX_FIXUP): Define. + +2002-08-21 Elena Zannoni + + * config/tc-ppc.c (ppc_cleanup): Do something only if format + is ELF. + (ppc_apuinfo_section_add): Define only if format is ELF. + (md_assemble): Emit APUinfo section only if format is ELF. + Fix formatting. + +2002-08-21 Alan Modra + + * config/tc-arc.c (md_pseudo_table ): Cast. + * config/tc-frv.c: Likewise. + * config/tc-hppa.c: Likewise. + * config/tc-ia64.c: Likewise. + * config/tc-ip2k.c: Likewise. + * config/tc-m68hc11.c: Likewise. + * config/tc-m68k.c: Likewise. + * config/tc-mmix.c: Likewise. + * config/tc-mn10300.c: Likewise. + * config/tc-sh.c: Likewise. + * config/tc-sparc.c: Likewise. + * config/tc-v850.c: Likewise. + +2002-08-20 Richard Sandiford + + * config/tc-mips.c (macro2): Implement rotates by zero using shifts + by zero. + +2002-08-19 Elena Zannoni + + From matthew green + + * config/tc-ppc.c (PPC_OPCODE_CLASSIC): Enable this everywhere + PPC_OPCODE_PPC is, except for BookE architectures. + (md_parse_option): Add support for -mspe. + (md_show_usage): Add -mspe. + (md_parse_option): Add support for -me500 and + -me500x2 to generate code for Motorola e500 core complex. + (md_show_usage): Add -me500 and -me500x2. + + (PPC_APUINFO_ISEL, PPC_APUINFO_PMR, PPC_APUINFO_RFMCI, + PPC_APUINFO_CACHELCK, PPC_APUINFO_SPE, PPC_APUINFO_EFS, + PPC_APUINFO_BRLOCK): New macros. + + (ppc_cleanup): New function. + (ppc_apuinfo_section_add): New function. + (APUID): New macro. + (md_assemble): Collect info and write the APUinfo section. + + * config/tc-ppc.h (md_cleanup): Define. + (ppc_cleanup): Export. + (ELF_TC_SPECIAL_SECTIONS): Add .PPC.EMB.apuinfo section. + +2002-08-17 Stan Cox + + * config/obj-elf.c (obj_elf_change_section): Make non-static. + config/tc-mips.c (s_change_section): New function to support + IRIX .section pseudo-op. + +2002-08-16 Nick Clifton + + * config/tc-v850.c (md_assemble): Fix assembling of "callt 0x3f". + +2002-08-15 Alexandre Oliva + + * config/tc-mips.c (macro_build_jalr): Make sure we generate + the fix-up against on the right frag. + (s_cpsetup): Likewise. Parse third argument as expression, to + handle global symbols and forward/backward labels correctly. + 2002-08-14 Nick Clifton * read.c (stringer): Catch attempts to create strings in the abs @@ -17,12 +853,12 @@ * config/tc-m68hc11.c (md_pseudo_table): Add relax command. (s_m68hc11_relax): New function for relax group. - (build_insn, build_jump_insn): Emit a M68HC11_RL_JUMP reloc at + (build_insn, build_jump_insn): Emit a M68HC11_RL_JUMP reloc at beginning of jump instruction. (md_pcrel_from): Rename from md_pcrel_from_section and fix address computation. (tc-gen_reloc): Update. - (md_estimate_size_before_relax): Create the BFD_RELOC_16_PCREL as + (md_estimate_size_before_relax): Create the BFD_RELOC_16_PCREL as PC-relative fixup. (tc_m68hc11_force_relocation): New function, handle new relocs. (tc_m68hc11_fix_adjustable): New to make sure there are enough @@ -75,7 +911,7 @@ * configure.in: Add support for ppc-*-nto* target. * configure: Regenerate. - + 2002-08-09 Alan Modra * config/tc-i386.h: Reorganize. @@ -160,7 +996,7 @@ (md_create_long_jump, md_create_short_jump, md_undefined_symbol_name, md_section_align, tc_gen_reloc): Note unused parameters. - + 2002-07-31 Nick Clifton * NEWS: Retroactively add entry for Lars Brinkhoff's contribution @@ -198,7 +1034,7 @@ * configure.in: Add support for arm-*-nto target. * configure: Regenerate. - + 2002-07-30 Nick Clifton * config/tc-arm.c (struct literal_pool): Add fields to allow @@ -1807,7 +2643,7 @@ (shmedia_md_convert_frag): Handle non-PC-relative UNDEF_MOVI and MOVI_16. (shmedia_md_estimate_size_before_relax): Remove redundant - blocks. Set fragP->fr_var even if relaxation type unchanged. + blocks. Set fragP->fr_var even if relaxation type unchanged. Retain UNDEF_MOVI until expression decays to number. 2002-01-24 Alexandre Oliva * config/tc-sh64.c (shmedia_init_reloc): Handle new SHmedia PIC @@ -1929,13 +2765,13 @@ (shmedia_frob_file_before_adjust): Ditto. (shmedia_md_apply_fix) : Cast mask to valueT to remove signedness. - (shmedia_md_convert_frag): Add parameter final. Rename parameter + (shmedia_md_convert_frag): Add parameter final. Rename parameter headers to output_bfd. Do not evaluate symbols if final is false; do emit fixups. (shmedia_md_estimate_size_before_relax) : If symbol cannot be modified to be PC-relative to the current frag, call shmedia_md_convert_frag to emit fixups - and make frag_wane neutralize the frag. Update comments. + and make frag_wane neutralize the frag. Update comments. * config/tc-sh.c (md_convert_frag): Change caller of shmedia_md_convert_frag. 2001-01-06 Hans-Peter Nilsson @@ -1947,7 +2783,7 @@ (shmedia_check_limits): Fix range check being off-by-one for PTA. * config/tc-sh.c: Ditto. Add proper comments to #ifdef/#ifndef wrappers. - (SH64PCREL16_F): Increment for proper max-PTA handling. Update + (SH64PCREL16_F): Increment for proper max-PTA handling. Update comment. (SH64PCREL16_M, MOVI_16_M): Correct range thinko. (SH64PCREL48_M, MOVI_48_M): Similar; don't count in length of @@ -1970,7 +2806,7 @@ (sh64_expand, sh64_pt32): New variables. (shmedia_init_reloc): Handle BFD_RELOC_SH_PT_16. (shmedia_md_apply_fix): Hold original fixP->fx_r_type in - orig_fx_r_type. Change SHMEDIA_BFD_RELOC_PT into + orig_fx_r_type. Change SHMEDIA_BFD_RELOC_PT into BFD_RELOC_SH_PT_16. Handle BFD_RELOC_SH_PT_16 as pc-relative. : Handle SHMEDIA_BFD_RELOC_PT and BFD_RELOC_SH_PT_16. @@ -2107,7 +2943,7 @@ (shmedia_md_pcrel_from_section): ...here. (shmedia_md_apply_fix): Handle fixups for 16-bit operands that has turned completely resolved. Adjust relocation type for 16-bit - immediate operands that has turned PC-relative. Adjust back for + immediate operands that has turned PC-relative. Adjust back for MD_PCREL_FROM_SECTION being applied twice. (shmedia_md_convert_frag): Always emit reloc for expression with global or weak symbol. Handle relaxation result for PC-relative @@ -2121,7 +2957,7 @@ (shmedia_build_Mytes): CSE &operands->operands[j] into variable opjp. : Fix typo for initial minor relaxation type of - MOVI expansion. If X_op_symbol of the immediate expression is + MOVI expansion. If X_op_symbol of the immediate expression is set, make an expression symbol for the argument to frag_var. * config/tc-sh.c (MOVI_IMM_32_PCREL, MOVI_IMM_64_PCREL): New relaxations. @@ -2145,7 +2981,7 @@ (sh64_adjust_symtab): For remaining datalabel symbols, set to undefined and set STT_DATALABEL. (sh64_frob_label): Initialize TC symbol field. - (sh64_consume_datalabel): Actually implement semantics. New + (sh64_consume_datalabel): Actually implement semantics. New parameter operandf, call it instead of expression. (sh64_exclude_symbol): New. * config/tc-sh64.h (md_parse_name): Pass on the function operand diff -uprN binutils-2.13.90.0.4/gas/Makefile.am binutils-2.13.90.0.10/gas/Makefile.am --- binutils-2.13.90.0.4/gas/Makefile.am Mon Jul 29 08:19:16 2002 +++ binutils-2.13.90.0.10/gas/Makefile.am Fri Sep 27 08:33:09 2002 @@ -1135,7 +1135,8 @@ DEPTC_i370_elf = $(INCDIR)/symcat.h $(sr $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-i370.h \ $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \ - struc-symbol.h $(INCDIR)/opcode/i370.h $(INCDIR)/elf/i370.h + struc-symbol.h $(INCDIR)/opcode/i370.h $(INCDIR)/elf/i370.h \ + $(INCDIR)/elf/reloc-macros.h DEPTC_i386_aout = $(INCDIR)/symcat.h $(srcdir)/config/obj-aout.h \ $(srcdir)/config/tc-i386.h $(BFDDIR)/libaout.h $(INCDIR)/bfdlink.h \ $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \ @@ -1196,12 +1197,14 @@ DEPTC_m68hc11_coff = $(INCDIR)/symcat.h $(srcdir)/config/tc-m68hc11.h $(INCDIR)/coff/internal.h \ $(INCDIR)/coff/m68k.h $(INCDIR)/coff/external.h $(BFDDIR)/libcoff.h \ $(INCDIR)/bfdlink.h $(INCDIR)/safe-ctype.h subsegs.h \ - $(INCDIR)/obstack.h $(INCDIR)/opcode/m68hc11.h dwarf2dbg.h + $(INCDIR)/obstack.h $(INCDIR)/opcode/m68hc11.h dwarf2dbg.h \ + $(INCDIR)/elf/m68hc11.h $(INCDIR)/elf/reloc-macros.h DEPTC_m68hc11_elf = $(INCDIR)/symcat.h $(srcdir)/config/obj-elf.h \ $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-m68hc11.h \ $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \ - $(INCDIR)/opcode/m68hc11.h dwarf2dbg.h + $(INCDIR)/opcode/m68hc11.h dwarf2dbg.h $(INCDIR)/elf/m68hc11.h \ + $(INCDIR)/elf/reloc-macros.h DEPTC_m68k_aout = $(INCDIR)/symcat.h $(srcdir)/config/obj-aout.h \ $(srcdir)/config/tc-m68k.h $(BFDDIR)/libaout.h $(INCDIR)/bfdlink.h \ $(INCDIR)/safe-ctype.h $(INCDIR)/obstack.h subsegs.h \ @@ -1361,14 +1364,14 @@ DEPTC_ppc_elf = $(INCDIR)/symcat.h $(src DEPTC_s390_coff = $(INCDIR)/symcat.h $(srcdir)/config/obj-coff.h \ $(srcdir)/config/tc-s390.h $(INCDIR)/coff/internal.h \ $(BFDDIR)/libcoff.h $(INCDIR)/bfdlink.h $(INCDIR)/safe-ctype.h \ - subsegs.h $(INCDIR)/obstack.h struc-symbol.h $(INCDIR)/opcode/s390.h \ - $(INCDIR)/elf/s390.h $(INCDIR)/elf/reloc-macros.h + subsegs.h $(INCDIR)/obstack.h struc-symbol.h dwarf2dbg.h \ + $(INCDIR)/opcode/s390.h $(INCDIR)/elf/s390.h $(INCDIR)/elf/reloc-macros.h DEPTC_s390_elf = $(INCDIR)/symcat.h $(srcdir)/config/obj-elf.h \ $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-s390.h \ $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \ - struc-symbol.h $(INCDIR)/opcode/s390.h $(INCDIR)/elf/s390.h \ - $(INCDIR)/elf/reloc-macros.h + struc-symbol.h dwarf2dbg.h $(INCDIR)/opcode/s390.h \ + $(INCDIR)/elf/s390.h $(INCDIR)/elf/reloc-macros.h DEPTC_sh_coff = $(INCDIR)/symcat.h $(srcdir)/config/obj-coff.h \ $(srcdir)/config/tc-sh.h $(INCDIR)/coff/internal.h \ $(INCDIR)/coff/sh.h $(INCDIR)/coff/external.h $(BFDDIR)/libcoff.h \ @@ -1541,13 +1544,13 @@ DEPOBJ_alpha_evax = $(INCDIR)/symcat.h $ $(srcdir)/config/tc-alpha.h DEPOBJ_arc_coff = $(INCDIR)/symcat.h $(srcdir)/config/obj-coff.h \ $(srcdir)/config/tc-arc.h $(INCDIR)/coff/internal.h \ - $(BFDDIR)/libcoff.h $(INCDIR)/bfdlink.h struc-symbol.h \ - $(INCDIR)/obstack.h subsegs.h + $(BFDDIR)/libcoff.h $(INCDIR)/bfdlink.h $(INCDIR)/obstack.h \ + subsegs.h DEPOBJ_arc_elf = $(INCDIR)/symcat.h $(srcdir)/config/obj-elf.h \ $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-arc.h \ - struc-symbol.h $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \ - $(INCDIR)/aout/aout64.h + $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \ + struc-symbol.h $(INCDIR)/aout/aout64.h DEPOBJ_arm_aout = $(INCDIR)/symcat.h $(srcdir)/config/obj-aout.h \ $(srcdir)/config/tc-arm.h $(BFDDIR)/libaout.h $(INCDIR)/bfdlink.h \ $(INCDIR)/aout/aout64.h $(INCDIR)/obstack.h @@ -1669,7 +1672,8 @@ DEPOBJ_i370_elf = $(INCDIR)/symcat.h $(s $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-i370.h \ $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \ - struc-symbol.h $(INCDIR)/elf/i370.h $(INCDIR)/aout/aout64.h + struc-symbol.h $(INCDIR)/elf/i370.h $(INCDIR)/elf/reloc-macros.h \ + $(INCDIR)/aout/aout64.h DEPOBJ_i386_aout = $(INCDIR)/symcat.h $(srcdir)/config/obj-aout.h \ $(srcdir)/config/tc-i386.h $(BFDDIR)/libaout.h $(INCDIR)/bfdlink.h \ $(INCDIR)/aout/aout64.h $(INCDIR)/obstack.h diff -uprN binutils-2.13.90.0.4/gas/Makefile.in binutils-2.13.90.0.10/gas/Makefile.in --- binutils-2.13.90.0.4/gas/Makefile.in Thu Aug 1 17:49:32 2002 +++ binutils-2.13.90.0.10/gas/Makefile.in Fri Sep 27 08:33:09 2002 @@ -874,7 +874,8 @@ DEPTC_i370_elf = $(INCDIR)/symcat.h $(sr $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-i370.h \ $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \ - struc-symbol.h $(INCDIR)/opcode/i370.h $(INCDIR)/elf/i370.h + struc-symbol.h $(INCDIR)/opcode/i370.h $(INCDIR)/elf/i370.h \ + $(INCDIR)/elf/reloc-macros.h DEPTC_i386_aout = $(INCDIR)/symcat.h $(srcdir)/config/obj-aout.h \ $(srcdir)/config/tc-i386.h $(BFDDIR)/libaout.h $(INCDIR)/bfdlink.h \ @@ -947,13 +948,15 @@ DEPTC_m68hc11_coff = $(INCDIR)/symcat.h $(srcdir)/config/tc-m68hc11.h $(INCDIR)/coff/internal.h \ $(INCDIR)/coff/m68k.h $(INCDIR)/coff/external.h $(BFDDIR)/libcoff.h \ $(INCDIR)/bfdlink.h $(INCDIR)/safe-ctype.h subsegs.h \ - $(INCDIR)/obstack.h $(INCDIR)/opcode/m68hc11.h dwarf2dbg.h + $(INCDIR)/obstack.h $(INCDIR)/opcode/m68hc11.h dwarf2dbg.h \ + $(INCDIR)/elf/m68hc11.h $(INCDIR)/elf/reloc-macros.h DEPTC_m68hc11_elf = $(INCDIR)/symcat.h $(srcdir)/config/obj-elf.h \ $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-m68hc11.h \ $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \ - $(INCDIR)/opcode/m68hc11.h dwarf2dbg.h + $(INCDIR)/opcode/m68hc11.h dwarf2dbg.h $(INCDIR)/elf/m68hc11.h \ + $(INCDIR)/elf/reloc-macros.h DEPTC_m68k_aout = $(INCDIR)/symcat.h $(srcdir)/config/obj-aout.h \ $(srcdir)/config/tc-m68k.h $(BFDDIR)/libaout.h $(INCDIR)/bfdlink.h \ @@ -1145,15 +1148,15 @@ DEPTC_ppc_elf = $(INCDIR)/symcat.h $(src DEPTC_s390_coff = $(INCDIR)/symcat.h $(srcdir)/config/obj-coff.h \ $(srcdir)/config/tc-s390.h $(INCDIR)/coff/internal.h \ $(BFDDIR)/libcoff.h $(INCDIR)/bfdlink.h $(INCDIR)/safe-ctype.h \ - subsegs.h $(INCDIR)/obstack.h struc-symbol.h $(INCDIR)/opcode/s390.h \ - $(INCDIR)/elf/s390.h $(INCDIR)/elf/reloc-macros.h + subsegs.h $(INCDIR)/obstack.h struc-symbol.h dwarf2dbg.h \ + $(INCDIR)/opcode/s390.h $(INCDIR)/elf/s390.h $(INCDIR)/elf/reloc-macros.h DEPTC_s390_elf = $(INCDIR)/symcat.h $(srcdir)/config/obj-elf.h \ $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-s390.h \ $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \ - struc-symbol.h $(INCDIR)/opcode/s390.h $(INCDIR)/elf/s390.h \ - $(INCDIR)/elf/reloc-macros.h + struc-symbol.h dwarf2dbg.h $(INCDIR)/opcode/s390.h \ + $(INCDIR)/elf/s390.h $(INCDIR)/elf/reloc-macros.h DEPTC_sh_coff = $(INCDIR)/symcat.h $(srcdir)/config/obj-coff.h \ $(srcdir)/config/tc-sh.h $(INCDIR)/coff/internal.h \ @@ -1365,14 +1368,14 @@ DEPOBJ_alpha_evax = $(INCDIR)/symcat.h $ DEPOBJ_arc_coff = $(INCDIR)/symcat.h $(srcdir)/config/obj-coff.h \ $(srcdir)/config/tc-arc.h $(INCDIR)/coff/internal.h \ - $(BFDDIR)/libcoff.h $(INCDIR)/bfdlink.h struc-symbol.h \ - $(INCDIR)/obstack.h subsegs.h + $(BFDDIR)/libcoff.h $(INCDIR)/bfdlink.h $(INCDIR)/obstack.h \ + subsegs.h DEPOBJ_arc_elf = $(INCDIR)/symcat.h $(srcdir)/config/obj-elf.h \ $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-arc.h \ - struc-symbol.h $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \ - $(INCDIR)/aout/aout64.h + $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \ + struc-symbol.h $(INCDIR)/aout/aout64.h DEPOBJ_arm_aout = $(INCDIR)/symcat.h $(srcdir)/config/obj-aout.h \ $(srcdir)/config/tc-arm.h $(BFDDIR)/libaout.h $(INCDIR)/bfdlink.h \ @@ -1521,7 +1524,8 @@ DEPOBJ_i370_elf = $(INCDIR)/symcat.h $(s $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-i370.h \ $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \ - struc-symbol.h $(INCDIR)/elf/i370.h $(INCDIR)/aout/aout64.h + struc-symbol.h $(INCDIR)/elf/i370.h $(INCDIR)/elf/reloc-macros.h \ + $(INCDIR)/aout/aout64.h DEPOBJ_i386_aout = $(INCDIR)/symcat.h $(srcdir)/config/obj-aout.h \ $(srcdir)/config/tc-i386.h $(BFDDIR)/libaout.h $(INCDIR)/bfdlink.h \ @@ -2418,7 +2422,7 @@ configure configure.in gdbinit.in itbl-l DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) -TAR = gtar +TAR = tar GZIP_ENV = --best SOURCES = $(gasp_new_SOURCES) $(itbl_test_SOURCES) $(as_new_SOURCES) $(EXTRA_as_new_SOURCES) OBJECTS = $(gasp_new_OBJECTS) $(itbl_test_OBJECTS) $(as_new_OBJECTS) diff -uprN binutils-2.13.90.0.4/gas/NEWS binutils-2.13.90.0.10/gas/NEWS --- binutils-2.13.90.0.4/gas/NEWS Thu Aug 1 17:49:32 2002 +++ binutils-2.13.90.0.10/gas/NEWS Fri Sep 27 08:33:09 2002 @@ -1,5 +1,8 @@ -*- text -*- +* Support for Texas Instruments TMS320C4x and TMS320C3x series of + DSP's contributed by Michael Hayes and Svein E. Seldal. + * Support for the Ubicom IP2xxx microcontroller added. Changes in 2.13: diff -uprN binutils-2.13.90.0.4/gas/app.c binutils-2.13.90.0.10/gas/app.c --- binutils-2.13.90.0.4/gas/app.c Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.10/gas/app.c Fri Sep 27 08:33:09 2002 @@ -1,6 +1,6 @@ /* This is the Assembler Pre-Processor Copyright 1987, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, - 1999, 2000 + 1999, 2000, 2002 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -611,6 +611,11 @@ do_scrub_chars (get, tostart, tolen) PUT ('\\'); continue; + case EOF: + as_warn (_("end of file in string; '\"' inserted")); + PUT ('"'); + continue; + case '"': case '\\': case 'b': @@ -630,20 +635,12 @@ do_scrub_chars (get, tostart, tolen) case '6': case '7': break; -#if defined(IGNORE_NONSTANDARD_ESCAPES) | defined(ONLY_STANDARD_ESCAPES) + default: +#ifdef ONLY_STANDARD_ESCAPES as_warn (_("unknown escape '\\%c' in string; ignored"), ch); +#endif break; -#else /* ONLY_STANDARD_ESCAPES */ - default: - /* Accept \x as x for any x */ - break; -#endif /* ONLY_STANDARD_ESCAPES */ - - case EOF: - as_warn (_("end of file in string; '\"' inserted")); - PUT ('"'); - continue; } PUT (ch); continue; diff -uprN binutils-2.13.90.0.4/gas/as.h binutils-2.13.90.0.10/gas/as.h --- binutils-2.13.90.0.4/gas/as.h Sun May 26 09:57:12 2002 +++ binutils-2.13.90.0.10/gas/as.h Fri Sep 27 08:33:09 2002 @@ -613,8 +613,14 @@ void eh_frame_convert_frag PARAMS ((frag /* this one starts the chain of target dependant headers */ #include "targ-env.h" -#ifdef TC_ARC -#include "struc-symbol.h" +#ifdef OBJ_MAYBE_ELF +#define IS_ELF (OUTPUT_FLAVOR == bfd_target_elf_flavour) +#else +#ifdef OBJ_ELF +#define IS_ELF 1 +#else +#define IS_ELF 0 +#endif #endif #include "write.h" diff -uprN binutils-2.13.90.0.4/gas/cgen.c binutils-2.13.90.0.10/gas/cgen.c --- binutils-2.13.90.0.4/gas/cgen.c Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.10/gas/cgen.c Fri Sep 27 08:33:09 2002 @@ -1,5 +1,5 @@ /* GAS interface for targets using CGEN: Cpu tools GENerator. - Copyright 1996, 1997, 1998, 1999, 2000, 2001 + Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -580,39 +580,12 @@ gas_cgen_md_apply_fix3 (fixP, valP, seg) /* Canonical name, since used a lot. */ CGEN_CPU_DESC cd = gas_cgen_cpu_desc; - /* FIXME FIXME FIXME: The value we are passed in *valuep includes - the symbol values. Since we are using BFD_ASSEMBLER, if we are - doing this relocation the code in write.c is going to call - bfd_install_relocation, which is also going to use the symbol - value. That means that if the reloc is fully resolved we want to - use *valuep since bfd_install_relocation is not being used. - However, if the reloc is not fully resolved we do not want to use - *valuep, and must use fx_offset instead. However, if the reloc - is PC relative, we do want to use *valuep since it includes the - result of md_pcrel_from. This is confusing. */ - if (fixP->fx_addsy == (symbolS *) NULL) fixP->fx_done = 1; - else if (fixP->fx_pcrel) - ; - - else - { - value = fixP->fx_offset; - - if (fixP->fx_subsy != (symbolS *) NULL) - { - if (S_GET_SEGMENT (fixP->fx_subsy) == absolute_section) - value -= S_GET_VALUE (fixP->fx_subsy); - else - { - /* We don't actually support subtracting a symbol. */ - as_bad_where (fixP->fx_file, fixP->fx_line, - _("expression too complex")); - } - } - } + /* We don't actually support subtracting a symbol. */ + if (fixP->fx_subsy != (symbolS *) NULL) + as_bad_where (fixP->fx_file, fixP->fx_line, _("expression too complex")); if ((int) fixP->fx_r_type >= (int) BFD_RELOC_UNUSED) { diff -uprN binutils-2.13.90.0.4/gas/config/obj-aout.c binutils-2.13.90.0.10/gas/config/obj-aout.c --- binutils-2.13.90.0.4/gas/config/obj-aout.c Mon Oct 1 15:25:22 2001 +++ binutils-2.13.90.0.10/gas/config/obj-aout.c Fri Sep 27 08:33:09 2002 @@ -1,6 +1,6 @@ /* a.out object file format - Copyright 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1999, 2000, 2001 - Free Software Foundation, Inc. + Copyright 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1999, 2000, + 2001, 2002 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -200,7 +200,7 @@ obj_aout_frob_symbol (sym, punt) } void -obj_aout_frob_file () +obj_aout_frob_file_before_fix () { /* Relocation processing may require knowing the VMAs of the sections. Since writing to a section will cause the BFD back end to compute the @@ -731,8 +731,9 @@ const struct format_ops aout_format_ops 0, /* begin */ 0, /* app_file */ obj_aout_frob_symbol, - obj_aout_frob_file, + 0, /* frob_file */ 0, /* frob_file_before_adjust */ + obj_aout_frob_file_before_fix, 0, /* frob_file_after_relocs */ 0, /* s_get_size */ 0, /* s_set_size */ diff -uprN binutils-2.13.90.0.4/gas/config/obj-aout.h binutils-2.13.90.0.10/gas/config/obj-aout.h --- binutils-2.13.90.0.4/gas/config/obj-aout.h Fri Mar 9 11:16:47 2001 +++ binutils-2.13.90.0.10/gas/config/obj-aout.h Fri Sep 27 08:33:09 2002 @@ -1,6 +1,6 @@ /* obj-aout.h, a.out object file format for gas, the assembler. - Copyright 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 2000 - Free Software Foundation, Inc. + Copyright 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 2000, + 2002 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -82,9 +82,9 @@ typedef struct nlist obj_symbol_type; /* asection *text_section, *data_section, *bss_section; #define obj_frob_symbol(S,PUNT) obj_aout_frob_symbol (S, &PUNT) -#define obj_frob_file() obj_aout_frob_file () +#define obj_frob_file_before_fix() obj_aout_frob_file_before_fix () extern void obj_aout_frob_symbol PARAMS ((symbolS *, int *)); -extern void obj_aout_frob_file PARAMS ((void)); +extern void obj_aout_frob_file_before_fix PARAMS ((void)); #define obj_sec_sym_ok_for_reloc(SEC) (1) @@ -109,6 +109,12 @@ extern void obj_aout_frob_file PARAMS (( #define S_IS_COMMON(s) \ (S_GET_TYPE (s) == N_UNDF && S_GET_VALUE (s) != 0) +/* Return true for symbols that should not be reduced to section + symbols or eliminated from expressions, because they may be + overridden by the linker. */ +#define S_FORCE_RELOC(s) \ + (!SEG_NORMAL (S_GET_SEGMENT (s))) + #define S_IS_REGISTER(s) ((s)->sy_symbol.n_type == N_REGISTER) /* True if a debug special symbol entry */ diff -uprN binutils-2.13.90.0.4/gas/config/obj-bout.c binutils-2.13.90.0.10/gas/config/obj-bout.c --- binutils-2.13.90.0.4/gas/config/obj-bout.c Wed May 23 10:55:08 2001 +++ binutils-2.13.90.0.10/gas/config/obj-bout.c Fri Sep 27 08:33:09 2002 @@ -1,5 +1,5 @@ /* b.out object file format - Copyright 1989, 1990, 1991, 1992, 1993, 1994, 1996, 2000, 2001 + Copyright 1989, 1990, 1991, 1992, 1993, 1994, 1996, 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -78,7 +78,7 @@ const pseudo_typeS obj_pseudo_table[] = {"ABORT", s_ignore, 0}, {"ident", s_ignore, 0}, - {NULL} /* End sentinel. */ + {NULL, NULL, 0} /* End sentinel. */ }; /* Relocation. */ diff -uprN binutils-2.13.90.0.4/gas/config/obj-bout.h binutils-2.13.90.0.10/gas/config/obj-bout.h --- binutils-2.13.90.0.4/gas/config/obj-bout.h Fri Mar 9 11:16:47 2001 +++ binutils-2.13.90.0.10/gas/config/obj-bout.h Fri Sep 27 08:33:09 2002 @@ -1,6 +1,6 @@ /* b.out object file format - Copyright 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 2000 - Free Software Foundation, Inc. + Copyright 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 2000, + 2002 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -182,6 +182,12 @@ struct relocation_info /* True if symbol has been defined, ie is in N_{TEXT,DATA,BSS,ABS} or N_EXT */ #define S_IS_DEFINED(s) ((S_GET_TYPE(s) != N_UNDF) || (S_GET_DESC(s) != 0)) +/* Return true for symbols that should not be reduced to section + symbols or eliminated from expressions, because they may be + overridden by the linker. */ +#define S_FORCE_RELOC(s) \ + (!SEG_NORMAL (S_GET_SEGMENT (s))) + #define S_IS_COMMON(s) \ (S_GET_TYPE (s) == N_UNDF && S_GET_VALUE (s) != 0) diff -uprN binutils-2.13.90.0.4/gas/config/obj-coff.c binutils-2.13.90.0.10/gas/config/obj-coff.c --- binutils-2.13.90.0.4/gas/config/obj-coff.c Sat Jun 8 20:44:52 2002 +++ binutils-2.13.90.0.10/gas/config/obj-coff.c Fri Sep 27 08:33:09 2002 @@ -4623,8 +4623,8 @@ const pseudo_typeS coff_pseudo_table[] = #endif {"version", s_ignore, 0}, {"ABORT", s_abort, 0}, -#ifdef TC_M88K - /* The m88k uses sdef instead of def. */ +#if defined( TC_M88K ) || defined ( TC_TIC4X ) + /* The m88k and tic4x uses sdef instead of def. */ {"sdef", obj_coff_def, 0}, #endif {NULL, NULL, 0} /* end sentinel */ @@ -4659,6 +4659,7 @@ const struct format_ops coff_format_ops coff_frob_symbol, 0, /* frob_file */ 0, /* frob_file_before_adjust */ + 0, /* frob_file_before_fix */ coff_frob_file_after_relocs, 0, /* s_get_size */ 0, /* s_set_size */ diff -uprN binutils-2.13.90.0.4/gas/config/obj-coff.h binutils-2.13.90.0.10/gas/config/obj-coff.h --- binutils-2.13.90.0.4/gas/config/obj-coff.h Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.10/gas/config/obj-coff.h Fri Sep 27 08:33:09 2002 @@ -157,6 +157,11 @@ #define TARGET_FORMAT "coff-tic30" #endif +#ifdef TC_TIC4X +#include "coff/tic4x.h" +#define TARGET_FORMAT "coff2-c4x" +#endif + #ifdef TC_TIC54X #include "coff/tic54x.h" #define TARGET_FORMAT "coff1-c54x" @@ -244,6 +249,12 @@ extern void coff_obj_read_begin_hook PAR #define OBJ_SYMFIELD_TYPE unsigned long #define sy_obj sy_flags +/* We can't use the predefined section symbols in bfd/section.c, as + COFF symbols have extra fields. See bfd/libcoff.h:coff_symbol_type. */ +#ifndef obj_sec_sym_ok_for_reloc +#define obj_sec_sym_ok_for_reloc(SEC) ((SEC)->owner != 0) +#endif + #define SYM_AUXENT(S) \ (&coffsymbol (symbol_get_bfdsym (S))->native[1].u.auxent) #define SYM_AUXINFO(S) \ @@ -474,7 +485,9 @@ typedef struct /* Predicates. */ /* True if the symbol is external. */ -#define S_IS_EXTERNAL(s) ((s)->sy_symbol.ost_entry.n_scnum == C_UNDEF_SECTION) +#define S_IS_EXTERNAL(s) \ + ((s)->sy_symbol.ost_entry.n_scnum == C_UNDEF_SECTION) + /* True if symbol has been defined, ie : section > 0 (DATA, TEXT or BSS) section == 0 and value > 0 (external bss symbol). */ @@ -483,8 +496,17 @@ typedef struct || ((s)->sy_symbol.ost_entry.n_scnum == C_UNDEF_SECTION \ && S_GET_VALUE (s) > 0) \ || ((s)->sy_symbol.ost_entry.n_scnum == C_ABS_SECTION)) + +/* Return true for symbols that should not be reduced to section + symbols or eliminated from expressions, because they may be + overridden by the linker. */ +#define S_FORCE_RELOC(s) \ + (!SEG_NORMAL (S_GET_SEGMENT (s)) || S_IS_WEAK (s)) + /* True if a debug special symbol entry. */ -#define S_IS_DEBUG(s) ((s)->sy_symbol.ost_entry.n_scnum == C_DEBUG_SECTION) +#define S_IS_DEBUG(s) \ + ((s)->sy_symbol.ost_entry.n_scnum == C_DEBUG_SECTION) + /* True if a symbol is local symbol name. */ /* A symbol name whose name includes ^A is a gas internal pseudo symbol. */ #define S_IS_LOCAL(s) \ @@ -495,13 +517,16 @@ typedef struct || (flag_strip_local_absolute \ && !S_IS_EXTERNAL(s) \ && (s)->sy_symbol.ost_entry.n_scnum == C_ABS_SECTION)) + /* True if a symbol is not defined in this file. */ #define S_IS_EXTERN(s) ((s)->sy_symbol.ost_entry.n_scnum == 0 \ && S_GET_VALUE (s) == 0) + /* True if a symbol can be multiply defined (bss symbols have this def though it is bad practice). */ #define S_IS_COMMON(s) ((s)->sy_symbol.ost_entry.n_scnum == 0 \ && S_GET_VALUE (s) != 0) + /* True if a symbol name is in the string table, i.e. its length is > 8. */ #define S_IS_STRING(s) (strlen(S_GET_NAME(s)) > 8 ? 1 : 0) @@ -518,34 +543,51 @@ typedef struct /* Accessors. */ /* The name of the symbol. */ #define S_GET_NAME(s) ((char*) (s)->sy_symbol.ost_entry.n_offset) + /* The pointer to the string table. */ #define S_GET_OFFSET(s) ((s)->sy_symbol.ost_entry.n_offset) + /* The numeric value of the segment. */ #define S_GET_SEGMENT(s) s_get_segment(s) + /* The data type. */ #define S_GET_DATA_TYPE(s) ((s)->sy_symbol.ost_entry.n_type) + /* The storage class. */ #define S_GET_STORAGE_CLASS(s) ((s)->sy_symbol.ost_entry.n_sclass) + /* The number of auxiliary entries. */ #define S_GET_NUMBER_AUXILIARY(s) ((s)->sy_symbol.ost_entry.n_numaux) /* Modifiers. */ /* Set the name of the symbol. */ -#define S_SET_NAME(s,v) ((s)->sy_symbol.ost_entry.n_offset = (unsigned long) (v)) +#define S_SET_NAME(s,v) \ + ((s)->sy_symbol.ost_entry.n_offset = (unsigned long) (v)) + /* Set the offset of the symbol. */ -#define S_SET_OFFSET(s,v) ((s)->sy_symbol.ost_entry.n_offset = (v)) +#define S_SET_OFFSET(s,v) \ + ((s)->sy_symbol.ost_entry.n_offset = (v)) + /* The numeric value of the segment. */ -#define S_SET_SEGMENT(s,v) ((s)->sy_symbol.ost_entry.n_scnum = SEGMENT_TO_SYMBOL_TYPE(v)) +#define S_SET_SEGMENT(s,v) \ + ((s)->sy_symbol.ost_entry.n_scnum = SEGMENT_TO_SYMBOL_TYPE(v)) + /* The data type. */ -#define S_SET_DATA_TYPE(s,v) ((s)->sy_symbol.ost_entry.n_type = (v)) +#define S_SET_DATA_TYPE(s,v) \ + ((s)->sy_symbol.ost_entry.n_type = (v)) + /* The storage class. */ -#define S_SET_STORAGE_CLASS(s,v) ((s)->sy_symbol.ost_entry.n_sclass = (v)) +#define S_SET_STORAGE_CLASS(s,v) \ + ((s)->sy_symbol.ost_entry.n_sclass = (v)) + /* The number of auxiliary entries. */ -#define S_SET_NUMBER_AUXILIARY(s,v) ((s)->sy_symbol.ost_entry.n_numaux = (v)) +#define S_SET_NUMBER_AUXILIARY(s,v) \ + ((s)->sy_symbol.ost_entry.n_numaux = (v)) /* Additional modifiers. */ /* The symbol is external (does not mean undefined). */ -#define S_SET_EXTERNAL(s) { S_SET_STORAGE_CLASS(s, C_EXT) ; SF_CLEAR_LOCAL(s); } +#define S_SET_EXTERNAL(s) \ + { S_SET_STORAGE_CLASS(s, C_EXT) ; SF_CLEAR_LOCAL(s); } /* Auxiliary entry macros. SA_ stands for symbol auxiliary. */ /* Omit the tv related fields. */ diff -uprN binutils-2.13.90.0.4/gas/config/obj-ecoff.c binutils-2.13.90.0.10/gas/config/obj-ecoff.c --- binutils-2.13.90.0.4/gas/config/obj-ecoff.c Sun Feb 3 11:22:31 2002 +++ binutils-2.13.90.0.10/gas/config/obj-ecoff.c Fri Sep 27 08:33:09 2002 @@ -1,5 +1,5 @@ /* ECOFF object file format. - Copyright 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 + Copyright 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Contributed by Cygnus Support. This file was put together by Ian Lance Taylor . @@ -98,18 +98,13 @@ const pseudo_typeS obj_pseudo_table[] = { NULL, s_ignore, 0 } }; -/* Swap out the symbols and debugging information for BFD. */ +/* Set section VMAs and GP values before reloc processing. */ void -ecoff_frob_file () +ecoff_frob_file_before_fix () { - const struct ecoff_debug_swap * const debug_swap - = &ecoff_backend (stdoutput)->debug_swap; bfd_vma addr; asection **sec; - HDRR *hdr; - char *buf; - char *set; /* Set the section VMA values. We force the .sdata and .sbss sections to the end to ensure that their VMA addresses are close @@ -177,6 +172,46 @@ ecoff_frob_file () if (secs[i]) bfd_section_list_insert (stdoutput, &stdoutput->sections, secs[i]); + /* Fill in the register masks. */ + { + unsigned long gprmask = 0; + unsigned long fprmask = 0; + unsigned long *cprmask = NULL; + +#ifdef TC_MIPS + /* Fill in the MIPS register masks. It's probably not worth + setting up a generic interface for this. */ + gprmask = mips_gprmask; + cprmask = mips_cprmask; +#endif + +#ifdef TC_ALPHA + alpha_frob_ecoff_data (); + + if (! bfd_ecoff_set_gp_value (stdoutput, alpha_gp_value)) + as_fatal (_("Can't set GP value")); + + gprmask = alpha_gprmask; + fprmask = alpha_fprmask; +#endif + + if (! bfd_ecoff_set_regmasks (stdoutput, gprmask, fprmask, cprmask)) + as_fatal (_("Can't set register masks")); + } +} + +/* Swap out the symbols and debugging information for BFD. */ + +void +ecoff_frob_file () +{ + const struct ecoff_debug_swap * const debug_swap + = &ecoff_backend (stdoutput)->debug_swap; + bfd_vma addr; + HDRR *hdr; + char *buf; + char *set; + /* Build the ECOFF debugging information. */ assert (ecoff_data (stdoutput) != 0); hdr = &ecoff_data (stdoutput)->debug_info.symbolic_header; @@ -204,35 +239,7 @@ ecoff_frob_file () SET (external_rfd, crfd, PTR, debug_swap->external_rfd_size); SET (external_fdr, ifdMax, PTR, debug_swap->external_fdr_size); SET (external_ext, iextMax, PTR, debug_swap->external_ext_size); - #undef SET - - /* Fill in the register masks. */ - { - unsigned long gprmask = 0; - unsigned long fprmask = 0; - unsigned long *cprmask = NULL; - -#ifdef TC_MIPS - /* Fill in the MIPS register masks. It's probably not worth - setting up a generic interface for this. */ - gprmask = mips_gprmask; - cprmask = mips_cprmask; -#endif - -#ifdef TC_ALPHA - alpha_frob_ecoff_data (); - - if (! bfd_ecoff_set_gp_value (stdoutput, alpha_gp_value)) - as_fatal (_("Can't set GP value")); - - gprmask = alpha_gprmask; - fprmask = alpha_fprmask; -#endif - - if (! bfd_ecoff_set_regmasks (stdoutput, gprmask, fprmask, cprmask)) - as_fatal (_("Can't set register masks")); - } } /* This is called by the ECOFF code to set the external information @@ -296,6 +303,7 @@ const struct format_ops ecoff_format_ops obj_ecoff_frob_symbol, ecoff_frob_file, 0, /* frob_file_before_adjust */ + ecoff_frob_file_before_fix, 0, /* frob_file_after_relocs */ 0, /* s_get_size */ 0, /* s_set_size */ diff -uprN binutils-2.13.90.0.4/gas/config/obj-ecoff.h binutils-2.13.90.0.10/gas/config/obj-ecoff.h --- binutils-2.13.90.0.4/gas/config/obj-ecoff.h Fri Mar 9 11:16:48 2001 +++ binutils-2.13.90.0.10/gas/config/obj-ecoff.h Fri Sep 27 08:33:09 2002 @@ -1,5 +1,5 @@ /* ECOFF object file format header file. - Copyright 1993, 1994, 1995, 1996, 1997, 1999 + Copyright 1993, 1994, 1995, 1996, 1997, 1999, 2002 Free Software Foundation, Inc. Contributed by Cygnus Support. Written by Ian Lance Taylor . @@ -49,6 +49,10 @@ struct ecoff_sy_obj /* Modify the ECOFF symbol. */ #define obj_frob_symbol(symp, punt) ecoff_frob_symbol (symp) +/* Set section VMAs and GP. */ +extern void ecoff_frob_file_before_fix PARAMS ((void)); +#define obj_frob_file_before_fix() ecoff_frob_file_before_fix () + /* This is used to write the symbolic data in the format that BFD expects it. */ extern void ecoff_frob_file PARAMS ((void)); diff -uprN binutils-2.13.90.0.4/gas/config/obj-elf.c binutils-2.13.90.0.10/gas/config/obj-elf.c --- binutils-2.13.90.0.4/gas/config/obj-elf.c Fri Jun 7 19:22:17 2002 +++ binutils-2.13.90.0.10/gas/config/obj-elf.c Fri Sep 27 08:33:09 2002 @@ -77,8 +77,6 @@ static void obj_elf_ident PARAMS ((int)) static void obj_elf_weak PARAMS ((int)); static void obj_elf_local PARAMS ((int)); static void obj_elf_visibility PARAMS ((int)); -static void obj_elf_change_section - PARAMS ((const char *, int, int, int, const char *, int, int)); static int obj_elf_parse_section_letters PARAMS ((char *, size_t)); static int obj_elf_section_word PARAMS ((char *, size_t)); static char *obj_elf_section_name PARAMS ((void)); @@ -664,7 +662,7 @@ static struct special_section const spec { NULL, 0, 0 } }; -static void +void obj_elf_change_section (name, type, attr, entsize, group_name, linkonce, push) const char *name; int type; @@ -2328,6 +2326,7 @@ const struct format_ops elf_format_ops = elf_frob_symbol, elf_frob_file, elf_frob_file_before_adjust, + 0, /* obj_frob_file_before_fix */ elf_frob_file_after_relocs, elf_s_get_size, elf_s_set_size, elf_s_get_align, elf_s_set_align, diff -uprN binutils-2.13.90.0.4/gas/config/obj-elf.h binutils-2.13.90.0.10/gas/config/obj-elf.h --- binutils-2.13.90.0.4/gas/config/obj-elf.h Tue Jun 18 21:41:59 2002 +++ binutils-2.13.90.0.10/gas/config/obj-elf.h Fri Sep 27 08:33:09 2002 @@ -162,11 +162,13 @@ extern void obj_elf_version PARAMS ((int extern void obj_elf_common PARAMS ((int)); extern void obj_elf_data PARAMS ((int)); extern void obj_elf_text PARAMS ((int)); +extern void obj_elf_change_section + PARAMS ((const char *, int, int, int, const char *, int, int)); extern struct fix *obj_elf_vtable_inherit PARAMS ((int)); extern struct fix *obj_elf_vtable_entry PARAMS ((int)); /* BFD wants to write the udata field, which is a no-no for the - globally defined sections. */ + predefined section symbols in bfd/section.c. They are read-only. */ #ifndef obj_sec_sym_ok_for_reloc #define obj_sec_sym_ok_for_reloc(SEC) ((SEC)->owner != 0) #endif diff -uprN binutils-2.13.90.0.4/gas/config/obj-ieee.h binutils-2.13.90.0.10/gas/config/obj-ieee.h --- binutils-2.13.90.0.4/gas/config/obj-ieee.h Fri Mar 9 11:16:48 2001 +++ binutils-2.13.90.0.10/gas/config/obj-ieee.h Fri Sep 27 08:33:09 2002 @@ -1,5 +1,5 @@ /* This file is obj-ieee.h - Copyright 1987, 1988, 1989, 1990, 1991, 1992, 2000 + Copyright 1987, 1988, 1989, 1990, 1991, 1992, 2000, 2002 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -28,16 +28,19 @@ typedef struct asymbol sy; int seg; } - obj_symbol_type; #define S_GET_NAME(s) (((s)->sy_symbol.sy.name)) +/* Return true for symbols that should not be reduced to section + symbols or eliminated from expressions, because they may be + overridden by the linker. */ +#define S_FORCE_RELOC(s) (!SEG_NORMAL (x->sy_symbol.seg)) + typedef struct { int x; } - object_headers; #define DEFAULT_MAGIC_NUMBER_FOR_OBJECT_FILE 1 diff -uprN binutils-2.13.90.0.4/gas/config/obj-multi.h binutils-2.13.90.0.10/gas/config/obj-multi.h --- binutils-2.13.90.0.4/gas/config/obj-multi.h Fri Mar 9 11:38:15 2001 +++ binutils-2.13.90.0.10/gas/config/obj-multi.h Fri Sep 27 08:33:09 2002 @@ -1,5 +1,5 @@ /* Multiple object format emulation. - Copyright 1995, 1996, 1997, 1999, 2000 + Copyright 1995, 1996, 1997, 1999, 2000, 2002 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -55,6 +55,11 @@ ? (*this_format->frob_file_before_adjust) () \ : (void) 0) +#define obj_frob_file_before_fix() \ + (this_format->frob_file_before_fix \ + ? (*this_format->frob_file_before_fix) () \ + : (void) 0) + #define obj_frob_file_after_relocs() \ (this_format->frob_file_after_relocs \ ? (*this_format->frob_file_after_relocs) () \ diff -uprN binutils-2.13.90.0.4/gas/config/obj-vms.h binutils-2.13.90.0.10/gas/config/obj-vms.h --- binutils-2.13.90.0.4/gas/config/obj-vms.h Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.10/gas/config/obj-vms.h Fri Sep 27 08:33:09 2002 @@ -139,6 +139,12 @@ typedef struct nlist obj_symbol_type; /* #define S_IS_COMMON(s) (S_GET_TYPE(s) == N_UNDF && S_GET_VALUE(s) != 0) +/* Return true for symbols that should not be reduced to section + symbols or eliminated from expressions, because they may be + overridden by the linker. */ +#define S_FORCE_RELOC(s) \ + (!SEG_NORMAL (S_GET_SEGMENT (s))) + #define S_IS_REGISTER(s) ((s)->sy_symbol.n_type == N_REGISTER) /* True if a debug special symbol entry */ diff -uprN binutils-2.13.90.0.4/gas/config/tc-alpha.c binutils-2.13.90.0.10/gas/config/tc-alpha.c --- binutils-2.13.90.0.4/gas/config/tc-alpha.c Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/gas/config/tc-alpha.c Fri Sep 27 08:33:09 2002 @@ -208,7 +208,7 @@ struct alpha_macro /* Prototypes for all local functions. */ static struct alpha_reloc_tag *get_alpha_reloc_tag PARAMS ((long)); -static void alpha_adjust_symtab_relocs PARAMS ((bfd *, asection *, PTR)); +static void alpha_adjust_relocs PARAMS ((bfd *, asection *, PTR)); static int tokenize_arguments PARAMS ((char *, expressionS *, int)); static const struct alpha_opcode *find_opcode_match @@ -1139,12 +1139,12 @@ md_pcrel_from (fixP) valueT addr = fixP->fx_where + fixP->fx_frag->fr_address; switch (fixP->fx_r_type) { - case BFD_RELOC_ALPHA_GPDISP: - case BFD_RELOC_ALPHA_GPDISP_HI16: - case BFD_RELOC_ALPHA_GPDISP_LO16: - return addr; + case BFD_RELOC_23_PCREL_S2: + case BFD_RELOC_ALPHA_HINT: + case BFD_RELOC_ALPHA_BRSGP: + return addr + 4; default: - return fixP->fx_size + addr; + return addr; } } @@ -1171,9 +1171,9 @@ md_apply_fix3 (fixP, valP, seg) switch (fixP->fx_r_type) { /* The GPDISP relocations are processed internally with a symbol - referring to the current function; we need to drop in a value - which, when added to the address of the start of the function, - gives the desired GP. */ + referring to the current function's section; we need to drop + in a value which, when added to the address of the start of + the function, gives the desired GP. */ case BFD_RELOC_ALPHA_GPDISP_HI16: { fixS *next = fixP->fx_next; @@ -1501,15 +1501,11 @@ alpha_force_relocation (f) case BFD_RELOC_ALPHA_TPREL16: return 1; - case BFD_RELOC_23_PCREL_S2: - case BFD_RELOC_32: - case BFD_RELOC_64: - case BFD_RELOC_ALPHA_HINT: - return 0; - default: - return 0; + break; } + + return S_FORCE_RELOC (f->fx_addsy); } /* Return true if we can partially resolve a relocation now. */ @@ -1518,12 +1514,6 @@ int alpha_fix_adjustable (f) fixS *f; { -#ifdef OBJ_ELF - /* Prevent all adjustments to global symbols */ - if (S_IS_EXTERN (f->fx_addsy) || S_IS_WEAK (f->fx_addsy)) - return 0; -#endif - /* Are there any relocation types for which we must generate a reloc but we can adjust the values contained within it? */ switch (f->fx_r_type) @@ -1719,14 +1709,14 @@ get_alpha_reloc_tag (sequence) relocations, and similarly for !gpdisp relocations. */ void -alpha_adjust_symtab () +alpha_before_fix () { if (alpha_literal_hash) - bfd_map_over_sections (stdoutput, alpha_adjust_symtab_relocs, NULL); + bfd_map_over_sections (stdoutput, alpha_adjust_relocs, NULL); } static void -alpha_adjust_symtab_relocs (abfd, sec, ptr) +alpha_adjust_relocs (abfd, sec, ptr) bfd *abfd ATTRIBUTE_UNUSED; asection *sec; PTR ptr ATTRIBUTE_UNUSED; diff -uprN binutils-2.13.90.0.4/gas/config/tc-alpha.h binutils-2.13.90.0.10/gas/config/tc-alpha.h --- binutils-2.13.90.0.4/gas/config/tc-alpha.h Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/gas/config/tc-alpha.h Fri Sep 27 08:33:09 2002 @@ -1,5 +1,5 @@ /* This file is tc-alpha.h - Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 + Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Written by Ken Raeburn . @@ -28,10 +28,17 @@ #define TARGET_ARCH bfd_arch_alpha +#ifdef TE_FreeBSD +#define ELF_TARGET_FORMAT "elf64-alpha-freebsd" +#endif +#ifndef ELF_TARGET_FORMAT +#define ELF_TARGET_FORMAT "elf64-alpha" +#endif + #define TARGET_FORMAT (OUTPUT_FLAVOR == bfd_target_ecoff_flavour \ ? "ecoff-littlealpha" \ : OUTPUT_FLAVOR == bfd_target_elf_flavour \ - ? "elf64-alpha" \ + ? ELF_TARGET_FORMAT \ : OUTPUT_FLAVOR == bfd_target_evax_flavour \ ? "vms-alpha" \ : "unknown-format") @@ -39,6 +46,9 @@ #define NEED_LITERAL_POOL #define REPEAT_CONS_EXPRESSIONS +struct fix; +struct alpha_reloc_tag; + extern void alpha_validate_fix PARAMS ((struct fix *)); extern int alpha_force_relocation PARAMS ((struct fix *)); extern int alpha_fix_adjustable PARAMS ((struct fix *)); @@ -47,24 +57,14 @@ extern unsigned long alpha_gprmask, alph extern valueT alpha_gp_value; #ifdef OBJ_ELF -#define TC_VALIDATE_FIX(FIXP,SEGTYPE,SKIP) alpha_validate_fix (FIXP) +#define TC_VALIDATE_FIX(FIX,SEGTYPE,SKIP) alpha_validate_fix (FIX) #endif - -#define TC_FORCE_RELOCATION(FIXP) alpha_force_relocation (FIXP) -#define tc_fix_adjustable(FIXP) alpha_fix_adjustable (FIXP) +#define TC_FORCE_RELOCATION(FIX) alpha_force_relocation (FIX) +#define tc_fix_adjustable(FIX) alpha_fix_adjustable (FIX) #define RELOC_REQUIRES_SYMBOL -/* This expression evaluates to false if the relocation is for a local - object for which we still want to do the relocation at runtime. - True if we are willing to perform this relocation while building - the .o file. This is only used for pcrel relocations. */ - -#define TC_RELOC_RTSYM_LOC_FIXUP(FIX) \ - ((FIX)->fx_addsy == NULL \ - || (! S_IS_EXTERNAL ((FIX)->fx_addsy) \ - && ! S_IS_WEAK ((FIX)->fx_addsy) \ - && S_IS_DEFINED ((FIX)->fx_addsy) \ - && ! S_IS_COMMON ((FIX)->fx_addsy))) +/* Values passed to md_apply_fix3 don't include the symbol value. */ +#define MD_APPLY_SYM_VALUE(FIX) 0 #define md_convert_frag(b,s,f) as_fatal ("alpha convert_frag\n") #define md_estimate_size_before_relax(f,s) \ @@ -129,8 +129,8 @@ extern flagword alpha_elf_section_flags supplied !lituse relocations follow the appropriate !literal relocations. Also convert the gas-internal relocations to the appropriate linker relocations. */ -#define tc_adjust_symtab() alpha_adjust_symtab () -extern void alpha_adjust_symtab PARAMS ((void)); +#define tc_frob_file_before_fix() alpha_before_fix () +extern void alpha_before_fix PARAMS ((void)); /* New fields for supporting explicit relocations (such as !literal to mark where a pointer is loaded from the global table, and !lituse_base to track @@ -145,19 +145,19 @@ struct alpha_fix_tag }; /* Initialize the TC_FIX_TYPE field. */ -#define TC_INIT_FIX_DATA(fixP) \ +#define TC_INIT_FIX_DATA(FIX) \ do { \ - fixP->tc_fix_data.next_reloc = (struct fix *)0; \ - fixP->tc_fix_data.info = (struct alpha_literal_tag *)0; \ + FIX->tc_fix_data.next_reloc = (struct fix *) 0; \ + FIX->tc_fix_data.info = (struct alpha_reloc_tag *) 0; \ } while (0) /* Work with DEBUG5 to print fields in tc_fix_type. */ -#define TC_FIX_DATA_PRINT(stream,fixP) \ +#define TC_FIX_DATA_PRINT(STREAM, FIX) \ do { \ - if (fixP->tc_fix_data.info) \ - fprintf (stderr, "\tinfo = 0x%lx, next_reloc = 0x%lx\n", \ - (long)fixP->tc_fix_data.info, \ - (long)fixP->tc_fix_data.next_reloc); \ + if (FIX->tc_fix_data.info) \ + fprintf (STREAM, "\tinfo = 0x%lx, next_reloc = 0x%lx\n", \ + (long) FIX->tc_fix_data.info, \ + (long) FIX->tc_fix_data.next_reloc); \ } while (0) #define DWARF2_LINE_MIN_INSN_LENGTH 4 diff -uprN binutils-2.13.90.0.4/gas/config/tc-arc.c binutils-2.13.90.0.10/gas/config/tc-arc.c --- binutils-2.13.90.0.4/gas/config/tc-arc.c Fri Nov 16 14:05:52 2001 +++ binutils-2.13.90.0.10/gas/config/tc-arc.c Fri Sep 27 08:33:09 2002 @@ -1,5 +1,5 @@ /* tc-arc.c -- Assembler for the ARC - Copyright 1994, 1995, 1997, 1999, 2000, 2001 + Copyright 1994, 1995, 1997, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Contributed by Doug Evans (dje@cygnus.com). @@ -23,6 +23,7 @@ #include #include "libiberty.h" #include "as.h" +#include "struc-symbol.h" #include "safe-ctype.h" #include "subsegs.h" #include "opcode/arc.h" @@ -93,7 +94,7 @@ const pseudo_typeS md_pseudo_table[] = { { "option", arc_option, 0 }, { "cpu", arc_option, 0 }, { "block", s_space, 0 }, - { "file", dwarf2_directive_file, 0 }, + { "file", (void (*) PARAMS ((int))) dwarf2_directive_file, 0 }, { "loc", dwarf2_directive_loc, 0 }, { "extcondcode", arc_extoper, 0 }, { "extcoreregister", arc_extoper, 1 }, @@ -1801,13 +1802,6 @@ long md_pcrel_from (fixP) fixS *fixP; { - if (fixP->fx_addsy != (symbolS *) NULL - && ! S_IS_DEFINED (fixP->fx_addsy)) - { - /* The symbol is undefined. Let the linker figure it out. */ - return 0; - } - /* Return the address of the delay slot. */ return fixP->fx_frag->fr_address + fixP->fx_where + fixP->fx_size; } @@ -1891,45 +1885,19 @@ md_apply_fix3 (fixP, valP, seg) #endif valueT value = * valP; - /* FIXME FIXME FIXME: The value we are passed in *valueP includes - the symbol values. Since we are using BFD_ASSEMBLER, if we are - doing this relocation the code in write.c is going to call - bfd_perform_relocation, which is also going to use the symbol - value. That means that if the reloc is fully resolved we want to - use *valueP since bfd_perform_relocation is not being used. - However, if the reloc is not fully resolved we do not want to use - *valueP, and must use fx_offset instead. However, if the reloc - is PC relative, we do want to use *valueP since it includes the - result of md_pcrel_from. This is confusing. */ - if (fixP->fx_addsy == (symbolS *) NULL) fixP->fx_done = 1; else if (fixP->fx_pcrel) { - /* ELF relocations are against symbols. - If this symbol is in a different section then we need to leave it for - the linker to deal with. Unfortunately, md_pcrel_from can't tell, - so we have to undo it's effects here. */ - if (S_IS_DEFINED (fixP->fx_addsy) - && S_GET_SEGMENT (fixP->fx_addsy) != seg) + /* Hack around bfd_install_relocation brain damage. */ + if (S_GET_SEGMENT (fixP->fx_addsy) != seg) value += md_pcrel_from (fixP); } - else - { - value = fixP->fx_offset; - if (fixP->fx_subsy != (symbolS *) NULL) - { - if (S_GET_SEGMENT (fixP->fx_subsy) == absolute_section) - value -= S_GET_VALUE (fixP->fx_subsy); - else - { - /* We can't actually support subtracting a symbol. */ - as_bad_where (fixP->fx_file, fixP->fx_line, - "expression too complex"); - } - } - } + + /* We can't actually support subtracting a symbol. */ + if (fixP->fx_subsy != NULL) + as_bad_where (fixP->fx_file, fixP->fx_line, _("expression too complex")); if ((int) fixP->fx_r_type >= (int) BFD_RELOC_UNUSED) { @@ -2032,8 +2000,6 @@ md_apply_fix3 (fixP, valP, seg) abort (); } } - - fixP->fx_addnumber = value; } /* Translate internal representation of relocation info to BFD target @@ -2063,8 +2029,7 @@ tc_gen_reloc (section, fixP) assert (!fixP->fx_pcrel == !reloc->howto->pc_relative); /* Set addend to account for PC being advanced one insn before the - target address is computed, drop fx_addnumber as it is handled - elsewhere mlm */ + target address is computed. */ reloc->addend = (fixP->fx_pcrel ? -4 : 0); diff -uprN binutils-2.13.90.0.4/gas/config/tc-arc.h binutils-2.13.90.0.10/gas/config/tc-arc.h --- binutils-2.13.90.0.4/gas/config/tc-arc.h Fri Nov 16 14:05:52 2001 +++ binutils-2.13.90.0.10/gas/config/tc-arc.h Fri Sep 27 08:33:09 2002 @@ -1,5 +1,6 @@ /* tc-arc.h - Macros and type defines for the ARC. - Copyright 1994, 1995, 1997, 2000, 2001 Free Software Foundation, Inc. + Copyright 1994, 1995, 1997, 2000, 2001, 2002 + Free Software Foundation, Inc. Contributed by Doug Evans (dje@cygnus.com). This file is part of GAS, the GNU Assembler. @@ -64,3 +65,10 @@ extern void arc_cons_fix_new PARAMS ((st arc_cons_fix_new (FRAG, WHERE, NBYTES, EXP) #define DWARF2_LINE_MIN_INSN_LENGTH 4 + +/* Values passed to md_apply_fix3 don't include the symbol value. */ +#define MD_APPLY_SYM_VALUE(FIX) 0 + +/* No shared lib support, so we don't need to ensure externally + visible symbols can be overridden. */ +#define EXTERN_FORCE_RELOC 0 diff -uprN binutils-2.13.90.0.4/gas/config/tc-arm.c binutils-2.13.90.0.10/gas/config/tc-arm.c --- binutils-2.13.90.0.4/gas/config/tc-arm.c Thu Aug 1 17:49:32 2002 +++ binutils-2.13.90.0.10/gas/config/tc-arm.c Fri Sep 27 08:33:09 2002 @@ -2228,7 +2228,7 @@ add_to_lit_pool () { if (entry >= MAX_LITERAL_POOL_SIZE) { - inst.error = _("Literal Pool Overflow"); + inst.error = _("literal pool overflow"); return FAIL; } @@ -5766,6 +5766,31 @@ do_ldmstm (str) inst.instruction |= LDM_TYPE_2_OR_3; } + if (inst.instruction & WRITE_BACK) + { + /* Check for unpredictable uses of writeback. */ + if (inst.instruction & LOAD_BIT) + { + /* Not allowed in LDM type 2. */ + if ((inst.instruction & LDM_TYPE_2_OR_3) + && ((range & (1 << REG_PC)) == 0)) + as_warn (_("writeback of base register is UNPREDICTABLE")); + /* Only allowed if base reg not in list for other types. */ + else if (range & (1 << base_reg)) + as_warn (_("writeback of base register when in register list is UNPREDICTABLE")); + } + else /* STM. */ + { + /* Not allowed for type 2. */ + if (inst.instruction & LDM_TYPE_2_OR_3) + as_warn (_("writeback of base register is UNPREDICTABLE")); + /* Only allowed if base reg not in list, or first in list. */ + else if ((range & (1 << base_reg)) + && (range & ((1 << base_reg) - 1))) + as_warn (_("if writeback register is in list, it must be the lowest reg in the list")); + } + } + inst.instruction |= range; end_of_line (str); return; @@ -9652,12 +9677,14 @@ md_apply_fix3 (fixP, valP, seg) newimm |= (temp & 0xfffff000); md_number_to_chars (buf, (valueT) newimm, INSN_SIZE); + fixP->fx_done = 1; break; case BFD_RELOC_ARM_ADRL_IMMEDIATE: { unsigned int highpart = 0; unsigned int newinsn = 0xe1a00000; /* nop. */ + newimm = validate_immediate (value); temp = md_chars_to_number (buf, INSN_SIZE); @@ -10010,10 +10037,6 @@ md_apply_fix3 (fixP, valP, seg) break; #endif - case BFD_RELOC_ARM_GOTPC: - md_number_to_chars (buf, value, 4); - break; - case BFD_RELOC_ARM_CP_OFF_IMM: sign = value >= 0; if (value < -1023 || value > 1023 || (value & 3)) @@ -10265,7 +10288,7 @@ tc_gen_reloc (section, fixp) /* If this is called then the a literal has been referenced across a section boundary. */ as_bad_where (fixp->fx_file, fixp->fx_line, - _("Literal referenced across section boundary")); + _("literal referenced across section boundary")); return NULL; #ifdef OBJ_ELF @@ -10278,8 +10301,7 @@ tc_gen_reloc (section, fixp) case BFD_RELOC_ARM_IMMEDIATE: as_bad_where (fixp->fx_file, fixp->fx_line, - _("internal relocation (type %d) not fixed up (IMMEDIATE)"), - fixp->fx_r_type); + _("internal relocation (type: IMMEDIATE) not fixed up")); return NULL; case BFD_RELOC_ARM_ADRL_IMMEDIATE: @@ -10289,8 +10311,7 @@ tc_gen_reloc (section, fixp) case BFD_RELOC_ARM_OFFSET_IMM: as_bad_where (fixp->fx_file, fixp->fx_line, - _("internal_relocation (type %d) not fixed up (OFFSET_IMM)"), - fixp->fx_r_type); + _("internal_relocation (type: OFFSET_IMM) not fixed up")); return NULL; default: @@ -10299,8 +10320,6 @@ tc_gen_reloc (section, fixp) switch (fixp->fx_r_type) { - case BFD_RELOC_ARM_IMMEDIATE: type = "IMMEDIATE"; break; - case BFD_RELOC_ARM_OFFSET_IMM: type = "OFFSET_IMM"; break; case BFD_RELOC_ARM_OFFSET_IMM8: type = "OFFSET_IMM8"; break; case BFD_RELOC_ARM_SHIFT_IMM: type = "SHIFT_IMM"; break; case BFD_RELOC_ARM_SWI: type = "SWI"; break; @@ -10512,7 +10531,6 @@ md_assemble (str) -k Generate PIC code -mthumb Start in Thumb mode -mthumb-interwork Code supports ARM/Thumb interworking - -mimplicit-litpool-dump Dump literal pool on section change For now we will also provide support for: @@ -11391,7 +11409,7 @@ arm_canonicalize_symbol_name (name) return name; } -boolean +void arm_validate_fix (fixP) fixS * fixP; { @@ -11405,10 +11423,7 @@ arm_validate_fix (fixP) && ! THUMB_IS_FUNC (fixP->fx_addsy)) { fixP->fx_addsy = find_real_start (fixP->fx_addsy); - return true; } - - return false; } #ifdef OBJ_COFF @@ -11448,13 +11463,6 @@ arm_fix_adjustable (fixP) if (fixP->fx_addsy == NULL) return 1; - /* Prevent all adjustments to global symbols. */ - if (S_IS_EXTERN (fixP->fx_addsy)) - return 0; - - if (S_IS_WEAK (fixP->fx_addsy)) - return 0; - if (THUMB_IS_FUNC (fixP->fx_addsy) && fixP->fx_subsy == NULL) return 0; @@ -11464,6 +11472,12 @@ arm_fix_adjustable (fixP) || fixP->fx_r_type == BFD_RELOC_VTABLE_ENTRY) return 0; + /* Don't allow symbols to be discarded on GOT related relocs. */ + if (fixP->fx_r_type == BFD_RELOC_ARM_PLT32 + || fixP->fx_r_type == BFD_RELOC_ARM_GOT32 + || fixP->fx_r_type == BFD_RELOC_ARM_GOTOFF) + return 0; + return 1; } @@ -11506,7 +11520,7 @@ arm_force_relocation (fixp) || fixp->fx_r_type == BFD_RELOC_THUMB_PCREL_BRANCH23) return 1; - return 0; + return S_FORCE_RELOC (fixp->fx_addsy); } static bfd_reloc_code_real_type diff -uprN binutils-2.13.90.0.4/gas/config/tc-arm.h binutils-2.13.90.0.10/gas/config/tc-arm.h --- binutils-2.13.90.0.4/gas/config/tc-arm.h Sun Feb 3 11:22:31 2002 +++ binutils-2.13.90.0.10/gas/config/tc-arm.h Fri Sep 27 08:33:09 2002 @@ -1,5 +1,5 @@ /* This file is tc-arm.h - Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 + Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Contributed by Richard Earnshaw (rwe@pegasus.esprit.ec.org) Modified by David Taylor (dtaylor@armltd.co.uk) @@ -66,17 +66,19 @@ #define TARGET_FORMAT "aif" #endif +struct fix; + #if defined OBJ_COFF || defined OBJ_ELF # define ARM_BI_ENDIAN -# define TC_VALIDATE_FIX(fixP, segType, Label) \ - if (arm_validate_fix (fixP)) add_symbolP = fixP->fx_addsy - extern boolean arm_validate_fix PARAMS ((struct fix *)); +# define TC_VALIDATE_FIX(FIX, SEGTYPE, LABEL) arm_validate_fix (FIX) + extern void arm_validate_fix PARAMS ((struct fix *)); #endif #ifdef OBJ_COFF # if defined TE_PE -# define TC_FORCE_RELOCATION(x) ((x)->fx_r_type == BFD_RELOC_RVA) +# define TC_FORCE_RELOCATION(x) \ + ((x)->fx_r_type == BFD_RELOC_RVA || S_FORCE_RELOC ((x)->fx_addsy)) # ifdef TE_EPOC # define TARGET_FORMAT (target_big_endian ? "epoc-pe-arm-big" : "epoc-pe-arm-little") # else @@ -91,7 +93,7 @@ # define TARGET_FORMAT elf32_arm_target_format() extern const char * elf32_arm_target_format PARAMS ((void)); -# define TC_FORCE_RELOCATION(fixp) arm_force_relocation (fixp) +# define TC_FORCE_RELOCATION(FIX) arm_force_relocation (FIX) extern int arm_force_relocation PARAMS ((struct fix *)); #endif @@ -114,18 +116,16 @@ symbols as Thumb. */ #define TC_FIX_TYPE PTR -#define TC_INIT_FIX_DATA(FIXP) ((FIXP)->tc_fix_data = NULL) +#define TC_INIT_FIX_DATA(FIX) ((FIX)->tc_fix_data = NULL) #if defined OBJ_ELF || defined OBJ_COFF -#include "write.h" /* For definition of fixS */ -#define obj_fix_adjustable(fixP) arm_fix_adjustable (fixP) -boolean arm_fix_adjustable PARAMS ((fixS *)); - -/* This arranges for gas/write.c to not apply a relocation if - obj_fix_adjustable() says it is not adjustable. */ -#define TC_FIX_ADJUSTABLE(fixP) obj_fix_adjustable (fixP) -#else -#define obj_fix_adjustable(fixP) 0 +#define EXTERN_FORCE_RELOC 1 + +#define tc_fix_adjustable(FIX) arm_fix_adjustable (FIX) +boolean arm_fix_adjustable PARAMS ((struct fix *)); + +/* Values passed to md_apply_fix3 don't include the symbol value. */ +#define MD_APPLY_SYM_VALUE(FIX) 0 #endif /* We need to keep some local information on symbols. */ @@ -175,30 +175,24 @@ void armelf_frob_symbol PARAMS ((symbolS #define LOCAL_LABEL_PREFIX '.' #endif -/* This expression evaluates to false if the relocation is for a local object - for which we still want to do the relocation at runtime. True if we - are willing to perform this relocation while building the .o file. - This is only used for pcrel relocations, so GOTOFF does not need to be - checked here. I am not sure if some of the others are ever used with +/* This expression evaluates to true if the relocation is for a local + object for which we still want to do the relocation at runtime. + False if we are willing to perform this relocation while building + the .o file. GOTOFF does not need to be checked here because it is + not pcrel. I am not sure if some of the others are ever used with pcrel, but it is easier to be safe than sorry. */ -#define TC_RELOC_RTSYM_LOC_FIXUP(FIX) \ - ( (FIX)->fx_r_type != BFD_RELOC_ARM_GOT12 \ - && (FIX)->fx_r_type != BFD_RELOC_ARM_GOT32 \ - && (FIX)->fx_r_type != BFD_RELOC_32) +#define TC_FORCE_RELOCATION_LOCAL(FIX) \ + (!(FIX)->fx_pcrel \ + || (FIX)->fx_plt \ + || (FIX)->fx_r_type == BFD_RELOC_ARM_GOT12 \ + || (FIX)->fx_r_type == BFD_RELOC_ARM_GOT32 \ + || (FIX)->fx_r_type == BFD_RELOC_32 \ + || TC_FORCE_RELOCATION (FIX)) #define TC_CONS_FIX_NEW cons_fix_new_arm extern void cons_fix_new_arm PARAMS ((fragS *, int, int, expressionS *)); -/* Don't allow symbols to be discarded on GOT related relocs, - nor on globals. */ -#define tc_fix_adjustable(x) (\ - ((x)->fx_r_type == BFD_RELOC_ARM_PLT32 \ - || (x)->fx_r_type == BFD_RELOC_ARM_GOT32 \ - || (x)->fx_r_type == BFD_RELOC_ARM_GOTOFF \ - || S_IS_EXTERN ((x)->fx_addsy) \ - || S_IS_WEAK ((x)->fx_addsy)) ? 0 : 1) - #ifdef OBJ_ELF #define GLOBAL_OFFSET_TABLE_NAME "_GLOBAL_OFFSET_TABLE_" #else diff -uprN binutils-2.13.90.0.4/gas/config/tc-avr.c binutils-2.13.90.0.10/gas/config/tc-avr.c --- binutils-2.13.90.0.4/gas/config/tc-avr.c Tue Jun 18 21:41:59 2002 +++ binutils-2.13.90.0.10/gas/config/tc-avr.c Fri Sep 27 08:33:09 2002 @@ -1,6 +1,6 @@ /* tc-avr.c -- Assembler code for the ATMEL AVR - Copyright 1999, 2000, 2001 Free Software Foundation, Inc. + Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Contributed by Denis Chertykov This file is part of GAS, the GNU Assembler. @@ -833,7 +833,7 @@ md_apply_fix3 (fixP, valP, seg) { unsigned char *where; unsigned long insn; - long value = * (long *) valP; + long value = *valP; if (fixP->fx_addsy == (symbolS *) NULL) fixP->fx_done = 1; @@ -842,31 +842,16 @@ md_apply_fix3 (fixP, valP, seg) { segT s = S_GET_SEGMENT (fixP->fx_addsy); - if (fixP->fx_addsy && (s == seg || s == absolute_section)) + if (s == seg || s == absolute_section) { value += S_GET_VALUE (fixP->fx_addsy); fixP->fx_done = 1; } } - else - { - value = fixP->fx_offset; - if (fixP->fx_subsy != (symbolS *) NULL) - { - if (S_GET_SEGMENT (fixP->fx_subsy) == absolute_section) - { - value -= S_GET_VALUE (fixP->fx_subsy); - fixP->fx_done = 1; - } - else - { - /* We don't actually support subtracting a symbol. */ - as_bad_where (fixP->fx_file, fixP->fx_line, - _("expression too complex")); - } - } - } + /* We don't actually support subtracting a symbol. */ + if (fixP->fx_subsy != (symbolS *) NULL) + as_bad_where (fixP->fx_file, fixP->fx_line, _("expression too complex")); switch (fixP->fx_r_type) { @@ -1039,7 +1024,6 @@ md_apply_fix3 (fixP, valP, seg) default: break; } - fixP->fx_addnumber = value; } } diff -uprN binutils-2.13.90.0.4/gas/config/tc-avr.h binutils-2.13.90.0.10/gas/config/tc-avr.h --- binutils-2.13.90.0.4/gas/config/tc-avr.h Fri Nov 16 14:05:52 2001 +++ binutils-2.13.90.0.10/gas/config/tc-avr.h Fri Sep 27 08:33:09 2002 @@ -1,5 +1,5 @@ /* This file is tc-avr.h - Copyright 1999, 2000, 2001 Free Software Foundation, Inc. + Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Contributed by Denis Chertykov @@ -24,101 +24,103 @@ #error AVR support requires BFD_ASSEMBLER #endif +/* By convention, you should define this macro in the `.h' file. For + example, `tc-m68k.h' defines `TC_M68K'. You might have to use this + if it is necessary to add CPU specific code to the object format + file. */ #define TC_AVR -/* By convention, you should define this macro in the `.h' file. For - example, `tc-m68k.h' defines `TC_M68K'. You might have to use this - if it is necessary to add CPU specific code to the object format - file. */ +/* This macro is the BFD target name to use when creating the output + file. This will normally depend upon the `OBJ_FMT' macro. */ #define TARGET_FORMAT "elf32-avr" -/* This macro is the BFD target name to use when creating the output - file. This will normally depend upon the `OBJ_FMT' macro. */ +/* This macro is the BFD architecture to pass to `bfd_set_arch_mach'. */ #define TARGET_ARCH bfd_arch_avr -/* This macro is the BFD architecture to pass to `bfd_set_arch_mach'. */ +/* This macro is the BFD machine number to pass to + `bfd_set_arch_mach'. If it is not defined, GAS will use 0. */ #define TARGET_MACH 0 -/* This macro is the BFD machine number to pass to - `bfd_set_arch_mach'. If it is not defined, GAS will use 0. */ +/* You should define this macro to be non-zero if the target is big + endian, and zero if the target is little endian. */ #define TARGET_BYTES_BIG_ENDIAN 0 -/* You should define this macro to be non-zero if the target is big - endian, and zero if the target is little endian. */ +/* If you define this macro, GAS will warn about the use of + nonstandard escape sequences in a string. */ #define ONLY_STANDARD_ESCAPES -/* If you define this macro, GAS will warn about the use of - nonstandard escape sequences in a string. */ +/* GAS will call this function for any expression that can not be + recognized. When the function is called, `input_line_pointer' + will point to the start of the expression. */ #define md_operand(x) -/* GAS will call this function for any expression that can not be - recognized. When the function is called, `input_line_pointer' - will point to the start of the expression. */ - -void avr_parse_cons_expression (expressionS *exp, int nbytes); +/* You may define this macro to parse an expression used in a data + allocation pseudo-op such as `.word'. You can use this to + recognize relocation directives that may appear in such directives. */ #define TC_PARSE_CONS_EXPRESSION(EXPR,N) avr_parse_cons_expression (EXPR,N) -/* - You may define this macro to parse an expression used in a data - allocation pseudo-op such as `.word'. You can use this to - recognize relocation directives that may appear in such directives.*/ - -void avr_cons_fix_new(fragS *frag,int where, int nbytes, expressionS *exp); +void avr_parse_cons_expression (expressionS *exp, int nbytes); +/* You may define this macro to generate a fixup for a data + allocation pseudo-op. */ #define TC_CONS_FIX_NEW(FRAG,WHERE,N,EXP) avr_cons_fix_new(FRAG,WHERE,N,EXP) -/* You may define this macro to generate a fixup for a data - allocation pseudo-op. */ +void avr_cons_fix_new(fragS *frag,int where, int nbytes, expressionS *exp); +/* This should just call either `number_to_chars_bigendian' or + `number_to_chars_littleendian', whichever is appropriate. On + targets like the MIPS which support options to change the + endianness, which function to call is a runtime decision. On + other targets, `md_number_to_chars' can be a simple macro. */ #define md_number_to_chars number_to_chars_littleendian -/* This should just call either `number_to_chars_bigendian' or - `number_to_chars_littleendian', whichever is appropriate. On - targets like the MIPS which support options to change the - endianness, which function to call is a runtime decision. On - other targets, `md_number_to_chars' can be a simple macro. */ +/* `md_short_jump_size' + `md_long_jump_size' + `md_create_short_jump' + `md_create_long_jump' + If `WORKING_DOT_WORD' is defined, GAS will not do broken word + processing (*note Broken words::.). Otherwise, you should set + `md_short_jump_size' to the size of a short jump (a jump that is + just long enough to jump around a long jmp) and + `md_long_jump_size' to the size of a long jump (a jump that can go + anywhere in the function), You should define + `md_create_short_jump' to create a short jump around a long jump, + and define `md_create_long_jump' to create a long jump. */ #define WORKING_DOT_WORD -/* -`md_short_jump_size' -`md_long_jump_size' -`md_create_short_jump' -`md_create_long_jump' - If `WORKING_DOT_WORD' is defined, GAS will not do broken word - processing (*note Broken words::.). Otherwise, you should set - `md_short_jump_size' to the size of a short jump (a jump that is - just long enough to jump around a long jmp) and - `md_long_jump_size' to the size of a long jump (a jump that can go - anywhere in the function), You should define - `md_create_short_jump' to create a short jump around a long jump, - and define `md_create_long_jump' to create a long jump. */ +/* If you define this macro, it means that `tc_gen_reloc' may return + multiple relocation entries for a single fixup. In this case, the + return value of `tc_gen_reloc' is a pointer to a null terminated + array. */ #undef RELOC_EXPANSION_POSSIBLE -/* If you define this macro, it means that `tc_gen_reloc' may return - multiple relocation entries for a single fixup. In this case, the - return value of `tc_gen_reloc' is a pointer to a null terminated - array. */ - -#define MD_PCREL_FROM_SECTION(FIXP, SEC) md_pcrel_from_section(FIXP, SEC) -/* If you define this macro, it should return the offset between the - address of a PC relative fixup and the position from which the PC - relative adjustment should be made. On many processors, the base - of a PC relative instruction is the next instruction, so this - macro would return the length of an instruction. */ +/* No shared lib support, so we don't need to ensure externally + visible symbols can be overridden. */ +#define EXTERN_FORCE_RELOC 0 + +/* Values passed to md_apply_fix3 don't include the symbol value. */ +#define MD_APPLY_SYM_VALUE(FIX) 0 + +/* If you define this macro, it should return the offset between the + address of a PC relative fixup and the position from which the PC + relative adjustment should be made. On many processors, the base + of a PC relative instruction is the next instruction, so this + macro would return the length of an instruction. */ +#define MD_PCREL_FROM_SECTION(FIX, SEC) md_pcrel_from_section(FIX, SEC) extern long md_pcrel_from_section PARAMS ((struct fix *, segT)); +/* The number of bytes to put into a word in a listing. This affects + the way the bytes are clumped together in the listing. For + example, a value of 2 might print `1234 5678' where a value of 1 + would print `12 34 56 78'. The default value is 4. */ #define LISTING_WORD_SIZE 2 -/* The number of bytes to put into a word in a listing. This affects - the way the bytes are clumped together in the listing. For - example, a value of 2 might print `1234 5678' where a value of 1 - would print `12 34 56 78'. The default value is 4. */ -#define LEX_DOLLAR 0 /* AVR port uses `$' as a logical line separator */ +#define LEX_DOLLAR 0 +/* An `.lcomm' directive with no explicit alignment parameter will + use this macro to set P2VAR to the alignment that a request for + SIZE bytes will have. The alignment is expressed as a power of + two. If no alignment should take place, the macro definition + should do nothing. Some targets define a `.bss' directive that is + also affected by this macro. The default definition will set + P2VAR to the truncated power of two of sizes up to eight bytes. */ #define TC_IMPLICIT_LCOMM_ALIGNMENT(SIZE, P2VAR) (P2VAR) = 0 -/* An `.lcomm' directive with no explicit alignment parameter will - use this macro to set P2VAR to the alignment that a request for - SIZE bytes will have. The alignment is expressed as a power of - two. If no alignment should take place, the macro definition - should do nothing. Some targets define a `.bss' directive that is - also affected by this macro. The default definition will set - P2VAR to the truncated power of two of sizes up to eight bytes. */ diff -uprN binutils-2.13.90.0.4/gas/config/tc-cris.c binutils-2.13.90.0.10/gas/config/tc-cris.c --- binutils-2.13.90.0.4/gas/config/tc-cris.c Wed Nov 21 15:35:32 2001 +++ binutils-2.13.90.0.10/gas/config/tc-cris.c Fri Sep 27 08:33:09 2002 @@ -1,5 +1,5 @@ /* tc-cris.c -- Assembler code for the CRIS CPU core. - Copyright 2000, 2001 Free Software Foundation, Inc. + Copyright 2000, 2001, 2002 Free Software Foundation, Inc. Contributed by Axis Communications AB, Lund, Sweden. Originally written for GAS 1.38.1 by Mikael Asker. @@ -2895,10 +2895,8 @@ tc_gen_reloc (section, fixP) relP->address = fixP->fx_frag->fr_address + fixP->fx_where; if (fixP->fx_pcrel) - /* FIXME: Is this correct? */ - relP->addend = fixP->fx_addnumber; + relP->addend = 0; else - /* At least *this one* is correct. */ relP->addend = fixP->fx_offset; /* This is the standard place for KLUDGEs to work around bugs in @@ -2994,17 +2992,10 @@ md_apply_fix3 (fixP, valP, seg) } else { - /* I took this from tc-arc.c, since we used to not support - fx_subsy != NULL. I'm not totally sure it's TRT. */ + /* We can't actually support subtracting a symbol. */ if (fixP->fx_subsy != (symbolS *) NULL) - { - if (S_GET_SEGMENT (fixP->fx_subsy) == absolute_section) - val -= S_GET_VALUE (fixP->fx_subsy); - else - /* We can't actually support subtracting a symbol. */ - as_bad_where (fixP->fx_file, fixP->fx_line, - _("expression too complex")); - } + as_bad_where (fixP->fx_file, fixP->fx_line, + _("expression too complex")); cris_number_to_imm (buf, val, fixP->fx_size, fixP, seg); } @@ -3042,10 +3033,10 @@ md_undefined_symbol (name) return 0; } -/* Definition of TC_FORCE_RELOCATION. - FIXME: Unsure of this. Can we omit it? Just copied from tc-i386.c - when doing multi-object format with ELF, since it's the only other - multi-object-format target with a.out and ELF. */ +/* If this function returns non-zero, it prevents the relocation + against symbol(s) in the FIXP from being replaced with relocations + against section symbols, and guarantees that a relocation will be + emitted even when the value can be resolved locally. */ int md_cris_force_relocation (fixp) struct fix *fixp; @@ -3066,7 +3057,7 @@ md_cris_force_relocation (fixp) ; } - return 0; + return S_FORCE_RELOC (fixp->fx_addsy); } /* Check and emit error if broken-word handling has failed to fix up a diff -uprN binutils-2.13.90.0.4/gas/config/tc-cris.h binutils-2.13.90.0.10/gas/config/tc-cris.h --- binutils-2.13.90.0.4/gas/config/tc-cris.h Fri Nov 16 14:05:52 2001 +++ binutils-2.13.90.0.10/gas/config/tc-cris.h Fri Sep 27 08:33:09 2002 @@ -1,5 +1,5 @@ /* tc-cris.h -- Header file for tc-cris.c, the CRIS GAS port. - Copyright 2000, 2001 Free Software Foundation, Inc. + Copyright 2000, 2001, 2002 Free Software Foundation, Inc. Contributed by Axis Communications AB, Lund, Sweden. Originally written for GAS 1.38.1 by Mikael Asker. @@ -75,44 +75,33 @@ extern const int md_long_jump_size; extern const struct relax_type md_cris_relax_table[]; #define TC_GENERIC_RELAX_TABLE md_cris_relax_table -#define TC_FORCE_RELOCATION(fixp) md_cris_force_relocation (fixp) +#define TC_FORCE_RELOCATION(FIX) md_cris_force_relocation (FIX) extern int md_cris_force_relocation PARAMS ((struct fix *)); -#define IS_CRIS_PIC_RELOC(X) \ - ((X) == BFD_RELOC_CRIS_16_GOT \ - || (X) == BFD_RELOC_CRIS_32_GOT \ - || (X) == BFD_RELOC_CRIS_16_GOTPLT \ - || (X) == BFD_RELOC_CRIS_32_GOTPLT \ - || (X) == BFD_RELOC_CRIS_32_GOTREL \ - || (X) == BFD_RELOC_CRIS_32_PLT_GOTREL \ - || (X) == BFD_RELOC_CRIS_32_PLT_PCREL) - - -/* FIXME: Undocumented macro. Make sure we don't resolve fixups for which - we want to emit dynamic relocations. */ - -#define TC_RELOC_RTSYM_LOC_FIXUP(FIX) \ - ((FIX)->fx_addsy == NULL \ - || (! S_IS_EXTERNAL ((FIX)->fx_addsy) \ - && ! S_IS_WEAK ((FIX)->fx_addsy) \ - && S_IS_DEFINED ((FIX)->fx_addsy) \ - && ! S_IS_COMMON ((FIX)->fx_addsy) \ - /* FIXME: Set fx_plt instead of this check. */ \ - && ! IS_CRIS_PIC_RELOC ((FIX)->fx_r_type))) - -/* This is really a workaround for a bug in write.c that resolves relocs - for weak symbols - it should be postponed to the link stage or later. - Also don't adjust fixups for global symbols for ELF, and no relocs - where the original symbol name must be kept. */ -#define tc_fix_adjustable(X) \ - (((X)->fx_addsy == NULL \ - || (! S_IS_WEAK ((X)->fx_addsy) \ - && ! (OUTPUT_FLAVOR == bfd_target_elf_flavour \ - && S_IS_EXTERNAL ((X)->fx_addsy)))) \ - && (X)->fx_r_type != BFD_RELOC_VTABLE_INHERIT \ - && (X)->fx_r_type != BFD_RELOC_VTABLE_ENTRY \ - && (! IS_CRIS_PIC_RELOC ((X)->fx_r_type) \ - || (X)->fx_r_type == BFD_RELOC_CRIS_32_GOTREL)) +#define IS_CRIS_PIC_RELOC(RTYPE) \ + ((RTYPE) == BFD_RELOC_CRIS_16_GOT \ + || (RTYPE) == BFD_RELOC_CRIS_32_GOT \ + || (RTYPE) == BFD_RELOC_CRIS_16_GOTPLT \ + || (RTYPE) == BFD_RELOC_CRIS_32_GOTPLT \ + || (RTYPE) == BFD_RELOC_CRIS_32_GOTREL \ + || (RTYPE) == BFD_RELOC_CRIS_32_PLT_GOTREL \ + || (RTYPE) == BFD_RELOC_CRIS_32_PLT_PCREL) + +/* Make sure we don't resolve fixups for which we want to emit dynamic + relocations. FIXME: Set fx_plt instead of using IS_CRIS_PIC_RELOC. */ +#define TC_FORCE_RELOCATION_LOCAL(FIX) \ + (!(FIX)->fx_pcrel \ + || (FIX)->fx_plt \ + || IS_CRIS_PIC_RELOC ((FIX)->fx_r_type) \ + || TC_FORCE_RELOCATION (FIX)) + +/* For some reloc types, don't adjust fixups by reducing to a section + symbol. */ +#define tc_fix_adjustable(FIX) \ + ((FIX)->fx_r_type != BFD_RELOC_VTABLE_INHERIT \ + && (FIX)->fx_r_type != BFD_RELOC_VTABLE_ENTRY \ + && (! IS_CRIS_PIC_RELOC ((FIX)->fx_r_type) \ + || (FIX)->fx_r_type == BFD_RELOC_CRIS_32_GOTREL)) /* When we have fixups against constant expressions, we get a GAS-specific section symbol at no extra charge for obscure reasons in diff -uprN binutils-2.13.90.0.4/gas/config/tc-d10v.c binutils-2.13.90.0.10/gas/config/tc-d10v.c --- binutils-2.13.90.0.4/gas/config/tc-d10v.c Fri Jun 7 19:22:17 2002 +++ binutils-2.13.90.0.10/gas/config/tc-d10v.c Fri Sep 27 08:33:09 2002 @@ -1661,11 +1661,10 @@ tc_gen_reloc (seg, fixp) return NULL; } - if (fixp->fx_r_type == BFD_RELOC_VTABLE_INHERIT - || fixp->fx_r_type == BFD_RELOC_VTABLE_ENTRY) + if (fixp->fx_r_type == BFD_RELOC_VTABLE_ENTRY) reloc->address = fixp->fx_offset; - reloc->addend = fixp->fx_addnumber; + reloc->addend = 0; return reloc; } @@ -1694,37 +1693,21 @@ md_pcrel_from_section (fixp, sec) void md_apply_fix3 (fixP, valP, seg) fixS *fixP; - valueT * valP; + valueT *valP; segT seg ATTRIBUTE_UNUSED; { char *where; unsigned long insn; - long value = * (long *) valP; + long value = *valP; int op_type; int left = 0; if (fixP->fx_addsy == (symbolS *) NULL) fixP->fx_done = 1; - else if (fixP->fx_pcrel) - ; - - else - { - value = fixP->fx_offset; - - if (fixP->fx_subsy != (symbolS *) NULL) - { - if (S_GET_SEGMENT (fixP->fx_subsy) == absolute_section) - value -= S_GET_VALUE (fixP->fx_subsy); - else - { - /* We don't actually support subtracting a symbol. */ - as_bad_where (fixP->fx_file, fixP->fx_line, - _("expression too complex")); - } - } - } + /* We don't actually support subtracting a symbol. */ + if (fixP->fx_subsy != (symbolS *) NULL) + as_bad_where (fixP->fx_file, fixP->fx_line, _("expression too complex")); op_type = fixP->fx_r_type; if (op_type & 2048) @@ -1913,16 +1896,6 @@ boolean d10v_fix_adjustable (fixP) fixS *fixP; { - if (fixP->fx_addsy == NULL) - return 1; - - /* Prevent all adjustments to global and weak symbols or symbols in - merge sections. */ - if ((S_IS_EXTERN (fixP->fx_addsy) - || (S_IS_WEAK (fixP->fx_addsy)) - || (S_GET_SEGMENT (fixP->fx_addsy)->flags & SEC_MERGE) != 0)) - return 0; - /* We need the symbol name for the VTABLE entries. */ if (fixP->fx_r_type == BFD_RELOC_VTABLE_INHERIT || fixP->fx_r_type == BFD_RELOC_VTABLE_ENTRY) @@ -1939,5 +1912,5 @@ d10v_force_relocation (fixp) || fixp->fx_r_type == BFD_RELOC_VTABLE_ENTRY) return 1; - return 0; + return S_FORCE_RELOC (fixp->fx_addsy); } diff -uprN binutils-2.13.90.0.4/gas/config/tc-d10v.h binutils-2.13.90.0.10/gas/config/tc-d10v.h --- binutils-2.13.90.0.4/gas/config/tc-d10v.h Fri Apr 5 10:03:50 2002 +++ binutils-2.13.90.0.10/gas/config/tc-d10v.h Fri Sep 27 08:33:09 2002 @@ -19,8 +19,6 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#include "write.h" /* For the definition of fixS. */ - #define TC_D10V #define TARGET_BYTES_BIG_ENDIAN 0 @@ -35,8 +33,9 @@ #define TARGET_FORMAT "elf32-d10v" /* Call md_pcrel_from_section, not md_pcrel_from. */ -#define MD_PCREL_FROM_SECTION(FIXP, SEC) md_pcrel_from_section(FIXP, SEC) -long md_pcrel_from_section PARAMS ((fixS *, segT)); +#define MD_PCREL_FROM_SECTION(FIX, SEC) md_pcrel_from_section(FIX, SEC) +struct fix; +long md_pcrel_from_section PARAMS ((struct fix *, segT)); /* Permit temporary numeric labels. */ #define LOCAL_LABELS_FB 1 @@ -58,9 +57,17 @@ int d10v_cleanup PARAMS ((void)); S_SET_VALUE (sym, (valueT) frag_now_fix ()); \ } while (0) -#define obj_fix_adjustable(fixP) d10v_fix_adjustable(fixP) -boolean d10v_fix_adjustable PARAMS ((fixS *)); -#define TC_FORCE_RELOCATION(fixp) d10v_force_relocation(fixp) -extern int d10v_force_relocation PARAMS ((fixS *)); +#define tc_fix_adjustable(FIX) d10v_fix_adjustable(FIX) +boolean d10v_fix_adjustable PARAMS ((struct fix *)); + +#define TC_FORCE_RELOCATION(FIX) d10v_force_relocation(FIX) +extern int d10v_force_relocation PARAMS ((struct fix *)); + +/* Values passed to md_apply_fix3 don't include the symbol value. */ +#define MD_APPLY_SYM_VALUE(FIX) 0 + +/* No shared lib support, so we don't need to ensure externally + visible symbols can be overridden. */ +#define EXTERN_FORCE_RELOC 0 #define md_flush_pending_output d10v_cleanup diff -uprN binutils-2.13.90.0.4/gas/config/tc-d30v.c binutils-2.13.90.0.10/gas/config/tc-d30v.c --- binutils-2.13.90.0.4/gas/config/tc-d30v.c Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.10/gas/config/tc-d30v.c Fri Sep 27 08:33:09 2002 @@ -1808,7 +1808,8 @@ tc_gen_reloc (seg, fixp) (int) fixp->fx_r_type); return NULL; } - reloc->addend = fixp->fx_addnumber; + + reloc->addend = 0; return reloc; } @@ -1836,33 +1837,19 @@ md_pcrel_from_section (fixp, sec) void md_apply_fix3 (fixP, valP, seg) fixS *fixP; - valueT * valP; + valueT *valP; segT seg; { char *where; unsigned long insn, insn2; - long value = * (long *) valP; + long value = *valP; if (fixP->fx_addsy == (symbolS *) NULL) fixP->fx_done = 1; - else if (fixP->fx_pcrel) - ; - - else - { - value = fixP->fx_offset; - - if (fixP->fx_subsy != (symbolS *) NULL) - { - if (S_GET_SEGMENT (fixP->fx_subsy) == absolute_section) - value -= S_GET_VALUE (fixP->fx_subsy); - else - /* We don't actually support subtracting a symbol. */ - as_bad_where (fixP->fx_file, fixP->fx_line, - _("expression too complex")); - } - } + /* We don't support subtracting a symbol. */ + if (fixP->fx_subsy != (symbolS *) NULL) + as_bad_where (fixP->fx_file, fixP->fx_line, _("expression too complex")); /* Fetch the instruction, insert the fully resolved operand value, and stuff the instruction back again. */ diff -uprN binutils-2.13.90.0.4/gas/config/tc-d30v.h binutils-2.13.90.0.10/gas/config/tc-d30v.h --- binutils-2.13.90.0.4/gas/config/tc-d30v.h Fri Nov 16 14:05:52 2001 +++ binutils-2.13.90.0.10/gas/config/tc-d30v.h Fri Sep 27 08:33:09 2002 @@ -1,5 +1,5 @@ /* tc-310v.h -- Header file for tc-d30v.c. - Copyright 1997, 1998, 2000, 2001 Free Software Foundation, Inc. + Copyright 1997, 1998, 2000, 2001, 2002 Free Software Foundation, Inc. Written by Martin Hunt, Cygnus Support. This file is part of GAS, the GNU Assembler. @@ -19,8 +19,6 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#include "write.h" /* For the definition of fixS. */ - #define TC_D30V #ifndef BFD_ASSEMBLER @@ -35,8 +33,9 @@ #define md_operand(x) /* Call md_pcrel_from_section, not md_pcrel_from. */ -extern long md_pcrel_from_section PARAMS ((fixS *fixp, segT sec)); -#define MD_PCREL_FROM_SECTION(FIXP, SEC) md_pcrel_from_section(FIXP, SEC) +struct fix; +extern long md_pcrel_from_section PARAMS ((struct fix *, segT)); +#define MD_PCREL_FROM_SECTION(FIX, SEC) md_pcrel_from_section(FIX, SEC) /* Permit temporary numeric labels. */ #define LOCAL_LABELS_FB 1 @@ -60,3 +59,10 @@ void d30v_frob_label PARAMS ((symbolS *) void d30v_cons_align PARAMS ((int)); #define md_cons_align(nbytes) d30v_cons_align(nbytes) + +/* Values passed to md_apply_fix3 don't include the symbol value. */ +#define MD_APPLY_SYM_VALUE(FIX) 0 + +/* No shared lib support, so we don't need to ensure externally + visible symbols can be overridden. */ +#define EXTERN_FORCE_RELOC 0 diff -uprN binutils-2.13.90.0.4/gas/config/tc-dlx.c binutils-2.13.90.0.10/gas/config/tc-dlx.c --- binutils-2.13.90.0.4/gas/config/tc-dlx.c Sat Jun 8 20:44:52 2002 +++ binutils-2.13.90.0.10/gas/config/tc-dlx.c Fri Sep 27 08:33:09 2002 @@ -1150,7 +1150,8 @@ md_dlx_force_relocation (fixp) struct fix *fixp; { return (fixp->fx_r_type == BFD_RELOC_VTABLE_INHERIT - || fixp->fx_r_type == BFD_RELOC_VTABLE_ENTRY); + || fixp->fx_r_type == BFD_RELOC_VTABLE_ENTRY + || S_FORCE_RELOC (fixp->fx_addsy)); } boolean @@ -1158,15 +1159,14 @@ md_dlx_fix_adjustable (fixP) fixS *fixP; { /* We need the symbol name for the VTABLE entries. */ - return !(fixP->fx_addsy != NULL && - (fixP->fx_r_type == BFD_RELOC_VTABLE_INHERIT - || fixP->fx_r_type == BFD_RELOC_VTABLE_ENTRY)) ; + return (fixP->fx_r_type != BFD_RELOC_VTABLE_INHERIT + && fixP->fx_r_type != BFD_RELOC_VTABLE_ENTRY); } void md_apply_fix3 (fixP, valP, seg) fixS *fixP; - valueT * valP; + valueT *valP; segT seg ATTRIBUTE_UNUSED; { long val = *valP; @@ -1234,7 +1234,7 @@ md_apply_fix3 (fixP, valP, seg) } number_to_chars_bigendian (place, val, fixP->fx_size); - if (fixP->fx_addsy == NULL && fixP->fx_pcrel == 0) + if (fixP->fx_addsy == NULL) fixP->fx_done = 1; return; } @@ -1442,11 +1442,10 @@ tc_gen_reloc (section, fixP) *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixP->fx_addsy); reloc->address = fixP->fx_frag->fr_address + fixP->fx_where; - if (fixP->fx_r_type == BFD_RELOC_VTABLE_INHERIT || - fixP->fx_r_type == BFD_RELOC_VTABLE_ENTRY) - reloc->addend = fixP->fx_offset; - else - reloc->addend = fixP->fx_addnumber; + if (fixP->fx_r_type == BFD_RELOC_VTABLE_ENTRY) + reloc->address = fixP->fx_offset; + reloc->addend = 0; + return reloc; } diff -uprN binutils-2.13.90.0.4/gas/config/tc-dlx.h binutils-2.13.90.0.10/gas/config/tc-dlx.h --- binutils-2.13.90.0.4/gas/config/tc-dlx.h Fri Jun 7 19:22:17 2002 +++ binutils-2.13.90.0.10/gas/config/tc-dlx.h Fri Sep 27 08:33:09 2002 @@ -20,8 +20,6 @@ /* Initially created by Kuang Hwa Lin, 3/20/2002. */ -#include "write.h" /* For the definition of fixS. */ - #define TC_DLX #ifndef BFD_ASSEMBLER @@ -47,8 +45,7 @@ extern int set_dlx_skip_hi16_flag #define md_pop_insert() dlx_pop_insert () -#define md_convert_frag(b,s,f) as_fatal ("alpha convert_frag\n") -#define md_convert_frag(b,s,f) as_fatal ("alpha convert_frag\n") +#define md_convert_frag(b,s,f) as_fatal ("convert_frag called\n") #define md_estimate_size_before_relax(f,s) \ (as_fatal ("estimate_size_before_relax called"),1) @@ -73,18 +70,20 @@ extern int dlx_unrecognized_line PARAMS #define TC_COUNT_RELOC(x) (x->fx_addsy) #define TC_CONS_RELOC BFD_RELOC_32_PCREL +/* No shared lib support, so we don't need to ensure externally + visible symbols can be overridden. */ +#define EXTERN_FORCE_RELOC 0 + /* We need to force out some relocations when relaxing. */ -#define TC_FORCE_RELOCATION(fix) md_dlx_force_relocation (fix) +#define TC_FORCE_RELOCATION(FIX) md_dlx_force_relocation (FIX) struct fix; extern int md_dlx_force_relocation PARAMS ((struct fix *)); -#define obj_fix_adjustable(fixP) md_dlx_fix_adjustable(fixP) -struct fix; +#define tc_fix_adjustable(FIX) md_dlx_fix_adjustable (FIX) extern boolean md_dlx_fix_adjustable PARAMS ((struct fix *)); -/* This arranges for gas/write.c to not apply a relocation if - obj_fix_adjustable() says it is not adjustable. */ -#define TC_FIX_ADJUSTABLE(fixP) obj_fix_adjustable (fixP) +/* Values passed to md_apply_fix3 don't include the symbol value. */ +#define MD_APPLY_SYM_VALUE(FIX) 0 #define NEED_FX_R_TYPE @@ -93,10 +92,8 @@ extern boolean md_dlx_fix_adjustable PAR /* Permit temporary numeric labels. */ #define LOCAL_LABELS_FB 1 -#ifdef LOCAL_LABELS_DOLLAR + #undef LOCAL_LABELS_DOLLAR -#endif #define LOCAL_LABELS_DOLLAR 0 #define DIFF_EXPR_OK /* .-foo gets turned into PC relative relocs */ - diff -uprN binutils-2.13.90.0.4/gas/config/tc-fr30.c binutils-2.13.90.0.10/gas/config/tc-fr30.c --- binutils-2.13.90.0.4/gas/config/tc-fr30.c Mon Oct 1 15:25:22 2001 +++ binutils-2.13.90.0.10/gas/config/tc-fr30.c Fri Sep 27 08:33:09 2002 @@ -1,5 +1,5 @@ /* tc-fr30.c -- Assembler for the Fujitsu FR30. - Copyright 1998, 1999, 2000, 2001 Free Software Foundation, Inc. + Copyright 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -479,11 +479,11 @@ int fr30_force_relocation (fix) fixS * fix; { - if ( fix->fx_r_type == BFD_RELOC_VTABLE_INHERIT + if (fix->fx_r_type == BFD_RELOC_VTABLE_INHERIT || fix->fx_r_type == BFD_RELOC_VTABLE_ENTRY) return 1; - return 0; + return S_FORCE_RELOC (fix->fx_addsy); } /* Write a value out to the object file, using the appropriate endianness. */ @@ -645,20 +645,8 @@ boolean fr30_fix_adjustable (fixP) fixS * fixP; { - if (fixP->fx_addsy == NULL) - return 1; - -#if 0 - /* Prevent all adjustments to global symbols. */ - if (S_IS_EXTERN (fixP->fx_addsy)) - return 0; - - if (S_IS_WEAK (fixP->fx_addsy)) - return 0; -#endif - /* We need the symbol name for the VTABLE entries */ - if ( fixP->fx_r_type == BFD_RELOC_VTABLE_INHERIT + if (fixP->fx_r_type == BFD_RELOC_VTABLE_INHERIT || fixP->fx_r_type == BFD_RELOC_VTABLE_ENTRY) return 0; diff -uprN binutils-2.13.90.0.4/gas/config/tc-fr30.h binutils-2.13.90.0.10/gas/config/tc-fr30.h --- binutils-2.13.90.0.4/gas/config/tc-fr30.h Fri Nov 16 14:05:52 2001 +++ binutils-2.13.90.0.10/gas/config/tc-fr30.h Fri Sep 27 08:33:09 2002 @@ -1,5 +1,5 @@ /* tc-fr30.h -- Header file for tc-fr30.c. - Copyright 1998, 1999, 2000, 2001 Free Software Foundation, Inc. + Copyright 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -34,10 +34,6 @@ #define TARGET_BYTES_BIG_ENDIAN 1 -/* call md_pcrel_from_section, not md_pcrel_from */ -long md_pcrel_from_section PARAMS ((struct fix *, segT)); -#define MD_PCREL_FROM_SECTION(FIXP, SEC) md_pcrel_from_section (FIXP, SEC) - /* Permit temporary numeric labels. */ #define LOCAL_LABELS_FB 1 @@ -46,9 +42,13 @@ long md_pcrel_from_section PARAMS ((stru /* We don't need to handle .word strangely. */ #define WORKING_DOT_WORD +/* Values passed to md_apply_fix3 don't include the symbol value. */ +#define MD_APPLY_SYM_VALUE(FIX) 0 + #define md_apply_fix3 gas_cgen_md_apply_fix3 -#define obj_fix_adjustable(fixP) fr30_fix_adjustable (fixP) +#define tc_fix_adjustable(FIX) fr30_fix_adjustable (FIX) +struct fix; extern boolean fr30_fix_adjustable PARAMS ((struct fix *)); /* When relaxing, we need to emit various relocs we otherwise wouldn't. */ @@ -58,7 +58,7 @@ extern int fr30_force_relocation PARAMS #define tc_gen_reloc gas_cgen_tc_gen_reloc /* Call md_pcrel_from_section(), not md_pcrel_from(). */ -#define MD_PCREL_FROM_SECTION(FIXP, SEC) md_pcrel_from_section (FIXP, SEC) +#define MD_PCREL_FROM_SECTION(FIX, SEC) md_pcrel_from_section (FIX, SEC) extern long md_pcrel_from_section PARAMS ((struct fix *, segT)); /* For 8 vs 16 vs 32 bit branch selection. */ diff -uprN binutils-2.13.90.0.4/gas/config/tc-frv.c binutils-2.13.90.0.10/gas/config/tc-frv.c --- binutils-2.13.90.0.4/gas/config/tc-frv.c Tue Jun 18 21:41:59 2002 +++ binutils-2.13.90.0.10/gas/config/tc-frv.c Fri Sep 27 08:33:09 2002 @@ -185,7 +185,7 @@ const pseudo_typeS md_pseudo_table[] = { "eflags", frv_set_flags, 0 }, { "word", cons, 4 }, { "picptr", frv_pic_ptr, 4 }, - { "file", dwarf2_directive_file, 0 }, + { "file", (void (*) PARAMS ((int))) dwarf2_directive_file, 0 }, { "loc", dwarf2_directive_loc, 0 }, { NULL, NULL, 0 } }; @@ -1226,7 +1226,7 @@ frv_force_relocation (fix) || fix->fx_r_type == BFD_RELOC_FRV_GPRELU12) return 1; - return 0; + return S_FORCE_RELOC (fix->fx_addsy); } /* Write a value out to the object file, using the appropriate endianness. */ @@ -1314,16 +1314,6 @@ frv_fix_adjustable (fixP) else reloc_type = fixP->fx_r_type; - if (fixP->fx_addsy == NULL) - return 1; - - /* Prevent all adjustments to global symbols. */ - if (S_IS_EXTERN (fixP->fx_addsy)) - return 0; - - if (S_IS_WEAK (fixP->fx_addsy)) - return 0; - /* We need the symbol name for the VTABLE entries */ if ( reloc_type == BFD_RELOC_VTABLE_INHERIT || reloc_type == BFD_RELOC_VTABLE_ENTRY diff -uprN binutils-2.13.90.0.4/gas/config/tc-frv.h binutils-2.13.90.0.10/gas/config/tc-frv.h --- binutils-2.13.90.0.4/gas/config/tc-frv.h Tue Jun 18 21:41:59 2002 +++ binutils-2.13.90.0.10/gas/config/tc-frv.h Fri Sep 27 08:33:09 2002 @@ -34,10 +34,6 @@ #define TARGET_BYTES_BIG_ENDIAN 1 -/* call md_pcrel_from_section, not md_pcrel_from */ -long md_pcrel_from_section PARAMS ((struct fix *, segT)); -#define MD_PCREL_FROM_SECTION(FIXP, SEC) md_pcrel_from_section (FIXP, SEC) - /* Permit temporary numeric labels. */ #define LOCAL_LABELS_FB 1 @@ -46,6 +42,9 @@ long md_pcrel_from_section PARAMS ((stru /* We don't need to handle .word strangely. */ #define WORKING_DOT_WORD +/* Values passed to md_apply_fix3 don't include the symbol value. */ +#define MD_APPLY_SYM_VALUE(FIX) 0 + #define md_apply_fix3 gas_cgen_md_apply_fix3 extern void frv_tomcat_workaround PARAMS ((void)); @@ -56,15 +55,10 @@ extern void frv_tomcat_workaround PARAMS extern long frv_relax_frag PARAMS ((fragS *, long)); #define md_relax_frag(segment, fragP, stretch) frv_relax_frag(fragP, stretch) -#define obj_fix_adjustable(fixP) frv_fix_adjustable (fixP) +#define tc_fix_adjustable(FIX) frv_fix_adjustable (FIX) +struct fix; extern boolean frv_fix_adjustable PARAMS ((struct fix *)); -#ifdef OBJ_ELF -/* This arranges for gas/write.c to not apply a relocation if - obj_fix_adjustable() says it is not adjustable. */ -#define TC_FIX_ADJUSTABLE(fixP) obj_fix_adjustable (fixP) -#endif - /* When relaxing, we need to emit various relocs we otherwise wouldn't. */ #define TC_FORCE_RELOCATION(fix) frv_force_relocation (fix) extern int frv_force_relocation PARAMS ((struct fix *)); @@ -80,7 +74,7 @@ void frv_frob_label PARAMS ((symbolS *)) #define md_cgen_record_fixup_exp frv_cgen_record_fixup_exp /* Call md_pcrel_from_section(), not md_pcrel_from(). */ -#define MD_PCREL_FROM_SECTION(FIXP, SEC) md_pcrel_from_section (FIXP, SEC) +#define MD_PCREL_FROM_SECTION(FIX, SEC) md_pcrel_from_section (FIX, SEC) extern long md_pcrel_from_section PARAMS ((struct fix *, segT)); /* After all of the symbols have been adjusted, go over the file looking diff -uprN binutils-2.13.90.0.4/gas/config/tc-h8300.c binutils-2.13.90.0.10/gas/config/tc-h8300.c --- binutils-2.13.90.0.4/gas/config/tc-h8300.c Sat Jun 8 20:44:52 2002 +++ binutils-2.13.90.0.10/gas/config/tc-h8300.c Fri Sep 27 08:33:09 2002 @@ -1510,7 +1510,7 @@ md_apply_fix3 (fixP, valP, seg) segT seg ATTRIBUTE_UNUSED; { char *buf = fixP->fx_where + fixP->fx_frag->fr_literal; - long val = * (long *) valP; + long val = *valP; switch (fixP->fx_size) { diff -uprN binutils-2.13.90.0.4/gas/config/tc-h8300.h binutils-2.13.90.0.10/gas/config/tc-h8300.h --- binutils-2.13.90.0.4/gas/config/tc-h8300.h Mon Oct 1 15:25:22 2001 +++ binutils-2.13.90.0.10/gas/config/tc-h8300.h Fri Sep 27 08:33:09 2002 @@ -1,6 +1,6 @@ /* This file is tc-h8300.h Copyright 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, - 1997, 1998, 2000 + 1997, 1998, 2000, 2002 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -26,11 +26,16 @@ #define TARGET_ARCH bfd_arch_h8300 +#ifdef BFD_ASSEMBLER +/* Fixup debug sections since we will never relax them. */ +#define TC_LINKRELAX_FIXUP(seg) (seg->flags & SEC_ALLOC) +#endif #ifdef OBJ_ELF #define TARGET_FORMAT "elf32-h8300" #endif #if ANSI_PROTOTYPES +struct fix; struct internal_reloc; #endif @@ -49,6 +54,10 @@ struct internal_reloc; extern void tc_reloc_mangle PARAMS ((struct fix *, struct internal_reloc *, bfd_vma)); +/* No shared lib support, so we don't need to ensure externally + visible symbols can be overridden. */ +#define EXTERN_FORCE_RELOC 0 + #ifdef OBJ_ELF /* Provide mappings from the original H8 COFF relocation names to their corresponding BFD relocation names. This allows us to use diff -uprN binutils-2.13.90.0.4/gas/config/tc-hppa.c binutils-2.13.90.0.10/gas/config/tc-hppa.c --- binutils-2.13.90.0.4/gas/config/tc-hppa.c Fri Jun 7 19:22:17 2002 +++ binutils-2.13.90.0.10/gas/config/tc-hppa.c Fri Sep 27 08:33:09 2002 @@ -668,7 +668,7 @@ const pseudo_typeS md_pseudo_table[] = {"exit", pa_exit, 0}, {"export", pa_export, 0}, #ifdef OBJ_ELF - {"file", dwarf2_directive_file, 0 }, + {"file", (void (*) PARAMS ((int))) dwarf2_directive_file, 0 }, #endif {"fill", pa_fill, 0}, {"float", pa_float_cons, 'f'}, @@ -4419,9 +4419,6 @@ md_apply_fix3 (fixP, valP, seg) offsetT new_val; int insn, val, fmt; - if (fixP->fx_addsy == NULL && fixP->fx_pcrel == 0) - fixP->fx_done = 1; - /* SOM uses R_HPPA_ENTRY and R_HPPA_EXIT relocations which can never be "applied" (they are just markers). Likewise for R_HPPA_BEGIN_BRTAB and R_HPPA_END_BRTAB. */ @@ -4448,6 +4445,9 @@ md_apply_fix3 (fixP, valP, seg) return; #endif + if (fixP->fx_addsy == NULL && fixP->fx_pcrel == 0) + fixP->fx_done = 1; + /* There should have been an HPPA specific fixup associated with the GAS fixup. */ hppa_fixP = (struct hppa_fix_struct *) fixP->tc_fix_data; @@ -4483,13 +4483,6 @@ md_apply_fix3 (fixP, valP, seg) || hppa_fixP->fx_r_field == e_rtsel || hppa_fixP->fx_r_field == e_ltsel) new_val = ((fmt == 12 || fmt == 17 || fmt == 22) ? 8 : 0); - /* This is truly disgusting. The machine independent code blindly - adds in the value of the symbol being relocated against. Damn! */ - else if (fmt == 32 - && fixP->fx_addsy != NULL - && S_GET_SEGMENT (fixP->fx_addsy) != bfd_com_section_ptr) - new_val = hppa_field_adjust (* valP - S_GET_VALUE (fixP->fx_addsy), - 0, hppa_fixP->fx_r_field); #endif else new_val = hppa_field_adjust (* valP, 0, hppa_fixP->fx_r_field); @@ -8426,10 +8419,6 @@ hppa_fix_adjustable (fixp) } #endif - if (fixp->fx_addsy && (S_IS_EXTERNAL (fixp->fx_addsy) - || S_IS_WEAK (fixp->fx_addsy))) - return 0; - /* Reject reductions of symbols in sym1-sym2 expressions when the fixup will occur in a CODE subspace. @@ -8439,11 +8428,7 @@ hppa_fix_adjustable (fixp) if (fixp->fx_addsy && fixp->fx_subsy && (hppa_fix->segment->flags & SEC_CODE)) - { - /* Apparently sy_used_in_reloc never gets set for sub symbols. */ - symbol_mark_used_in_reloc (fixp->fx_subsy); - return 0; - } + return 0; /* We can't adjust any relocs that use LR% and RR% field selectors. @@ -8533,7 +8518,7 @@ hppa_force_relocation (fixp) /* Ensure we emit a relocation for global symbols so that dynamic linking works. */ - if (S_IS_EXTERNAL (fixp->fx_addsy) || S_IS_WEAK (fixp->fx_addsy)) + if (S_FORCE_RELOC (fixp->fx_addsy)) return 1; /* It is necessary to force PC-relative calls/jumps to have a relocation diff -uprN binutils-2.13.90.0.4/gas/config/tc-hppa.h binutils-2.13.90.0.10/gas/config/tc-hppa.h --- binutils-2.13.90.0.4/gas/config/tc-hppa.h Wed Jul 17 11:38:29 2002 +++ binutils-2.13.90.0.10/gas/config/tc-hppa.h Fri Sep 27 08:33:09 2002 @@ -133,10 +133,12 @@ extern void pa_check_eof PARAMS ((void)) int hppa_fix_adjustable PARAMS((struct fix *)); #define tc_fix_adjustable hppa_fix_adjustable +#define EXTERN_FORCE_RELOC 1 + /* Because of the strange PA calling conventions, it is sometimes necessary to emit a relocation for a call even though it would normally appear safe to handle it completely within GAS. */ -#define TC_FORCE_RELOCATION(FIXP) hppa_force_relocation (FIXP) +#define TC_FORCE_RELOCATION(FIX) hppa_force_relocation (FIX) #ifdef OBJ_SOM /* If a symbol is imported, but never used, then the symbol should @@ -159,11 +161,10 @@ int hppa_fix_adjustable PARAMS((struct f #define UNDEFINED_DIFFERENCE_OK #endif -#ifdef OBJ_ELF -/* It's OK to subtract two symbols in the same section without - emitting a relocation. */ -#define TC_FORCE_RELOCATION_SECTION(FIXP, SEC) 0 +/* Values passed to md_apply_fix3 don't include the symbol value. */ +#define MD_APPLY_SYM_VALUE(FIX) 0 +#ifdef OBJ_ELF /* Handle .type psuedo. Given a type string of `millicode', set the internal elf symbol type to STT_PARISC_MILLI, and return BSF_FUNCTION for the BFD symbol type. */ @@ -201,6 +202,6 @@ int hppa_force_reg_syms_absolute PARAMS ((expressionS *, operatorT, expressionS *)); #define TC_FIX_TYPE PTR -#define TC_INIT_FIX_DATA(FIXP) ((FIXP)->tc_fix_data = NULL) +#define TC_INIT_FIX_DATA(FIX) ((FIX)->tc_fix_data = NULL) #endif /* _TC_HPPA_H */ diff -uprN binutils-2.13.90.0.4/gas/config/tc-i370.c binutils-2.13.90.0.10/gas/config/tc-i370.c --- binutils-2.13.90.0.4/gas/config/tc-i370.c Sat Jun 8 20:44:52 2002 +++ binutils-2.13.90.0.10/gas/config/tc-i370.c Fri Sep 27 08:33:09 2002 @@ -2723,36 +2723,6 @@ md_apply_fix3 (fixP, valP, seg) if (fixP->fx_addsy != NULL) { - /* Notes: - Branches to labels will come in here with fixP->fx_pcrel set to 1 - and fixP->fx_subsy not null, and holding the value of the base - (i.e. the value of the .using). These we want to ignore. - - 'Strong' and 'weak' symbols will come in here with - fixP->fx_pcrel==0, fixP->fx_addsy defined, and - *valuep holding the value of the symbol. - - 'Strong' symbols will have S_GET_VALUE(fx_addsy) equal to zero, - whereas 'weak' symbols will have S_GET_VALUE(fx_addsy) set to the - symbol value (usually). - - We want to subtract S_GET_VALUE(fx_addsy) if it set, and - for all practical purposes, do a fixup with value zero. This - is because the linker/loader, at a later time, will do this - fixup with the correct value. If we fixup now with a value, - it will get double-fixed, leading to garbage. - - Note that subsy will also be set for strong/weak symbols - when the user program was compiled with -g. In that case, - subsy will hold the base address (i.e. the .using address). - */ - - if (fixP->fx_addsy->sy_used_in_reloc - && S_GET_SEGMENT (fixP->fx_addsy) != absolute_section - && S_GET_SEGMENT (fixP->fx_addsy) != undefined_section - && ! bfd_is_com_section (S_GET_SEGMENT (fixP->fx_addsy))) - value -= S_GET_VALUE (fixP->fx_addsy); - #ifdef DEBUG printf ("\nmd_apply_fix3: symbol %s at 0x%x (%s:%d) val=0x%x addend=0x%x\n", S_GET_NAME (fixP->fx_addsy), @@ -2762,10 +2732,7 @@ md_apply_fix3 (fixP, valP, seg) #endif } else - { - fixP->fx_done = 1; - return; - } + fixP->fx_done = 1; /* Apply fixups to operands. Note that there should be no relocations for any operands, since no instruction ever takes an operand diff -uprN binutils-2.13.90.0.4/gas/config/tc-i370.h binutils-2.13.90.0.10/gas/config/tc-i370.h --- binutils-2.13.90.0.4/gas/config/tc-i370.h Tue Jun 18 21:41:59 2002 +++ binutils-2.13.90.0.10/gas/config/tc-i370.h Fri Sep 27 08:33:09 2002 @@ -1,5 +1,5 @@ /* tc-i370.h -- Header file for tc-i370.c. - Copyright 1994, 1995, 1996, 1997, 1998, 2000, 2001 + Copyright 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2002 Free Software Foundation, Inc. Written by Ian Lance Taylor, Cygnus Support. @@ -43,9 +43,7 @@ extern enum bfd_architecture i370_arch P extern int target_big_endian; /* The target BFD format. */ -#ifdef OBJ_ELF #define TARGET_FORMAT ("elf32-i370") -#endif /* Permit temporary numeric labels. */ #define LOCAL_LABELS_FB 1 @@ -53,15 +51,16 @@ extern int target_big_endian; /* $ is used to refer to the current location. */ /* #define DOLLAR_DOT */ -#ifdef OBJ_ELF #define DIFF_EXPR_OK /* foo-. gets turned into PC relative relocs */ -#endif + +/* Values passed to md_apply_fix3 don't include the symbol value. */ +#define MD_APPLY_SYM_VALUE(FIX) 0 /* We don't need to handle .word strangely. */ #define WORKING_DOT_WORD /* Call md_pcrel_from_section, not md_pcrel_from. */ -#define MD_PCREL_FROM_SECTION(FIXP, SEC) md_pcrel_from_section(FIXP, SEC) +#define MD_PCREL_FROM_SECTION(FIX, SEC) md_pcrel_from_section(FIX, SEC) extern long md_pcrel_from_section PARAMS ((struct fix *, segT)); #define md_operand(x) diff -uprN binutils-2.13.90.0.4/gas/config/tc-i386.c binutils-2.13.90.0.10/gas/config/tc-i386.c --- binutils-2.13.90.0.4/gas/config/tc-i386.c Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/gas/config/tc-i386.c Wed Oct 2 10:17:19 2002 @@ -1213,15 +1213,11 @@ tc_i386_fix_adjustable (fixP) if (OUTPUT_FLAVOR != bfd_target_elf_flavour) return 1; - /* Prevent all adjustments to global symbols, or else dynamic - linking will not work correctly. */ - if (S_IS_EXTERNAL (fixP->fx_addsy) - || S_IS_WEAK (fixP->fx_addsy) - /* Don't adjust pc-relative references to merge sections in 64-bit - mode. */ - || (use_rela_relocations - && (S_GET_SEGMENT (fixP->fx_addsy)->flags & SEC_MERGE) != 0 - && fixP->fx_pcrel)) + /* Don't adjust pc-relative references to merge sections in 64-bit + mode. */ + if (use_rela_relocations + && (S_GET_SEGMENT (fixP->fx_addsy)->flags & SEC_MERGE) != 0 + && fixP->fx_pcrel) return 0; /* adjust_reloc_syms doesn't know about the GOT. */ @@ -1232,11 +1228,18 @@ tc_i386_fix_adjustable (fixP) || fixP->fx_r_type == BFD_RELOC_386_TLS_LDM || fixP->fx_r_type == BFD_RELOC_386_TLS_LDO_32 || fixP->fx_r_type == BFD_RELOC_386_TLS_IE_32 + || fixP->fx_r_type == BFD_RELOC_386_TLS_IE + || fixP->fx_r_type == BFD_RELOC_386_TLS_GOTIE || fixP->fx_r_type == BFD_RELOC_386_TLS_LE_32 || fixP->fx_r_type == BFD_RELOC_386_TLS_LE || fixP->fx_r_type == BFD_RELOC_X86_64_PLT32 || fixP->fx_r_type == BFD_RELOC_X86_64_GOT32 || fixP->fx_r_type == BFD_RELOC_X86_64_GOTPCREL + || fixP->fx_r_type == BFD_RELOC_X86_64_TLSGD + || fixP->fx_r_type == BFD_RELOC_X86_64_TLSLD + || fixP->fx_r_type == BFD_RELOC_X86_64_DTPOFF32 + || fixP->fx_r_type == BFD_RELOC_X86_64_GOTTPOFF + || fixP->fx_r_type == BFD_RELOC_X86_64_TPOFF32 || fixP->fx_r_type == BFD_RELOC_VTABLE_INHERIT || fixP->fx_r_type == BFD_RELOC_VTABLE_ENTRY) return 0; @@ -1258,11 +1261,18 @@ tc_i386_fix_adjustable (fixP) #define BFD_RELOC_386_TLS_LDM 0 #define BFD_RELOC_386_TLS_LDO_32 0 #define BFD_RELOC_386_TLS_IE_32 0 +#define BFD_RELOC_386_TLS_IE 0 +#define BFD_RELOC_386_TLS_GOTIE 0 #define BFD_RELOC_386_TLS_LE_32 0 #define BFD_RELOC_386_TLS_LE 0 #define BFD_RELOC_X86_64_PLT32 0 #define BFD_RELOC_X86_64_GOT32 0 #define BFD_RELOC_X86_64_GOTPCREL 0 +#define BFD_RELOC_X86_64_TLSGD 0 +#define BFD_RELOC_X86_64_TLSLD 0 +#define BFD_RELOC_X86_64_DTPOFF32 0 +#define BFD_RELOC_X86_64_GOTTPOFF 0 +#define BFD_RELOC_X86_64_TPOFF32 0 #endif static int intel_float_operand PARAMS ((const char *mnemonic)); @@ -2604,9 +2614,8 @@ process_operands () else if (i.tm.opcode_modifier & Modrm) { /* The opcode is completed (modulo i.tm.extension_opcode which - must be put into the modrm byte). - Now, we make the modrm & index base bytes based on all the - info we've collected. */ + must be put into the modrm byte). Now, we make the modrm and + index base bytes based on all the info we've collected. */ default_seg = build_modrm_byte (); } @@ -2633,12 +2642,14 @@ process_operands () default_seg = &ds; } - /* If a segment was explicitly specified, - and the specified segment is not the default, - use an opcode prefix to select it. - If we never figured out what the default segment is, - then default_seg will be zero at this point, - and the specified segment prefix will always be used. */ + if (i.tm.base_opcode == 0x8d /* lea */ && i.seg[0] && !quiet_warnings) + as_warn (_("segment override on `lea' is ineffectual")); + + /* If a segment was explicitly specified, and the specified segment + is not the default, use an opcode prefix to select it. If we + never figured out what the default segment is, then default_seg + will be zero at this point, and the specified segment prefix will + always be used. */ if ((i.seg[0]) && (i.seg[0] != default_seg)) { if (!add_prefix (i.seg[0]->seg_prefix)) @@ -3483,12 +3494,15 @@ lex_got (reloc, adjust) { "PLT", { BFD_RELOC_386_PLT32, 0, BFD_RELOC_X86_64_PLT32 } }, { "GOTOFF", { BFD_RELOC_386_GOTOFF, 0, 0 } }, { "GOTPCREL", { 0, 0, BFD_RELOC_X86_64_GOTPCREL } }, - { "TLSGD", { BFD_RELOC_386_TLS_GD, 0, 0 } }, + { "TLSGD", { BFD_RELOC_386_TLS_GD, 0, BFD_RELOC_X86_64_TLSGD } }, { "TLSLDM", { BFD_RELOC_386_TLS_LDM, 0, 0 } }, - { "GOTTPOFF", { BFD_RELOC_386_TLS_IE_32, 0, 0 } }, - { "TPOFF", { BFD_RELOC_386_TLS_LE_32, 0, 0 } }, + { "TLSLD", { 0, 0, BFD_RELOC_X86_64_TLSLD } }, + { "GOTTPOFF", { BFD_RELOC_386_TLS_IE_32, 0, BFD_RELOC_X86_64_GOTTPOFF } }, + { "TPOFF", { BFD_RELOC_386_TLS_LE_32, 0, BFD_RELOC_X86_64_TPOFF32 } }, { "NTPOFF", { BFD_RELOC_386_TLS_LE, 0, 0 } }, - { "DTPOFF", { BFD_RELOC_386_TLS_LDO_32, 0, 0 } }, + { "DTPOFF", { BFD_RELOC_386_TLS_LDO_32, 0, BFD_RELOC_X86_64_DTPOFF32 } }, + { "GOTNTPOFF",{ BFD_RELOC_386_TLS_GOTIE, 0, 0 } }, + { "INDNTPOFF",{ BFD_RELOC_386_TLS_IE, 0, 0 } }, { "GOT", { BFD_RELOC_386_GOT32, 0, BFD_RELOC_X86_64_GOT32 } } }; char *cp; @@ -4597,7 +4611,7 @@ md_apply_fix3 (fixP, valP, seg) } } - if (fixP->fx_pcrel + if (fixP->fx_addsy != NULL && (fixP->fx_r_type == BFD_RELOC_32_PCREL || fixP->fx_r_type == BFD_RELOC_16_PCREL || fixP->fx_r_type == BFD_RELOC_8_PCREL) @@ -4618,19 +4632,16 @@ md_apply_fix3 (fixP, valP, seg) #if defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF) if (OUTPUT_FLAVOR == bfd_target_elf_flavour) { - segT fseg = S_GET_SEGMENT (fixP->fx_addsy); + segT sym_seg = S_GET_SEGMENT (fixP->fx_addsy); - if ((fseg == seg + if ((sym_seg == seg || (symbol_section_p (fixP->fx_addsy) - && fseg != absolute_section)) - && !S_IS_EXTERNAL (fixP->fx_addsy) - && !S_IS_WEAK (fixP->fx_addsy) - && S_IS_DEFINED (fixP->fx_addsy) - && !S_IS_COMMON (fixP->fx_addsy)) + && sym_seg != absolute_section)) + && !S_FORCE_RELOC (fixP->fx_addsy)) { /* Yes, we add the values in twice. This is because - bfd_perform_relocation subtracts them out again. I think - bfd_perform_relocation is broken, but I don't dare change + bfd_install_relocation subtracts them out again. I think + bfd_install_relocation is broken, but I don't dare change it. FIXME. */ value += fixP->fx_where + fixP->fx_frag->fr_address; } @@ -4661,11 +4672,13 @@ md_apply_fix3 (fixP, valP, seg) case BFD_RELOC_386_GOT32: case BFD_RELOC_386_TLS_GD: case BFD_RELOC_386_TLS_LDM: - case BFD_RELOC_386_TLS_LDO_32: case BFD_RELOC_386_TLS_IE_32: - case BFD_RELOC_386_TLS_LE_32: - case BFD_RELOC_386_TLS_LE: + case BFD_RELOC_386_TLS_IE: + case BFD_RELOC_386_TLS_GOTIE: case BFD_RELOC_X86_64_GOT32: + case BFD_RELOC_X86_64_TLSGD: + case BFD_RELOC_X86_64_TLSLD: + case BFD_RELOC_X86_64_GOTTPOFF: value = 0; /* Fully resolved at runtime. No addend. */ break; @@ -4960,7 +4973,7 @@ i386_target_format () { if (flag_code == CODE_64BIT) use_rela_relocations = 1; - return flag_code == CODE_64BIT ? "elf64-x86-64" : "elf32-i386"; + return flag_code == CODE_64BIT ? "elf64-x86-64" : ELF_TARGET_FORMAT; } #endif default: @@ -5113,6 +5126,17 @@ i386_validate_fix (fixp) } } +boolean +i386_force_relocation (fixp) + fixS *fixp; +{ + if (fixp->fx_r_type == BFD_RELOC_VTABLE_INHERIT + || fixp->fx_r_type == BFD_RELOC_VTABLE_ENTRY) + return 1; + + return S_FORCE_RELOC (fixp->fx_addsy); +} + arelent * tc_gen_reloc (section, fixp) asection *section ATTRIBUTE_UNUSED; @@ -5134,9 +5158,16 @@ tc_gen_reloc (section, fixp) case BFD_RELOC_386_TLS_LDM: case BFD_RELOC_386_TLS_LDO_32: case BFD_RELOC_386_TLS_IE_32: + case BFD_RELOC_386_TLS_IE: + case BFD_RELOC_386_TLS_GOTIE: case BFD_RELOC_386_TLS_LE_32: case BFD_RELOC_386_TLS_LE: case BFD_RELOC_X86_64_32S: + case BFD_RELOC_X86_64_TLSGD: + case BFD_RELOC_X86_64_TLSLD: + case BFD_RELOC_X86_64_DTPOFF32: + case BFD_RELOC_X86_64_GOTTPOFF: + case BFD_RELOC_X86_64_TPOFF32: case BFD_RELOC_RVA: case BFD_RELOC_VTABLE_ENTRY: case BFD_RELOC_VTABLE_INHERIT: @@ -5214,6 +5245,9 @@ tc_gen_reloc (section, fixp) case BFD_RELOC_X86_64_PLT32: case BFD_RELOC_X86_64_GOT32: case BFD_RELOC_X86_64_GOTPCREL: + case BFD_RELOC_X86_64_TLSGD: + case BFD_RELOC_X86_64_TLSLD: + case BFD_RELOC_X86_64_GOTTPOFF: rel->addend = fixp->fx_offset - fixp->fx_size; break; default: diff -uprN binutils-2.13.90.0.4/gas/config/tc-i386.h binutils-2.13.90.0.10/gas/config/tc-i386.h --- binutils-2.13.90.0.4/gas/config/tc-i386.h Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/gas/config/tc-i386.h Fri Sep 27 08:33:09 2002 @@ -60,13 +60,20 @@ extern unsigned long i386_mach PARAMS (( #define AOUT_TARGET_FORMAT "a.out-i386" #endif +#ifdef TE_FreeBSD +#define ELF_TARGET_FORMAT "elf32-i386-freebsd" +#endif +#ifndef ELF_TARGET_FORMAT +#define ELF_TARGET_FORMAT "elf32-i386" +#endif + #if ((defined (OBJ_MAYBE_COFF) && defined (OBJ_MAYBE_AOUT)) \ || defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF)) extern const char *i386_target_format PARAMS ((void)); #define TARGET_FORMAT i386_target_format () #else #ifdef OBJ_ELF -#define TARGET_FORMAT "elf32-i386" +#define TARGET_FORMAT ELF_TARGET_FORMAT #endif #ifdef OBJ_AOUT #define TARGET_FORMAT AOUT_TARGET_FORMAT @@ -88,7 +95,7 @@ extern void i386_elf_emit_arch_note PARA #define BFD_ARCH bfd_arch_i386 #define COFF_FLAGS F_AR32WR #define TC_COUNT_RELOC(x) ((x)->fx_addsy || (x)->fx_r_type==7) -#define TC_COFF_FIX2RTYPE(fixP) tc_coff_fix2rtype(fixP) +#define TC_COFF_FIX2RTYPE(FIX) tc_coff_fix2rtype(FIX) extern short tc_coff_fix2rtype PARAMS ((struct fix *)); #define TC_COFF_SIZEMACHDEP(frag) tc_coff_sizemachdep (frag) extern int tc_coff_sizemachdep PARAMS ((fragS *frag)); @@ -455,49 +462,33 @@ extern void x86_cons_fix_new #define NO_RELOC BFD_RELOC_NONE void i386_validate_fix PARAMS ((struct fix *)); -#define TC_VALIDATE_FIX(FIXP,SEGTYPE,SKIP) i386_validate_fix(FIXP) - -/* This is used to determine relocation types in tc-i386.c. The first - parameter is the current relocation type, the second one is the desired - type. The idea is that if the original type is already some kind of PIC - relocation, we leave it alone, otherwise we give it the desired type */ +#define TC_VALIDATE_FIX(FIX,SEGTYPE,SKIP) i386_validate_fix(FIX) #define tc_fix_adjustable(X) tc_i386_fix_adjustable(X) extern int tc_i386_fix_adjustable PARAMS ((struct fix *)); -#if (defined (OBJ_MAYBE_ELF) || defined (OBJ_ELF) || defined (OBJ_MAYBE_COFF) || defined (OBJ_COFF)) && !defined (TE_PE) -/* This arranges for gas/write.c to not apply a relocation if - tc_fix_adjustable() says it is not adjustable. - The "! symbol_used_in_reloc_p" test is there specifically to cover - the case of non-global symbols in linkonce sections. It's the - generally correct thing to do though; If a reloc is going to be - emitted against a symbol then we don't want to adjust the fixup by - applying the reloc during assembly. The reloc will be applied by - the linker during final link. */ -#define TC_FIX_ADJUSTABLE(fixP) \ - (! symbol_used_in_reloc_p ((fixP)->fx_addsy) && tc_fix_adjustable (fixP)) -#endif - -#define TC_FORCE_RELOCATION(FIXP) \ - ((FIXP)->fx_r_type == BFD_RELOC_VTABLE_INHERIT \ - || (FIXP)->fx_r_type == BFD_RELOC_VTABLE_ENTRY) - -/* This expression evaluates to false if the relocation is for a local object - for which we still want to do the relocation at runtime. True if we - are willing to perform this relocation while building the .o file. - This is only used for pcrel relocations, so GOTOFF does not need to be - checked here. I am not sure if some of the others are ever used with +#ifndef TE_PE +/* Values passed to md_apply_fix3 don't include the symbol value. */ +#define MD_APPLY_SYM_VALUE(FIX) 0 +#endif + +#define TC_FORCE_RELOCATION(FIX) i386_force_relocation (FIX) +extern boolean i386_force_relocation PARAMS ((struct fix *)); + +/* This expression evaluates to true if the relocation is for a local + object for which we still want to do the relocation at runtime. + False if we are willing to perform this relocation while building + the .o file. GOTOFF does not need to be checked here because it is + not pcrel. I am not sure if some of the others are ever used with pcrel, but it is easier to be safe than sorry. */ -#define TC_RELOC_RTSYM_LOC_FIXUP(FIX) \ - ((FIX)->fx_r_type != BFD_RELOC_386_PLT32 \ - && (FIX)->fx_r_type != BFD_RELOC_386_GOT32 \ - && (FIX)->fx_r_type != BFD_RELOC_386_GOTPC \ - && ((FIX)->fx_addsy == NULL \ - || (! S_IS_EXTERNAL ((FIX)->fx_addsy) \ - && ! S_IS_WEAK ((FIX)->fx_addsy) \ - && S_IS_DEFINED ((FIX)->fx_addsy) \ - && ! S_IS_COMMON ((FIX)->fx_addsy)))) +#define TC_FORCE_RELOCATION_LOCAL(FIX) \ + (!(FIX)->fx_pcrel \ + || (FIX)->fx_plt \ + || (FIX)->fx_r_type == BFD_RELOC_386_PLT32 \ + || (FIX)->fx_r_type == BFD_RELOC_386_GOT32 \ + || (FIX)->fx_r_type == BFD_RELOC_386_GOTPC \ + || TC_FORCE_RELOCATION (FIX)) #else /* ! BFD_ASSEMBLER */ @@ -511,8 +502,8 @@ extern int tc_i386_fix_adjustable PARAMS #undef REVERSE_SORT_RELOCS /* For COFF. */ -#define TC_FORCE_RELOCATION(FIXP) \ - ((FIXP)->fx_r_type == 7) +#define TC_FORCE_RELOCATION(FIX) \ + ((FIX)->fx_r_type == 7 || S_FORCE_RELOC ((FIX)->fx_addsy)) #endif /* ! BFD_ASSEMBLER */ #define md_operand(x) diff -uprN binutils-2.13.90.0.4/gas/config/tc-i860.c binutils-2.13.90.0.10/gas/config/tc-i860.c --- binutils-2.13.90.0.4/gas/config/tc-i860.c Sat Jun 8 20:44:52 2002 +++ binutils-2.13.90.0.10/gas/config/tc-i860.c Fri Sep 27 08:33:09 2002 @@ -1236,7 +1236,7 @@ md_apply_fix3 (fix, valP, seg) segT seg ATTRIBUTE_UNUSED; { char *buf; - long val = * (long *) valP + long val = *valP; unsigned long insn; valueT fup; diff -uprN binutils-2.13.90.0.4/gas/config/tc-i860.h binutils-2.13.90.0.10/gas/config/tc-i860.h --- binutils-2.13.90.0.4/gas/config/tc-i860.h Fri Nov 16 14:05:52 2001 +++ binutils-2.13.90.0.10/gas/config/tc-i860.h Fri Sep 27 08:33:09 2002 @@ -1,5 +1,5 @@ /* tc-i860.h -- Header file for the i860. - Copyright 1991, 1992, 1995, 1998, 2000, 2001 + Copyright 1991, 1992, 1995, 1998, 2000, 2001, 2002 Free Software Foundation, Inc. Brought back from the dead and completely reworked @@ -79,4 +79,11 @@ extern int target_big_endian; #define md_convert_frag(b,s,f) as_fatal (_("i860_convert_frag\n")); +/* Values passed to md_apply_fix3 don't include the symbol value. */ +#define MD_APPLY_SYM_VALUE(FIX) 0 + +/* No shared lib support, so we don't need to ensure externally + visible symbols can be overridden. */ +#define EXTERN_FORCE_RELOC 0 + #endif /* TC_I860 */ diff -uprN binutils-2.13.90.0.4/gas/config/tc-i960.c binutils-2.13.90.0.10/gas/config/tc-i960.c --- binutils-2.13.90.0.4/gas/config/tc-i960.c Sat Jun 8 20:44:52 2002 +++ binutils-2.13.90.0.10/gas/config/tc-i960.c Fri Sep 27 08:33:09 2002 @@ -152,7 +152,6 @@ static void parse_memop (); /* Parse a m static void parse_po (); /* Parse machine-dependent pseudo-op */ static void parse_regop (); /* Parse a register operand */ static void reg_fmt (); /* Generate a REG format instruction */ -void reloc_callj (); /* Relocate a 'callj' instruction */ static void relax_cobr (); /* "De-optimize" cobr into compare/branch */ static void s_leafproc (); /* Process '.leafproc' pseudo-op */ static void s_sysproc (); /* Process '.sysproc' pseudo-op */ @@ -2501,7 +2500,7 @@ relax_cobr (fragP) passed fixup structure. *************************************************************************** */ -void +int reloc_callj (fixP) /* Relocation that can be done at assembly time */ fixS *fixP; @@ -2512,7 +2511,7 @@ reloc_callj (fixP) if (!fixP->fx_tcbit) { /* This wasn't a callj instruction in the first place */ - return; + return 0; } where = fixP->fx_frag->fr_literal + fixP->fx_where; @@ -2526,7 +2525,6 @@ reloc_callj (fixP) /* Nothing else needs to be done for this instruction. Make sure 'md_number_to_field()' will perform a no-op. */ fixP->fx_bit_fixP = (bit_fixS *) 1; - } else if (TC_S_IS_CALLNAME (fixP->fx_addsy)) { @@ -2546,6 +2544,7 @@ reloc_callj (fixP) } /* switch on proc type */ /* else Symbol is neither a sysproc nor a leafproc */ + return 0; } /***************************************************************************** @@ -2810,10 +2809,10 @@ md_pcrel_from (fixP) void md_apply_fix3 (fixP, valP, seg) fixS *fixP; - valueT * valP; + valueT *valP; segT seg ATTRIBUTE_UNUSED; { - long val = * (long *) valP; + long val = *valP; char *place = fixP->fx_where + fixP->fx_frag->fr_literal; if (!fixP->fx_bit_fixP) @@ -2829,10 +2828,22 @@ md_apply_fix3 (fixP, valP, seg) md_number_to_imm (place, val, fixP->fx_size, fixP); } + else if ((int) fixP->fx_bit_fixP == 13 + && fixP->fx_addsy != NULL + && S_GET_SEGMENT (fixP->fx_addsy) == undefined_section) + { + /* This is a COBR instruction. They have only a + 13-bit displacement and are only to be used + for local branches: flag as error, don't generate + relocation. */ + as_bad_where (fixP->fx_file, fixP->fx_line, + _("can't use COBR format with external label")); + fixP->fx_addsy = NULL; + } else md_number_to_field (place, val, fixP->fx_bit_fixP); - if (fixP->fx_addsy == NULL && fixP->fx_pcrel == 0) + if (fixP->fx_addsy == NULL) fixP->fx_done = 1; } @@ -3191,47 +3202,26 @@ i960_handle_align (fragp) } int -i960_validate_fix (fixP, this_segment_type, add_symbolPP) +i960_validate_fix (fixP, this_segment_type) fixS *fixP; segT this_segment_type; - symbolS **add_symbolPP; { -#define add_symbolP (*add_symbolPP) - if (fixP->fx_tcbit && TC_S_IS_CALLNAME (add_symbolP)) + if (fixP->fx_tcbit && TC_S_IS_CALLNAME (fixP->fx_addsy)) { /* Relocation should be done via the associated 'bal' entry point symbol. */ - if (!TC_S_IS_BALNAME (tc_get_bal_of_call (add_symbolP))) + if (!TC_S_IS_BALNAME (tc_get_bal_of_call (fixP->fx_addsy))) { - as_bad (_("No 'bal' entry point for leafproc %s"), - S_GET_NAME (add_symbolP)); - return 1; + as_bad_where (fixP->fx_file, fixP->fx_line, + _("No 'bal' entry point for leafproc %s"), + S_GET_NAME (fixP->fx_addsy)); + return 0; } - fixP->fx_addsy = add_symbolP = tc_get_bal_of_call (add_symbolP); + fixP->fx_addsy = tc_get_bal_of_call (fixP->fx_addsy); } -#if 0 - /* Still have to work out other conditions for these tests. */ - { - if (fixP->fx_tcbit) - { - as_bad (_("callj to difference of two symbols")); - return 1; - } - reloc_callj (fixP); - if ((int) fixP->fx_bit_fixP == 13) - { - /* This is a COBR instruction. They have only a 13-bit - displacement and are only to be used for local branches: - flag as error, don't generate relocation. */ - as_bad (_("can't use COBR format with external label")); - fixP->fx_addsy = NULL; /* No relocations please. */ - return 1; - } - } -#endif -#undef add_symbolP - return 0; + + return 1; } #ifdef BFD_ASSEMBLER diff -uprN binutils-2.13.90.0.4/gas/config/tc-i960.h binutils-2.13.90.0.10/gas/config/tc-i960.h --- binutils-2.13.90.0.4/gas/config/tc-i960.h Thu Jul 26 18:02:55 2001 +++ binutils-2.13.90.0.10/gas/config/tc-i960.h Fri Sep 27 08:33:09 2002 @@ -1,6 +1,6 @@ /* tc-i960.h - Basic 80960 instruction formats. Copyright 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1997, 1998, 1999, - 2000 + 2000, 2002 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -62,13 +62,11 @@ #define COFF_MAGIC I960ROMAGIC #define OBJ_COFF_SECTION_HEADER_HAS_ALIGNMENT #define OBJ_COFF_MAX_AUXENTRIES (2) -#define TC_COUNT_RELOC(FIXP) (!(FIXP)->fx_done) -#define TC_COFF_FIX2RTYPE(FIXP) tc_coff_fix2rtype (FIXP) +#define TC_COUNT_RELOC(FIX) (!(FIX)->fx_done) +#define TC_COFF_FIX2RTYPE(FIX) tc_coff_fix2rtype (FIX) #define TC_COFF_SIZEMACHDEP(FRAGP) tc_coff_sizemachdep (FRAGP) #define TC_COFF_SET_MACHINE(HDRS) tc_headers_hook (HDRS) -extern void tc_headers_hook (); -extern short tc_coff_fix2rtype (); -extern int tc_coff_sizemachdep (); +extern int tc_coff_sizemachdep PARAMS ((struct frag *)); /* MEANING OF 'n_other' in the symbol record. * @@ -128,54 +126,66 @@ struct relocation_info nuthin:1; /* Unused */ }; +/* No shared lib support, so we don't need to ensure externally + visible symbols can be overridden. */ +#define EXTERN_FORCE_RELOC 0 + +/* Makes no sense to use the difference of 2 arbitrary symbols + as the target of a call instruction. */ +#define TC_FORCE_RELOCATION_SUB_SAME(FIX, SEG) \ + ((FIX)->fx_tcbit \ + || ! SEG_NORMAL (SEG)) + +/* reloc_callj() may replace a 'call' with a 'calls' or a + 'bal', in which cases it modifies *fixP as appropriate. + In the case of a 'calls', no further work is required. */ +extern int reloc_callj PARAMS ((struct fix *)); + +#define TC_FORCE_RELOCATION_ABS(FIX) \ + (TC_FORCE_RELOCATION (FIX) \ + || reloc_callj (FIX)) + +#define TC_FORCE_RELOCATION_LOCAL(FIX) \ + (!(FIX)->fx_pcrel \ + || (FIX)->fx_plt \ + || TC_FORCE_RELOCATION (FIX) \ + || reloc_callj (FIX)) + #ifdef OBJ_COFF /* We store the bal information in the sy_tc field. */ #define TC_SYMFIELD_TYPE symbolS * -#define TC_ADJUST_RELOC_COUNT(FIXP,COUNT) \ - { fixS *tcfixp = (FIXP); \ +#define TC_ADJUST_RELOC_COUNT(FIX,COUNT) \ + { fixS *tcfixp = (FIX); \ for (;tcfixp;tcfixp=tcfixp->fx_next) \ if (tcfixp->fx_tcbit && tcfixp->fx_addsy != 0) \ ++(COUNT); \ } #endif -extern int i960_validate_fix PARAMS ((struct fix *, segT, symbolS **)); -#define TC_VALIDATE_FIX(FIXP,SEGTYPE,LABEL) \ - if (i960_validate_fix (FIXP, SEGTYPE, &add_symbolP) != 0) goto LABEL +extern int i960_validate_fix PARAMS ((struct fix *, segT)); +#define TC_VALIDATE_FIX(FIX,SEGTYPE,LABEL) \ + if (!i960_validate_fix (FIX, SEGTYPE)) goto LABEL -#ifdef OBJ_ELF -#define TC_RELOC_RTSYM_LOC_FIXUP(FIX) \ - ((FIX)->fx_addsy == NULL \ - || (! S_IS_EXTERNAL ((FIX)->fx_addsy) \ - && ! S_IS_WEAK ((FIX)->fx_addsy) \ - && S_IS_DEFINED ((FIX)->fx_addsy) \ - && ! S_IS_COMMON ((FIX)->fx_addsy))) -#endif +#define tc_fix_adjustable(FIX) ((FIX)->fx_bsr == 0) #ifndef OBJ_ELF -#define tc_fix_adjustable(FIXP) ((FIXP)->fx_bsr == 0) -/* This arranges for gas/write.c to not apply a relocation if - tc_fix_adjustable() says it is not adjustable. */ -#define TC_FIX_ADJUSTABLE(fixP) tc_fix_adjustable (fixP) +/* Values passed to md_apply_fix3 sometimes include symbol values. */ +#define MD_APPLY_SYM_VALUE(FIX) tc_fix_adjustable (FIX) #else -#define tc_fix_adjustable(FIXP) \ - ((FIXP)->fx_bsr == 0 \ - && ! S_IS_EXTERNAL ((FIXP)->fx_addsy) \ - && ! S_IS_WEAK ((FIXP)->fx_addsy)) +/* Values passed to md_apply_fix3 don't include the symbol value. */ +#define MD_APPLY_SYM_VALUE(FIX) 0 #endif extern void brtab_emit PARAMS ((void)); #define md_end() brtab_emit () -extern void reloc_callj (); - extern void tc_set_bal_of_call PARAMS ((symbolS *, symbolS *)); extern struct symbol *tc_get_bal_of_call PARAMS ((symbolS *)); -extern void i960_handle_align (); +extern void i960_handle_align PARAMS ((struct frag *)); #define HANDLE_ALIGN(FRAG) i960_handle_align (FRAG) #define NEED_FX_R_TYPE #define NO_RELOC -1 diff -uprN binutils-2.13.90.0.4/gas/config/tc-ia64.c binutils-2.13.90.0.10/gas/config/tc-ia64.c --- binutils-2.13.90.0.4/gas/config/tc-ia64.c Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.10/gas/config/tc-ia64.c Fri Sep 27 08:33:09 2002 @@ -4827,7 +4827,7 @@ const pseudo_typeS md_pseudo_table[] = { "body", dot_body, 0 }, { "prologue", dot_prologue, 0 }, { "endp", dot_endp, 0 }, - { "file", dwarf2_directive_file, 0 }, + { "file", (void (*) PARAMS ((int))) dwarf2_directive_file, 0 }, { "loc", dwarf2_directive_loc, 0 }, { "fframe", dot_fframe, 0 }, @@ -9985,9 +9985,10 @@ ia64_force_relocation (fix) return 1; default: - return 0; + break; } - return 0; + + return S_FORCE_RELOC (fix->fx_addsy); } /* Decide from what point a pc-relative relocation is relative to, diff -uprN binutils-2.13.90.0.4/gas/config/tc-ia64.h binutils-2.13.90.0.10/gas/config/tc-ia64.h --- binutils-2.13.90.0.4/gas/config/tc-ia64.h Sun May 26 09:57:12 2002 +++ binutils-2.13.90.0.10/gas/config/tc-ia64.h Fri Sep 27 08:33:09 2002 @@ -101,6 +101,7 @@ extern void ia64_after_parse_args PARAMS #define md_cons_align(n) ia64_cons_align (n) #define TC_FORCE_RELOCATION(f) ia64_force_relocation (f) #define tc_fix_adjustable(f) ia64_fix_adjustable (f) +#define MD_APPLY_SYM_VALUE(FIX) 0 #define md_convert_frag(b,s,f) as_fatal ("ia64_convert_frag") #define md_create_long_jump(p,f,t,fr,s) as_fatal ("ia64_create_long_jump") #define md_create_short_jump(p,f,t,fr,s) \ @@ -249,18 +250,16 @@ typedef struct unwind_record } record; } unwind_record; -/* This expression evaluates to false if the relocation is for a local +/* This expression evaluates to true if the relocation is for a local object for which we still want to do the relocation at runtime. - True if we are willing to perform this relocation while building - the .o file. This is only used for pcrel relocations. */ + False if we are willing to perform this relocation while building + the .o file. */ /* If the reloc type is BFD_RELOC_UNUSED, then this is for a TAG13/TAG13b field which has no external reloc, so we must resolve the value now. */ -#define TC_RELOC_RTSYM_LOC_FIXUP(FIX) \ - ((FIX)->fx_addsy == NULL \ - || (FIX)->fx_r_type == BFD_RELOC_UNUSED \ - || (! S_IS_EXTERNAL ((FIX)->fx_addsy) \ - && ! S_IS_WEAK ((FIX)->fx_addsy) \ - && S_IS_DEFINED ((FIX)->fx_addsy) \ - && ! S_IS_COMMON ((FIX)->fx_addsy))) +#define TC_FORCE_RELOCATION_LOCAL(FIX) \ + ((FIX)->fx_r_type != BFD_RELOC_UNUSED \ + && (!(FIX)->fx_pcrel \ + || (FIX)->fx_plt \ + || TC_FORCE_RELOCATION (FIX))) diff -uprN binutils-2.13.90.0.4/gas/config/tc-ip2k.c binutils-2.13.90.0.10/gas/config/tc-ip2k.c --- binutils-2.13.90.0.4/gas/config/tc-ip2k.c Mon Jul 29 08:19:18 2002 +++ binutils-2.13.90.0.10/gas/config/tc-ip2k.c Fri Sep 27 08:33:09 2002 @@ -66,7 +66,7 @@ static void ip2k_elf_section_rtn (int); /* The target specific pseudo-ops which we support. */ const pseudo_typeS md_pseudo_table[] = { - { "file", dwarf2_directive_file, 0 }, + { "file", (void (*) PARAMS ((int))) dwarf2_directive_file, 0 }, { "loc", dwarf2_directive_loc, 0 }, { "text", ip2k_elf_section_text, 0 }, { "sect", ip2k_elf_section_rtn, 0 }, @@ -403,18 +403,20 @@ ip2k_force_relocation (fix) return 1; case BFD_RELOC_16: - if (fix->fx_subsy && S_IS_DEFINED (fix->fx_subsy) + if (fix->fx_subsy && S_IS_DEFINED (fix->fx_subsy) && fix->fx_addsy && S_IS_DEFINED (fix->fx_addsy) && (S_GET_SEGMENT (fix->fx_addsy)->flags & SEC_CODE)) { fix->fx_r_type = BFD_RELOC_IP2K_TEXT; return 0; } - return 0; + break; default: - return 0; + break; } + + return S_FORCE_RELOC (fix->fx_addsy); } void diff -uprN binutils-2.13.90.0.4/gas/config/tc-ip2k.h binutils-2.13.90.0.10/gas/config/tc-ip2k.h --- binutils-2.13.90.0.4/gas/config/tc-ip2k.h Mon Jul 29 08:19:18 2002 +++ binutils-2.13.90.0.10/gas/config/tc-ip2k.h Fri Sep 27 08:33:09 2002 @@ -47,19 +47,24 @@ #define LITERAL_PREFIXPERCENT_BIN #define DOUBLESLASH_LINE_COMMENTS -#define MD_APPLY_FIX3 -#define md_apply_fix3 ip2k_apply_fix3 +/* Values passed to md_apply_fix3 don't include the symbol value. */ +#define MD_APPLY_SYM_VALUE(FIX) 0 -#define md_elf_section_flags ip2k_elf_section_flags -extern int ip2k_elf_section_flags PARAMS ((int, int, int)); +#define md_apply_fix3 ip2k_apply_fix3 #define TC_HANDLES_FX_DONE +/* No shared lib support, so we don't need to ensure externally + visible symbols can be overridden. */ +#define EXTERN_FORCE_RELOC 0 + +#define TC_FORCE_RELOCATION(FIX) ip2k_force_relocation (FIX) +extern int ip2k_force_relocation PARAMS ((struct fix *)); + #define tc_gen_reloc gas_cgen_tc_gen_reloc +#define md_elf_section_flags ip2k_elf_section_flags +extern int ip2k_elf_section_flags PARAMS ((int, int, int)); + #define md_operand(x) gas_cgen_md_operand (x) extern void gas_cgen_md_operand PARAMS ((expressionS *)); - -#define TC_FORCE_RELOCATION(fixp) ip2k_force_relocation (fixp) -extern int ip2k_force_relocation PARAMS ((struct fix *)); - diff -uprN binutils-2.13.90.0.4/gas/config/tc-m32r.c binutils-2.13.90.0.10/gas/config/tc-m32r.c --- binutils-2.13.90.0.4/gas/config/tc-m32r.c Fri Nov 16 14:05:52 2001 +++ binutils-2.13.90.0.10/gas/config/tc-m32r.c Fri Sep 27 08:33:09 2002 @@ -1,5 +1,5 @@ /* tc-m32r.c -- Assembler for the Mitsubishi M32R. - Copyright 1996, 1997, 1998, 1999, 2000, 2001 + Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -1800,7 +1800,8 @@ m32r_force_relocation (fix) fixS *fix; { if (fix->fx_r_type == BFD_RELOC_VTABLE_INHERIT - || fix->fx_r_type == BFD_RELOC_VTABLE_ENTRY) + || fix->fx_r_type == BFD_RELOC_VTABLE_ENTRY + || S_FORCE_RELOC (fix->fx_addsy)) return 1; if (! m32r_relax) @@ -1912,7 +1913,6 @@ boolean m32r_fix_adjustable (fixP) fixS *fixP; { - bfd_reloc_code_real_type reloc_type; if ((int) fixP->fx_r_type >= (int) BFD_RELOC_UNUSED) @@ -1926,15 +1926,6 @@ m32r_fix_adjustable (fixP) else reloc_type = fixP->fx_r_type; - if (fixP->fx_addsy == NULL) - return 1; - - /* Prevent all adjustments to global symbols. */ - if (S_IS_EXTERN (fixP->fx_addsy)) - return 0; - if (S_IS_WEAK (fixP->fx_addsy)) - return 0; - /* We need the symbol name for the VTABLE entries. */ if (reloc_type == BFD_RELOC_VTABLE_INHERIT || reloc_type == BFD_RELOC_VTABLE_ENTRY) diff -uprN binutils-2.13.90.0.4/gas/config/tc-m32r.h binutils-2.13.90.0.10/gas/config/tc-m32r.h --- binutils-2.13.90.0.4/gas/config/tc-m32r.h Fri Nov 16 14:05:52 2001 +++ binutils-2.13.90.0.10/gas/config/tc-m32r.h Fri Sep 27 08:33:09 2002 @@ -1,5 +1,5 @@ /* tc-m32r.h -- Header file for tc-m32r.c. - Copyright 1996, 1997, 1998, 1999, 2000, 2001 + Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -37,7 +37,7 @@ /* call md_pcrel_from_section, not md_pcrel_from */ long md_pcrel_from_section PARAMS ((struct fix *, segT)); -#define MD_PCREL_FROM_SECTION(FIXP, SEC) md_pcrel_from_section(FIXP, SEC) +#define MD_PCREL_FROM_SECTION(FIX, SEC) md_pcrel_from_section(FIX, SEC) /* Permit temporary numeric labels. */ #define LOCAL_LABELS_FB 1 @@ -68,9 +68,12 @@ extern void m32r_handle_align PARAMS ((f #define MAX_MEM_FOR_RS_ALIGN_CODE (1 + 2 + 4) +/* Values passed to md_apply_fix3 don't include the symbol value. */ +#define MD_APPLY_SYM_VALUE(FIX) 0 + #define md_apply_fix3 gas_cgen_md_apply_fix3 -#define obj_fix_adjustable(fixP) m32r_fix_adjustable(fixP) +#define tc_fix_adjustable(FIX) m32r_fix_adjustable (FIX) /* After creating a fixup for an instruction operand, we need to check for HI16 relocs and queue them up for later sorting. */ @@ -78,9 +81,13 @@ extern void m32r_handle_align PARAMS ((f #define tc_gen_reloc gas_cgen_tc_gen_reloc -#define tc_frob_file() m32r_frob_file () +#define tc_frob_file_before_fix() m32r_frob_file () extern void m32r_frob_file PARAMS ((void)); +/* No shared lib support, so we don't need to ensure externally + visible symbols can be overridden. */ +#define EXTERN_FORCE_RELOC 0 + /* When relaxing, we need to emit various relocs we otherwise wouldn't. */ #define TC_FORCE_RELOCATION(fix) m32r_force_relocation (fix) extern int m32r_force_relocation (); diff -uprN binutils-2.13.90.0.4/gas/config/tc-m68hc11.c binutils-2.13.90.0.10/gas/config/tc-m68hc11.c --- binutils-2.13.90.0.4/gas/config/tc-m68hc11.c Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/gas/config/tc-m68hc11.c Fri Sep 27 08:33:09 2002 @@ -261,7 +261,7 @@ const pseudo_typeS md_pseudo_table[] = { {"rmb", s_space, 0}, /* Dwarf2 support for Gcc. */ - {"file", dwarf2_directive_file, 0}, + {"file", (void (*) PARAMS ((int))) dwarf2_directive_file, 0}, {"loc", dwarf2_directive_loc, 0}, /* Motorola ALIS. */ @@ -2691,14 +2691,12 @@ tc_gen_reloc (section, fixp) return NULL; } - if (!fixp->fx_pcrel) - reloc->addend = fixp->fx_addnumber; - else - reloc->addend = (section->vma - /*+ (fixp->fx_pcrel_adjust == 64 - ? -1 : fixp->fx_pcrel_adjust)*/ - + fixp->fx_addnumber - + md_pcrel_from (fixp)); + /* Since we use Rel instead of Rela, encode the vtable entry to be + used in the relocation's section offset. */ + if (fixp->fx_r_type == BFD_RELOC_VTABLE_ENTRY) + reloc->address = fixp->fx_offset; + + reloc->addend = 0; return reloc; } @@ -3004,8 +3002,10 @@ tc_m68hc11_force_relocation (fixP) return 1; default: - return 0; + break; } + + return S_FORCE_RELOC (fixP->fx_addsy); } /* Here we decide which fixups can be adjusted to make them relative @@ -3017,10 +3017,6 @@ int tc_m68hc11_fix_adjustable (fixP) fixS *fixP; { - /* Prevent all adjustments to global symbols. */ - if (! relaxable_symbol (fixP->fx_addsy)) - return 0; - switch (fixP->fx_r_type) { /* For the linker relaxation to work correctly, these relocs @@ -3052,23 +3048,9 @@ md_apply_fix3 (fixP, valP, seg) if (fixP->fx_addsy == (symbolS *) NULL) fixP->fx_done = 1; - else if (fixP->fx_pcrel) - ; - - else - { - value = fixP->fx_offset; - - if (fixP->fx_subsy != (symbolS *) NULL) - { - if (S_GET_SEGMENT (fixP->fx_subsy) == absolute_section) - value -= S_GET_VALUE (fixP->fx_subsy); - else - /* We don't actually support subtracting a symbol. */ - as_bad_where (fixP->fx_file, fixP->fx_line, - _("Expression too complex.")); - } - } + /* We don't actually support subtracting a symbol. */ + if (fixP->fx_subsy != (symbolS *) NULL) + as_bad_where (fixP->fx_file, fixP->fx_line, _("Expression too complex.")); op_type = fixP->fx_r_type; @@ -3153,10 +3135,6 @@ md_apply_fix3 (fixP, valP, seg) as_fatal (_("Line %d: unknown relocation type: 0x%x."), fixP->fx_line, fixP->fx_r_type); } - - /* Are we finished with this relocation now? */ - if (fixP->fx_addsy == 0 && !fixP->fx_pcrel) - fixP->fx_done = 1; } /* Set the ELF specific flags. */ diff -uprN binutils-2.13.90.0.4/gas/config/tc-m68hc11.h binutils-2.13.90.0.10/gas/config/tc-m68hc11.h --- binutils-2.13.90.0.4/gas/config/tc-m68hc11.h Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/gas/config/tc-m68hc11.h Fri Sep 27 08:33:09 2002 @@ -75,10 +75,6 @@ extern const char *m68hc11_listing_heade /* Permit temporary numeric labels. */ #define LOCAL_LABELS_FB 1 -#define TC_HANDLES_FX_DONE - -#define DIFF_EXPR_OK /* .-foo gets turned into PC relative relocs */ - #define tc_init_after_args m68hc11_init_after_args extern void m68hc11_init_after_args PARAMS ((void)); @@ -97,6 +93,17 @@ extern int m68hc11_parse_long_option PAR #define TC_GENERIC_RELAX_TABLE md_relax_table extern struct relax_type md_relax_table[]; +#define TC_HANDLES_FX_DONE + +#define DIFF_EXPR_OK /* .-foo gets turned into PC relative relocs */ + +/* Values passed to md_apply_fix3 don't include the symbol value. */ +#define MD_APPLY_SYM_VALUE(FIX) 0 + +/* No shared lib support, so we don't need to ensure externally + visible symbols can be overridden. */ +#define EXTERN_FORCE_RELOC 0 + #define TC_FORCE_RELOCATION(fix) tc_m68hc11_force_relocation (fix) extern int tc_m68hc11_force_relocation PARAMS ((struct fix *)); diff -uprN binutils-2.13.90.0.4/gas/config/tc-m68k.c binutils-2.13.90.0.10/gas/config/tc-m68k.c --- binutils-2.13.90.0.4/gas/config/tc-m68k.c Sat Jun 8 20:44:52 2002 +++ binutils-2.13.90.0.10/gas/config/tc-m68k.c Fri Sep 27 08:33:09 2002 @@ -556,7 +556,7 @@ const pseudo_typeS md_pseudo_table[] = #ifdef OBJ_ELF /* Dwarf2 support for Gcc. */ - {"file", dwarf2_directive_file, 0}, + {"file", (void (*) PARAMS ((int))) dwarf2_directive_file, 0}, {"loc", dwarf2_directive_loc, 0}, #endif @@ -844,10 +844,6 @@ int tc_m68k_fix_adjustable (fixP) fixS *fixP; { - /* Prevent all adjustments to global symbols. */ - if (! relaxable_symbol (fixP->fx_addsy)) - return 0; - /* adjust_reloc_syms doesn't know about the GOT */ switch (fixP->fx_r_type) { @@ -3954,6 +3950,11 @@ select_control_regs () /* Note which set of "movec" control registers is available. */ switch (cpu_of_arch (current_architecture)) { + case 0: + as_warn (_("architecture not yet selected: defaulting to 68020")); + control_regs = m68020_control_regs; + break; + case m68000: control_regs = m68000_control_regs; break; diff -uprN binutils-2.13.90.0.4/gas/config/tc-m68k.h binutils-2.13.90.0.10/gas/config/tc-m68k.h --- binutils-2.13.90.0.4/gas/config/tc-m68k.h Sun Feb 3 11:22:31 2002 +++ binutils-2.13.90.0.10/gas/config/tc-m68k.h Fri Sep 27 08:33:09 2002 @@ -1,6 +1,6 @@ /* This file is tc-m68k.h Copyright 1987, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, - 1998, 1999, 2000 + 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -71,7 +71,7 @@ struct fix; #define COFF_FLAGS F_AR32W #define TC_COUNT_RELOC(x) ((x)->fx_addsy||(x)->fx_subsy) -#define TC_COFF_FIX2RTYPE(fixP) tc_coff_fix2rtype(fixP) +#define TC_COFF_FIX2RTYPE(FIX) tc_coff_fix2rtype(FIX) #define TC_COFF_SIZEMACHDEP(frag) tc_coff_sizemachdep(frag) extern int tc_coff_sizemachdep PARAMS ((struct frag *)); #ifdef TE_SUN3 @@ -166,36 +166,23 @@ while (0) #define RELAX_RELOC_PC32 BFD_RELOC_32_PCREL #ifdef OBJ_ELF - -/* This expression evaluates to false if the relocation is for a local object - for which we still want to do the relocation at runtime. True if we - are willing to perform this relocation while building the .o file. If - the reloc is against an externally visible symbol, then the assembler - should never do the relocation. */ - -#define TC_RELOC_RTSYM_LOC_FIXUP(FIX) \ - ((FIX)->fx_addsy == NULL \ - || (! S_IS_EXTERNAL ((FIX)->fx_addsy) \ - && ! S_IS_WEAK ((FIX)->fx_addsy) \ - && S_IS_DEFINED ((FIX)->fx_addsy) \ - && ! S_IS_COMMON ((FIX)->fx_addsy))) - #define tc_fix_adjustable(X) tc_m68k_fix_adjustable(X) extern int tc_m68k_fix_adjustable PARAMS ((struct fix *)); -#ifdef OBJ_ELF -/* This arranges for gas/write.c to not apply a relocation if - tc_fix_adjustable() says it is not adjustable. */ -#define TC_FIX_ADJUSTABLE(fixP) tc_fix_adjustable (fixP) -#endif +/* Target *-*-elf implies an embedded target. No shared libs. */ +#define EXTERN_FORCE_RELOC (strcmp (TARGET_OS, "elf") != 0) + +/* Values passed to md_apply_fix3 don't include symbol values. */ +#define MD_APPLY_SYM_VALUE(FIX) 0 #define elf_tc_final_processing m68k_elf_final_processing extern void m68k_elf_final_processing PARAMS ((void)); #endif #define TC_FORCE_RELOCATION(FIX) \ - ((FIX)->fx_r_type == BFD_RELOC_VTABLE_INHERIT \ - || (FIX)->fx_r_type == BFD_RELOC_VTABLE_ENTRY) + ((FIX)->fx_r_type == BFD_RELOC_VTABLE_INHERIT \ + || (FIX)->fx_r_type == BFD_RELOC_VTABLE_ENTRY \ + || S_FORCE_RELOC ((FIX)->fx_addsy)) #else /* ! BFD_ASSEMBLER */ diff -uprN binutils-2.13.90.0.4/gas/config/tc-mcore.c binutils-2.13.90.0.10/gas/config/tc-mcore.c --- binutils-2.13.90.0.4/gas/config/tc-mcore.c Sat Jun 8 20:44:53 2002 +++ binutils-2.13.90.0.10/gas/config/tc-mcore.c Fri Sep 27 08:33:09 2002 @@ -2099,19 +2099,14 @@ md_apply_fix3 (fixP, valP, segment) char * file = fixP->fx_file ? fixP->fx_file : _("unknown"); const char * symname; /* Note: use offsetT because it is signed, valueT is unsigned. */ - offsetT val = * (offsetT *) valP; + offsetT val = *valP; symname = fixP->fx_addsy ? S_GET_NAME (fixP->fx_addsy) : _(""); /* Save this for the addend in the relocation record. */ fixP->fx_addnumber = val; - /* If the fix is relative to a symbol which is not defined, or not - in the same segment as the fix, we cannot resolve it here. */ - if (fixP->fx_addsy != NULL - && ( ! S_IS_DEFINED (fixP->fx_addsy) - || (S_GET_SEGMENT (fixP->fx_addsy) != segment))) + if (fixP->fx_addsy != NULL) { - fixP->fx_done = 0; #ifdef OBJ_ELF /* For ELF we can just return and let the reloc that will be generated take care of everything. For COFF we still have to insert 'val' @@ -2434,7 +2429,7 @@ mcore_force_relocation (fix) || fix->fx_r_type == BFD_RELOC_RVA) return 1; - return 0; + return S_FORCE_RELOC (fix->fx_addsy); } /* Return true if the fix can be handled by GAS, false if it must @@ -2443,9 +2438,6 @@ boolean mcore_fix_adjustable (fixP) fixS * fixP; { - if (fixP->fx_addsy == NULL) - return 1; - /* We need the symbol name for the VTABLE entries. */ if ( fixP->fx_r_type == BFD_RELOC_VTABLE_INHERIT || fixP->fx_r_type == BFD_RELOC_VTABLE_ENTRY) diff -uprN binutils-2.13.90.0.4/gas/config/tc-mcore.h binutils-2.13.90.0.10/gas/config/tc-mcore.h --- binutils-2.13.90.0.4/gas/config/tc-mcore.h Fri Nov 16 14:05:52 2001 +++ binutils-2.13.90.0.10/gas/config/tc-mcore.h Fri Sep 27 08:33:09 2002 @@ -1,6 +1,6 @@ /* This file is tc-mcore.h - Copyright 1999, 2000, 2001 Free Software Foundation, Inc. + Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -57,7 +57,7 @@ extern const struct relax_type md_relax_ #define md_end md_mcore_end /* Want the section information too... */ -#define MD_PCREL_FROM_SECTION(FIXP, SEC) md_pcrel_from_section (FIXP, SEC) +#define MD_PCREL_FROM_SECTION(FIX, SEC) md_pcrel_from_section (FIX, SEC) #ifdef OBJ_COFF @@ -71,7 +71,8 @@ struct mcore_tc_sy #define TC_SYMFIELD_TYPE struct mcore_tc_sy # if defined TE_PE -# define TC_FORCE_RELOCATION(x) ((x)->fx_r_type == BFD_RELOC_RVA) +# define TC_FORCE_RELOCATION(x) \ + ((x)->fx_r_type == BFD_RELOC_RVA || S_FORCE_RELOC ((x)->fx_addsy)) # endif #endif /* OBJ_COFF */ @@ -86,13 +87,20 @@ struct mcore_tc_sy /* Other special sections not generated by the assembler: .reginfo, .liblist, .conflict, .gptab, .got, .dynamic, .rel.dyn. */ +/* No shared lib support, so we don't need to ensure externally + visible symbols can be overridden. */ +#define EXTERN_FORCE_RELOC 0 + /* When relaxing, we need to emit various relocs we otherwise wouldn't. */ #define TC_FORCE_RELOCATION(fix) mcore_force_relocation (fix) extern int mcore_force_relocation PARAMS ((struct fix *)); -#define obj_fix_adjustable(fixP) mcore_fix_adjustable (fixP) +#define tc_fix_adjustable(FIX) mcore_fix_adjustable (FIX) extern boolean mcore_fix_adjustable PARAMS ((struct fix *)); +/* Values passed to md_apply_fix3 don't include the symbol value. */ +#define MD_APPLY_SYM_VALUE(FIX) 0 + #endif /* OBJ_ELF */ #ifndef TARGET_FORMAT diff -uprN binutils-2.13.90.0.4/gas/config/tc-mips.c binutils-2.13.90.0.10/gas/config/tc-mips.c --- binutils-2.13.90.0.4/gas/config/tc-mips.c Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/gas/config/tc-mips.c Wed Oct 2 10:17:19 2002 @@ -284,8 +284,9 @@ static int mips_32bitmode = 0; #define HAVE_64BIT_ADDRESSES (! HAVE_32BIT_ADDRESSES) /* Return true if the given CPU supports the MIPS16 ASE. */ -#define CPU_HAS_MIPS16(cpu) \ - (strncmp (TARGET_CPU, "mips16", sizeof ("mips16") - 1) == 0) +#define CPU_HAS_MIPS16(cpu) \ + (strncmp (TARGET_CPU, "mips16", sizeof ("mips16") - 1) == 0 \ + || strncmp (TARGET_CANONICAL, "mips-lsi-elf", sizeof ("mips-lsi-elf") - 1) == 0) /* Return true if the given CPU supports the MIPS3D ASE. */ #define CPU_HAS_MIPS3D(cpu) ((cpu) == CPU_SB1 \ @@ -295,11 +296,18 @@ static int mips_32bitmode = 0; #define CPU_HAS_MDMX(cpu) (false \ ) +/* True if CPU has a dror instruction. */ +#define CPU_HAS_DROR(CPU) ((CPU) == CPU_VR5400 || (CPU) == CPU_VR5500) + +/* True if CPU has a ror instruction. */ +#define CPU_HAS_ROR(CPU) CPU_HAS_DROR (CPU) + /* Whether the processor uses hardware interlocks to protect reads from the HI and LO registers, and thus does not require nops to be inserted. */ #define hilo_interlocks (mips_arch == CPU_R4010 \ + || mips_arch == CPU_VR5500 \ || mips_arch == CPU_SB1 \ ) @@ -307,12 +315,16 @@ static int mips_32bitmode = 0; from the GPRs, and thus does not require nops to be inserted. */ #define gpr_interlocks \ (mips_opts.isa != ISA_MIPS1 \ + || mips_arch == CPU_VR5400 \ + || mips_arch == CPU_VR5500 \ || mips_arch == CPU_R3900) /* As with other "interlocks" this is used by hardware that has FP (co-processor) interlocks. */ /* Itbl support may require additional care here. */ #define cop_interlocks (mips_arch == CPU_R4300 \ + || mips_arch == CPU_VR5400 \ + || mips_arch == CPU_VR5500 \ || mips_arch == CPU_SB1 \ ) @@ -322,22 +334,7 @@ static int mips_32bitmode = 0; /* MIPS PIC level. */ -enum mips_pic_level -{ - /* Do not generate PIC code. */ - NO_PIC, - - /* Generate PIC code as in the SVR4 MIPS ABI. */ - SVR4_PIC, - - /* Generate PIC code without using a global offset table: the data - segment has a maximum size of 64K, all data references are off - the $gp register, and all text references are PC relative. This - is used on some embedded systems. */ - EMBEDDED_PIC -}; - -static enum mips_pic_level mips_pic; +enum mips_pic_level mips_pic; /* Warn about all NOPS that the assembler generates. */ static int warn_nops = 0; @@ -564,6 +561,8 @@ static const unsigned int mips16_to_32_r { 16, 17, 2, 3, 4, 5, 6, 7 }; + +static int mips_fix_4122_bugs; /* Since the MIPS does not have multiple forms of PC relative instructions, we do not have to do relaxing as is done on other @@ -680,6 +679,17 @@ static const unsigned int mips16_to_32_r #define RELAX_MIPS16_LONG_BRANCH(i) (((i) & 0x2000) != 0) #define RELAX_MIPS16_MARK_LONG_BRANCH(i) ((i) | 0x2000) #define RELAX_MIPS16_CLEAR_LONG_BRANCH(i) ((i) &~ 0x2000) + +/* Is the given value a sign-extended 32-bit value? */ +#define IS_SEXT_32BIT_NUM(x) \ + (((x) &~ (offsetT) 0x7fffffff) == 0 \ + || (((x) &~ (offsetT) 0x7fffffff) == ~ (offsetT) 0x7fffffff)) + +/* Is the given value a sign-extended 16-bit value? */ +#define IS_SEXT_16BIT_NUM(x) \ + (((x) &~ (offsetT) 0x7fff) == 0 \ + || (((x) &~ (offsetT) 0x7fff) == ~ (offsetT) 0x7fff)) + /* Prototypes for static functions. */ @@ -716,6 +726,9 @@ static void mips16_macro_build PARAMS (( static void macro_build_jalr PARAMS ((int, expressionS *)); static void macro_build_lui PARAMS ((char *place, int *counter, expressionS * ep, int regnum)); +static void macro_build_ldst_constoffset PARAMS ((char *place, int *counter, + expressionS * ep, const char *op, + int valreg, int breg)); static void set_at PARAMS ((int *counter, int reg, int unsignedp)); static void check_absolute_expr PARAMS ((struct mips_cl_insn * ip, expressionS *)); @@ -744,6 +757,7 @@ static symbolS *get_symbol PARAMS ((void static void mips_align PARAMS ((int to, int fill, symbolS *label)); static void s_align PARAMS ((int)); static void s_change_sec PARAMS ((int)); +static void s_change_section PARAMS ((int)); static void s_cons PARAMS ((int)); static void s_float_cons PARAMS ((int)); static void s_mips_globl PARAMS ((int)); @@ -883,6 +897,7 @@ static const pseudo_typeS mips_pseudo_ta {"long", s_cons, 2}, {"octa", s_cons, 4}, {"quad", s_cons, 3}, + {"section", s_change_section, 0}, {"short", s_cons, 1}, {"single", s_float_cons, 'f'}, {"stabn", s_mips_stab, 'n'}, @@ -969,10 +984,12 @@ static boolean imm_unmatched_hi; static boolean mips16_small, mips16_ext; +#ifdef OBJ_ELF /* The pdr segment for per procedure frame/regmask info. Not used for ECOFF debugging. */ static segT pdr_seg; +#endif /* The default target format to use. */ @@ -1685,6 +1702,50 @@ append_insn (place, ip, address_expr, re if (prev_prev_nop && nops == 0) ++nops; + if (mips_fix_4122_bugs && prev_insn.insn_mo->name) + { + /* We're out of bits in pinfo, so we must resort to string + ops here. Shortcuts are selected based on opcodes being + limited to the VR4122 instruction set. */ + int min_nops = 0; + const char *pn = prev_insn.insn_mo->name; + const char *tn = ip->insn_mo->name; + if (strncmp(pn, "macc", 4) == 0 + || strncmp(pn, "dmacc", 5) == 0) + { + /* Errata 21 - [D]DIV[U] after [D]MACC */ + if (strstr (tn, "div")) + { + min_nops = 1; + } + + /* Errata 23 - Continuous DMULT[U]/DMACC instructions */ + if (pn[0] == 'd' /* dmacc */ + && (strncmp(tn, "dmult", 5) == 0 + || strncmp(tn, "dmacc", 5) == 0)) + { + min_nops = 1; + } + + /* Errata 24 - MT{LO,HI} after [D]MACC */ + if (strcmp (tn, "mtlo") == 0 + || strcmp (tn, "mthi") == 0) + { + min_nops = 1; + } + + } + else if (strncmp(pn, "dmult", 5) == 0 + && (strncmp(tn, "dmult", 5) == 0 + || strncmp(tn, "dmacc", 5) == 0)) + { + /* Here is the rest of errata 23. */ + min_nops = 1; + } + if (nops < min_nops) + nops = min_nops; + } + /* If we are being given a nop instruction, don't bother with one of the nops we would otherwise output. This will only happen when a nop instruction is used with mips_optimize set @@ -1847,6 +1908,7 @@ append_insn (place, ip, address_expr, re break; case BFD_RELOC_LO16: + case BFD_RELOC_MIPS_GOT_DISP: ip->insn_opcode |= address_expr->X_add_number & 0xffff; break; @@ -1854,8 +1916,7 @@ append_insn (place, ip, address_expr, re if ((address_expr->X_add_number & 3) != 0) as_bad (_("jump to misaligned address (0x%lx)"), (unsigned long) address_expr->X_add_number); - if (address_expr->X_add_number & ~0xfffffff - || address_expr->X_add_number > 0x7fffffc) + if (address_expr->X_add_number & ~0xfffffff) as_bad (_("jump address range overflow (0x%lx)"), (unsigned long) address_expr->X_add_number); ip->insn_opcode |= (address_expr->X_add_number >> 2) & 0x3ffffff; @@ -1865,8 +1926,7 @@ append_insn (place, ip, address_expr, re if ((address_expr->X_add_number & 3) != 0) as_bad (_("jump to misaligned address (0x%lx)"), (unsigned long) address_expr->X_add_number); - if (address_expr->X_add_number & ~0xfffffff - || address_expr->X_add_number > 0x7fffffc) + if (address_expr->X_add_number & ~0xfffffff) as_bad (_("jump address range overflow (0x%lx)"), (unsigned long) address_expr->X_add_number); ip->insn_opcode |= @@ -2583,6 +2643,20 @@ mips_emit_delays (insns) ++nops; } + if (mips_fix_4122_bugs && prev_insn.insn_mo->name) + { + int min_nops = 0; + const char *pn = prev_insn.insn_mo->name; + if (strncmp(pn, "macc", 4) == 0 + || strncmp(pn, "dmacc", 5) == 0 + || strncmp(pn, "dmult", 5) == 0) + { + min_nops = 1; + } + if (nops < min_nops) + nops = min_nops; + } + if (nops > 0) { struct insn_label_list *l; @@ -2711,7 +2785,7 @@ macro_build (place, counter, ep, name, f && insn.insn_mo->pinfo != INSN_MACRO && OPCODE_IS_MEMBER (insn.insn_mo, (mips_opts.isa - | (mips_opts.mips16 ? INSN_MIPS16 : 0)), + | (file_ase_mips16 ? INSN_MIPS16 : 0)), mips_arch) && (mips_arch != CPU_R4650 || (insn.insn_mo->pinfo & FP_D) == 0)) break; @@ -3009,12 +3083,18 @@ macro_build_jalr (icnt, ep) int icnt; expressionS *ep; { + char *f; + if (HAVE_NEWABI) - frag_more (0); + { + frag_grow (4); + f = frag_more (0); + } macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "jalr", "d,s", RA, PIC_CALL_REG); if (HAVE_NEWABI) - fix_new_exp (frag_now, 0, 0, ep, false, BFD_RELOC_MIPS_JALR); + fix_new_exp (frag_now, f - frag_now->fr_literal, + 0, ep, false, BFD_RELOC_MIPS_JALR); } /* @@ -3086,6 +3166,52 @@ macro_build_lui (place, counter, ep, reg append_insn (place, &insn, &high_expr, r, false); } +/* Generate a sequence of instructions to do a load or store from a constant + offset off of a base register (breg) into/from a target register (treg), + using AT if necessary. */ +static void +macro_build_ldst_constoffset (place, counter, ep, op, treg, breg) + char *place; + int *counter; + expressionS *ep; + const char *op; + int treg, breg; +{ + assert (ep->X_op == O_constant); + + /* Right now, this routine can only handle signed 32-bit contants. */ + if (! IS_SEXT_32BIT_NUM(ep->X_add_number)) + as_warn (_("operand overflow")); + + if (IS_SEXT_16BIT_NUM(ep->X_add_number)) + { + /* Signed 16-bit offset will fit in the op. Easy! */ + macro_build (place, counter, ep, op, "t,o(b)", treg, + (int) BFD_RELOC_LO16, breg); + } + else + { + /* 32-bit offset, need multiple instructions and AT, like: + lui $tempreg,const_hi (BFD_RELOC_HI16_S) + addu $tempreg,$tempreg,$breg + $treg,const_lo($tempreg) (BFD_RELOC_LO16) + to handle the complete offset. */ + macro_build_lui (place, counter, ep, AT); + if (place != NULL) + place += 4; + macro_build (place, counter, (expressionS *) NULL, + HAVE_32BIT_ADDRESSES ? "addu" : "daddu", + "d,v,t", AT, AT, breg); + if (place != NULL) + place += 4; + macro_build (place, counter, ep, op, "t,o(b)", treg, + (int) BFD_RELOC_LO16, AT); + + if (mips_opts.noat) + as_warn (_("Macro used $at after \".set noat\"")); + } +} + /* set_at() * Generates code to set the $at register to true (one) * if reg is less than the immediate expression. @@ -3200,11 +3326,6 @@ check_absolute_expr (ip, ex) ? 1 \ : 0) -/* Is the given value a sign-extended 32-bit value? */ -#define IS_SEXT_32BIT_NUM(x) \ - (((x) &~ (offsetT) 0x7fffffff) == 0 \ - || (((x) &~ (offsetT) 0x7fffffff) == ~ (offsetT) 0x7fffffff)) - /* load_register() * This routine generates the least number of instructions neccessary to load * an absolute expression value into a register. @@ -3592,20 +3713,32 @@ load_address (counter, reg, ep, used_at) lw $reg,($gp) (BFD_RELOC_MIPS_GOT16) nop addiu $reg,$reg, (BFD_RELOC_LO16) + If we have NewABI, we want + lw $reg,($gp) (BFD_RELOC_MIPS_GOT_DISP) If there is a constant, it must be added in after. */ ex.X_add_number = ep->X_add_number; ep->X_add_number = 0; frag_grow (20); - macro_build ((char *) NULL, counter, ep, - HAVE_32BIT_ADDRESSES ? "lw" : "ld", "t,o(b)", - reg, (int) BFD_RELOC_MIPS_GOT16, mips_gp_register); - macro_build ((char *) NULL, counter, (expressionS *) NULL, "nop", ""); - p = frag_var (rs_machine_dependent, 4, 0, - RELAX_ENCODE (0, 4, -8, 0, 0, mips_opts.warn_about_macros), - ep->X_add_symbol, (offsetT) 0, (char *) NULL); - macro_build (p, counter, ep, - HAVE_32BIT_ADDRESSES ? "addiu" : "daddiu", - "t,r,j", reg, reg, (int) BFD_RELOC_LO16); + if (HAVE_NEWABI) + { + macro_build ((char *) NULL, counter, ep, + HAVE_32BIT_ADDRESSES ? "lw" : "ld", "t,o(b)", reg, + (int) BFD_RELOC_MIPS_GOT_DISP, mips_gp_register); + } + else + { + macro_build ((char *) NULL, counter, ep, + HAVE_32BIT_ADDRESSES ? "lw" : "ld", "t,o(b)", + reg, (int) BFD_RELOC_MIPS_GOT16, mips_gp_register); + macro_build ((char *) NULL, counter, (expressionS *) NULL, "nop", ""); + p = frag_var (rs_machine_dependent, 4, 0, + RELAX_ENCODE (0, 4, -8, 0, 0, mips_opts.warn_about_macros), + ep->X_add_symbol, (offsetT) 0, (char *) NULL); + macro_build (p, counter, ep, + HAVE_32BIT_ADDRESSES ? "addiu" : "daddiu", + "t,r,j", reg, reg, (int) BFD_RELOC_LO16); + } + if (ex.X_add_number != 0) { if (ex.X_add_number < -0x8000 || ex.X_add_number >= 0x8000) @@ -4637,12 +4770,23 @@ macro (ip) addu $tempreg,$tempreg,$at For a local symbol, we want the same instruction sequence, but we output a BFD_RELOC_LO16 reloc on the - addiu instruction. */ + addiu instruction. + + For NewABI, we want for local or external data addresses + lw $tempreg,($gp) (BFD_RELOC_MIPS_GOT_DISP) + For a local function symbol, we want + lw $tempreg,($gp) (BFD_RELOC_MIPS_GOT_PAGE) + nop + addiu $tempreg,$tempreg, (BFD_RELOC_MIPS_GOT_OFST) + */ + expr1.X_add_number = offset_expr.X_add_number; offset_expr.X_add_number = 0; frag_grow (32); if (expr1.X_add_number == 0 && tempreg == PIC_CALL_REG) lw_reloc_type = (int) BFD_RELOC_MIPS_CALL16; + else if (HAVE_NEWABI) + lw_reloc_type = (int) BFD_RELOC_MIPS_GOT_DISP; macro_build ((char *) NULL, &icnt, &offset_expr, HAVE_32BIT_ADDRESSES ? "lw" : "ld", "t,o(b)", tempreg, lw_reloc_type, mips_gp_register); @@ -4742,6 +4886,7 @@ macro (ip) char *p; int lui_reloc_type = (int) BFD_RELOC_MIPS_GOT_HI16; int lw_reloc_type = (int) BFD_RELOC_MIPS_GOT_LO16; + int local_reloc_type = (int) BFD_RELOC_MIPS_GOT16; /* This is the large GOT case. If this is a reference to an external symbol, and there is no constant, we want @@ -4783,31 +4928,10 @@ macro (ip) addiu $at,$at, (BFD_RELOC_LO16) addu $tempreg,$tempreg,$at - For NewABI, we want for data addresses - lw $tempreg,($gp) (BFD_RELOC_MIPS_GOT_DISP) - If tempreg is PIC_CALL_REG pointing to a external symbol, we want - lw $tempreg,($gp) (BFD_RELOC_MIPS_CALL16) + For NewABI, we want for local data addresses + lw $tempreg,($gp) (BFD_RELOC_MIPS_GOT_DISP) */ - if (HAVE_NEWABI) - { - int reloc_type = (tempreg == PIC_CALL_REG - ? BFD_RELOC_MIPS_CALL16 - : BFD_RELOC_MIPS_GOT_DISP); - - macro_build ((char *) NULL, &icnt, &offset_expr, - HAVE_32BIT_ADDRESSES ? "lw" : "ld", - "t,o(b)", tempreg, reloc_type, mips_gp_register); - if (breg != 0) - macro_build ((char *) NULL, &icnt, (expressionS *) NULL, - HAVE_32BIT_ADDRESSES ? "addu" : "daddu", - "d,v,t", treg, tempreg, breg); - - if (! used_at) - return; - - break; - } expr1.X_add_number = offset_expr.X_add_number; offset_expr.X_add_number = 0; frag_grow (52); @@ -4928,12 +5052,21 @@ macro (ip) macro_build (p, &icnt, (expressionS *) NULL, "nop", ""); p += 4; } + + if (HAVE_NEWABI) + local_reloc_type = (int) BFD_RELOC_MIPS_GOT_DISP; macro_build (p, &icnt, &offset_expr, HAVE_32BIT_ADDRESSES ? "lw" : "ld", - "t,o(b)", tempreg, (int) BFD_RELOC_MIPS_GOT16, + "t,o(b)", tempreg, + local_reloc_type, mips_gp_register); p += 4; - if (expr1.X_add_number >= -0x8000 + if (expr1.X_add_number == 0 && HAVE_NEWABI) + { + /* BFD_RELOC_MIPS_GOT_DISP is sufficient for newabi */ + } + else + if (expr1.X_add_number >= -0x8000 && expr1.X_add_number < 0x8000) { macro_build (p, &icnt, (expressionS *) NULL, "nop", ""); @@ -5055,10 +5188,9 @@ macro (ip) mips_cprestore_valid = 1; } expr1.X_add_number = mips_cprestore_offset; - macro_build ((char *) NULL, &icnt, &expr1, - HAVE_32BIT_ADDRESSES ? "lw" : "ld", "t,o(b)", - mips_gp_register, (int) BFD_RELOC_LO16, - mips_frame_reg); + macro_build_ldst_constoffset ((char *) NULL, &icnt, &expr1, + HAVE_32BIT_ADDRESSES ? "lw" : "ld", + mips_gp_register, mips_frame_reg); } } } @@ -5188,10 +5320,9 @@ macro (ip) macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "nop", ""); expr1.X_add_number = mips_cprestore_offset; - macro_build ((char *) NULL, &icnt, &expr1, - HAVE_32BIT_ADDRESSES ? "lw" : "ld", "t,o(b)", - mips_gp_register, (int) BFD_RELOC_LO16, - mips_frame_reg); + macro_build_ldst_constoffset ((char *) NULL, &icnt, &expr1, + HAVE_32BIT_ADDRESSES ? "lw" : "ld", + mips_gp_register, mips_frame_reg); } } } @@ -5604,6 +5735,7 @@ macro (ip) else if (mips_pic == SVR4_PIC && ! mips_big_got) { char *p; + int lw_reloc_type = (int) BFD_RELOC_MIPS_GOT16; /* If this is a reference to an external symbol, we want lw $tempreg,($gp) (BFD_RELOC_MIPS_GOT16) @@ -5614,6 +5746,8 @@ macro (ip) nop addiu $tempreg,$tempreg, (BFD_RELOC_LO16) $treg,0($tempreg) + If we have NewABI, we want + lw $reg,($gp) (BFD_RELOC_MIPS_GOT_DISP) If there is a base register, we add it to $tempreg before the . If there is a constant, we stick it in the instruction. We don't handle constants larger than @@ -5623,13 +5757,15 @@ macro (ip) assert (offset_expr.X_op == O_symbol); expr1.X_add_number = offset_expr.X_add_number; offset_expr.X_add_number = 0; + if (HAVE_NEWABI) + lw_reloc_type = (int) BFD_RELOC_MIPS_GOT_DISP; if (expr1.X_add_number < -0x8000 || expr1.X_add_number >= 0x8000) as_bad (_("PIC code offset overflow (max 16 signed bits)")); frag_grow (20); macro_build ((char *) NULL, &icnt, &offset_expr, HAVE_32BIT_ADDRESSES ? "lw" : "ld", "t,o(b)", tempreg, - (int) BFD_RELOC_MIPS_GOT16, mips_gp_register); + (int) lw_reloc_type, mips_gp_register); macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "nop", ""); p = frag_var (rs_machine_dependent, 4, 0, RELAX_ENCODE (0, 4, -8, 0, 0, 0), @@ -6645,22 +6781,38 @@ macro2 (ip) case M_DROL_I: { unsigned int rot; - char *l, *r; if (imm_expr.X_op != O_constant) as_bad (_("rotate count too large")); rot = imm_expr.X_add_number & 0x3f; - if (! rot) - break; - l = (rot < 0x20) ? "dsll" : "dsll32"; - r = ((0x40 - rot) < 0x20) ? "dsrl" : "dsrl32"; - rot &= 0x1f; - macro_build ((char *) NULL, &icnt, (expressionS *) NULL, l, - "d,w,<", AT, sreg, rot); - macro_build ((char *) NULL, &icnt, (expressionS *) NULL, r, - "d,w,<", dreg, sreg, (0x20 - rot) & 0x1f); - macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "or", - "d,v,t", dreg, dreg, AT); + if (CPU_HAS_DROR (mips_arch)) + { + rot = (64 - rot) & 0x3f; + if (rot >= 32) + macro_build ((char *) NULL, &icnt, NULL, "dror32", + "d,w,<", dreg, sreg, rot - 32); + else + macro_build ((char *) NULL, &icnt, NULL, "dror", + "d,w,<", dreg, sreg, rot); + break; + } + if (rot == 0) + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "dsrl", + "d,w,<", dreg, sreg, 0); + else + { + char *l, *r; + + l = (rot < 0x20) ? "dsll" : "dsll32"; + r = ((0x40 - rot) < 0x20) ? "dsrl" : "dsrl32"; + rot &= 0x1f; + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, l, + "d,w,<", AT, sreg, rot); + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, r, + "d,w,<", dreg, sreg, (0x20 - rot) & 0x1f); + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "or", + "d,v,t", dreg, dreg, AT); + } } break; @@ -6671,14 +6823,24 @@ macro2 (ip) if (imm_expr.X_op != O_constant) as_bad (_("rotate count too large")); rot = imm_expr.X_add_number & 0x1f; - if (! rot) - break; - macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "sll", - "d,w,<", AT, sreg, rot); - macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "srl", - "d,w,<", dreg, sreg, (0x20 - rot) & 0x1f); - macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "or", - "d,v,t", dreg, dreg, AT); + if (CPU_HAS_ROR (mips_arch)) + { + macro_build ((char *) NULL, &icnt, NULL, "ror", + "d,w,<", dreg, sreg, (32 - rot) & 0x1f); + break; + } + if (rot == 0) + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "srl", + "d,w,<", dreg, sreg, 0); + else + { + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "sll", + "d,w,<", AT, sreg, rot); + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "srl", + "d,w,<", dreg, sreg, (0x20 - rot) & 0x1f); + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "or", + "d,v,t", dreg, dreg, AT); + } } break; @@ -6707,22 +6869,27 @@ macro2 (ip) case M_DROR_I: { unsigned int rot; - char *l, *r; if (imm_expr.X_op != O_constant) as_bad (_("rotate count too large")); rot = imm_expr.X_add_number & 0x3f; - if (! rot) - break; - r = (rot < 0x20) ? "dsrl" : "dsrl32"; - l = ((0x40 - rot) < 0x20) ? "dsll" : "dsll32"; - rot &= 0x1f; - macro_build ((char *) NULL, &icnt, (expressionS *) NULL, r, - "d,w,<", AT, sreg, rot); - macro_build ((char *) NULL, &icnt, (expressionS *) NULL, l, - "d,w,<", dreg, sreg, (0x20 - rot) & 0x1f); - macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "or", - "d,v,t", dreg, dreg, AT); + if (rot == 0) + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "dsrl", + "d,w,<", dreg, sreg, 0); + else + { + char *l, *r; + + r = (rot < 0x20) ? "dsrl" : "dsrl32"; + l = ((0x40 - rot) < 0x20) ? "dsll" : "dsll32"; + rot &= 0x1f; + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, r, + "d,w,<", AT, sreg, rot); + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, l, + "d,w,<", dreg, sreg, (0x20 - rot) & 0x1f); + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "or", + "d,v,t", dreg, dreg, AT); + } } break; @@ -6733,14 +6900,18 @@ macro2 (ip) if (imm_expr.X_op != O_constant) as_bad (_("rotate count too large")); rot = imm_expr.X_add_number & 0x1f; - if (! rot) - break; - macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "srl", - "d,w,<", AT, sreg, rot); - macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "sll", - "d,w,<", dreg, sreg, (0x20 - rot) & 0x1f); - macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "or", - "d,v,t", dreg, dreg, AT); + if (rot == 0) + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "srl", + "d,w,<", dreg, sreg, 0); + else + { + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "srl", + "d,w,<", AT, sreg, rot); + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "sll", + "d,w,<", dreg, sreg, (0x20 - rot) & 0x1f); + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "or", + "d,v,t", dreg, dreg, AT); + } } break; @@ -7633,6 +7804,10 @@ validate_mips_insn (opc) case 'P': USE_BITS (OP_MASK_PERFREG, OP_SH_PERFREG); break; case 'U': USE_BITS (OP_MASK_RD, OP_SH_RD); USE_BITS (OP_MASK_RT, OP_SH_RT); break; + case 'e': USE_BITS (OP_MASK_VECBYTE, OP_SH_VECBYTE); break; + case '%': USE_BITS (OP_MASK_VECALIGN, OP_SH_VECALIGN); break; + case '[': break; + case ']': break; default: as_bad (_("internal: bad mips opcode (unknown operand type `%c'): %s %s"), c, opc->name, opc->args); @@ -7727,7 +7902,7 @@ mips_ip (str, ip) if (OPCODE_IS_MEMBER (insn, (mips_opts.isa - | (mips_opts.mips16 ? INSN_MIPS16 : 0) + | (file_ase_mips16 ? INSN_MIPS16 : 0) | (mips_opts.ase_mdmx ? INSN_MDMX : 0) | (mips_opts.ase_mips3d ? INSN_MIPS3D : 0)), mips_arch)) @@ -7824,6 +7999,8 @@ mips_ip (str, ip) return; case ')': /* these must match exactly */ + case '[': + case ']': if (*s++ == *args) continue; break; @@ -8745,6 +8922,41 @@ mips_ip (str, ip) ip->insn_opcode |= c; continue; + case 'e': + /* Must be at least one digit. */ + my_getExpression (&imm_expr, s); + check_absolute_expr (ip, &imm_expr); + + if ((unsigned long) imm_expr.X_add_number + > (unsigned long) OP_MASK_VECBYTE) + { + as_bad (_("bad byte vector index (%ld)"), + (long) imm_expr.X_add_number); + imm_expr.X_add_number = 0; + } + + ip->insn_opcode |= imm_expr.X_add_number << OP_SH_VECBYTE; + imm_expr.X_op = O_absent; + s = expr_end; + continue; + + case '%': + my_getExpression (&imm_expr, s); + check_absolute_expr (ip, &imm_expr); + + if ((unsigned long) imm_expr.X_add_number + > (unsigned long) OP_MASK_VECALIGN) + { + as_bad (_("bad byte vector index (%ld)"), + (long) imm_expr.X_add_number); + imm_expr.X_add_number = 0; + } + + ip->insn_opcode |= imm_expr.X_add_number << OP_SH_VECALIGN; + imm_expr.X_op = O_absent; + s = expr_end; + continue; + default: as_bad (_("bad char = '%c'\n"), *args); internalError (); @@ -9909,8 +10121,12 @@ struct option md_longopts[] = {"mdmx", no_argument, NULL, OPTION_MDMX}, #define OPTION_NO_MDMX (OPTION_MD_BASE + 36) {"no-mdmx", no_argument, NULL, OPTION_NO_MDMX}, +#define OPTION_FIX_VR4122 (OPTION_MD_BASE + 37) +#define OPTION_NO_FIX_VR4122 (OPTION_MD_BASE + 38) + {"mfix-vr4122-bugs", no_argument, NULL, OPTION_FIX_VR4122}, + {"no-mfix-vr4122-bugs", no_argument, NULL, OPTION_NO_FIX_VR4122}, #ifdef OBJ_ELF -#define OPTION_ELF_BASE (OPTION_MD_BASE + 37) +#define OPTION_ELF_BASE (OPTION_MD_BASE + 39) #define OPTION_CALL_SHARED (OPTION_ELF_BASE + 0) {"KPIC", no_argument, NULL, OPTION_CALL_SHARED}, {"call_shared", no_argument, NULL, OPTION_CALL_SHARED}, @@ -10111,6 +10327,14 @@ md_parse_option (c, arg) g_switch_value = 0x7fffffff; break; + case OPTION_FIX_VR4122: + mips_fix_4122_bugs = 1; + break; + + case OPTION_NO_FIX_VR4122: + mips_fix_4122_bugs = 0; + break; + #ifdef OBJ_ELF /* When generating ELF code, we permit -KPIC and -call_shared to select SVR4_PIC, and -non_shared to select no PIC. This is @@ -10407,9 +10631,6 @@ mips_after_parse_args () mips_opts.gp32 = file_mips_gp32; mips_opts.fp32 = file_mips_fp32; - if (HAVE_NEWABI) - mips_big_got = 1; - if (mips_flag_mdebug < 0) { #ifdef OBJ_MAYBE_ECOFF @@ -10575,7 +10796,8 @@ mips_force_relocation (fixp) fixS *fixp; { if (fixp->fx_r_type == BFD_RELOC_VTABLE_INHERIT - || fixp->fx_r_type == BFD_RELOC_VTABLE_ENTRY) + || fixp->fx_r_type == BFD_RELOC_VTABLE_ENTRY + || S_FORCE_RELOC (fixp->fx_addsy)) return 1; if (HAVE_NEWABI @@ -10630,6 +10852,12 @@ md_apply_fix3 (fixP, valP, seg) bfd_byte *buf; long insn; valueT value; + static int previous_fx_r_type = 0; + + /* FIXME: Maybe just return for all reloc types not listed below? + Eric Christopher says: "This is stupid, please rewrite md_apply_fix3. */ + if (fixP->fx_r_type == BFD_RELOC_8) + return; assert (fixP->fx_size == 4 || fixP->fx_r_type == BFD_RELOC_16 @@ -10667,11 +10895,23 @@ md_apply_fix3 (fixP, valP, seg) value -= symval; howto = bfd_reloc_type_lookup (stdoutput, fixP->fx_r_type); - if (value != 0 && howto->partial_inplace && ! fixP->fx_pcrel) + if (value != 0 && howto->partial_inplace + && (! fixP->fx_pcrel || howto->pcrel_offset)) { /* In this case, the bfd_install_relocation routine will incorrectly add the symbol value back in. We just want - the addend to appear in the object file. */ + the addend to appear in the object file. + + howto->pcrel_offset is added for R_MIPS_PC16, which is + generated for code like + + globl g1 .text + .text + .space 20 + g1: + x: + bal g1 + */ value -= symval; /* Make sure the addend is still non-zero. If it became zero @@ -10729,8 +10969,14 @@ md_apply_fix3 (fixP, valP, seg) fixP->fx_addnumber = value; /* Remember value for tc_gen_reloc. */ - if (fixP->fx_addsy == NULL && ! fixP->fx_pcrel) + /* We are not done if this is a composite relocation to set up gp. */ + if (fixP->fx_addsy == NULL && ! fixP->fx_pcrel + && !(fixP->fx_r_type == BFD_RELOC_MIPS_SUB + || (previous_fx_r_type == BFD_RELOC_MIPS_SUB + && (fixP->fx_r_type == BFD_RELOC_HI16_S + || fixP->fx_r_type == BFD_RELOC_LO16)))) fixP->fx_done = 1; + previous_fx_r_type = fixP->fx_r_type; switch (fixP->fx_r_type) { @@ -11241,6 +11487,60 @@ s_change_sec (sec) auto_align = 1; } + +void +s_change_section (ignore) + int ignore ATTRIBUTE_UNUSED; +{ +#ifdef OBJ_ELF + char *section_name; + char c; + char next_c; + int section_type; + int section_flag; + int section_entry_size; + int section_alignment; + + if (OUTPUT_FLAVOR != bfd_target_elf_flavour) + return; + + section_name = input_line_pointer; + c = get_symbol_end (); + next_c = *(input_line_pointer + 1); + + /* Do we have .section Name<,"flags">? */ + if (c != ',' || (c == ',' && next_c == '"')) + { + /* just after name is now '\0'. */ + *input_line_pointer = c; + input_line_pointer = section_name; + obj_elf_section (ignore); + return; + } + input_line_pointer++; + + /* Do we have .section Name<,type><,flag><,entry_size><,alignment> */ + if (c == ',') + section_type = get_absolute_expression (); + else + section_type = 0; + if (*input_line_pointer++ == ',') + section_flag = get_absolute_expression (); + else + section_flag = 0; + if (*input_line_pointer++ == ',') + section_entry_size = get_absolute_expression (); + else + section_entry_size = 0; + if (*input_line_pointer++ == ',') + section_alignment = get_absolute_expression (); + else + section_alignment = 0; + + obj_elf_change_section (section_name, section_type, section_flag, + section_entry_size, 0, 0, 0); +#endif /* OBJ_ELF */ +} void mips_enable_auto_align () @@ -11644,7 +11944,7 @@ s_cpsetup (ignore) expressionS ex_sym; int reg1; int icnt = 0; - char *sym; + char *f; /* If we are not generating SVR4 PIC code, .cpsetup is ignored. We also need NewABI support. */ @@ -11683,15 +11983,7 @@ s_cpsetup (ignore) else ++input_line_pointer; SKIP_WHITESPACE (); - sym = input_line_pointer; - while (ISALNUM (*input_line_pointer)) - ++input_line_pointer; - *input_line_pointer = 0; - - ex_sym.X_op = O_symbol; - ex_sym.X_add_symbol = symbol_find_or_make (sym); - ex_sym.X_op_symbol = NULL; - ex_sym.X_add_number = 0; + expression (&ex_sym); if (mips_cpreturn_register == -1) { @@ -11707,14 +11999,25 @@ s_cpsetup (ignore) macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "daddu", "d,v,t", mips_cpreturn_register, mips_gp_register, 0); + /* Ensure there's room for the next two instructions, so that `f' + doesn't end up with an address in the wrong frag. */ + frag_grow (8); + f = frag_more (0); macro_build ((char *) NULL, &icnt, &ex_sym, "lui", "t,u", mips_gp_register, (int) BFD_RELOC_GPREL16); - fix_new (frag_now, prev_insn_where, 0, NULL, 0, 0, BFD_RELOC_MIPS_SUB); - fix_new (frag_now, prev_insn_where, 0, NULL, 0, 0, BFD_RELOC_HI16_S); + fix_new (frag_now, f - frag_now->fr_literal, + 0, NULL, 0, 0, BFD_RELOC_MIPS_SUB); + fix_new (frag_now, f - frag_now->fr_literal, + 0, NULL, 0, 0, BFD_RELOC_HI16_S); + + f = frag_more (0); macro_build ((char *) NULL, &icnt, &ex_sym, "addiu", "t,r,j", mips_gp_register, mips_gp_register, (int) BFD_RELOC_GPREL16); - fix_new (frag_now, prev_insn_where, 0, NULL, 0, 0, BFD_RELOC_MIPS_SUB); - fix_new (frag_now, prev_insn_where, 0, NULL, 0, 0, BFD_RELOC_LO16); + fix_new (frag_now, f - frag_now->fr_literal, + 0, NULL, 0, 0, BFD_RELOC_MIPS_SUB); + fix_new (frag_now, f - frag_now->fr_literal, + 0, NULL, 0, 0, BFD_RELOC_LO16); + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, HAVE_64BIT_ADDRESSES ? "daddu" : "addu", "d,v,t", mips_gp_register, mips_gp_register, reg1); @@ -11765,8 +12068,9 @@ s_cprestore (ignore) ex.X_op_symbol = NULL; ex.X_add_number = mips_cprestore_offset; - macro_build ((char *) NULL, &icnt, &ex, HAVE_32BIT_ADDRESSES ? "sw" : "sd", - "t,o(b)", mips_gp_register, (int) BFD_RELOC_LO16, SP); + macro_build_ldst_constoffset ((char *) NULL, &icnt, &ex, + HAVE_32BIT_ADDRESSES ? "sw" : "sd", + mips_gp_register, SP); demand_empty_rest_of_line (); } @@ -12465,26 +12769,23 @@ int mips_fix_adjustable (fixp) fixS *fixp; { -#ifdef OBJ_ELF - /* Prevent all adjustments to global symbols. */ - if (OUTPUT_FLAVOR == bfd_target_elf_flavour - && mips_pic != EMBEDDED_PIC - && (S_IS_EXTERNAL (fixp->fx_addsy) || S_IS_WEAK (fixp->fx_addsy))) - return 0; -#endif if (fixp->fx_r_type == BFD_RELOC_MIPS16_JMP) return 0; + if (fixp->fx_r_type == BFD_RELOC_VTABLE_INHERIT || fixp->fx_r_type == BFD_RELOC_VTABLE_ENTRY) return 0; + if (fixp->fx_addsy == NULL) return 1; + #ifdef OBJ_ELF if (OUTPUT_FLAVOR == bfd_target_elf_flavour && S_GET_OTHER (fixp->fx_addsy) == STO_MIPS16 && fixp->fx_subsy == NULL) return 0; #endif + return 1; } @@ -12568,14 +12869,15 @@ tc_gen_reloc (section, fixp) /* If this is a variant frag, we may need to adjust the existing reloc and generate a new one. */ if (fixp->fx_frag->fr_opcode != NULL - && (fixp->fx_r_type == BFD_RELOC_GPREL16 + && ((fixp->fx_r_type == BFD_RELOC_GPREL16 + && ! HAVE_NEWABI) || fixp->fx_r_type == BFD_RELOC_MIPS_GOT16 || fixp->fx_r_type == BFD_RELOC_MIPS_CALL16 || fixp->fx_r_type == BFD_RELOC_MIPS_GOT_HI16 || fixp->fx_r_type == BFD_RELOC_MIPS_GOT_LO16 || fixp->fx_r_type == BFD_RELOC_MIPS_CALL_HI16 || fixp->fx_r_type == BFD_RELOC_MIPS_CALL_LO16) - && ! HAVE_NEWABI) + ) { arelent *reloc2; @@ -12636,15 +12938,32 @@ tc_gen_reloc (section, fixp) abort (); case BFD_RELOC_MIPS_GOT16: break; - case BFD_RELOC_MIPS_CALL16: case BFD_RELOC_MIPS_GOT_LO16: case BFD_RELOC_MIPS_CALL_LO16: fixp->fx_r_type = BFD_RELOC_MIPS_GOT16; break; + case BFD_RELOC_MIPS_CALL16: + if (HAVE_NEWABI) + { + /* BFD_RELOC_MIPS_GOT16;*/ + fixp->fx_r_type = BFD_RELOC_MIPS_GOT_PAGE; + reloc2->howto = bfd_reloc_type_lookup + (stdoutput, BFD_RELOC_MIPS_GOT_OFST); + } + else + fixp->fx_r_type = BFD_RELOC_MIPS_GOT16; + break; } } else abort (); + + /* newabi uses R_MIPS_GOT_DISP for local symbols */ + if (HAVE_NEWABI && BFD_RELOC_MIPS_GOT_LO16) + { + fixp->fx_r_type = BFD_RELOC_MIPS_GOT_DISP; + retval[1] = NULL; + } } /* Since the old MIPS ELF ABI uses Rel instead of Rela, encode the vtable @@ -13466,6 +13785,9 @@ static const struct mips_cpu_info mips_c { "r4010", 0, ISA_MIPS2, CPU_R4010 }, { "vr4100", 0, ISA_MIPS3, CPU_VR4100 }, { "vr4111", 0, ISA_MIPS3, CPU_R4111 }, + { "vr4120", 0, ISA_MIPS3, CPU_VR4120 }, + { "vr4130", 0, ISA_MIPS3, CPU_VR4120 }, + { "vr4181", 0, ISA_MIPS3, CPU_R4111 }, { "vr4300", 0, ISA_MIPS3, CPU_R4300 }, { "r4400", 0, ISA_MIPS3, CPU_R4400 }, { "r4600", 0, ISA_MIPS3, CPU_R4600 }, @@ -13477,6 +13799,8 @@ static const struct mips_cpu_info mips_c { "r10000", 0, ISA_MIPS4, CPU_R10000 }, { "r12000", 0, ISA_MIPS4, CPU_R12000 }, { "vr5000", 0, ISA_MIPS4, CPU_R5000 }, + { "vr5400", 0, ISA_MIPS4, CPU_VR5400 }, + { "vr5500", 0, ISA_MIPS4, CPU_VR5500 }, { "rm5200", 0, ISA_MIPS4, CPU_R5000 }, { "rm5230", 0, ISA_MIPS4, CPU_R5000 }, { "rm5231", 0, ISA_MIPS4, CPU_R5000 }, diff -uprN binutils-2.13.90.0.4/gas/config/tc-mips.h binutils-2.13.90.0.10/gas/config/tc-mips.h --- binutils-2.13.90.0.4/gas/config/tc-mips.h Fri Jun 7 19:22:17 2002 +++ binutils-2.13.90.0.10/gas/config/tc-mips.h Wed Oct 2 10:17:19 2002 @@ -1,5 +1,5 @@ /* tc-mips.h -- header file for tc-mips.c. - Copyright 1993, 1994, 1995, 1996, 1997, 2000, 2001 + Copyright 1993, 1994, 1995, 1996, 1997, 2000, 2001, 2002 Free Software Foundation, Inc. Contributed by the OSF and Ralph Campbell. Written by Keith Knowles and Ralph Campbell, working independently. @@ -72,6 +72,25 @@ extern void mips_handle_align PARAMS ((s #define TARGET_FORMAT mips_target_format() extern const char *mips_target_format PARAMS ((void)); +/* MIPS PIC level. */ + +enum mips_pic_level +{ + /* Do not generate PIC code. */ + NO_PIC, + + /* Generate PIC code as in the SVR4 MIPS ABI. */ + SVR4_PIC, + + /* Generate PIC code without using a global offset table: the data + segment has a maximum size of 64K, all data references are off + the $gp register, and all text references are PC relative. This + is used on some embedded systems. */ + EMBEDDED_PIC +}; + +extern enum mips_pic_level mips_pic; + struct mips_cl_insn { unsigned long insn_opcode; @@ -98,7 +117,7 @@ extern void mips_define_label PARAMS ((s #define tc_frob_file_before_adjust() mips_frob_file_before_adjust () extern void mips_frob_file_before_adjust PARAMS ((void)); -#define tc_frob_file() mips_frob_file () +#define tc_frob_file_before_fix() mips_frob_file () extern void mips_frob_file PARAMS ((void)); #if defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF) @@ -109,11 +128,21 @@ extern void mips_frob_file_after_relocs #define tc_fix_adjustable(fixp) mips_fix_adjustable (fixp) extern int mips_fix_adjustable PARAMS ((struct fix *)); +/* Global syms must not be resolved, to support ELF shared libraries. + When generating embedded code, we don't have shared libs. */ +#define EXTERN_FORCE_RELOC \ + (OUTPUT_FLAVOR == bfd_target_elf_flavour \ + && mips_pic != EMBEDDED_PIC) + /* When generating embedded PIC code we must keep PC relative relocations. */ -#define TC_FORCE_RELOCATION(fixp) mips_force_relocation (fixp) +#define TC_FORCE_RELOCATION(FIX) mips_force_relocation (FIX) extern int mips_force_relocation PARAMS ((struct fix *)); +#define TC_FORCE_RELOCATION_SUB_SAME(FIX, SEG) \ + (mips_force_relocation (FIX) \ + || !SEG_NORMAL (SEG)) + /* Register mask variables. These are set by the MIPS assembly code and used by ECOFF and possibly other object file formats. */ extern unsigned long mips_gprmask; diff -uprN binutils-2.13.90.0.4/gas/config/tc-mmix.c binutils-2.13.90.0.10/gas/config/tc-mmix.c --- binutils-2.13.90.0.4/gas/config/tc-mmix.c Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.10/gas/config/tc-mmix.c Fri Sep 27 08:33:09 2002 @@ -345,7 +345,7 @@ const pseudo_typeS md_pseudo_table[] = {"local", mmix_s_local, 1}, /* Support DWARF2 debugging info. */ - {"file", dwarf2_directive_file, 0}, + {"file", (void (*) PARAMS ((int))) dwarf2_directive_file, 0}, {"loc", dwarf2_directive_loc, 0}, {NULL, 0, 0} @@ -2410,8 +2410,7 @@ md_apply_fix3 (fixP, valP, segment) && symsec != absolute_section && ((fixP->fx_r_type != BFD_RELOC_MMIX_REG && fixP->fx_r_type != BFD_RELOC_MMIX_REG_OR_BYTE) - || (symsec != reg_section - && symsec != real_reg_section))))) + || symsec != reg_section)))) { fixP->fx_done = 0; return; @@ -2495,11 +2494,17 @@ md_apply_fix3 (fixP, valP, segment) case BFD_RELOC_MMIX_REG_OR_BYTE: if (fixP->fx_addsy != NULL - && (S_GET_SEGMENT (fixP->fx_addsy) != real_reg_section + && (S_GET_SEGMENT (fixP->fx_addsy) != reg_section || S_GET_VALUE (fixP->fx_addsy) > 255) && S_GET_SEGMENT (fixP->fx_addsy) != absolute_section) - as_bad_where (fixP->fx_file, fixP->fx_line, - _("invalid operands")); + { + as_bad_where (fixP->fx_file, fixP->fx_line, + _("invalid operands")); + /* We don't want this "symbol" appearing in output, because + that will fail. */ + fixP->fx_done = 1; + } + buf[0] = val; /* If this reloc is for a Z field, we need to adjust @@ -2510,25 +2515,19 @@ md_apply_fix3 (fixP, valP, segment) && (fixP->fx_addsy == NULL || S_GET_SEGMENT (fixP->fx_addsy) == absolute_section)) buf[-3] |= IMM_OFFSET_BIT; - - /* We don't want this "symbol" appearing in output, because that - will fail. */ - if (fixP->fx_addsy - && S_GET_SEGMENT (fixP->fx_addsy) == real_reg_section) - symbol_clear_used_in_reloc (fixP->fx_addsy); break; case BFD_RELOC_MMIX_REG: if (fixP->fx_addsy == NULL - || S_GET_SEGMENT (fixP->fx_addsy) != real_reg_section + || S_GET_SEGMENT (fixP->fx_addsy) != reg_section || S_GET_VALUE (fixP->fx_addsy) > 255) - as_bad_where (fixP->fx_file, fixP->fx_line, - _("invalid operands")); - *buf = val; + { + as_bad_where (fixP->fx_file, fixP->fx_line, + _("invalid operands")); + fixP->fx_done = 1; + } - if (fixP->fx_addsy - && S_GET_SEGMENT (fixP->fx_addsy) == real_reg_section) - symbol_clear_used_in_reloc (fixP->fx_addsy); + *buf = val; break; case BFD_RELOC_MMIX_BASE_PLUS_OFFSET: @@ -2843,8 +2842,7 @@ tc_gen_reloc (section, fixP) /* Unmark this symbol as used in a reloc, so we don't bump into a BFD assert when trying to output reg_section. FIXME: A gas bug. */ - if (addsy) - symbol_clear_used_in_reloc (addsy); + fixP->fx_addsy = NULL; return NULL; } @@ -3249,11 +3247,6 @@ mmix_force_relocation (fixP) || fixP->fx_r_type == BFD_RELOC_MMIX_BASE_PLUS_OFFSET) return 1; - /* FIXME: This is dubious. Handling of weak symbols should have been - caught before we get here. */ - if ((fixP->fx_addsy && S_IS_WEAK (fixP->fx_addsy))) - return 1; - if (linkrelax) return 1; @@ -3264,7 +3257,7 @@ mmix_force_relocation (fixP) if (fixP->fx_pcrel) return 1; - return 0; + return S_FORCE_RELOC (fixP->fx_addsy); } /* The location from which a PC relative jump should be calculated, @@ -3288,47 +3281,29 @@ md_pcrel_from_section (fixP, sec) } /* Adjust the symbol table. We make reg_section relative to the real - register section. - - FIXME: There's a gas bug; should be fixed when the reg_section symbol - is "accidentally" saved for relocs which are really fixups that will be - fixed up. */ + register section. */ void mmix_adjust_symtab () { symbolS *sym; - symbolS *prevsym; symbolS *regsec = section_symbol (reg_section); - segT realregsec = NULL; - for (prevsym = sym = symbol_rootP; - sym != NULL; - prevsym = sym, sym = symbol_next (sym)) + for (sym = symbol_rootP; sym != NULL; sym = symbol_next (sym)) if (S_GET_SEGMENT (sym) == reg_section) { - if (sym == regsec - || (!S_IS_EXTERN (sym) && !symbol_used_in_reloc_p (sym))) + if (sym == regsec) { + if (S_IS_EXTERN (sym) || symbol_used_in_reloc_p (sym)) + abort (); symbol_remove (sym, &symbol_rootP, &symbol_lastP); - - /* We make one extra turn, or we'll lose the next symbol. We - assume that the symbol we remove is not the symbol root - (.text normally is). */ - sym = prevsym; } else - { - /* Change section to the *real* register section, so it gets - proper treatment when writing it out. Only do this for - global symbols. This also means we don't have to check for - $0..$255. */ - if (realregsec == NULL) - realregsec - = bfd_make_section_old_way (stdoutput, MMIX_REG_SECTION_NAME); - - S_SET_SEGMENT (sym, realregsec); - } + /* Change section to the *real* register section, so it gets + proper treatment when writing it out. Only do this for + global symbols. This also means we don't have to check for + $0..$255. */ + S_SET_SEGMENT (sym, real_reg_section); } } diff -uprN binutils-2.13.90.0.4/gas/config/tc-mmix.h binutils-2.13.90.0.10/gas/config/tc-mmix.h --- binutils-2.13.90.0.4/gas/config/tc-mmix.h Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.10/gas/config/tc-mmix.h Fri Sep 27 08:33:09 2002 @@ -127,51 +127,53 @@ extern const struct relax_type mmix_rela extern long mmix_md_relax_frag PARAMS ((segT, fragS *, long)); #define md_relax_frag mmix_md_relax_frag -#define tc_fix_adjustable(X) \ - ((! (X)->fx_addsy \ - || (! S_IS_WEAK ((X)->fx_addsy) \ - && S_GET_SEGMENT ((X)->fx_addsy) != reg_section)) \ - && (X)->fx_r_type != BFD_RELOC_VTABLE_INHERIT \ - && (X)->fx_r_type != BFD_RELOC_VTABLE_ENTRY) +#define tc_fix_adjustable(FIX) \ + (((FIX)->fx_addsy == NULL \ + || S_GET_SEGMENT ((FIX)->fx_addsy) != reg_section) \ + && (FIX)->fx_r_type != BFD_RELOC_VTABLE_INHERIT \ + && (FIX)->fx_r_type != BFD_RELOC_VTABLE_ENTRY \ + && (FIX)->fx_r_type != BFD_RELOC_MMIX_LOCAL) /* Adjust symbols which are registers. */ #define tc_adjust_symtab() mmix_adjust_symtab () extern void mmix_adjust_symtab PARAMS ((void)); -/* Avoid outputting GAS register section symbols. This happens when the - assembly had errors, and will propagate to an assert in BFD. FIXME: - It seems the symbol output when-errors is a bug in GAS. Fix that - some time. See also tc_gen_reloc. - - Here's where we make all symbols global, when so requested. +/* Here's where we make all symbols global, when so requested. We must avoid doing that for expression symbols or section symbols, though. */ extern int mmix_globalize_symbols; #define tc_frob_symbol(sym, punt) \ do \ { \ - if (S_GET_SEGMENT (sym) == reg_section \ - || (symp) == section_symbol (absolute_section)) \ - (punt) = 1; \ - \ - if (mmix_globalize_symbols \ - && ! symbol_section_p (sym) \ - && symp != section_symbol (absolute_section) \ - && (! S_IS_LOCAL (sym) \ - || S_GET_SEGMENT (sym) == reg_section) \ - && (S_GET_SEGMENT (sym) != reg_section \ - || (S_GET_NAME (sym)[0] != '$' \ - && S_GET_VALUE (sym) < 256))) \ + if (S_GET_SEGMENT (sym) == reg_section) \ + { \ + if (S_GET_NAME (sym)[0] != '$' \ + && S_GET_VALUE (sym) < 256) \ + { \ + if (mmix_globalize_symbols) \ + S_SET_EXTERNAL (sym); \ + else \ + symbol_mark_used_in_reloc (sym); \ + } \ + } \ + else if (mmix_globalize_symbols \ + && ! symbol_section_p (sym) \ + && sym != section_symbol (absolute_section) \ + && ! S_IS_LOCAL (sym)) \ S_SET_EXTERNAL (sym); \ } \ while (0) +/* No shared lib support, so we don't need to ensure externally + visible symbols can be overridden. */ +#define EXTERN_FORCE_RELOC 0 + /* When relaxing, we need to emit various relocs we otherwise wouldn't. */ #define TC_FORCE_RELOCATION(fix) mmix_force_relocation (fix) extern int mmix_force_relocation PARAMS ((struct fix *)); /* Call md_pcrel_from_section(), not md_pcrel_from(). */ -#define MD_PCREL_FROM_SECTION(FIXP, SEC) md_pcrel_from_section (FIXP, SEC) +#define MD_PCREL_FROM_SECTION(FIX, SEC) md_pcrel_from_section (FIX, SEC) extern long md_pcrel_from_section PARAMS ((struct fix *, segT)); #define md_section_align(seg, size) (size) @@ -191,7 +193,7 @@ extern fragS *mmix_opcode_frag; fixups are done and relocs are output. Similarly for each unknown symbol. */ extern void mmix_frob_file PARAMS ((void)); -#define tc_frob_file mmix_frob_file +#define tc_frob_file_before_fix mmix_frob_file /* Used by mmix_frob_file. Hangs on section symbols and unknown symbols. */ struct mmix_symbol_gregs; diff -uprN binutils-2.13.90.0.4/gas/config/tc-mn10300.c binutils-2.13.90.0.10/gas/config/tc-mn10300.c --- binutils-2.13.90.0.4/gas/config/tc-mn10300.c Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.10/gas/config/tc-mn10300.c Fri Sep 27 08:33:09 2002 @@ -123,7 +123,7 @@ size_t md_longopts_size = sizeof (md_lon /* The target specific pseudo-ops which we support. */ const pseudo_typeS md_pseudo_table[] = { - { "file", dwarf2_directive_file, 0 }, + { "file", (void (*) PARAMS ((int))) dwarf2_directive_file, 0 }, { "loc", dwarf2_directive_loc, 0 }, { "am30", set_arch_mach, AM30 }, { "am33", set_arch_mach, AM33 }, @@ -2002,16 +2002,7 @@ mn10300_force_relocation (fixp) || fixp->fx_r_type == BFD_RELOC_VTABLE_ENTRY) return 1; - /* Do not adjust relocations involving symbols in code sections, - because it breaks linker relaxations. This could be fixed in the - linker, but this fix is simpler, and it pretty much only affects - object size a little bit. */ - if ((S_GET_SEGMENT (fixp->fx_addsy)->flags & SEC_CODE) - && fixp->fx_subsy - && S_GET_SEGMENT (fixp->fx_addsy) == S_GET_SEGMENT (fixp->fx_subsy)) - return 1; - - return 0; + return S_FORCE_RELOC (fixp->fx_addsy); } /* Return zero if the fixup in fixp should be left alone and not @@ -2021,10 +2012,6 @@ boolean mn10300_fix_adjustable (fixp) struct fix *fixp; { - /* Prevent all adjustments to global symbols. */ - if (S_IS_EXTERN (fixp->fx_addsy) || S_IS_WEAK (fixp->fx_addsy)) - return 0; - if (fixp->fx_r_type == BFD_RELOC_VTABLE_INHERIT || fixp->fx_r_type == BFD_RELOC_VTABLE_ENTRY) return 0; diff -uprN binutils-2.13.90.0.4/gas/config/tc-mn10300.h binutils-2.13.90.0.10/gas/config/tc-mn10300.h --- binutils-2.13.90.0.4/gas/config/tc-mn10300.h Fri Nov 16 14:05:52 2001 +++ binutils-2.13.90.0.10/gas/config/tc-mn10300.h Fri Sep 27 08:33:09 2002 @@ -1,5 +1,5 @@ /* tc-mn10300.h -- Header file for tc-mn10300.c. - Copyright 1996, 1997, 2000, 2001 Free Software Foundation, Inc. + Copyright 1996, 1997, 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -31,12 +31,21 @@ #define TARGET_FORMAT "elf32-mn10300" +/* No shared lib support, so we don't need to ensure externally + visible symbols can be overridden. */ +#define EXTERN_FORCE_RELOC 0 + /* For fixup and relocation handling. */ #define TC_FORCE_RELOCATION(fixp) mn10300_force_relocation (fixp) extern int mn10300_force_relocation PARAMS ((struct fix *)); -#define obj_fix_adjustable(fixP) mn10300_fix_adjustable (fixP) -extern boolean mn10300_fix_adjustable PARAMS ((struct fix *)); +/* Do not adjust relocations involving symbols in code sections, + because it breaks linker relaxations. This could be fixed in the + linker, but this fix is simpler, and it pretty much only affects + object size a little bit. */ +#define TC_FORCE_RELOCATION_SUB_SAME(FIX, SEG) \ + (! SEG_NORMAL (SEG) \ + || ((SEG)->flags & SEC_CODE) != 0) /* Fixup debug sections since we will never relax them. */ #define TC_LINKRELAX_FIXUP(seg) (seg->flags & SEC_ALLOC) @@ -53,6 +62,8 @@ extern boolean mn10300_fix_adjustable PA /* Don't bother to adjust relocs. */ #define tc_fix_adjustable(FIX) 0 +/* #define tc_fix_adjustable(FIX) mn10300_fix_adjustable (FIX) */ +extern boolean mn10300_fix_adjustable PARAMS ((struct fix *)); /* We do relaxing in the assembler as well as the linker. */ extern const struct relax_type md_relax_table[]; diff -uprN binutils-2.13.90.0.4/gas/config/tc-ns32k.h binutils-2.13.90.0.10/gas/config/tc-ns32k.h --- binutils-2.13.90.0.4/gas/config/tc-ns32k.h Thu Aug 1 17:49:32 2002 +++ binutils-2.13.90.0.10/gas/config/tc-ns32k.h Fri Sep 27 08:33:09 2002 @@ -128,12 +128,12 @@ extern const struct relax_type md_relax_ } \ while (0) -#define TC_FIX_DATA_PRINT(FILE, FIXP) \ +#define TC_FIX_DATA_PRINT(FILE, FIX) \ do \ { \ fprintf ((FILE), "opcode_frag=%ld, operand offset=%d, bsr=%d\n", \ - (unsigned long) fix_opcode_frag (FIXP), \ - fix_opcode_offset (FIXP), \ - fix_bsr (FIXP)); \ + (unsigned long) fix_opcode_frag (FIX), \ + fix_opcode_offset (FIX), \ + fix_bsr (FIX)); \ } \ while (0) diff -uprN binutils-2.13.90.0.4/gas/config/tc-openrisc.c binutils-2.13.90.0.10/gas/config/tc-openrisc.c --- binutils-2.13.90.0.4/gas/config/tc-openrisc.c Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.10/gas/config/tc-openrisc.c Fri Sep 27 08:33:09 2002 @@ -409,7 +409,7 @@ openrisc_force_relocation (fix) || fix->fx_r_type == BFD_RELOC_VTABLE_ENTRY) return 1; - return 0; + return S_FORCE_RELOC (fix->fx_addsy); } @@ -487,9 +487,6 @@ boolean openrisc_fix_adjustable (fixP) fixS * fixP; { - if (fixP->fx_addsy == NULL) - return 1; - /* We need the symbol name for the VTABLE entries */ if (fixP->fx_r_type == BFD_RELOC_VTABLE_INHERIT || fixP->fx_r_type == BFD_RELOC_VTABLE_ENTRY) diff -uprN binutils-2.13.90.0.4/gas/config/tc-openrisc.h binutils-2.13.90.0.10/gas/config/tc-openrisc.h --- binutils-2.13.90.0.4/gas/config/tc-openrisc.h Fri Nov 16 14:05:52 2001 +++ binutils-2.13.90.0.10/gas/config/tc-openrisc.h Fri Sep 27 08:33:09 2002 @@ -1,5 +1,5 @@ /* tc-openrisc.h -- Header file for tc-openrisc.c. - Copyright (C) 2001 Free Software Foundation, Inc. + Copyright 2001, 2002 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -39,10 +39,6 @@ extern unsigned long openrisc_machine; extern const char openrisc_comment_chars []; #define tc_comment_chars openrisc_comment_chars -/* Call md_pcrel_from_section, not md_pcrel_from. */ -extern long md_pcrel_from_section PARAMS ((struct fix *, segT)); -#define MD_PCREL_FROM_SECTION(FIXP, SEC) md_pcrel_from_section (FIXP, SEC) - /* Permit temporary numeric labels. */ #define LOCAL_LABELS_FB 1 @@ -51,10 +47,13 @@ extern long md_pcrel_from_section PARAMS /* We don't need to handle .word strangely. */ #define WORKING_DOT_WORD +/* Values passed to md_apply_fix3 don't include the symbol value. */ +#define MD_APPLY_SYM_VALUE(FIX) 0 + #define md_apply_fix3 gas_cgen_md_apply_fix3 extern boolean openrisc_fix_adjustable PARAMS ((struct fix *)); -#define obj_fix_adjustable(fixP) openrisc_fix_adjustable (fixP) +#define tc_fix_adjustable(FIX) openrisc_fix_adjustable (FIX) /* When relaxing, we need to emit various relocs we otherwise wouldn't. */ extern int openrisc_force_relocation PARAMS ((struct fix *)); @@ -64,7 +63,7 @@ extern int openrisc_force_relocation PAR /* Call md_pcrel_from_section(), not md_pcrel_from(). */ extern long md_pcrel_from_section PARAMS ((struct fix *, segT)); -#define MD_PCREL_FROM_SECTION(FIXP, SEC) md_pcrel_from_section (FIXP, SEC) +#define MD_PCREL_FROM_SECTION(FIX, SEC) md_pcrel_from_section (FIX, SEC) /* For 8 vs 16 vs 32 bit branch selection. */ extern const struct relax_type md_relax_table[]; diff -uprN binutils-2.13.90.0.4/gas/config/tc-or32.c binutils-2.13.90.0.10/gas/config/tc-or32.c --- binutils-2.13.90.0.4/gas/config/tc-or32.c Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.10/gas/config/tc-or32.c Fri Sep 27 08:33:09 2002 @@ -1057,7 +1057,7 @@ md_apply_fix3 (fixP, valP, seg) valueT *valP; segT seg ATTRIBUTE_UNUSED; { - long val = *(long*)valP; + long val = *valP; char *buf = fixP->fx_where + fixP->fx_frag->fr_literal; #if DEBUG @@ -1624,12 +1624,10 @@ tc_gen_reloc (seg, fixp) return NULL; } - if ( fixp->fx_r_type == BFD_RELOC_VTABLE_ENTRY - || fixp->fx_r_type == BFD_RELOC_VTABLE_INHERIT) - reloc->addend = fixp->fx_offset; - else - reloc->addend = fixp->fx_addnumber; + if (fixp->fx_r_type == BFD_RELOC_VTABLE_ENTRY) + reloc->address = fixp->fx_offset; + reloc->addend = fixp->fx_addnumber; return reloc; } #endif diff -uprN binutils-2.13.90.0.4/gas/config/tc-or32.h binutils-2.13.90.0.10/gas/config/tc-or32.h --- binutils-2.13.90.0.4/gas/config/tc-or32.h Sun Feb 3 11:22:31 2002 +++ binutils-2.13.90.0.10/gas/config/tc-or32.h Fri Sep 27 08:33:09 2002 @@ -50,6 +50,15 @@ extern int or32_unrecognized_line PARAMS #define BFD_ARCH bfd_arch_or32 #define COFF_MAGIC SIPFBOMAGIC +/* No shared lib support, so we don't need to ensure externally + visible symbols can be overridden. */ +#define EXTERN_FORCE_RELOC 0 + +#ifdef OBJ_ELF +/* Values passed to md_apply_fix3 don't include the symbol value. */ +#define MD_APPLY_SYM_VALUE(FIX) 0 +#endif + /* Should the reloc be output ? on the 29k, this is true only if there is a symbol attatched. on the h8, this is allways true, since no fixup is done. */ @@ -60,4 +69,3 @@ extern int or32_unrecognized_line PARAMS #define NEED_FX_R_TYPE #define ZERO_BASED_SEGMENTS - diff -uprN binutils-2.13.90.0.4/gas/config/tc-pj.c binutils-2.13.90.0.10/gas/config/tc-pj.c --- binutils-2.13.90.0.4/gas/config/tc-pj.c Sat Jun 8 20:44:53 2002 +++ binutils-2.13.90.0.10/gas/config/tc-pj.c Fri Sep 27 08:33:09 2002 @@ -434,18 +434,10 @@ md_apply_fix3 (fixP, valP, seg) segT seg ATTRIBUTE_UNUSED; { char *buf = fixP->fx_where + fixP->fx_frag->fr_literal; - long val = * (long *) valP; + long val = *valP; long max, min; int shift; - /* adjust_reloc_syms won't convert a reloc against a weak symbol - into a reloc against a section, but bfd_install_relocation will - screw up if the symbol is defined, so we have to adjust val here - to avoid the screw up later. */ - - if (fixP->fx_addsy != NULL && S_IS_WEAK (fixP->fx_addsy)) - val -= S_GET_VALUE (fixP->fx_addsy); - max = min = 0; shift = 0; switch (fixP->fx_r_type) diff -uprN binutils-2.13.90.0.4/gas/config/tc-pj.h binutils-2.13.90.0.10/gas/config/tc-pj.h --- binutils-2.13.90.0.4/gas/config/tc-pj.h Thu Jul 26 18:02:55 2001 +++ binutils-2.13.90.0.10/gas/config/tc-pj.h Fri Sep 27 08:33:09 2002 @@ -1,5 +1,5 @@ /* This file is tc-pj.h - Copyright 1999, 2000 Free Software Foundation, Inc. + Copyright 1999, 2000, 2002 Free Software Foundation, Inc. Contributed by Steve Chamberlain of Transmeta, sac@pobox.com @@ -32,7 +32,7 @@ : "Pico Java GAS Little Endian") void pj_cons_fix_new_pj PARAMS ((struct frag *, int, int, expressionS *)); -arelent *tc_gen_reloc PARAMS((asection *section, struct fix *fixp)); +arelent *tc_gen_reloc PARAMS((asection *, struct fix *)); #define md_section_align(SEGMENT, SIZE) (SIZE) #define md_convert_frag(B, S, F) (as_fatal (_("convert_frag\n")), 0) @@ -42,17 +42,25 @@ arelent *tc_gen_reloc PARAMS((asection * /* PC relative operands are relative to the start of the opcode, and the operand is always one byte into the opcode. */ -#define md_pcrel_from(FIXP) \ - ((FIXP)->fx_where + (FIXP)->fx_frag->fr_address - 1) +#define md_pcrel_from(FIX) \ + ((FIX)->fx_where + (FIX)->fx_frag->fr_address - 1) #define TC_CONS_FIX_NEW(FRAG, WHERE, NBYTES, EXP) \ pj_cons_fix_new_pj (FRAG, WHERE, NBYTES, EXP) +/* No shared lib support, so we don't need to ensure externally + visible symbols can be overridden. */ +#define EXTERN_FORCE_RELOC 0 + /* Always leave vtable relocs untouched in the output. */ #define TC_FORCE_RELOCATION(FIX) \ ((FIX)->fx_r_type == BFD_RELOC_VTABLE_INHERIT \ - || (FIX)->fx_r_type == BFD_RELOC_VTABLE_ENTRY) + || (FIX)->fx_r_type == BFD_RELOC_VTABLE_ENTRY \ + || S_FORCE_RELOC ((FIX)->fx_addsy)) + +/* Values passed to md_apply_fix3 don't include the symbol value. */ +#define MD_APPLY_SYM_VALUE(FIX) 0 -#define obj_fix_adjustable(FIX) \ +#define tc_fix_adjustable(FIX) \ (! ((FIX)->fx_r_type == BFD_RELOC_VTABLE_INHERIT \ || (FIX)->fx_r_type == BFD_RELOC_VTABLE_ENTRY)) diff -uprN binutils-2.13.90.0.4/gas/config/tc-ppc.c binutils-2.13.90.0.10/gas/config/tc-ppc.c --- binutils-2.13.90.0.4/gas/config/tc-ppc.c Thu Aug 8 22:49:56 2002 +++ binutils-2.13.90.0.10/gas/config/tc-ppc.c Fri Sep 27 08:33:09 2002 @@ -68,14 +68,14 @@ static int set_target_endian = 0; #define PPC_HA(v) PPC_HI ((v) + 0x8000) /* #higher(value) denotes bits 32 through 47 of the indicated value. */ -#define PPC_HIGHER(v) (((v) >> 32) & 0xffff) +#define PPC_HIGHER(v) (((v) >> 16 >> 16) & 0xffff) /* #highera(value) denotes bits 32 through 47 of the indicated value, compensating for #lo() being treated as a signed number. */ #define PPC_HIGHERA(v) PPC_HIGHER ((v) + 0x8000) /* #highest(value) denotes bits 48 through 63 of the indicated value. */ -#define PPC_HIGHEST(v) (((v) >> 48) & 0xffff) +#define PPC_HIGHEST(v) (((v) >> 24 >> 24) & 0xffff) /* #highesta(value) denotes bits 48 through 63 of the indicated value, compensating for #lo being treated as a signed number. */ @@ -130,6 +130,7 @@ static void ppc_elf_cons PARAMS ((int)); static void ppc_elf_rdata PARAMS ((int)); static void ppc_elf_lcomm PARAMS ((int)); static void ppc_elf_validate_fix PARAMS ((fixS *, segT)); +static void ppc_apuinfo_section_add PARAMS ((unsigned int apu, unsigned int version)); #endif #ifdef TE_PE @@ -787,6 +788,20 @@ static segT ppc_current_section; #ifdef OBJ_ELF symbolS *GOT_symbol; /* Pre-defined "_GLOBAL_OFFSET_TABLE" */ +#define PPC_APUINFO_ISEL 0x40 +#define PPC_APUINFO_PMR 0x41 +#define PPC_APUINFO_RFMCI 0x42 +#define PPC_APUINFO_CACHELCK 0x43 +#define PPC_APUINFO_SPE 0x100 +#define PPC_APUINFO_EFS 0x101 +#define PPC_APUINFO_BRLOCK 0x102 + +/* + * We keep a list of APUinfo + */ +unsigned long *ppc_apuinfo_list; +unsigned int ppc_apuinfo_num; +unsigned int ppc_apuinfo_num_alloc; #endif /* OBJ_ELF */ #ifdef OBJ_ELF @@ -852,7 +867,13 @@ md_parse_option (c, arg) /* a64 and a32 determine whether to use XCOFF64 or XCOFF32. */ case 'a': if (strcmp (arg, "64") == 0) - ppc_obj64 = 1; + { +#ifdef BFD64 + ppc_obj64 = 1; +#else + as_fatal (_("%s unsupported"), "-a64"); +#endif + } else if (strcmp (arg, "32") == 0) ppc_obj64 = 0; else @@ -870,43 +891,62 @@ md_parse_option (c, arg) /* -m601 means to assemble for the PowerPC 601, which includes instructions that are holdovers from the Power. */ else if (strcmp (arg, "601") == 0) - ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_601 | PPC_OPCODE_32; + ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC + | PPC_OPCODE_601 | PPC_OPCODE_32; /* -mppc, -mppc32, -m603, and -m604 mean to assemble for the PowerPC 603/604. */ else if (strcmp (arg, "ppc") == 0 || strcmp (arg, "ppc32") == 0 || strcmp (arg, "603") == 0 || strcmp (arg, "604") == 0) - ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_32; + ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC | PPC_OPCODE_32; /* -m403 and -m405 mean to assemble for the PowerPC 403/405. */ else if (strcmp (arg, "403") == 0 || strcmp (arg, "405") == 0) - ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_403 | PPC_OPCODE_32; + ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC + | PPC_OPCODE_403 | PPC_OPCODE_32; else if (strcmp (arg, "7400") == 0 || strcmp (arg, "7410") == 0 || strcmp (arg, "7450") == 0 || strcmp (arg, "7455") == 0) - ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_ALTIVEC | PPC_OPCODE_32; + ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC + | PPC_OPCODE_ALTIVEC | PPC_OPCODE_32; else if (strcmp (arg, "altivec") == 0) { if (ppc_cpu == 0) - ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_ALTIVEC; + ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC | PPC_OPCODE_ALTIVEC; else ppc_cpu |= PPC_OPCODE_ALTIVEC; } + else if (strcmp (arg, "e500") == 0 || strcmp (arg, "e500x2") == 0) + { + ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_BOOKE | PPC_OPCODE_SPE + | PPC_OPCODE_ISEL | PPC_OPCODE_EFS | PPC_OPCODE_BRLOCK + | PPC_OPCODE_PMR | PPC_OPCODE_CACHELCK | PPC_OPCODE_RFMCI; + } + else if (strcmp (arg, "spe") == 0) + { + if (ppc_cpu == 0) + ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_SPE | PPC_OPCODE_EFS; + else + ppc_cpu |= PPC_OPCODE_SPE; + } /* -mppc64 and -m620 mean to assemble for the 64-bit PowerPC 620. */ else if (strcmp (arg, "ppc64") == 0 || strcmp (arg, "620") == 0) { - ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_64; + ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC | PPC_OPCODE_64; } else if (strcmp (arg, "ppc64bridge") == 0) { - ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_64_BRIDGE | PPC_OPCODE_64; + ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC + | PPC_OPCODE_64_BRIDGE | PPC_OPCODE_64; } /* -mbooke/-mbooke32 mean enable 32-bit BookE support. */ else if (strcmp (arg, "booke") == 0 || strcmp (arg, "booke32") == 0) - ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_BOOKE | PPC_OPCODE_32; + { + ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_BOOKE | PPC_OPCODE_32; + } /* -mbooke64 means enable 64-bit BookE support. */ else if (strcmp (arg, "booke64") == 0) { @@ -915,7 +955,8 @@ md_parse_option (c, arg) } else if (strcmp (arg, "power4") == 0) { - ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_64 | PPC_OPCODE_POWER4; + ppc_cpu = PPC_OPCODE_PPC| PPC_OPCODE_CLASSIC + | PPC_OPCODE_64 | PPC_OPCODE_POWER4; } /* -mcom means assemble for the common intersection between Power and PowerPC. At present, we just allow the union, rather @@ -1037,6 +1078,9 @@ PowerPC options:\n\ -many generate code for any architecture (PWR/PWRX/PPC)\n\ -mregnames Allow symbolic names for registers\n\ -mno-regnames Do not allow symbolic names for registers\n")); + fprintf (stream, _("\ +-me500, -me500x2 generate code for Motorola e500 core complex\n\ +-mspe generate code for Motorola SPE instructions\n")); #ifdef OBJ_ELF fprintf (stream, _("\ -mrelocatable support for GCC's -mrelocatble option\n\ @@ -1062,20 +1106,22 @@ ppc_set_cpu () if (ppc_cpu == 0) { - if (strncmp (default_os, "aix", 3) == 0 - && default_os[3] >= '4' && default_os[3] <= '9') + if (ppc_obj64) + ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC | PPC_OPCODE_64; + else if (strncmp (default_os, "aix", 3) == 0 + && default_os[3] >= '4' && default_os[3] <= '9') ppc_cpu = PPC_OPCODE_COMMON | PPC_OPCODE_32; else if (strncmp (default_os, "aix3", 4) == 0) ppc_cpu = PPC_OPCODE_POWER | PPC_OPCODE_32; else if (strcmp (default_cpu, "rs6000") == 0) ppc_cpu = PPC_OPCODE_POWER | PPC_OPCODE_32; else if (strncmp (default_cpu, "powerpc", 7) == 0) - { - if (default_cpu[7] == '6' && default_cpu[8] == '4') - ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_64; - else - ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_32; - } + { + if (default_cpu[7] == '6' && default_cpu[8] == '4') + ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC | PPC_OPCODE_64; + else + ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC | PPC_OPCODE_32; + } else as_fatal (_("Unknown default cpu = %s, os = %s"), default_cpu, default_os); @@ -1109,7 +1155,12 @@ ppc_arch () unsigned long ppc_mach () { - return ppc_obj64 ? bfd_mach_ppc64 : bfd_mach_ppc; + if (ppc_obj64) + return bfd_mach_ppc64; + else if (ppc_arch () == bfd_arch_rs6000) + return bfd_mach_rs6k; + else + return bfd_mach_ppc; } extern char* @@ -1169,6 +1220,14 @@ md_begin () || ((op->flags & (PPC_OPCODE_32 | PPC_OPCODE_64)) == (ppc_cpu & (PPC_OPCODE_32 | PPC_OPCODE_64))) || (ppc_cpu & PPC_OPCODE_64_BRIDGE) != 0) + /* Certain instructions (eg: extsw) do not exist in the + 32-bit BookE instruction set, but they do exist in the + 64-bit BookE instruction set, and other PPC instruction + sets. Check to see if the opcode has the BOOKE64 flag set. + If it does make sure that the target CPU is not the BookE32. */ + && ((op->flags & PPC_OPCODE_BOOKE64) == 0 + || (ppc_cpu & PPC_OPCODE_BOOKE64) == PPC_OPCODE_BOOKE64 + || (ppc_cpu & PPC_OPCODE_BOOKE) == 0) && ((op->flags & (PPC_OPCODE_POWER4 | PPC_OPCODE_NOPOWER4)) == 0 || ((op->flags & PPC_OPCODE_POWER4) == (ppc_cpu & PPC_OPCODE_POWER4)))) @@ -1240,6 +1299,66 @@ md_begin () #endif } +void +ppc_cleanup () +{ +#ifdef OBJ_ELF + if (ppc_apuinfo_list == NULL) + return; + + /* Ok, so write the section info out. We have this layout: + + byte data what + ---- ---- ---- + 0 8 length of "APUinfo\0" + 4 (n*4) number of APU's (4 bytes each) + 8 2 note type 2 + 12 "APUinfo\0" name + 20 APU#1 first APU's info + 24 APU#2 second APU's info + ... ... + */ + { + char *p; + asection *seg = now_seg; + subsegT subseg = now_subseg; + asection *apuinfo_secp = (asection *) NULL; + int i; + + /* Create the .PPC.EMB.apuinfo section. */ + apuinfo_secp = subseg_new (".PPC.EMB.apuinfo", 0); + bfd_set_section_flags (stdoutput, + apuinfo_secp, + SEC_HAS_CONTENTS | SEC_READONLY | SEC_MERGE); + + p = frag_more (4); + md_number_to_chars (p, (valueT) 8, 4); + + p = frag_more (4); + md_number_to_chars (p, (valueT) ppc_apuinfo_num, 4); + + p = frag_more (4); + md_number_to_chars (p, (valueT) 2, 4); + + p = frag_more (8); + strcpy (p, "APUinfo"); + + for (i = 0; i < ppc_apuinfo_num; i++) + { + p = frag_more (4); + md_number_to_chars (p, (valueT) ppc_apuinfo_list[i], 4); + } + + frag_align (2, 0, 0); + + /* We probably can't restore the current segment, for there likely + isn't one yet... */ + if (seg && subseg) + subseg_set (seg, subseg); + } +#endif +} + /* Insert an operand value into an instruction. */ static unsigned long @@ -1837,6 +1956,40 @@ parse_toc_entry (toc_kind) #endif +#ifdef OBJ_ELF +#define APUID(a,v) ((((a) & 0xffff) << 16) | ((v) & 0xffff)) +static void +ppc_apuinfo_section_add (apu, version) + unsigned int apu, version; +{ + unsigned int i; + + /* Check we don't already exist. */ + for (i = 0; i < ppc_apuinfo_num; i++) + if (ppc_apuinfo_list[i] == APUID (apu, version)) + return; + + if (ppc_apuinfo_num == ppc_apuinfo_num_alloc) + { + if (ppc_apuinfo_num_alloc == 0) + { + ppc_apuinfo_num_alloc = 4; + ppc_apuinfo_list = (unsigned long *) + xmalloc (sizeof (unsigned long) * ppc_apuinfo_num_alloc); + } + else + { + ppc_apuinfo_num_alloc += 4; + ppc_apuinfo_list = (unsigned long *) xrealloc (ppc_apuinfo_list, + sizeof (unsigned long) * ppc_apuinfo_num_alloc); + } + } + ppc_apuinfo_list[ppc_apuinfo_num++] = APUID (apu, version); +} +#undef APUID +#endif + + /* We need to keep a list of fixups. We can't simply generate them as we go, because that would require us to first create the frag, and that would screw up references to ``.''. */ @@ -1916,6 +2069,8 @@ md_assemble (str) if ((operand->flags & PPC_OPERAND_OPTIONAL) != 0) { unsigned int opcount; + unsigned int num_operands_expected; + unsigned int i; /* There is an optional operand. Count the number of commas in the input line. */ @@ -1932,10 +2087,16 @@ md_assemble (str) } } + /* Compute the number of expected operands. + Do not count fake operands. */ + for (num_operands_expected = 0, i = 0; opcode->operands[i]; i ++) + if ((powerpc_operands [opcode->operands[i]].flags & PPC_OPERAND_FAKE) == 0) + ++ num_operands_expected; + /* If there are fewer operands in the line then are called for by the instruction, we want to skip the optional operand. */ - if (opcount < strlen (opcode->operands)) + if (opcount < num_operands_expected) skip_optional = 1; break; @@ -1961,7 +2122,6 @@ md_assemble (str) operand = &powerpc_operands[next_opindex]; next_opindex = 0; } - errmsg = NULL; /* If this is a fake operand, then we do not expect anything @@ -2322,6 +2482,31 @@ md_assemble (str) if (*str != '\0') as_bad (_("junk at end of line: `%s'"), str); +#ifdef OBJ_ELF + /* Do we need/want a APUinfo section? */ + if (ppc_cpu & (PPC_OPCODE_SPE + | PPC_OPCODE_ISEL | PPC_OPCODE_EFS + | PPC_OPCODE_BRLOCK | PPC_OPCODE_PMR | PPC_OPCODE_CACHELCK + | PPC_OPCODE_RFMCI)) + { + /* These are all version "1". */ + if (opcode->flags & PPC_OPCODE_SPE) + ppc_apuinfo_section_add (PPC_APUINFO_SPE, 1); + if (opcode->flags & PPC_OPCODE_ISEL) + ppc_apuinfo_section_add (PPC_APUINFO_ISEL, 1); + if (opcode->flags & PPC_OPCODE_EFS) + ppc_apuinfo_section_add (PPC_APUINFO_EFS, 1); + if (opcode->flags & PPC_OPCODE_BRLOCK) + ppc_apuinfo_section_add (PPC_APUINFO_BRLOCK, 1); + if (opcode->flags & PPC_OPCODE_PMR) + ppc_apuinfo_section_add (PPC_APUINFO_PMR, 1); + if (opcode->flags & PPC_OPCODE_CACHELCK) + ppc_apuinfo_section_add (PPC_APUINFO_CACHELCK, 1); + if (opcode->flags & PPC_OPCODE_RFMCI) + ppc_apuinfo_section_add (PPC_APUINFO_RFMCI, 1); + } +#endif + /* Write out the instruction. */ f = frag_more (4); md_number_to_chars (f, insn, 4); @@ -4486,6 +4671,10 @@ ppc_frob_symbol (sym) && S_GET_STORAGE_CLASS (sym) != C_FILE))) return 1; + /* This one will disappear anyway. Don't make a csect sym for it. */ + if (sym == abs_section_sym) + return 1; + if (symbol_get_tc (sym)->real_name != (char *) NULL) S_SET_NAME (sym, symbol_get_tc (sym)->real_name); else @@ -4698,10 +4887,10 @@ ppc_frob_symbol (sym) /* We want the value to be the symbol index of the referenced csect symbol. BFD will do that for us if we set the right flags. */ - S_SET_VALUE (sym, - ((valueT) - coffsymbol (symbol_get_bfdsym - (symbol_get_tc (sym)->within))->native)); + asymbol *bsym = symbol_get_bfdsym (symbol_get_tc (sym)->within); + combined_entry_type *c = coffsymbol (bsym)->native; + + S_SET_VALUE (sym, (valueT) (size_t) c); coffsymbol (symbol_get_bfdsym (sym))->native->fix_value = 1; } else if (S_GET_STORAGE_CLASS (sym) == C_STSYM) @@ -4927,14 +5116,16 @@ int ppc_fix_adjustable (fix) fixS *fix; { - valueT val; + valueT val = resolve_symbol_value (fix->fx_addsy); + segT symseg = S_GET_SEGMENT (fix->fx_addsy); + TC_SYMFIELD_TYPE *tc; + + if (symseg == absolute_section) + return 0; - resolve_symbol_value (fix->fx_addsy); - val = S_GET_VALUE (fix->fx_addsy); if (ppc_toc_csect != (symbolS *) NULL - && fix->fx_addsy != (symbolS *) NULL && fix->fx_addsy != ppc_toc_csect - && S_GET_SEGMENT (fix->fx_addsy) == data_section + && symseg == data_section && val >= ppc_toc_frag->fr_address && (ppc_after_toc_frag == (fragS *) NULL || val < ppc_after_toc_frag->fr_address)) @@ -4945,12 +5136,13 @@ ppc_fix_adjustable (fix) sy != (symbolS *) NULL; sy = symbol_next (sy)) { - if (symbol_get_tc (sy)->class == XMC_TC0) + TC_SYMFIELD_TYPE *sy_tc = symbol_get_tc (sy); + + if (sy_tc->class == XMC_TC0) continue; - if (symbol_get_tc (sy)->class != XMC_TC) + if (sy_tc->class != XMC_TC) break; - resolve_symbol_value (sy); - if (val == S_GET_VALUE (sy)) + if (val == resolve_symbol_value (sy)) { fix->fx_addsy = sy; fix->fx_addnumber = val - ppc_toc_frag->fr_address; @@ -4963,23 +5155,24 @@ ppc_fix_adjustable (fix) } /* Possibly adjust the reloc to be against the csect. */ - if (fix->fx_addsy != (symbolS *) NULL - && symbol_get_tc (fix->fx_addsy)->subseg == 0 - && symbol_get_tc (fix->fx_addsy)->class != XMC_TC0 - && symbol_get_tc (fix->fx_addsy)->class != XMC_TC - && S_GET_SEGMENT (fix->fx_addsy) != bss_section + tc = symbol_get_tc (fix->fx_addsy); + if (tc->subseg == 0 + && tc->class != XMC_TC0 + && tc->class != XMC_TC + && symseg != bss_section /* Don't adjust if this is a reloc in the toc section. */ - && (S_GET_SEGMENT (fix->fx_addsy) != data_section + && (symseg != data_section || ppc_toc_csect == NULL || val < ppc_toc_frag->fr_address || (ppc_after_toc_frag != NULL && val >= ppc_after_toc_frag->fr_address))) { symbolS *csect; + symbolS *next_csect; - if (S_GET_SEGMENT (fix->fx_addsy) == text_section) + if (symseg == text_section) csect = ppc_text_csects; - else if (S_GET_SEGMENT (fix->fx_addsy) == data_section) + else if (symseg == data_section) csect = ppc_data_csects; else abort (); @@ -4989,16 +5182,15 @@ ppc_fix_adjustable (fix) if (csect != (symbolS *) NULL) { - while (symbol_get_tc (csect)->next != (symbolS *) NULL - && (symbol_get_frag (symbol_get_tc (csect)->next)->fr_address - <= val)) + while ((next_csect = symbol_get_tc (csect)->next) != (symbolS *) NULL + && (symbol_get_frag (next_csect)->fr_address <= val)) { /* If the csect address equals the symbol value, then we have to look through the full symbol table to see whether this is the csect we want. Note that we will only get here if the csect has zero length. */ - if ((symbol_get_frag (csect)->fr_address == val) - && S_GET_VALUE (csect) == S_GET_VALUE (fix->fx_addsy)) + if (symbol_get_frag (csect)->fr_address == val + && S_GET_VALUE (csect) == val) { symbolS *scan; @@ -5018,26 +5210,24 @@ ppc_fix_adjustable (fix) break; } - csect = symbol_get_tc (csect)->next; + csect = next_csect; } - fix->fx_offset += (S_GET_VALUE (fix->fx_addsy) - - symbol_get_frag (csect)->fr_address); + fix->fx_offset += val - symbol_get_frag (csect)->fr_address; fix->fx_addsy = csect; } + return 0; } /* Adjust a reloc against a .lcomm symbol to be against the base .lcomm. */ - if (fix->fx_addsy != (symbolS *) NULL - && S_GET_SEGMENT (fix->fx_addsy) == bss_section + if (symseg == bss_section && ! S_IS_EXTERNAL (fix->fx_addsy)) { - resolve_symbol_value (symbol_get_frag (fix->fx_addsy)->fr_symbol); - fix->fx_offset += - (S_GET_VALUE (fix->fx_addsy) - - S_GET_VALUE (symbol_get_frag (fix->fx_addsy)->fr_symbol)); - fix->fx_addsy = symbol_get_frag (fix->fx_addsy)->fr_symbol; + symbolS *sy = symbol_get_frag (fix->fx_addsy)->fr_symbol; + + fix->fx_offset += val - resolve_symbol_value (sy); + fix->fx_addsy = sy; } return 0; @@ -5065,12 +5255,38 @@ ppc_force_relocation (fix) <= fix->fx_frag->fr_address)))) return 1; - return 0; + return S_FORCE_RELOC (fix->fx_addsy); } #endif /* OBJ_XCOFF */ #ifdef OBJ_ELF +/* If this function returns non-zero, it guarantees that a relocation + will be emitted for a fixup. */ + +int +ppc_force_relocation (fix) + fixS *fix; +{ + /* Branch prediction relocations must force a relocation, as must + the vtable description relocs. */ + switch (fix->fx_r_type) + { + case BFD_RELOC_PPC_B16_BRTAKEN: + case BFD_RELOC_PPC_B16_BRNTAKEN: + case BFD_RELOC_PPC_BA16_BRTAKEN: + case BFD_RELOC_PPC_BA16_BRNTAKEN: + case BFD_RELOC_PPC64_TOC: + case BFD_RELOC_VTABLE_INHERIT: + case BFD_RELOC_VTABLE_ENTRY: + return 1; + default: + break; + } + + return S_FORCE_RELOC (fix->fx_addsy); +} + int ppc_fix_adjustable (fix) fixS *fix; @@ -5082,8 +5298,6 @@ ppc_fix_adjustable (fix) && fix->fx_r_type != BFD_RELOC_GPREL16 && fix->fx_r_type != BFD_RELOC_VTABLE_INHERIT && fix->fx_r_type != BFD_RELOC_VTABLE_ENTRY - && ! S_IS_EXTERNAL (fix->fx_addsy) - && ! S_IS_WEAK (fix->fx_addsy) && (fix->fx_pcrel || (fix->fx_subsy != NULL && (S_GET_SEGMENT (fix->fx_subsy) @@ -5112,32 +5326,22 @@ md_apply_fix3 (fixP, valP, seg) #ifdef OBJ_ELF if (fixP->fx_addsy != NULL) { - /* `*valuep' may contain the value of the symbol on which the reloc - will be based; we have to remove it. */ - if (symbol_used_in_reloc_p (fixP->fx_addsy) - && S_GET_SEGMENT (fixP->fx_addsy) != absolute_section - && S_GET_SEGMENT (fixP->fx_addsy) != undefined_section - && ! bfd_is_com_section (S_GET_SEGMENT (fixP->fx_addsy))) - value -= S_GET_VALUE (fixP->fx_addsy); - - /* FIXME: Why '+'? Better yet, what exactly is '*valuep' - supposed to be? I think this is related to various similar - FIXMEs in tc-i386.c and tc-sparc.c. */ + /* Hack around bfd_install_relocation brain damage. */ if (fixP->fx_pcrel) value += fixP->fx_frag->fr_address + fixP->fx_where; } else fixP->fx_done = 1; #else - /* FIXME FIXME FIXME: The value we are passed in *valuep includes + /* FIXME FIXME FIXME: The value we are passed in *valP includes the symbol values. Since we are using BFD_ASSEMBLER, if we are doing this relocation the code in write.c is going to call bfd_install_relocation, which is also going to use the symbol value. That means that if the reloc is fully resolved we want to - use *valuep since bfd_install_relocation is not being used. + use *valP since bfd_install_relocation is not being used. However, if the reloc is not fully resolved we do not want to use - *valuep, and must use fx_offset instead. However, if the reloc - is PC relative, we do want to use *valuep since it includes the + *valP, and must use fx_offset instead. However, if the reloc + is PC relative, we do want to use *valP since it includes the result of md_pcrel_from. This is confusing. */ if (fixP->fx_addsy == (symbolS *) NULL) fixP->fx_done = 1; @@ -5146,21 +5350,14 @@ md_apply_fix3 (fixP, valP, seg) ; else + value = fixP->fx_offset; +#endif + + if (fixP->fx_subsy != (symbolS *) NULL) { - value = fixP->fx_offset; - if (fixP->fx_subsy != (symbolS *) NULL) - { - if (S_GET_SEGMENT (fixP->fx_subsy) == absolute_section) - value -= S_GET_VALUE (fixP->fx_subsy); - else - { - /* We can't actually support subtracting a symbol. */ - as_bad_where (fixP->fx_file, fixP->fx_line, - _("expression too complex")); - } - } + /* We can't actually support subtracting a symbol. */ + as_bad_where (fixP->fx_file, fixP->fx_line, _("expression too complex")); } -#endif if ((int) fixP->fx_r_type >= (int) BFD_RELOC_UNUSED) { diff -uprN binutils-2.13.90.0.4/gas/config/tc-ppc.h binutils-2.13.90.0.10/gas/config/tc-ppc.h --- binutils-2.13.90.0.4/gas/config/tc-ppc.h Wed Jul 17 11:38:29 2002 +++ binutils-2.13.90.0.10/gas/config/tc-ppc.h Fri Sep 27 08:33:09 2002 @@ -117,7 +117,7 @@ extern char *ppc_target_format PARAMS (( #define LEX_QM 1 /* Don't adjust TOC relocs. */ -#define tc_fix_adjustable(fixp) ppc_pe_fix_adjustable (fixp) +#define tc_fix_adjustable(FIX) ppc_pe_fix_adjustable (FIX) extern int ppc_pe_fix_adjustable PARAMS ((struct fix *)); #endif @@ -177,13 +177,9 @@ extern void ppc_symbol_new_hook PARAMS ( extern void ppc_frob_label PARAMS ((symbolS *)); /* TOC relocs requires special handling. */ -#define tc_fix_adjustable(fixp) ppc_fix_adjustable (fixp) +#define tc_fix_adjustable(FIX) ppc_fix_adjustable (FIX) extern int ppc_fix_adjustable PARAMS ((struct fix *)); -/* A relocation from one csect to another must be kept. */ -#define TC_FORCE_RELOCATION(FIXP) ppc_force_relocation (FIXP) -extern int ppc_force_relocation PARAMS ((struct fix *)); - /* We need to set the section VMA. */ #define tc_frob_section(sec) ppc_frob_section (sec) extern void ppc_frob_section PARAMS ((asection *)); @@ -212,22 +208,6 @@ do { \ #ifdef OBJ_ELF -/* Branch prediction relocations must force relocation, as must - the vtable description relocs. */ -#define TC_FORCE_RELOCATION(FIXP) \ -((FIXP)->fx_r_type == BFD_RELOC_PPC_B16_BRTAKEN \ - || (FIXP)->fx_r_type == BFD_RELOC_PPC_B16_BRNTAKEN \ - || (FIXP)->fx_r_type == BFD_RELOC_PPC_BA16_BRTAKEN \ - || (FIXP)->fx_r_type == BFD_RELOC_PPC_BA16_BRNTAKEN \ - || (FIXP)->fx_r_type == BFD_RELOC_PPC64_TOC \ - || (FIXP)->fx_r_type == BFD_RELOC_VTABLE_INHERIT \ - || (FIXP)->fx_r_type == BFD_RELOC_VTABLE_ENTRY) - -#define TC_FORCE_RELOCATION_SECTION(FIXP,SEC) \ -(TC_FORCE_RELOCATION (FIXP) \ - || ((FIXP)->fx_addsy && !(FIXP)->fx_subsy \ - && S_GET_SEGMENT ((FIXP)->fx_addsy) != SEC)) - /* Support for SHF_EXCLUDE and SHT_ORDERED */ extern int ppc_section_letter PARAMS ((int, char **)); extern int ppc_section_type PARAMS ((char *, size_t)); @@ -248,6 +228,7 @@ extern int ppc_section_flags PARAMS ((in { ".sbss", SHT_NOBITS, SHF_ALLOC + SHF_WRITE }, \ { ".sdata2", SHT_PROGBITS, SHF_ALLOC }, \ { ".sbss2", SHT_PROGBITS, SHF_ALLOC }, \ + { ".PPC.EMB.apuinfo", SHT_NOTE, 0 }, \ { ".PPC.EMB.sdata0", SHT_PROGBITS, SHF_ALLOC }, \ { ".PPC.EMB.sbss0", SHT_PROGBITS, SHF_ALLOC }, \ /* Extra sections for 64-bit ELF PPC. */ \ @@ -258,18 +239,11 @@ extern int ppc_section_flags PARAMS ((in extern const char *ppc_comment_chars; /* Keep relocations relative to the GOT, or non-PC relative. */ -#define tc_fix_adjustable(fixp) ppc_fix_adjustable (fixp) +#define tc_fix_adjustable(FIX) ppc_fix_adjustable (FIX) extern int ppc_fix_adjustable PARAMS ((struct fix *)); -/* We must never ever try to resolve references to externally visible - symbols in the assembler, because the .o file might go into a shared - library, and some other shared library might override that symbol. */ -#define TC_RELOC_RTSYM_LOC_FIXUP(FIX) \ - ((FIX)->fx_addsy == NULL \ - || (! S_IS_EXTERNAL ((FIX)->fx_addsy) \ - && ! S_IS_WEAK ((FIX)->fx_addsy) \ - && S_IS_DEFINED ((FIX)->fx_addsy) \ - && ! S_IS_COMMON ((FIX)->fx_addsy))) +/* Values passed to md_apply_fix3 don't include symbol values. */ +#define MD_APPLY_SYM_VALUE(FIX) 0 #define tc_frob_file_before_adjust ppc_frob_file_before_adjust extern void ppc_frob_file_before_adjust PARAMS ((void)); @@ -277,11 +251,17 @@ extern void ppc_frob_file_before_adjust #define DWARF2_LINE_MIN_INSN_LENGTH 4 #endif /* OBJ_ELF */ +#define TC_FORCE_RELOCATION(FIX) ppc_force_relocation (FIX) +extern int ppc_force_relocation PARAMS ((struct fix *)); + /* call md_pcrel_from_section, not md_pcrel_from */ -#define MD_PCREL_FROM_SECTION(FIXP, SEC) md_pcrel_from_section(FIXP, SEC) +#define MD_PCREL_FROM_SECTION(FIX, SEC) md_pcrel_from_section(FIX, SEC) extern long md_pcrel_from_section PARAMS ((struct fix *, segT)); #define md_parse_name(name, exp, c) ppc_parse_name (name, exp) extern int ppc_parse_name PARAMS ((const char *, struct expressionS *)); #define md_operand(x) + +#define md_cleanup() ppc_cleanup () + extern void ppc_cleanup PARAMS ((void)); diff -uprN binutils-2.13.90.0.4/gas/config/tc-s390.c binutils-2.13.90.0.10/gas/config/tc-s390.c --- binutils-2.13.90.0.4/gas/config/tc-s390.c Wed Jul 17 11:38:29 2002 +++ binutils-2.13.90.0.10/gas/config/tc-s390.c Fri Sep 27 08:33:09 2002 @@ -24,6 +24,7 @@ #include "safe-ctype.h" #include "subsegs.h" #include "struc-symbol.h" +#include "dwarf2dbg.h" #include "opcode/s390.h" #include "elf/s390.h" @@ -1374,9 +1375,9 @@ s390_insn (ignore) expression (&exp); if (exp.X_op == O_constant) { - if ( ((opformat->oplen == 6) && (exp.X_op > 0) && (exp.X_op < (1ULL << 48))) - || ((opformat->oplen == 4) && (exp.X_op > 0) && (exp.X_op < (1ULL << 32))) - || ((opformat->oplen == 2) && (exp.X_op > 0) && (exp.X_op < (1ULL << 16)))) + if ( (opformat->oplen == 6 && exp.X_op > 0 && exp.X_op < (1ULL << 48)) + || (opformat->oplen == 4 && exp.X_op > 0 && exp.X_op < (1ULL << 32)) + || (opformat->oplen == 2 && exp.X_op > 0 && exp.X_op < (1ULL << 16))) md_number_to_chars (insn, exp.X_add_number, opformat->oplen); else as_bad (_("Invalid .insn format\n")); @@ -1628,14 +1629,6 @@ int tc_s390_fix_adjustable (fixP) fixS *fixP; { - /* Prevent all adjustments to global symbols. */ - if (S_IS_EXTERN (fixP->fx_addsy)) - return 0; - if (S_IS_WEAK (fixP->fx_addsy)) - return 0; - /* Don't adjust references to merge sections. */ - if ((S_GET_SEGMENT (fixP->fx_addsy)->flags & SEC_MERGE) != 0) - return 0; /* adjust_reloc_syms doesn't know about the GOT. */ if ( fixP->fx_r_type == BFD_RELOC_32_GOTOFF || fixP->fx_r_type == BFD_RELOC_390_PLT16DBL @@ -1679,8 +1672,10 @@ tc_s390_force_relocation (fixp) case BFD_RELOC_VTABLE_ENTRY: return 1; default: - return 0; + break;; } + + return S_FORCE_RELOC (fixp->fx_addsy); } /* Apply a fixup to the object code. This is called for all the @@ -1696,7 +1691,7 @@ void md_apply_fix3 (fixP, valP, seg) fixS *fixP; valueT *valP; - segT seg; + segT seg ATTRIBUTE_UNUSED; { char *where; valueT value = *valP; @@ -1704,35 +1699,10 @@ md_apply_fix3 (fixP, valP, seg) where = fixP->fx_frag->fr_literal + fixP->fx_where; if (fixP->fx_subsy != NULL) - { - if ((fixP->fx_addsy != NULL - && S_GET_SEGMENT (fixP->fx_addsy) == S_GET_SEGMENT (fixP->fx_subsy) - && SEG_NORMAL (S_GET_SEGMENT (fixP->fx_addsy))) - || (S_GET_SEGMENT (fixP->fx_subsy) == absolute_section)) - value += S_GET_VALUE (fixP->fx_subsy); - if (!S_IS_DEFINED (fixP->fx_subsy)) - as_bad_where (fixP->fx_file, fixP->fx_line, - _("unresolved fx_subsy symbol that must be resolved")); - value -= S_GET_VALUE (fixP->fx_subsy); - - if (S_GET_SEGMENT (fixP->fx_subsy) == seg && ! fixP->fx_pcrel) - value += MD_PCREL_FROM_SECTION (fixP, seg); - } + abort (); if (fixP->fx_addsy != NULL) { - if ((fixP->fx_subsy != NULL - && S_GET_SEGMENT (fixP->fx_addsy) == S_GET_SEGMENT (fixP->fx_subsy) - && SEG_NORMAL (S_GET_SEGMENT (fixP->fx_addsy))) - || (S_GET_SEGMENT (fixP->fx_addsy) == seg - && fixP->fx_pcrel && TC_RELOC_RTSYM_LOC_FIXUP (fixP)) - || (!fixP->fx_pcrel - && S_GET_SEGMENT (fixP->fx_addsy) == absolute_section) - || (S_GET_SEGMENT (fixP->fx_addsy) != undefined_section - && !bfd_is_com_section (S_GET_SEGMENT (fixP->fx_addsy)) - && TC_FIX_ADJUSTABLE (fixP))) - value -= S_GET_VALUE (fixP->fx_addsy); - if (fixP->fx_pcrel) value += fixP->fx_frag->fr_address + fixP->fx_where; } diff -uprN binutils-2.13.90.0.4/gas/config/tc-s390.h binutils-2.13.90.0.10/gas/config/tc-s390.h --- binutils-2.13.90.0.4/gas/config/tc-s390.h Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.10/gas/config/tc-s390.h Fri Sep 27 08:33:09 2002 @@ -29,29 +29,14 @@ struct fix; #error S390 support requires BFD_ASSEMBLER #endif -/* This expression evaluates to false if the relocation is for a local object - for which we still want to do the relocation at runtime. True if we - are willing to perform this relocation while building the .o file. - This is only used for pcrel relocations, so GOTOFF does not need to be - checked here. I am not sure if some of the others are ever used with - pcrel, but it is easier to be safe than sorry. */ - -#define TC_RELOC_RTSYM_LOC_FIXUP(FIX) \ - ((FIX)->fx_r_type != BFD_RELOC_390_GOTENT \ - && ((FIX)->fx_addsy == NULL \ - || (! S_IS_EXTERNAL ((FIX)->fx_addsy) \ - && ! S_IS_WEAK ((FIX)->fx_addsy) \ - && S_IS_DEFINED ((FIX)->fx_addsy) \ - && ! S_IS_COMMON ((FIX)->fx_addsy)))) - -#define TC_FORCE_RELOCATION(FIXP) tc_s390_force_relocation(FIXP) +#define TC_FORCE_RELOCATION(FIX) tc_s390_force_relocation(FIX) extern int tc_s390_force_relocation PARAMS ((struct fix *)); #define tc_fix_adjustable(X) tc_s390_fix_adjustable(X) extern int tc_s390_fix_adjustable PARAMS ((struct fix *)); -#define TC_FIX_ADJUSTABLE(fixP) \ - (! symbol_used_in_reloc_p ((fixP)->fx_addsy) && tc_fix_adjustable (fixP)) +/* Values passed to md_apply_fix3 don't include symbol values. */ +#define MD_APPLY_SYM_VALUE(FIX) 0 /* The target BFD architecture. */ #define TARGET_ARCH bfd_arch_s390 @@ -106,7 +91,7 @@ if (fragP->fr_type == rs_align_code) - fragP->fr_fix)); /* call md_pcrel_from_section, not md_pcrel_from */ -#define MD_PCREL_FROM_SECTION(FIXP, SEC) md_pcrel_from_section(FIXP, SEC) +#define MD_PCREL_FROM_SECTION(FIX, SEC) md_pcrel_from_section(FIX, SEC) extern long md_pcrel_from_section PARAMS ((struct fix *, segT)); #define md_operand(x) diff -uprN binutils-2.13.90.0.4/gas/config/tc-sh.c binutils-2.13.90.0.10/gas/config/tc-sh.c --- binutils-2.13.90.0.4/gas/config/tc-sh.c Wed Jun 26 09:24:56 2002 +++ binutils-2.13.90.0.10/gas/config/tc-sh.c Thu Oct 10 09:16:57 2002 @@ -71,6 +71,7 @@ static void build_relax PARAMS ((sh_opco static char *insert_loop_bounds PARAMS ((char *, sh_operand_info *)); static unsigned int build_Mytes PARAMS ((sh_opcode_info *, sh_operand_info *)); +static boolean sh_local_pcrel PARAMS ((fixS *fix)); #ifdef OBJ_ELF static void sh_elf_cons PARAMS ((int)); @@ -136,7 +137,7 @@ const pseudo_typeS md_pseudo_table[] = {"4byte", s_uacons, 4}, {"8byte", s_uacons, 8}, #ifdef BFD_ASSEMBLER - {"file", dwarf2_directive_file, 0 }, + {"file", (void (*) PARAMS ((int))) dwarf2_directive_file, 0 }, {"loc", dwarf2_directive_loc, 0 }, #endif #ifdef HAVE_SH64 @@ -2122,16 +2123,16 @@ assemble_ppi (op_end, opcode) int move_code; unsigned int size; - /* Some insn ignore one or more register fields, e.g. psts machl,a0. - Make sure we encode a defined insn pattern. */ - reg_x = 0; - reg_y = 0; - reg_n = 0; - for (;;) { sh_operand_info operand[3]; + /* Some insn ignore one or more register fields, e.g. psts machl,a0. + Make sure we encode a defined insn pattern. */ + reg_x = 0; + reg_y = 0; + reg_n = 0; + if (opcode->arg[0] != A_END) op_end = get_operands (opcode, op_end, operand); opcode = get_specific (opcode, operand); @@ -3211,30 +3212,21 @@ sh_handle_align (frag) BFD_RELOC_SH_ALIGN); } -/* This macro decides whether a particular reloc is an entry in a - switch table. It is used when relaxing, because the linker needs - to know about all such entries so that it can adjust them if - necessary. */ +/* See whether the relocation should be resolved locally. */ -#ifdef BFD_ASSEMBLER -#define SWITCH_TABLE_CONS(fix) (0) -#else -#define SWITCH_TABLE_CONS(fix) \ - ((fix)->fx_r_type == 0 \ - && ((fix)->fx_size == 2 \ - || (fix)->fx_size == 1 \ - || (fix)->fx_size == 4)) -#endif - -#define SWITCH_TABLE(fix) \ - ((fix)->fx_addsy != NULL \ - && (fix)->fx_subsy != NULL \ - && S_GET_SEGMENT ((fix)->fx_addsy) == text_section \ - && S_GET_SEGMENT ((fix)->fx_subsy) == text_section \ - && ((fix)->fx_r_type == BFD_RELOC_32 \ - || (fix)->fx_r_type == BFD_RELOC_16 \ - || (fix)->fx_r_type == BFD_RELOC_8 \ - || SWITCH_TABLE_CONS (fix))) +static boolean +sh_local_pcrel (fix) + fixS *fix; +{ + return (! sh_relax && + (fix->fx_r_type == BFD_RELOC_SH_PCDISP8BY2 + || fix->fx_r_type == BFD_RELOC_SH_PCDISP12BY2 + || fix->fx_r_type == BFD_RELOC_SH_PCRELIMM8BY2 + || fix->fx_r_type == BFD_RELOC_SH_PCRELIMM8BY4 + || fix->fx_r_type == BFD_RELOC_8_PCREL + || fix->fx_r_type == BFD_RELOC_SH_SWITCH16 + || fix->fx_r_type == BFD_RELOC_SH_SWITCH32)); +} /* See whether we need to force a relocation into the output file. This is used to force out switch and PC relative relocations when @@ -3244,11 +3236,16 @@ int sh_force_relocation (fix) fixS *fix; { + /* These relocations can't make it into a DSO, so no use forcing + them for global symbols. */ + if (sh_local_pcrel (fix)) + return 0; if (fix->fx_r_type == BFD_RELOC_VTABLE_INHERIT || fix->fx_r_type == BFD_RELOC_VTABLE_ENTRY || fix->fx_r_type == BFD_RELOC_SH_LOOP_START - || fix->fx_r_type == BFD_RELOC_SH_LOOP_END) + || fix->fx_r_type == BFD_RELOC_SH_LOOP_END + || S_FORCE_RELOC (fix->fx_addsy)) return 1; if (! sh_relax) @@ -3271,20 +3268,9 @@ boolean sh_fix_adjustable (fixP) fixS *fixP; { - - if (fixP->fx_addsy == NULL) - return 1; - - if (fixP->fx_r_type == BFD_RELOC_SH_PCDISP8BY2 - || fixP->fx_r_type == BFD_RELOC_SH_PCDISP12BY2 - || fixP->fx_r_type == BFD_RELOC_SH_PCRELIMM8BY2 - || fixP->fx_r_type == BFD_RELOC_SH_PCRELIMM8BY4 - || fixP->fx_r_type == BFD_RELOC_8_PCREL - || fixP->fx_r_type == BFD_RELOC_SH_SWITCH16 - || fixP->fx_r_type == BFD_RELOC_SH_SWITCH32) - return 1; - - if (! TC_RELOC_RTSYM_LOC_FIXUP (fixP) + if (fixP->fx_r_type == BFD_RELOC_32_PLT_PCREL + || fixP->fx_r_type == BFD_RELOC_32_GOT_PCREL + || fixP->fx_r_type == BFD_RELOC_SH_GOTPC || fixP->fx_r_type == BFD_RELOC_RVA) return 0; @@ -3530,9 +3516,10 @@ md_apply_fix3 (fixP, valP, seg) /* Make the jump instruction point to the address of the operand. At runtime we merely add the offset to the actual PLT entry. */ * valP = 0xfffffffc; - val = fixP->fx_addnumber; + val = 0; if (fixP->fx_subsy) val -= S_GET_VALUE (fixP->fx_subsy); + fixP->fx_addnumber = val; md_number_to_chars (buf, val, 4); break; @@ -3707,10 +3694,9 @@ md_pcrel_from_section (fixP, sec) fixS *fixP; segT sec; { - if (fixP->fx_addsy != (symbolS *) NULL - && (! S_IS_DEFINED (fixP->fx_addsy) - || S_IS_EXTERN (fixP->fx_addsy) - || S_IS_WEAK (fixP->fx_addsy) + if (! sh_local_pcrel (fixP) + && fixP->fx_addsy != (symbolS *) NULL + && (S_FORCE_RELOC (fixP->fx_addsy) || S_GET_SEGMENT (fixP->fx_addsy) != sec)) { /* The symbol is undefined (or is defined but not in this section, @@ -3903,13 +3889,6 @@ tc_gen_reloc (section, fixp) *rel->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy); rel->address = fixp->fx_frag->fr_address + fixp->fx_where; - if (fixp->fx_subsy - && S_GET_SEGMENT (fixp->fx_subsy) == absolute_section) - { - fixp->fx_addnumber -= S_GET_VALUE (fixp->fx_subsy); - fixp->fx_subsy = 0; - } - r_type = fixp->fx_r_type; if (SWITCH_TABLE (fixp)) @@ -3953,7 +3932,7 @@ tc_gen_reloc (section, fixp) rel->addend = 0; rel->howto = bfd_reloc_type_lookup (stdoutput, r_type); - if (rel->howto == NULL || fixp->fx_subsy) + if (rel->howto == NULL) { as_bad_where (fixp->fx_file, fixp->fx_line, _("Cannot represent relocation type %s"), diff -uprN binutils-2.13.90.0.4/gas/config/tc-sh.h binutils-2.13.90.0.10/gas/config/tc-sh.h --- binutils-2.13.90.0.4/gas/config/tc-sh.h Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.10/gas/config/tc-sh.h Fri Sep 27 08:33:09 2002 @@ -24,6 +24,11 @@ #define TARGET_ARCH bfd_arch_sh #if ANSI_PROTOTYPES +/* The type fixS is defined (to struct fix) in write.h, but write.h uses + definitions from this file. To avoid problems with including write.h + after the "right" definitions, don't; just forward-declare struct fix + here. */ +struct fix; struct segment_info_struct; struct internal_reloc; #endif @@ -53,30 +58,42 @@ extern void sh_handle_align PARAMS ((fra /* We need to force out some relocations when relaxing. */ #define TC_FORCE_RELOCATION(fix) sh_force_relocation (fix) - -/* The type fixS is defined (to struct fix) in write.h, but write.h uses - definitions from this file. To avoid problems with including write.h - after the "right" definitions, don't; just forward-declare struct fix - here. */ -struct fix; extern int sh_force_relocation PARAMS ((struct fix *)); -#ifdef OBJ_ELF -#define obj_fix_adjustable(fixP) sh_fix_adjustable(fixP) -struct fix; -extern boolean sh_fix_adjustable PARAMS ((struct fix *)); +/* This macro decides whether a particular reloc is an entry in a + switch table. It is used when relaxing, because the linker needs + to know about all such entries so that it can adjust them if + necessary. */ -/* This arranges for gas/write.c to not apply a relocation if - obj_fix_adjustable() says it is not adjustable. */ -/* ??? fixups with symbols in SEC_MERGE sections are marked with - obj_fix_adjustable and have a non-section symbol, as in - "vwxyz"+1 in execute/string-opt-6.c . Maybe the test of - (symbol_used_in_reloc_p should be done in the machine-independent code. */ -#define TC_FIX_ADJUSTABLE(fixP) \ - (! symbol_used_in_reloc_p (fixP->fx_addsy) && obj_fix_adjustable (fixP)) +#ifdef BFD_ASSEMBLER +#define SWITCH_TABLE_CONS(FIX) (0) +#else +#define SWITCH_TABLE_CONS(FIX) \ + ((FIX)->fx_r_type == 0 \ + && ((FIX)->fx_size == 2 \ + || (FIX)->fx_size == 1 \ + || (FIX)->fx_size == 4)) #endif -#define MD_PCREL_FROM_SECTION(FIXP, SEC) md_pcrel_from_section (FIXP, SEC) +#define SWITCH_TABLE(FIX) \ + ((FIX)->fx_addsy != NULL \ + && (FIX)->fx_subsy != NULL \ + && S_GET_SEGMENT ((FIX)->fx_addsy) == text_section \ + && S_GET_SEGMENT ((FIX)->fx_subsy) == text_section \ + && ((FIX)->fx_r_type == BFD_RELOC_32 \ + || (FIX)->fx_r_type == BFD_RELOC_16 \ + || (FIX)->fx_r_type == BFD_RELOC_8 \ + || SWITCH_TABLE_CONS (FIX))) + +#define TC_FORCE_RELOCATION_SUB_SAME(FIX, SEG) \ + (! SEG_NORMAL (SEG) \ + || (sh_relax && SWITCH_TABLE (FIX))) + +/* Don't complain when we leave fx_subsy around. */ +#define TC_VALIDATE_FIX_SUB(FIX) \ + (sh_relax && SWITCH_TABLE (FIX)) + +#define MD_PCREL_FROM_SECTION(FIX, SEC) md_pcrel_from_section (FIX, SEC) extern long md_pcrel_from_section PARAMS ((struct fix *, segT)); #define IGNORE_NONSTANDARD_ESCAPES @@ -115,6 +132,7 @@ extern void sh_flush_pending_output PARA #endif extern void sh_frob_file PARAMS ((void)); + #ifdef OBJ_COFF /* COFF specific definitions. */ @@ -192,12 +210,15 @@ extern void sh_elf_final_processing PARA the expression into something we can use. */ #define TC_RELOC_GLOBAL_OFFSET_TABLE BFD_RELOC_SH_GOTPC -/* This expression evaluates to false if the relocation is for a local object - for which we still want to do the relocation at runtime. True if we +#define tc_fix_adjustable(FIX) sh_fix_adjustable(FIX) +extern boolean sh_fix_adjustable PARAMS ((struct fix *)); + +/* Values passed to md_apply_fix3 don't include symbol values. */ +#define MD_APPLY_SYM_VALUE(FIX) 0 + +/* This expression evaluates to true if the relocation is for a local object + for which we still want to do the relocation at runtime. False if we are willing to perform this relocation while building the .o file. - This is only used for pcrel relocations, so GOTOFF does not need to be - checked here. I am not sure if some of the others are ever used with - pcrel, but it is easier to be safe than sorry. We can't resolve references to the GOT or the PLT when creating the object file, since these tables are only created by the linker. @@ -205,15 +226,25 @@ extern void sh_elf_final_processing PARA assembler can't compute the appropriate reloc, since its location can only be determined at link time. */ -#define TC_RELOC_RTSYM_LOC_FIXUP(FIX) \ - ((FIX)->fx_r_type != BFD_RELOC_32_PLT_PCREL \ - && (FIX)->fx_r_type != BFD_RELOC_32_GOT_PCREL \ - && (FIX)->fx_r_type != BFD_RELOC_SH_GOTPC \ - && ((FIX)->fx_addsy == NULL \ - || (! S_IS_EXTERNAL ((FIX)->fx_addsy) \ - && ! S_IS_WEAK ((FIX)->fx_addsy) \ - && S_IS_DEFINED ((FIX)->fx_addsy) \ - && ! S_IS_COMMON ((FIX)->fx_addsy)))) +#define TC_FORCE_RELOCATION_LOCAL(FIX) \ + (!(FIX)->fx_pcrel \ + || (FIX)->fx_plt \ + || (FIX)->fx_r_type == BFD_RELOC_32_PLT_PCREL \ + || (FIX)->fx_r_type == BFD_RELOC_32_GOT_PCREL \ + || (FIX)->fx_r_type == BFD_RELOC_SH_GOTPC \ + || TC_FORCE_RELOCATION (FIX)) + +/* This keeps the subtracted symbol around, for use by PLT_PCREL + relocs. */ +#define TC_FORCE_RELOCATION_SUB_ABS(FIX) \ + ((FIX)->fx_r_type == BFD_RELOC_32_PLT_PCREL \ + || S_FORCE_RELOC ((FIX)->fx_subsy)) + +/* Don't complain when we leave fx_subsy around. */ +#undef TC_VALIDATE_FIX_SUB +#define TC_VALIDATE_FIX_SUB(FIX) \ + ((FIX)->fx_r_type == BFD_RELOC_32_PLT_PCREL \ + || (sh_relax && SWITCH_TABLE (FIX))) #define md_parse_name(name, exprP, nextcharP) \ sh_parse_name ((name), (exprP), (nextcharP)) diff -uprN binutils-2.13.90.0.4/gas/config/tc-sh64.c binutils-2.13.90.0.10/gas/config/tc-sh64.c --- binutils-2.13.90.0.4/gas/config/tc-sh64.c Fri Jun 7 19:22:17 2002 +++ binutils-2.13.90.0.10/gas/config/tc-sh64.c Wed Oct 9 21:09:41 2002 @@ -2944,10 +2944,6 @@ s_sh64_abi (ignore) const char * sh64_target_format () { -#ifdef TE_LINUX - return "FIXME: No linux target yet"; -#endif - #ifdef TE_NetBSD /* For NetBSD, if the ISA is unspecified, always use SHmedia. */ if (sh64_isa_mode == sh64_isa_unspecified) @@ -2966,6 +2962,14 @@ sh64_target_format () } #endif +#ifdef TE_LINUX + if (sh64_isa_mode == sh64_isa_unspecified) + sh64_isa_mode = sh64_isa_shmedia; + + if (sh64_abi == sh64_abi_unspecified) + sh64_abi = sh64_abi_32; +#endif + if (sh64_abi == sh64_abi_64 && sh64_isa_mode == sh64_isa_unspecified) sh64_isa_mode = sh64_isa_shmedia; @@ -3002,6 +3006,11 @@ sh64_target_format () return (target_big_endian ? "elf64-sh64-nbsd" : "elf64-sh64l-nbsd"); else return (target_big_endian ? "elf32-sh64-nbsd" : "elf32-sh64l-nbsd"); +#elif defined (TE_LINUX) + if (sh64_abi == sh64_abi_64) + return (target_big_endian ? "elf64-sh64big-linux" : "elf64-sh64-linux"); + else + return (target_big_endian ? "elf32-sh64big-linux" : "elf32-sh64-linux"); #else /* When the ISA is not one of SHmedia or SHcompact, use the old SH object format. */ diff -uprN binutils-2.13.90.0.4/gas/config/tc-sh64.h binutils-2.13.90.0.10/gas/config/tc-sh64.h --- binutils-2.13.90.0.4/gas/config/tc-sh64.h Fri Jun 7 19:22:17 2002 +++ binutils-2.13.90.0.10/gas/config/tc-sh64.h Fri Sep 27 08:33:09 2002 @@ -1,5 +1,5 @@ /* This file is tc-sh64.h - Copyright (C) 2000, 2001 Free Software Foundation, Inc. + Copyright 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -75,37 +75,48 @@ extern const char *sh64_target_format PA #define TARGET_MACH sh64_target_mach () extern int sh64_target_mach PARAMS ((void)); -#undef TC_RELOC_RTSYM_LOC_FIXUP -#define TC_RELOC_RTSYM_LOC_FIXUP(FIX) \ - ((FIX)->fx_r_type != BFD_RELOC_32_PLT_PCREL \ - && (FIX)->fx_r_type != BFD_RELOC_SH_PLT_LOW16 \ - && (FIX)->fx_r_type != BFD_RELOC_SH_PLT_MEDLOW16 \ - && (FIX)->fx_r_type != BFD_RELOC_SH_PLT_MEDHI16 \ - && (FIX)->fx_r_type != BFD_RELOC_SH_PLT_HI16 \ - && (FIX)->fx_r_type != BFD_RELOC_32_GOT_PCREL \ - && (FIX)->fx_r_type != BFD_RELOC_SH_GOT_LOW16 \ - && (FIX)->fx_r_type != BFD_RELOC_SH_GOT_MEDLOW16 \ - && (FIX)->fx_r_type != BFD_RELOC_SH_GOT_MEDHI16 \ - && (FIX)->fx_r_type != BFD_RELOC_SH_GOT_HI16 \ - && (FIX)->fx_r_type != BFD_RELOC_SH_GOT10BY4 \ - && (FIX)->fx_r_type != BFD_RELOC_SH_GOT10BY8 \ - && (FIX)->fx_r_type != BFD_RELOC_SH_GOTPLT32 \ - && (FIX)->fx_r_type != BFD_RELOC_SH_GOTPLT_LOW16 \ - && (FIX)->fx_r_type != BFD_RELOC_SH_GOTPLT_MEDLOW16 \ - && (FIX)->fx_r_type != BFD_RELOC_SH_GOTPLT_MEDHI16 \ - && (FIX)->fx_r_type != BFD_RELOC_SH_GOTPLT_HI16 \ - && (FIX)->fx_r_type != BFD_RELOC_SH_GOTPLT10BY4 \ - && (FIX)->fx_r_type != BFD_RELOC_SH_GOTPLT10BY8 \ - && (FIX)->fx_r_type != BFD_RELOC_SH_GOTPC \ - && (FIX)->fx_r_type != BFD_RELOC_SH_GOTPC_LOW16 \ - && (FIX)->fx_r_type != BFD_RELOC_SH_GOTPC_MEDLOW16 \ - && (FIX)->fx_r_type != BFD_RELOC_SH_GOTPC_MEDHI16 \ - && (FIX)->fx_r_type != BFD_RELOC_SH_GOTPC_HI16 \ - && ((FIX)->fx_addsy == NULL \ - || (! S_IS_EXTERNAL ((FIX)->fx_addsy) \ - && ! S_IS_WEAK ((FIX)->fx_addsy) \ - && S_IS_DEFINED ((FIX)->fx_addsy) \ - && ! S_IS_COMMON ((FIX)->fx_addsy)))) +#undef TC_FORCE_RELOCATION_LOCAL +#define TC_FORCE_RELOCATION_LOCAL(FIX) \ + (!(FIX)->fx_pcrel \ + || (FIX)->fx_plt \ + || (FIX)->fx_r_type == BFD_RELOC_32_PLT_PCREL \ + || (FIX)->fx_r_type == BFD_RELOC_SH_PLT_LOW16 \ + || (FIX)->fx_r_type == BFD_RELOC_SH_PLT_MEDLOW16 \ + || (FIX)->fx_r_type == BFD_RELOC_SH_PLT_MEDHI16 \ + || (FIX)->fx_r_type == BFD_RELOC_SH_PLT_HI16 \ + || (FIX)->fx_r_type == BFD_RELOC_32_GOT_PCREL \ + || (FIX)->fx_r_type == BFD_RELOC_SH_GOT_LOW16 \ + || (FIX)->fx_r_type == BFD_RELOC_SH_GOT_MEDLOW16 \ + || (FIX)->fx_r_type == BFD_RELOC_SH_GOT_MEDHI16 \ + || (FIX)->fx_r_type == BFD_RELOC_SH_GOT_HI16 \ + || (FIX)->fx_r_type == BFD_RELOC_SH_GOT10BY4 \ + || (FIX)->fx_r_type == BFD_RELOC_SH_GOT10BY8 \ + || (FIX)->fx_r_type == BFD_RELOC_SH_GOTPLT32 \ + || (FIX)->fx_r_type == BFD_RELOC_SH_GOTPLT_LOW16 \ + || (FIX)->fx_r_type == BFD_RELOC_SH_GOTPLT_MEDLOW16 \ + || (FIX)->fx_r_type == BFD_RELOC_SH_GOTPLT_MEDHI16 \ + || (FIX)->fx_r_type == BFD_RELOC_SH_GOTPLT_HI16 \ + || (FIX)->fx_r_type == BFD_RELOC_SH_GOTPLT10BY4 \ + || (FIX)->fx_r_type == BFD_RELOC_SH_GOTPLT10BY8 \ + || (FIX)->fx_r_type == BFD_RELOC_SH_GOTPC \ + || (FIX)->fx_r_type == BFD_RELOC_SH_GOTPC_LOW16 \ + || (FIX)->fx_r_type == BFD_RELOC_SH_GOTPC_MEDLOW16 \ + || (FIX)->fx_r_type == BFD_RELOC_SH_GOTPC_MEDHI16 \ + || (FIX)->fx_r_type == BFD_RELOC_SH_GOTPC_HI16 \ + || TC_FORCE_RELOCATION (FIX)) + +#undef TC_FORCE_RELOCATION_SUB_SAME +#define TC_FORCE_RELOCATION_SUB_SAME(FIX, SEG) \ + (! SEG_NORMAL (SEG) \ + || (sh_relax && SWITCH_TABLE (FIX)) \ + || *symbol_get_tc ((FIX)->fx_addsy) != NULL) + +/* Don't complain when we leave fx_subsy around. */ +#undef TC_VALIDATE_FIX_SUB +#define TC_VALIDATE_FIX_SUB(FIX) \ + ((FIX)->fx_r_type == BFD_RELOC_32_PLT_PCREL \ + || (sh_relax && SWITCH_TABLE (FIX)) \ + || *symbol_get_tc ((FIX)->fx_addsy) != NULL) /* Note the kludge: we want to put back C, and we also want to consume the expression, since we have handled it ourselves. FIXME: What we really @@ -120,8 +131,8 @@ extern int sh64_consume_datalabel #define DOLLAR_DOT #undef MD_PCREL_FROM_SECTION -#define MD_PCREL_FROM_SECTION(FIXP, SEC) \ - shmedia_md_pcrel_from_section (FIXP, SEC) +#define MD_PCREL_FROM_SECTION(FIX, SEC) \ + shmedia_md_pcrel_from_section (FIX, SEC) extern valueT shmedia_md_pcrel_from_section PARAMS ((struct fix *, segT)); diff -uprN binutils-2.13.90.0.4/gas/config/tc-sparc.c binutils-2.13.90.0.10/gas/config/tc-sparc.c --- binutils-2.13.90.0.4/gas/config/tc-sparc.c Sat Jun 8 20:44:53 2002 +++ binutils-2.13.90.0.10/gas/config/tc-sparc.c Fri Sep 27 08:33:09 2002 @@ -159,7 +159,7 @@ const pseudo_typeS md_pseudo_table[] = {"uaword", s_uacons, 4}, {"uaxword", s_uacons, 8}, #ifdef OBJ_ELF - {"file", dwarf2_directive_file, 0}, + {"file", (void (*) PARAMS ((int))) dwarf2_directive_file, 0}, {"loc", dwarf2_directive_loc, 0}, /* These are specific to sparc/svr4. */ {"2byte", s_uacons, 2}, @@ -2902,34 +2902,9 @@ md_apply_fix3 (fixP, valP, segment) fixP->fx_addnumber = val; /* Remember value for emit_reloc. */ #ifdef OBJ_ELF - /* FIXME: SPARC ELF relocations don't use an addend in the data - field itself. This whole approach should be somehow combined - with the calls to bfd_install_relocation. Also, the value passed - in by fixup_segment includes the value of a defined symbol. We - don't want to include the value of an externally visible symbol. */ + /* SPARC ELF relocations don't use an addend in the data field. */ if (fixP->fx_addsy != NULL) - { - symbolS * sym = fixP->fx_addsy; - segT seg = S_GET_SEGMENT (sym); - - if (symbol_used_in_reloc_p (sym) - && (S_IS_EXTERNAL (sym) - || S_IS_WEAK (sym) - || (seg->flags & SEC_MERGE) - || (seg->flags & SEC_THREAD_LOCAL) - || (sparc_pic_code && ! fixP->fx_pcrel) - || (seg != segment - && (((bfd_get_section_flags (stdoutput, seg) & SEC_LINK_ONCE) != 0) - || (strncmp (segment_name (seg), - ".gnu.linkonce", - sizeof ".gnu.linkonce" - 1) == 0)))) - && seg != absolute_section - && seg != undefined_section - && ! bfd_is_com_section (seg)) - fixP->fx_addnumber -= S_GET_VALUE (sym); - - return; - } + return; #endif /* This is a hack. There should be a better way to @@ -3352,10 +3327,7 @@ tc_gen_reloc (section, fixp) switch (code) { case BFD_RELOC_32_PCREL_S2: - if (! S_IS_DEFINED (fixp->fx_addsy) - || S_IS_COMMON (fixp->fx_addsy) - || S_IS_EXTERNAL (fixp->fx_addsy) - || S_IS_WEAK (fixp->fx_addsy)) + if (S_FORCE_RELOC (fixp->fx_addsy)) code = BFD_RELOC_SPARC_WPLT30; break; case BFD_RELOC_HI22: @@ -4385,6 +4357,6 @@ elf32_sparc_force_relocation (fixp) || fixp->fx_r_type == BFD_RELOC_VTABLE_ENTRY) return 1; - return 0; + return S_FORCE_RELOC (fixp->fx_addsy); } #endif diff -uprN binutils-2.13.90.0.4/gas/config/tc-sparc.h binutils-2.13.90.0.10/gas/config/tc-sparc.h --- binutils-2.13.90.0.4/gas/config/tc-sparc.h Sun Feb 3 11:22:31 2002 +++ binutils-2.13.90.0.10/gas/config/tc-sparc.h Fri Sep 27 08:33:09 2002 @@ -1,6 +1,6 @@ /* tc-sparc.h - Macros and type defines for the sparc. Copyright 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, - 1999, 2000, 2001 Free Software Foundation, Inc. + 1999, 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -69,74 +69,59 @@ extern void sparc_handle_align PARAMS (( #define MAX_MEM_FOR_RS_ALIGN_CODE (3 + 4 + 4) -#if defined (OBJ_ELF) || defined (OBJ_AOUT) - -/* This expression evaluates to false if the relocation is for a local - object for which we still want to do the relocation at runtime. - True if we are willing to perform this relocation while building - the .o file. - - If the reloc is against an externally visible symbol, then the - a.out assembler should not do the relocation if generating PIC, and - the ELF assembler should never do the relocation. */ - #ifdef OBJ_ELF -#define obj_relocate_extern 0 -#else -#define obj_relocate_extern (! sparc_pic_code) -#endif - -#define TC_RELOC_RTSYM_LOC_FIXUP(FIX) \ - (obj_relocate_extern \ - || (FIX)->fx_addsy == NULL \ - || (! S_IS_EXTERNAL ((FIX)->fx_addsy) \ - && ! S_IS_WEAK ((FIX)->fx_addsy) \ - && S_IS_DEFINED ((FIX)->fx_addsy) \ - && ! S_IS_COMMON ((FIX)->fx_addsy))) +#define TC_FORCE_RELOCATION(FIX) elf32_sparc_force_relocation(FIX) +extern int elf32_sparc_force_relocation PARAMS ((struct fix *)); #endif /* I know that "call 0" fails in sparc-coff if this doesn't return 1. I don't know about other relocation types, or other formats, yet. */ #ifdef OBJ_COFF -#define TC_FORCE_RELOCATION(FIXP) \ - ((FIXP)->fx_r_type == BFD_RELOC_32_PCREL_S2 \ - && ((FIXP)->fx_addsy == 0 \ - || S_GET_SEGMENT ((FIXP)->fx_addsy) == absolute_section)) +#define TC_FORCE_RELOCATION_ABS(FIX) \ + ((FIX)->fx_r_type == BFD_RELOC_32_PCREL_S2 \ + || TC_FORCE_RELOCATION (FIX)) + #define RELOC_REQUIRES_SYMBOL #endif -#ifdef OBJ_ELF -#define TC_FORCE_RELOCATION(fixp) elf32_sparc_force_relocation(fixp) -extern int elf32_sparc_force_relocation PARAMS ((struct fix *)); +#ifdef OBJ_AOUT +/* This expression evaluates to true if the relocation is for a local + object for which we still want to do the relocation at runtime. + False if we are willing to perform this relocation while building + the .o file. */ + +#define TC_FORCE_RELOCATION_LOCAL(FIX) \ + (!(FIX)->fx_pcrel \ + || (FIX)->fx_plt \ + || (sparc_pic_code \ + && S_IS_EXTERNAL ((FIX)->fx_addsy)) \ + || TC_FORCE_RELOCATION (FIX)) #endif #ifdef OBJ_ELF -/* Keep relocations against global symbols. Don't turn them into - relocations against sections. This is required for the dynamic - linker to operate properly. When generating PIC, we need to keep - any non PC relative reloc. The PIC part of this test must be - parallel to the code in tc_gen_reloc which converts relocations to - GOT relocations. */ +/* Don't turn certain relocs into relocations against sections. This + is required for the dynamic linker to operate properly. When + generating PIC, we need to keep any non PC relative reloc. The PIC + part of this test must be parallel to the code in tc_gen_reloc which + converts relocations to GOT relocations. */ #define tc_fix_adjustable(FIX) \ - (! S_IS_EXTERNAL ((FIX)->fx_addsy) \ - && ! S_IS_WEAK ((FIX)->fx_addsy) \ - && (FIX)->fx_r_type != BFD_RELOC_VTABLE_INHERIT \ + ((FIX)->fx_r_type != BFD_RELOC_VTABLE_INHERIT \ && (FIX)->fx_r_type != BFD_RELOC_VTABLE_ENTRY \ && (! sparc_pic_code \ || ((FIX)->fx_r_type != BFD_RELOC_HI22 \ && (FIX)->fx_r_type != BFD_RELOC_LO10 \ && (FIX)->fx_r_type != BFD_RELOC_SPARC13 \ && ((FIX)->fx_r_type != BFD_RELOC_32_PCREL_S2 \ - || (S_IS_DEFINED ((FIX)->fx_addsy) \ - && ! S_IS_COMMON ((FIX)->fx_addsy) \ - && ! S_IS_EXTERNAL ((FIX)->fx_addsy) \ - && ! S_IS_WEAK ((FIX)->fx_addsy))) \ + || !S_FORCE_RELOC ((FIX)->fx_addsy)) \ && ((FIX)->fx_pcrel \ || ((FIX)->fx_subsy != NULL \ && (S_GET_SEGMENT ((FIX)->fx_subsy) \ == S_GET_SEGMENT ((FIX)->fx_addsy))) \ || S_IS_LOCAL ((FIX)->fx_addsy))))) +/* Values passed to md_apply_fix3 don't include the symbol value. */ +#define MD_APPLY_SYM_VALUE(FIX) 0 + /* Finish up the entire symtab. */ #define tc_adjust_symtab() sparc_adjust_symtab () extern void sparc_adjust_symtab PARAMS ((void)); @@ -184,11 +169,11 @@ extern void cons_fix_new_sparc } \ while (0) -#define TC_FIX_DATA_PRINT(FILE, FIXP) \ +#define TC_FIX_DATA_PRINT(FILE, FIX) \ do \ { \ fprintf ((FILE), "addend2=%ld\n", \ - (unsigned long) (FIXP)->tc_fix_data); \ + (unsigned long) (FIX)->tc_fix_data); \ } \ while (0) diff -uprN binutils-2.13.90.0.4/gas/config/tc-tic30.c binutils-2.13.90.0.10/gas/config/tc-tic30.c --- binutils-2.13.90.0.4/gas/config/tc-tic30.c Fri Nov 16 14:05:52 2001 +++ binutils-2.13.90.0.10/gas/config/tc-tic30.c Fri Sep 27 08:33:09 2002 @@ -1,5 +1,5 @@ /* tc-c30.c -- Assembly code for the Texas Instruments TMS320C30 - Copyright 1998, 1999, 2000, 2001 Free Software Foundation, Inc. + Copyright 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Contributed by Steven Haworth (steve@pm.cse.rmit.edu.au) This file is part of GAS, the GNU Assembler. @@ -77,9 +77,6 @@ const pseudo_typeS md_pseudo_table[] = { {0, 0, 0} }; -#undef USE_STDOUT -#define USE_STDOUT 1 - #ifdef USE_STDARG #include @@ -1594,13 +1591,7 @@ md_parse_option (c, arg) int c; char *arg; { - int i; - debug ("In md_parse_option()\n"); - for (i = 0; i < c; i++) - { - printf ("%c\n", arg[c]); - } return 0; } @@ -1838,10 +1829,7 @@ tc_gen_reloc (section, fixP) rel->sym_ptr_ptr = (asymbol **) xmalloc (sizeof (asymbol *)); *rel->sym_ptr_ptr = symbol_get_bfdsym (fixP->fx_addsy); rel->address = fixP->fx_frag->fr_address + fixP->fx_where; - if (fixP->fx_pcrel) - rel->addend = fixP->fx_addnumber; - else - rel->addend = 0; + rel->addend = 0; rel->howto = bfd_reloc_type_lookup (stdoutput, code); if (!rel->howto) { diff -uprN binutils-2.13.90.0.4/gas/config/tc-tic4x.c binutils-2.13.90.0.10/gas/config/tc-tic4x.c --- binutils-2.13.90.0.4/gas/config/tc-tic4x.c Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/gas/config/tc-tic4x.c Fri Sep 27 08:33:09 2002 @@ -0,0 +1,2797 @@ +/* tc-c4x.c -- Assemble for the Texas Instruments TMS320C[34]x. + Copyright (C) 1997,1998, 2002 Free Software Foundation. + + Contributed by Michael P. Hayes (m.hayes@elec.canterbury.ac.nz) + + This file is part of GAS, the GNU Assembler. + + GAS is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + GAS is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with GAS; see the file COPYING. If not, write to + the Free Software Foundation, 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + + +/* Things not currently implemented: + > .usect if has symbol on previous line + + > .sym, .eos, .stag, .etag, .member + + > Evaluation of constant floating point expressions (expr.c needs work!) + + > Warnings issued if parallel load of same register + + Note that this is primarily designed to handle the code generated + by GCC. Anything else is a bonus! */ + +#include +#include + +#include "as.h" +#include "opcode/tic4x.h" +#include "subsegs.h" +#include "obstack.h" +#include "symbols.h" +#include "listing.h" + +/* OK, we accept a syntax similar to the other well known C30 + assembly tools. With C4X_ALT_SYNTAX defined we are more + flexible, allowing a more Unix-like syntax: `%' in front of + register names, `#' in front of immediate constants, and + not requiring `@' in front of direct addresses. */ + +#define C4X_ALT_SYNTAX + +/* Equal to MAX_PRECISION in atof-ieee.c. */ +#define MAX_LITTLENUMS 6 /* (12 bytes) */ + +/* Handle of the inst mnemonic hash table. */ +static struct hash_control *c4x_op_hash = NULL; + +/* Handle asg pseudo. */ +static struct hash_control *c4x_asg_hash = NULL; + +static unsigned int c4x_cpu = 0; /* Default to TMS320C40. */ +static unsigned int c4x_big_model = 0; /* Default to small memory model. */ +static unsigned int c4x_reg_args = 0; /* Default to args passed on stack. */ + +typedef enum + { + M_UNKNOWN, M_IMMED, M_DIRECT, M_REGISTER, M_INDIRECT, + M_IMMED_F, M_PARALLEL, M_HI + } +c4x_addr_mode_t; + +typedef struct c4x_operand + { + c4x_addr_mode_t mode; /* Addressing mode. */ + expressionS expr; /* Expression. */ + int disp; /* Displacement for indirect addressing. */ + int aregno; /* Aux. register number. */ + LITTLENUM_TYPE fwords[MAX_LITTLENUMS]; /* Float immed. number. */ + } +c4x_operand_t; + +typedef struct c4x_insn + { + char name[C4X_NAME_MAX]; /* Mnemonic of instruction. */ + unsigned int in_use; /* True if in_use. */ + unsigned int parallel; /* True if parallel instruction. */ + unsigned int nchars; /* This is always 4 for the C30. */ + unsigned long opcode; /* Opcode number. */ + expressionS exp; /* Expression required for relocation. */ + int reloc; /* Relocation type required. */ + int pcrel; /* True if relocation PC relative. */ + char *pname; /* Name of instruction in parallel. */ + unsigned int num_operands; /* Number of operands in total. */ + c4x_inst_t *inst; /* Pointer to first template. */ + c4x_operand_t operands[C4X_OPERANDS_MAX]; + } +c4x_insn_t; + +static c4x_insn_t the_insn; /* Info about our instruction. */ +static c4x_insn_t *insn = &the_insn; + +int c4x_gen_to_words + PARAMS ((FLONUM_TYPE, LITTLENUM_TYPE *, int )); +char *c4x_atof + PARAMS ((char *, char, LITTLENUM_TYPE * )); +static void c4x_insert_reg + PARAMS ((char *, int )); +static void c4x_insert_sym + PARAMS ((char *, int )); +static char *c4x_expression + PARAMS ((char *, expressionS *)); +static char *c4x_expression_abs + PARAMS ((char *, int *)); +static void c4x_emit_char + PARAMS ((char)); +static void c4x_seg_alloc + PARAMS ((char *, segT, int, symbolS *)); +static void c4x_asg + PARAMS ((int)); +static void c4x_bss + PARAMS ((int)); +void c4x_globl + PARAMS ((int)); +static void c4x_cons + PARAMS ((int)); +static void c4x_eval + PARAMS ((int)); +static void c4x_newblock + PARAMS ((int)); +static void c4x_sect + PARAMS ((int)); +static void c4x_set + PARAMS ((int)); +static void c4x_usect + PARAMS ((int)); +static void c4x_version + PARAMS ((int)); +static void c4x_pseudo_ignore + PARAMS ((int)); +static void c4x_init_regtable + PARAMS ((void)); +static void c4x_init_symbols + PARAMS ((void)); +static int c4x_inst_insert + PARAMS ((c4x_inst_t *)); +static c4x_inst_t *c4x_inst_make + PARAMS ((char *, unsigned long, char *)); +static int c4x_inst_add + PARAMS ((c4x_inst_t *)); +void md_begin + PARAMS ((void)); +void c4x_end + PARAMS ((void)); +static int c4x_indirect_parse + PARAMS ((c4x_operand_t *, const c4x_indirect_t *)); +char *c4x_operand_parse + PARAMS ((char *, c4x_operand_t *)); +static int c4x_operands_match + PARAMS ((c4x_inst_t *, c4x_insn_t *)); +void c4x_insn_output + PARAMS ((c4x_insn_t *)); +int c4x_operands_parse + PARAMS ((char *, c4x_operand_t *, int )); +void md_assemble + PARAMS ((char *)); +void c4x_cleanup + PARAMS ((void)); +char *md_atof + PARAMS ((int, char *, int *)); +void md_apply_fix3 + PARAMS ((fixS *, valueT *, segT )); +void md_convert_frag + PARAMS ((bfd *, segT, fragS *)); +void md_create_short_jump + PARAMS ((char *, addressT, addressT, fragS *, symbolS *)); +void md_create_long_jump + PARAMS ((char *, addressT, addressT, fragS *, symbolS *)); +int md_estimate_size_before_relax + PARAMS ((register fragS *, segT)); +int md_parse_option + PARAMS ((int, char *)); +void md_show_usage + PARAMS ((FILE *)); +int c4x_unrecognized_line + PARAMS ((int)); +symbolS *md_undefined_symbol + PARAMS ((char *)); +void md_operand + PARAMS ((expressionS *)); +valueT md_section_align + PARAMS ((segT, valueT)); +static int c4x_pc_offset + PARAMS ((unsigned int)); +long md_pcrel_from + PARAMS ((fixS *)); +int c4x_do_align + PARAMS ((int, const char *, int, int)); +void c4x_start_line + PARAMS ((void)); +arelent *tc_gen_reloc + PARAMS ((asection *, fixS *)); + + +const pseudo_typeS + md_pseudo_table[] = +{ + {"align", s_align_bytes, 32}, + {"ascii", c4x_cons, 1}, + {"asciz", c4x_pseudo_ignore, 0}, + {"asg", c4x_asg, 0}, + {"asect", c4x_pseudo_ignore, 0}, /* Absolute named section. */ + {"block", s_space, 0}, + {"byte", c4x_cons, 1}, + {"bss", c4x_bss, 0}, + {"comm", c4x_bss, 0}, + {"def", c4x_globl, 0}, + {"endfunc", c4x_pseudo_ignore, 0}, + {"eos", c4x_pseudo_ignore, 0}, + {"etag", c4x_pseudo_ignore, 0}, + {"equ", c4x_set, 0}, + {"eval", c4x_eval, 0}, + {"exitm", s_mexit, 0}, + {"func", c4x_pseudo_ignore, 0}, + {"global", c4x_globl, 0}, + {"globl", c4x_globl, 0}, + {"hword", c4x_cons, 2}, + {"ieee", float_cons, 'i'}, + {"int", c4x_cons, 4}, /* .int allocates 4 bytes. */ + {"length", c4x_pseudo_ignore, 0}, + {"ldouble", float_cons, 'l'}, + {"member", c4x_pseudo_ignore, 0}, + {"newblock", c4x_newblock, 0}, + {"ref", s_ignore, 0}, /* All undefined treated as external. */ + {"set", c4x_set, 0}, + {"sect", c4x_sect, 1}, /* Define named section. */ + {"space", s_space, 4}, + {"stag", c4x_pseudo_ignore, 0}, + {"string", c4x_pseudo_ignore, 0}, + {"sym", c4x_pseudo_ignore, 0}, + {"usect", c4x_usect, 0}, /* Reserve space in uninit. named sect. */ + {"version", c4x_version, 0}, + {"width", c4x_pseudo_ignore, 0}, + {"word", c4x_cons, 4}, /* .word allocates 4 bytes. */ + {"xdef", c4x_globl, 0}, + {NULL, 0, 0}, +}; + +int md_short_jump_size = 4; +int md_long_jump_size = 4; +const int md_reloc_size = RELSZ; /* Coff headers. */ + +/* This array holds the chars that always start a comment. If the + pre-processor is disabled, these aren't very useful. */ +#ifdef C4X_ALT_SYNTAX +const char comment_chars[] = ";!"; +#else +const char comment_chars[] = ";"; +#endif + +/* This array holds the chars that only start a comment at the beginning of + a line. If the line seems to have the form '# 123 filename' + .line and .file directives will appear in the pre-processed output. + Note that input_file.c hand checks for '#' at the beginning of the + first line of the input file. This is because the compiler outputs + #NO_APP at the beginning of its output. + Also note that comments like this one will always work. */ +const char line_comment_chars[] = "#*"; + +/* We needed an unused char for line separation to work around the + lack of macros, using sed and such. */ +const char line_separator_chars[] = "&"; + +/* Chars that can be used to separate mant from exp in floating point nums. */ +const char EXP_CHARS[] = "eE"; + +/* Chars that mean this number is a floating point constant. */ +/* As in 0f12.456 */ +/* or 0d1.2345e12 */ +const char FLT_CHARS[] = "fFilsS"; + +/* Also be aware that MAXIMUM_NUMBER_OF_CHARS_FOR_FLOAT may have to be + changed in read.c. Ideally it shouldn't have to know about it at + all, but nothing is ideal around here. */ + +/* Flonums returned here. */ +extern FLONUM_TYPE generic_floating_point_number; + +/* Precision in LittleNums. */ +#define MAX_PRECISION (2) +#define S_PRECISION (1) /* Short float constants 16-bit. */ +#define F_PRECISION (2) /* Float and double types 32-bit. */ +#define GUARD (2) + + +/* Turn generic_floating_point_number into a real short/float/double. */ +int +c4x_gen_to_words (flonum, words, precision) + FLONUM_TYPE flonum; + LITTLENUM_TYPE *words; + int precision; +{ + int return_value = 0; + LITTLENUM_TYPE *p; /* Littlenum pointer. */ + int mantissa_bits; /* Bits in mantissa field. */ + int exponent_bits; /* Bits in exponent field. */ + int exponent; + unsigned int sone; /* Scaled one. */ + unsigned int sfract; /* Scaled fraction. */ + unsigned int smant; /* Scaled mantissa. */ + unsigned int tmp; + int shift; /* Shift count. */ + + /* Here is how a generic floating point number is stored using + flonums (an extension of bignums) where p is a pointer to an + array of LITTLENUMs. + + For example 2e-3 is stored with exp = -4 and + bits[0] = 0x0000 + bits[1] = 0x0000 + bits[2] = 0x4fde + bits[3] = 0x978d + bits[4] = 0x126e + bits[5] = 0x0083 + with low = &bits[2], high = &bits[5], and leader = &bits[5]. + + This number can be written as + 0x0083126e978d4fde.00000000 * 65536**-4 or + 0x0.0083126e978d4fde * 65536**0 or + 0x0.83126e978d4fde * 2**-8 = 2e-3 + + Note that low points to the 65536**0 littlenum (bits[2]) and + leader points to the most significant non-zero littlenum + (bits[5]). + + TMS320C3X floating point numbers are a bit of a strange beast. + The 32-bit flavour has the 8 MSBs representing the exponent in + twos complement format (-128 to +127). There is then a sign bit + followed by 23 bits of mantissa. The mantissa is expressed in + twos complement format with the binary point after the most + significant non sign bit. The bit after the binary point is + suppressed since it is the complement of the sign bit. The + effective mantissa is thus 24 bits. Zero is represented by an + exponent of -128. + + The 16-bit flavour has the 4 MSBs representing the exponent in + twos complement format (-8 to +7). There is then a sign bit + followed by 11 bits of mantissa. The mantissa is expressed in + twos complement format with the binary point after the most + significant non sign bit. The bit after the binary point is + suppressed since it is the complement of the sign bit. The + effective mantissa is thus 12 bits. Zero is represented by an + exponent of -8. For example, + + number norm mant m x e s i fraction f + +0.500 => 1.00000000000 -1 -1 0 1 .00000000000 (1 + 0) * 2^(-1) + +0.999 => 1.11111111111 -1 -1 0 1 .11111111111 (1 + 0.99) * 2^(-1) + +1.000 => 1.00000000000 0 0 0 1 .00000000000 (1 + 0) * 2^(0) + +1.500 => 1.10000000000 0 0 0 1 .10000000000 (1 + 0.5) * 2^(0) + +1.999 => 1.11111111111 0 0 0 1 .11111111111 (1 + 0.9) * 2^(0) + +2.000 => 1.00000000000 1 1 0 1 .00000000000 (1 + 0) * 2^(1) + +4.000 => 1.00000000000 2 2 0 1 .00000000000 (1 + 0) * 2^(2) + -0.500 => 1.00000000000 -1 -1 1 0 .10000000000 (-2 + 0) * 2^(-2) + -1.000 => 1.00000000000 0 -1 1 0 .00000000000 (-2 + 0) * 2^(-1) + -1.500 => 1.10000000000 0 0 1 0 .10000000000 (-2 + 0.5) * 2^(0) + -1.999 => 1.11111111111 0 0 1 0 .00000000001 (-2 + 0.11) * 2^(0) + -2.000 => 1.00000000000 1 1 1 0 .00000000000 (-2 + 0) * 2^(0) + -4.000 => 1.00000000000 2 1 1 0 .00000000000 (-2 + 0) * 2^(1) + + where e is the exponent, s is the sign bit, i is the implied bit, + and f is the fraction stored in the mantissa field. + + num = (1 + f) * 2^x = m * 2^e if s = 0 + num = (-2 + f) * 2^x = -m * 2^e if s = 1 + where 0 <= f < 1.0 and 1.0 <= m < 2.0 + + The fraction (f) and exponent (e) fields for the TMS320C3X format + can be derived from the normalised mantissa (m) and exponent (x) using: + + f = m - 1, e = x if s = 0 + f = 2 - m, e = x if s = 1 and m != 1.0 + f = 0, e = x - 1 if s = 1 and m = 1.0 + f = 0, e = -8 if m = 0 + + + OK, the other issue we have to consider is rounding since the + mantissa has a much higher potential precision than what we can + represent. To do this we add half the smallest storable fraction. + We then have to renormalise the number to allow for overflow. + + To convert a generic flonum into a TMS320C3X floating point + number, here's what we try to do.... + + The first thing is to generate a normalised mantissa (m) where + 1.0 <= m < 2 and to convert the exponent from base 16 to base 2. + We desire the binary point to be placed after the most significant + non zero bit. This process is done in two steps: firstly, the + littlenum with the most significant non zero bit is located (this + is done for us since leader points to this littlenum) and the + binary point (which is currently after the LSB of the littlenum + pointed to by low) is moved to before the MSB of the littlenum + pointed to by leader. This requires the exponent to be adjusted + by leader - low + 1. In the earlier example, the new exponent is + thus -4 + (5 - 2 + 1) = 0 (base 65536). We now need to convert + the exponent to base 2 by multiplying the exponent by 16 (log2 + 65536). The exponent base 2 is thus also zero. + + The second step is to hunt for the most significant non zero bit + in the leader littlenum. We do this by left shifting a copy of + the leader littlenum until bit 16 is set (0x10000) and counting + the number of shifts, S, required. The number of shifts then has to + be added to correct the exponent (base 2). For our example, this + will require 9 shifts and thus our normalised exponent (base 2) is + 0 + 9 = 9. Note that the worst case scenario is when the leader + littlenum is 1, thus requiring 16 shifts. + + We now have to left shift the other littlenums by the same amount, + propagating the shifted bits into the more significant littlenums. + To save a lot of unecessary shifting we only have to consider + two or three littlenums, since the greatest number of mantissa + bits required is 24 + 1 rounding bit. While two littlenums + provide 32 bits of precision, the most significant littlenum + may only contain a single significant bit and thus an extra + littlenum is required. + + Denoting the number of bits in the fraction field as F, we require + G = F + 2 bits (one extra bit is for rounding, the other gets + suppressed). Say we required S shifts to find the most + significant bit in the leader littlenum, the number of left shifts + required to move this bit into bit position G - 1 is L = G + S - 17. + Note that this shift count may be negative for the short floating + point flavour (where F = 11 and thus G = 13 and potentially S < 3). + If L > 0 we have to shunt the next littlenum into position. Bit + 15 (the MSB) of the next littlenum needs to get moved into position + L - 1 (If L > 15 we need all the bits of this littlenum and + some more from the next one.). We subtract 16 from L and use this + as the left shift count; the resultant value we or with the + previous result. If L > 0, we repeat this operation. */ + + if (precision != S_PRECISION) + words[1] = 0x0000; + + /* 0.0e0 seen. */ + if (flonum.low > flonum.leader) + { + words[0] = 0x8000; + return return_value; + } + + /* NaN: We can't do much... */ + if (flonum.sign == 0) + { + as_bad ("Nan, using zero."); + words[0] = 0x8000; + return return_value; + } + else if (flonum.sign == 'P') + { + /* +INF: Replace with maximum float. */ + if (precision == S_PRECISION) + words[0] = 0x77ff; + else + { + words[0] = 0x7f7f; + words[1] = 0xffff; + } + return return_value; + } + else if (flonum.sign == 'N') + { + /* -INF: Replace with maximum float. */ + if (precision == S_PRECISION) + words[0] = 0x7800; + else + words[0] = 0x7f80; + return return_value; + } + + exponent = (flonum.exponent + flonum.leader - flonum.low + 1) * 16; + + if (!(tmp = *flonum.leader)) + abort (); /* Hmmm. */ + shift = 0; /* Find position of first sig. bit. */ + while (tmp >>= 1) + shift++; + exponent -= (16 - shift); /* Adjust exponent. */ + + if (precision == S_PRECISION) /* Allow 1 rounding bit. */ + { + exponent_bits = 4; + mantissa_bits = 12; /* Include suppr. bit but not rounding bit. */ + } + else + { + exponent_bits = 8; + mantissa_bits = 24; + } + + shift = mantissa_bits - shift; + + smant = 0; + for (p = flonum.leader; p >= flonum.low && shift > -16; p--) + { + tmp = shift >= 0 ? *p << shift : *p >> -shift; + smant |= tmp; + shift -= 16; + } + + /* OK, we've got our scaled mantissa so let's round it up + and drop the rounding bit. */ + smant++; + smant >>= 1; + + /* The number may be unnormalised so renormalise it... */ + if (smant >> mantissa_bits) + { + smant >>= 1; + exponent++; + } + + /* The binary point is now between bit positions 11 and 10 or 23 and 22, + i.e., between mantissa_bits - 1 and mantissa_bits - 2 and the + bit at mantissa_bits - 1 should be set. */ + if (!(smant >> (mantissa_bits - 1))) + abort (); /* Ooops. */ + + sone = (1 << (mantissa_bits - 1)); + if (flonum.sign == '+') + sfract = smant - sone; /* smant - 1.0. */ + else + { + /* This seems to work. */ + if (smant == sone) + { + exponent--; + sfract = 0; + } + else + sfract = (sone << 1) - smant; /* 2.0 - smant. */ + sfract |= sone; /* Insert sign bit. */ + } + + if (abs (exponent) >= (1 << (exponent_bits - 1))) + as_bad ("Cannot represent exponent in %d bits", exponent_bits); + + /* Force exponent to fit in desired field width. */ + exponent &= (1 << (exponent_bits)) - 1; + sfract |= exponent << mantissa_bits; + + if (precision == S_PRECISION) + words[0] = sfract; + else + { + words[0] = sfract >> 16; + words[1] = sfract & 0xffff; + } + + return return_value; +} + +/* Returns pointer past text consumed. */ +char * +c4x_atof (str, what_kind, words) + char *str; + char what_kind; + LITTLENUM_TYPE *words; +{ + /* Extra bits for zeroed low-order bits. The 1st MAX_PRECISION are + zeroed, the last contain flonum bits. */ + static LITTLENUM_TYPE bits[MAX_PRECISION + MAX_PRECISION + GUARD]; + char *return_value; + /* Number of 16-bit words in the format. */ + int precision; + FLONUM_TYPE save_gen_flonum; + + /* We have to save the generic_floating_point_number because it + contains storage allocation about the array of LITTLENUMs where + the value is actually stored. We will allocate our own array of + littlenums below, but have to restore the global one on exit. */ + save_gen_flonum = generic_floating_point_number; + + return_value = str; + generic_floating_point_number.low = bits + MAX_PRECISION; + generic_floating_point_number.high = NULL; + generic_floating_point_number.leader = NULL; + generic_floating_point_number.exponent = 0; + generic_floating_point_number.sign = '\0'; + + /* Use more LittleNums than seems necessary: the highest flonum may + have 15 leading 0 bits, so could be useless. */ + + memset (bits, '\0', sizeof (LITTLENUM_TYPE) * MAX_PRECISION); + + switch (what_kind) + { + case 's': + case 'S': + precision = S_PRECISION; + break; + + case 'd': + case 'D': + case 'f': + case 'F': + precision = F_PRECISION; + break; + + default: + as_bad ("Invalid floating point number"); + return (NULL); + } + + generic_floating_point_number.high + = generic_floating_point_number.low + precision - 1 + GUARD; + + if (atof_generic (&return_value, ".", EXP_CHARS, + &generic_floating_point_number)) + { + as_bad ("Invalid floating point number"); + return (NULL); + } + + c4x_gen_to_words (generic_floating_point_number, + words, precision); + + /* Restore the generic_floating_point_number's storage alloc (and + everything else). */ + generic_floating_point_number = save_gen_flonum; + + return return_value; +} + +static void +c4x_insert_reg (regname, regnum) + char *regname; + int regnum; +{ + char buf[32]; + int i; + + symbol_table_insert (symbol_new (regname, reg_section, (valueT) regnum, + &zero_address_frag)); + for (i = 0; regname[i]; i++) + buf[i] = islower (regname[i]) ? toupper (regname[i]) : regname[i]; + buf[i] = '\0'; + + symbol_table_insert (symbol_new (buf, reg_section, (valueT) regnum, + &zero_address_frag)); +} + +static void +c4x_insert_sym (symname, value) + char *symname; + int value; +{ + symbolS *symbolP; + + symbolP = symbol_new (symname, absolute_section, + (valueT) value, &zero_address_frag); + SF_SET_LOCAL (symbolP); + symbol_table_insert (symbolP); +} + +static char * +c4x_expression (str, exp) + char *str; + expressionS *exp; +{ + char *s; + char *t; + + t = input_line_pointer; /* Save line pointer. */ + input_line_pointer = str; + expression (exp); + s = input_line_pointer; + input_line_pointer = t; /* Restore line pointer. */ + return s; /* Return pointer to where parsing stopped. */ +} + +static char * +c4x_expression_abs (str, value) + char *str; + int *value; +{ + char *s; + char *t; + + t = input_line_pointer; /* Save line pointer. */ + input_line_pointer = str; + *value = get_absolute_expression (); + s = input_line_pointer; + input_line_pointer = t; /* Restore line pointer. */ + return s; +} + +static void +c4x_emit_char (c) + char c; +{ + expressionS exp; + + exp.X_op = O_constant; + exp.X_add_number = c; + emit_expr (&exp, 4); +} + +static void +c4x_seg_alloc (name, seg, size, symbolP) + char *name ATTRIBUTE_UNUSED; + segT seg ATTRIBUTE_UNUSED; + int size; + symbolS *symbolP; +{ + /* Note that the size is in words + so we multiply it by 4 to get the number of bytes to allocate. */ + + /* If we have symbol: .usect ".fred", size etc., + the symbol needs to point to the first location reserved + by the pseudo op. */ + + if (size) + { + char *p; + + p = frag_var (rs_fill, 1, 1, (relax_substateT) 0, + (symbolS *) symbolP, + size * OCTETS_PER_BYTE, (char *) 0); + *p = 0; + } +} + +/* .asg ["]character-string["], symbol */ +static void +c4x_asg (x) + int x ATTRIBUTE_UNUSED; +{ + char c; + char *name; + char *str; + char *tmp; + + SKIP_WHITESPACE (); + str = input_line_pointer; + + /* Skip string expression. */ + while (*input_line_pointer != ',' && *input_line_pointer) + input_line_pointer++; + if (*input_line_pointer != ',') + { + as_bad ("Comma expected\n"); + return; + } + *input_line_pointer++ = '\0'; + name = input_line_pointer; + c = get_symbol_end (); /* Get terminator. */ + tmp = xmalloc (strlen (str) + 1); + strcpy (tmp, str); + str = tmp; + tmp = xmalloc (strlen (name) + 1); + strcpy (tmp, name); + name = tmp; + if (hash_find (c4x_asg_hash, name)) + hash_replace (c4x_asg_hash, name, (PTR) str); + else + hash_insert (c4x_asg_hash, name, (PTR) str); + *input_line_pointer = c; + demand_empty_rest_of_line (); +} + +/* .bss symbol, size */ +static void +c4x_bss (x) + int x ATTRIBUTE_UNUSED; +{ + char c; + char *name; + char *p; + int size; + segT current_seg; + subsegT current_subseg; + symbolS *symbolP; + + current_seg = now_seg; /* Save current seg. */ + current_subseg = now_subseg; /* Save current subseg. */ + + SKIP_WHITESPACE (); + name = input_line_pointer; + c = get_symbol_end (); /* Get terminator. */ + if (c != ',') + { + as_bad (".bss size argument missing\n"); + return; + } + + input_line_pointer = + c4x_expression_abs (++input_line_pointer, &size); + if (size < 0) + { + as_bad (".bss size %d < 0!", size); + return; + } + subseg_set (bss_section, 0); + symbolP = symbol_find_or_make (name); + + if (S_GET_SEGMENT (symbolP) == bss_section) + symbol_get_frag (symbolP)->fr_symbol = 0; + + symbol_set_frag (symbolP, frag_now); + + p = frag_var (rs_org, 1, 1, (relax_substateT) 0, symbolP, + size * OCTETS_PER_BYTE, (char *) 0); + *p = 0; /* Fill char. */ + + S_SET_SEGMENT (symbolP, bss_section); + + /* The symbol may already have been created with a preceding + ".globl" directive -- be careful not to step on storage class + in that case. Otherwise, set it to static. */ + if (S_GET_STORAGE_CLASS (symbolP) != C_EXT) + S_SET_STORAGE_CLASS (symbolP, C_STAT); + + subseg_set (current_seg, current_subseg); /* Restore current seg. */ + demand_empty_rest_of_line (); +} + +void +c4x_globl (ignore) + int ignore ATTRIBUTE_UNUSED; +{ + char *name; + int c; + symbolS *symbolP; + + do + { + name = input_line_pointer; + c = get_symbol_end (); + symbolP = symbol_find_or_make (name); + *input_line_pointer = c; + SKIP_WHITESPACE (); + S_SET_STORAGE_CLASS (symbolP, C_EXT); + if (c == ',') + { + input_line_pointer++; + SKIP_WHITESPACE (); + if (*input_line_pointer == '\n') + c = '\n'; + } + } + while (c == ','); + + demand_empty_rest_of_line (); +} + +/* Handle .byte, .word. .int, .long */ +static void +c4x_cons (bytes) + int bytes; +{ + register unsigned int c; + do + { + SKIP_WHITESPACE (); + if (*input_line_pointer == '"') + { + input_line_pointer++; + while (is_a_char (c = next_char_of_string ())) + c4x_emit_char (c); + know (input_line_pointer[-1] == '\"'); + } + else + { + expressionS exp; + + input_line_pointer = c4x_expression (input_line_pointer, &exp); + if (exp.X_op == O_constant) + { + switch (bytes) + { + case 1: + exp.X_add_number &= 255; + break; + case 2: + exp.X_add_number &= 65535; + break; + } + } + /* Perhaps we should disallow .byte and .hword with + a non constant expression that will require relocation. */ + emit_expr (&exp, 4); + } + } + while (*input_line_pointer++ == ','); + + input_line_pointer--; /* Put terminator back into stream. */ + demand_empty_rest_of_line (); +} + +/* .eval expression, symbol */ +static void +c4x_eval (x) + int x ATTRIBUTE_UNUSED; +{ + char c; + int value; + char *name; + + SKIP_WHITESPACE (); + input_line_pointer = + c4x_expression_abs (input_line_pointer, &value); + if (*input_line_pointer++ != ',') + { + as_bad ("Symbol missing\n"); + return; + } + name = input_line_pointer; + c = get_symbol_end (); /* Get terminator. */ + demand_empty_rest_of_line (); + c4x_insert_sym (name, value); +} + +/* Reset local labels. */ +static void +c4x_newblock (x) + int x ATTRIBUTE_UNUSED; +{ + dollar_label_clear (); +} + +/* .sect "section-name" [, value] */ +/* .sect ["]section-name[:subsection-name]["] [, value] */ +static void +c4x_sect (x) + int x ATTRIBUTE_UNUSED; +{ + char c; + char *section_name; + char *subsection_name; + char *name; + segT seg; + int num; + + SKIP_WHITESPACE (); + if (*input_line_pointer == '"') + input_line_pointer++; + section_name = input_line_pointer; + c = get_symbol_end (); /* Get terminator. */ + input_line_pointer++; /* Skip null symbol terminator. */ + name = xmalloc (input_line_pointer - section_name + 1); + strcpy (name, section_name); + + /* TI C from version 5.0 allows a section name to contain a + subsection name as well. The subsection name is separated by a + ':' from the section name. Currently we scan the subsection + name and discard it. + Volker Kuhlmann . */ + if (c == ':') + { + subsection_name = input_line_pointer; + c = get_symbol_end (); /* Get terminator. */ + input_line_pointer++; /* Skip null symbol terminator. */ + as_warn (".sect: subsection name ignored"); + } + + /* We might still have a '"' to discard, but the character after a + symbol name will be overwritten with a \0 by get_symbol_end() + [VK]. */ + + if (c == ',') + input_line_pointer = + c4x_expression_abs (input_line_pointer, &num); + else if (*input_line_pointer == ',') + { + input_line_pointer = + c4x_expression_abs (++input_line_pointer, &num); + } + else + num = 0; + + seg = subseg_new (name, num); + if (line_label != NULL) + { + S_SET_SEGMENT (line_label, seg); + symbol_set_frag (line_label, frag_now); + } + + if (bfd_get_section_flags (stdoutput, seg) == SEC_NO_FLAGS) + { + if (!bfd_set_section_flags (stdoutput, seg, SEC_DATA)) + as_warn ("Error setting flags for \"%s\": %s", name, + bfd_errmsg (bfd_get_error ())); + } + + /* If the last character overwritten by get_symbol_end() was an + end-of-line, we must restore it or the end of the line will not be + recognised and scanning extends into the next line, stopping with + an error (blame Volker Kuhlmann + if this is not true). */ + if (is_end_of_line[(unsigned char) c]) + *(--input_line_pointer) = c; + + demand_empty_rest_of_line (); +} + +/* symbol[:] .set value or .set symbol, value */ +static void +c4x_set (x) + int x ATTRIBUTE_UNUSED; +{ + symbolS *symbolP; + + SKIP_WHITESPACE (); + if ((symbolP = line_label) == NULL) + { + char c; + char *name; + + name = input_line_pointer; + c = get_symbol_end (); /* Get terminator. */ + if (c != ',') + { + as_bad (".set syntax invalid\n"); + ignore_rest_of_line (); + return; + } + symbolP = symbol_find_or_make (name); + } + else + symbol_table_insert (symbolP); + + pseudo_set (symbolP); + demand_empty_rest_of_line (); +} + +/* [symbol] .usect ["]section-name["], size-in-words [, alignment-flag] */ +static void +c4x_usect (x) + int x ATTRIBUTE_UNUSED; +{ + char c; + char *name; + char *section_name; + segT seg; + int size, alignment_flag; + segT current_seg; + subsegT current_subseg; + + current_seg = now_seg; /* save current seg. */ + current_subseg = now_subseg; /* save current subseg. */ + + SKIP_WHITESPACE (); + if (*input_line_pointer == '"') + input_line_pointer++; + section_name = input_line_pointer; + c = get_symbol_end (); /* Get terminator. */ + input_line_pointer++; /* Skip null symbol terminator. */ + name = xmalloc (input_line_pointer - section_name + 1); + strcpy (name, section_name); + + if (c == ',') + input_line_pointer = + c4x_expression_abs (input_line_pointer, &size); + else if (*input_line_pointer == ',') + { + input_line_pointer = + c4x_expression_abs (++input_line_pointer, &size); + } + else + size = 0; + + /* Read a possibly present third argument (alignment flag) [VK]. */ + if (*input_line_pointer == ',') + { + input_line_pointer = + c4x_expression_abs (++input_line_pointer, &alignment_flag); + } + else + alignment_flag = 0; + if (alignment_flag) + as_warn (".usect: non-zero alignment flag ignored"); + + seg = subseg_new (name, 0); + if (line_label != NULL) + { + S_SET_SEGMENT (line_label, seg); + symbol_set_frag (line_label, frag_now); + S_SET_VALUE (line_label, frag_now_fix ()); + } + seg_info (seg)->bss = 1; /* Uninitialised data. */ + if (!bfd_set_section_flags (stdoutput, seg, SEC_ALLOC)) + as_warn ("Error setting flags for \"%s\": %s", name, + bfd_errmsg (bfd_get_error ())); + c4x_seg_alloc (name, seg, size, line_label); + + if (S_GET_STORAGE_CLASS (line_label) != C_EXT) + S_SET_STORAGE_CLASS (line_label, C_STAT); + + subseg_set (current_seg, current_subseg); /* Restore current seg. */ + demand_empty_rest_of_line (); +} + +/* .version cpu-version. */ +static void +c4x_version (x) + int x ATTRIBUTE_UNUSED; +{ + unsigned int temp; + + input_line_pointer = + c4x_expression_abs (input_line_pointer, &temp); + if (!IS_CPU_C3X (temp) && !IS_CPU_C4X (temp)) + as_bad ("This assembler does not support processor generation %d\n", + temp); + + if (c4x_cpu && temp != c4x_cpu) + as_warn ("Changing processor generation on fly not supported...\n"); + c4x_cpu = temp; + demand_empty_rest_of_line (); +} + +static void +c4x_pseudo_ignore (x) + int x ATTRIBUTE_UNUSED; +{ + /* We could print warning message here... */ + + /* Ignore everything until end of line. */ + while (!is_end_of_line[(unsigned char) *input_line_pointer++]); +} + +static void +c4x_init_regtable () +{ + unsigned int i; + + for (i = 0; i < c3x_num_registers; i++) + c4x_insert_reg (c3x_registers[i].name, + c3x_registers[i].regno); + + if (IS_CPU_C4X (c4x_cpu)) + { + /* Add additional C4x registers, overriding some C3x ones. */ + for (i = 0; i < c4x_num_registers; i++) + c4x_insert_reg (c4x_registers[i].name, + c4x_registers[i].regno); + } +} + +static void +c4x_init_symbols () +{ + /* The TI tools accept case insensitive versions of these symbols, + we don't ! + + For TI C/Asm 5.0 + + .TMS320xx 30,31,32,40,or 44 set according to -v flag + .C3X or .C3x 1 or 0 1 if -v30,-v31,or -v32 + .C30 1 or 0 1 if -v30 + .C31 1 or 0 1 if -v31 + .C32 1 or 0 1 if -v32 + .C4X or .C4x 1 or 0 1 if -v40, or -v44 + .C40 1 or 0 1 if -v40 + .C44 1 or 0 1 if -v44 + + .REGPARM 1 or 0 1 if -mr option used + .BIGMODEL 1 or 0 1 if -mb option used + + These symbols are currently supported but will be removed in a + later version: + .TMS320C30 1 or 0 1 if -v30,-v31,or -v32 + .TMS320C31 1 or 0 1 if -v31 + .TMS320C32 1 or 0 1 if -v32 + .TMS320C40 1 or 0 1 if -v40, or -v44 + .TMS320C44 1 or 0 1 if -v44 + + Source: TI: TMS320C3x/C4x Assembly Language Tools User's Guide, + 1997, SPRU035C, p. 3-17/3-18. */ + c4x_insert_sym (".REGPARM", c4x_reg_args); + c4x_insert_sym (".MEMPARM", !c4x_reg_args); + c4x_insert_sym (".BIGMODEL", c4x_big_model); + c4x_insert_sym (".C30INTERRUPT", 0); + c4x_insert_sym (".TMS320xx", c4x_cpu == 0 ? 40 : c4x_cpu); + c4x_insert_sym (".C3X", c4x_cpu == 30 || c4x_cpu == 31 || c4x_cpu == 32); + c4x_insert_sym (".C3x", c4x_cpu == 30 || c4x_cpu == 31 || c4x_cpu == 32); + c4x_insert_sym (".C4X", c4x_cpu == 0 || c4x_cpu == 40 || c4x_cpu == 44); + c4x_insert_sym (".C4x", c4x_cpu == 0 || c4x_cpu == 40 || c4x_cpu == 44); + /* Do we need to have the following symbols also in lower case? */ + c4x_insert_sym (".TMS320C30", c4x_cpu == 30 || c4x_cpu == 31 || c4x_cpu == 32); + c4x_insert_sym (".tms320C30", c4x_cpu == 30 || c4x_cpu == 31 || c4x_cpu == 32); + c4x_insert_sym (".TMS320C31", c4x_cpu == 31); + c4x_insert_sym (".tms320C31", c4x_cpu == 31); + c4x_insert_sym (".TMS320C32", c4x_cpu == 32); + c4x_insert_sym (".tms320C32", c4x_cpu == 32); + c4x_insert_sym (".TMS320C40", c4x_cpu == 40 || c4x_cpu == 44 || c4x_cpu == 0); + c4x_insert_sym (".tms320C40", c4x_cpu == 40 || c4x_cpu == 44 || c4x_cpu == 0); + c4x_insert_sym (".TMS320C44", c4x_cpu == 44); + c4x_insert_sym (".tms320C44", c4x_cpu == 44); + c4x_insert_sym (".TMX320C40", 0); /* C40 first pass silicon ? */ + c4x_insert_sym (".tmx320C40", 0); +} + +/* Insert a new instruction template into hash table. */ +static int +c4x_inst_insert (inst) + c4x_inst_t *inst; +{ + static char prev_name[16]; + const char *retval = NULL; + + /* Only insert the first name if have several similar entries. */ + if (!strcmp (inst->name, prev_name) || inst->name[0] == '\0') + return 1; + + retval = hash_insert (c4x_op_hash, inst->name, (PTR) inst); + if (retval != NULL) + fprintf (stderr, "internal error: can't hash `%s': %s\n", + inst->name, retval); + else + strcpy (prev_name, inst->name); + return retval == NULL; +} + +/* Make a new instruction template. */ +static c4x_inst_t * +c4x_inst_make (name, opcode, args) + char *name; + unsigned long opcode; + char *args; +{ + static c4x_inst_t *insts = NULL; + static char *names = NULL; + static int index = 0; + + if (insts == NULL) + { + /* Allocate memory to store name strings. */ + names = (char *) xmalloc (sizeof (char) * 8192); + /* Allocate memory for additional insts. */ + insts = (c4x_inst_t *) + xmalloc (sizeof (c4x_inst_t) * 1024); + } + insts[index].name = names; + insts[index].opcode = opcode; + insts[index].opmask = 0xffffffff; + insts[index].args = args; + index++; + + do + *names++ = *name++; + while (*name); + *names++ = '\0'; + + return &insts[index - 1]; +} + +/* Add instruction template, creating dynamic templates as required. */ +static int +c4x_inst_add (insts) + c4x_inst_t *insts; +{ + char *s = insts->name; + char *d; + unsigned int i; + int ok = 1; + char name[16]; + + d = name; + + while (1) + { + switch (*s) + { + case 'B': + case 'C': + /* Dynamically create all the conditional insts. */ + for (i = 0; i < num_conds; i++) + { + c4x_inst_t *inst; + int k = 0; + char *c = c4x_conds[i].name; + char *e = d; + + while (*c) + *e++ = *c++; + c = s + 1; + while (*c) + *e++ = *c++; + *e = '\0'; + + /* If instruction found then have already processed it. */ + if (hash_find (c4x_op_hash, name)) + return 1; + + do + { + inst = c4x_inst_make (name, insts[k].opcode + + (c4x_conds[i].cond << + (*s == 'B' ? 16 : 23)), + insts[k].args); + if (k == 0) /* Save strcmp() with following func. */ + ok &= c4x_inst_insert (inst); + k++; + } + while (!strcmp (insts->name, + insts[k].name)); + } + return ok; + break; + + case '\0': + return c4x_inst_insert (insts); + break; + + default: + *d++ = *s++; + break; + } + } +} + +/* This function is called once, at assembler startup time. It should + set up all the tables, etc., that the MD part of the assembler will + need. */ +void +md_begin () +{ + int ok = 1; + unsigned int i; + + /* Create hash table for mnemonics. */ + c4x_op_hash = hash_new (); + + /* Create hash table for asg pseudo. */ + c4x_asg_hash = hash_new (); + + /* Add mnemonics to hash table, expanding conditional mnemonics on fly. */ + for (i = 0; i < c3x_num_insts; i++) + ok &= c4x_inst_add ((void *) &c3x_insts[i]); + + if (IS_CPU_C4X (c4x_cpu)) + { + for (i = 0; i < c4x_num_insts; i++) + ok &= c4x_inst_add ((void *) &c4x_insts[i]); + } + + /* Create dummy inst to avoid errors accessing end of table. */ + c4x_inst_make ("", 0, ""); + + if (!ok) + as_fatal ("Broken assembler. No assembly attempted."); + + /* Add registers to symbol table. */ + c4x_init_regtable (); + + /* Add predefined symbols to symbol table. */ + c4x_init_symbols (); +} + +void +c4x_end () +{ + bfd_set_arch_mach (stdoutput, bfd_arch_tic4x, + IS_CPU_C4X (c4x_cpu) ? bfd_mach_c4x : bfd_mach_c3x); +} + +static int +c4x_indirect_parse (operand, indirect) + c4x_operand_t *operand; + const c4x_indirect_t *indirect; +{ + char *n = indirect->name; + char *s = input_line_pointer; + char *b; + symbolS *symbolP; + char name[32]; + + operand->disp = 0; + for (; *n; n++) + { + switch (*n) + { + case 'a': /* Need to match aux register. */ + b = name; +#ifdef C4X_ALT_SYNTAX + if (*s == '%') + s++; +#endif + while (isalnum (*s)) + *b++ = *s++; + *b++ = '\0'; + if (!(symbolP = symbol_find (name))) + return 0; + + if (S_GET_SEGMENT (symbolP) != reg_section) + return 0; + + operand->aregno = S_GET_VALUE (symbolP); + if (operand->aregno >= REG_AR0 && operand->aregno <= REG_AR7) + break; + + as_bad ("Auxiliary register AR0--AR7 required for indirect"); + return -1; + + case 'd': /* Need to match constant for disp. */ +#ifdef C4X_ALT_SYNTAX + if (*s == '%') /* expr() will die if we don't skip this. */ + s++; +#endif + s = c4x_expression (s, &operand->expr); + if (operand->expr.X_op != O_constant) + return 0; + operand->disp = operand->expr.X_add_number; + if (operand->disp < 0 || operand->disp > 255) + { + as_bad ("Bad displacement %d (require 0--255)\n", + operand->disp); + return -1; + } + break; + + case 'y': /* Need to match IR0. */ + case 'z': /* Need to match IR1. */ +#ifdef C4X_ALT_SYNTAX + if (*s == '%') + s++; +#endif + s = c4x_expression (s, &operand->expr); + if (operand->expr.X_op != O_register) + return 0; + if (operand->expr.X_add_number != REG_IR0 + && operand->expr.X_add_number != REG_IR1) + { + as_bad ("Index register IR0,IR1 required for displacement"); + return -1; + } + + if (*n == 'y' && operand->expr.X_add_number == REG_IR0) + break; + if (*n == 'z' && operand->expr.X_add_number == REG_IR1) + break; + return 0; + + case '(': + if (*s != '(') /* No displacement, assume to be 1. */ + { + operand->disp = 1; + while (*n != ')') + n++; + } + else + s++; + break; + + default: + if (tolower (*s) != *n) + return 0; + s++; + } + } + if (*s != ' ' && *s != ',' && *s != '\0') + return 0; + input_line_pointer = s; + return 1; +} + +char * +c4x_operand_parse (s, operand) + char *s; + c4x_operand_t *operand; +{ + unsigned int i; + char c; + int ret; + expressionS *exp = &operand->expr; + char *save = input_line_pointer; + char *str; + char *new; + struct hash_entry *entry = NULL; + + input_line_pointer = s; + SKIP_WHITESPACE (); + + str = input_line_pointer; + c = get_symbol_end (); /* Get terminator. */ + new = input_line_pointer; + if (strlen (str) && (entry = hash_find (c4x_asg_hash, str)) != NULL) + { + *input_line_pointer = c; + input_line_pointer = (char *) entry; + } + else + { + *input_line_pointer = c; + input_line_pointer = str; + } + + operand->mode = M_UNKNOWN; + switch (*input_line_pointer) + { +#ifdef C4X_ALT_SYNTAX + case '%': + input_line_pointer = c4x_expression (++input_line_pointer, exp); + if (exp->X_op != O_register) + as_bad ("Expecting a register name"); + operand->mode = M_REGISTER; + break; + + case '^': + /* Denotes high 16 bits. */ + input_line_pointer = c4x_expression (++input_line_pointer, exp); + if (exp->X_op == O_constant) + operand->mode = M_IMMED; + else if (exp->X_op == O_big) + { + if (exp->X_add_number) + as_bad ("Number too large"); /* bignum required */ + else + { + c4x_gen_to_words (generic_floating_point_number, + operand->fwords, S_PRECISION); + operand->mode = M_IMMED_F; + } + } + /* Allow ori ^foo, ar0 to be equivalent to ldi .hi.foo, ar0 */ + /* WARNING : The TI C40 assembler cannot do this. */ + else if (exp->X_op == O_symbol) + { + operand->mode = M_HI; + break; + } + + case '#': + input_line_pointer = c4x_expression (++input_line_pointer, exp); + if (exp->X_op == O_constant) + operand->mode = M_IMMED; + else if (exp->X_op == O_big) + { + if (exp->X_add_number > 0) + as_bad ("Number too large"); /* bignum required. */ + else + { + c4x_gen_to_words (generic_floating_point_number, + operand->fwords, S_PRECISION); + operand->mode = M_IMMED_F; + } + } + /* Allow ori foo, ar0 to be equivalent to ldi .lo.foo, ar0 */ + /* WARNING : The TI C40 assembler cannot do this. */ + else if (exp->X_op == O_symbol) + { + operand->mode = M_IMMED; + break; + } + + else + as_bad ("Expecting a constant value"); + break; + case '\\': +#endif + case '@': + input_line_pointer = c4x_expression (++input_line_pointer, exp); + if (exp->X_op != O_constant && exp->X_op != O_symbol) + as_bad ("Bad direct addressing construct %s", s); + if (exp->X_op == O_constant) + { + if (exp->X_add_number < 0) + as_bad ("Direct value of %ld is not suitable", + (long) exp->X_add_number); + } + operand->mode = M_DIRECT; + break; + + case '*': + ret = -1; + for (i = 0; i < num_indirects; i++) + if ((ret = c4x_indirect_parse (operand, &c4x_indirects[i]))) + break; + if (ret < 0) + break; + if (i < num_indirects) + { + operand->mode = M_INDIRECT; + /* Indirect addressing mode number. */ + operand->expr.X_add_number = c4x_indirects[i].modn; + /* Convert *+ARn(0) to *ARn etc. Maybe we should + squeal about silly ones? */ + if (operand->expr.X_add_number < 0x08 && !operand->disp) + operand->expr.X_add_number = 0x18; + } + else + as_bad ("Unknown indirect addressing mode"); + break; + + default: + operand->mode = M_IMMED; /* Assume immediate. */ + str = input_line_pointer; + input_line_pointer = c4x_expression (input_line_pointer, exp); + if (exp->X_op == O_register) + { + know (exp->X_add_symbol == 0); + know (exp->X_op_symbol == 0); + operand->mode = M_REGISTER; + break; + } + else if (exp->X_op == O_big) + { + if (exp->X_add_number > 0) + as_bad ("Number too large"); /* bignum required. */ + else + { + c4x_gen_to_words (generic_floating_point_number, + operand->fwords, S_PRECISION); + operand->mode = M_IMMED_F; + } + break; + } +#ifdef C4X_ALT_SYNTAX + /* Allow ldi foo, ar0 to be equivalent to ldi @foo, ar0. */ + else if (exp->X_op == O_symbol) + { + operand->mode = M_DIRECT; + break; + } +#endif + } + if (entry == NULL) + new = input_line_pointer; + input_line_pointer = save; + return new; +} + +static int +c4x_operands_match (inst, insn) + c4x_inst_t *inst; + c4x_insn_t *insn; +{ + const char *args = inst->args; + unsigned long opcode = inst->opcode; + int num_operands = insn->num_operands; + c4x_operand_t *operand = insn->operands; + expressionS *exp = &operand->expr; + int ret = 1; + int reg; + + /* Build the opcode, checking as we go to make sure that the + operands match. + + If an operand matches, we modify insn or opcode appropriately, + and do a "continue". If an operand fails to match, we "break". */ + + insn->nchars = 4; /* Instructions always 4 bytes. */ + insn->reloc = NO_RELOC; + insn->pcrel = 0; + + if (*args == '\0') + { + insn->opcode = opcode; + return num_operands == 0; + } + + for (;; ++args) + { + switch (*args) + { + + case '\0': /* End of args. */ + if (num_operands == 1) + { + insn->opcode = opcode; + return ret; + } + break; /* Too many operands. */ + + case '#': /* This is only used for ldp. */ + if (operand->mode != M_DIRECT && operand->mode != M_IMMED) + break; + /* While this looks like a direct addressing mode, we actually + use an immediate mode form of ldiu or ldpk instruction. */ + if (exp->X_op == O_constant) + { + /* Maybe for C3x we should check for 8 bit number. */ + INSERTS (opcode, exp->X_add_number, 15, 0); + continue; + } + else if (exp->X_op == O_symbol) + { + insn->reloc = BFD_RELOC_HI16; + insn->exp = *exp; + continue; + } + break; /* Not direct (dp) addressing. */ + + case '@': /* direct. */ + if (operand->mode != M_DIRECT) + break; + if (exp->X_op == O_constant) + { + /* Store only the 16 LSBs of the number. */ + INSERTS (opcode, exp->X_add_number, 15, 0); + continue; + } + else if (exp->X_op == O_symbol) + { + insn->reloc = BFD_RELOC_LO16; + insn->exp = *exp; + continue; + } + break; /* Not direct addressing. */ + + case 'A': + if (operand->mode != M_REGISTER) + break; + reg = exp->X_add_number; + if (reg >= REG_AR0 && reg <= REG_AR7) + INSERTU (opcode, reg - REG_AR0, 24, 22); + else + { + as_bad ("Destination register must be ARn"); + ret = -1; + } + continue; + + case 'B': /* Unsigned integer immediate. */ + /* Allow br label or br @label. */ + if (operand->mode != M_IMMED && operand->mode != M_DIRECT) + break; + if (exp->X_op == O_constant) + { + if (exp->X_add_number < (1 << 24)) + { + INSERTU (opcode, exp->X_add_number, 23, 0); + continue; + } + else + { + as_bad ("Immediate value of %ld is too large", + (long) exp->X_add_number); + ret = -1; + continue; + } + } + if (IS_CPU_C4X (c4x_cpu)) + { + insn->reloc = BFD_RELOC_24_PCREL; + insn->pcrel = 1; + } + else + { + insn->reloc = BFD_RELOC_24; + insn->pcrel = 0; + } + insn->exp = *exp; + continue; + + case 'C': + if (!IS_CPU_C4X (c4x_cpu)) + break; + if (operand->mode != M_INDIRECT) + break; + if (operand->expr.X_add_number != 0 + && operand->expr.X_add_number != 0x18) + { + as_bad ("Invalid indirect addressing mode"); + ret = -1; + continue; + } + INSERTU (opcode, operand->aregno - REG_AR0, 2, 0); + INSERTU (opcode, operand->disp, 7, 3); + continue; + + case 'E': + if (!(operand->mode == M_REGISTER)) + break; + INSERTU (opcode, exp->X_add_number, 7, 0); + continue; + + case 'F': + if (operand->mode != M_IMMED_F + && !(operand->mode == M_IMMED && exp->X_op == O_constant)) + break; + + if (operand->mode != M_IMMED_F) + { + /* OK, we 've got something like cmpf 0, r0 + Why can't they stick in a bloody decimal point ?! */ + char string[16]; + + /* Create floating point number string. */ + sprintf (string, "%d.0", (int) exp->X_add_number); + c4x_atof (string, 's', operand->fwords); + } + + INSERTU (opcode, operand->fwords[0], 15, 0); + continue; + + case 'G': + if (operand->mode != M_REGISTER) + break; + INSERTU (opcode, exp->X_add_number, 15, 8); + continue; + + case 'H': + if (operand->mode != M_REGISTER) + break; + reg = exp->X_add_number; + if (reg >= REG_R0 && reg <= REG_R7) + INSERTU (opcode, reg - REG_R0, 18, 16); + else + { + as_bad ("Register must be R0--R7"); + ret = -1; + } + continue; + + case 'I': + if (operand->mode != M_INDIRECT) + break; + if (operand->disp != 0 && operand->disp != 1) + { + if (IS_CPU_C4X (c4x_cpu)) + break; + as_bad ("Invalid indirect addressing mode displacement %d", + operand->disp); + ret = -1; + continue; + } + INSERTU (opcode, operand->aregno - REG_AR0, 2, 0); + INSERTU (opcode, operand->expr.X_add_number, 7, 3); + continue; + + case 'J': + if (operand->mode != M_INDIRECT) + break; + if (operand->disp != 0 && operand->disp != 1) + { + if (IS_CPU_C4X (c4x_cpu)) + break; + as_bad ("Invalid indirect addressing mode displacement %d", + operand->disp); + ret = -1; + continue; + } + INSERTU (opcode, operand->aregno - REG_AR0, 10, 8); + INSERTU (opcode, operand->expr.X_add_number, 15, 11); + continue; + + case 'K': + if (operand->mode != M_REGISTER) + break; + reg = exp->X_add_number; + if (reg >= REG_R0 && reg <= REG_R7) + INSERTU (opcode, reg - REG_R0, 21, 19); + else + { + as_bad ("Register must be R0--R7"); + ret = -1; + } + continue; + + case 'L': + if (operand->mode != M_REGISTER) + break; + reg = exp->X_add_number; + if (reg >= REG_R0 && reg <= REG_R7) + INSERTU (opcode, reg - REG_R0, 24, 22); + else + { + as_bad ("Register must be R0--R7"); + ret = -1; + } + continue; + + case 'M': + if (operand->mode != M_REGISTER) + break; + reg = exp->X_add_number; + if (reg == REG_R2 || reg == REG_R3) + INSERTU (opcode, reg - REG_R2, 22, 22); + else + { + as_bad ("Destination register must be R2 or R3"); + ret = -1; + } + continue; + + case 'N': + if (operand->mode != M_REGISTER) + break; + reg = exp->X_add_number; + if (reg == REG_R0 || reg == REG_R1) + INSERTU (opcode, reg - REG_R0, 23, 23); + else + { + as_bad ("Destination register must be R0 or R1"); + ret = -1; + } + continue; + + case 'O': + if (!IS_CPU_C4X (c4x_cpu)) + break; + if (operand->mode != M_INDIRECT) + break; + /* Require either *+ARn(disp) or *ARn. */ + if (operand->expr.X_add_number != 0 + && operand->expr.X_add_number != 0x18) + { + as_bad ("Invalid indirect addressing mode"); + ret = -1; + continue; + } + INSERTU (opcode, operand->aregno - REG_AR0, 10, 8); + INSERTU (opcode, operand->disp, 15, 11); + continue; + + case 'P': /* PC relative displacement. */ + /* Allow br label or br @label. */ + if (operand->mode != M_IMMED && operand->mode != M_DIRECT) + break; + if (exp->X_op == O_constant) + { + if (exp->X_add_number >= -32768 && exp->X_add_number <= 32767) + { + INSERTS (opcode, exp->X_add_number, 15, 0); + continue; + } + else + { + as_bad ("Displacement value of %ld is too large", + (long) exp->X_add_number); + ret = -1; + continue; + } + } + insn->reloc = BFD_RELOC_16_PCREL; + insn->pcrel = 1; + insn->exp = *exp; + continue; + + case 'Q': + if (operand->mode != M_REGISTER) + break; + reg = exp->X_add_number; + INSERTU (opcode, reg, 15, 0); + continue; + + case 'R': + if (operand->mode != M_REGISTER) + break; + reg = exp->X_add_number; + INSERTU (opcode, reg, 20, 16); + continue; + + case 'S': /* Short immediate int. */ + if (operand->mode != M_IMMED && operand->mode != M_HI) + break; + if (exp->X_op == O_big) + { + as_bad ("Floating point number not valid in expression"); + ret = -1; + continue; + } + if (exp->X_op == O_constant) + { + if (exp->X_add_number >= -32768 && exp->X_add_number <= 65535) + { + INSERTS (opcode, exp->X_add_number, 15, 0); + continue; + } + else + { + as_bad ("Signed immediate value %ld too large", + (long) exp->X_add_number); + ret = -1; + continue; + } + } + else if (exp->X_op == O_symbol) + { + if (operand->mode == M_HI) + { + insn->reloc = BFD_RELOC_HI16; + } + else + { + insn->reloc = BFD_RELOC_LO16; + } + insn->exp = *exp; + continue; + } + /* Handle cases like ldi foo - $, ar0 where foo + is a forward reference. Perhaps we should check + for X_op == O_symbol and disallow things like + ldi foo, ar0. */ + insn->reloc = BFD_RELOC_16; + insn->exp = *exp; + continue; + + case 'T': /* 5-bit immediate value for c4x stik. */ + if (!IS_CPU_C4X (c4x_cpu)) + break; + if (operand->mode != M_IMMED) + break; + if (exp->X_op == O_constant) + { + if (exp->X_add_number < 16 && exp->X_add_number >= -16) + { + INSERTS (opcode, exp->X_add_number, 20, 16); + continue; + } + else + { + as_bad ("Immediate value of %ld is too large", + (long) exp->X_add_number); + ret = -1; + continue; + } + } + break; /* No relocations allowed. */ + + case 'U': /* Unsigned integer immediate. */ + if (operand->mode != M_IMMED && operand->mode != M_HI) + break; + if (exp->X_op == O_constant) + { + if (exp->X_add_number < (1 << 16) && exp->X_add_number >= 0) + { + INSERTU (opcode, exp->X_add_number, 15, 0); + continue; + } + else + { + as_bad ("Unsigned immediate value %ld too large", + (long) exp->X_add_number); + ret = -1; + continue; + } + } + else if (exp->X_op == O_symbol) + { + if (operand->mode == M_HI) + insn->reloc = BFD_RELOC_HI16; + else + insn->reloc = BFD_RELOC_LO16; + + insn->exp = *exp; + continue; + } + insn->reloc = BFD_RELOC_16; + insn->exp = *exp; + continue; + + case 'V': /* Trap numbers (immediate field). */ + if (operand->mode != M_IMMED) + break; + if (exp->X_op == O_constant) + { + if (exp->X_add_number < 512 && IS_CPU_C4X (c4x_cpu)) + { + INSERTU (opcode, exp->X_add_number, 8, 0); + continue; + } + else if (exp->X_add_number < 32 && IS_CPU_C3X (c4x_cpu)) + { + INSERTU (opcode, exp->X_add_number | 0x20, 4, 0); + continue; + } + else + { + as_bad ("Immediate value of %ld is too large", + (long) exp->X_add_number); + ret = -1; + continue; + } + } + break; /* No relocations allowed. */ + + case 'W': /* Short immediate int (0--7). */ + if (!IS_CPU_C4X (c4x_cpu)) + break; + if (operand->mode != M_IMMED) + break; + if (exp->X_op == O_big) + { + as_bad ("Floating point number not valid in expression"); + ret = -1; + continue; + } + if (exp->X_op == O_constant) + { + if (exp->X_add_number >= -256 && exp->X_add_number <= 127) + { + INSERTS (opcode, exp->X_add_number, 7, 0); + continue; + } + else + { + as_bad ("Immediate value %ld too large", + (long) exp->X_add_number); + ret = -1; + continue; + } + } + insn->reloc = BFD_RELOC_16; + insn->exp = *exp; + continue; + + case 'X': /* Expansion register for c4x. */ + if (operand->mode != M_REGISTER) + break; + reg = exp->X_add_number; + if (reg >= REG_IVTP && reg <= REG_TVTP) + INSERTU (opcode, reg - REG_IVTP, 4, 0); + else + { + as_bad ("Register must be ivtp or tvtp"); + ret = -1; + } + continue; + + case 'Y': /* Address register for c4x lda. */ + if (operand->mode != M_REGISTER) + break; + reg = exp->X_add_number; + if (reg >= REG_AR0 && reg <= REG_SP) + INSERTU (opcode, reg, 20, 16); + else + { + as_bad ("Register must be address register"); + ret = -1; + } + continue; + + case 'Z': /* Expansion register for c4x. */ + if (operand->mode != M_REGISTER) + break; + reg = exp->X_add_number; + if (reg >= REG_IVTP && reg <= REG_TVTP) + INSERTU (opcode, reg - REG_IVTP, 20, 16); + else + { + as_bad ("Register must be ivtp or tvtp"); + ret = -1; + } + continue; + + case '*': + if (operand->mode != M_INDIRECT) + break; + INSERTS (opcode, operand->disp, 7, 0); + INSERTU (opcode, operand->aregno - REG_AR0, 10, 8); + INSERTU (opcode, operand->expr.X_add_number, 15, 11); + continue; + + case '|': /* treat as `,' if have ldi_ldi form. */ + if (insn->parallel) + { + if (--num_operands < 0) + break; /* Too few operands. */ + operand++; + if (operand->mode != M_PARALLEL) + break; + } + /* Fall through. */ + + case ',': /* Another operand. */ + if (--num_operands < 0) + break; /* Too few operands. */ + operand++; + exp = &operand->expr; + continue; + + case ';': /* Another optional operand. */ + if (num_operands == 1 || operand[1].mode == M_PARALLEL) + continue; + if (--num_operands < 0) + break; /* Too few operands. */ + operand++; + exp = &operand->expr; + continue; + + default: + BAD_CASE (*args); + } + return 0; + } +} + +void +c4x_insn_output (insn) + c4x_insn_t *insn; +{ + char *dst; + + /* Grab another fragment for opcode. */ + dst = frag_more (insn->nchars); + + /* Put out opcode word as a series of bytes in little endian order. */ + md_number_to_chars (dst, insn->opcode, insn->nchars); + + /* Put out the symbol-dependent stuff. */ + if (insn->reloc != NO_RELOC) + { + /* Where is the offset into the fragment for this instruction. */ + fix_new_exp (frag_now, + dst - frag_now->fr_literal, /* where */ + insn->nchars, /* size */ + &insn->exp, + insn->pcrel, + insn->reloc); + } +} + +/* Parse the operands. */ +int +c4x_operands_parse (s, operands, num_operands) + char *s; + c4x_operand_t *operands; + int num_operands; +{ + if (!*s) + return num_operands; + + do + s = c4x_operand_parse (s, &operands[num_operands++]); + while (num_operands < C4X_OPERANDS_MAX && *s++ == ','); + + if (num_operands > C4X_OPERANDS_MAX) + { + as_bad ("Too many operands scanned"); + return -1; + } + return num_operands; +} + +/* Assemble a single instruction. Its label has already been handled + by the generic front end. We just parse mnemonic and operands, and + produce the bytes of data and relocation. */ +void +md_assemble (str) + char *str; +{ + int ok = 0; + char *s; + int i; + int parsed = 0; + c4x_inst_t *inst; /* Instruction template. */ + + if (str && insn->parallel) + { + int star; + + /* Find mnemonic (second part of parallel instruction). */ + s = str; + /* Skip past instruction mnemonic. */ + while (*s && *s != ' ' && *s != '*') + s++; + star = *s == '*'; + if (*s) /* Null terminate for hash_find. */ + *s++ = '\0'; /* and skip past null. */ + strcat (insn->name, "_"); + strncat (insn->name, str, C4X_NAME_MAX - strlen (insn->name)); + + /* Kludge to overcome problems with scrubber removing + space between mnemonic and indirect operand (starting with *) + on second line of parallel instruction. */ + if (star) + *--s = '*'; + + insn->operands[insn->num_operands++].mode = M_PARALLEL; + + if ((i = c4x_operands_parse + (s, insn->operands, insn->num_operands)) < 0) + { + insn->parallel = 0; + insn->in_use = 0; + return; + } + insn->num_operands = i; + parsed = 1; + } + + if (insn->in_use) + { + if ((insn->inst = (struct c4x_inst *) + hash_find (c4x_op_hash, insn->name)) == NULL) + { + as_bad ("Unknown opcode `%s'.", insn->name); + insn->parallel = 0; + insn->in_use = 0; + return; + } + + /* FIXME: The list of templates should be scanned + for the candidates with the desired number of operands. + We shouldn't issue error messages until we have + whittled the list of candidate templates to the most + likely one... We could cache a parsed form of the templates + to reduce the time required to match a template. */ + + inst = insn->inst; + + do + ok = c4x_operands_match (inst, insn); + while (!ok && !strcmp (inst->name, inst[1].name) && inst++); + + if (ok > 0) + c4x_insn_output (insn); + else if (!ok) + as_bad ("Invalid operands for %s", insn->name); + else + as_bad ("Invalid instruction %s", insn->name); + } + + if (str && !parsed) + { + /* Find mnemonic. */ + s = str; + while (*s && *s != ' ') /* Skip past instruction mnemonic. */ + s++; + if (*s) /* Null terminate for hash_find. */ + *s++ = '\0'; /* and skip past null. */ + strncpy (insn->name, str, C4X_NAME_MAX - 3); + + if ((i = c4x_operands_parse (s, insn->operands, 0)) < 0) + { + insn->inst = NULL; /* Flag that error occured. */ + insn->parallel = 0; + insn->in_use = 0; + return; + } + insn->num_operands = i; + insn->in_use = 1; + } + else + insn->in_use = 0; + insn->parallel = 0; +} + +void +c4x_cleanup () +{ + if (insn->in_use) + md_assemble (NULL); +} + +/* Turn a string in input_line_pointer into a floating point constant + of type type, and store the appropriate bytes in *litP. The number + of LITTLENUMS emitted is stored in *sizeP. An error message is + returned, or NULL on OK. */ + +char * +md_atof (type, litP, sizeP) + int type; + char *litP; + int *sizeP; +{ + int prec; + int ieee; + LITTLENUM_TYPE words[MAX_LITTLENUMS]; + LITTLENUM_TYPE *wordP; + unsigned char *t; + + switch (type) + { + case 's': /* .single */ + case 'S': + ieee = 0; + prec = 1; + break; + + case 'd': /* .double */ + case 'D': + case 'f': /* .float or .single */ + case 'F': + ieee = 0; + prec = 2; /* 1 32-bit word */ + break; + + case 'i': /* .ieee */ + prec = 2; + ieee = 1; + break; + + case 'l': /* .ldouble */ + prec = 4; /* 2 32-bit words */ + ieee = 1; + break; + + default: + *sizeP = 0; + return "Bad call to md_atof()"; + } + + if (ieee) + t = atof_ieee (input_line_pointer, type, words); + else + t = c4x_atof (input_line_pointer, type, words); + if (t) + input_line_pointer = t; + *sizeP = prec * sizeof (LITTLENUM_TYPE); + t = litP; + /* This loops outputs the LITTLENUMs in REVERSE order; in accord with + little endian byte order. */ + for (wordP = words + prec - 1; prec--;) + { + md_number_to_chars (litP, (valueT) (*wordP--), + sizeof (LITTLENUM_TYPE)); + litP += sizeof (LITTLENUM_TYPE); + } + return 0; +} + +void +md_apply_fix3 (fixP, value, seg) + fixS *fixP; + valueT *value; + segT seg ATTRIBUTE_UNUSED; +{ + char *buf = fixP->fx_where + fixP->fx_frag->fr_literal; + valueT val = *value; + + switch (fixP->fx_r_type) + { + case BFD_RELOC_HI16: + val >>= 16; + break; + + case BFD_RELOC_LO16: + val &= 0xffff; + break; + default: + break; + } + + switch (fixP->fx_r_type) + { + case BFD_RELOC_32: + buf[3] = val >> 24; + case BFD_RELOC_24: + case BFD_RELOC_24_PCREL: + buf[2] = val >> 16; + case BFD_RELOC_16: + case BFD_RELOC_16_PCREL: + case BFD_RELOC_LO16: + case BFD_RELOC_HI16: + buf[1] = val >> 8; + buf[0] = val; + break; + + case NO_RELOC: + default: + as_bad ("Bad relocation type: 0x%02x", fixP->fx_r_type); + break; + } + + if (fixP->fx_addsy == NULL && fixP->fx_pcrel == 0) fixP->fx_done = 1; +} + +/* Should never be called for c4x. */ +void +md_convert_frag (headers, sec, fragP) + bfd *headers ATTRIBUTE_UNUSED; + segT sec ATTRIBUTE_UNUSED; + fragS *fragP ATTRIBUTE_UNUSED; +{ + as_fatal ("md_convert_frag"); +} + +/* Should never be called for c4x. */ +void +md_create_short_jump (ptr, from_addr, to_addr, frag, to_symbol) + char *ptr ATTRIBUTE_UNUSED; + addressT from_addr ATTRIBUTE_UNUSED; + addressT to_addr ATTRIBUTE_UNUSED; + fragS *frag ATTRIBUTE_UNUSED; + symbolS *to_symbol ATTRIBUTE_UNUSED; +{ + as_fatal ("md_create_short_jmp\n"); +} + +/* Should never be called for c4x. */ +void +md_create_long_jump (ptr, from_addr, to_addr, frag, to_symbol) + char *ptr ATTRIBUTE_UNUSED; + addressT from_addr ATTRIBUTE_UNUSED; + addressT to_addr ATTRIBUTE_UNUSED; + fragS *frag ATTRIBUTE_UNUSED; + symbolS *to_symbol ATTRIBUTE_UNUSED; +{ + as_fatal ("md_create_long_jump\n"); +} + +/* Should never be called for c4x. */ +int +md_estimate_size_before_relax (fragP, segtype) + register fragS *fragP ATTRIBUTE_UNUSED; + segT segtype ATTRIBUTE_UNUSED; +{ + as_fatal ("md_estimate_size_before_relax\n"); + return 0; +} + +CONST char *md_shortopts = "bm:prs"; +struct option md_longopts[] = +{ + {NULL, no_argument, NULL, 0} +}; + +size_t md_longopts_size = sizeof (md_longopts); + +int +md_parse_option (c, arg) + int c; + char *arg; +{ + switch (c) + { + case 'b': /* big model */ + c4x_big_model = 1; + break; + case 'm': /* -m[c][34]x */ + if (tolower (*arg) == 'c') + arg++; + c4x_cpu = atoi (arg); + if (!IS_CPU_C3X (c4x_cpu) && !IS_CPU_C4X (c4x_cpu)) + as_warn ("Unsupported processor generation %d\n", c4x_cpu); + break; + case 'p': /* push args */ + c4x_reg_args = 0; + break; + case 'r': /* register args */ + c4x_reg_args = 1; + break; + case 's': /* small model */ + c4x_big_model = 0; + break; + default: + return 0; + } + + return 1; +} + +void +md_show_usage (stream) + FILE *stream; +{ + fputs ("\ +C[34]x options:\n\ +-m30 | -m31 | -m32 | -m40 | -m44\n\ + specify variant of architecture\n\ +-b big memory model\n\ +-p pass arguments on stack\n\ +-r pass arguments in registers (default)\n\ +-s small memory model (default)\n", + stream); +} + +/* This is called when a line is unrecognized. This is used to handle + definitions of TI C3x tools style local labels $n where n is a single + decimal digit. */ +int +c4x_unrecognized_line (c) + int c; +{ + int lab; + char *s; + + if (c != '$' || !isdigit (input_line_pointer[0])) + return 0; + + s = input_line_pointer; + + /* Let's allow multiple digit local labels. */ + lab = 0; + while (isdigit (*s)) + { + lab = lab * 10 + *s - '0'; + s++; + } + + if (dollar_label_defined (lab)) + { + as_bad ("Label \"$%d\" redefined", lab); + return 0; + } + + define_dollar_label (lab); + colon (dollar_label_name (lab, 0)); + input_line_pointer = s + 1; + + return 1; +} + +/* Handle local labels peculiar to us referred to in an expression. */ +symbolS * +md_undefined_symbol (name) + char *name; +{ + /* Look for local labels of the form $n. */ + if (name[0] == '$' && isdigit (name[1])) + { + symbolS *symbolP; + char *s = name + 1; + int lab = 0; + + while (isdigit ((unsigned char) *s)) + { + lab = lab * 10 + *s - '0'; + s++; + } + if (dollar_label_defined (lab)) + { + name = dollar_label_name (lab, 0); + symbolP = symbol_find (name); + } + else + { + name = dollar_label_name (lab, 1); + symbolP = symbol_find_or_make (name); + } + + return symbolP; + } + return NULL; +} + +/* Parse an operand that is machine-specific. */ +void +md_operand (expressionP) + expressionS *expressionP ATTRIBUTE_UNUSED; +{ +} + +/* Round up a section size to the appropriate boundary---do we need this? */ +valueT +md_section_align (segment, size) + segT segment ATTRIBUTE_UNUSED; + valueT size; +{ + return size; /* Byte (i.e., 32-bit) alignment is fine? */ +} + +static int +c4x_pc_offset (op) + unsigned int op; +{ + /* Determine the PC offset for a C[34]x instruction. + This could be simplified using some boolean algebra + but at the expense of readability. */ + switch (op >> 24) + { + case 0x60: /* br */ + case 0x62: /* call (C4x) */ + case 0x64: /* rptb (C4x) */ + return 1; + case 0x61: /* brd */ + case 0x63: /* laj */ + case 0x65: /* rptbd (C4x) */ + return 3; + case 0x66: /* swi */ + case 0x67: + return 0; + default: + break; + } + + switch ((op & 0xffe00000) >> 20) + { + case 0x6a0: /* bB */ + case 0x720: /* callB */ + case 0x740: /* trapB */ + return 1; + + case 0x6a2: /* bBd */ + case 0x6a6: /* bBat */ + case 0x6aa: /* bBaf */ + case 0x722: /* lajB */ + case 0x748: /* latB */ + case 0x798: /* rptbd */ + return 3; + + default: + break; + } + + switch ((op & 0xfe200000) >> 20) + { + case 0x6e0: /* dbB */ + return 1; + + case 0x6e2: /* dbBd */ + return 3; + + default: + break; + } + + return 0; +} + +/* Exactly what point is a PC-relative offset relative TO? + With the C3x we have the following: + DBcond, Bcond disp + PC + 1 => PC + DBcondD, BcondD disp + PC + 3 => PC + */ +long +md_pcrel_from (fixP) + fixS *fixP; +{ + unsigned char *buf = fixP->fx_where + fixP->fx_frag->fr_literal; + unsigned int op; + + op = (buf[3] << 24) | (buf[2] << 16) | (buf[1] << 8) | buf[0]; + + return ((fixP->fx_where + fixP->fx_frag->fr_address) >> 2) + + c4x_pc_offset (op); +} + +/* This is probably not necessary, if we have played our cards right, + since everything should be already aligned on a 4-byte boundary. */ +int +c4x_do_align (alignment, fill, len, max) + int alignment ATTRIBUTE_UNUSED; + const char *fill ATTRIBUTE_UNUSED; + int len ATTRIBUTE_UNUSED; + int max ATTRIBUTE_UNUSED; +{ + char *p; + + p = frag_var (rs_align, 1, 1, (relax_substateT) 0, + (symbolS *) 0, (long) 2, (char *) 0); + + /* We could use frag_align_pattern (n, nop_pattern, sizeof (nop_pattern)); + to fill with our 32-bit nop opcode. */ + return 1; +} + +/* Look for and remove parallel instruction operator ||. */ +void +c4x_start_line () +{ + char *s = input_line_pointer; + + SKIP_WHITESPACE (); + + /* If parallel instruction prefix found at start of line, skip it. */ + if (*input_line_pointer == '|' && input_line_pointer[1] == '|') + { + if (insn->in_use) + { + insn->parallel = 1; + input_line_pointer += 2; + /* So line counters get bumped. */ + input_line_pointer[-1] = '\n'; + } + } + else + { + if (insn->in_use) + md_assemble (NULL); + input_line_pointer = s; + } +} + +arelent * +tc_gen_reloc (seg, fixP) + asection *seg ATTRIBUTE_UNUSED; + fixS *fixP; +{ + arelent *reloc; + + reloc = (arelent *) xmalloc (sizeof (arelent)); + + reloc->sym_ptr_ptr = (asymbol **) xmalloc (sizeof (asymbol *)); + *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixP->fx_addsy); + reloc->address = fixP->fx_frag->fr_address + fixP->fx_where; + reloc->address /= OCTETS_PER_BYTE; + reloc->howto = bfd_reloc_type_lookup (stdoutput, fixP->fx_r_type); + if (reloc->howto == (reloc_howto_type *) NULL) + { + as_bad_where (fixP->fx_file, fixP->fx_line, + "reloc %d not supported by object file format", + (int) fixP->fx_r_type); + return NULL; + } + + if (fixP->fx_r_type == BFD_RELOC_HI16) + reloc->addend = fixP->fx_offset; + else + reloc->addend = fixP->fx_addnumber; + + return reloc; +} diff -uprN binutils-2.13.90.0.4/gas/config/tc-tic4x.h binutils-2.13.90.0.10/gas/config/tc-tic4x.h --- binutils-2.13.90.0.4/gas/config/tc-tic4x.h Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/gas/config/tc-tic4x.h Fri Sep 27 08:33:09 2002 @@ -0,0 +1,98 @@ +/* tc-tic4x.h -- Assemble for the Texas TMS320C[34]X. + Copyright (C) 1997, 2002 Free Software Foundation. + + Contributed by Michael P. Hayes (m.hayes@elec.canterbury.ac.nz) + + This file is part of GAS, the GNU Assembler. + + GAS is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + GAS is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with GAS; see the file COPYING. If not, write to + the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#define TC_TIC4X +#define C4X + +#ifndef BFD_ASSEMBLER +#error TMS320C4x requires BFD_ASSEMBLER +#endif + +#define TARGET_ARCH bfd_arch_tic4x + +#define WORKING_DOT_WORD + +/* There are a number of different formats used for local labels. gas + expects local labels either of the form `10$:' or `n:', where n is + a single digit. When LOCAL_LABEL_DOLLARS is defined labels of the + form `10$:' are expected. When LOCAL_LABEL_FB is defined labels of + the form `n:' are expected. The latter are expected to be referred + to using `nf' for a forward reference of `nb' for a backward + reference. + + The local labels expected by the TI tools are of the form `$n:', + where the colon is optional. Now the $ character is considered to + be valid symbol name character, so gas doesn't recognise our local + symbols by default. Defining LEX_DOLLAR to be 1 means that gas + won't allow labels starting with $ and thus the hook + tc_unrecognized_line() will be called from read.c. We can thus + parse lines starting with $n as having local labels. + + The other problem is the forward reference of local labels. If a + symbol is undefined, symbol_make() calls the md_undefined_symbol() + hook where we create a local label if recognised. */ + +/* Don't stick labels starting with 'L' into symbol table of COFF file. */ +#define LOCAL_LABEL(name) ((name)[0] == '$' || (name)[0] == 'L') + +#define TARGET_BYTES_BIG_ENDIAN 0 +#define OCTETS_PER_BYTE_POWER 2 + +#define TARGET_ARCH bfd_arch_tic4x +#define BFD_ARCH TARGET_ARCH + +#define TC_COUNT_RELOC(x) (x->fx_addsy) +#define TC_CONS_RELOC RELOC_32 +#define TC_COFF_FIX2RTYPE(fixP) tc_coff_fix2rtype (fixP) +#define TC_COFF_SIZEMACHDEP(frag) tc_coff_sizemachdep (frag) +#define NEED_FX_R_TYPE + +#define reloc_type int + +#define NO_RELOC 0 + +/* Labels are not required to have a colon for a suffix. */ +#define LABELS_WITHOUT_COLONS 1 + +/* Use $ as the section program counter (SPC). */ +#define DOLLAR_DOT + +/* Accept numbers with a suffix, e.g. 0ffffh, 1010b. */ +#define NUMBERS_WITH_SUFFIX 1 + +extern int c4x_unrecognized_line PARAMS ((int)); +#define tc_unrecognized_line(c) c4x_unrecognized_line (c) + +#define md_number_to_chars number_to_chars_littleendian + +extern int c4x_do_align PARAMS ((int, const char *, int, int)); +#define md_do_align(n,fill,len,max,l) if (c4x_do_align (n,fill,len,max)) goto l + +/* Start of line hook to remove parallel instruction operator || */ +extern void c4x_start_line PARAMS ((void)); +#define md_start_line_hook() c4x_start_line() + +extern void c4x_cleanup PARAMS ((void)); +#define md_cleanup() c4x_cleanup() + +extern void c4x_end PARAMS ((void)); +#define md_end() c4x_end() + diff -uprN binutils-2.13.90.0.4/gas/config/tc-v850.c binutils-2.13.90.0.10/gas/config/tc-v850.c --- binutils-2.13.90.0.4/gas/config/tc-v850.c Thu Aug 1 17:49:32 2002 +++ binutils-2.13.90.0.10/gas/config/tc-v850.c Fri Sep 27 08:33:09 2002 @@ -78,6 +78,8 @@ const relax_typeS md_relax_table[] = { {0x1fffff, -0x200000, 4, 0}, }; +static int v850_relax = 0; + /* Fixups. */ #define MAX_INSN_FIXUPS (5) struct v850_fixup { @@ -191,12 +193,12 @@ static void v850_offset (ignore) int ignore ATTRIBUTE_UNUSED; { + char *pfrag; int temp = get_absolute_expression (); - - temp -= frag_now_fix (); - - if (temp > 0) - (void) frag_more (temp); + + pfrag = frag_var (rs_org, 1, 1, (relax_substateT)0, (symbolS *)0, + (offsetT) temp, (char *) 0); + *pfrag = 0; demand_empty_rest_of_line (); } @@ -394,7 +396,13 @@ v850_comm (area) } else { + segT old_sec; + int old_subsec; + allocate_common: + old_sec = now_seg; + old_subsec = now_subseg; + S_SET_VALUE (symbolP, (valueT) size); S_SET_ALIGN (symbolP, temp); S_SET_EXTERNAL (symbolP); @@ -411,6 +419,9 @@ v850_comm (area) default: abort (); } + + obj_elf_section_change_hook (); + subseg_set (old_sec, old_subsec); } } else @@ -468,10 +479,45 @@ set_machine (number) { case 0: processor_mask = PROCESSOR_V850; break; case bfd_mach_v850e: processor_mask = PROCESSOR_V850E; break; - case bfd_mach_v850ea: processor_mask = PROCESSOR_V850EA; break; } } +static void v850_longcode PARAMS ((int)); + +static void +v850_longcode (type) + int type; +{ + expressionS ex; + + if (! v850_relax) + { + if (type == 1) + as_warn (".longcall pseudo-op seen when not relaxing"); + else + as_warn (".longjump pseudo-op seen when not relaxing"); + } + + expression (&ex); + + if (ex.X_op != O_symbol || ex.X_add_number != 0) + { + as_bad ("bad .longcall format"); + ignore_rest_of_line (); + + return; + } + + if (type == 1) + fix_new_exp (frag_now, frag_now_fix (), 4, & ex, 1, + BFD_RELOC_V850_LONGCALL); + else + fix_new_exp (frag_now, frag_now_fix (), 4, & ex, 1, + BFD_RELOC_V850_LONGJUMP); + + demand_empty_rest_of_line (); +} + /* The target specific pseudo-ops which we support. */ const pseudo_typeS md_pseudo_table[] = { { "sdata", v850_seg, SDATA_SECTION }, @@ -492,9 +538,10 @@ const pseudo_typeS md_pseudo_table[] = { { "call_table_data", v850_seg, CALL_TABLE_DATA_SECTION }, { "call_table_text", v850_seg, CALL_TABLE_TEXT_SECTION }, { "v850e", set_machine, bfd_mach_v850e }, - { "v850ea", set_machine, bfd_mach_v850ea }, - { "file", dwarf2_directive_file, 0 }, + { "file", (void (*) PARAMS ((int))) dwarf2_directive_file, 0 }, { "loc", dwarf2_directive_loc, 0 }, + { "longcall", v850_longcode, 1 }, + { "longjump", v850_longcode, 2 }, { NULL, NULL, 0 } }; @@ -1103,8 +1150,9 @@ md_show_usage (stream) fprintf (stream, _(" -mwarn-unsigned-overflow Warn if unsigned immediate values overflow\n")); fprintf (stream, _(" -mv850 The code is targeted at the v850\n")); fprintf (stream, _(" -mv850e The code is targeted at the v850e\n")); - fprintf (stream, _(" -mv850ea The code is targeted at the v850ea\n")); fprintf (stream, _(" -mv850any The code is generic, despite any processor specific instructions\n")); + fprintf (stream, _(" -mrelax Enable relaxation\n")); + } int @@ -1138,19 +1186,16 @@ md_parse_option (c, arg) machine = bfd_mach_v850e; processor_mask = PROCESSOR_V850E; } - else if (strcmp (arg, "v850ea") == 0) - { - machine = bfd_mach_v850ea; - processor_mask = PROCESSOR_V850EA; - } else if (strcmp (arg, "v850any") == 0) { /* Tell the world that this is for any v850 chip. */ machine = 0; /* But support instructions for the extended versions. */ - processor_mask = PROCESSOR_V850EA; + processor_mask = PROCESSOR_V850E; } + else if (strcmp (arg, "relax") == 0) + v850_relax = 1; else { /* xgettext:c-format */ @@ -1275,17 +1320,9 @@ void md_begin () { char *prev_name = ""; - register const struct v850_opcode *op; - - if (strncmp (TARGET_CPU, "v850ea", 6) == 0) - { - if (machine == -1) - machine = bfd_mach_v850ea; + const struct v850_opcode *op; - if (processor_mask == -1) - processor_mask = PROCESSOR_V850EA; - } - else if (strncmp (TARGET_CPU, "v850e", 5) == 0) + if (strncmp (TARGET_CPU, "v850e", 5) == 0) { if (machine == -1) machine = bfd_mach_v850e; @@ -1750,8 +1787,7 @@ md_assemble (str) extra_data_after_insn = true; extra_data_len = 4; - extra_data = ex.X_add_number; - ex.X_add_number = 0; + extra_data = 0; break; default: @@ -1952,13 +1988,13 @@ md_assemble (str) { expression (&ex); /* Special case: - If we are assembling a MOV instruction (or a CALLT.... :-) - and the immediate value does not fit into the bits - available then create a fake error so that the next MOV - instruction will be selected. This one has a 32 bit - immediate field. */ + If we are assembling a MOV instruction and the immediate + value does not fit into the bits available then create a + fake error so that the next MOV instruction will be + selected. This one has a 32 bit immediate field. */ if (((insn & 0x07e0) == 0x0200) + && operand->bits == 5 /* Do not match the CALLT instruction. */ && ex.X_op == O_constant && (ex.X_add_number < (-(1 << (operand->bits - 1))) || ex.X_add_number > ((1 << (operand->bits - 1)) - 1))) @@ -2215,12 +2251,32 @@ tc_gen_reloc (seg, fixp) if (fixp->fx_r_type == BFD_RELOC_VTABLE_ENTRY || fixp->fx_r_type == BFD_RELOC_VTABLE_INHERIT) reloc->addend = fixp->fx_offset; + else if ( fixp->fx_r_type == BFD_RELOC_V850_LONGCALL + || fixp->fx_r_type == BFD_RELOC_V850_LONGJUMP + || fixp->fx_r_type == BFD_RELOC_V850_ALIGN) + reloc->addend = fixp->fx_offset; else reloc->addend = fixp->fx_addnumber; return reloc; } +void +v850_handle_align (frag) + fragS * frag; +{ + if (v850_relax + && frag->fr_type == rs_align + && frag->fr_address + frag->fr_fix > 0 + && frag->fr_offset > 1 + && now_seg != bss_section + && now_seg != v850_seg_table[SBSS_SECTION].s + && now_seg != v850_seg_table[TBSS_SECTION].s + && now_seg != v850_seg_table[ZBSS_SECTION].s) + fix_new (frag, frag->fr_fix, 2, & abs_symbol, frag->fr_offset, 0, + BFD_RELOC_V850_ALIGN); +} + /* Return current size of variable part of frag. */ int @@ -2261,6 +2317,8 @@ md_apply_fix3 (fixP, valueP, seg) char *where; if (fixP->fx_r_type == BFD_RELOC_VTABLE_INHERIT + || fixP->fx_r_type == BFD_RELOC_V850_LONGCALL + || fixP->fx_r_type == BFD_RELOC_V850_LONGJUMP || fixP->fx_r_type == BFD_RELOC_VTABLE_ENTRY) { fixP->fx_done = 0; @@ -2268,10 +2326,11 @@ md_apply_fix3 (fixP, valueP, seg) } if (fixP->fx_addsy == (symbolS *) NULL) + fixP->fx_addnumber = value, fixP->fx_done = 1; else if (fixP->fx_pcrel) - ; + fixP->fx_addnumber = fixP->fx_offset; else { @@ -2287,6 +2346,7 @@ md_apply_fix3 (fixP, valueP, seg) _("expression too complex")); } } + fixP->fx_addnumber = value; } if ((int) fixP->fx_r_type >= (int) BFD_RELOC_UNUSED) @@ -2345,8 +2405,6 @@ md_apply_fix3 (fixP, valueP, seg) else if (fixP->fx_size == 4) bfd_putl32 (value, (unsigned char *) where); } - - fixP->fx_addnumber = value; } /* Parse a cons expression. We have to handle hi(), lo(), etc @@ -2399,14 +2457,6 @@ v850_fix_adjustable (fixP) if (fixP->fx_addsy == NULL) return 1; - /* Prevent all adjustments to global symbols. */ - if (S_IS_EXTERN (fixP->fx_addsy)) - return 0; - - /* Similarly for weak symbols. */ - if (S_IS_WEAK (fixP->fx_addsy)) - return 0; - /* Don't adjust function names. */ if (S_IS_FUNCTION (fixP->fx_addsy)) return 0; @@ -2423,12 +2473,21 @@ int v850_force_relocation (fixP) struct fix *fixP; { - if (fixP->fx_addsy && S_IS_WEAK (fixP->fx_addsy)) - return 1; - if (fixP->fx_r_type == BFD_RELOC_VTABLE_INHERIT || fixP->fx_r_type == BFD_RELOC_VTABLE_ENTRY) return 1; - return 0; + if (fixP->fx_r_type == BFD_RELOC_V850_LONGCALL + || fixP->fx_r_type == BFD_RELOC_V850_LONGJUMP) + return 1; + + if (v850_relax + && (fixP->fx_pcrel + || fixP->fx_r_type == BFD_RELOC_V850_ALIGN + || fixP->fx_r_type == BFD_RELOC_V850_22_PCREL + || fixP->fx_r_type == BFD_RELOC_V850_9_PCREL + || fixP->fx_r_type >= BFD_RELOC_UNUSED)) + return 1; + + return S_FORCE_RELOC (fixP->fx_addsy); } diff -uprN binutils-2.13.90.0.4/gas/config/tc-v850.h binutils-2.13.90.0.10/gas/config/tc-v850.h --- binutils-2.13.90.0.4/gas/config/tc-v850.h Sun May 26 09:57:12 2002 +++ binutils-2.13.90.0.10/gas/config/tc-v850.h Fri Sep 27 08:33:09 2002 @@ -37,16 +37,15 @@ #define md_operand(x) -#define obj_fix_adjustable(fixP) v850_fix_adjustable(fixP) +#define tc_fix_adjustable(FIX) v850_fix_adjustable (FIX) extern boolean v850_fix_adjustable PARAMS ((struct fix *)); -#define TC_FORCE_RELOCATION(fixp) v850_force_relocation(fixp) +#define TC_FORCE_RELOCATION(FIX) v850_force_relocation(FIX) extern int v850_force_relocation PARAMS ((struct fix *)); #ifdef OBJ_ELF -/* This arranges for gas/write.c to not apply a relocation if - obj_fix_adjustable() says it is not adjustable. */ -#define TC_FIX_ADJUSTABLE(fixP) obj_fix_adjustable (fixP) +/* Values passed to md_apply_fix3 don't include the symbol value. */ +#define MD_APPLY_SYM_VALUE(FIX) 0 #endif /* Permit temporary numeric labels. */ @@ -70,6 +69,11 @@ extern void cons_fix_new_v850 PARAMS ((f #define TC_GENERIC_RELAX_TABLE md_relax_table extern const struct relax_type md_relax_table[]; +/* When relaxing, we need to generate + relocations for alignment directives. */ +#define HANDLE_ALIGN(frag) v850_handle_align (frag) +extern void v850_handle_align PARAMS ((fragS *)); + /* This section must be in the small data area (pointed to by GP). */ #define SHF_V850_GPREL 0x10000000 /* This section must be in the tiny data area (pointed to by EP). */ @@ -92,7 +96,7 @@ extern const struct relax_type md_relax_ { ".call_table_data", SHT_PROGBITS, SHF_ALLOC + SHF_WRITE }, \ { ".call_table_text", SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_EXECINSTR }, -#define MD_PCREL_FROM_SECTION(fixP,section) v850_pcrel_from_section (fixP, section) +#define MD_PCREL_FROM_SECTION(FIX, SEC) v850_pcrel_from_section (FIX, SEC) extern long v850_pcrel_from_section PARAMS ((struct fix *, asection *)); #define DWARF2_LINE_MIN_INSN_LENGTH 2 diff -uprN binutils-2.13.90.0.4/gas/config/tc-vax.c binutils-2.13.90.0.10/gas/config/tc-vax.c --- binutils-2.13.90.0.4/gas/config/tc-vax.c Sat Jun 8 20:44:53 2002 +++ binutils-2.13.90.0.10/gas/config/tc-vax.c Wed Oct 2 10:17:19 2002 @@ -1244,12 +1244,11 @@ md_estimate_size_before_relax (fragP, se old_fr_fix = fragP->fr_fix; p = fragP->fr_literal + old_fr_fix; #ifdef OBJ_ELF - /* - * If this is to undefined symbol, then if it's an indirect - * reference indicate that is can mutated into a GLOB_DAT - * by the loader. We restrict ourselves to no offset due to - * a limitation in the NetBSD linker. - */ + /* If this is to an undefined symbol, then if it's an indirect + reference indicate that is can mutated into a GLOB_DAT or + JUMP_SLOT by the loader. We restrict ourselves to no offset + due to a limitation in the NetBSD linker. */ + if (GOT_symbol == NULL) GOT_symbol = symbol_find (GLOBAL_OFFSET_TABLE_NAME); if (PLT_symbol == NULL) @@ -1257,6 +1256,7 @@ md_estimate_size_before_relax (fragP, se if ((GOT_symbol == NULL || fragP->fr_symbol != GOT_symbol) && (PLT_symbol == NULL || fragP->fr_symbol != PLT_symbol) && fragP->fr_symbol != NULL + && flag_want_pic && (!S_IS_DEFINED (fragP->fr_symbol) || S_IS_WEAK (fragP->fr_symbol) || S_IS_EXTERNAL (fragP->fr_symbol))) @@ -1269,7 +1269,6 @@ md_estimate_size_before_relax (fragP, se } else { - if (((unsigned char *) fragP->fr_opcode)[0] == VAX_CALLS || ((unsigned char *) fragP->fr_opcode)[0] == VAX_CALLG || ((unsigned char *) fragP->fr_opcode)[0] == VAX_JSB diff -uprN binutils-2.13.90.0.4/gas/config/tc-vax.h binutils-2.13.90.0.10/gas/config/tc-vax.h --- binutils-2.13.90.0.4/gas/config/tc-vax.h Sat Jun 8 20:44:53 2002 +++ binutils-2.13.90.0.10/gas/config/tc-vax.h Fri Sep 27 08:33:09 2002 @@ -1,5 +1,5 @@ /* tc-vax.h -- Header file for tc-vax.c. - Copyright 1987, 1991, 1992, 1993, 1995, 1996, 1997, 2000 + Copyright 1987, 1991, 1992, 1993, 1995, 1996, 1997, 2000, 2002 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -59,28 +59,15 @@ long md_chars_to_number PARAMS ((unsigne extern const struct relax_type md_relax_table[]; #define TC_GENERIC_RELAX_TABLE md_relax_table -/* This expression evaluates to false if the relocation is for a local object - for which we still want to do the relocation at runtime. True if we - are willing to perform this relocation while building the .o file. If - the reloc is against an externally visible symbol, then the assembler - should never do the relocation. */ - #ifdef BFD_ASSEMBLER -#define TC_RELOC_RTSYM_LOC_FIXUP(FIX) \ - ((FIX)->fx_addsy == NULL \ - || (! S_IS_EXTERNAL ((FIX)->fx_addsy) \ - && ! S_IS_WEAK ((FIX)->fx_addsy) \ - && S_IS_DEFINED ((FIX)->fx_addsy) \ - && ! S_IS_COMMON ((FIX)->fx_addsy))) -#define TC_FIX_ADJUSTABLE(FIX) \ - (!symbol_used_in_reloc_p ((FIX)) && tc_fix_adjustable ((FIX))) +/* Values passed to md_apply_fix3 don't include symbol values. */ +#define MD_APPLY_SYM_VALUE(FIX) 0 + #define tc_fix_adjustable(FIX) \ ((FIX)->fx_r_type != BFD_RELOC_VTABLE_INHERIT \ && (FIX)->fx_r_type != BFD_RELOC_32_PLT_PCREL \ && (FIX)->fx_r_type != BFD_RELOC_32_GOT_PCREL \ && (FIX)->fx_r_type != BFD_RELOC_VTABLE_ENTRY \ - && ! S_IS_EXTERNAL ((FIX)->fx_addsy) \ - && ! S_IS_WEAK ((FIX)->fx_addsy) \ && ((FIX)->fx_pcrel \ || ((FIX)->fx_subsy != NULL \ && (S_GET_SEGMENT ((FIX)->fx_subsy) \ diff -uprN binutils-2.13.90.0.4/gas/config/tc-w65.c binutils-2.13.90.0.10/gas/config/tc-w65.c --- binutils-2.13.90.0.4/gas/config/tc-w65.c Sat Jun 8 20:44:53 2002 +++ binutils-2.13.90.0.10/gas/config/tc-w65.c Fri Sep 27 08:33:09 2002 @@ -846,7 +846,7 @@ md_parse_option (c, a) int c; char *a; { - return 1; + return 0; } void @@ -980,7 +980,7 @@ md_section_align (seg, size) void md_apply_fix3 (fixP, valP, seg) fixS *fixP; - vauleT * valP; + valueT * valP; segT seg ATTRIBUTE_UNUSED; { long val = * (long *) valP; diff -uprN binutils-2.13.90.0.4/gas/config/tc-w65.h binutils-2.13.90.0.10/gas/config/tc-w65.h --- binutils-2.13.90.0.4/gas/config/tc-w65.h Thu Jul 26 18:02:55 2001 +++ binutils-2.13.90.0.10/gas/config/tc-w65.h Fri Sep 27 08:33:09 2002 @@ -1,5 +1,5 @@ /* This file is tc-w65.h - Copyright 1995, 1997, 1998, 2000 Free Software Foundation, Inc. + Copyright 1995, 1997, 1998, 2000, 2002 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -24,6 +24,7 @@ #if ANSI_PROTOTYPES struct internal_reloc; +struct fix; #endif #define WORKING_DOT_WORD diff -uprN binutils-2.13.90.0.4/gas/config/tc-xstormy16.c binutils-2.13.90.0.10/gas/config/tc-xstormy16.c --- binutils-2.13.90.0.4/gas/config/tc-xstormy16.c Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.10/gas/config/tc-xstormy16.c Fri Sep 27 08:33:09 2002 @@ -379,8 +379,10 @@ xstormy16_force_relocation (fix) return 1; default: - return 0; + break; } + + return S_FORCE_RELOC (fix->fx_addsy); } /* Return true if a relocation against a symbol may be replaced with @@ -390,22 +392,15 @@ boolean xstormy16_fix_adjustable (fixP) fixS * fixP; { - if (fixP->fx_addsy == NULL) - return 1; - - /* Prevent all adjustments to global symbols. */ - if (S_IS_EXTERN (fixP->fx_addsy)) - return 0; - - if (S_IS_WEAK (fixP->fx_addsy)) - return 0; - /* We need the symbol name for the VTABLE entries. */ - if ( fixP->fx_r_type == BFD_RELOC_VTABLE_INHERIT + if (fixP->fx_r_type == BFD_RELOC_VTABLE_INHERIT || fixP->fx_r_type == BFD_RELOC_VTABLE_ENTRY) return 0; - return ! xstormy16_force_relocation (fixP); + if (fixP->fx_r_type == BFD_RELOC_XSTORMY16_FPTR16) + return 0; + + return 1; } /* This is a copy of gas_cgen_md_apply_fix3, with some enhancements to @@ -418,7 +413,7 @@ xstormy16_md_apply_fix3 (fixP, valueP, s segT seg ATTRIBUTE_UNUSED; { char *where = fixP->fx_frag->fr_literal + fixP->fx_where; - valueT value; + valueT value = *valueP; /* Canonical name, since used a lot. */ CGEN_CPU_DESC cd = gas_cgen_cpu_desc; @@ -447,39 +442,12 @@ xstormy16_md_apply_fix3 (fixP, valueP, s break; } - /* FIXME FIXME FIXME: The value we are passed in *valuep includes - the symbol values. Since we are using BFD_ASSEMBLER, if we are - doing this relocation the code in write.c is going to call - bfd_install_relocation, which is also going to use the symbol - value. That means that if the reloc is fully resolved we want to - use *valuep since bfd_install_relocation is not being used. - However, if the reloc is not fully resolved we do not want to use - *valuep, and must use fx_offset instead. However, if the reloc - is PC relative, we do want to use *valuep since it includes the - result of md_pcrel_from. This is confusing. */ - if (fixP->fx_addsy == (symbolS *) NULL) - { - value = *valueP; - fixP->fx_done = 1; - } - else if (fixP->fx_pcrel) - value = *valueP; - else - { - value = fixP->fx_offset; - if (fixP->fx_subsy != (symbolS *) NULL) - { - if (S_GET_SEGMENT (fixP->fx_subsy) == absolute_section) - value -= S_GET_VALUE (fixP->fx_subsy); - else - { - /* We don't actually support subtracting a symbol. */ - as_bad_where (fixP->fx_file, fixP->fx_line, - _("expression too complex")); - } - } - } + fixP->fx_done = 1; + + /* We don't actually support subtracting a symbol. */ + if (fixP->fx_subsy != (symbolS *) NULL) + as_bad_where (fixP->fx_file, fixP->fx_line, _("expression too complex")); if ((int) fixP->fx_r_type >= (int) BFD_RELOC_UNUSED) { diff -uprN binutils-2.13.90.0.4/gas/config/tc-xstormy16.h binutils-2.13.90.0.10/gas/config/tc-xstormy16.h --- binutils-2.13.90.0.4/gas/config/tc-xstormy16.h Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.10/gas/config/tc-xstormy16.h Fri Sep 27 08:33:09 2002 @@ -34,10 +34,6 @@ #define TARGET_BYTES_BIG_ENDIAN 0 -/* call md_pcrel_from_section, not md_pcrel_from */ -long md_pcrel_from_section PARAMS ((struct fix *, segT)); -#define MD_PCREL_FROM_SECTION(FIXP, SEC) md_pcrel_from_section (FIXP, SEC) - /* Permit temporary numeric labels. */ #define LOCAL_LABELS_FB 1 @@ -46,10 +42,12 @@ long md_pcrel_from_section PARAMS ((stru /* We don't need to handle .word strangely. */ #define WORKING_DOT_WORD -#define MD_APPLY_FIX3 +/* Values passed to md_apply_fix3 don't include the symbol value. */ +#define MD_APPLY_SYM_VALUE(FIX) 0 + #define md_apply_fix3 xstormy16_md_apply_fix3 -#define obj_fix_adjustable(fixP) xstormy16_fix_adjustable (fixP) +#define tc_fix_adjustable(FIX) xstormy16_fix_adjustable (FIX) extern boolean xstormy16_fix_adjustable PARAMS ((struct fix *)); #define TC_FORCE_RELOCATION(fix) xstormy16_force_relocation (fix) @@ -60,7 +58,7 @@ extern int xstormy16_force_relocation PA #define tc_gen_reloc gas_cgen_tc_gen_reloc /* Call md_pcrel_from_section(), not md_pcrel_from(). */ -#define MD_PCREL_FROM_SECTION(FIXP, SEC) md_pcrel_from_section (FIXP, SEC) +#define MD_PCREL_FROM_SECTION(FIX, SEC) md_pcrel_from_section (FIX, SEC) extern long md_pcrel_from_section PARAMS ((struct fix *, segT)); #define TC_CONS_FIX_NEW xstormy16_cons_fix_new diff -uprN binutils-2.13.90.0.4/gas/config/tc-z8k.c binutils-2.13.90.0.10/gas/config/tc-z8k.c --- binutils-2.13.90.0.4/gas/config/tc-z8k.c Wed Jul 17 11:38:29 2002 +++ binutils-2.13.90.0.10/gas/config/tc-z8k.c Fri Sep 27 08:33:09 2002 @@ -731,6 +731,7 @@ get_operands (opcode, op_end, operand) char *ptr = op_end; char *savptr; + ptr++; switch (opcode->noperands) { case 0: @@ -739,40 +740,35 @@ get_operands (opcode, op_end, operand) break; case 1: - ptr++; if (opcode->arg_info[0] == CLASS_CC) - { - get_cc_operand (&ptr, operand + 0, 0); - } + get_cc_operand (&ptr, operand + 0, 0); + else if (opcode->arg_info[0] == CLASS_FLAGS) - { - get_flags_operand (&ptr, operand + 0, 0); - } + get_flags_operand (&ptr, operand + 0, 0); + else if (opcode->arg_info[0] == (CLASS_IMM + (ARG_IMM2))) - { - get_interrupt_operand (&ptr, operand + 0, 0); - } + get_interrupt_operand (&ptr, operand + 0, 0); + else - { - get_operand (&ptr, operand + 0, 0); - } + get_operand (&ptr, operand + 0, 0); + operand[1].mode = 0; break; case 2: - ptr++; savptr = ptr; if (opcode->arg_info[0] == CLASS_CC) - { - get_cc_operand (&ptr, operand + 0, 0); - } + get_cc_operand (&ptr, operand + 0, 0); + else if (opcode->arg_info[0] == CLASS_CTRL) { get_ctrl_operand (&ptr, operand + 0, 0); + if (the_ctrl == 0) { ptr = savptr; get_operand (&ptr, operand + 0, 0); + if (ptr == 0) return NULL; if (*ptr == ',') @@ -782,9 +778,8 @@ get_operands (opcode, op_end, operand) } } else - { - get_operand (&ptr, operand + 0, 0); - } + get_operand (&ptr, operand + 0, 0); + if (ptr == 0) return NULL; if (*ptr == ',') @@ -793,7 +788,6 @@ get_operands (opcode, op_end, operand) break; case 3: - ptr++; get_operand (&ptr, operand + 0, 0); if (*ptr == ',') ptr++; @@ -804,7 +798,6 @@ get_operands (opcode, op_end, operand) break; case 4: - ptr++; get_operand (&ptr, operand + 0, 0); if (*ptr == ',') ptr++; @@ -1413,7 +1406,7 @@ md_section_align (seg, size) void md_apply_fix3 (fixP, valP, segment) - fixS *fixP; + fixS * fixP; valueT * valP; segT segment ATTRIBUTE_UNUSED; { @@ -1483,7 +1476,7 @@ md_estimate_size_before_relax (fragP, se register fragS *fragP ATTRIBUTE_UNUSED; register segT segment_type ATTRIBUTE_UNUSED; { - printf (_("call tomd_estimate_size_before_relax \n")); + printf (_("call tomd_estimate_size_before_relax\n")); abort (); } diff -uprN binutils-2.13.90.0.4/gas/configure binutils-2.13.90.0.10/gas/configure --- binutils-2.13.90.0.4/gas/configure Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/gas/configure Fri Sep 27 08:33:09 2002 @@ -2575,8 +2575,8 @@ EOF sh*-*-netbsdelf*) fmt=elf em=nbsd ;; sh-*-elf*) fmt=elf ;; sh-*-coff*) fmt=coff ;; - sh-*-pe*) fmt=coff em=pe bfd_gas=yes - endian=little ;; + sh-*-nto*) fmt=elf ;; + sh-*-pe*) fmt=coff em=pe bfd_gas=yes endian=little ;; sh-*-rtemself*) fmt=elf ;; sh-*-rtems*) fmt=coff ;; sh64-*-elf*) fmt=elf ;; @@ -2611,6 +2611,7 @@ EOF tic30-*-*aout*) fmt=aout bfd_gas=yes ;; tic30-*-*coff*) fmt=coff bfd_gas=yes ;; + tic4x-*-* | c4x-*-*) fmt=coff bfd_gas=yes ;; tic54x-*-* | c54x*-*-*) fmt=coff bfd_gas=yes need_libm=yes;; tic80-*-*) fmt=coff ;; @@ -3167,7 +3168,7 @@ EOF # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3171: checking for $ac_word" >&5 +echo "configure:3172: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3197,7 +3198,7 @@ if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3201: checking for $ac_word" >&5 +echo "configure:3202: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3248,7 +3249,7 @@ fi # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3252: checking for $ac_word" >&5 +echo "configure:3253: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3280,7 +3281,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:3284: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:3285: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. @@ -3291,12 +3292,12 @@ cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext << EOF -#line 3295 "configure" +#line 3296 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:3300: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3301: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -3322,12 +3323,12 @@ if test $ac_cv_prog_cc_works = no; then { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:3326: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:3327: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:3331: checking whether we are using GNU C" >&5 +echo "configure:3332: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3336,7 +3337,7 @@ else yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:3340: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:3341: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -3355,7 +3356,7 @@ ac_test_CFLAGS="${CFLAGS+set}" ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:3359: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:3360: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3392,7 +3393,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3396: checking for $ac_word" >&5 +echo "configure:3397: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3423,7 +3424,7 @@ done test -n "$YACC" || YACC="yacc" echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:3427: checking how to run the C preprocessor" >&5 +echo "configure:3428: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -3438,13 +3439,13 @@ else # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3448: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3449: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -3455,13 +3456,13 @@ else rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3465: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3466: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -3472,13 +3473,13 @@ else rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3482: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3483: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -3508,7 +3509,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3512: checking for $ac_word" >&5 +echo "configure:3513: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3541,7 +3542,7 @@ test -n "$LEX" || LEX="$missing_dir/miss # Extract the first word of "flex", so it can be a program name with args. set dummy flex; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3545: checking for $ac_word" >&5 +echo "configure:3546: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3575,7 +3576,7 @@ then *) ac_lib=l ;; esac echo $ac_n "checking for yywrap in -l$ac_lib""... $ac_c" 1>&6 -echo "configure:3579: checking for yywrap in -l$ac_lib" >&5 +echo "configure:3580: checking for yywrap in -l$ac_lib" >&5 ac_lib_var=`echo $ac_lib'_'yywrap | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3583,7 +3584,7 @@ else ac_save_LIBS="$LIBS" LIBS="-l$ac_lib $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3599: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3617,7 +3618,7 @@ fi fi echo $ac_n "checking lex output file root""... $ac_c" 1>&6 -echo "configure:3621: checking lex output file root" >&5 +echo "configure:3622: checking lex output file root" >&5 if eval "test \"`echo '$''{'ac_cv_prog_lex_root'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3638,7 +3639,7 @@ echo "$ac_t""$ac_cv_prog_lex_root" 1>&6 LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root echo $ac_n "checking whether yytext is a pointer""... $ac_c" 1>&6 -echo "configure:3642: checking whether yytext is a pointer" >&5 +echo "configure:3643: checking whether yytext is a pointer" >&5 if eval "test \"`echo '$''{'ac_cv_prog_lex_yytext_pointer'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3650,14 +3651,14 @@ echo 'extern char *yytext;' >>$LEX_OUTPU ac_save_LIBS="$LIBS" LIBS="$LIBS $LEXLIB" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3662: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_prog_lex_yytext_pointer=yes else @@ -3683,7 +3684,7 @@ ALL_LINGUAS="fr tr es" # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3687: checking for $ac_word" >&5 +echo "configure:3688: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3711,12 +3712,12 @@ else fi echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:3715: checking for ANSI C header files" >&5 +echo "configure:3716: checking for ANSI C header files" >&5 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -3724,7 +3725,7 @@ else #include EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3728: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3729: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -3741,7 +3742,7 @@ rm -f conftest* if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -3759,7 +3760,7 @@ fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -3780,7 +3781,7 @@ if test "$cross_compiling" = yes; then : else cat > conftest.$ac_ext < #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') @@ -3791,7 +3792,7 @@ if (XOR (islower (i), ISLOWER (i)) || to exit (0); } EOF -if { (eval echo configure:3795: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:3796: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then : else @@ -3815,12 +3816,12 @@ EOF fi echo $ac_n "checking for working const""... $ac_c" 1>&6 -echo "configure:3819: checking for working const" >&5 +echo "configure:3820: checking for working const" >&5 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3874: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else @@ -3890,21 +3891,21 @@ EOF fi echo $ac_n "checking for inline""... $ac_c" 1>&6 -echo "configure:3894: checking for inline" >&5 +echo "configure:3895: checking for inline" >&5 if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3909: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_inline=$ac_kw; break else @@ -3930,12 +3931,12 @@ EOF esac echo $ac_n "checking for off_t""... $ac_c" 1>&6 -echo "configure:3934: checking for off_t" >&5 +echo "configure:3935: checking for off_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3963,12 +3964,12 @@ EOF fi echo $ac_n "checking for size_t""... $ac_c" 1>&6 -echo "configure:3967: checking for size_t" >&5 +echo "configure:3968: checking for size_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3998,19 +3999,19 @@ fi # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 -echo "configure:4002: checking for working alloca.h" >&5 +echo "configure:4003: checking for working alloca.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { char *p = alloca(2 * sizeof(int)); ; return 0; } EOF -if { (eval echo configure:4014: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4015: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_header_alloca_h=yes else @@ -4031,12 +4032,12 @@ EOF fi echo $ac_n "checking for alloca""... $ac_c" 1>&6 -echo "configure:4035: checking for alloca" >&5 +echo "configure:4036: checking for alloca" >&5 if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4069: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_func_alloca_works=yes else @@ -4096,12 +4097,12 @@ EOF echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 -echo "configure:4100: checking whether alloca needs Cray hooks" >&5 +echo "configure:4101: checking whether alloca needs Cray hooks" >&5 if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4130: checking for $ac_func" >&5 +echo "configure:4131: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4159: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -4181,7 +4182,7 @@ done fi echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 -echo "configure:4185: checking stack direction for C alloca" >&5 +echo "configure:4186: checking stack direction for C alloca" >&5 if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4189,7 +4190,7 @@ else ac_cv_c_stack_direction=0 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:4213: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_c_stack_direction=1 else @@ -4233,17 +4234,17 @@ for ac_hdr in stdlib.h unistd.h sys/stat do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:4237: checking for $ac_hdr" >&5 +echo "configure:4238: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4247: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4248: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4272,12 +4273,12 @@ done for ac_func in getpagesize do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4276: checking for $ac_func" >&5 +echo "configure:4277: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4305: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -4325,7 +4326,7 @@ fi done echo $ac_n "checking for working mmap""... $ac_c" 1>&6 -echo "configure:4329: checking for working mmap" >&5 +echo "configure:4330: checking for working mmap" >&5 if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4333,7 +4334,7 @@ else ac_cv_func_mmap_fixed_mapped=no else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:4491: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_mmap_fixed_mapped=yes else @@ -4514,17 +4515,17 @@ unistd.h values.h sys/param.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:4518: checking for $ac_hdr" >&5 +echo "configure:4519: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4528: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4529: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4554,12 +4555,12 @@ done __argz_count __argz_stringify __argz_next do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4558: checking for $ac_func" >&5 +echo "configure:4559: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4587: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -4611,12 +4612,12 @@ done for ac_func in stpcpy do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4615: checking for $ac_func" >&5 +echo "configure:4616: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4644: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -4673,19 +4674,19 @@ EOF if test $ac_cv_header_locale_h = yes; then echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6 -echo "configure:4677: checking for LC_MESSAGES" >&5 +echo "configure:4678: checking for LC_MESSAGES" >&5 if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { return LC_MESSAGES ; return 0; } EOF -if { (eval echo configure:4689: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4690: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_val_LC_MESSAGES=yes else @@ -4706,7 +4707,7 @@ EOF fi fi echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6 -echo "configure:4710: checking whether NLS is requested" >&5 +echo "configure:4711: checking whether NLS is requested" >&5 # Check whether --enable-nls or --disable-nls was given. if test "${enable_nls+set}" = set; then enableval="$enable_nls" @@ -4726,7 +4727,7 @@ fi EOF echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6 -echo "configure:4730: checking whether included gettext is requested" >&5 +echo "configure:4731: checking whether included gettext is requested" >&5 # Check whether --with-included-gettext or --without-included-gettext was given. if test "${with_included_gettext+set}" = set; then withval="$with_included_gettext" @@ -4745,17 +4746,17 @@ fi ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for libintl.h""... $ac_c" 1>&6 -echo "configure:4749: checking for libintl.h" >&5 +echo "configure:4750: checking for libintl.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4759: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4760: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4772,19 +4773,19 @@ fi if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 echo $ac_n "checking for gettext in libc""... $ac_c" 1>&6 -echo "configure:4776: checking for gettext in libc" >&5 +echo "configure:4777: checking for gettext in libc" >&5 if eval "test \"`echo '$''{'gt_cv_func_gettext_libc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { return (int) gettext ("") ; return 0; } EOF -if { (eval echo configure:4788: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4789: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gt_cv_func_gettext_libc=yes else @@ -4800,7 +4801,7 @@ echo "$ac_t""$gt_cv_func_gettext_libc" 1 if test "$gt_cv_func_gettext_libc" != "yes"; then echo $ac_n "checking for bindtextdomain in -lintl""... $ac_c" 1>&6 -echo "configure:4804: checking for bindtextdomain in -lintl" >&5 +echo "configure:4805: checking for bindtextdomain in -lintl" >&5 ac_lib_var=`echo intl'_'bindtextdomain | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4808,7 +4809,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lintl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4824: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4835,19 +4836,19 @@ fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 echo $ac_n "checking for gettext in libintl""... $ac_c" 1>&6 -echo "configure:4839: checking for gettext in libintl" >&5 +echo "configure:4840: checking for gettext in libintl" >&5 if eval "test \"`echo '$''{'gt_cv_func_gettext_libintl'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4852: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gt_cv_func_gettext_libintl=yes else @@ -4875,7 +4876,7 @@ EOF # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4879: checking for $ac_word" >&5 +echo "configure:4880: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4909,12 +4910,12 @@ fi for ac_func in dcgettext do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4913: checking for $ac_func" >&5 +echo "configure:4914: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4942: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -4964,7 +4965,7 @@ done # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4968: checking for $ac_word" >&5 +echo "configure:4969: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5000,7 +5001,7 @@ fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5004: checking for $ac_word" >&5 +echo "configure:5005: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5032,7 +5033,7 @@ else fi cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5045: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* CATOBJEXT=.gmo DATADIRNAME=share @@ -5072,7 +5073,7 @@ fi # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5076: checking for $ac_word" >&5 +echo "configure:5077: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5106,7 +5107,7 @@ fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5110: checking for $ac_word" >&5 +echo "configure:5111: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5142,7 +5143,7 @@ fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5146: checking for $ac_word" >&5 +echo "configure:5147: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5232,7 +5233,7 @@ fi LINGUAS= else echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6 -echo "configure:5236: checking for catalogs to be installed" >&5 +echo "configure:5237: checking for catalogs to be installed" >&5 NEW_LINGUAS= for lang in ${LINGUAS=$ALL_LINGUAS}; do case "$ALL_LINGUAS" in @@ -5260,17 +5261,17 @@ echo "configure:5236: checking for catal if test "$CATOBJEXT" = ".cat"; then ac_safe=`echo "linux/version.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for linux/version.h""... $ac_c" 1>&6 -echo "configure:5264: checking for linux/version.h" >&5 +echo "configure:5265: checking for linux/version.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:5274: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5275: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -5333,7 +5334,7 @@ fi echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 -echo "configure:5337: checking whether to enable maintainer-specific portions of Makefiles" >&5 +echo "configure:5338: checking whether to enable maintainer-specific portions of Makefiles" >&5 # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then enableval="$enable_maintainer_mode" @@ -5358,7 +5359,7 @@ fi echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 -echo "configure:5362: checking for executable suffix" >&5 +echo "configure:5363: checking for executable suffix" >&5 if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5368,7 +5369,7 @@ else rm -f conftest* echo 'int main () { return 0; }' > conftest.$ac_ext ac_cv_exeext= - if { (eval echo configure:5372: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + if { (eval echo configure:5373: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then for file in conftest.*; do case $file in *.c | *.o | *.obj) ;; @@ -5393,17 +5394,17 @@ for ac_hdr in string.h stdlib.h memory.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:5397: checking for $ac_hdr" >&5 +echo "configure:5398: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:5407: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5408: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -5433,7 +5434,7 @@ done # Put this here so that autoconf's "cross-compiling" message doesn't confuse # people who are not cross-compiling but are compiling cross-assemblers. echo $ac_n "checking whether compiling a cross-assembler""... $ac_c" 1>&6 -echo "configure:5437: checking whether compiling a cross-assembler" >&5 +echo "configure:5438: checking whether compiling a cross-assembler" >&5 if test "${host}" = "${target}"; then cross_gas=no else @@ -5448,19 +5449,19 @@ echo "$ac_t""$cross_gas" 1>&6 # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 -echo "configure:5452: checking for working alloca.h" >&5 +echo "configure:5453: checking for working alloca.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { char *p = alloca(2 * sizeof(int)); ; return 0; } EOF -if { (eval echo configure:5464: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5465: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_header_alloca_h=yes else @@ -5481,12 +5482,12 @@ EOF fi echo $ac_n "checking for alloca""... $ac_c" 1>&6 -echo "configure:5485: checking for alloca" >&5 +echo "configure:5486: checking for alloca" >&5 if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5519: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_func_alloca_works=yes else @@ -5546,12 +5547,12 @@ EOF echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 -echo "configure:5550: checking whether alloca needs Cray hooks" >&5 +echo "configure:5551: checking whether alloca needs Cray hooks" >&5 if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5580: checking for $ac_func" >&5 +echo "configure:5581: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5609: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -5631,7 +5632,7 @@ done fi echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 -echo "configure:5635: checking stack direction for C alloca" >&5 +echo "configure:5636: checking stack direction for C alloca" >&5 if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5639,7 +5640,7 @@ else ac_cv_c_stack_direction=0 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:5663: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_c_stack_direction=1 else @@ -5680,21 +5681,21 @@ EOF fi echo $ac_n "checking for inline""... $ac_c" 1>&6 -echo "configure:5684: checking for inline" >&5 +echo "configure:5685: checking for inline" >&5 if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5699: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_inline=$ac_kw; break else @@ -5724,12 +5725,12 @@ esac for ac_func in unlink remove do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5728: checking for $ac_func" >&5 +echo "configure:5729: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5757: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -5781,12 +5782,12 @@ done for ac_func in sbrk do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5785: checking for $ac_func" >&5 +echo "configure:5786: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5814: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -5844,7 +5845,7 @@ case $host in ;; *-ncr-sysv4.3*) echo $ac_n "checking for _mwvalidcheckl in -lmw""... $ac_c" 1>&6 -echo "configure:5848: checking for _mwvalidcheckl in -lmw" >&5 +echo "configure:5849: checking for _mwvalidcheckl in -lmw" >&5 ac_lib_var=`echo mw'_'_mwvalidcheckl | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5852,7 +5853,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lmw $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5868: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5884,7 +5885,7 @@ else fi echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 -echo "configure:5888: checking for main in -lm" >&5 +echo "configure:5889: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5892,14 +5893,14 @@ else ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5904: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5922,7 +5923,7 @@ fi ;; *) echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 -echo "configure:5926: checking for main in -lm" >&5 +echo "configure:5927: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5930,14 +5931,14 @@ else ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5942: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5968,12 +5969,12 @@ esac # enough, but on some of those systems, the assert macro relies on requoting # working properly! echo $ac_n "checking for working assert macro""... $ac_c" 1>&6 -echo "configure:5972: checking for working assert macro" >&5 +echo "configure:5973: checking for working assert macro" >&5 if eval "test \"`echo '$''{'gas_cv_assert_ok'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -5989,7 +5990,7 @@ assert (a == b ; return 0; } EOF -if { (eval echo configure:5993: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5994: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gas_cv_assert_ok=yes else @@ -6030,12 +6031,12 @@ gas_test_headers=" " echo $ac_n "checking whether declaration is required for strstr""... $ac_c" 1>&6 -echo "configure:6034: checking whether declaration is required for strstr" >&5 +echo "configure:6035: checking whether declaration is required for strstr" >&5 if eval "test \"`echo '$''{'gas_cv_decl_needed_strstr'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6051: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gas_cv_decl_needed_strstr=no else @@ -6067,12 +6068,12 @@ fi echo $ac_n "checking whether declaration is required for malloc""... $ac_c" 1>&6 -echo "configure:6071: checking whether declaration is required for malloc" >&5 +echo "configure:6072: checking whether declaration is required for malloc" >&5 if eval "test \"`echo '$''{'gas_cv_decl_needed_malloc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6088: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gas_cv_decl_needed_malloc=no else @@ -6104,12 +6105,12 @@ fi echo $ac_n "checking whether declaration is required for free""... $ac_c" 1>&6 -echo "configure:6108: checking whether declaration is required for free" >&5 +echo "configure:6109: checking whether declaration is required for free" >&5 if eval "test \"`echo '$''{'gas_cv_decl_needed_free'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6125: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gas_cv_decl_needed_free=no else @@ -6141,12 +6142,12 @@ fi echo $ac_n "checking whether declaration is required for sbrk""... $ac_c" 1>&6 -echo "configure:6145: checking whether declaration is required for sbrk" >&5 +echo "configure:6146: checking whether declaration is required for sbrk" >&5 if eval "test \"`echo '$''{'gas_cv_decl_needed_sbrk'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6162: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gas_cv_decl_needed_sbrk=no else @@ -6178,12 +6179,12 @@ fi echo $ac_n "checking whether declaration is required for environ""... $ac_c" 1>&6 -echo "configure:6182: checking whether declaration is required for environ" >&5 +echo "configure:6183: checking whether declaration is required for environ" >&5 if eval "test \"`echo '$''{'gas_cv_decl_needed_environ'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6199: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gas_cv_decl_needed_environ=no else @@ -6218,12 +6219,12 @@ fi # for it? echo $ac_n "checking whether declaration is required for errno""... $ac_c" 1>&6 -echo "configure:6222: checking whether declaration is required for errno" >&5 +echo "configure:6223: checking whether declaration is required for errno" >&5 if eval "test \"`echo '$''{'gas_cv_decl_needed_errno'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6243: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gas_cv_decl_needed_errno=no else diff -uprN binutils-2.13.90.0.4/gas/configure.in binutils-2.13.90.0.10/gas/configure.in --- binutils-2.13.90.0.4/gas/configure.in Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/gas/configure.in Fri Sep 27 08:33:09 2002 @@ -425,8 +425,8 @@ changequote([,])dnl sh*-*-netbsdelf*) fmt=elf em=nbsd ;; sh-*-elf*) fmt=elf ;; sh-*-coff*) fmt=coff ;; - sh-*-pe*) fmt=coff em=pe bfd_gas=yes - endian=little ;; + sh-*-nto*) fmt=elf ;; + sh-*-pe*) fmt=coff em=pe bfd_gas=yes endian=little ;; sh-*-rtemself*) fmt=elf ;; sh-*-rtems*) fmt=coff ;; sh64-*-elf*) fmt=elf ;; @@ -461,6 +461,7 @@ changequote([,])dnl tic30-*-*aout*) fmt=aout bfd_gas=yes ;; tic30-*-*coff*) fmt=coff bfd_gas=yes ;; + tic4x-*-* | c4x-*-*) fmt=coff bfd_gas=yes ;; tic54x-*-* | c54x*-*-*) fmt=coff bfd_gas=yes need_libm=yes;; tic80-*-*) fmt=coff ;; diff -uprN binutils-2.13.90.0.4/gas/doc/Makefile.in binutils-2.13.90.0.10/gas/doc/Makefile.in --- binutils-2.13.90.0.4/gas/doc/Makefile.in Thu Aug 1 17:49:32 2002 +++ binutils-2.13.90.0.10/gas/doc/Makefile.in Fri Sep 27 08:33:09 2002 @@ -194,7 +194,7 @@ DIST_COMMON = Makefile.am Makefile.in DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) -TAR = gtar +TAR = tar GZIP_ENV = --best all: all-redirect .SUFFIXES: diff -uprN binutils-2.13.90.0.4/gas/doc/as.texinfo binutils-2.13.90.0.10/gas/doc/as.texinfo --- binutils-2.13.90.0.4/gas/doc/as.texinfo Mon Jul 29 08:19:18 2002 +++ binutils-2.13.90.0.10/gas/doc/as.texinfo Fri Sep 27 08:33:09 2002 @@ -5099,6 +5099,10 @@ section contains data section does not contain data (i.e., section only occupies space) @end table +Note on targets where the @code{@@} character is the start of a comment (eg +ARM) then another character is used instead. For example the ARM port uses the +@code{%} character. + If @var{flags} contains @code{M} flag, @var{type} argument must be specified as well as @var{entsize} argument. Sections with @code{M} flag but not @code{S} flag must contain fixed size constants, each @var{entsize} octets diff -uprN binutils-2.13.90.0.4/gas/doc/c-mips.texi binutils-2.13.90.0.10/gas/doc/c-mips.texi --- binutils-2.13.90.0.4/gas/doc/c-mips.texi Mon Jul 29 08:19:18 2002 +++ binutils-2.13.90.0.10/gas/doc/c-mips.texi Wed Oct 2 10:17:19 2002 @@ -116,6 +116,12 @@ This tells the assembler to accept MDMX Cause nops to be inserted if the read of the destination register of an mfhi or mflo instruction occurs in the following two instructions. +@item -mfix-vr4122-bugs +@itemx -no-mfix-vr4122-bugs +Insert @samp{nop} instructions to avoid errors in certain versions of +the vr4122 core. This option is intended to be used on GCC-generated +code: it is not designed to catch errors in hand-written assembler code. + @item -m4010 @itemx -no-m4010 Generate code for the LSI @sc{r4010} chip. This tells the assembler to @@ -152,6 +158,9 @@ understood. Valid @var{cpu} value are: 4010, 4100, 4111, +vr4120, +vr4130, +vr4181, 4300, 4400, 4600, @@ -162,6 +171,8 @@ rm5230, rm5231, rm5261, rm5721, +vr5400, +vr5500, 6000, rm7000, 8000, diff -uprN binutils-2.13.90.0.4/gas/doc/c-v850.texi binutils-2.13.90.0.10/gas/doc/c-v850.texi --- binutils-2.13.90.0.4/gas/doc/c-v850.texi Fri Mar 9 11:17:15 2001 +++ binutils-2.13.90.0.10/gas/doc/c-v850.texi Fri Sep 27 08:33:09 2002 @@ -62,6 +62,14 @@ routines used by the code produced by GC architecture, together with support routines only used by the V850E architecture. +@cindex @code{-mrelax} command line option, V850 +@item -mrelax +Enables relaxation. This allows the .longcall and .longjump pseudo +ops to be used in the assembler source code. These ops label sections +of code which are either a long function call or a long branch. The +assembler will then flag these sections of code and the linker will +attempt to relax them. + @end table @@ -354,10 +362,23 @@ example: will put the call the function whoes address is held in the call table at the location labeled 'table_func1'. +@cindex @code{longcall} pseudo-op, V850 +@item .longcall @code{name} +Indicates that the following sequence of instructions is a long call +to function @code{name}. The linker will attempt to shorten this call +sequence if @code{name} is within a 22bit offset of the call. Only +valid if the @code{-mrelax} command line switch has been enabled. + +@cindex @code{longjump} pseudo-op, V850 +@item .longjump @code{name} +Indicates that the following sequence of instructions is a long jump +to label @code{name}. The linker will attempt to shorten this code +sequence if @code{name} is within a 22bit offset of the jump. Only +valid if the @code{-mrelax} command line switch has been enabled. + @end table For information on the V850 instruction set, see @cite{V850 Family 32-/16-Bit single-Chip Microcontroller Architecture Manual} from NEC. Ltd. - diff -uprN binutils-2.13.90.0.4/gas/doc/internals.texi binutils-2.13.90.0.10/gas/doc/internals.texi --- binutils-2.13.90.0.4/gas/doc/internals.texi Sun Apr 21 01:09:26 2002 +++ binutils-2.13.90.0.10/gas/doc/internals.texi Fri Sep 27 08:33:09 2002 @@ -1,6 +1,6 @@ \input texinfo @c Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, -@c 2001 +@c 2001, 2002 @c Free Software Foundation, Inc. @setfilename internals.info @node Top @@ -1250,18 +1250,94 @@ information removed. Depending upon the @code{md_convert_frag} the frag information may or may not be necessary, as may the resolved values of the symbols. The default value is 1. -@item md_apply_fix3 +@item TC_VALIDATE_FIX (@var{fixP}, @var{seg}, @var{skip}) +@cindex TC_VALIDATE_FIX +This macro is evaluated for each fixup (when @var{linkrelax} is not set). +It may be used to change the fixup in @code{struct fix *@var{fixP}} before +the generic code sees it, or to fully process the fixup. In the latter case, +a @code{goto @var{skip}} will bypass the generic code. + +@item md_apply_fix3 (@var{fixP}, @var{valP}, @var{seg}) @cindex md_apply_fix3 -GAS will call this for each fixup. It should store the correct value in the -object file. @code{fixup_segment} performs a generic overflow check on the -@code{valueT *val} argument after @code{md_apply_fix3} returns. If the overflow -check is relevant for the target machine, then @code{md_apply_fix3} should -modify @code{valueT *val}, typically to the value stored in the object file. - -@item TC_HANDLES_FX_DONE -@cindex TC_HANDLES_FX_DONE -If this macro is defined, it means that @code{md_apply_fix3} correctly sets the -@code{fx_done} field in the fixup. +GAS will call this for each fixup that passes the @code{TC_VALIDATE_FIX} test +when @var{linkrelax} is not set. It should store the correct value in the +object file. @code{struct fix *@var{fixP}} is the fixup @code{md_apply_fix3} +is operating on. @code{valueT *@var{valP}} is the value to store into the +object files, or at least is the generic code's best guess. Specifically, +*@var{valP} is the value of the fixup symbol, perhaps modified by +@code{MD_APPLY_SYM_VALUE}, plus @code{@var{fixP}->fx_offset} (symbol addend), +less @code{MD_PCREL_FROM_SECTION} for pc-relative fixups. +@code{segT @var{seg}} is the section the fix is in. +@code{fixup_segment} performs a generic overflow check on *@var{valP} after +@code{md_apply_fix3} returns. If the overflow check is relevant for the target +machine, then @code{md_apply_fix3} should modify *@var{valP}, typically to the +value stored in the object file. + +@item TC_FORCE_RELOCATION (@var{fix}) +@cindex TC_FORCE_RELOCATION +If this macro returns non-zero, it guarantees that a relocation will be emitted +even when the value can be resolved locally, as @code{fixup_segment} tries to +reduce the number of relocations emitted. For example, a fixup expression +against an absolute symbol will normally not require a reloc. If undefined, +a default of @w{@code{(S_FORCE_RELOC ((@var{fix})->fx_addsy))}} is used. + +@item TC_FORCE_RELOCATION_ABS (@var{fix}) +@cindex TC_FORCE_RELOCATION_ABS +Like @code{TC_FORCE_RELOCATION}, but used only for fixup expressions against an +absolute symbol. If undefined, @code{TC_FORCE_RELOCATION} will be used. + +@item TC_FORCE_RELOCATION_LOCAL (@var{fix}) +@cindex TC_FORCE_RELOCATION_LOCAL +Like @code{TC_FORCE_RELOCATION}, but used only for fixup expressions against a +symbol in the current section. If undefined, fixups that are not +@code{fx_pcrel} or @code{fx_plt} or for which @code{TC_FORCE_RELOCATION} +returns non-zero, will emit relocs. + +@item TC_FORCE_RELOCATION_SUB_SAME (@var{fix}, @var{seg}) +@cindex TC_FORCE_RELOCATION_SUB +This macro controls resolution of fixup expressions involving the +difference of two symbols in the same section. If this macro returns zero, +the subtrahend will be resolved and @code{fx_subsy} set to @code{NULL} for +@code{md_apply_fix3}. If undefined, the default of +@w{@code{! SEG_NORMAL (@var{seg})}} will be used. + +@item TC_FORCE_RELOCATION_SUB_ABS (@var{fix}) +@cindex TC_FORCE_RELOCATION_SUB_ABS +Like @code{TC_FORCE_RELOCATION_SUB_SAME}, but used when the subtrahend is an +absolute symbol. If the macro is undefined a default of +@w{@code{(S_FORCE_RELOC ((@var{fix})->fx_subsy))}} is used. + +@item TC_FORCE_RELOCATION_SUB_LOCAL (@var{fix}) +@cindex TC_FORCE_RELOCATION_SUB_LOCAL +Like @code{TC_FORCE_RELOCATION_SUB_ABS}, but the subtrahend is a symbol in the +same section as the fixup. + +@item TC_VALIDATE_FIX_SUB (@var{fix}) +@cindex TC_VALIDATE_FIX_SUB +This macro is evaluated for any fixup with a @code{fx_subsy} that +@code{fixup_segment} cannot reduce to a number. If the macro returns +@code{false} an error will be reported. + +@item MD_APPLY_SYM_VALUE (@var{fix}) +@cindex MD_APPLY_SYM_VALUE +This macro controls whether the symbol value becomes part of the value passed +to @code{md_apply_fix3}. If the macro is undefined, or returns non-zero, the +symbol value will be included. For ELF, a suitable definition might simply be +@code{0}, because ELF relocations don't include the symbol value in the addend. + +@item S_FORCE_RELOC (@var{sym}) +@cindex S_FORCE_RELOC +This macro (or function, for @code{BFD_ASSEMBLER} gas) returns true for symbols +that should not be reduced to section symbols or eliminated from expressions, +because they may be overridden by the linker. ie. for symbols that are +undefined, common or weak, or for ELF assemblers that support ELF shared +library linking semantics, global. + +@item EXTERN_FORCE_RELOC +@cindex EXTERN_FORCE_RELOC +This macro controls whether @code{S_FORCE_RELOC} returns true for global +symbols. If undefined, the default is @code{true} for ELF assemblers, and +@code{false} for non-ELF. @item tc_gen_reloc @cindex tc_gen_reloc @@ -1449,12 +1525,6 @@ You should define this macro to copy obj one symbol to another. GAS will call it when one symbol is equated to another. -@item obj_fix_adjustable -@cindex obj_fix_adjustable -You may define this macro to indicate whether a fixup against a locally defined -symbol should be adjusted to be against the section symbol. It should return a -non-zero value if the adjustment is acceptable. - @item obj_sec_sym_ok_for_reloc @cindex obj_sec_sym_ok_for_reloc You may define this macro to indicate that it is OK to use a section symbol in diff -uprN binutils-2.13.90.0.4/gas/dwarf2dbg.c binutils-2.13.90.0.10/gas/dwarf2dbg.c --- binutils-2.13.90.0.4/gas/dwarf2dbg.c Thu Aug 1 17:49:32 2002 +++ binutils-2.13.90.0.10/gas/dwarf2dbg.c Fri Sep 27 08:33:09 2002 @@ -1,5 +1,5 @@ /* dwarf2dbg.c - DWARF2 debug support - Copyright 1999, 2000, 2001 Free Software Foundation, Inc. + Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Contributed by David Mosberger-Tang This file is part of GAS, the GNU Assembler. @@ -41,9 +41,10 @@ #endif #endif +#include "dwarf2dbg.h" + #ifdef BFD_ASSEMBLER -#include "dwarf2dbg.h" #include "subsegs.h" #include "elf/dwarf2.h" @@ -1148,6 +1149,7 @@ out_debug_abbrev (abbrev_seg) out_abbrev (DW_AT_low_pc, DW_FORM_addr); out_abbrev (DW_AT_high_pc, DW_FORM_addr); } + out_abbrev (DW_AT_name, DW_FORM_string); out_abbrev (DW_AT_comp_dir, DW_FORM_string); out_abbrev (DW_AT_producer, DW_FORM_string); out_abbrev (DW_AT_language, DW_FORM_data2); @@ -1223,6 +1225,16 @@ out_debug_info (info_seg, abbrev_seg, li emit_expr (&expr, sizeof_address); } + /* DW_AT_name. We don't have the actual file name that was present + on the command line, so assume files[1] is the main input file. + We're not supposed to get called unless at least one line number + entry was emitted, so this should always be defined. */ + if (!files || files_in_use < 1) + abort (); + len = strlen (files[1].filename) + 1; + p = frag_more (len); + memcpy (p, files[1].filename, len); + /* DW_AT_comp_dir */ comp_dir = getpwd (); len = strlen (comp_dir) + 1; @@ -1340,11 +1352,12 @@ dwarf2_emit_insn (size) { } -void +char * dwarf2_directive_file (dummy) int dummy ATTRIBUTE_UNUSED; { s_app_file (0); + return NULL; } void diff -uprN binutils-2.13.90.0.4/gas/ecoff.c binutils-2.13.90.0.10/gas/ecoff.c --- binutils-2.13.90.0.4/gas/ecoff.c Wed Jun 26 09:24:56 2002 +++ binutils-2.13.90.0.10/gas/ecoff.c Fri Sep 27 08:33:09 2002 @@ -3376,7 +3376,7 @@ mark_stabs (ignore) /* For TC_MIPS use the version in tc-mips.c. */ void ecoff_directive_weakext (ignore) - int ignore; + int ignore ATTRIBUTE_UNUSED; { char *name; int c; diff -uprN binutils-2.13.90.0.4/gas/expr.c binutils-2.13.90.0.10/gas/expr.c --- binutils-2.13.90.0.4/gas/expr.c Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.10/gas/expr.c Fri Sep 27 08:33:09 2002 @@ -1,6 +1,6 @@ /* expr.c -operands, expressions- Copyright 1987, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, - 1999, 2000, 2001 + 1999, 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -1347,8 +1347,6 @@ operand (expressionP) Elsewise we waste time special-case testing. Sigh. Ditto SEG_ABSENT. Out: expressionS may have been modified: - 'foo-foo' symbol references cancelled to 0, which changes X_op - from O_subtract to O_constant. Unused fields zeroed to help expr (). */ static void @@ -1371,23 +1369,6 @@ clean_up_expression (expressionP) case O_bit_not: expressionP->X_op_symbol = NULL; break; - case O_subtract: - if (expressionP->X_op_symbol == expressionP->X_add_symbol - || ((symbol_get_frag (expressionP->X_op_symbol) - == symbol_get_frag (expressionP->X_add_symbol)) - && SEG_NORMAL (S_GET_SEGMENT (expressionP->X_add_symbol)) - && (S_GET_VALUE (expressionP->X_op_symbol) - == S_GET_VALUE (expressionP->X_add_symbol)))) - { - addressT diff = (S_GET_VALUE (expressionP->X_add_symbol) - - S_GET_VALUE (expressionP->X_op_symbol)); - - expressionP->X_op = O_constant; - expressionP->X_add_symbol = NULL; - expressionP->X_op_symbol = NULL; - expressionP->X_add_number += diff; - } - break; default: break; } @@ -1659,6 +1640,10 @@ expr (rankarg, resultP) know (rank >= 0); + /* Save the value of dot for the fixup code. */ + if (rank == 0) + dot_value = frag_now_fix (); + retval = operand (resultP); /* operand () gobbles spaces. */ @@ -1749,7 +1734,8 @@ expr (rankarg, resultP) && resultP->X_op == O_symbol && (symbol_get_frag (right.X_add_symbol) == symbol_get_frag (resultP->X_add_symbol)) - && SEG_NORMAL (rightseg)) + && (SEG_NORMAL (rightseg) + || right.X_add_symbol == resultP->X_add_symbol)) { resultP->X_add_number -= right.X_add_number; resultP->X_add_number += (S_GET_VALUE (resultP->X_add_symbol) diff -uprN binutils-2.13.90.0.4/gas/obj.h binutils-2.13.90.0.10/gas/obj.h --- binutils-2.13.90.0.4/gas/obj.h Fri Mar 9 11:38:13 2001 +++ binutils-2.13.90.0.10/gas/obj.h Fri Sep 27 08:33:09 2002 @@ -1,7 +1,7 @@ /* obj.h - defines the object dependent hooks for all object format backends. - Copyright 1987, 1990, 1991, 1992, 1993, 1995, 1996, 1997, 1999, 2000 + Copyright 1987, 1990, 1991, 1992, 1993, 1995, 1996, 1997, 1999, 2000, 2002 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -55,6 +55,7 @@ struct format_ops { void (*frob_symbol) PARAMS ((symbolS *, int *)); void (*frob_file) PARAMS ((void)); void (*frob_file_before_adjust) PARAMS ((void)); + void (*frob_file_before_fix) PARAMS ((void)); void (*frob_file_after_relocs) PARAMS ((void)); bfd_vma (*s_get_size) PARAMS ((symbolS *)); void (*s_set_size) PARAMS ((symbolS *, bfd_vma)); diff -uprN binutils-2.13.90.0.4/gas/po/tr.po binutils-2.13.90.0.10/gas/po/tr.po --- binutils-2.13.90.0.4/gas/po/tr.po Wed Jun 26 09:24:56 2002 +++ binutils-2.13.90.0.10/gas/po/tr.po Fri Sep 27 08:33:09 2002 @@ -4,9 +4,9 @@ # msgid "" msgstr "" -"Project-Id-Version: gas 2.12-pre020121\n" -"POT-Creation-Date: 2002-01-17 12:56+0000\n" -"PO-Revision-Date: 2002-06-25 21:50EET\n" +"Project-Id-Version: gas 2.12.91\n" +"POT-Creation-Date: 2002-07-23 15:57-0400\n" +"PO-Revision-Date: 2002-09-07 21:50EET\n" "Last-Translator: Deniz Akkus Kanca \n" "Language-Team: Turkish \n" "MIME-Version: 1.0\n" @@ -258,24 +258,23 @@ msgstr "" " --listing-cont-lines listelemede çıktı verisi uzatma satırları için\n" " maksimum satır sayısını belirtir\n" -#: as.c:327 gasp.c:3528 +#: as.c:327 gasp.c:3592 #, c-format msgid "Report bugs to %s\n" msgstr "" "Yazılım hatalarını %s adresine,\n" "çeviri hatalarını adresine gönderin\n" -#. This output is intended to follow the GNU standards document. -#: as.c:527 +#: as.c:528 as.c:530 #, c-format msgid "GNU assembler %s\n" msgstr "GNU çevirici %s\n" -#: as.c:528 -msgid "Copyright 2001 Free Software Foundation, Inc.\n" -msgstr "Telif Hakkı (c) 2001 Free Software Foundation, Inc.\n" +#: as.c:532 +msgid "Copyright 2002 Free Software Foundation, Inc.\n" +msgstr "Telif Hakkı (c) 2002 Free Software Foundation, Inc.\n" -#: as.c:529 gasp.c:3627 +#: as.c:533 gasp.c:3691 msgid "" "This program is free software; you may redistribute it under the terms of\n" "the GNU General Public License. This program has absolutely no warranty.\n" @@ -284,73 +283,73 @@ msgstr "" "yapabilir ve/veya yeniden dağıtabilirsiniz. \n" "Bu yazılımın herhangi bir garantisi yoktur.\n" -#: as.c:532 +#: as.c:536 #, c-format msgid "This assembler was configured for a target of `%s'.\n" msgstr "Bu çevirici, `%s' hedefi için ayarlanmıştır.\n" -#: as.c:539 +#: as.c:543 msgid "multiple emulation names specified" msgstr "çoklu öykünüm isimleri belirtilmiş" -#: as.c:541 +#: as.c:545 msgid "emulations not handled in this configuration" msgstr "öykünümler bu ayarlarda desteklenmemektedir" -#: as.c:546 +#: as.c:550 #, c-format msgid "alias = %s\n" msgstr "rumuz = %s\n" -#: as.c:547 +#: as.c:551 #, c-format msgid "canonical = %s\n" msgstr "canonical = %s\n" -#: as.c:548 +#: as.c:552 #, c-format msgid "cpu-type = %s\n" msgstr "cpu türü = %s\n" -#: as.c:550 +#: as.c:554 #, c-format msgid "format = %s\n" msgstr "biçem = %s\n" -#: as.c:553 +#: as.c:557 #, c-format msgid "bfd-target = %s\n" msgstr "bfd hedefi = %s\n" -#: as.c:566 +#: as.c:570 msgid "bad defsym; format is --defsym name=value" msgstr "hatalı defsym; biçem: --defsym name=değer" -#: as.c:590 +#: as.c:594 msgid "no file name following -t option" msgstr "-t seçeneğinden sonra dosya ismi bulunamadı" -#: as.c:605 +#: as.c:609 #, c-format msgid "failed to read instruction table %s\n" msgstr "İşlem tablosu %s okunamadı\n" -#: as.c:720 +#: as.c:724 #, c-format msgid "invalid listing option `%c'" msgstr "geçersiz listeleme seçeneği `%c'" -#: as.c:928 +#: as.c:926 #, c-format msgid "%d warnings, treating warnings as errors" msgstr "%d uyarı, uyarılar hata olarak değerlendiriliyor" -#: as.c:959 +#: as.c:957 #, c-format msgid "%s: total time in assembly: %ld.%06ld\n" msgstr "%s: çeviride geçen toplam zaman: %ld.%06ld\n" -#: as.c:962 +#: as.c:960 #, c-format msgid "%s: data size %ld\n" msgstr "%s: veri boyu %ld\n" @@ -447,11 +446,11 @@ msgstr "%s kümesine tanımlanmamış se msgid "Symbol `%s' can not be both weak and common" msgstr "`%s' sembolü hem zayıf hem ortak olamaz" -#: config/obj-aout.c:255 config/obj-coff.c:2010 +#: config/obj-aout.c:255 config/obj-coff.c:2018 msgid "unresolved relocation" msgstr "çözümlenmemiş yerdeğişim" -#: config/obj-aout.c:257 config/obj-coff.c:2012 +#: config/obj-aout.c:257 config/obj-coff.c:2020 #, c-format msgid "bad relocation: symbol `%s' not in symbol table" msgstr "hatalı yerdeğişim: `%s' sembolü sembol tablosunda değil" @@ -461,7 +460,7 @@ msgstr "hatalı yerdeğişim: `%s' sembo msgid "%s: bad type for weak symbol" msgstr "%s: zayıf sembol için hatalı tür" -#: config/obj-aout.c:458 config/obj-coff.c:2940 write.c:1933 +#: config/obj-aout.c:458 config/obj-coff.c:2941 write.c:1952 #, c-format msgid "%s: global symbols not supported in common sections" msgstr "%s: ortak bölümlerde evrensel semboller" @@ -490,11 +489,12 @@ msgstr "Yapı tablosuna \"%s\" eklenmesi msgid "Line numbers must be positive integers\n" msgstr "Satır sayıları pozitif tamsayı olmalı\n" -#: config/obj-coff.c:503 config/obj-coff.c:2355 +#. Wrong context. +#: config/obj-coff.c:503 config/obj-coff.c:2363 msgid ".ln pseudo-op inside .def/.endef: ignored." msgstr ".def/.endef içinde .ln pseudo-op: yoksayıldı." -#: config/obj-coff.c:546 ecoff.c:3280 +#: config/obj-coff.c:546 ecoff.c:3278 msgid ".loc outside of .text" msgstr ".text dışında .loc" @@ -502,11 +502,11 @@ msgstr ".text dışında .loc" msgid ".loc pseudo-op inside .def/.endef: ignored." msgstr ".def/.endef içinde .loc pseudo-op: yoksayıldı." -#: config/obj-coff.c:641 config/obj-coff.c:2412 +#: config/obj-coff.c:641 config/obj-coff.c:2415 msgid ".def pseudo-op used inside of .def/.endef: ignored." msgstr ".def/.endef içinde .def pseudo-op kullanılmış: yoksayıldı." -#: config/obj-coff.c:687 config/obj-coff.c:2464 +#: config/obj-coff.c:687 config/obj-coff.c:2467 msgid ".endef pseudo-op used outside of .def/.endef: ignored." msgstr ".endef pseudo-op .def/.endef dışında kullanılmış: yoksayıldı." @@ -515,140 +515,141 @@ msgstr ".endef pseudo-op .def/.endef dı msgid "`%s' symbol without preceding function" msgstr "Öncesinde işlev olmadan `%s' sembolü" -#: config/obj-coff.c:812 config/obj-coff.c:2539 +#: config/obj-coff.c:812 config/obj-coff.c:2547 #, c-format msgid "unexpected storage class %d" msgstr "beklenmeyen saklama sınıfı %d" -#: config/obj-coff.c:925 config/obj-coff.c:2646 +#: config/obj-coff.c:925 config/obj-coff.c:2654 msgid ".dim pseudo-op used outside of .def/.endef: ignored." msgstr ".dim pseudo-op, .def/.endef dışında kullanılmış: yoksayıldı." -#: config/obj-coff.c:945 config/obj-coff.c:2666 +#: config/obj-coff.c:945 config/obj-coff.c:2674 msgid "badly formed .dim directive ignored" msgstr "hatalı oluşturulmuş .dim yönergesi yoksayıldı" -#: config/obj-coff.c:996 config/obj-coff.c:2729 +#: config/obj-coff.c:996 config/obj-coff.c:2734 msgid ".size pseudo-op used outside of .def/.endef ignored." msgstr ".def/.endef dışında kullanılan .size pseudo-op yoksayıldı." -#: config/obj-coff.c:1012 config/obj-coff.c:2745 +#: config/obj-coff.c:1012 config/obj-coff.c:2750 msgid ".scl pseudo-op used outside of .def/.endef ignored." msgstr ".def/.endef dışında kullanılan .scl pseudo-op yoksayıldı." -#: config/obj-coff.c:1030 config/obj-coff.c:2763 +#: config/obj-coff.c:1030 config/obj-coff.c:2768 msgid ".tag pseudo-op used outside of .def/.endef ignored." msgstr ".def/.endef dışında kullanılan .tag pseudo-op yoksayıldı." -#: config/obj-coff.c:1049 config/obj-coff.c:2781 +#: config/obj-coff.c:1049 config/obj-coff.c:2785 #, c-format msgid "tag not found for .tag %s" msgstr ".tag %s için etiket bulunamadı" -#: config/obj-coff.c:1064 config/obj-coff.c:2796 +#: config/obj-coff.c:1064 config/obj-coff.c:2799 msgid ".type pseudo-op used outside of .def/.endef ignored." msgstr ".def/.endef dışında kullanılan .type pseudo-op yoksayıldı." -#: config/obj-coff.c:1086 config/obj-coff.c:2818 +#: config/obj-coff.c:1086 config/obj-coff.c:2819 msgid ".val pseudo-op used outside of .def/.endef ignored." msgstr ".def/.endef dışında kullanılan .val pseudo-op yoksayıldı." -#: config/obj-coff.c:1231 config/obj-coff.c:3013 +#: config/obj-coff.c:1231 config/obj-coff.c:3012 msgid "mismatched .eb" msgstr "eşlenmeyen .eb" -#: config/obj-coff.c:1252 config/obj-coff.c:3053 +#: config/obj-coff.c:1252 config/obj-coff.c:3050 msgid "C_EFCN symbol out of scope" msgstr "C_EFCN sembolü kapsam dışı" #. STYP_INFO #. STYP_LIB #. STYP_OVER -#: config/obj-coff.c:1476 +#: config/obj-coff.c:1478 #, c-format msgid "unsupported section attribute '%c'" msgstr "desteklenmeyen bölüm özniteliği '%c'" -#: config/obj-coff.c:1481 config/obj-coff.c:3758 config/tc-ppc.c:4211 +#: config/obj-coff.c:1483 config/obj-coff.c:3755 config/tc-ppc.c:4222 #, c-format msgid "unknown section attribute '%c'" msgstr "bilinmeyen bölüm özniteliği '%c'" -#: config/obj-coff.c:1511 config/tc-ppc.c:4229 config/tc-tic54x.c:4130 read.c:2555 +#: config/obj-coff.c:1513 config/tc-ppc.c:4240 config/tc-tic54x.c:4339 +#: read.c:2560 #, c-format msgid "error setting flags for \"%s\": %s" msgstr "\"%s\" için bayrak atanırken hata oluştu: %s" -#: config/obj-coff.c:1522 +#: config/obj-coff.c:1524 #, c-format msgid "Ignoring changed section attributes for %s" msgstr "%s için değişmiş bölüm öznitelikleri yoksayıldı" -#: config/obj-coff.c:1658 +#: config/obj-coff.c:1660 #, c-format msgid "0x%lx: \"%s\" type = %ld, class = %d, segment = %d\n" msgstr "0x%lx: \"%s\" tür = %ld, sınıf = %d, bölüm = %d\n" -#: config/obj-coff.c:1838 config/obj-ieee.c:69 +#: config/obj-coff.c:1845 config/obj-ieee.c:69 msgid "Out of step\n" msgstr "Uygun adım dışında\n" -#: config/obj-coff.c:2271 +#: config/obj-coff.c:2282 msgid "bfd_coff_swap_scnhdr_out failed" msgstr "bfd_coff_swap_scnhdr_out başarısız" -#: config/obj-coff.c:2496 +#: config/obj-coff.c:2503 msgid "`.bf' symbol without preceding function\n" msgstr "öncesinde işlev olmadan `.bf' sembolü\n" -#: config/obj-coff.c:3450 config/obj-ieee.c:507 +#: config/obj-coff.c:3453 config/obj-ieee.c:521 #, c-format msgid "FATAL: Can't create %s" msgstr "ÖLÜMCÜL: %s oluşturulamadı" -#: config/obj-coff.c:3632 +#: config/obj-coff.c:3631 #, c-format msgid "Can't close %s: %s" msgstr "%s kapatılamadı: %s" -#: config/obj-coff.c:3666 +#: config/obj-coff.c:3665 #, c-format msgid "Too many new sections; can't add \"%s\"" msgstr "Çok fazla sayıda yeni bölüm; \"%s\" eklenemedi" -#: config/obj-coff.c:4073 config/tc-sparc.c:3537 +#: config/obj-coff.c:4053 config/tc-sparc.c:3544 msgid "Expected comma after name" msgstr "İsimden sonra virgül beklendi" -#: config/obj-coff.c:4079 +#: config/obj-coff.c:4059 msgid "Missing size expression" msgstr "Boyut ifadesi eksik" -#: config/obj-coff.c:4085 +#: config/obj-coff.c:4065 #, c-format msgid "lcomm length (%d.) <0! Ignored." msgstr "lcomm uzunluğu (%d.) <0! Yoksayıldı." -#: config/obj-coff.c:4113 +#: config/obj-coff.c:4093 #, c-format msgid "Symbol %s already defined" msgstr "Sembol %s daha önce tanımlanmış" -#: config/obj-coff.c:4208 config/tc-i960.c:3206 +#: config/obj-coff.c:4189 config/tc-i960.c:3207 #, c-format msgid "No 'bal' entry point for leafproc %s" msgstr "Leafproc %s için 'bal' giriş noktası yok" -#: config/obj-coff.c:4287 +#: config/obj-coff.c:4266 #, c-format msgid "Negative of non-absolute symbol %s" msgstr "Bağımsız olmayan sembol %s'nin negatifi" -#: config/obj-coff.c:4308 +#: config/obj-coff.c:4286 msgid "callj to difference of 2 symbols" msgstr "2 sembolün farkına callj" -#: config/obj-coff.c:4354 +#: config/obj-coff.c:4330 #, c-format msgid "Can't emit reloc {- %s-seg symbol \"%s\"} @ file address %ld." msgstr "%3$ld dosya adresinde yerdeğişim {- %1$s-seg sembol \"%2$s\"} üretilemedi." @@ -656,16 +657,16 @@ msgstr "%3$ld dosya adresinde yerdeğiş #. This is a COBR instruction. They have only a 13-bit #. displacement and are only to be used for local branches: #. flag as error, don't generate relocation. -#: config/obj-coff.c:4443 config/tc-i960.c:3226 write.c:2826 +#: config/obj-coff.c:4416 config/tc-i960.c:3227 write.c:2845 msgid "can't use COBR format with external label" msgstr "Dış etiketle COBR biçemi kullanılamaz" -#: config/obj-coff.c:4518 +#: config/obj-coff.c:4489 #, c-format msgid "Value of %ld too large for field of %d bytes at 0x%lx" msgstr "0x%3$lx adresinde %2$d baytlık alan için %1$ld değeri fazla yüksek" -#: config/obj-coff.c:4532 +#: config/obj-coff.c:4503 #, c-format msgid "Signed .word overflow; switch may be too large; %ld at 0x%lx" msgstr "Signed .word taşması; bayrak çok büyük olabilir; 0x%2$lx de %1$ld" @@ -678,170 +679,176 @@ msgstr "GP değeri atanamadı" msgid "Can't set register masks" msgstr "Yazmaç maskeleri ayarlanamadı" -#: config/obj-elf.c:308 +#: config/obj-elf.c:313 msgid "expected comma after symbol-name" msgstr "Sembol adından sonra virgül beklendi" -#: config/obj-elf.c:315 config/tc-sparc.c:3690 +#: config/obj-elf.c:320 config/tc-sparc.c:3697 #, c-format msgid ".COMMon length (%d.) <0! Ignored." msgstr ".COMM ortak uzunluk (%d.) <0! Yoksayıldı." -#: config/obj-elf.c:325 ecoff.c:3399 read.c:1403 read.c:1504 read.c:2137 read.c:2226 read.c:2856 read.c:4937 symbols.c:361 symbols.c:460 +#: config/obj-elf.c:330 ecoff.c:3397 read.c:1403 read.c:1504 read.c:2142 +#: read.c:2231 read.c:2861 read.c:4942 symbols.c:361 symbols.c:460 #, c-format msgid "symbol `%s' is already defined" msgstr "`%s' sembolü zaten tanımlanmış" -#: config/obj-elf.c:333 +#: config/obj-elf.c:338 #, c-format msgid "length of .comm \"%s\" is already %ld; not changed to %d" msgstr ".comm \"%s\" uzunluğu zaten %ld. %d olarak değiştirilmedi." -#: config/obj-elf.c:356 +#: config/obj-elf.c:361 msgid "common alignment negative; 0 assumed" msgstr "Ortak hizalama negatif; 0 varsayıldı" -#: config/obj-elf.c:375 +#: config/obj-elf.c:380 msgid "common alignment not a power of 2" msgstr "Ortak hizalama 2'nin kuvveti değil" -#: config/obj-elf.c:438 config/tc-sparc.c:3832 config/tc-v850.c:565 +#: config/obj-elf.c:443 config/tc-sparc.c:3839 config/tc-v850.c:450 #, c-format msgid "bad .common segment %s" msgstr "ortak .common bölümü %s" -#: config/obj-elf.c:668 +#: config/obj-elf.c:714 #, c-format msgid "setting incorrect section type for %s" msgstr "%s için hatalı bölüm türü atanıyor" -#: config/obj-elf.c:672 +#: config/obj-elf.c:718 #, c-format msgid "ignoring incorrect section type for %s" msgstr "%s için hatalı bölüm türü yoksayıldı" -#: config/obj-elf.c:685 +#: config/obj-elf.c:731 #, c-format msgid "setting incorrect section attributes for %s" msgstr "%s için hatalı bölüm öznitelikleri atanıyor" -#: config/obj-elf.c:732 +#: config/obj-elf.c:782 #, c-format msgid "ignoring changed section attributes for %s" msgstr "%s için değişmiş bölüm öznitelikleri yoksayıldı" -#: config/obj-elf.c:734 +#: config/obj-elf.c:784 #, c-format msgid "ignoring changed section entity size for %s" msgstr "%s için değişmiş bölüm öznitelikleri yoksayıldı" -#: config/obj-elf.c:737 +#: config/obj-elf.c:787 #, c-format msgid "ignoring new section group for %s" msgstr "%s için yeni bölüm grubu yoksayıldı" -#: config/obj-elf.c:788 -msgid "unrecognized .section attribute: want a,w,x,M,S,G" -msgstr "Bilinmeyen .section özniteliği: a,w,x,M,S,G olabilir" +#: config/obj-elf.c:841 +msgid "unrecognized .section attribute: want a,w,x,M,S,G,T" +msgstr "Bilinmeyen .section özniteliği: a,w,x,M,S,G,T olabilir" -#: config/obj-elf.c:828 +#: config/obj-elf.c:881 msgid "unrecognized section attribute" msgstr "Bilinmeyen bölüm özniteliği" -#: config/obj-elf.c:850 read.c:2538 +#: config/obj-elf.c:903 read.c:2543 msgid "unrecognized section type" msgstr "bilinmeyen bölüm türü" -#: config/obj-elf.c:880 +#: config/obj-elf.c:933 msgid "missing name" msgstr "isim eksik" -#: config/obj-elf.c:987 +#: config/obj-elf.c:1042 msgid "invalid merge entity size" msgstr "geçersiz nesne boy birleştirmesi" -#: config/obj-elf.c:994 +#: config/obj-elf.c:1049 msgid "entity size for SHF_MERGE not specified" msgstr "SHF_MERGE için nesne boyu belirtilmemiş" -#: config/obj-elf.c:1007 +#: config/obj-elf.c:1069 msgid "group name for SHF_GROUP not specified" msgstr "SHF_GROUP için grup adı belirtilmemiş" -#: config/obj-elf.c:1020 +#: config/obj-elf.c:1082 msgid "character following name is not '#'" msgstr "ismi takip eden karakter '#' değil" -#: config/obj-elf.c:1121 +#: config/obj-elf.c:1183 msgid ".previous without corresponding .section; ignored" msgstr ".section ile eşleşmeyen .previous; yoksayıldı" -#: config/obj-elf.c:1148 +#: config/obj-elf.c:1210 msgid ".popsection without corresponding .pushsection; ignored" msgstr ".pushsection ile eşleşmeyen .popsection; yoksayıldı" -#: config/obj-elf.c:1202 +#: config/obj-elf.c:1264 msgid "expected comma after name in .symver" msgstr ".symver'de isimden sonra virgül beklendi" -#: config/obj-elf.c:1225 +#: config/obj-elf.c:1287 #, c-format msgid "missing version name in `%s' for symbol `%s'" msgstr "`%s' içinde `%s' sembolü için eksik sürüm ismi" -#: config/obj-elf.c:1236 +#: config/obj-elf.c:1298 #, c-format msgid "multiple versions [`%s'|`%s'] for symbol `%s'" msgstr "`%3$s' sembolü için çoklu sürüm [`%1$s'|`%2$s']" -#: config/obj-elf.c:1470 +#: config/obj-elf.c:1534 msgid "expected quoted string" msgstr "Tırnak içinde bir dizge beklendi" -#: config/obj-elf.c:1491 +#: config/obj-elf.c:1555 #, c-format msgid "expected comma after name `%s' in .size directive" msgstr ".size yönergesinde `%s' isminden sonra virgül beklendi" -#: config/obj-elf.c:1500 +#: config/obj-elf.c:1564 msgid "missing expression in .size directive" msgstr ".size yönergesinde eksik ifade" -#: config/obj-elf.c:1583 +#: config/obj-elf.c:1647 #, c-format msgid "unrecognized symbol type \"%s\"" msgstr "\"%s\" bilinmeyen sembol türü" -#: config/obj-elf.c:1764 +#: config/obj-elf.c:1828 msgid ".size expression too complicated to fix up" msgstr ".size ifadesi düzeltme için çok karmaşık" -#: config/obj-elf.c:1796 +#: config/obj-elf.c:1860 #, c-format msgid "invalid attempt to declare external version name as default in symbol `%s'" msgstr "`%s' sembolünde dış sürüm ismini öntanımlı olarak tanımlama girişimi geçersiz" -#: config/obj-elf.c:1855 ecoff.c:3644 +#: config/obj-elf.c:1921 ecoff.c:3642 #, c-format msgid "symbol `%s' can not be both weak and common" msgstr "`%s' sembolü hem zayıf hem ortak olamaz" -#: config/obj-elf.c:1971 +#: config/obj-elf.c:2041 +#, c-format +msgid "assuming all members of group `%s' are COMDAT" +msgstr "`%s' grubunun bütün öğelerinin COMDAT olduğu varsayıldı" + +#: config/obj-elf.c:2063 #, c-format msgid "can't create group: %s" msgstr "%s grubu oluşturulamadı" -#: config/obj-elf.c:2068 +#: config/obj-elf.c:2170 #, c-format msgid "failed to set up debugging information: %s" msgstr "Hata ayıklama bilgisi oluşturma başarısız: %s" -#: config/obj-elf.c:2088 +#: config/obj-elf.c:2190 #, c-format msgid "can't start writing .mdebug section: %s" msgstr ".mdebug bölümü yazılamıyor: %s" -#: config/obj-elf.c:2096 +#: config/obj-elf.c:2198 #, c-format msgid "could not write .mdebug section: %s" msgstr ".mdebug bölümü yazılamadı: %s" @@ -1027,30 +1034,40 @@ msgstr "Bilinmeyen %s" msgid "unhandled stab type %d" msgstr "desteklenmeyen stab türü %d" -#: config/tc-a29k.c:160 config/tc-sparc.c:3884 +#: config/tc-a29k.c:160 config/tc-sparc.c:3891 msgid "Unknown segment type" msgstr "Bilinmeyen bölüm türü" #. Probably a memory allocation problem? Give up now. -#: config/tc-a29k.c:330 config/tc-hppa.c:1462 config/tc-mips.c:1251 config/tc-mips.c:1293 config/tc-sparc.c:847 +#: config/tc-a29k.c:330 config/tc-dlx.c:369 config/tc-hppa.c:1464 +#: config/tc-mips.c:1063 config/tc-mips.c:1105 config/tc-or32.c:230 +#: config/tc-sparc.c:853 msgid "Broken assembler. No assembly attempted." msgstr "Çalışmayan çevirici. Çevrilmedi." -#: config/tc-a29k.c:375 config/tc-avr.c:1131 config/tc-d10v.c:540 config/tc-d30v.c:552 config/tc-h8300.c:313 config/tc-h8500.c:284 config/tc-mcore.c:655 config/tc-mmix.c:468 config/tc-mn10200.c:940 config/tc-mn10300.c:1311 config/tc-ppc.c:2106 config/tc-s390.c:1054 config/tc-sh.c:869 config/tc-tic80.c:283 config/tc-v850.c:2073 config/tc-w65.c:241 config/tc-z8k.c:343 +#: config/tc-a29k.c:375 config/tc-avr.c:1137 config/tc-d10v.c:545 +#: config/tc-d30v.c:552 config/tc-h8300.c:333 config/tc-h8500.c:284 +#: config/tc-mcore.c:655 config/tc-mmix.c:475 config/tc-mn10200.c:940 +#: config/tc-mn10300.c:1318 config/tc-or32.c:336 config/tc-or32.c:392 +#: config/tc-ppc.c:2122 config/tc-s390.c:1062 config/tc-sh.c:1272 +#: config/tc-sh64.c:2228 config/tc-tic80.c:283 config/tc-v850.c:1984 +#: config/tc-w65.c:241 config/tc-z8k.c:343 msgid "missing operand" msgstr "işlenen eksik" -#: config/tc-a29k.c:414 config/tc-cris.c:950 config/tc-cris.c:958 config/tc-hppa.c:1598 config/tc-i860.c:431 config/tc-i860.c:448 config/tc-sparc.c:1409 config/tc-sparc.c:1415 +#: config/tc-a29k.c:414 config/tc-cris.c:950 config/tc-cris.c:958 +#: config/tc-dlx.c:834 config/tc-hppa.c:1600 config/tc-i860.c:431 +#: config/tc-i860.c:448 config/tc-sparc.c:1415 config/tc-sparc.c:1421 #, c-format msgid "Unknown opcode: `%s'" msgstr "Bilinmeyen opkod: `%s'" -#: config/tc-a29k.c:419 +#: config/tc-a29k.c:419 config/tc-dlx.c:852 #, c-format msgid "Unknown opcode `%s'." msgstr "Bilinmeyen opkod `%s'." -#: config/tc-a29k.c:451 +#: config/tc-a29k.c:451 config/tc-dlx.c:913 #, c-format msgid "Too many operands: %s" msgstr "Çok fazla işlenen: %s" @@ -1060,11 +1077,12 @@ msgstr "Çok fazla işlenen: %s" msgid "Immediate value of %ld is too large" msgstr "%ld'nin şimdiki değeri fazla büyük" -#: config/tc-a29k.c:543 config/tc-i860.c:340 config/tc-i860.c:832 config/tc-m68k.c:3181 config/tc-m68k.c:3210 config/tc-sparc.c:2544 +#: config/tc-a29k.c:543 config/tc-i860.c:340 config/tc-i860.c:832 +#: config/tc-m68k.c:3181 config/tc-m68k.c:3210 config/tc-sparc.c:2550 msgid "failed sanity check." msgstr "başarısız kontrol." -#: config/tc-a29k.c:889 +#: config/tc-a29k.c:889 config/tc-or32.c:1046 config/tc-or32.c:1180 #, c-format msgid "bad relocation type: 0x%02x" msgstr "hatalı yerdeğişim türü: 0x%02x" @@ -1082,12 +1100,12 @@ msgstr "a29k_convert_frag\n" msgid "a29k_estimate_size_before_relax\n" msgstr "a29k_estimate_size_before_relax\n" -#: config/tc-a29k.c:1092 +#: config/tc-a29k.c:1092 config/tc-dlx.c:1295 config/tc-or32.c:1375 #, c-format msgid "label \"$%d\" redefined" msgstr "\"$%d\" etiketi yeniden tanımlandı" -#: config/tc-a29k.c:1165 +#: config/tc-a29k.c:1165 config/tc-dlx.c:511 config/tc-or32.c:1470 #, c-format msgid "Invalid expression after %%%%\n" msgstr "%%%%'den sonra geçersiz ifade\n" @@ -1096,30 +1114,33 @@ msgstr "%%%%'den sonra geçersiz ifade\n msgid "Invalid register in & expression" msgstr "& ifadesinde geçersiz yazmaç" -#: config/tc-alpha.c:789 +#: config/tc-alpha.c:816 #, c-format msgid "internal error: can't hash opcode `%s': %s" msgstr "İç hata: `%s' opkodu hash'lenemedi: %s" -#: config/tc-alpha.c:824 +#: config/tc-alpha.c:851 #, c-format msgid "internal error: can't hash macro `%s': %s" msgstr "İç hata: `%s' makrosu hash'lenemedi: %s" -#: config/tc-alpha.c:906 config/tc-i960.c:2701 +#: config/tc-alpha.c:933 config/tc-i960.c:2702 msgid "syntax error" msgstr "sözdizimi hatası" -#: config/tc-alpha.c:980 config/tc-h8300.c:1413 config/tc-h8500.c:1187 config/tc-hppa.c:4017 config/tc-i860.c:931 config/tc-m68hc11.c:500 config/tc-m68k.c:4201 config/tc-m88k.c:1011 config/tc-ns32k.c:1663 config/tc-sparc.c:2831 config/tc-z8k.c:1321 +#: config/tc-alpha.c:1007 config/tc-h8300.c:1426 config/tc-h8500.c:1187 +#: config/tc-hppa.c:4019 config/tc-i860.c:931 config/tc-m68hc11.c:500 +#: config/tc-m68k.c:4201 config/tc-m88k.c:1011 config/tc-ns32k.c:1663 +#: config/tc-or32.c:912 config/tc-sparc.c:2837 config/tc-z8k.c:1328 msgid "Bad call to MD_ATOF()" msgstr "MD_ATOF()'a hatalı çağrı" -#: config/tc-alpha.c:1030 +#: config/tc-alpha.c:1057 #, c-format msgid "Unknown CPU identifier `%s'" msgstr "Bilinmeyen CPU tanımlayıcısı `%s'" -#: config/tc-alpha.c:1074 +#: config/tc-alpha.c:1101 msgid "" "Alpha options:\n" "-32addr\t\t\ttreat addresses as 32-bit values\n" @@ -1137,7 +1158,7 @@ msgstr "" "-m21064 | -m21066 | -m21164 | -m21164a | -m21164pc | -m21264\n" "\t\t\tbu alt mimariler PALcode opkodları içerir\n" -#: config/tc-alpha.c:1084 +#: config/tc-alpha.c:1111 msgid "" "VMS options:\n" "-+\t\t\thash encode (don't truncate) names longer than 64 characters\n" @@ -1147,306 +1168,362 @@ msgstr "" "-+\t\t\t64 karakterden uzun isimleri hash ile kodlar (budamaz)\n" "-H\t\t\thash budamasından sonra yeni sembolü gösterir\n" -#: config/tc-alpha.c:1242 +#: config/tc-alpha.c:1284 #, c-format msgid "unhandled relocation type %s" msgstr "desteklenmeyen yerdeğişim türü %s" -#: config/tc-alpha.c:1255 +#: config/tc-alpha.c:1297 msgid "non-absolute expression in constant field" msgstr "sabit alanda sabit olmayan ifade" -#: config/tc-alpha.c:1269 +#: config/tc-alpha.c:1311 #, c-format msgid "type %d reloc done?\n" msgstr "tür %d yerdeğişim tamam mı?\n" -#: config/tc-alpha.c:1317 config/tc-alpha.c:1324 config/tc-mips.c:7965 +#: config/tc-alpha.c:1359 config/tc-alpha.c:1366 config/tc-mips.c:8069 msgid "Used $at without \".set noat\"" msgstr "\".set noat\" olmaksızın $at kullanıldı" -#: config/tc-alpha.c:1481 +#: config/tc-alpha.c:1439 +#, c-format +msgid "!samegp reloc against symbol without .prologue: %s" +msgstr ".prologue olmaksızın sembole !samegp yerdeğişimi: %s" + +#: config/tc-alpha.c:1588 #, c-format msgid "cannot represent `%s' relocation in object file" msgstr "Nesne dosyasında `%s' yerdeğişimi gösterilemiyor" -#: config/tc-alpha.c:1488 +#: config/tc-alpha.c:1595 #, c-format msgid "internal error? cannot generate `%s' relocation" msgstr "iç hata? `%s' yerdeğişimi üretilemedi" -#: config/tc-alpha.c:1543 +#: config/tc-alpha.c:1651 #, c-format msgid "frame reg expected, using $%d." msgstr "frame reg beklendi, $%d kullanılıyor." -#: config/tc-alpha.c:1646 +#: config/tc-alpha.c:1752 #, c-format msgid "No !literal!%ld was found" msgstr "!literal!%ld bulunamadı" -#: config/tc-alpha.c:1654 +#: config/tc-alpha.c:1758 +#, c-format +msgid "No !tlsgd!%ld was found" +msgstr "!tlsgd!%ld bulunamadı" + +#: config/tc-alpha.c:1765 +#, c-format +msgid "No !tlsldm!%ld was found" +msgstr "!tlsldm!%ld bulunamadı" + +#: config/tc-alpha.c:1773 #, c-format msgid "No ldah !gpdisp!%ld was found" msgstr "ldah !gpdisp!%ld bulunamadı" -#: config/tc-alpha.c:1705 +#: config/tc-alpha.c:1823 +#, c-format +msgid "too many !literal!%ld for %s" +msgstr "%2$s için çok fazla !literal!%1$ld " + +#: config/tc-alpha.c:1853 #, c-format msgid "No lda !gpdisp!%ld was found" msgstr "lda !gpdisp!%ld bulunamadı" #. only support one relocation op per insn -#: config/tc-alpha.c:1841 +#: config/tc-alpha.c:1997 msgid "More than one relocation op per insn" msgstr "Bir işlemde birden fazla yerdeğişim yönergesi" -#: config/tc-alpha.c:1857 +#: config/tc-alpha.c:2013 msgid "No relocation operand" msgstr "Yerdeğişim işleneni yok" -#: config/tc-alpha.c:1867 +#: config/tc-alpha.c:2023 #, c-format msgid "Unknown relocation operand: !%s" msgstr "Bilinmeyen yerdeğişim işleneni: !%s" -#: config/tc-alpha.c:1877 +#: config/tc-alpha.c:2033 #, c-format msgid "no sequence number after !%s" msgstr "!%s'den sonra sıra numarası yok" -#: config/tc-alpha.c:1887 +#: config/tc-alpha.c:2043 #, c-format msgid "!%s does not use a sequence number" msgstr "!%s bir sıra numarası kullanmıyor" -#: config/tc-alpha.c:1897 +#: config/tc-alpha.c:2053 #, c-format msgid "Bad sequence number: !%s!%s" msgstr "Hatalı sıra numarası: !%s!%s" -#: config/tc-alpha.c:2224 +#: config/tc-alpha.c:2381 #, c-format msgid "operand out of range (%s not between %d and %d)" msgstr "işlenen kapsam dışı (%s, %d ve %d arasında değil)" -#: config/tc-alpha.c:2338 config/tc-alpha.c:2362 config/tc-d10v.c:629 config/tc-d30v.c:640 config/tc-mn10200.c:995 config/tc-mn10300.c:1382 config/tc-ppc.c:2072 config/tc-ppc.c:2256 config/tc-ppc.c:2268 config/tc-s390.c:1064 config/tc-s390.c:1121 config/tc-v850.c:1853 config/tc-v850.c:1876 config/tc-v850.c:2096 +#: config/tc-alpha.c:2495 config/tc-alpha.c:2519 config/tc-d10v.c:634 +#: config/tc-d30v.c:640 config/tc-mn10200.c:995 config/tc-mn10300.c:1389 +#: config/tc-ppc.c:2088 config/tc-ppc.c:2269 config/tc-ppc.c:2281 +#: config/tc-s390.c:1072 config/tc-s390.c:1129 config/tc-v850.c:1764 +#: config/tc-v850.c:1787 config/tc-v850.c:2007 msgid "too many fixups" msgstr "çok fazla düzeltme" -#: config/tc-alpha.c:2374 +#: config/tc-alpha.c:2531 msgid "invalid relocation for instruction" msgstr "işlem için geçersiz yerdeğişim" -#: config/tc-alpha.c:2385 +#: config/tc-alpha.c:2542 msgid "invalid relocation for field" msgstr "Alan için geçersiz yerdeğişim" -#: config/tc-alpha.c:2484 +#: config/tc-alpha.c:2649 #, c-format msgid "too many ldah insns for !gpdisp!%ld" msgstr "!gpdisp!%ld için çok fazla ldah işlemi" -#: config/tc-alpha.c:2486 config/tc-alpha.c:2498 +#: config/tc-alpha.c:2651 config/tc-alpha.c:2663 #, c-format msgid "both insns for !gpdisp!%ld must be in the same section" msgstr "!gpdisp!%ld için her iki işlem de aynı bölümde olmalı" -#: config/tc-alpha.c:2496 +#: config/tc-alpha.c:2661 #, c-format msgid "too many lda insns for !gpdisp!%ld" msgstr "!gpdisp!%ld için çok fazla lda işlemi" -#: config/tc-alpha.c:2577 config/tc-alpha.c:2647 +#: config/tc-alpha.c:2713 +#, c-format +msgid "too many lituse insns for !lituse_tlsgd!%ld" +msgstr "!lituse_tlsgd!%ld için çok fazla lituse işlemi" + +#: config/tc-alpha.c:2716 +#, c-format +msgid "too many lituse insns for !lituse_tlsldm!%ld" +msgstr "!lituse_tlsldm!%ld için çok fazla lituse işlemi" + +#: config/tc-alpha.c:2733 +#, c-format +msgid "duplicate !tlsgd!%ld" +msgstr "birden fazla !tlsgd!%ld" + +#: config/tc-alpha.c:2735 +#, c-format +msgid "sequence number in use for !tlsldm!%ld" +msgstr "!tlsldm!%ld'nın sıra numarası kullanılmakta" + +#: config/tc-alpha.c:2749 +#, c-format +msgid "duplicate !tlsldm!%ld" +msgstr "birden fazla !tlsldm!%ld" + +#: config/tc-alpha.c:2751 +#, c-format +msgid "sequence number in use for !tlsgd!%ld" +msgstr "!tlsgd!%ld sıra numarası kullanılmakta" + +#: config/tc-alpha.c:2796 config/tc-alpha.c:2869 #, c-format msgid "inappropriate arguments for opcode `%s'" msgstr "`%s' opkodu için uygun olmayan argümanlar" -#: config/tc-alpha.c:2579 config/tc-alpha.c:2649 +#: config/tc-alpha.c:2798 config/tc-alpha.c:2871 #, c-format msgid "opcode `%s' not supported for target %s" msgstr "%2$s hedefi için `%1$s' opkodu desteklenmiyor" -#: config/tc-alpha.c:2583 config/tc-alpha.c:2653 config/tc-avr.c:1097 +#: config/tc-alpha.c:2802 config/tc-alpha.c:2875 config/tc-avr.c:1103 #, c-format msgid "unknown opcode `%s'" msgstr "bilinmeyen opkod `%s'" -#: config/tc-alpha.c:2701 +#: config/tc-alpha.c:2922 msgid "can not resolve expression" msgstr "ifade çözümlenemedi" -#: config/tc-alpha.c:2845 config/tc-alpha.c:3024 +#: config/tc-alpha.c:3066 config/tc-alpha.c:3245 msgid "overflow in literal (.lita) table" msgstr "literal (.lita) tablosunda taşma" -#: config/tc-alpha.c:2852 config/tc-alpha.c:2875 config/tc-alpha.c:3037 config/tc-alpha.c:3252 config/tc-alpha.c:3297 config/tc-alpha.c:3371 config/tc-alpha.c:3463 config/tc-alpha.c:3712 config/tc-alpha.c:3813 +#: config/tc-alpha.c:3073 config/tc-alpha.c:3096 config/tc-alpha.c:3258 +#: config/tc-alpha.c:3473 config/tc-alpha.c:3518 config/tc-alpha.c:3592 +#: config/tc-alpha.c:3684 config/tc-alpha.c:3933 config/tc-alpha.c:4034 msgid "macro requires $at register while noat in effect" msgstr "makro $at yazmacını gerektiriyor ama noat geçerli" -#: config/tc-alpha.c:2854 config/tc-alpha.c:2877 config/tc-alpha.c:3039 +#: config/tc-alpha.c:3075 config/tc-alpha.c:3098 config/tc-alpha.c:3260 msgid "macro requires $at while $at in use" msgstr "makro, $at kullanımdayken $at gerektiriyor" -#: config/tc-alpha.c:2985 +#: config/tc-alpha.c:3206 msgid "bignum invalid; zero assumed" msgstr "bignum geçersiz; 0 varsayıldı" -#: config/tc-alpha.c:2987 +#: config/tc-alpha.c:3208 msgid "floating point number invalid; zero assumed" msgstr "kayan nokta sayısı geçersiz; sıfır varsayıldı" -#: config/tc-alpha.c:2992 +#: config/tc-alpha.c:3213 msgid "can't handle expression" msgstr "ifade işlenemedi" -#: config/tc-alpha.c:3030 +#: config/tc-alpha.c:3251 msgid "overflow in literal (.lit8) table" msgstr "literal (.lit8) tablosunda taşma" -#: config/tc-alpha.c:4042 config/tc-ppc.c:1579 config/tc-ppc.c:3974 +#: config/tc-alpha.c:4271 config/tc-ppc.c:1569 config/tc-ppc.c:3985 #, c-format msgid ".COMMon length (%ld.) <0! Ignored." msgstr ".COMMon uzunluk (%ld.) <0! Yoksayıldı." -#: config/tc-alpha.c:4071 config/tc-sparc.c:3700 config/tc-v850.c:283 +#: config/tc-alpha.c:4300 config/tc-sparc.c:3707 config/tc-v850.c:254 msgid "Ignoring attempt to re-define symbol" msgstr "Sembolü yeniden tanımlama denemesi yoksayıldı" -#: config/tc-alpha.c:4080 config/tc-alpha.c:4089 config/tc-ppc.c:4011 +#: config/tc-alpha.c:4309 config/tc-alpha.c:4318 config/tc-ppc.c:4022 #, c-format msgid "Length of .comm \"%s\" is already %ld. Not changed to %ld." msgstr ".comm \"%s\" uzunluğu zaten %ld. %ld olarak değiştirilmedi." -#: config/tc-alpha.c:4191 ecoff.c:3084 +#: config/tc-alpha.c:4420 ecoff.c:3082 msgid ".ent directive has no name" msgstr ".ent yönergesinin ismi yok" -#: config/tc-alpha.c:4199 +#: config/tc-alpha.c:4428 msgid "nested .ent directives" msgstr "içiçe .ent yönergeleri" -#: config/tc-alpha.c:4235 ecoff.c:3034 +#: config/tc-alpha.c:4464 ecoff.c:3032 msgid ".end directive has no name" msgstr ".end yönergesinin ismi yok" -#: config/tc-alpha.c:4244 +#: config/tc-alpha.c:4473 msgid ".end directive names different symbol than .ent" msgstr ".end yönergesi .ent'ten farklı bir sembolü gösteriyor" -#: config/tc-alpha.c:4321 +#: config/tc-alpha.c:4550 #, c-format msgid "Invalid argument %d to .prologue." msgstr ".prologue için geçersiz %d argümanı." -#: config/tc-alpha.c:4413 +#: config/tc-alpha.c:4642 msgid "ECOFF debugging is disabled." msgstr "ECOFF hata ayıklaması etkinleştirilmemiş." -#: config/tc-alpha.c:4434 +#: config/tc-alpha.c:4663 msgid "Unknown section directive" msgstr "Bilinmeyen bölüm yönergesi" -#: config/tc-alpha.c:4470 +#: config/tc-alpha.c:4699 msgid ".ent directive has no symbol" msgstr ".ent yönergesinde sembol yok" -#: config/tc-alpha.c:4497 +#: config/tc-alpha.c:4726 msgid "Bad .frame directive 1./2. param" msgstr "Hatalı .frame yönergesi 1./2. parametre" -#: config/tc-alpha.c:4509 +#: config/tc-alpha.c:4738 msgid "Bad .frame directive 3./4. param" msgstr "Hatalı .frame yönergesi 3./4. parametre" -#: config/tc-alpha.c:4534 +#: config/tc-alpha.c:4763 msgid ".pdesc directive not in link (.link) section" msgstr ".pdesc yönergesi link (.link) bölümünde değil" -#: config/tc-alpha.c:4542 +#: config/tc-alpha.c:4771 msgid ".pdesc has no matching .ent" msgstr ".pdesc'le eşleşen .ent yok" -#: config/tc-alpha.c:4553 +#: config/tc-alpha.c:4782 msgid ".pdesc directive has no entry symbol" msgstr ".pdesc yönergesinin giriş sembolü yok" -#: config/tc-alpha.c:4566 +#: config/tc-alpha.c:4795 msgid "No comma after .pdesc " msgstr ".pdesc sonrasında virgül yok" -#: config/tc-alpha.c:4589 +#: config/tc-alpha.c:4818 msgid "unknown procedure kind" msgstr "bilinmeyen yordam türü" -#: config/tc-alpha.c:4682 +#: config/tc-alpha.c:4911 msgid ".name directive not in link (.link) section" msgstr ".name yönergesi link (.link) bölümünde değil" -#: config/tc-alpha.c:4690 +#: config/tc-alpha.c:4919 msgid ".name directive has no symbol" msgstr ".name yönergesinde sembol yok" -#: config/tc-alpha.c:4724 +#: config/tc-alpha.c:4953 msgid "No symbol after .linkage" msgstr ".linkage'dan sonra sembol yok" -#: config/tc-alpha.c:4752 +#: config/tc-alpha.c:4981 msgid "No symbol after .code_address" msgstr ".code_address'ten sonra sembol yok" -#: config/tc-alpha.c:4785 +#: config/tc-alpha.c:5014 msgid "Bad .mask directive" msgstr "Hatalı .mask yönergesi" -#: config/tc-alpha.c:4806 +#: config/tc-alpha.c:5035 msgid "Bad .fmask directive" msgstr "Hatalı .fmask yönergesi" -#: config/tc-alpha.c:4976 +#: config/tc-alpha.c:5205 #, c-format msgid "Expected comma after name \"%s\"" msgstr "\"%s\" isminden sonra virgül beklendi" #. *symbol_get_obj (symbolP) = (signed char) temp; -#: config/tc-alpha.c:4987 +#: config/tc-alpha.c:5216 #, c-format msgid "unhandled: .proc %s,%d" msgstr "Desteklenmiyor: .proc %s,%d" -#: config/tc-alpha.c:5022 +#: config/tc-alpha.c:5251 #, c-format msgid "Tried to .set unrecognized mode `%s'" msgstr "Bilinmeyen `%s' kipine atanmaya (.set) çalışıldı" #. not fatal, but it might not work in the end -#: config/tc-alpha.c:5039 +#: config/tc-alpha.c:5268 msgid "File overrides no-base-register option." msgstr "Dosya no-base-register seçeneğini etkisizleştirdi" -#: config/tc-alpha.c:5056 +#: config/tc-alpha.c:5285 #, c-format msgid "Bad base register, using $%d." msgstr "Hatalı temel yazmaç, $%d kullanıldı." -#: config/tc-alpha.c:5078 +#: config/tc-alpha.c:5307 #, c-format msgid "Alignment too large: %d. assumed" msgstr "Hizalama fazla büyük: %d. varsayıldı" -#: config/tc-alpha.c:5082 config/tc-d30v.c:2214 +#: config/tc-alpha.c:5311 config/tc-d30v.c:2214 msgid "Alignment negative: 0 assumed" msgstr "Hizalama negatif: 0 varsayıldı" -#: config/tc-alpha.c:5394 +#: config/tc-alpha.c:5623 #, c-format msgid "Chose GP value of %lx\n" msgstr "GP değeri olarak %lx seçildi\n" -#: config/tc-alpha.c:5410 config/tc-ia64.c:932 -msgid "Bad .section directive: want a,s,w,x,M,S in string" -msgstr "Hatalı .section yönergesi: dizgede a,s,w,x,M,S olmalı" +#: config/tc-alpha.c:5639 config/tc-ia64.c:958 +msgid "Bad .section directive: want a,s,w,x,M,S,G,T in string" +msgstr "Hatalı .section yönergesi: dizgede a,s,w,x,M,S,T olmalı" -#: config/tc-arc.c:1616 config/tc-arm.c:10246 +#: config/tc-arc.c:1616 config/tc-arm.c:10347 msgid "md_estimate_size_before_relax\n" msgstr "md_estimate_size_before_relax\n" @@ -1454,760 +1531,1060 @@ msgstr "md_estimate_size_before_relax\n" msgid "md_convert_frag\n" msgstr "md_convert_frag\n" -#: config/tc-arm.c:664 +#: config/tc-arm.c:681 msgid "ARM register expected" msgstr "ARM yazmacı beklendi" -#: config/tc-arm.c:665 config/tc-arm.c:2814 +#: config/tc-arm.c:682 config/tc-arm.c:2846 msgid "bad or missing co-processor number" msgstr "Hatalı veya eksik yardımcı işlemci numarası" #. In the few cases where we might be able to accept something else #. this error can be overridden. -#: config/tc-arm.c:666 config/tc-arm.c:2869 +#: config/tc-arm.c:683 config/tc-arm.c:2901 msgid "co-processor register expected" msgstr "Yardımcı işlemci yazmacı beklendi" -#: config/tc-arm.c:667 +#: config/tc-arm.c:684 msgid "FPA register expected" msgstr "FPA yazmacı beklendi" -#: config/tc-arm.c:668 +#: config/tc-arm.c:685 msgid "VFP single precision register expected" msgstr "tek doğruluklu VFP yazmacı beklendi" -#: config/tc-arm.c:669 +#: config/tc-arm.c:686 msgid "VFP double precision register expected" msgstr "Çift doğruluklu VFP yazmacı beklendi" -#: config/tc-arm.c:670 +#: config/tc-arm.c:687 msgid "Maverick MVF register expected" msgstr "Maverick MVF yazmacı beklendi" -#: config/tc-arm.c:671 +#: config/tc-arm.c:688 msgid "Maverick MVD register expected" msgstr "Maverick MVD yazmacı beklendi" -#: config/tc-arm.c:672 config/tc-arm.c:673 +#: config/tc-arm.c:689 config/tc-arm.c:690 msgid "Maverick MVFX register expected" msgstr "Maverick MVFX yazmacı beklendi" -#: config/tc-arm.c:674 +#: config/tc-arm.c:691 msgid "Maverick MVAX register expected" msgstr "Maverick MVAX yazmacı beklendi" -#: config/tc-arm.c:675 +#: config/tc-arm.c:692 msgid "Maverick DSPSC register expected" msgstr "Maverick DSPSC yazmacı beklendi" -#: config/tc-arm.c:2013 +#: config/tc-arm.c:2036 msgid "bad arguments to instruction" msgstr "İşleme hatalı argümanlar verilmiş" -#: config/tc-arm.c:2014 +#: config/tc-arm.c:2037 msgid "r15 not allowed here" msgstr "r15 burada kullanılamaz" -#: config/tc-arm.c:2015 +#: config/tc-arm.c:2038 msgid "instruction is not conditional" msgstr "İşlem koşullu değil" -#: config/tc-arm.c:2016 +#: config/tc-arm.c:2039 msgid "acc0 expected" msgstr "acc0 beklendi" -#: config/tc-arm.c:2155 +#: config/tc-arm.c:2184 msgid "literal pool overflow" msgstr "Literal Havuz Taşması" -#: config/tc-arm.c:2297 +#: config/tc-arm.c:2326 msgid "invalid syntax for .req directive" msgstr ".req yönergesi için geçersiz sözdizimi" -#: config/tc-arm.c:2372 +#: config/tc-arm.c:2401 #, c-format msgid "alignment too large: %d assumed" msgstr "Hizalama fazla büyük: %d varsayıldı" -#: config/tc-arm.c:2375 +#: config/tc-arm.c:2404 msgid "alignment negative. 0 assumed." msgstr "Hizalama negatif. 0 varsayıldı." -#: config/tc-arm.c:2459 +#: config/tc-arm.c:2488 #, c-format msgid "expected comma after name \"%s\"" msgstr "\"%s\" isminden sonra virgül beklendi" -#: config/tc-arm.c:2509 config/tc-m32r.c:418 +#: config/tc-arm.c:2538 config/tc-m32r.c:418 #, c-format msgid "symbol `%s' already defined" msgstr "`%s' sembolü zaten tanımlanmış" -#: config/tc-arm.c:2580 +#: config/tc-arm.c:2612 msgid "selected processor does not support THUMB opcodes" msgstr "seçilen işlemci THUMB opkodlarını desteklemiyor" -#: config/tc-arm.c:2593 +#: config/tc-arm.c:2625 msgid "selected processor does not support ARM opcodes" msgstr "seçilen işlemci ARM opkodlarını desteklemiyor" -#: config/tc-arm.c:2605 +#: config/tc-arm.c:2637 #, c-format msgid "invalid instruction size selected (%d)" msgstr "geçersiz işlem boyutu seçildi (%d)" -#: config/tc-arm.c:2640 +#: config/tc-arm.c:2672 #, c-format msgid "invalid operand to .code directive (%d) (expecting 16 or 32)" msgstr ".code yönergesine geçersiz işlenen (%d) verilmiş (16 veya 32 beklendi)" -#: config/tc-arm.c:2651 +#: config/tc-arm.c:2683 msgid "garbage following instruction" msgstr "İşlemden sonra bozulma" #. In the few cases where we might be able to accept something else #. this error can be overridden. -#: config/tc-arm.c:2701 +#: config/tc-arm.c:2733 #, c-format msgid "register expected, not '%.100s'" msgstr "Yazmaç beklendi, '%.100s' değil" #. In the few cases where we might be able to accept #. something else this error can be overridden. -#: config/tc-arm.c:2773 +#: config/tc-arm.c:2805 msgid "flag for {c}psr instruction expected" msgstr "{c}psr işlemi için bayrak beklendi" -#: config/tc-arm.c:2807 +#: config/tc-arm.c:2839 msgid "illegal co-processor number" msgstr "Geçersiz yardımcı işlemci numarası" -#: config/tc-arm.c:2839 config/tc-arm.c:3877 config/tc-arm.c:4059 +#: config/tc-arm.c:2871 config/tc-arm.c:3931 config/tc-arm.c:4113 msgid "bad or missing expression" msgstr "hatalı veya eksik ifade" -#: config/tc-arm.c:2845 +#: config/tc-arm.c:2877 msgid "immediate co-processor expression too large" msgstr "şimdiki yardımcı işlemci ifadesi fazla büyük" #. In the few cases where we might be able to accept something else #. this error can be overridden. -#: config/tc-arm.c:2892 +#: config/tc-arm.c:2924 msgid "floating point register expected" msgstr "Kayan nokta yazmacı beklendi" -#: config/tc-arm.c:2909 +#: config/tc-arm.c:2941 msgid "immediate expression expected" msgstr "şimdi ifade beklendi" -#: config/tc-arm.c:2924 +#: config/tc-arm.c:2956 msgid "co-processor address must be word aligned" msgstr "yardımcı işlemci adresi word hizalı olmalı" -#: config/tc-arm.c:2930 +#: config/tc-arm.c:2962 msgid "offset too large" msgstr "göreli konum fazla büyük" -#: config/tc-arm.c:2979 +#: config/tc-arm.c:3011 msgid "pc may not be used in post-increment" msgstr "pc arttırma sonrası kullanılamaz" -#: config/tc-arm.c:2995 config/tc-arm.c:3440 config/tc-arm.c:4228 config/tc-arm.c:5095 config/tc-arm.c:5429 +#: config/tc-arm.c:3027 config/tc-arm.c:3472 config/tc-arm.c:4282 +#: config/tc-arm.c:5149 config/tc-arm.c:5483 msgid "pre-indexed expression expected" msgstr "önceden indekslenmiş ifade beklendi" -#: config/tc-arm.c:3008 config/tc-arm.c:3453 config/tc-arm.c:4239 config/tc-arm.c:5107 config/tc-arm.c:5441 config/tc-arm.c:5790 config/tc-arm.c:8452 config/tc-arm.c:8467 +#: config/tc-arm.c:3040 config/tc-arm.c:3485 config/tc-arm.c:4293 +#: config/tc-arm.c:5161 config/tc-arm.c:5495 config/tc-arm.c:5844 +#: config/tc-arm.c:8508 config/tc-arm.c:8523 msgid "missing ]" msgstr "eksik ]" -#: config/tc-arm.c:3018 +#: config/tc-arm.c:3050 msgid "pc may not be used with write-back" msgstr "pc, geri-yazma (write-back) ile kullanılamaz" -#: config/tc-arm.c:3070 +#: config/tc-arm.c:3102 msgid "comma expected after register name" msgstr "yazmaç adından sonra virgül beklendi" -#: config/tc-arm.c:3089 +#: config/tc-arm.c:3121 msgid "CPSR or SPSR expected" msgstr "CPSR veya SPSR beklendi" -#: config/tc-arm.c:3115 +#: config/tc-arm.c:3147 msgid "comma missing after psr flags" msgstr "psr bayraklarından sonra virgül eksik" -#: config/tc-arm.c:3131 config/tc-arm.c:3141 +#: config/tc-arm.c:3163 config/tc-arm.c:3173 msgid "only a register or immediate value can follow a psr flag" msgstr "bir psr bayrağından sonra yalnızca yazmaç veya şimdiki değer gelebilir" -#: config/tc-arm.c:3152 +#: config/tc-arm.c:3184 msgid "immediate value cannot be used to set this field" msgstr "şimdiki değer, bu alanı değere atamak için kullanılamaz" -#: config/tc-arm.c:3170 config/tc-arm.c:4455 config/tc-arm.c:4735 config/tc-arm.c:4755 config/tc-i960.c:1924 +#: config/tc-arm.c:3202 config/tc-arm.c:4509 config/tc-arm.c:4789 +#: config/tc-arm.c:4809 config/tc-i960.c:1925 msgid "invalid constant" msgstr "geçersiz sabit" -#: config/tc-arm.c:3218 +#: config/tc-arm.c:3250 msgid "rdhi, rdlo and rm must all be different" msgstr "rdhi, rdlo ve rm'un hepsi farklı olmalıdır" -#: config/tc-arm.c:3272 +#: config/tc-arm.c:3304 msgid "rd and rm should be different in mul" msgstr "mul içinde rd ve rm farklı olmalıdır" -#: config/tc-arm.c:3326 +#: config/tc-arm.c:3358 msgid "rd and rm should be different in mla" msgstr "mla içinde rd ve rm farklı olmalıdır" -#: config/tc-arm.c:3374 +#: config/tc-arm.c:3406 #, c-format msgid "acc0 expected, not '%.100s'" msgstr "acc0 beklendi, '%.100s' değil" -#: config/tc-arm.c:3552 +#: config/tc-arm.c:3584 msgid "rdhi and rdlo must be different" msgstr "rdhi ve rdlo farklı olmalıdır" -#: config/tc-arm.c:3660 +#: config/tc-arm.c:3692 msgid "Warning: instruction unpredictable when using r15" msgstr "Uyarı: r15 kullanılırken işlem sonucu belirsiz" -#: config/tc-arm.c:3886 config/tc-arm.c:4068 config/tc-arm.c:7395 config/tc-arm.c:7428 config/tc-arm.c:7438 +#: config/tc-arm.c:3907 +msgid "use of r15 in bxj is not really useful" +msgstr "bxj içinde r15 kullanılması pek faydalı değil" + +#: config/tc-arm.c:3940 config/tc-arm.c:4122 config/tc-arm.c:7449 +#: config/tc-arm.c:7484 config/tc-arm.c:7494 msgid "immediate value out of range" msgstr "şimdiki değer kapsam dışı" -#: config/tc-arm.c:4191 +#: config/tc-arm.c:4245 msgid "'[' expected after PLD mnemonic" msgstr "PLD ipucundan sonra '[' beklendi" -#: config/tc-arm.c:4213 +#: config/tc-arm.c:4267 msgid "post-indexed expression used in preload instruction" msgstr "önyükleme işleminde sonradan indekslenen ifade kullanıldı" -#: config/tc-arm.c:4218 config/tc-arm.c:4248 +#: config/tc-arm.c:4272 config/tc-arm.c:4302 msgid "writeback used in preload instruction" msgstr "önyükleme işleminde geri-yazma (write-back) kullanıldı" -#: config/tc-arm.c:4290 +#: config/tc-arm.c:4344 msgid "destination register must be even" msgstr "Hedef yazmaç çift sayı olmalı" -#: config/tc-arm.c:4296 +#: config/tc-arm.c:4350 msgid "r14 not allowed here" msgstr "r14 burada kullanılamaz" -#: config/tc-arm.c:4303 +#: config/tc-arm.c:4357 msgid "pre/post-indexing used when modified address register is destination" msgstr "Hedef değiştirilmiş adres yazmacı olduğu zaman önce/sonra indeksleme kullanılır" -#: config/tc-arm.c:4313 +#: config/tc-arm.c:4367 msgid "ldrd destination registers must not overlap index register" msgstr "ldrd hedef yazmacları indeks yazmacı ile örtüşmemeli" -#: config/tc-arm.c:4439 +#: config/tc-arm.c:4493 msgid "bad_segment" msgstr "hatalı_bölüm" -#: config/tc-arm.c:4476 expr.c:1314 read.c:2198 +#: config/tc-arm.c:4530 expr.c:1314 read.c:2203 msgid "bad expression" msgstr "geçersiz ifade" -#: config/tc-arm.c:4499 config/tc-arm.c:4510 +#: config/tc-arm.c:4553 config/tc-arm.c:4564 msgid "shift expression expected" msgstr "Kaydırma ifadesi beklendi" -#: config/tc-arm.c:4534 +#: config/tc-arm.c:4588 msgid "shift requires register or #expression" msgstr "Kaydırma, yazmaç veya #ifade gerektiriyor" -#: config/tc-arm.c:4535 +#: config/tc-arm.c:4589 msgid "shift requires #expression" msgstr "Kaydırma #ifade gerektiriyor" -#: config/tc-arm.c:4565 +#: config/tc-arm.c:4619 msgid "shift of 0 ignored." msgstr "Sıfırlık kaydırma yoksayıldı." -#: config/tc-arm.c:4571 +#: config/tc-arm.c:4625 msgid "invalid immediate shift" msgstr "Geçersiz şimdiki kaydırma" -#: config/tc-arm.c:4726 config/tc-arm.c:5143 config/tc-arm.c:5478 config/tc-arm.c:6087 config/tc-v850.c:1956 config/tc-v850.c:1977 +#: config/tc-arm.c:4780 config/tc-arm.c:5197 config/tc-arm.c:5532 +#: config/tc-arm.c:6141 config/tc-v850.c:1867 config/tc-v850.c:1888 msgid "constant expression expected" msgstr "sabit ifade beklendi" -#: config/tc-arm.c:4768 +#: config/tc-arm.c:4822 msgid "register or shift expression expected" msgstr "Yazmaç veya kaydırma ifadesi beklendi" -#: config/tc-arm.c:4821 +#: config/tc-arm.c:4875 msgid "invalid floating point immediate expression" msgstr "Geçersiz kayan nokta şimdiki ifadesi" -#: config/tc-arm.c:4825 +#: config/tc-arm.c:4879 msgid "floating point register or immediate expression expected" msgstr "Kayan nokta yazmacı veya şimdiki ifade beklendi" -#: config/tc-arm.c:4979 config/tc-arm.c:5309 +#: config/tc-arm.c:5033 config/tc-arm.c:5363 msgid "address offset too large" msgstr "adres göreli konumu fazla büyük" -#: config/tc-arm.c:5037 config/tc-arm.c:5227 config/tc-arm.c:5369 +#: config/tc-arm.c:5091 config/tc-arm.c:5281 config/tc-arm.c:5423 msgid "address expected" msgstr "Adres beklendi" -#: config/tc-arm.c:5067 config/tc-arm.c:5079 config/tc-arm.c:5116 config/tc-arm.c:5245 config/tc-arm.c:5399 config/tc-arm.c:5413 config/tc-arm.c:5450 +#: config/tc-arm.c:5121 config/tc-arm.c:5133 config/tc-arm.c:5170 +#: config/tc-arm.c:5299 config/tc-arm.c:5453 config/tc-arm.c:5467 +#: config/tc-arm.c:5504 #, c-format msgid "%s register same as write-back base" msgstr "%s yazmacı geri-yazma (write-back) temeli ile aynı" -#: config/tc-arm.c:5069 config/tc-arm.c:5081 config/tc-arm.c:5118 config/tc-arm.c:5247 config/tc-arm.c:5401 config/tc-arm.c:5415 config/tc-arm.c:5452 +#: config/tc-arm.c:5123 config/tc-arm.c:5135 config/tc-arm.c:5172 +#: config/tc-arm.c:5301 config/tc-arm.c:5455 config/tc-arm.c:5469 +#: config/tc-arm.c:5506 msgid "destination" msgstr "hedef" -#: config/tc-arm.c:5069 config/tc-arm.c:5081 config/tc-arm.c:5118 config/tc-arm.c:5247 config/tc-arm.c:5401 config/tc-arm.c:5415 config/tc-arm.c:5452 +#: config/tc-arm.c:5123 config/tc-arm.c:5135 config/tc-arm.c:5172 +#: config/tc-arm.c:5301 config/tc-arm.c:5455 config/tc-arm.c:5469 +#: config/tc-arm.c:5506 msgid "source" msgstr "kaynak" -#: config/tc-arm.c:5128 config/tc-arm.c:5462 config/tc-arm.c:7699 +#: config/tc-arm.c:5182 config/tc-arm.c:5516 config/tc-arm.c:7755 msgid "invalid pseudo operation" msgstr "geçersiz sanal işlem" -#: config/tc-arm.c:5180 config/tc-arm.c:5513 +#: config/tc-arm.c:5234 config/tc-arm.c:5567 msgid "literal pool insertion failed" msgstr "literal havuza ekleme başarısız" -#: config/tc-arm.c:5275 config/tc-arm.c:5281 +#: config/tc-arm.c:5329 config/tc-arm.c:5335 msgid "post-indexed expression expected" msgstr "sonradan indekslenmiş ifade beklendi" -#: config/tc-arm.c:5579 +#: config/tc-arm.c:5633 msgid "bad range in register list" msgstr "Yazmaç listesinde hatalı aralık" -#: config/tc-arm.c:5587 config/tc-arm.c:5596 config/tc-arm.c:5638 +#: config/tc-arm.c:5641 config/tc-arm.c:5650 config/tc-arm.c:5692 #, c-format msgid "Warning: duplicated register (r%d) in register list" msgstr "Uyarı: Yazmaç listesinde tekrarlanan yazmaç (r%d)" -#: config/tc-arm.c:5599 +#: config/tc-arm.c:5653 msgid "Warning: register range not in ascending order" msgstr "Uyarı: Yazmaç aralığı artan sıralamada değil" -#: config/tc-arm.c:5611 +#: config/tc-arm.c:5665 msgid "missing `}'" msgstr "Eksik `}'" -#: config/tc-arm.c:5627 +#: config/tc-arm.c:5681 msgid "invalid register mask" msgstr "geçersiz yazmaç maskesi" -#: config/tc-arm.c:5648 config/tc-arm.c:8709 config/tc-arm.c:8809 config/tc-avr.c:860 config/tc-cris.c:3006 config/tc-d10v.c:1563 config/tc-d30v.c:1863 config/tc-mips.c:3641 config/tc-mips.c:4630 config/tc-mips.c:5486 config/tc-mips.c:6091 config/tc-ppc.c:5143 config/tc-v850.c:2376 +#: config/tc-arm.c:5702 config/tc-arm.c:8765 config/tc-arm.c:8865 +#: config/tc-avr.c:866 config/tc-cris.c:3006 config/tc-d10v.c:1724 +#: config/tc-d30v.c:1863 config/tc-mips.c:3509 config/tc-mips.c:4523 +#: config/tc-mips.c:5436 config/tc-mips.c:6090 config/tc-ppc.c:5154 +#: config/tc-v850.c:2287 config/tc-xstormy16.c:479 msgid "expression too complex" msgstr "ifade fazla karmaşık" -#: config/tc-arm.c:5686 +#: config/tc-arm.c:5740 msgid "r15 not allowed as base register" msgstr "r15 temel yazmaç olarak kullanılamaz" -#: config/tc-arm.c:5750 config/tc-arm.c:5764 +#: config/tc-arm.c:5804 config/tc-arm.c:5818 msgid "r15 not allowed in swap" msgstr "r15 takasta kullanılamaz" -#: config/tc-arm.c:5859 +#: config/tc-arm.c:5913 msgid "use of r15 in bx in ARM mode is not really useful" msgstr "ARM kipinde bx içinde r15 kullanılması pek faydalı değil" -#: config/tc-arm.c:6093 +#: config/tc-arm.c:6147 msgid "constant value required for number of registers" msgstr "Yazmaç sayısı için sabit değer gerekli" -#: config/tc-arm.c:6101 +#: config/tc-arm.c:6155 msgid "number of registers must be in the range [1:4]" msgstr "Yazmaç sayısı aralık içinde olmalı [1:4]" -#: config/tc-arm.c:6162 +#: config/tc-arm.c:6216 msgid "r15 not allowed as base register with write-back" msgstr "R15, geri-yazmalı (write-back) temel yazmaç olarak kullanılamaz" -#: config/tc-arm.c:6544 +#: config/tc-arm.c:6598 msgid "only two consecutive VFP SP registers allowed here" msgstr "burada yalnızca iki ardışık VFP SP yazmacına izin var" -#: config/tc-arm.c:6712 +#: config/tc-arm.c:6766 msgid "VFP system register expected" msgstr "VFP sistem yazmacı beklendi" -#: config/tc-arm.c:6850 config/tc-arm.c:6889 config/tc-arm.c:6902 config/tc-arm.c:6963 config/tc-arm.c:7002 config/tc-arm.c:7015 config/tc-mips.c:9060 config/tc-mips.c:9090 +#: config/tc-arm.c:6904 config/tc-arm.c:6943 config/tc-arm.c:6956 +#: config/tc-arm.c:7017 config/tc-arm.c:7056 config/tc-arm.c:7069 +#: config/tc-mips.c:9255 config/tc-mips.c:9285 msgid "invalid register list" msgstr "geçersiz yazmaç listesi" -#: config/tc-arm.c:6856 config/tc-arm.c:6969 +#: config/tc-arm.c:6910 config/tc-arm.c:7023 msgid "register list not in ascending order" msgstr "Yazmaç listesi artan sıralamada değil" -#: config/tc-arm.c:6881 config/tc-arm.c:6994 +#: config/tc-arm.c:6935 config/tc-arm.c:7048 msgid "register range not in ascending order" msgstr "Yazmaç aralığı artan sıralamada değil" -#: config/tc-arm.c:6919 config/tc-arm.c:7032 +#: config/tc-arm.c:6973 config/tc-arm.c:7086 msgid "non-contiguous register range" msgstr "ardışık olmayan yazmaç aralığı" -#: config/tc-arm.c:7062 config/tc-arm.c:7099 +#: config/tc-arm.c:7116 config/tc-arm.c:7153 msgid "this addressing mode requires base-register writeback" msgstr "bu adresleme kip temel yazmaca geriyazma (write-back) gerektiriyor" -#: config/tc-arm.c:7259 +#: config/tc-arm.c:7313 msgid "lo register required" msgstr "lo yazmacı gerekli" -#: config/tc-arm.c:7267 +#: config/tc-arm.c:7321 msgid "hi register required" msgstr "hi yazmacı gerekli" -#: config/tc-arm.c:7337 config/tc-arm.c:8541 +#: config/tc-arm.c:7391 config/tc-arm.c:8597 msgid "dest and source1 must be the same register" msgstr "hedef ve kaynak1 aynı yazmaç olmalı" -#: config/tc-arm.c:7344 +#: config/tc-arm.c:7398 msgid "subtract valid only on lo regs" msgstr "çıkarma yalnızca lo yazmaçlarında geçerli" -#: config/tc-arm.c:7368 +#: config/tc-arm.c:7422 msgid "invalid Hi register with immediate" msgstr "Şimdiki ile geçersiz hi yazmacı" -#: config/tc-arm.c:7406 +#: config/tc-arm.c:7462 msgid "invalid immediate value for stack adjust" msgstr "Yığıt düzeltme için geçersiz şimdiki değer" -#: config/tc-arm.c:7417 +#: config/tc-arm.c:7473 msgid "invalid immediate for address calculation" msgstr "Adres hesaplaması için geçersiz şimdiki" -#: config/tc-arm.c:7504 +#: config/tc-arm.c:7560 msgid "source1 and dest must be same register" msgstr "kaynak1 ve hedef aynı yazmaç olmalı" -#: config/tc-arm.c:7538 +#: config/tc-arm.c:7594 msgid "invalid immediate for shift" msgstr "Kaydırma için geçersiz şimdiki" -#: config/tc-arm.c:7617 +#: config/tc-arm.c:7673 msgid "only lo regs allowed with immediate" msgstr "Şimdiki ile yalnızca lo yazmaçları kullanılabilir" -#: config/tc-arm.c:7636 +#: config/tc-arm.c:7692 msgid "invalid immediate" msgstr "geçersiz şimdiki" -#: config/tc-arm.c:7690 +#: config/tc-arm.c:7746 msgid "expected ']'" msgstr "']' beklendi" -#: config/tc-arm.c:7763 +#: config/tc-arm.c:7819 msgid "byte or halfword not valid for base register" msgstr "bayt veya halfword temel yazmaç için geçersiz" -#: config/tc-arm.c:7768 +#: config/tc-arm.c:7824 msgid "r15 based store not allowed" msgstr "R15 temelli saklama geçersiz" -#: config/tc-arm.c:7773 +#: config/tc-arm.c:7829 msgid "invalid base register for register offset" msgstr "Yazmaç göreli konumu için geçersiz temel yazmaç" -#: config/tc-arm.c:7791 config/tc-arm.c:7826 +#: config/tc-arm.c:7847 config/tc-arm.c:7882 msgid "invalid offset" msgstr "geçersiz göreli konum" -#: config/tc-arm.c:7802 +#: config/tc-arm.c:7858 msgid "invalid base register in load/store" msgstr "yükle/sakla için geçersiz temel yazmaç" -#: config/tc-arm.c:8345 +#: config/tc-arm.c:8401 msgid "expecting immediate, 7bit operand" msgstr "şimdiki, 7bitlik işlenen beklendi" -#: config/tc-arm.c:8360 +#: config/tc-arm.c:8416 msgid "immediate out of range" msgstr "şimdiki değer kapsam dışı" -#: config/tc-arm.c:8403 +#: config/tc-arm.c:8459 msgid "offset expected" msgstr "görece beklendi" -#: config/tc-arm.c:8412 config/tc-pj.c:528 config/tc-sh.c:3030 +#: config/tc-arm.c:8468 config/tc-pj.c:528 config/tc-sh.c:3591 msgid "offset out of range" msgstr "göreli konum kapsam dışı" -#: config/tc-arm.c:8549 +#: config/tc-arm.c:8605 msgid "Rs and Rd must be different in MUL" msgstr "MUL içinde Rs ve Rd farklı olmalı" -#: config/tc-arm.c:8693 +#: config/tc-arm.c:8749 msgid "inserted missing '!': load/store multiple always writes back base register" msgstr "Eksik '!' eklendi: yükle/sakla çoğulu hep temel yazmaca geri yazar" -#: config/tc-arm.c:8715 +#: config/tc-arm.c:8771 msgid "only lo-regs valid in load/store multiple" msgstr "yükle/sakla çoğulunda yalnız lo yazmaçları geçerli" -#: config/tc-arm.c:8761 +#: config/tc-arm.c:8817 msgid "syntax: ldrs[b] Rd, [Rb, Ro]" msgstr "Sözdizim: ldrs[b] Rd, [Rb, Ro]" -#: config/tc-arm.c:8825 +#: config/tc-arm.c:8881 msgid "invalid register list to push/pop instruction" msgstr "emme/basma işlemi için geçersiz yazmaç listesi" -#: config/tc-arm.c:8937 config/tc-arm.c:9115 +#: config/tc-arm.c:8993 config/tc-arm.c:9171 msgid "virtual memory exhausted" msgstr "Sanal bellek tükendi" -#: config/tc-arm.c:9018 +#: config/tc-arm.c:9074 #, c-format msgid "register '%s' does not exist\n" msgstr "'%s' yazmacı yok\n" -#: config/tc-arm.c:9022 +#: config/tc-arm.c:9078 #, c-format msgid "ignoring redefinition of register alias '%s' to non-existant register '%s'" msgstr "" "'%s' yazmaç rumuzunun var olmayan '%s' yazmacı olarak yeniden tanımlanması\n" "yoksayıldı" -#: config/tc-arm.c:9031 +#: config/tc-arm.c:9087 #, c-format msgid "ignoring redefinition of register alias '%s'" msgstr "'%s' yazmaç rumuzunun yeniden tanımlanması yoksayıldı" -#: config/tc-arm.c:9037 +#: config/tc-arm.c:9093 msgid "ignoring incomplete .req pseuso op" msgstr "eksik .req pseudo-op yoksayıldı" -#: config/tc-arm.c:9312 +#: config/tc-arm.c:9195 +msgid "use of old and new-style options to set CPU type" +msgstr "CPU türünü belirlemekte hem eski hem de yeni tarz seçeneği kullanılmış" + +#: config/tc-arm.c:9205 +msgid "use of old and new-style options to set FPU type" +msgstr "FPU türünü belirlemekte hem eski hem de yeni tarz seçeneği kullanılmış" + +#: config/tc-arm.c:9415 msgid "bad call to MD_ATOF()" msgstr "MD_ATOF()'a hatalı çağrı" -#: config/tc-arm.c:9542 +#: config/tc-arm.c:9645 #, c-format msgid "invalid constant (%lx) after fixup" msgstr "düzeltmeden sonra geçersiz sabit (%lx)" -#: config/tc-arm.c:9578 +#: config/tc-arm.c:9681 #, c-format msgid "unable to compute ADRL instructions for PC offset of 0x%lx" msgstr "0x%lx PC göreli konumu için ADRL işlemleri hesaplanamadı" -#: config/tc-arm.c:9608 +#: config/tc-arm.c:9711 #, c-format msgid "bad immediate value for offset (%ld)" msgstr "göreli konum (%ld) için hatalı şimdiki değer" -#: config/tc-arm.c:9630 config/tc-arm.c:9652 +#: config/tc-arm.c:9733 config/tc-arm.c:9755 msgid "invalid literal constant: pool needs to be closer" msgstr "geçersiz literal sabit: havuz daha yakın olmalı" -#: config/tc-arm.c:9632 +#: config/tc-arm.c:9735 #, c-format msgid "bad immediate value for half-word offset (%ld)" msgstr "halfword göreli konumu (%ld) için hatalı şimdiki değer" -#: config/tc-arm.c:9669 +#: config/tc-arm.c:9772 msgid "shift expression is too large" msgstr "kaydırma ifadesi fazla büyük" -#: config/tc-arm.c:9688 config/tc-arm.c:9697 +#: config/tc-arm.c:9791 config/tc-arm.c:9800 msgid "invalid swi expression" msgstr "geçersiz swi ifadesi" -#: config/tc-arm.c:9707 +#: config/tc-arm.c:9810 msgid "invalid expression in load/store multiple" msgstr "yükle/sakla çoğulunda geçersiz ifade" -#: config/tc-arm.c:9760 +#: config/tc-arm.c:9863 msgid "GAS can't handle same-section branch dest >= 0x04000000" msgstr "GAS aynı bölüm dal hedefini desteklemiyor >= 0x04000000" -#: config/tc-arm.c:9769 +#: config/tc-arm.c:9872 msgid "out of range branch" msgstr "dal kapsamı dışında" -#: config/tc-arm.c:9802 config/tc-arm.c:9818 +#: config/tc-arm.c:9905 config/tc-arm.c:9921 msgid "branch out of range" msgstr "dal kapsam dışı" -#: config/tc-arm.c:9841 +#: config/tc-arm.c:9945 msgid "branch with link out of range" msgstr "dal ile bağlantı kapsam dışı" -#: config/tc-arm.c:9917 +#: config/tc-arm.c:10018 msgid "illegal value for co-processor offset" msgstr "yardımcı işlemci göreli konumu için geçersiz değer" -#: config/tc-arm.c:9941 +#: config/tc-arm.c:10042 #, c-format msgid "invalid offset, target not word aligned (0x%08X)" msgstr "geçersiz göreli konum, hedef word hizalı değil (0x%08X)" -#: config/tc-arm.c:9947 config/tc-arm.c:9956 config/tc-arm.c:9963 config/tc-arm.c:9970 config/tc-arm.c:9977 +#: config/tc-arm.c:10048 config/tc-arm.c:10057 config/tc-arm.c:10064 +#: config/tc-arm.c:10071 config/tc-arm.c:10078 #, c-format msgid "invalid offset, value too big (0x%08lX)" msgstr "geçersiz göreli konum, değer fazla büyük (0x%08lX)" -#: config/tc-arm.c:10016 +#: config/tc-arm.c:10117 msgid "invalid immediate for stack address calculation" msgstr "yığıt adres hesaplaması için geçersiz şimdiki" -#: config/tc-arm.c:10025 +#: config/tc-arm.c:10126 #, c-format msgid "invalid immediate for address calculation (value = 0x%08lX)" msgstr "adres hesaplaması için geçersiz şimdiki (değer = 0x%08lX)" -#: config/tc-arm.c:10035 +#: config/tc-arm.c:10136 msgid "invalid 8bit immediate" msgstr "geçersiz 8bitlik şimdiki" -#: config/tc-arm.c:10043 +#: config/tc-arm.c:10144 msgid "invalid 3bit immediate" msgstr "geçersiz 3bitlik şimdiki" -#: config/tc-arm.c:10059 +#: config/tc-arm.c:10160 #, c-format msgid "invalid immediate: %ld is too large" msgstr "geçersiz şimdiki: %ld fazla büyük" -#: config/tc-arm.c:10074 +#: config/tc-arm.c:10175 #, c-format msgid "illegal Thumb shift value: %ld" msgstr "geçersiz Thumb kaydırma değeri: %ld" -#: config/tc-arm.c:10088 +#: config/tc-arm.c:10189 #, c-format msgid "bad relocation fixup type (%d)" msgstr "hatalı yerdeğişim düzeltme türü (%d)" -#: config/tc-arm.c:10159 +#: config/tc-arm.c:10260 msgid "literal referenced across section boundary (Implicit dump?)" msgstr "literal bölüm sınırı ötesinden çağrılmış (Örtük döküm?)" -#: config/tc-arm.c:10172 +#: config/tc-arm.c:10273 #, c-format msgid "internal relocation (type %d) not fixed up (IMMEDIATE)" msgstr "iç yerdeğişim (%d türü) düzeltilmemiş (ŞİMDİKİ)" -#: config/tc-arm.c:10178 +#: config/tc-arm.c:10279 msgid "ADRL used for a symbol not defined in the same file" msgstr "Aynı dosyada tanımlanmamış bir sembol için ADRL kullanılmış" -#: config/tc-arm.c:10183 +#: config/tc-arm.c:10284 #, c-format msgid "internal_relocation (type %d) not fixed up (OFFSET_IMM)" msgstr "iç yerdeğişim (%d türü) düzeltilmemiş (OFFSET_IMM - şimdiki göreli konum)" -#: config/tc-arm.c:10204 config/tc-cris.c:2940 config/tc-mcore.c:2104 config/tc-mmix.c:2840 config/tc-ns32k.c:2350 +#: config/tc-arm.c:10305 config/tc-cris.c:2940 config/tc-mcore.c:2104 +#: config/tc-mmix.c:2869 config/tc-ns32k.c:2350 msgid "" msgstr "" -#: config/tc-arm.c:10207 config/tc-arm.c:10228 +#: config/tc-arm.c:10308 config/tc-arm.c:10329 #, c-format msgid "cannot represent %s relocation in this object file format" msgstr "bu nesne dosya biçeminde %s yerdeğişimi gösterilemez" -#: config/tc-arm.c:10325 +#: config/tc-arm.c:10425 #, c-format msgid "no operator -- statement `%s'\n" msgstr "işlemimi yok -- `%s' deyimi\n" -#: config/tc-arm.c:10343 config/tc-arm.c:10368 +#: config/tc-arm.c:10443 config/tc-arm.c:10468 #, c-format msgid "selected processor does not support `%s'" msgstr "seçilen işlemci `%s'ı desteklemiyor" -#: config/tc-arm.c:10385 +#: config/tc-arm.c:10485 #, c-format msgid "bad instruction `%s'" msgstr "hatalı işlem `%s'" -#: config/tc-arm.c:10583 +#: config/tc-arm.c:10586 +msgid "generate PIC code" +msgstr "PIC kodu üretir" + +#: config/tc-arm.c:10587 +msgid "assemble Thumb code" +msgstr "Thumb kodunu çevirir" + +#: config/tc-arm.c:10588 +msgid "support ARM/Thumb interworking" +msgstr "ARM/Thumb beraber çalışmasını destekler" + +#: config/tc-arm.c:10590 +msgid "use old ABI (ELF only)" +msgstr "eski ABI'yi kullanır (yalnız ELF)" + +#: config/tc-arm.c:10591 +msgid "code uses 32-bit program counter" +msgstr "kod, 32 bit yazılım sayacı kullanıyor" + +#: config/tc-arm.c:10592 +msgid "code uses 26-bit program counter" +msgstr "kod, 26 bitlik yazılım sayacı kullanıyor" + +#: config/tc-arm.c:10593 +msgid "floating point args are in fp regs" +msgstr "kayan nokta argümanları kayan nokta yazmaçlarında" + +#: config/tc-arm.c:10595 +msgid "re-entrant code" +msgstr "yeniden girişli kod" + +#: config/tc-arm.c:10596 +msgid "code is ATPCS conformant" +msgstr "kod ATPCS uyumlu" + +#: config/tc-arm.c:10597 +msgid "assemble for big-endian" +msgstr "büyük sonlu için çevirir" + +#: config/tc-arm.c:10598 +msgid "assemble for little-endian" +msgstr "küçük-sonlu için çevirir" + +#. These are recognized by the assembler, but have no affect on code. +#: config/tc-arm.c:10602 +msgid "use frame pointer" +msgstr "çerçeve imleyicisi kullanır" + +#: config/tc-arm.c:10603 +msgid "use stack size checking" +msgstr "yığıt boyu sağlaması kullanır" + +#. DON'T add any new processors to this list -- we want the whole list +#. to go away... Add them to the processors table instead. +#: config/tc-arm.c:10607 config/tc-arm.c:10608 +msgid "use -mcpu=arm1" +msgstr " -mcpu=arm1 seçeneğini kullanır" + +#: config/tc-arm.c:10609 config/tc-arm.c:10610 +msgid "use -mcpu=arm2" +msgstr " -mcpu=arm2 seçeneğini kullanır" + +#: config/tc-arm.c:10611 config/tc-arm.c:10612 +msgid "use -mcpu=arm250" +msgstr " -mcpu=arm250 seçeneğini kullanır" + +#: config/tc-arm.c:10613 config/tc-arm.c:10614 +msgid "use -mcpu=arm3" +msgstr " -mcpu=arm3 seçeneğini kullanır" + +#: config/tc-arm.c:10615 config/tc-arm.c:10616 +msgid "use -mcpu=arm6" +msgstr " -mcpu=arm6 seçeneğini kullanır" + +#: config/tc-arm.c:10617 config/tc-arm.c:10618 +msgid "use -mcpu=arm600" +msgstr " -mcpu=arm600 seçeneğini kullanır" + +#: config/tc-arm.c:10619 config/tc-arm.c:10620 +msgid "use -mcpu=arm610" +msgstr " -mcpu=arm610 seçeneğini kullanır" + +#: config/tc-arm.c:10621 config/tc-arm.c:10622 +msgid "use -mcpu=arm620" +msgstr " -mcpu=arm620 seçeneğini kullanır" + +#: config/tc-arm.c:10623 config/tc-arm.c:10624 +msgid "use -mcpu=arm7" +msgstr " -mcpu=arm7 seçeneğini kullanır" + +#: config/tc-arm.c:10625 config/tc-arm.c:10626 +msgid "use -mcpu=arm70" +msgstr " -mcpu=arm70 seçeneğini kullanır" + +#: config/tc-arm.c:10627 config/tc-arm.c:10628 +msgid "use -mcpu=arm700" +msgstr " -mcpu=arm700 seçeneğini kullanır" + +#: config/tc-arm.c:10629 config/tc-arm.c:10630 +msgid "use -mcpu=arm700i" +msgstr " -mcpu=arm700i seçeneğini kullanır" + +#: config/tc-arm.c:10631 config/tc-arm.c:10632 +msgid "use -mcpu=arm710" +msgstr " -mcpu=arm710 seçeneğini kullanır" + +#: config/tc-arm.c:10633 config/tc-arm.c:10634 +msgid "use -mcpu=arm710c" +msgstr " -mcpu=arm710c seçeneğini kullanır" + +#: config/tc-arm.c:10635 config/tc-arm.c:10636 +msgid "use -mcpu=arm720" +msgstr " -mcpu=arm720 seçeneğini kullanır" + +#: config/tc-arm.c:10637 config/tc-arm.c:10638 +msgid "use -mcpu=arm7d" +msgstr " -mcpu=arm7d seçeneğini kullanır" + +#: config/tc-arm.c:10639 config/tc-arm.c:10640 +msgid "use -mcpu=arm7di" +msgstr " -mcpu=arm7di seçeneğini kullanır" + +#: config/tc-arm.c:10641 config/tc-arm.c:10642 +msgid "use -mcpu=arm7m" +msgstr " -mcpu=arm7m seçeneğini kullanır" + +#: config/tc-arm.c:10643 config/tc-arm.c:10644 +msgid "use -mcpu=arm7dm" +msgstr " -mcpu=arm7dm seçeneğini kullanır" + +#: config/tc-arm.c:10645 config/tc-arm.c:10646 +msgid "use -mcpu=arm7dmi" +msgstr " -mcpu=arm7dmi seçeneğini kullanır" + +#: config/tc-arm.c:10647 config/tc-arm.c:10648 +msgid "use -mcpu=arm7100" +msgstr " -mcpu=arm7100 seçeneğini kullanır" + +#: config/tc-arm.c:10649 config/tc-arm.c:10650 +msgid "use -mcpu=arm7500" +msgstr " -mcpu=arm7500 seçeneğini kullanır" + +#: config/tc-arm.c:10651 config/tc-arm.c:10652 +msgid "use -mcpu=arm7500fe" +msgstr " -mcpu=arm7500fe seçeneğini kullanır" + +#: config/tc-arm.c:10653 config/tc-arm.c:10654 config/tc-arm.c:10655 +#: config/tc-arm.c:10656 +msgid "use -mcpu=arm7tdmi" +msgstr " -mcpu=arm7tdmi seçeneğini kullanır" + +#: config/tc-arm.c:10657 config/tc-arm.c:10658 +msgid "use -mcpu=arm710t" +msgstr " -mcpu=arm710t seçeneğini kullanır" + +#: config/tc-arm.c:10659 config/tc-arm.c:10660 +msgid "use -mcpu=arm720t" +msgstr " -mcpu=arm720t seçeneğini kullanır" + +#: config/tc-arm.c:10661 config/tc-arm.c:10662 +msgid "use -mcpu=arm740t" +msgstr " -mcpu=arm740t seçeneğini kullanır" + +#: config/tc-arm.c:10663 config/tc-arm.c:10664 +msgid "use -mcpu=arm8" +msgstr " -mcpu=arm8 seçeneğini kullanır" + +#: config/tc-arm.c:10665 config/tc-arm.c:10666 +msgid "use -mcpu=arm810" +msgstr " -mcpu=arm810 seçeneğini kullanır" + +#: config/tc-arm.c:10667 config/tc-arm.c:10668 +msgid "use -mcpu=arm9" +msgstr " -mcpu=arm9 seçeneğini kullanır" + +#: config/tc-arm.c:10669 config/tc-arm.c:10670 +msgid "use -mcpu=arm9tdmi" +msgstr " -mcpu=arm9tdmi seçeneğini kullanır" + +#: config/tc-arm.c:10671 config/tc-arm.c:10672 +msgid "use -mcpu=arm920" +msgstr " -mcpu=arm920 seçeneğini kullanır" + +#: config/tc-arm.c:10673 config/tc-arm.c:10674 +msgid "use -mcpu=arm940" +msgstr " -mcpu=arm940 seçeneğini kullanır" + +#: config/tc-arm.c:10675 +msgid "use -mcpu=strongarm" +msgstr " -mcpu=strongarm seçeneğini kullanır" + +#: config/tc-arm.c:10677 +msgid "use -mcpu=strongarm110" +msgstr " -mcpu=strongarm110 seçeneğini kullanır" + +#: config/tc-arm.c:10679 +msgid "use -mcpu=strongarm1100" +msgstr " -mcpu=strongarm1100 seçeneğini kullanır" + +#: config/tc-arm.c:10681 +msgid "use -mcpu=strongarm1110" +msgstr " -mcpu=strongarm1110 seçeneğini kullanır" + +#: config/tc-arm.c:10682 +msgid "use -mcpu=xscale" +msgstr " -mcpu=xscale seçeneğini kullanır" + +#: config/tc-arm.c:10683 +msgid "use -mcpu=all" +msgstr " -mcpu=all seçeneğini kullanır" + +#. Architecture variants -- don't add any more to this list either. +#: config/tc-arm.c:10686 config/tc-arm.c:10687 +msgid "use -march=armv2" +msgstr " -march=armv2 seçeneğini kullanır" + +#: config/tc-arm.c:10688 config/tc-arm.c:10689 +msgid "use -march=armv2a" +msgstr " -march=armv2a seçeneğini kullanır" + +#: config/tc-arm.c:10690 config/tc-arm.c:10691 +msgid "use -march=armv3" +msgstr " -march=armv3 seçeneğini kullanır" + +#: config/tc-arm.c:10692 config/tc-arm.c:10693 +msgid "use -march=armv3m" +msgstr " -march=armv3m seçeneğini kullanır" + +#: config/tc-arm.c:10694 config/tc-arm.c:10695 +msgid "use -march=armv4" +msgstr " -march=armv4 seçeneğini kullanır" + +#: config/tc-arm.c:10696 config/tc-arm.c:10697 +msgid "use -march=armv4t" +msgstr " -march=armv4t seçeneğini kullanır" + +#: config/tc-arm.c:10698 config/tc-arm.c:10699 +msgid "use -march=armv5" +msgstr " -march=armv5 seçeneğini kullanır" + +#: config/tc-arm.c:10700 config/tc-arm.c:10701 +msgid "use -march=armv5t" +msgstr " -march=armv5t seçeneğini kullanır" + +#: config/tc-arm.c:10702 config/tc-arm.c:10703 +msgid "use -march=armv5te" +msgstr " -march=armv5te seçeneğini kullanır" + +#. Floating point variants -- don't add any more to this list either. +#: config/tc-arm.c:10706 +msgid "use -mfpu=fpe" +msgstr " -mfpu=fpe seçeneğini kullanır" + +#: config/tc-arm.c:10707 +msgid "use -mfpu=fpa10" +msgstr " -mfpu=fpa10 seçeneğini kullanır" + +#: config/tc-arm.c:10708 +msgid "use -mfpu=fpa11" +msgstr " -mfpu=fpa11 seçeneğini kullanır" + +#: config/tc-arm.c:10710 +msgid "use either -mfpu=softfpa or -mfpu=softvfp" +msgstr "ya -mfpu=softfpa ya da -mfpu=softvfp seçeneğini kullanır" + +#: config/tc-arm.c:10890 +msgid "invalid architectural extension" +msgstr "geçersiz mimari eklenti" + +#: config/tc-arm.c:10904 +msgid "missing architectural extension" +msgstr "eksik mimari eklenti" + +#: config/tc-arm.c:10917 #, c-format -msgid "unrecognised APCS switch -m%s" -msgstr "Bilinmeyen APCS bayrağı -m%s" +msgid "unknown architectural extnsion `%s'" +msgstr "`%s' mimari yapısı bilinmiyor" -#: config/tc-arm.c:10738 config/tc-arm.c:10751 config/tc-arm.c:10764 config/tc-arm.c:10777 config/tc-arm.c:10783 +#: config/tc-arm.c:10942 #, c-format -msgid "invalid architecture variant -m%s" -msgstr "Geçersiz platform alt-türü -m%s" - -#: config/tc-arm.c:10790 -#, c-format -msgid "invalid processor variant -m%s" -msgstr "Geçersiz işlemci alt-türü -m%s" - -#: config/tc-arm.c:10813 -msgid "" -" ARM Specific Assembler Options:\n" -" -m[arm][] select processor variant\n" -" -m[arm]v[2|2a|3|3m|4|4t|5[t][e]] select architecture variant\n" -" -marm9e allow Cirrus/DSP instructions\n" -" -mthumb only allow Thumb instructions\n" -" -mthumb-interwork mark the assembled code as supporting interworking\n" -" -mall allow any instruction\n" -" -mfpa10, -mfpa11 select floating point architecture\n" -" -mfpe-old don't allow floating-point multiple instructions\n" -" -mvfpxd allow vfp single-precision instructions\n" -" -mvfp allow all vfp instructions\n" -" -mno-fpu don't allow any floating-point instructions.\n" -" -k generate PIC code.\n" -msgstr "" -" ARM Özgün Çevirici Seçenekleri:\n" -" -m[arm][] işlemci alt-türünü seçer\n" -" -m[arm]v[2|2a|3|3m|4|4t|5[t][e]] mimari türünü seçer\n" -" -marm9e Cirrus/DSP işlemlerine izin verir\n" -" -mthumb yalnızca Thumb işlemlerini etkinleştirir\n" -" -mthumb-interwork çevrilmiş kodu beraber çalışmaya uygun olarak imler\n" -" -mall bütün işlemlere izin verir\n" -" -mfpa10, -mfpa11 kayan nokta mimarisine izin verir\n" -" -mfpe-old çoklu kayan nokta işlemlerine izin vermez\n" -" -mvfpxd vfp tek kesinlikli işlemlere izin verir\n" -" -mvfp bütün vfp işlemlerine izin verir\n" -" -mno-fpu hiç bir kayan nokta işlemine izin vermez\n" -" -k PIC kodu üretir\n" - -#: config/tc-arm.c:10828 -msgid "" -" -mapcs-32, -mapcs-26 specify which ARM Procedure Calling Standard to use\n" -" -matpcs use ARM/Thumb Procedure Calling Standard\n" -" -mapcs-float floating point args are passed in FP regs\n" -" -mapcs-reentrant the code is position independent/reentrant\n" -msgstr "" -" -mapcs-32, -mapcs-26 hangi ARM Yordam Çağrı Standardını kullanacağını\n" -" belirtir\n" -" -matpcs ARM/Thumb Yordam Çağrı Standarını kullanır\n" -" -mapcs-float kayan nokta argümanları FP yazmaçlarında geçirilir\n" -" -mapcs-reentrant kod, yerden bağımsız/yeniden girişli\n" - -#: config/tc-arm.c:10835 -msgid " -moabi support the old ELF ABI\n" -msgstr " -moabi eski ELF ABI'sini destekler\n" - -#: config/tc-arm.c:10839 -msgid "" -" -EB assemble code for a big endian cpu\n" -" -EL assemble code for a little endian cpu\n" -msgstr "" -" -EB büyük sonlu işlemci için kod çevirir\n" -" -EL küçük sonlu işlemci için kod çevirir\n" +msgid "missing cpu name `%s'" +msgstr "`%s' cpu adı eksik" + +#: config/tc-arm.c:10958 +#, c-format +msgid "unknown cpu `%s'" +msgstr "bilinmeyen cpu `%s'" + +#: config/tc-arm.c:10977 +#, c-format +msgid "missing architecture name `%s'" +msgstr "`%s' mimari ismi eksik" + +#: config/tc-arm.c:10994 +#, c-format +msgid "unknown architecture `%s'\n" +msgstr "`%s' mimarisi bilinmiyor\n" + +#: config/tc-arm.c:11011 +#, c-format +msgid "unknown floating point format `%s'\n" +msgstr "bilinmeyen kayan nokta biçemi '%s'\n" -#: config/tc-arm.c:11023 +#: config/tc-arm.c:11017 +msgid "\t assemble for CPU " +msgstr "\t CPU'su için çevirir" + +#: config/tc-arm.c:11019 +msgid "\t assemble for architecture " +msgstr "\t mimarisi için çevirir" + +#: config/tc-arm.c:11021 +msgid "\t assemble for FPU architecture " +msgstr "\t FPU mimarisi için çevirir" + +#: config/tc-arm.c:11063 config/tc-arm.c:11085 +#, c-format +msgid "option `-%c%s' is deprecated: %s" +msgstr "`-%c%s' seçeneği artık kullanılmıyor: %s" + +#: config/tc-arm.c:11094 +#, c-format +msgid "unrecognized option `-%c%s'" +msgstr "bilinmeyen seçenek: `-%c%s'" + +#: config/tc-arm.c:11108 +msgid " ARM-specific assembler options:\n" +msgstr " ARM'a özgü çevirici seçenekleri:\n" + +#: config/tc-arm.c:11119 +msgid " -EB assemble code for a big-endian cpu\n" +msgstr " -EB büyük-sonlu bir cpu için kod çevrimi yapar\n" + +#: config/tc-arm.c:11124 +msgid " -EL assemble code for a little-endian cpu\n" +msgstr " -EL küçük-sonlu bir cpu için kod çevrimi yapar\n" + +#: config/tc-arm.c:11306 #, c-format msgid "%s: unexpected function type: %d" msgstr "%s: beklenmeyen işlev türü: %d" -#: config/tc-arm.c:11389 +#: config/tc-arm.c:11672 msgid "alignments greater than 32 bytes not supported in .text sections." msgstr "32 bayttan daha büyük hizalamalar .text bölümlerinde desteklenmiyor." @@ -2215,11 +2592,11 @@ msgstr "32 bayttan daha büyük hizalama msgid "arm convert_frag\n" msgstr "arm convert_frag\n" -#: config/tc-avr.c:197 +#: config/tc-avr.c:203 msgid "Known MCU names:" msgstr "Bilinen MCU adları:" -#: config/tc-avr.c:266 +#: config/tc-avr.c:272 msgid "" "AVR options:\n" " -mmcu=[avr-name] select microcontroller variant\n" @@ -2241,7 +2618,7 @@ msgstr "" " avr5 - ATmega161, ATmega163, ATmega32, AT94K\n" " veya şimdiki mikrodenetçi adı.\n" -#: config/tc-avr.c:276 +#: config/tc-avr.c:282 msgid "" " -mall-opcodes accept all AVR opcodes, even if not supported by MCU\n" " -mno-skip-bug disable warnings for skipping two-word instructions\n" @@ -2256,145 +2633,152 @@ msgstr "" " -mno-wrap 8K başa sarmaya sahip rjmp/rcall işlemlerini reddeder\n" " (avr3, avr5 için öntanımlı)\n" -#: config/tc-avr.c:324 +#: config/tc-avr.c:330 #, c-format msgid "unknown MCU: %s\n" msgstr "bilinmeyen MCU: %s\n" -#: config/tc-avr.c:333 +#: config/tc-avr.c:339 #, c-format msgid "redefinition of mcu type `%s' to `%s'" msgstr "mcu türü `%s'den `%s'ye yeniden tanımlandı" -#: config/tc-avr.c:384 config/tc-d10v.c:314 config/tc-d30v.c:366 config/tc-mips.c:9586 config/tc-mmix.c:2233 config/tc-mn10200.c:361 config/tc-pj.c:357 config/tc-ppc.c:4803 config/tc-sh.c:2090 config/tc-v850.c:1292 +#: config/tc-avr.c:390 config/tc-d10v.c:319 config/tc-d30v.c:366 +#: config/tc-mips.c:9781 config/tc-mmix.c:2250 config/tc-mn10200.c:361 +#: config/tc-pj.c:357 config/tc-ppc.c:4814 config/tc-sh.c:2536 +#: config/tc-v850.c:1194 msgid "bad call to md_atof" msgstr "md_atof'a hatalı çağrı" -#: config/tc-avr.c:447 +#: config/tc-avr.c:453 msgid "constant value required" msgstr "sabit değer gerekli" -#: config/tc-avr.c:450 +#: config/tc-avr.c:456 #, c-format msgid "number must be less than %d" msgstr "sayı %d'den daha az olmalı" -#: config/tc-avr.c:502 +#: config/tc-avr.c:508 msgid "`,' required" msgstr "`,' gerekli" -#: config/tc-avr.c:521 +#: config/tc-avr.c:527 msgid "undefined combination of operands" msgstr "tanımlanmamış işlenenler bileşimi" -#: config/tc-avr.c:530 +#: config/tc-avr.c:536 msgid "skipping two-word instruction" msgstr "iki-wordluk işlem atlandı" -#: config/tc-avr.c:592 +#: config/tc-avr.c:598 msgid "register r16-r23 required" msgstr "r16-r23 yazmaçları gerekli" -#: config/tc-avr.c:598 +#: config/tc-avr.c:604 msgid "register number above 15 required" msgstr "yazmaç numarası 15'den büyük olmalı" -#: config/tc-avr.c:604 +#: config/tc-avr.c:610 msgid "even register number required" msgstr "yazmaç numarası çift olmalı" -#: config/tc-avr.c:610 +#: config/tc-avr.c:616 msgid "register r24, r26, r28 or r30 required" msgstr "r24, r26, r28 veya r30 yazmaçları gerekli" -#: config/tc-avr.c:616 +#: config/tc-avr.c:622 msgid "register name or number from 0 to 31 required" msgstr "yazmaç ismi veya 0'dan 31'e kadar numara gerekli" -#: config/tc-avr.c:634 +#: config/tc-avr.c:640 msgid "pointer register (X, Y or Z) required" msgstr "imleyici yazmacı (X, Y veya Z) gerekli" -#: config/tc-avr.c:641 +#: config/tc-avr.c:647 msgid "cannot both predecrement and postincrement" msgstr "ön-eksiltme ve sonra-arttırma işlemlerinin ikisi birden uygulanamaz" -#: config/tc-avr.c:649 +#: config/tc-avr.c:655 msgid "addressing mode not supported" msgstr "adresleme kipi desteklenmiyor" -#: config/tc-avr.c:655 +#: config/tc-avr.c:661 msgid "can't predecrement" msgstr "ön-eksiltme yapılamaz" -#: config/tc-avr.c:658 +#: config/tc-avr.c:664 msgid "pointer register Z required" msgstr "imleyici yazmacı Z gerekli" -#: config/tc-avr.c:676 +#: config/tc-avr.c:682 msgid "pointer register (Y or Z) required" msgstr "imleyici yazmacı (Y veya Z) gerekli" -#: config/tc-avr.c:781 +#: config/tc-avr.c:787 #, c-format msgid "unknown constraint `%c'" msgstr "`%c' bilinmeyen kısıtı" -#: config/tc-avr.c:890 config/tc-avr.c:906 config/tc-avr.c:1007 +#: config/tc-avr.c:896 config/tc-avr.c:912 config/tc-avr.c:1013 #, c-format msgid "odd address operand: %ld" msgstr "tek sayılı adres işleneni: %ld" -#: config/tc-avr.c:898 config/tc-avr.c:917 +#: config/tc-avr.c:904 config/tc-avr.c:923 config/tc-d10v.c:586 #, c-format msgid "operand out of range: %ld" msgstr "işlenen kapsam dışı: %ld" -#: config/tc-avr.c:1016 config/tc-d10v.c:1634 config/tc-d30v.c:1987 +#: config/tc-avr.c:1022 config/tc-d10v.c:1810 config/tc-d30v.c:1987 #, c-format msgid "line %d: unknown relocation type: 0x%x" msgstr "satır %d: bilinmeyen yerdeğişim türü: 0x%x" -#: config/tc-avr.c:1030 +#: config/tc-avr.c:1036 msgid "only constant expression allowed" msgstr "yalnız sabit ifadeler kullanılabilir" -#: config/tc-avr.c:1067 config/tc-d10v.c:1498 config/tc-d30v.c:1807 config/tc-mn10200.c:1240 config/tc-mn10300.c:1774 config/tc-ppc.c:5534 config/tc-v850.c:2296 +#: config/tc-avr.c:1073 config/tc-d10v.c:1659 config/tc-d30v.c:1807 +#: config/tc-mn10200.c:1240 config/tc-mn10300.c:1781 config/tc-or32.c:1622 +#: config/tc-ppc.c:5538 config/tc-v850.c:2207 #, c-format msgid "reloc %d not supported by object file format" msgstr "%d yerdeğişimi nesne dosya biçeminde desteklenmiyor" -#: config/tc-avr.c:1091 config/tc-d10v.c:1100 config/tc-d10v.c:1114 config/tc-h8300.c:1275 config/tc-h8500.c:1088 config/tc-mcore.c:988 config/tc-pj.c:266 config/tc-sh.c:1670 config/tc-z8k.c:1192 +#: config/tc-avr.c:1097 config/tc-d10v.c:1248 config/tc-d10v.c:1262 +#: config/tc-h8300.c:1289 config/tc-h8500.c:1088 config/tc-mcore.c:988 +#: config/tc-pj.c:266 config/tc-sh.c:2104 config/tc-z8k.c:1196 msgid "can't find opcode " msgstr "opkod bulunamadı" -#: config/tc-avr.c:1108 +#: config/tc-avr.c:1114 #, c-format msgid "illegal opcode %s for mcu %s" msgstr "mcu %2$s için geçersiz %1$s opkodu" -#: config/tc-avr.c:1116 +#: config/tc-avr.c:1122 msgid "garbage at end of line" msgstr "satırsonunda bozukluk" -#: config/tc-avr.c:1180 read.c:3219 +#: config/tc-avr.c:1186 read.c:3224 msgid "illegal expression" msgstr "geçersiz ifade" -#: config/tc-avr.c:1206 config/tc-avr.c:1272 +#: config/tc-avr.c:1212 config/tc-avr.c:1278 msgid "`)' required" msgstr "`)' gerekli" -#: config/tc-avr.c:1226 +#: config/tc-avr.c:1232 #, c-format msgid "constant out of 8-bit range: %d" msgstr "8-bitlik aralık dışında sabit: %d" -#: config/tc-avr.c:1229 +#: config/tc-avr.c:1235 msgid "expression possibly out of 8-bit range" msgstr "ifade 8-bitlik aralık dışında olabilir" -#: config/tc-avr.c:1300 config/tc-avr.c:1307 +#: config/tc-avr.c:1306 config/tc-avr.c:1313 #, c-format msgid "illegal %srelocation size: %d" msgstr "geçersiz %s yerdeğişim boyu: %d" @@ -2598,7 +2982,7 @@ msgstr ".file sanalyönergesi yalnız EL msgid "Pseudodirective .loc is only valid when generating ELF" msgstr ".loc sanal yönergesi yalnız ELF üretilirken geçerli" -#: config/tc-d10v.c:247 +#: config/tc-d10v.c:252 msgid "" "D10V options:\n" "-O Optimize. Will do some operations in parallel.\n" @@ -2614,91 +2998,130 @@ msgstr "" "--no-gstabs-packing --gstabs belirtilmişse yanyana olan işlemleri\n" " birleştirmez.\n" -#: config/tc-d10v.c:538 config/tc-d30v.c:550 config/tc-mn10200.c:937 config/tc-mn10300.c:1308 config/tc-ppc.c:2104 config/tc-s390.c:1052 config/tc-tic80.c:279 config/tc-v850.c:2070 +#: config/tc-d10v.c:543 config/tc-d30v.c:550 config/tc-mn10200.c:937 +#: config/tc-mn10300.c:1315 config/tc-ppc.c:2120 config/tc-s390.c:1060 +#: config/tc-tic80.c:279 config/tc-v850.c:1981 msgid "illegal operand" msgstr "geçersiz işlenen" -#: config/tc-d10v.c:581 config/tc-d10v.c:663 config/tc-d30v.c:656 +#: config/tc-d10v.c:657 +msgid "operand is not an immediate" +msgstr "işlenen şimdiki değil" + +#: config/tc-d10v.c:675 #, c-format -msgid "operand out of range: %d" -msgstr "işlenen aralık dışı: %d" +msgid "operand out of range: %lu" +msgstr "işlenen kapsam dışı: %lu" -#: config/tc-d10v.c:724 +#: config/tc-d10v.c:736 msgid "Instruction must be executed in parallel with another instruction." msgstr "İşlem bir başka işlem ile paralel işlenmeli." -#: config/tc-d10v.c:780 +#: config/tc-d10v.c:792 msgid "Instruction must be executed in parallel" msgstr "İşlem paralel işlenmeli." -#: config/tc-d10v.c:783 +#: config/tc-d10v.c:795 msgid "Long instructions may not be combined." msgstr "Uzun işlemler birleştirilemez." -#: config/tc-d10v.c:817 +#: config/tc-d10v.c:828 msgid "One of these instructions may not be executed in parallel." msgstr "Bu işlemlerin biri paralel işlenemez." -#: config/tc-d10v.c:821 config/tc-d30v.c:877 +#: config/tc-d10v.c:832 config/tc-d30v.c:877 msgid "Two IU instructions may not be executed in parallel" msgstr "İki IU işlemi paralel işlenemez." -#: config/tc-d10v.c:823 config/tc-d10v.c:831 config/tc-d10v.c:844 config/tc-d10v.c:859 config/tc-d30v.c:878 config/tc-d30v.c:887 +#: config/tc-d10v.c:834 config/tc-d10v.c:842 config/tc-d10v.c:856 +#: config/tc-d10v.c:871 config/tc-d30v.c:878 config/tc-d30v.c:887 msgid "Swapping instruction order" msgstr "İşlem sırası takas ediliyor." -#: config/tc-d10v.c:829 config/tc-d30v.c:884 +#: config/tc-d10v.c:840 config/tc-d30v.c:884 msgid "Two MU instructions may not be executed in parallel" msgstr "İki MU işlemi paralel işlenemez." -#: config/tc-d10v.c:848 config/tc-d30v.c:904 +#: config/tc-d10v.c:860 config/tc-d30v.c:904 msgid "IU instruction may not be in the left container" msgstr "IU işlemi sol taşıyıcıda tutulamaz." -#: config/tc-d10v.c:850 config/tc-d10v.c:865 +#: config/tc-d10v.c:862 config/tc-d10v.c:877 msgid "Instruction in R container is squashed by flow control instruction in L container." msgstr "" "R taşıyıcısındaki işlem, L taşıyıcısındaki flow control işlemi tarafından\n" "etkisizleştirildi." -#: config/tc-d10v.c:863 config/tc-d30v.c:915 +#: config/tc-d10v.c:875 config/tc-d30v.c:915 msgid "MU instruction may not be in the right container" msgstr "MU işlemi sağ taşıyıcıda olamaz." -#: config/tc-d10v.c:869 config/tc-d30v.c:927 +#: config/tc-d10v.c:881 config/tc-d30v.c:927 msgid "unknown execution type passed to write_2_short()" msgstr "write_2_short()'a bilinmeyen işlem türü geçirildi." -#: config/tc-d10v.c:1128 config/tc-d10v.c:1149 config/tc-d30v.c:1411 +#: config/tc-d10v.c:1072 config/tc-d10v.c:1080 +#, c-format +msgid "packing conflict: %s must dispatch sequentially" +msgstr "paketleme çelişkisi: %s sıralı işlenmeli" + +#: config/tc-d10v.c:1179 +#, c-format +msgid "resource conflict (R%d)" +msgstr "kaynak çelişkisi (R%d)" + +#: config/tc-d10v.c:1182 +#, c-format +msgid "resource conflict (A%d)" +msgstr "kaynak çelişkisi (A%d)" + +#: config/tc-d10v.c:1184 +msgid "resource conflict (PSW)" +msgstr "kaynak çelişkisi (PSW)" + +#: config/tc-d10v.c:1186 +msgid "resource conflict (C flag)" +msgstr "kaynak çelişkisi (C bayrağı)" + +#: config/tc-d10v.c:1188 +msgid "resource conflict (F flag)" +msgstr "kaynak çelişkisi (F bayrağı)" + +#: config/tc-d10v.c:1276 config/tc-d10v.c:1298 config/tc-d30v.c:1411 msgid "Unable to mix instructions as specified" msgstr "işlemler belirtilen şekilde harmanlanamadı" -#: config/tc-d10v.c:1196 config/tc-d30v.c:1548 +#: config/tc-d10v.c:1345 config/tc-d30v.c:1548 #, c-format msgid "unknown opcode: %s" msgstr "bilinmeyen opkod: %s" -#: config/tc-d10v.c:1279 config/tc-d10v.c:1451 config/tc-tic80.c:536 +#: config/tc-d10v.c:1428 config/tc-d10v.c:1603 config/tc-tic80.c:536 msgid "bad opcode or operands" msgstr "hatalı opkod veya işlenenler" -#: config/tc-d10v.c:1352 config/tc-m68k.c:4310 +#: config/tc-d10v.c:1503 config/tc-m68k.c:4310 msgid "value out of range" msgstr "değer aralık dışı" -#: config/tc-d10v.c:1426 +#: config/tc-d10v.c:1579 msgid "illegal operand - register name found where none expected" msgstr "hatalı işlenen -- beklenmeyen yerde yazmaç adı" -#: config/tc-d10v.c:1462 config/tc-tic80.c:547 +#: config/tc-d10v.c:1614 config/tc-tic80.c:547 msgid "Register number must be EVEN" msgstr "Yazmaç numarası ÇİFT sayı olmalı" -#: config/tc-d10v.c:1465 +#: config/tc-d10v.c:1617 msgid "Unsupported use of sp" msgstr "sp'nin desteklenmeyen kullanımı" -#: config/tc-d10v.c:1614 +#: config/tc-d10v.c:1636 +#, c-format +msgid "cr%ld is a reserved control register" +msgstr "cr%ld rezerveli bir kontrol yazmacı" + +#: config/tc-d10v.c:1790 #, c-format msgid "line %d: rep or repi must include at least 4 instructions" msgstr "satır %d: rep veya repi en az 4 işlem içermeli" @@ -2736,6 +3159,11 @@ msgstr "beklenmeyen 12bitlik yerdeğişi msgid "unexpected 18-bit reloc type" msgstr "beklenmeyen 18bitlik yerdeğişim türü" +#: config/tc-d30v.c:656 +#, c-format +msgid "operand out of range: %d" +msgstr "işlenen aralık dışı: %d" + #: config/tc-d30v.c:720 #, c-format msgid "%s NOP inserted" @@ -2852,6 +3280,55 @@ msgstr "değer, %d bite sığdırmak iç msgid "Alignment too large: %d assumed" msgstr "Hizalama fazla büyük: %d varsayıldı" +#: config/tc-dlx.c:283 +msgid "missing .proc" +msgstr ".proc eksik" + +#: config/tc-dlx.c:300 +msgid ".endfunc missing for previous .proc" +msgstr "önceki .proc için eksik .endfunc" + +#: config/tc-dlx.c:498 +#, c-format +msgid "Expression Error for operand modifier %%hi/%%lo\n" +msgstr "%%hi/%%lo işlenen değiştiricisi için ifade hatası\n" + +#: config/tc-dlx.c:552 +#, c-format +msgid "Bad operand for a load instruction: <%s>" +msgstr "Yükleme işlemi için hatalı işlenen: <%s>" + +#: config/tc-dlx.c:667 +#, c-format +msgid "Bad operand for a store instruction: <%s>" +msgstr "Saklama işlemi için hatalı işlenen: <%s>" + +#: config/tc-dlx.c:865 +msgid "Can not set dlx_skip_hi16_flag" +msgstr "dlx_skip_hi16_flag bayrağı işaretlenemedi" + +#: config/tc-dlx.c:879 +#, c-format +msgid "Missing arguments for opcode <%s>." +msgstr "`%s' opkodu için eksik argümanlar" + +#: config/tc-dlx.c:950 +#, c-format +msgid "Both the_insn.HI and the_insn.LO are set : %s" +msgstr "Hem the_insn.HI hem de the_insn.LO işaretli : %s" + +#: config/tc-dlx.c:1022 +msgid "failed regnum sanity check." +msgstr "başarısız regnum kontrolü." + +#: config/tc-dlx.c:1035 +msgid "failed general register sanity check." +msgstr "genel yazmaç hata kontrolü başarısız." + +#: config/tc-dlx.c:1336 +msgid "Invalid expression after # number\n" +msgstr "# sayısından sonra geçersiz ifade\n" + #: config/tc-fr30.c:84 msgid " FR30 specific command line options:\n" msgstr " FR30'a özgü komut satırı seçenekleri:\n" @@ -2865,116 +3342,225 @@ msgstr "%s işlemi gecikme yuvasında ol msgid "Addend to unresolved symbol not on word boundary." msgstr "Word sınırında olmayan çözümlenmemiş sembole addend eklendi." -#: config/tc-fr30.c:540 config/tc-i960.c:773 config/tc-m32r.c:1867 config/tc-openrisc.c:468 +#: config/tc-fr30.c:540 config/tc-frv.c:1283 config/tc-i960.c:773 +#: config/tc-m32r.c:1867 config/tc-openrisc.c:468 config/tc-xstormy16.c:635 msgid "Bad call to md_atof()" msgstr "md_atof()'a hatalı çağrı" -#: config/tc-h8300.c:64 config/tc-h8300.c:75 config/tc-h8300.c:134 config/tc-hppa.c:1422 config/tc-hppa.c:6915 config/tc-hppa.c:6921 config/tc-hppa.c:6927 config/tc-hppa.c:6933 config/tc-mn10300.c:900 config/tc-mn10300.c:2164 +#: config/tc-frv.c:416 +msgid "FRV specific command line options:\n" +msgstr "FRV'ye özgü komut satırı seçenekleri:\n" + +#: config/tc-frv.c:417 +msgid "-G n Data >= n bytes is in small data area\n" +msgstr "-G n Veri >= n bayt, küçük veri bölgesinde tutulur\n" + +#: config/tc-frv.c:418 +msgid "-mgpr-32 Note 32 gprs are used\n" +msgstr "-mgpr-32 32 gprs kullanılır\n" + +#: config/tc-frv.c:419 +msgid "-mgpr-64 Note 64 gprs are used\n" +msgstr "-mgpr-64 64 gprs kullanılır\n" + +#: config/tc-frv.c:420 +msgid "-mfpr-32 Note 32 fprs are used\n" +msgstr "-mfpr-32 32 fprs kullanılır\n" + +#: config/tc-frv.c:421 +msgid "-mfpr-64 Note 64 fprs are used\n" +msgstr "-mfpr-64 64 fprs kullanılır\n" + +#: config/tc-frv.c:422 +msgid "-msoft-float Note software fp is used\n" +msgstr "-msoft-float yazılım fp'si kullanılır\n" + +#: config/tc-frv.c:423 +msgid "-mdword Note stack is aligned to a 8 byte boundary\n" +msgstr "-mdword Yığıt 8bayt sınırına hizalanır\n" + +#: config/tc-frv.c:424 +msgid "-mno-dword Note stack is aligned to a 4 byte boundary\n" +msgstr "-mno-dword Yığıt 4 bayt sınırına hizalanır\n" + +#: config/tc-frv.c:425 +msgid "-mdouble Note fp double insns are used\n" +msgstr "-mdouble fp double işlemleri kullanılır\n" + +#: config/tc-frv.c:426 +msgid "-mmedia Note media insns are used\n" +msgstr "-mmedia media işlemleri kullanılır\n" + +#: config/tc-frv.c:427 +msgid "-mmuladd Note multiply add/subtract insns are used\n" +msgstr "-mmuladd çarpma toplama/çıkarma işlemleri kullanılır\n" + +#: config/tc-frv.c:428 +msgid "-mpack Note instructions are packed\n" +msgstr "-mpack işlemler paketlenir\n" + +#: config/tc-frv.c:429 +msgid "-mno-pack Do not allow instructions to be packed\n" +msgstr "-mno-pack İşlemler paketlenmez\n" + +#: config/tc-frv.c:430 +msgid "-mpic Note small position independent code\n" +msgstr "-mpic yerden bağımsız küçük kod bulunur\n" + +#: config/tc-frv.c:431 +msgid "-mPIC Note large position independent code\n" +msgstr "-mPIC yerden bağımsız büyük kod bulunur\n" + +#: config/tc-frv.c:432 +msgid "-mlibrary-pic Compile library for large position indepedent code\n" +msgstr "-mlibrary-pic Kitaplık, yerden bağımsız büyük kod için derlenir\n" + +#: config/tc-frv.c:433 +msgid "-mcpu={fr500|fr400|fr300|frv|simple|tomcat}\n" +msgstr "-mcpu={fr500|fr400|fr300|frv|simple|tomcat}\n" + +#: config/tc-frv.c:434 +msgid " Record the cpu type\n" +msgstr " cpu türünü yazdırır\n" + +#: config/tc-frv.c:435 +msgid "-mtomcat-stats Print out stats for tomcat workarounds\n" +msgstr "-mtomcat-stats Tomcat kestirmeleri için istatistik yazdırır\n" + +#: config/tc-frv.c:436 +msgid "-mtomcat-debug Debug tomcat workarounds\n" +msgstr "-mtomcat-debug Tomcat kestirmelerinde hata ayıklar\n" + +#: config/tc-frv.c:1003 +msgid "VLIW packing used for -mno-pack" +msgstr " -mno-pack için VLIW paketlemesi kullanır" + +#: config/tc-frv.c:1016 +msgid "VLIW packing constraint violation" +msgstr "VLIW paketleme kısıtlama ihlali" + +#: config/tc-frv.c:1544 +#, c-format +msgid "Relocation %s is not safe for %s" +msgstr "%s yerdeğişimi %s için tehlikeli" + +#: config/tc-h8300.c:64 config/tc-h8300.c:76 config/tc-h8300.c:143 +#: config/tc-hppa.c:1424 config/tc-hppa.c:6917 config/tc-hppa.c:6923 +#: config/tc-hppa.c:6929 config/tc-hppa.c:6935 config/tc-mn10300.c:907 +#: config/tc-mn10300.c:2171 msgid "could not set architecture and machine" msgstr "Yapı ve makina atanamadı" -#: config/tc-h8300.c:262 config/tc-h8300.c:270 +#: config/tc-h8300.c:282 config/tc-h8300.c:290 msgid "Reg not valid for H8/300" msgstr "Yazmaç, H8/300 için geçersiz" -#: config/tc-h8300.c:430 config/tc-h8300.c:433 config/tc-h8300.c:436 config/tc-h8300.c:440 +#: config/tc-h8300.c:451 config/tc-h8300.c:454 config/tc-h8300.c:457 +#: config/tc-h8300.c:461 msgid "Invalid register list for ldm/stm\n" msgstr "ldm/stm için geçersiz yazmaç listesi\n" -#: config/tc-h8300.c:492 config/tc-h8300.c:554 config/tc-h8300.c:561 +#: config/tc-h8300.c:516 config/tc-h8300.c:578 config/tc-h8300.c:585 msgid "Wrong size pointer register for architecture." msgstr "Yapı için hatalı boyda imleyici." -#: config/tc-h8300.c:519 config/tc-h8300.c:528 config/tc-h8300.c:538 +#: config/tc-h8300.c:543 config/tc-h8300.c:552 config/tc-h8300.c:562 msgid "expected @(exp, reg16)" msgstr "@(exp, reg16) beklendi" -#: config/tc-h8300.c:617 +#: config/tc-h8300.c:640 msgid "expect :8 or :16 here" msgstr "Burada :8 veya :16 beklendi" -#: config/tc-h8300.c:818 +#: config/tc-h8300.c:847 #, c-format msgid "operand %s0x%lx out of range." msgstr "%s0x%lx işleneni kapsam dışı." -#: config/tc-h8300.c:906 +#: config/tc-h8300.c:935 msgid "Can't work out size of operand.\n" msgstr "İşlenenin boyu hesaplanamadı.\n" -#: config/tc-h8300.c:954 +#: config/tc-h8300.c:983 #, c-format msgid "Opcode `%s' with these operand types not available in H8/300 mode" msgstr "H8/300 kipinde bu tür işlenenlerle çalışan `%s' opkodu yok" -#: config/tc-h8300.c:1005 config/tc-h8300.c:1025 +#: config/tc-h8300.c:1029 config/tc-h8300.c:1049 msgid "Need #1 or #2 here" msgstr "Burada #1 veya #2 gerekli" -#: config/tc-h8300.c:1020 +#: config/tc-h8300.c:1044 msgid "#4 not valid on H8/300." msgstr "#4, H8/300 için geçersiz." -#: config/tc-h8300.c:1107 config/tc-h8300.c:1157 +#: config/tc-h8300.c:1122 config/tc-h8300.c:1169 #, c-format msgid "branch operand has odd offset (%lx)\n" msgstr "dal işleneni tek sayılı göreli konuma sahip (%lx)\n" -#: config/tc-h8300.c:1195 +#: config/tc-h8300.c:1208 msgid "destination operand must be 16 bit register" msgstr "hedef işlenen 16bitlik yazmaç olmalı" -#: config/tc-h8300.c:1204 +#: config/tc-h8300.c:1217 msgid "source operand must be 8 bit register" msgstr "kaynak işleneni 8bitlik yazmaç olmalı" -#: config/tc-h8300.c:1212 +#: config/tc-h8300.c:1225 msgid "destination operand must be 16bit absolute address" msgstr "hedef işleneni 16bitlik yere bağımlı adres olmalı" -#: config/tc-h8300.c:1219 +#: config/tc-h8300.c:1232 msgid "destination operand must be 8 bit register" msgstr "hedef işleneni 8bitlik yazmaç olmalı" -#: config/tc-h8300.c:1227 +#: config/tc-h8300.c:1240 msgid "source operand must be 16bit absolute address" msgstr "kaynak işleneni 16bitlik yere bağımlı adres olmalı" #. This seems more sane than saying "too many operands". We'll #. get here only if the trailing trash starts with a comma. -#: config/tc-h8300.c:1235 config/tc-mmix.c:452 config/tc-mmix.c:464 config/tc-mmix.c:2485 config/tc-mmix.c:2509 config/tc-mmix.c:2774 +#: config/tc-h8300.c:1248 config/tc-mmix.c:459 config/tc-mmix.c:471 +#: config/tc-mmix.c:2502 config/tc-mmix.c:2526 config/tc-mmix.c:2803 +#: config/tc-or32.c:642 config/tc-or32.c:856 msgid "invalid operands" msgstr "geçersiz işlenen" -#: config/tc-h8300.c:1286 config/tc-h8500.c:1094 config/tc-mips.c:8649 config/tc-sh.c:1907 config/tc-w65.c:733 config/tc-z8k.c:1202 +#: config/tc-h8300.c:1300 config/tc-h8500.c:1094 config/tc-mips.c:8834 +#: config/tc-sh.c:2371 config/tc-sh64.c:2811 config/tc-w65.c:733 +#: config/tc-z8k.c:1206 msgid "unknown opcode" msgstr "bilinmeyen opkod" -#: config/tc-h8300.c:1332 +#: config/tc-h8300.c:1346 msgid "mismatch between opcode size and operand size" msgstr "opkod boyu ve işlenen boyu arasında uyumsuzluk" -#: config/tc-h8300.c:1344 config/tc-h8500.c:1121 config/tc-sh.c:2045 config/tc-w65.c:763 config/tc-z8k.c:1255 +#: config/tc-h8300.c:1358 config/tc-h8500.c:1121 config/tc-sh.c:2491 +#: config/tc-w65.c:763 config/tc-z8k.c:1262 msgid "call to tc_crawl_symbol_chain \n" msgstr "tc_crawl_symbol_chain'e çağrı\n" -#: config/tc-h8300.c:1360 config/tc-h8500.c:1135 config/tc-sh.c:2052 config/tc-w65.c:777 config/tc-z8k.c:1269 +#: config/tc-h8300.c:1374 config/tc-h8500.c:1135 config/tc-sh.c:2498 +#: config/tc-w65.c:777 config/tc-z8k.c:1276 msgid "call to tc_headers_hook \n" msgstr "tc_headers_hook'e çağrı \n" -#: config/tc-h8300.c:1452 config/tc-h8500.c:1225 config/tc-z8k.c:1383 +#: config/tc-h8300.c:1467 config/tc-h8500.c:1225 config/tc-z8k.c:1391 msgid "call to tc_aout_fix_to_chars \n" msgstr "tc_aout_fix_to_chars'e çağrı \n" -#: config/tc-h8300.c:1466 config/tc-z8k.c:1393 +#: config/tc-h8300.c:1481 config/tc-z8k.c:1401 msgid "call to md_convert_frag \n" msgstr "md_convert_frag'e çağrı \n" -#: config/tc-h8300.c:1528 config/tc-z8k.c:1479 +#: config/tc-h8300.c:1543 config/tc-z8k.c:1486 msgid "call tomd_estimate_size_before_relax \n" msgstr "md_estimate_size_before_relax'e çağrı \n" -#: config/tc-h8300.c:1649 config/tc-mcore.c:2413 config/tc-pj.c:572 config/tc-sh.c:3367 +#: config/tc-h8300.c:1664 config/tc-mcore.c:2413 config/tc-pj.c:572 +#: config/tc-sh.c:3959 #, c-format msgid "Cannot represent relocation type %s" msgstr "Yerdeğişim türü %s gösterilemedi" @@ -3007,7 +3593,7 @@ msgstr "@Rn+ için word yazmacı gerekli msgid "@Rn needs word register" msgstr "@Rn için word yazmacı gerekli" -#: config/tc-h8500.c:828 config/tc-sh.c:1403 +#: config/tc-h8500.c:828 config/tc-sh.c:1835 #, c-format msgid "unhandled %d\n" msgstr "%d desteklenmiyor\n" @@ -3017,778 +3603,779 @@ msgstr "%d desteklenmiyor\n" msgid "operand must be absolute in range %d..%d" msgstr "%d..%d aralığında işlenen kesin olmalı" -#: config/tc-h8500.c:945 config/tc-sh.c:1610 +#: config/tc-h8500.c:945 config/tc-sh.c:2044 #, c-format msgid "failed for %d\n" msgstr "%d için başarısız\n" -#: config/tc-h8500.c:1110 config/tc-sh.c:1711 config/tc-sh.c:1956 config/tc-w65.c:752 +#: config/tc-h8500.c:1110 config/tc-sh.c:2146 config/tc-sh.c:2420 +#: config/tc-w65.c:752 msgid "invalid operands for opcode" msgstr "opkod için geçersiz işlenenler" #. Simple range checking for FIELD againt HIGH and LOW bounds. #. IGNORE is used to suppress the error message. -#: config/tc-hppa.c:1155 config/tc-hppa.c:1169 +#: config/tc-hppa.c:1157 config/tc-hppa.c:1171 #, c-format msgid "Field out of range [%d..%d] (%d)." msgstr "Alan kapsam dışı [%d..%d] (%d)." #. Simple alignment checking for FIELD againt ALIGN (a power of two). #. IGNORE is used to suppress the error message. -#: config/tc-hppa.c:1183 +#: config/tc-hppa.c:1185 #, c-format msgid "Field not properly aligned [%d] (%d)." msgstr "Alan doğru hizalanmamış [%d] (%d)." -#: config/tc-hppa.c:1212 +#: config/tc-hppa.c:1214 msgid "Missing .exit\n" msgstr ".exit eksik\n" -#: config/tc-hppa.c:1215 +#: config/tc-hppa.c:1217 msgid "Missing .procend\n" msgstr ".procend eksik\n" -#: config/tc-hppa.c:1395 +#: config/tc-hppa.c:1397 #, c-format msgid "Invalid field selector. Assuming F%%." msgstr "Geçersiz alan seçicisi. F%% varsayıldı." -#: config/tc-hppa.c:1428 +#: config/tc-hppa.c:1430 msgid "-R option not supported on this target." msgstr "-R seçeneği bu hedef için desteklenmiyor." -#: config/tc-hppa.c:1444 config/tc-sparc.c:803 config/tc-sparc.c:839 +#: config/tc-hppa.c:1446 config/tc-sparc.c:809 config/tc-sparc.c:845 #, c-format msgid "Internal error: can't hash `%s': %s\n" msgstr "İç hata: `%s' hash'lenemedi: %s\n" -#: config/tc-hppa.c:1452 config/tc-i860.c:190 +#: config/tc-hppa.c:1454 config/tc-i860.c:190 #, c-format msgid "internal error: losing opcode: `%s' \"%s\"\n" msgstr "İç hata: opkod kaybedildi: `%s' \"%s\"\n" -#: config/tc-hppa.c:1523 config/tc-hppa.c:7054 config/tc-hppa.c:7111 +#: config/tc-hppa.c:1525 config/tc-hppa.c:7056 config/tc-hppa.c:7113 msgid "Missing function name for .PROC (corrupted label chain)" msgstr ".PROC için eksik işlev adı (bozuk etiket zinciri)" -#: config/tc-hppa.c:1526 config/tc-hppa.c:7114 +#: config/tc-hppa.c:1528 config/tc-hppa.c:7116 msgid "Missing function name for .PROC" msgstr ".PROC için eksik işlev adı" -#: config/tc-hppa.c:1633 config/tc-hppa.c:4911 +#: config/tc-hppa.c:1635 config/tc-hppa.c:4913 msgid "could not update architecture and machine" msgstr "Yapı ve makina güncellenemedi" -#: config/tc-hppa.c:1841 +#: config/tc-hppa.c:1843 msgid "Invalid Indexed Load Completer." msgstr "Geçersiz İndeksli Yükleme Tamamlayıcısı." -#: config/tc-hppa.c:1846 +#: config/tc-hppa.c:1848 msgid "Invalid Indexed Load Completer Syntax." msgstr "Geçersiz İndeksli Yükleme Tamamlayıcısı Sözdizimi." -#: config/tc-hppa.c:1883 +#: config/tc-hppa.c:1885 msgid "Invalid Short Load/Store Completer." msgstr "Geçersiz Short Yükle/Sakla Tamamlayıcısı." -#: config/tc-hppa.c:1943 config/tc-hppa.c:1948 +#: config/tc-hppa.c:1945 config/tc-hppa.c:1950 msgid "Invalid Store Bytes Short Completer" msgstr "Geçersiz Short Bayt Saklama Tamamlayıcısı" -#: config/tc-hppa.c:2259 config/tc-hppa.c:2265 +#: config/tc-hppa.c:2261 config/tc-hppa.c:2267 msgid "Invalid left/right combination completer" msgstr "Geçersiz sol/sağ bileşim tamamlayıcısı" -#: config/tc-hppa.c:2314 config/tc-hppa.c:2321 +#: config/tc-hppa.c:2316 config/tc-hppa.c:2323 msgid "Invalid permutation completer" msgstr "Geçersiz permütasyon tamamlayıcısı" -#: config/tc-hppa.c:2422 +#: config/tc-hppa.c:2424 #, c-format msgid "Invalid Add Condition: %s" msgstr "Geçersiz Ekleme Koşulu: %s" -#: config/tc-hppa.c:2433 config/tc-hppa.c:2443 +#: config/tc-hppa.c:2435 config/tc-hppa.c:2445 msgid "Invalid Add and Branch Condition" msgstr "Geçersiz Ekleme ve Dal Koşulları" -#: config/tc-hppa.c:2464 config/tc-hppa.c:2602 +#: config/tc-hppa.c:2466 config/tc-hppa.c:2604 msgid "Invalid Compare/Subtract Condition" msgstr "Geçersiz Karşılaştırma/Çıkarma Koşulu" -#: config/tc-hppa.c:2504 +#: config/tc-hppa.c:2506 #, c-format msgid "Invalid Bit Branch Condition: %c" msgstr "Geçersiz Bit Dalı Koşulu: %c" -#: config/tc-hppa.c:2590 +#: config/tc-hppa.c:2592 #, c-format msgid "Invalid Compare/Subtract Condition: %s" msgstr "Geçersiz Karşılaştırma/Çıkarma Koşulu: %s" -#: config/tc-hppa.c:2617 +#: config/tc-hppa.c:2619 msgid "Invalid Compare and Branch Condition" msgstr "Geçersiz Karşılaştırma ve Dal Koşulu" -#: config/tc-hppa.c:2713 +#: config/tc-hppa.c:2715 msgid "Invalid Logical Instruction Condition." msgstr "Geçersiz Mantıksal İşlem Koşulu." -#: config/tc-hppa.c:2768 +#: config/tc-hppa.c:2770 msgid "Invalid Shift/Extract/Deposit Condition." msgstr "Geçersiz Kaydırma/Çıkartma/Sokma Koşulu." -#: config/tc-hppa.c:2880 +#: config/tc-hppa.c:2882 msgid "Invalid Unit Instruction Condition." msgstr "Geçersiz Birim İşlem Koşulu." -#: config/tc-hppa.c:3257 config/tc-hppa.c:3289 config/tc-hppa.c:3320 config/tc-hppa.c:3350 +#: config/tc-hppa.c:3259 config/tc-hppa.c:3291 config/tc-hppa.c:3322 +#: config/tc-hppa.c:3352 msgid "Branch to unaligned address" msgstr "Hizalanmamış adrese dal" -#: config/tc-hppa.c:3528 +#: config/tc-hppa.c:3530 msgid "Invalid SFU identifier" msgstr "Geçersiz SFU tanımlayıcısı" -#: config/tc-hppa.c:3578 +#: config/tc-hppa.c:3580 msgid "Invalid COPR identifier" msgstr "Geçersiz COPR tanımlayıcısı" -#: config/tc-hppa.c:3707 +#: config/tc-hppa.c:3709 msgid "Invalid Floating Point Operand Format." msgstr "Geçersiz Kayan Nokta İşlenen Biçemi." -#: config/tc-hppa.c:3824 config/tc-hppa.c:3844 config/tc-hppa.c:3864 config/tc-hppa.c:3884 config/tc-hppa.c:3904 +#: config/tc-hppa.c:3826 config/tc-hppa.c:3846 config/tc-hppa.c:3866 +#: config/tc-hppa.c:3886 config/tc-hppa.c:3906 msgid "Invalid register for single precision fmpyadd or fmpysub" msgstr "Tek duyarlılıkta fmpyadd veya fmpysub için geçersiz yazmaç" -#: config/tc-hppa.c:3961 +#: config/tc-hppa.c:3963 #, c-format msgid "Invalid operands %s" msgstr "Geçersiz işlenenler: %s" -#: config/tc-hppa.c:4079 +#: config/tc-hppa.c:4081 msgid "Cannot handle fixup" msgstr "düzeltme başarısız" -#: config/tc-hppa.c:4380 +#: config/tc-hppa.c:4382 msgid " -Q ignored\n" msgstr " -Q yoksayıldı\n" -#: config/tc-hppa.c:4384 +#: config/tc-hppa.c:4386 msgid " -c print a warning if a comment is found\n" msgstr " -c eğer açıklama bulunursa bir uyarı yazdırır\n" -#: config/tc-hppa.c:4455 +#: config/tc-hppa.c:4457 #, c-format msgid "no hppa_fixup entry for fixup type 0x%x" msgstr "düzeltme türü 0x%x için hppa_fixup girdisi yok" -#: config/tc-hppa.c:4633 +#: config/tc-hppa.c:4635 msgid "Unknown relocation encountered in md_apply_fix." msgstr "md_apply_fix'de bilinmeyen yerdeğişime rastlandı." -#: config/tc-hppa.c:4775 config/tc-hppa.c:4800 +#: config/tc-hppa.c:4777 config/tc-hppa.c:4802 #, c-format msgid "Undefined register: '%s'." msgstr "Tanımlanmamış yazmaç: '%s'." -#: config/tc-hppa.c:4834 +#: config/tc-hppa.c:4836 #, c-format msgid "Non-absolute symbol: '%s'." msgstr "Yerden bağımsız sembol: '%s'." -#: config/tc-hppa.c:4849 +#: config/tc-hppa.c:4851 #, c-format msgid "Undefined absolute constant: '%s'." msgstr "Tanımsız kesin sabit: '%s'." -#: config/tc-hppa.c:4950 +#: config/tc-hppa.c:4952 #, c-format msgid "Invalid FP Compare Condition: %s" msgstr "Geçersiz FP Karşılaştırma Koşulu: %s" -#: config/tc-hppa.c:5006 +#: config/tc-hppa.c:5008 #, c-format msgid "Invalid FTEST completer: %s" msgstr "Geçersiz FTEST tamamlayıcısı: %s" -#: config/tc-hppa.c:5073 config/tc-hppa.c:5111 +#: config/tc-hppa.c:5075 config/tc-hppa.c:5113 #, c-format msgid "Invalid FP Operand Format: %3s" msgstr "Geçersiz FP İşlenen Biçemi: %3s" -#: config/tc-hppa.c:5190 +#: config/tc-hppa.c:5192 msgid "Bad segment in expression." msgstr "İfadede hatalı bölüm." -#: config/tc-hppa.c:5249 +#: config/tc-hppa.c:5251 msgid "Bad segment (should be absolute)." msgstr "Hatalı bölüm (kesin olmalı)." -#: config/tc-hppa.c:5292 +#: config/tc-hppa.c:5294 #, c-format msgid "Invalid argument location: %s\n" msgstr "Geçersiz argüman yeri: %s\n" -#: config/tc-hppa.c:5323 +#: config/tc-hppa.c:5325 #, c-format msgid "Invalid argument description: %d" msgstr "Geçersiz argüman anlatımı: %d" -#: config/tc-hppa.c:5346 +#: config/tc-hppa.c:5348 #, c-format msgid "Invalid Nullification: (%c)" msgstr "Geçersiz Sıfırlama: (%c)" -#: config/tc-hppa.c:6066 +#: config/tc-hppa.c:6068 #, c-format msgid "Invalid .CALL argument: %s" msgstr "Geçersiz .CALL argümanı: %s" -#: config/tc-hppa.c:6188 +#: config/tc-hppa.c:6190 msgid ".callinfo is not within a procedure definition" msgstr ".callinfo bir altyordam tanımı içinde değil" -#: config/tc-hppa.c:6208 +#: config/tc-hppa.c:6210 #, c-format msgid "FRAME parameter must be a multiple of 8: %d\n" msgstr "FRAME parametresi 8'in katı olmalı: %d\n" -#: config/tc-hppa.c:6227 +#: config/tc-hppa.c:6229 msgid "Value for ENTRY_GR must be in the range 3..18\n" msgstr "ENTRY_GR değeri 3..18 aralığında olmalı\n" -#: config/tc-hppa.c:6239 +#: config/tc-hppa.c:6241 msgid "Value for ENTRY_FR must be in the range 12..21\n" msgstr "ENTRY_FR değeri 12..21 aralığında olmalı\n" -#: config/tc-hppa.c:6249 +#: config/tc-hppa.c:6251 msgid "Value for ENTRY_SR must be 3\n" msgstr "ENTRY_SR değeri 3 olmalı\n" -#: config/tc-hppa.c:6305 +#: config/tc-hppa.c:6307 #, c-format msgid "Invalid .CALLINFO argument: %s" msgstr "Geçersiz .CALLINFO argümanı: %s" -#: config/tc-hppa.c:6416 +#: config/tc-hppa.c:6418 msgid "The .ENTER pseudo-op is not supported" msgstr ".ENTER sanal-op'u desteklenmiyor" -#: config/tc-hppa.c:6432 +#: config/tc-hppa.c:6434 msgid "Misplaced .entry. Ignored." msgstr ".entry yanlış yerde. Yoksayıldı." -#: config/tc-hppa.c:6436 +#: config/tc-hppa.c:6438 msgid "Missing .callinfo." msgstr ".callinfo eksik." -#: config/tc-hppa.c:6502 +#: config/tc-hppa.c:6504 msgid ".REG expression must be a register" msgstr ".REG ifadesi bir yazmaç olmalı" -#: config/tc-hppa.c:6518 +#: config/tc-hppa.c:6520 msgid "bad or irreducible absolute expression; zero assumed" msgstr "hatalı veya indirgenemeyen kesin ifade; sıfır varsayıldı" -#: config/tc-hppa.c:6529 +#: config/tc-hppa.c:6531 msgid ".REG must use a label" msgstr ".REG bir etiket kullanmalı" -#: config/tc-hppa.c:6531 +#: config/tc-hppa.c:6533 msgid ".EQU must use a label" msgstr ".EQU bir etiket kullanmalı" -#: config/tc-hppa.c:6584 +#: config/tc-hppa.c:6586 msgid ".EXIT must appear within a procedure" msgstr ".EXIT bir altyordam içinde olmalı" -#: config/tc-hppa.c:6588 +#: config/tc-hppa.c:6590 msgid "Missing .callinfo" msgstr ".callinfo eksik" -#: config/tc-hppa.c:6592 +#: config/tc-hppa.c:6594 msgid "No .ENTRY for this .EXIT" msgstr "Bu .EXIT için bir .ENTRY yok" -#: config/tc-hppa.c:6619 +#: config/tc-hppa.c:6621 #, c-format msgid "Cannot define export symbol: %s\n" msgstr "İhraç sembolü tanımlanamadı: %s\n" -#: config/tc-hppa.c:6677 +#: config/tc-hppa.c:6679 #, c-format msgid "Using ENTRY rather than CODE in export directive for %s" msgstr "%s ihraç yönergesinde CODE yerine ENTRY kullanıldı" -#: config/tc-hppa.c:6794 +#: config/tc-hppa.c:6796 #, c-format msgid "Undefined .EXPORT/.IMPORT argument (ignored): %s" msgstr "Tanımsız .EXPORT/.IMPORT argümanı (yoksayıldı): %s" -#: config/tc-hppa.c:6876 +#: config/tc-hppa.c:6878 msgid "Missing label name on .LABEL" msgstr ".LABEL'da etiket ismi eksik" -#: config/tc-hppa.c:6881 +#: config/tc-hppa.c:6883 msgid "extra .LABEL arguments ignored." msgstr "fazla .LABEL argümanları yoksayıldı." -#: config/tc-hppa.c:6898 +#: config/tc-hppa.c:6900 msgid "The .LEAVE pseudo-op is not supported" msgstr ".LEAVE sanal op'u desteklenmiyor" -#: config/tc-hppa.c:6937 +#: config/tc-hppa.c:6939 msgid "Unrecognized .LEVEL argument\n" msgstr "Bilinmeyen .LEVEL argümanı\n" -#: config/tc-hppa.c:6973 +#: config/tc-hppa.c:6975 #, c-format msgid "Cannot define static symbol: %s\n" msgstr "Statik sembol tanımlanamadı: %s\n" -#: config/tc-hppa.c:7008 +#: config/tc-hppa.c:7010 msgid "Nested procedures" msgstr "İçiçe altyordamlar" -#: config/tc-hppa.c:7018 +#: config/tc-hppa.c:7020 msgid "Cannot allocate unwind descriptor\n" msgstr "Unwind betimleyicisine bellek ayrılamadı\n" -#: config/tc-hppa.c:7118 +#: config/tc-hppa.c:7120 msgid "misplaced .procend" msgstr ".procend yanlış yerde" -#: config/tc-hppa.c:7121 +#: config/tc-hppa.c:7123 msgid "Missing .callinfo for this procedure" msgstr "Bu altyordam için .callinfo eksik" -#: config/tc-hppa.c:7124 +#: config/tc-hppa.c:7126 msgid "Missing .EXIT for a .ENTRY" msgstr ".ENTRY için .EXIT eksik" -#: config/tc-hppa.c:7162 +#: config/tc-hppa.c:7164 msgid "Not in a space.\n" msgstr "Boşluk değil.\n" -#: config/tc-hppa.c:7165 +#: config/tc-hppa.c:7167 msgid "Not in a subspace.\n" msgstr "Altboşlukta değil.\n" -#: config/tc-hppa.c:7256 +#: config/tc-hppa.c:7258 msgid "Invalid .SPACE argument" msgstr "Geçersiz .SPACE argümanı" -#: config/tc-hppa.c:7303 +#: config/tc-hppa.c:7305 msgid "Can't change spaces within a procedure definition. Ignored" msgstr "Bir altyordam tanımı içinde boşluklar değiştirilemez. Yoksayıldı" -#: config/tc-hppa.c:7432 +#: config/tc-hppa.c:7434 #, c-format msgid "Undefined space: '%s' Assuming space number = 0." msgstr "Tanımsız boşluk: '%s' Boşluk sayısı = 0 varsayıldı" -#: config/tc-hppa.c:7456 +#: config/tc-hppa.c:7458 msgid "Must be in a space before changing or declaring subspaces.\n" msgstr "" "Altboşluklar değiştirilmeden veya tanımlanmadan önce bir boşluk içinde olmak\n" "gerekli.\n" -#: config/tc-hppa.c:7460 +#: config/tc-hppa.c:7462 msgid "Can't change subspaces within a procedure definition. Ignored" msgstr "Bir altyordam tanımı içinde altboşluklar değiştirilemez. Yoksayıldı" -#: config/tc-hppa.c:7495 +#: config/tc-hppa.c:7497 msgid "Parameters of an existing subspace can't be modified" msgstr "Var olan bir altboşluğun parametreleri değiştirilemez" -#: config/tc-hppa.c:7546 +#: config/tc-hppa.c:7548 msgid "Alignment must be a power of 2" msgstr "Hizalama 2'nin kuvvetleri olmalı" -#: config/tc-hppa.c:7588 +#: config/tc-hppa.c:7590 msgid "FIRST not supported as a .SUBSPACE argument" msgstr "FIRST, bir .SUBSPACE argümanı olarak desteklenmiyor" -#: config/tc-hppa.c:7590 +#: config/tc-hppa.c:7592 msgid "Invalid .SUBSPACE argument" msgstr "Geçersiz .SUBSPACE argümanı" -#: config/tc-hppa.c:7770 +#: config/tc-hppa.c:7772 #, c-format msgid "Internal error: Unable to find containing space for %s." msgstr "İç hata: %s için taşıyıcı boşluk bulunamadı." -#: config/tc-hppa.c:7809 +#: config/tc-hppa.c:7811 #, c-format msgid "Out of memory: could not allocate new space chain entry: %s\n" msgstr "Bellek tükendi: Yeni boşluk zincir girdisine bellek ayrılamadı: %s\n" -#: config/tc-hppa.c:7895 +#: config/tc-hppa.c:7897 #, c-format msgid "Out of memory: could not allocate new subspace chain entry: %s\n" msgstr "Bellek tükendi: Yeni altboşluk zincir girdisine bellek ayrılamadı: %s\n" -#: config/tc-hppa.c:8589 +#: config/tc-hppa.c:8638 #, c-format msgid "Symbol '%s' could not be created." msgstr "Sembol '%s' oluşturulamadı." -#: config/tc-hppa.c:8593 +#: config/tc-hppa.c:8642 msgid "No memory for symbol name." msgstr "Sembol ismi için bellek yok." -#: config/tc-i386.c:594 +#: config/tc-i386.c:658 #, c-format msgid "%s shortened to %s" msgstr "%s, %s olarak kısaltıldı" -#: config/tc-i386.c:649 +#: config/tc-i386.c:714 msgid "same type of prefix used twice" msgstr "Aynı tür önek iki kez kullanıldı" -#: config/tc-i386.c:667 +#: config/tc-i386.c:732 msgid "64bit mode not supported on this CPU." msgstr "Bu CPU'da 64bit kipi desteklenmiyor." -#: config/tc-i386.c:671 +#: config/tc-i386.c:736 msgid "32bit mode not supported on this CPU." msgstr "Bu CPU'da 32bit kipi desteklenmiyor." -#: config/tc-i386.c:704 +#: config/tc-i386.c:769 msgid "bad argument to syntax directive." msgstr "Sözdizim yönergesine hatalı argüman." -#: config/tc-i386.c:748 +#: config/tc-i386.c:813 #, c-format msgid "no such architecture: `%s'" msgstr "Böyle bir yapı yok: `%s'" -#: config/tc-i386.c:753 +#: config/tc-i386.c:818 msgid "missing cpu architecture" msgstr "eksik cpu yapısı" -#: config/tc-i386.c:767 +#: config/tc-i386.c:832 #, c-format msgid "no such architecture modifier: `%s'" msgstr "Böyle bir yapı yok: `%s'" -#: config/tc-i386.c:821 config/tc-i386.c:4628 +#: config/tc-i386.c:849 config/tc-i386.c:4857 msgid "Unknown architecture" msgstr "Bilinmeyen yapı" -#: config/tc-i386.c:856 config/tc-i386.c:879 config/tc-m68k.c:3826 +#: config/tc-i386.c:884 config/tc-i386.c:907 config/tc-m68k.c:3826 #, c-format msgid "Internal Error: Can't hash %s: %s" msgstr "İç Hata: %s hash'lenemedi: %s" -#: config/tc-i386.c:1132 +#: config/tc-i386.c:1150 msgid "There are no unsigned pc-relative relocations" msgstr "İşaretsiz (unsigned) pc-göreli yerdeğişimler yok" -#: config/tc-i386.c:1139 config/tc-i386.c:4827 +#: config/tc-i386.c:1157 config/tc-i386.c:5062 #, c-format msgid "can not do %d byte pc-relative relocation" msgstr "%d baytlık pc-göreli yerdeğişimler yapılamaz" -#: config/tc-i386.c:1156 +#: config/tc-i386.c:1174 #, c-format msgid "can not do %s %d byte relocation" msgstr "%s %d baytlık yerdeğişim yapılamaz" -#: config/tc-i386.c:1263 config/tc-i386.c:1357 +#. UnixWare fsub no args is alias for fsubp, fadd -> faddp, etc. +#: config/tc-i386.c:1386 +#, c-format +msgid "translating to `%sp'" +msgstr "`%sp'e çevrildi" + +#: config/tc-i386.c:1431 +#, c-format +msgid "can't encode register '%%%s' in an instruction requiring REX prefix.\n" +msgstr "'%%%s' yazmaçları REX öneki gerektiren işlemde kodlanamaz.\n" + +#: config/tc-i386.c:1470 config/tc-i386.c:1565 #, c-format msgid "no such instruction: `%s'" msgstr "İşlem yok: `%s'" -#: config/tc-i386.c:1273 config/tc-i386.c:1389 +#: config/tc-i386.c:1480 config/tc-i386.c:1597 #, c-format msgid "invalid character %s in mnemonic" msgstr "İpucunda geçersiz %s karakteri" -#: config/tc-i386.c:1280 +#: config/tc-i386.c:1487 msgid "expecting prefix; got nothing" msgstr "önek beklendi; hiç bir şey bulunamadı" -#: config/tc-i386.c:1282 +#: config/tc-i386.c:1489 msgid "expecting mnemonic; got nothing" msgstr "ipucu beklendi; hiç bir şey bulunamadı" -#: config/tc-i386.c:1300 +#: config/tc-i386.c:1508 #, c-format msgid "redundant %s prefix" msgstr "fazla %s öneki" -#: config/tc-i386.c:1398 +#: config/tc-i386.c:1606 #, c-format msgid "`%s' is not supported on `%s'" msgstr "`%s', `%s' üzerinde desteklenmiyor" -#: config/tc-i386.c:1403 +#: config/tc-i386.c:1611 msgid "use .code16 to ensure correct addressing mode" msgstr "doğru adresleme kipi için .code16 kullanın" -#: config/tc-i386.c:1410 +#: config/tc-i386.c:1618 #, c-format msgid "expecting string instruction after `%s'" msgstr "`%s'den sonra dizge işlemi beklendi" -#: config/tc-i386.c:1431 +#: config/tc-i386.c:1646 #, c-format msgid "invalid character %s before operand %d" msgstr "%2$d işleneninden önce geçersiz %1$s karakteri" -#: config/tc-i386.c:1445 +#: config/tc-i386.c:1660 #, c-format msgid "unbalanced parenthesis in operand %d." msgstr "%d işleneninde eşlenmeyen parantez" -#: config/tc-i386.c:1448 +#: config/tc-i386.c:1663 #, c-format msgid "unbalanced brackets in operand %d." msgstr "%d işleneninde eşleşmeyen köşeli parantez" -#: config/tc-i386.c:1457 +#: config/tc-i386.c:1672 #, c-format msgid "invalid character %s in operand %d" msgstr "%2$d işleneninde geçersiz %1$s karakteri" -#: config/tc-i386.c:1484 +#: config/tc-i386.c:1699 #, c-format msgid "spurious operands; (%d operands/instruction max)" msgstr "gereksiz işlenenler; (%d işlenen/işlem maksimumu)" -#: config/tc-i386.c:1507 +#: config/tc-i386.c:1722 msgid "expecting operand after ','; got nothing" msgstr "işlenenden sonra ',' beklendi; hiç bir şey bulunamadı" -#: config/tc-i386.c:1512 +#: config/tc-i386.c:1727 msgid "expecting operand before ','; got nothing" msgstr "','den önce işlenen beklendi; hiç bir şey bulunamadı" #. We found no match. -#: config/tc-i386.c:1856 +#: config/tc-i386.c:2069 #, c-format msgid "suffix or operands invalid for `%s'" msgstr "`%s' için sonek veya işlenenler geçersiz" -#: config/tc-i386.c:1867 +#: config/tc-i386.c:2080 #, c-format msgid "indirect %s without `*'" msgstr "`*' olmaksızın endirekt %s" #. Warn them that a data or address size prefix doesn't #. affect assembly of the next line of code. -#: config/tc-i386.c:1875 +#: config/tc-i386.c:2088 #, c-format msgid "stand-alone `%s' prefix" msgstr "tek kullanılabilen `%s' öneki" -#: config/tc-i386.c:1911 config/tc-i386.c:1926 +#: config/tc-i386.c:2117 config/tc-i386.c:2132 #, c-format msgid "`%s' operand %d must use `%%es' segment" msgstr "`%s' işleneni %d `%%es' bölümünü kullanmalı" -#. Prohibit these changes in the 64bit mode, since -#. the lowering is more complicated. -#: config/tc-i386.c:1999 config/tc-i386.c:2053 config/tc-i386.c:2068 config/tc-i386.c:2096 config/tc-i386.c:2124 +#: config/tc-i386.c:2212 +msgid "no instruction mnemonic suffix given and no register operands; can't size instruction" +msgstr "işlem ipucu soneki verilmemiş ve yazmaç işlenenleri yok; işlem boyu hesaplanamıyor" + +#. Prohibit these changes in the 64bit mode, since the +#. lowering is more complicated. +#: config/tc-i386.c:2296 config/tc-i386.c:2355 config/tc-i386.c:2372 +#: config/tc-i386.c:2404 config/tc-i386.c:2437 #, c-format -msgid "Incorrect register `%%%s' used with`%c' suffix" +msgid "Incorrect register `%%%s' used with `%c' suffix" msgstr "Hatalı `%%%s' yazmacı `%c' soneki ile kullanılmış" -#: config/tc-i386.c:2005 config/tc-i386.c:2058 config/tc-i386.c:2129 +#: config/tc-i386.c:2304 config/tc-i386.c:2362 config/tc-i386.c:2444 #, c-format msgid "using `%%%s' instead of `%%%s' due to `%c' suffix" msgstr "`%3$c' soneki yüzünden `%%%2$s' yerine `%%%1$s' kullanılıyor" -#: config/tc-i386.c:2021 config/tc-i386.c:2039 config/tc-i386.c:2083 config/tc-i386.c:2110 +#: config/tc-i386.c:2319 config/tc-i386.c:2340 config/tc-i386.c:2391 +#: config/tc-i386.c:2422 #, c-format msgid "`%%%s' not allowed with `%s%c'" msgstr "`%%%s', `%s%c' ile kullanılamaz" -#: config/tc-i386.c:2170 +#: config/tc-i386.c:2485 msgid "no instruction mnemonic suffix given; can't determine immediate size" msgstr "işlem ipucu soneki verilmemiş; şimdiki boy hesaplanamıyor" -#: config/tc-i386.c:2196 +#: config/tc-i386.c:2518 #, c-format msgid "no instruction mnemonic suffix given; can't determine immediate size %x %c" msgstr "işlem ipucu soneki verilmemiş; şimdiki boy %x %c hesaplanamıyor" -#: config/tc-i386.c:2221 -msgid "no instruction mnemonic suffix given and no register operands; can't size instruction" -msgstr "işlem ipucu soneki verilmemiş ve yazmaç işlenenleri yok; işlem boyu hesaplanamıyor" - -#: config/tc-i386.c:2269 -msgid "64bit operations available only in 64bit modes." -msgstr "64bit işlemleri yalnız 64bit kiplerinde kullanılabilir" - #. Reversed arguments on faddp, fsubp, etc. -#: config/tc-i386.c:2337 +#: config/tc-i386.c:2567 #, c-format msgid "translating to `%s %%%s,%%%s'" msgstr "`%s %%%s,%%%s'e çevrildi" #. Extraneous `l' suffix on fp insn. -#: config/tc-i386.c:2344 +#: config/tc-i386.c:2574 #, c-format msgid "translating to `%s %%%s'" msgstr "`%s %%%s'e çevrildi" -#: config/tc-i386.c:2617 +#: config/tc-i386.c:2593 #, c-format msgid "you can't `pop %%cs'" msgstr "`pop %%cs' emme işlemi yapılamıyor" -#. UnixWare fsub no args is alias for fsubp, fadd -> faddp, etc. -#: config/tc-i386.c:2650 -#, c-format -msgid "translating to `%sp'" -msgstr "`%sp'e çevrildi" - -#: config/tc-i386.c:2693 -#, c-format -msgid "Can't encode registers '%%%s' in the instruction requiring REX prefix.\n" -msgstr "'%%%s' yazmaçları REX öneki gerektiren işlemde kodlanamaz.\n" - -#: config/tc-i386.c:2755 config/tc-i386.c:2845 config/tc-i386.c:2881 +#: config/tc-i386.c:2919 config/tc-i386.c:3012 config/tc-i386.c:3051 msgid "skipping prefixes on this instruction" msgstr "bu işlemde önekler atlanıyor" -#: config/tc-i386.c:2901 +#: config/tc-i386.c:3071 msgid "16-bit jump out of range" msgstr "16bitlik sıçrama kapsam dışı" -#: config/tc-i386.c:2910 +#: config/tc-i386.c:3080 #, c-format msgid "can't handle non absolute segment in `%s'" msgstr "`%s' içinde kesin olmayan bölüm desteklenmiyor" -#: config/tc-i386.c:3217 +#: config/tc-i386.c:3418 #, c-format msgid "@%s reloc is not supported in %s bit mode" msgstr "@%s yerdeğişimleri %s bit kipinde desteklenmiyor" -#: config/tc-i386.c:3293 +#: config/tc-i386.c:3494 msgid "only 1 or 2 immediate operands are allowed" msgstr "yalnız 1 veya 2 şimdiki işlenen kullanılabilir" -#: config/tc-i386.c:3316 config/tc-i386.c:3504 +#: config/tc-i386.c:3517 config/tc-i386.c:3708 #, c-format msgid "junk `%s' after expression" msgstr "ifade sonrasında hatalı `%s'" #. Missing or bad expr becomes absolute 0. -#: config/tc-i386.c:3327 +#: config/tc-i386.c:3528 #, c-format msgid "missing or invalid immediate expression `%s' taken as 0" msgstr "eksik veya hatalı şimdiki `%s' ifadesi 0 varsayıldı" -#: config/tc-i386.c:3358 config/tc-i386.c:3565 +#: config/tc-i386.c:3559 config/tc-i386.c:3769 #, c-format msgid "unimplemented segment %s in operand" msgstr "işlenende desteklenmeyen %s bölümü" -#: config/tc-i386.c:3360 config/tc-i386.c:3567 +#: config/tc-i386.c:3561 config/tc-i386.c:3771 #, c-format msgid "unimplemented segment type %d in operand" msgstr "işlenende desteklenmeyen bölüm türü %d" -#: config/tc-i386.c:3404 config/tc-i386.c:5588 +#: config/tc-i386.c:3605 config/tc-i386.c:5836 #, c-format msgid "expecting scale factor of 1, 2, 4, or 8: got `%s'" msgstr "Ölçek çarpanı 1, 2, 4 veya 8 beklendi: `%s' bulundu" -#: config/tc-i386.c:3411 +#: config/tc-i386.c:3612 #, c-format msgid "scale factor of %d without an index register" msgstr "indeks yazmaçsız ölçek çarpanı %d" -#: config/tc-i386.c:3524 +#: config/tc-i386.c:3728 #, c-format msgid "bad expression used with @%s" msgstr "@%s ile kullanılmış geçersiz ifade" #. Missing or bad expr becomes absolute 0. -#: config/tc-i386.c:3546 +#: config/tc-i386.c:3750 #, c-format msgid "missing or invalid displacement expression `%s' taken as 0" msgstr "eksik veya hatalı yerdeğişim ifadesi `%s' 0 varsayıldı" -#: config/tc-i386.c:3652 +#: config/tc-i386.c:3869 #, c-format msgid "`%s' is not a valid base/index expression" msgstr "`%s' geçerli bir temel/indeks ifadesi değil" -#: config/tc-i386.c:3656 +#: config/tc-i386.c:3873 #, c-format msgid "`%s' is not a valid %s bit base/index expression" msgstr "`%s' geçerli %s bitlik temel/indeks ifadesi değil" -#: config/tc-i386.c:3731 +#: config/tc-i386.c:3948 #, c-format msgid "bad memory operand `%s'" msgstr "hatalı bellek işleneni `%s'" -#: config/tc-i386.c:3746 +#: config/tc-i386.c:3963 #, c-format msgid "junk `%s' after register" msgstr "yazmaçtan sonra bozuk `%s'" -#: config/tc-i386.c:3755 config/tc-i386.c:3870 config/tc-i386.c:3908 +#: config/tc-i386.c:3972 config/tc-i386.c:4087 config/tc-i386.c:4125 #, c-format msgid "bad register name `%s'" msgstr "hatalı yazmaç ismi `%s'" -#: config/tc-i386.c:3763 +#: config/tc-i386.c:3980 msgid "immediate operand illegal with absolute jump" msgstr "şimdiki işlenen, kesin sıçrama ile geçersiz" -#: config/tc-i386.c:3785 +#: config/tc-i386.c:4002 #, c-format msgid "too many memory references for `%s'" msgstr "`%s' için çok fazla bellek başvurusu" -#: config/tc-i386.c:3863 +#: config/tc-i386.c:4080 #, c-format msgid "expecting `,' or `)' after index register in `%s'" msgstr "%s içinde indeks yazmacından sonra `,' veya `)' beklendi" -#: config/tc-i386.c:3887 +#: config/tc-i386.c:4104 #, c-format msgid "expecting `)' after scale factor in `%s'" msgstr "`%s' içinde ölçek çarpanından sonra `)' beklendi" -#: config/tc-i386.c:3894 +#: config/tc-i386.c:4111 #, c-format msgid "expecting index register or scale factor after `,'; got '%c'" msgstr "`,'den sonra indeks yazmacı veya ölçek çarpanı beklendi; '%c' bulundu" -#: config/tc-i386.c:3901 +#: config/tc-i386.c:4118 #, c-format msgid "expecting `,' or `)' after base register in `%s'" msgstr "`%s' içinde temel yazmaçtan sonra `,' veya `)' beklendi" #. It's not a memory operand; argh! -#: config/tc-i386.c:3942 +#: config/tc-i386.c:4159 #, c-format msgid "invalid char %s beginning operand %d `%s'" msgstr "%2$d `%3$s' işleneninin başında geçersiz karakter %1$s" -#: config/tc-i386.c:4117 +#: config/tc-i386.c:4338 msgid "long jump required" msgstr "uzun atlama gerekli" -#: config/tc-i386.c:4417 +#: config/tc-i386.c:4646 msgid "Bad call to md_atof ()" msgstr "md_atof()'a hatalı çağrı" -#: config/tc-i386.c:4581 +#: config/tc-i386.c:4810 msgid "No compiled in support for x86_64" msgstr "x86_64 için derlenmiş destek yok" -#: config/tc-i386.c:4602 +#: config/tc-i386.c:4831 msgid "" " -Q ignored\n" " -V print assembler version number\n" @@ -3802,63 +4389,63 @@ msgstr "" " -q bazı uyarıları durdurur\n" " -s yoksayılır\n" -#: config/tc-i386.c:4609 +#: config/tc-i386.c:4838 msgid " -q quieten some warnings\n" msgstr " -q bazı uyarıları durdurur\n" -#: config/tc-i386.c:4710 config/tc-s390.c:1592 +#: config/tc-i386.c:4939 config/tc-s390.c:1601 msgid "GOT already in symbol table" msgstr "GOT zaten sembol tablosunda" -#: config/tc-i386.c:4842 +#: config/tc-i386.c:5077 #, c-format msgid "can not do %d byte relocation" msgstr "%d baytlık yerdeğişim yapılamaz" -#: config/tc-i386.c:4894 config/tc-s390.c:1957 +#: config/tc-i386.c:5142 config/tc-s390.c:1969 #, c-format msgid "cannot represent relocation type %s" msgstr "%s yerdeğişim türü gösterilemiyor" -#: config/tc-i386.c:5190 +#: config/tc-i386.c:5438 #, c-format msgid "too many memory references for '%s'" msgstr "'%s' için çok fazla bellek başvurusu" -#: config/tc-i386.c:5353 +#: config/tc-i386.c:5601 #, c-format msgid "Unknown operand modifier `%s'\n" msgstr "Bilinmeyen `%s' işlenen değiştiricisi\n" -#: config/tc-i386.c:5560 +#: config/tc-i386.c:5808 #, c-format msgid "`%s' is not a valid segment register" msgstr "`%s' geçerli bir bölüm yazmacı değil" -#: config/tc-i386.c:5570 config/tc-i386.c:5691 +#: config/tc-i386.c:5818 config/tc-i386.c:5939 msgid "Register scaling only allowed in memory operands." msgstr "Yazmaç ölçeklenmesi yalnız bellek işlenenleri için geçerli." -#: config/tc-i386.c:5601 +#: config/tc-i386.c:5849 msgid "Too many register references in memory operand.\n" msgstr "Bellek işleneninde çok fazla yazmaç başvurusu.\n" -#: config/tc-i386.c:5670 +#: config/tc-i386.c:5918 #, c-format msgid "Syntax error. Expecting a constant. Got `%s'.\n" msgstr "Sözdizim hatası. Sabit beklendi. `%s' bulundu.\n" -#: config/tc-i386.c:5740 +#: config/tc-i386.c:5988 #, c-format msgid "Unrecognized token '%s'" msgstr "Bilinmeyen '%s' dizgeciği" -#: config/tc-i386.c:5757 +#: config/tc-i386.c:6005 #, c-format msgid "Unexpected token `%s'\n" msgstr "Beklenmeyen `%s' dizgeciği\n" -#: config/tc-i386.c:5901 +#: config/tc-i386.c:6149 #, c-format msgid "Unrecognized token `%s'\n" msgstr "Bilinmeyen `%s' dizgeciği\n" @@ -3867,7 +4454,7 @@ msgstr "Bilinmeyen `%s' dizgeciği\n" msgid "Unknown temporary pseudo register" msgstr "Bilinmeyen geçici sanal yazmaç" -#: config/tc-i860.c:181 config/tc-mips.c:1248 +#: config/tc-i860.c:181 config/tc-mips.c:1060 #, c-format msgid "internal error: can't hash `%s': %s\n" msgstr "İç hata: `%s' hash'lenemedi: %s\n" @@ -3904,7 +4491,7 @@ msgstr "Çevirici henüz PIC desteklemiy msgid "Illegal operands for %s" msgstr "%s için geçersiz işlenen" -#: config/tc-i860.c:873 config/tc-sparc.c:2731 +#: config/tc-i860.c:873 config/tc-sparc.c:2737 msgid "bad segment" msgstr "hatalı bölüm" @@ -4028,208 +4615,213 @@ msgstr "" "-no-relax\t\tkarşılaştır-ve-dallan işlemlerini uzak yerdeğişimler için\n" "\t\t\tdeğiştirmez\n" -#: config/tc-i960.c:1404 +#: config/tc-i960.c:1405 msgid "too many operands" msgstr "çok fazla işlenen" -#: config/tc-i960.c:1463 config/tc-i960.c:1690 +#: config/tc-i960.c:1464 config/tc-i960.c:1691 msgid "expression syntax error" msgstr "ifade sözdizim hatası" -#: config/tc-i960.c:1501 +#: config/tc-i960.c:1502 msgid "attempt to branch into different segment" msgstr "değişik bölüme dallanma denemesi" -#: config/tc-i960.c:1505 +#: config/tc-i960.c:1506 #, c-format msgid "target of %s instruction must be a label" msgstr "%s işleminin hedefi etiket olmalı" -#: config/tc-i960.c:1544 +#: config/tc-i960.c:1545 msgid "unmatched '['" msgstr "'[' eşleşmiyor" -#: config/tc-i960.c:1555 +#: config/tc-i960.c:1556 msgid "garbage after index spec ignored" msgstr "indeks tanımından sonraki bozukluk yoksayıldı" #. We never moved: there was no opcode either! -#: config/tc-i960.c:1621 +#: config/tc-i960.c:1622 msgid "missing opcode" msgstr "eksik opkod" -#: config/tc-i960.c:2036 +#: config/tc-i960.c:2037 msgid "invalid index register" msgstr "geçersiz indeks yazmacı" -#: config/tc-i960.c:2059 +#: config/tc-i960.c:2060 msgid "invalid scale factor" msgstr "geçersiz ölçek çarpanı" -#: config/tc-i960.c:2242 +#: config/tc-i960.c:2243 msgid "unaligned register" msgstr "hizalanmamış yazmaç" -#: config/tc-i960.c:2265 +#: config/tc-i960.c:2266 msgid "no such sfr in this architecture" msgstr "bu yapıda sfr yok" -#: config/tc-i960.c:2303 +#: config/tc-i960.c:2304 msgid "illegal literal" msgstr "geçersiz sabit" #. Should not happen: see block comment above -#: config/tc-i960.c:2533 +#: config/tc-i960.c:2534 #, c-format msgid "Trying to 'bal' to %s" msgstr "%s'e 'bal' yapılmaya çalışılıyor" -#: config/tc-i960.c:2544 +#: config/tc-i960.c:2545 msgid "Looks like a proc, but can't tell what kind.\n" msgstr "Alt yordama benziyor ama türü belirlenemedi.\n" -#: config/tc-i960.c:2575 +#: config/tc-i960.c:2576 msgid "should have 1 or 2 operands" msgstr "1 veya 2 işlenen olmalı" -#: config/tc-i960.c:2584 config/tc-i960.c:2603 +#: config/tc-i960.c:2585 config/tc-i960.c:2604 #, c-format msgid "Redefining leafproc %s" msgstr "leafproc %s yeniden tanımlanıyor" -#: config/tc-i960.c:2634 +#: config/tc-i960.c:2635 msgid "should have two operands" msgstr "iki işleneni olmalı" -#: config/tc-i960.c:2644 +#: config/tc-i960.c:2645 msgid "'entry_num' must be absolute number in [0,31]" msgstr "'entry_num' [0,31] aralığında kesin bir sayı olmalı" -#: config/tc-i960.c:2653 +#: config/tc-i960.c:2654 #, c-format msgid "Redefining entrynum for sysproc %s" msgstr "sysproc %s için entrynum yeniden tanımlanıyor" -#: config/tc-i960.c:2760 +#: config/tc-i960.c:2761 msgid "architecture of opcode conflicts with that of earlier instruction(s)" msgstr "opkod'un yapısı önceki işlem(ler)in yapısı ile çakışıyor" -#: config/tc-i960.c:2781 +#: config/tc-i960.c:2782 msgid "big endian mode is not supported" msgstr "büyük sonlu kip desteklenmiyor" -#: config/tc-i960.c:2783 +#: config/tc-i960.c:2784 #, c-format msgid "ignoring unrecognized .endian type `%s'" msgstr "bilinmeyen .endian türü `%s' yoksayıldı " -#: config/tc-i960.c:3055 +#: config/tc-i960.c:3056 #, c-format msgid "leafproc symbol '%s' undefined" msgstr "leafproc sembolü '%s' tanımlanmamış" -#: config/tc-i960.c:3065 +#: config/tc-i960.c:3066 #, c-format msgid "Warning: making leafproc entries %s and %s both global\n" msgstr "Uyarı: leafproc girdileri %s ve %s evrenselleştirildi\n" -#: config/tc-i960.c:3174 +#: config/tc-i960.c:3175 msgid "option --link-relax is only supported in b.out format" msgstr "--link-relax seçeneği yalnız b.out biçeminde destekleniyor" -#: config/tc-i960.c:3217 write.c:2670 +#: config/tc-i960.c:3218 write.c:2689 msgid "callj to difference of two symbols" msgstr "iki sembolün farkına callj" -#: config/tc-ia64.c:1052 +#: config/tc-ia64.c:1078 msgid "Unwind directive not followed by an instruction." msgstr "Geriye sarma yönergesi sonrasında bir işlem yok." -#: config/tc-ia64.c:4416 +#: config/tc-ia64.c:4512 msgid "Register name expected" msgstr "Yazmaç ismi beklendi" -#: config/tc-ia64.c:4421 config/tc-ia64.c:4707 +#: config/tc-ia64.c:4517 config/tc-ia64.c:4803 msgid "Comma expected" msgstr "Virgül beklendi" -#: config/tc-ia64.c:4429 +#: config/tc-ia64.c:4525 msgid "Register value annotation ignored" msgstr "Yazmaç değeri açıklaması yoksayıldı" -#: config/tc-ia64.c:4453 +#: config/tc-ia64.c:4549 msgid "Directive invalid within a bundle" msgstr "İşlem balya (bundle) içinde geçersiz" -#: config/tc-ia64.c:4520 +#: config/tc-ia64.c:4616 msgid "Missing predicate relation type" msgstr "Dayanak ilişki türü eksik" -#: config/tc-ia64.c:4536 +#: config/tc-ia64.c:4632 msgid "Unrecognized predicate relation type" msgstr "Bilinmeyen dayanak ilişki türü" -#: config/tc-ia64.c:4556 config/tc-ia64.c:4581 +#: config/tc-ia64.c:4652 config/tc-ia64.c:4677 msgid "Predicate register expected" msgstr "Dayanak yazmacı beklendi" -#: config/tc-ia64.c:4568 +#: config/tc-ia64.c:4664 msgid "Duplicate predicate register ignored" msgstr "Çoklu dayanak yazmacı yoksayıldı" -#: config/tc-ia64.c:4590 +#: config/tc-ia64.c:4686 msgid "Bad register range" msgstr "Hatalı yazmaç aralığı" -#: config/tc-ia64.c:4618 +#: config/tc-ia64.c:4714 msgid "Predicate source and target required" msgstr "Dayanak kaynak ve hedefi gerekli" -#: config/tc-ia64.c:4620 config/tc-ia64.c:4632 +#: config/tc-ia64.c:4716 config/tc-ia64.c:4728 msgid "Use of p0 is not valid in this context" msgstr "Bu bağlamda p0 kullanımı geçersiz" -#: config/tc-ia64.c:4627 +#: config/tc-ia64.c:4723 msgid "At least two PR arguments expected" msgstr "En az iki PR argümanı beklendi" -#: config/tc-ia64.c:4641 +#: config/tc-ia64.c:4737 msgid "At least one PR argument expected" msgstr "En az bir PR argümanı beklendi" -#: config/tc-ia64.c:4677 +#: config/tc-ia64.c:4773 #, c-format msgid "Inserting \"%s\" into entry hint table failed: %s" msgstr "Girdi ipucu tablosuna \"%s\" eklenmesi başarısız: %s" #. FIXME -- need 62-bit relocation type -#: config/tc-ia64.c:5147 +#: config/tc-ia64.c:5243 msgid "62-bit relocation not yet implemented" msgstr "62 bitlik yerdeğişim henüz desteklenmiyor" #. XXX technically, this is wrong: we should not be issuing warning #. messages until we're sure this instruction pattern is going to #. be used! -#: config/tc-ia64.c:5220 +#: config/tc-ia64.c:5316 msgid "lower 16 bits of mask ignored" msgstr "maskenin alt 16 biti yoksayıldı" -#: config/tc-ia64.c:5775 +#: config/tc-ia64.c:5871 msgid "Value truncated to 62 bits" msgstr "Değer 62 bite budandı" -#: config/tc-ia64.c:6126 +#: config/tc-ia64.c:6222 msgid "Additional NOP may be necessary to workaround Itanium processor A/B step errata" msgstr "Itanium işlemcisi A/B adım hatasını bertaraf etmek için ek NOP gerekebilir" -#: config/tc-ia64.c:6309 +#: config/tc-ia64.c:6405 #, c-format msgid "Unrecognized option '-x%s'" msgstr "Bilinmeyen seçenek: '-x%s'" -#: config/tc-ia64.c:6337 +#: config/tc-ia64.c:6433 msgid "" "IA-64 options:\n" +" --mconstant-gp\t mark output file as using the constant-GP model\n" +"\t\t\t (sets ELF header flag EF_IA_64_CONS_GP)\n" +" --mauto-pic\t\t mark output file as using the constant-GP model\n" +"\t\t\t without function descriptors (sets ELF header flag\n" +"\t\t\t EF_IA_64_NOFUNCDESC_CONS_GP)\n" " -milp32|-milp64|-mlp64|-mp64\tselect data model (default -mlp64)\n" " -mle | -mbe\t\t select little- or big-endian byte order (default -mle)\n" " -x | -xexplicit\t turn on dependency violation checking (default)\n" @@ -4237,43 +4829,48 @@ msgid "" " -xdebug\t\t debug dependency violation checker\n" msgstr "" "IA-64 seçenekleri:\n" +" --mconstant-gp\t çıktı dosyasını sabit GP modelini kullanıyor olarak\n" +"\t\t\t işaretler (ELF başlık bayrağı EF_IA_64_CONS_GP'ye değer atar)\n" +" --mauto-pic\t\t çıktı dosyasını , işlem tanımlayıcılar olmaksızın \n" +"\t\t\t sabit GP modeli olarak işaretler (ELF başlık bayrağı\n" +"\t\t\t EF_IA_64_NOFUNCDESC_CONS_GP'ye değer atar)\n" " -milp32|-milp64|-mlp64|-mp64\tveri modelini seçer (öntanımlı -mlp64)\n" " -mle | -mbe\t\t küçük (-mle) veya büyük (-mbe) sonlu (öntanımlı -mle)\n" " -x | -xexplicit\t bağımlılık ihlali kontrolünü etkinleştirir (öntanımlı)\n" " -xauto\t\t bağımlılık ihlallerini otomatik kaldırır\n" " -xdebug\t\t bağımlılık ihlal kontrolünde hata ayıklar\n" -#: config/tc-ia64.c:6351 +#: config/tc-ia64.c:6452 msgid "--gstabs is not supported for ia64" msgstr "--gstabs ia64 için desteklenmiyor" -#: config/tc-ia64.c:6618 config/tc-mips.c:1227 +#: config/tc-ia64.c:6743 config/tc-mips.c:1049 msgid "Could not set architecture and machine" msgstr "Yapı ve makina ayarlanamadı" -#: config/tc-ia64.c:6725 +#: config/tc-ia64.c:6850 msgid "Explicit stops are ignored in auto mode" msgstr "Açık durmalar otomatik kipte yoksayılır" -#: config/tc-ia64.c:6775 +#: config/tc-ia64.c:6900 msgid "Found '{' after explicit switch to automatic mode" msgstr "Otomatik kipe açık girişten sonra '{' bulundu" -#: config/tc-ia64.c:7222 +#: config/tc-ia64.c:7347 #, c-format msgid "Unhandled dependency %s for %s (%s), note %d" msgstr "%2$s (%3$s) için çözümlenmemiş %1$s bağımlılığı, not: %4$d" -#: config/tc-ia64.c:8498 +#: config/tc-ia64.c:8623 #, c-format msgid "Unrecognized dependency specifier %d\n" msgstr "Bilinmeyen bağımlılık belirteci %d\n" -#: config/tc-ia64.c:9300 +#: config/tc-ia64.c:9425 msgid "Only the first path encountering the conflict is reported" msgstr "Sadece uyuşmazlığa ilk rastlanan yol bildirildi" -#: config/tc-ia64.c:9303 +#: config/tc-ia64.c:9428 msgid "This is the location of the conflicting usage" msgstr "Uyumsuz kullanımın yeri burası" @@ -4399,7 +4996,7 @@ msgstr "%s: 1. işleminin çıktısı 2. msgid "%s: output of 2nd instruction is the same as an input to 1st instruction - is this intentional ?" msgstr "%s: 2. işleminin çıktısı 1. işleminin girdisi ile aynı - bu istendi mi?" -#: config/tc-m32r.c:1252 config/tc-ppc.c:1571 config/tc-ppc.c:3966 +#: config/tc-m32r.c:1252 config/tc-ppc.c:1561 config/tc-ppc.c:3977 msgid "Expected comma after symbol-name: rest of line ignored." msgstr "sembol isminden sonra virgül beklendi: satırın gerisi yoksayıldı." @@ -4408,15 +5005,16 @@ msgstr "sembol isminden sonra virgül be msgid ".SCOMMon length (%ld.) <0! Ignored." msgstr ".SCOMMon uzunluğu (%ld.) <0! Yoksayıldı." -#: config/tc-m32r.c:1276 config/tc-ppc.c:1593 config/tc-ppc.c:2615 config/tc-ppc.c:3990 +#: config/tc-m32r.c:1276 config/tc-ppc.c:1583 config/tc-ppc.c:2626 +#: config/tc-ppc.c:4001 msgid "ignoring bad alignment" msgstr "hatalı hizalama yoksayıldı" -#: config/tc-m32r.c:1288 config/tc-ppc.c:1630 config/tc-v850.c:383 +#: config/tc-m32r.c:1288 config/tc-ppc.c:1620 config/tc-v850.c:333 msgid "Common alignment not a power of 2" msgstr "Ortak hizalama 2'nin kuvveti değil" -#: config/tc-m32r.c:1303 config/tc-ppc.c:1604 config/tc-ppc.c:4002 +#: config/tc-m32r.c:1303 config/tc-ppc.c:1594 config/tc-ppc.c:4013 #, c-format msgid "Ignoring attempt to re-define symbol `%s'." msgstr "`%s' sembolünü yeniden tanımlama denemesi yoksayıldı." @@ -4786,16 +5384,16 @@ msgstr "%d baytlık pic yerdeğişimi ya msgid "Unable to produce reloc against symbol '%s'" msgstr "'%s' sembolüne yerdeğişim üretilemedi" -#: config/tc-m68k.c:948 config/tc-mips.c:12429 +#: config/tc-m68k.c:948 config/tc-mips.c:12955 config/tc-vax.c:3442 #, c-format msgid "Cannot make %s relocation PC relative" msgstr "%s yerdeğişimi PC göreli yapılamaz" -#: config/tc-m68k.c:1041 config/tc-tahoe.c:1495 config/tc-vax.c:1762 +#: config/tc-m68k.c:1041 config/tc-tahoe.c:1495 config/tc-vax.c:1890 msgid "No operator" msgstr "İşlemimi yok" -#: config/tc-m68k.c:1071 config/tc-tahoe.c:1512 config/tc-vax.c:1779 +#: config/tc-m68k.c:1071 config/tc-tahoe.c:1512 config/tc-vax.c:1907 msgid "Unknown operator" msgstr "Bilinmeyen operatör" @@ -4827,7 +5425,8 @@ msgstr "68010 veya üstü" msgid "operands mismatch" msgstr "işlenenler uyuşmuyor" -#: config/tc-m68k.c:1949 config/tc-m68k.c:1955 config/tc-m68k.c:1961 config/tc-mmix.c:2448 config/tc-mmix.c:2472 +#: config/tc-m68k.c:1949 config/tc-m68k.c:1955 config/tc-m68k.c:1961 +#: config/tc-mmix.c:2465 config/tc-mmix.c:2489 msgid "operand out of range" msgstr "işlenen kapsam dışı" @@ -4872,7 +5471,8 @@ msgstr "desteklenmeyen bayt değeri; far msgid "unknown/incorrect operand" msgstr "bilinmeyen/geçersiz işlenen" -#: config/tc-m68k.c:2485 config/tc-m68k.c:2493 config/tc-m68k.c:2500 config/tc-m68k.c:2507 +#: config/tc-m68k.c:2485 config/tc-m68k.c:2493 config/tc-m68k.c:2500 +#: config/tc-m68k.c:2507 msgid "out of range" msgstr "kapsam dışı" @@ -5029,7 +5629,7 @@ msgstr "hatalı yazmaç listesi: %s" msgid "restore without save" msgstr "kaydetmeden eski haline getirir" -#: config/tc-m68k.c:5641 config/tc-m68k.c:6026 +#: config/tc-m68k.c:5641 config/tc-m68k.c:6028 msgid "syntax error in structured control directive" msgstr "yapılandırılmış denetim yönergesinde biçem hatası" @@ -5042,68 +5642,69 @@ msgstr "yapılandırılmış denetim yö msgid "Condition <%c%c> in structured control directive can not be encoded correctly" msgstr "yapılandırılmış denetim yönergesindeki <%c%c> koşulu doğru kodlanamıyor" -#: config/tc-m68k.c:6069 +#: config/tc-m68k.c:6071 msgid "missing then" msgstr "`then' eksik" -#: config/tc-m68k.c:6151 +#: config/tc-m68k.c:6153 msgid "else without matching if" msgstr "`if' ile eşleşmeyen `else'" -#: config/tc-m68k.c:6185 +#: config/tc-m68k.c:6187 msgid "endi without matching if" msgstr "`if' ile eşleşmeyen `endi'" -#: config/tc-m68k.c:6226 +#: config/tc-m68k.c:6228 msgid "break outside of structured loop" msgstr "yapılandırılmış döngünün dışında `break' (durma)" -#: config/tc-m68k.c:6265 +#: config/tc-m68k.c:6267 msgid "next outside of structured loop" msgstr "yapılandırılmış döngünün dışında `next' (sonraki)" -#: config/tc-m68k.c:6317 +#: config/tc-m68k.c:6319 msgid "missing =" msgstr "= eksik" -#: config/tc-m68k.c:6355 +#: config/tc-m68k.c:6357 msgid "missing to or downto" msgstr "`to' veya `downto' eksik" -#: config/tc-m68k.c:6391 config/tc-m68k.c:6425 config/tc-m68k.c:6644 +#: config/tc-m68k.c:6393 config/tc-m68k.c:6427 config/tc-m68k.c:6646 msgid "missing do" msgstr "`do' eksik" -#: config/tc-m68k.c:6528 +#: config/tc-m68k.c:6530 msgid "endf without for" msgstr "`for' ile eşleşmeyen `endf'" -#: config/tc-m68k.c:6584 +#: config/tc-m68k.c:6586 msgid "until without repeat" msgstr "`repeat' ile eşleşmeyen `until'" -#: config/tc-m68k.c:6680 +#: config/tc-m68k.c:6682 msgid "endw without while" msgstr "`while' ile eşleşmeyen `endw'" -#: config/tc-m68k.c:6804 +#: config/tc-m68k.c:6806 #, c-format msgid "unrecognized option `%s'" msgstr "bilinmeyen seçenek: `%s'" -#: config/tc-m68k.c:6849 +#: config/tc-m68k.c:6851 #, c-format msgid "unrecognized architecture specification `%s'" msgstr "bilinmeyen yapı tanımı `%s'" -#: config/tc-m68k.c:6919 +#: config/tc-m68k.c:6944 +#, c-format msgid "" "680X0 options:\n" "-l\t\t\tuse 1 word for refs to undefined symbols [default 2]\n" "-m68000 | -m68008 | -m68010 | -m68020 | -m68030 | -m68040 | -m68060 |\n" "-m68302 | -m68331 | -m68332 | -m68333 | -m68340 | -m68360 | -mcpu32 |\n" "-m5200 | -m5202 | -m5204 | -m5206 | -m5206e | -m5307 | -m5407\n" -"\t\t\tspecify variant of 680X0 architecture [default 68020]\n" +"\t\t\tspecify variant of 680X0 architecture [default %s]\n" "-m68881 | -m68882 | -mno-68881 | -mno-68882\n" "\t\t\ttarget has/lacks floating-point coprocessor\n" "\t\t\t[default yes for 68020, 68030, and cpu32]\n" @@ -5113,12 +5714,12 @@ msgstr "" "-m68000 | -m68008 | -m68010 | -m68020 | -m68030 | -m68040 | -m68060 |\n" "-m68302 | -m68331 | -m68332 | -m68333 | -m68340 | -m68360 | -mcpu32 |\n" "-m5200 | -m5202 | -m5204 | -m5206 | -m5206e | -m5307 | -m5407\n" -"\t\t\t680X0 yapısının alttürünü tanımlar [öntanımlı 68020]\n" +"\t\t\t680X0 yapısının alttürünü tanımlar [öntanımlı %s]\n" "-m68881 | -m68882 | -mno-68881 | -mno-68882\n" "\t\t\thedefte kayan nokta yardımcı işlemcisi var/yok\n" "\t\t\t[öntanımlı: 68020, 68030 ve cpu32 için `yes' (var)]\n" -#: config/tc-m68k.c:6929 +#: config/tc-m68k.c:6955 msgid "" "-m68851 | -mno-68851\n" "\t\t\ttarget has/lacks memory-management unit coprocessor\n" @@ -5140,7 +5741,7 @@ msgstr "" "\t\t\tyazmaç isimlerini önek karakteri olmaksızın tanır\n" "--bitwise-or\t\t`|'ı bir açıklama karakteri olarak işlemez\n" -#: config/tc-m68k.c:6939 +#: config/tc-m68k.c:6965 msgid "" "--base-size-default-16\tbase reg without size is 16 bits\n" "--base-size-default-32\tbase reg without size is 32 bits (default)\n" @@ -5152,12 +5753,12 @@ msgstr "" "--disp-size-default-16\tbilinmeyen boyda yerdeğişim 16 bit\n" "--disp-size-default-32\tbilinmeyen boyda yerdeğişim 32 bit (öntanımlı)\n" -#: config/tc-m68k.c:6974 +#: config/tc-m68k.c:7000 #, c-format msgid "Error %s in %s\n" msgstr "%s hatası %s içerisinde\n" -#: config/tc-m68k.c:6978 +#: config/tc-m68k.c:7004 #, c-format msgid "Opcode(%d.%s): " msgstr "Opkod(%d.%s):" @@ -5272,9 +5873,14 @@ msgstr "geçersiz yazmaç: r15 hatalı" #: config/tc-mcore.c:1086 config/tc-mcore.c:1662 msgid "M340 specific opcode used when assembling for M210" -msgstr "M210 için çevrilirken M340'a özgü opkod kullanılmış" +msgstr "M210 için çevrilirken M340'a özgü opkod kullanlmış" -#: config/tc-mcore.c:1104 config/tc-mcore.c:1143 config/tc-mcore.c:1162 config/tc-mcore.c:1181 config/tc-mcore.c:1208 config/tc-mcore.c:1237 config/tc-mcore.c:1274 config/tc-mcore.c:1309 config/tc-mcore.c:1328 config/tc-mcore.c:1347 config/tc-mcore.c:1379 config/tc-mcore.c:1404 config/tc-mcore.c:1461 config/tc-mcore.c:1515 config/tc-mcore.c:1551 config/tc-mcore.c:1609 config/tc-mcore.c:1631 config/tc-mcore.c:1654 +#: config/tc-mcore.c:1104 config/tc-mcore.c:1143 config/tc-mcore.c:1162 +#: config/tc-mcore.c:1181 config/tc-mcore.c:1208 config/tc-mcore.c:1237 +#: config/tc-mcore.c:1274 config/tc-mcore.c:1309 config/tc-mcore.c:1328 +#: config/tc-mcore.c:1347 config/tc-mcore.c:1379 config/tc-mcore.c:1404 +#: config/tc-mcore.c:1461 config/tc-mcore.c:1515 config/tc-mcore.c:1551 +#: config/tc-mcore.c:1609 config/tc-mcore.c:1631 config/tc-mcore.c:1654 msgid "second operand missing" msgstr "ikinci işlenen eksik" @@ -5434,412 +6040,425 @@ msgstr "%d baytlık %s yerdeğişimi yap msgid "pc-relative" msgstr "pc-göreli" -#: config/tc-mips.c:659 +#: config/tc-mips.c:690 #, c-format msgid "internal Error, line %d, %s" msgstr "İç Hata, %d satırı, %s" -#: config/tc-mips.c:661 +#: config/tc-mips.c:692 msgid "MIPS internal Error" msgstr "MIPS İç Hata" -#: config/tc-mips.c:1028 -msgid "-G not supported in this configuration." -msgstr "-G bu ayarlarda desteklenmiyor." - -#: config/tc-mips.c:1056 -msgid "The -mcpu option can't be used together with -march. Use -mtune instead of -mcpu." -msgstr "-mcpu seçeneği -march ile birlikte kullanılamaz. -mcpu yerine -mtune kullanın." - -#: config/tc-mips.c:1064 -msgid "The -mcpu option can't be used together with -mtune. Use -march instead of -mcpu." -msgstr "-mcpu seçeneği -mtune ile birlikte kullanılamaz. -mcpu yerine -march kullanın." - -#: config/tc-mips.c:1113 config/tc-mips.c:1138 -msgid "The -mcpu option is deprecated. Please use -march and -mtune instead." -msgstr "-mcpu seçeneği artık kullanılmıyor. Lütfen -march ve -mtune kullanın." - -#. This really should be an error instead of a warning, but old -#. compilers only have -mcpu which sets both arch and tune. For -#. now, we discard arch and preserve tune. -#: config/tc-mips.c:1158 -msgid "The -march option is incompatible to -mipsN and therefore ignored." -msgstr "-march seçeneği -mipsN ile uyumsuz ve yoksayıldı." - -#: config/tc-mips.c:1210 -msgid "trap exception not supported at ISA 1" -msgstr "tuzak olağandışılığı ISA 1'de desteklenmiyor" - -#: config/tc-mips.c:1274 +#: config/tc-mips.c:1086 #, c-format msgid "internal: can't hash `%s': %s" msgstr "iç: `%s' hash'lenemedi: %s" -#: config/tc-mips.c:1282 +#: config/tc-mips.c:1094 #, c-format msgid "internal error: bad mips16 opcode: %s %s\n" msgstr "iç hata: hatalı mips16 opkodu: %s %s\n" -#: config/tc-mips.c:1456 +#: config/tc-mips.c:1275 #, c-format msgid "returned from mips_ip(%s) insn_opcode = 0x%x\n" msgstr "geri dönüş: mips_ip(%s) insn_opcode = 0x%x\n" -#: config/tc-mips.c:2012 config/tc-mips.c:12574 +#: config/tc-mips.c:1830 config/tc-mips.c:13100 msgid "extended instruction in delay slot" msgstr "gecikme yuvasında genişletilmiş işlem" -#: config/tc-mips.c:2056 config/tc-mips.c:2067 +#: config/tc-mips.c:1874 config/tc-mips.c:1885 #, c-format msgid "jump to misaligned address (0x%lx)" msgstr "hizalanmamış adrese sıçrama (0x%lx)" -#: config/tc-mips.c:2060 config/tc-mips.c:2071 +#: config/tc-mips.c:1878 config/tc-mips.c:1889 #, c-format msgid "jump address range overflow (0x%lx)" msgstr "sıçrama adres aralık taşması (0x%lx)" -#: config/tc-mips.c:2864 config/tc-mips.c:3222 +#: config/tc-mips.c:2693 config/tc-mips.c:3088 msgid "Macro instruction expanded into multiple instructions" msgstr "Makro işlemi birden fazla işlem olarak genişletildi" -#: config/tc-mips.c:3275 +#: config/tc-mips.c:2705 +msgid "Macro instruction expanded into multiple instructions in a branch delay slot" +msgstr "Makro işlemi bir gecikme dalında birden fazla işlem olarak genişletildi" + +#: config/tc-mips.c:3141 msgid "unsupported large constant" msgstr "desteklenmeyen büyük sabit" -#: config/tc-mips.c:3277 +#: config/tc-mips.c:3143 #, c-format msgid "Instruction %s requires absolute expression" msgstr "%s işlemi kesin ifade gerektirir" -#: config/tc-mips.c:3423 +#: config/tc-mips.c:3292 #, c-format msgid "Number (0x%lx) larger than 32 bits" msgstr "Sayı (0x%lx) 32 bitten büyük" -#: config/tc-mips.c:3445 +#: config/tc-mips.c:3314 msgid "Number larger than 64 bits" msgstr "Sayı 64 bitten büyük" -#: config/tc-mips.c:3765 config/tc-mips.c:3823 config/tc-mips.c:5671 config/tc-mips.c:5715 config/tc-mips.c:6235 config/tc-mips.c:6293 +#: config/tc-mips.c:3631 config/tc-mips.c:3709 config/tc-mips.c:5637 +#: config/tc-mips.c:5688 config/tc-mips.c:6236 config/tc-mips.c:6295 msgid "PIC code offset overflow (max 16 signed bits)" msgstr "PIC kodu görece taşması (maksimum 16 signed bit)" -#: config/tc-mips.c:4070 +#: config/tc-mips.c:3957 #, c-format msgid "Branch %s is always false (nop)" msgstr "%s dalı her zaman yanlış (nop)" -#: config/tc-mips.c:4078 +#: config/tc-mips.c:3965 #, c-format msgid "Branch likely %s is always false" msgstr "Olası %s dalı her zaman yanlış" -#: config/tc-mips.c:4086 config/tc-mips.c:4155 config/tc-mips.c:4250 config/tc-mips.c:4300 config/tc-mips.c:7343 config/tc-mips.c:7351 config/tc-mips.c:7359 config/tc-mips.c:7468 +#: config/tc-mips.c:3973 config/tc-mips.c:4042 config/tc-mips.c:4137 +#: config/tc-mips.c:4187 config/tc-mips.c:7426 config/tc-mips.c:7434 +#: config/tc-mips.c:7442 config/tc-mips.c:7551 msgid "Unsupported large constant" msgstr "Desteklenmeyen büyük sabit" #. result is always true -#: config/tc-mips.c:4120 +#: config/tc-mips.c:4007 #, c-format msgid "Branch %s is always true" msgstr "%s dalı her zaman doğru" -#: config/tc-mips.c:4372 config/tc-mips.c:4484 +#: config/tc-mips.c:4259 config/tc-mips.c:4371 msgid "Divide by zero." msgstr "Sıfırla bölüm." -#: config/tc-mips.c:5112 +#: config/tc-mips.c:4460 +msgid "dla used to load 32-bit register" +msgstr "dla 32 bit yazmaç yüklemekte kullanıldı" + +#: config/tc-mips.c:4463 +msgid "la used to load 64-bit address" +msgstr "la 64 bit adres yüklemekte kullanıldı" + +#: config/tc-mips.c:5044 msgid "MIPS PIC call to register other than $25" msgstr "$25'ten başka yazmaca MIPS PIC çağrısı" -#: config/tc-mips.c:5119 config/tc-mips.c:5130 config/tc-mips.c:5232 config/tc-mips.c:5243 +#: config/tc-mips.c:5051 config/tc-mips.c:5062 config/tc-mips.c:5181 +#: config/tc-mips.c:5192 msgid "No .cprestore pseudo-op used in PIC code" msgstr "PIC kodunda .cprestore sanal işlemi kullanılmamış" -#: config/tc-mips.c:5124 config/tc-mips.c:5237 +#: config/tc-mips.c:5056 config/tc-mips.c:5186 msgid "No .frame pseudo-op used in PIC code" msgstr "PIC kodunda .frame sanal işlemi kullanılmamış" -#: config/tc-mips.c:5315 config/tc-mips.c:5404 config/tc-mips.c:5986 config/tc-mips.c:6027 config/tc-mips.c:6045 config/tc-mips.c:6676 +#: config/tc-mips.c:5265 config/tc-mips.c:5354 config/tc-mips.c:5985 +#: config/tc-mips.c:6026 config/tc-mips.c:6044 config/tc-mips.c:6759 msgid "opcode not supported on this processor" msgstr "bu işlemcide bu opkod desteklenmiyor" -#: config/tc-mips.c:6490 config/tc-mips.c:7234 +#: config/tc-mips.c:6493 config/tc-mips.c:7317 msgid "Macro used $at after \".set noat\"" msgstr "Macro, \".set noat\" sonrasında $at kullanmış" -#: config/tc-mips.c:6642 config/tc-mips.c:6664 +#: config/tc-mips.c:6660 config/tc-mips.c:6681 config/tc-mips.c:6722 +#: config/tc-mips.c:6743 msgid "rotate count too large" msgstr "döngü sayısı fazla büyük" -#: config/tc-mips.c:6716 +#: config/tc-mips.c:6799 #, c-format msgid "Instruction %s: result is always false" msgstr "%s işlemi: sonuç her zaman yanlış" -#: config/tc-mips.c:6889 +#: config/tc-mips.c:6972 #, c-format msgid "Instruction %s: result is always true" msgstr "%s işlemi: sonuç her zaman doğru" -#: config/tc-mips.c:7028 config/tc-mips.c:7057 config/tc-mips.c:7127 config/tc-mips.c:7153 +#: config/tc-mips.c:7111 config/tc-mips.c:7140 config/tc-mips.c:7210 +#: config/tc-mips.c:7236 msgid "operand overflow" msgstr "işlenen taşması" #. FIXME: Check if this is one of the itbl macros, since they #. are added dynamically. -#: config/tc-mips.c:7230 +#: config/tc-mips.c:7313 #, c-format msgid "Macro %s not implemented yet" msgstr "%s macrosu henüz desteklenmiyor" -#: config/tc-mips.c:7501 +#: config/tc-mips.c:7584 #, c-format msgid "internal: bad mips opcode (mask error): %s %s" msgstr "iç hata: hatalı mips opkodu (maske hatası): %s %s" -#: config/tc-mips.c:7557 +#: config/tc-mips.c:7646 #, c-format msgid "internal: bad mips opcode (unknown operand type `%c'): %s %s" msgstr "iç hata: hatalı mips opkodu (bilinmeyen işlenen türü `%c'): %s %s" -#: config/tc-mips.c:7564 +#: config/tc-mips.c:7653 #, c-format msgid "internal: bad mips opcode (bits 0x%lx undefined): %s %s" msgstr "iç hata: hatalı mips opkodu (0x%lx bitleri tanımsız): %s %s" -#: config/tc-mips.c:7676 +#: config/tc-mips.c:7767 #, c-format msgid "opcode not supported on this processor: %s (%s)" msgstr "opkod bu işlemcide desteklenmiyor: %s (%s)" -#: config/tc-mips.c:7753 +#: config/tc-mips.c:7847 #, c-format -msgid "Improper shift amount (%ld)" -msgstr "Geçersiz kaydırma miktarı (%ld)" +msgid "Improper shift amount (%lu)" +msgstr "Geçersiz kaydırma miktarı (%lu)" -#: config/tc-mips.c:7779 config/tc-mips.c:8992 config/tc-mips.c:9107 +#: config/tc-mips.c:7873 config/tc-mips.c:9187 config/tc-mips.c:9302 #, c-format msgid "Invalid value for `%s' (%lu)" msgstr "`%s' için geçersiz değer (%lu)" -#: config/tc-mips.c:7797 +#: config/tc-mips.c:7891 #, c-format -msgid "Illegal break code (%ld)" -msgstr "Geçersiz durma (break) kodu (%ld)" +msgid "Illegal break code (%lu)" +msgstr "Geçersiz durma (break) kodu (%lu)" -#: config/tc-mips.c:7811 +#: config/tc-mips.c:7905 #, c-format -msgid "Illegal lower break code (%ld)" -msgstr "Geçersiz alt durma (break) kodu (%ld)" +msgid "Illegal lower break code (%lu)" +msgstr "Geçersiz alt durma (break) kodu (%lu)" -#: config/tc-mips.c:7824 +#: config/tc-mips.c:7918 #, c-format -msgid "Illegal 20-bit code (%ld)" -msgstr "Geçersiz 20 bit kod (%ld)" +msgid "Illegal 20-bit code (%lu)" +msgstr "Geçersiz 20 bit kod (%lu)" -#: config/tc-mips.c:7836 +#: config/tc-mips.c:7930 #, c-format -msgid "Coproccesor code > 25 bits (%ld)" -msgstr "Yardımcı işlemci kodu > 25 bit (%ld)" +msgid "Coproccesor code > 25 bits (%lu)" +msgstr "Yardımcı işlemci kodu > 25 bit (%lu)" -#: config/tc-mips.c:7849 +#: config/tc-mips.c:7943 #, c-format -msgid "Illegal 19-bit code (%ld)" -msgstr "Geçersiz 19 bitlik kod (%ld)" +msgid "Illegal 19-bit code (%lu)" +msgstr "Geçersiz 19 bitlik kod (%lu)" -#: config/tc-mips.c:7861 +#: config/tc-mips.c:7955 #, c-format -msgid "Invalid performance register (%ld)" -msgstr "Başarım yazmacını geçersiz (%ld)" +msgid "Invalid performance register (%lu)" +msgstr "Başarım yazmacı geçersiz (%lu)" -#: config/tc-mips.c:7898 +#: config/tc-mips.c:7992 #, c-format msgid "Invalid register number (%d)" msgstr "Geçersiz yazmaç numarası (%d)" -#: config/tc-mips.c:8063 +#: config/tc-mips.c:8168 +#, c-format +msgid "Invalid MDMX Immediate (%ld)" +msgstr "geçersiz MDMX şimdiki (%ld)" + +#: config/tc-mips.c:8211 #, c-format msgid "Invalid float register number (%d)" msgstr "Geçersiz kayan nokta yazmaç numarası (%d)" -#: config/tc-mips.c:8073 +#: config/tc-mips.c:8221 #, c-format msgid "Float register should be even, was %d" msgstr "Kayan noktalı yazmaç çift sayılı olmalı, %d bulundu" -#: config/tc-mips.c:8124 +#: config/tc-mips.c:8260 +#, c-format +msgid "Bad element selector %ld" +msgstr "Hatalı öğe seçici %ld" + +#: config/tc-mips.c:8267 +#, c-format +msgid "Expecting ']' found '%s'" +msgstr "']' beklendi, '%s' bulundu" + +#: config/tc-mips.c:8309 msgid "absolute expression required" msgstr "kesin ifade gerekli" -#: config/tc-mips.c:8192 +#: config/tc-mips.c:8377 #, c-format msgid "Bad floating point constant: %s" msgstr "Hatalı kayan noktalı sabit: %s" -#: config/tc-mips.c:8320 +#: config/tc-mips.c:8505 msgid "Can't use floating point insn in this section" msgstr "Bu bölümde kayan noktalı işlem kullanılamaz" -#: config/tc-mips.c:8361 config/tc-mips.c:8366 config/tc-mips.c:8497 config/tc-mips.c:8502 +#: config/tc-mips.c:8546 config/tc-mips.c:8551 config/tc-mips.c:8682 +#: config/tc-mips.c:8687 msgid "bad composition of relocations" msgstr "yerdeğişimlerin hatalı birleşimi" -#: config/tc-mips.c:8399 +#: config/tc-mips.c:8584 msgid "16 bit expression not in range 0..65535" msgstr "16 bitlik ifade 0..65535 aralığında değil" -#: config/tc-mips.c:8436 +#: config/tc-mips.c:8621 msgid "16 bit expression not in range -32768..32767" msgstr "16 bitlik ifade -32768..32767 aralığında değil" -#: config/tc-mips.c:8521 +#: config/tc-mips.c:8706 msgid "lui expression not in range 0..65535" msgstr "lui ifadesi 0..65535 aralığında değil" -#: config/tc-mips.c:8545 +#: config/tc-mips.c:8730 #, c-format msgid "invalid condition code register $fcc%d" msgstr "hatalı koşul kodu yazmacı $fcc%d" -#: config/tc-mips.c:8570 +#: config/tc-mips.c:8755 msgid "invalid coprocessor sub-selection value (0-7)" msgstr "hatalı yardımcı işlemci alt seçim değeri (0-7)" -#: config/tc-mips.c:8575 +#: config/tc-mips.c:8760 #, c-format msgid "bad char = '%c'\n" msgstr "hatalı karakter = '%c'\n" -#: config/tc-mips.c:8586 config/tc-mips.c:8591 config/tc-mips.c:9132 +#: config/tc-mips.c:8771 config/tc-mips.c:8776 config/tc-mips.c:9327 msgid "illegal operands" msgstr "geçersiz işlenenler" -#: config/tc-mips.c:8658 +#: config/tc-mips.c:8843 msgid "unrecognized opcode" msgstr "bilinmeyen opkod" -#: config/tc-mips.c:8770 +#: config/tc-mips.c:8955 #, c-format msgid "invalid register number (%d)" msgstr "geçersiz yazmaç numarası (%d)" -#: config/tc-mips.c:8851 +#: config/tc-mips.c:9046 msgid "used $at without \".set noat\"" msgstr "\".set noat\" olmaksızın $at kullanılmış" -#: config/tc-mips.c:9026 +#: config/tc-mips.c:9221 msgid "can't parse register list" msgstr "yazmaç listesi ayrıştırılamadı" -#: config/tc-mips.c:9258 +#: config/tc-mips.c:9453 msgid "extended operand requested but not required" msgstr "genişletilmiş işlenen tercih edilir fakat şart değil" -#: config/tc-mips.c:9260 +#: config/tc-mips.c:9455 msgid "invalid unextended operand value" msgstr "geçersiz genişletilmemiş işlenen değeri" -#: config/tc-mips.c:9288 +#: config/tc-mips.c:9483 msgid "operand value out of range for instruction" msgstr "işlenen değeri işlem için kapsam dışı" -#: config/tc-mips.c:9520 +#: config/tc-mips.c:9715 msgid "internal error" msgstr "İç hata" -#: config/tc-mips.c:9840 +#: config/tc-mips.c:10048 #, c-format msgid "invalid architecture -mtune=%s" msgstr "geçersiz yapı -mtune=%s" -#: config/tc-mips.c:9843 +#: config/tc-mips.c:10051 #, c-format msgid "invalid architecture -march=%s" msgstr "geçersiz yapı -march=%s" -#: config/tc-mips.c:9846 +#: config/tc-mips.c:10054 #, c-format msgid "invalid architecture -mcpu=%s" msgstr "geçersiz yapı -mcpu=%s" -#: config/tc-mips.c:9858 +#: config/tc-mips.c:10066 #, c-format msgid "A different -mtune= was already specified, is now -mtune=%s" msgstr "Farklı bir -mtune zaten belirtilmişti, şimdi -mtune=%s oldu" -#: config/tc-mips.c:9864 +#: config/tc-mips.c:10072 #, c-format msgid "A different -march= was already specified, is now -march=%s" msgstr "Farklı bir -march= zaten belirtilmişti, şimdi -march=%s oldu" -#: config/tc-mips.c:9870 +#: config/tc-mips.c:10078 #, c-format msgid "A different -mcpu= was already specified, is now -mcpu=%s" msgstr "Farklı bir -mcpu= zaten belirtilmişti, şimdi -mcpu=%s oldu" -#: config/tc-mips.c:9880 +#: config/tc-mips.c:10088 msgid "A different -march= or -mtune= was already specified, is now -m4650" msgstr "Farklı bir -march veya -mtune zaten belirtilmişti, şimdi -m4650 oldu" -#: config/tc-mips.c:9892 +#: config/tc-mips.c:10100 msgid "A different -march= or -mtune= was already specified, is now -m4010" msgstr "Farklı bir -march veya -mtune zaten belirtilmişti, şimdi -m4010 oldu" -#: config/tc-mips.c:9904 +#: config/tc-mips.c:10112 msgid "A different -march= or -mtune= was already specified, is now -m4100" msgstr "Farklı bir -march veya -mtune zaten belirtilmişti, şimdi -m4100 oldu" -#: config/tc-mips.c:9916 +#: config/tc-mips.c:10124 msgid "A different -march= or -mtune= was already specified, is now -m3900" msgstr "Farklı bir -march veya -mtune zaten belirtilmişti, şimdi -m3900 oldu" -#: config/tc-mips.c:9939 +#: config/tc-mips.c:10163 msgid "-G may not be used with embedded PIC code" msgstr "-G gömülü PIC kodu ile kullanılamaz" -#: config/tc-mips.c:9952 +#: config/tc-mips.c:10176 msgid "-call_shared is supported only for ELF format" msgstr "-call_shared yalnız ELF biçemi için destekleniyor" -#: config/tc-mips.c:9958 config/tc-mips.c:11148 config/tc-mips.c:11350 +#: config/tc-mips.c:10182 config/tc-mips.c:11627 config/tc-mips.c:11837 msgid "-G may not be used with SVR4 PIC code" msgstr "-G SVR4 PIC kodu ile kullanılamaz" -#: config/tc-mips.c:9967 +#: config/tc-mips.c:10191 msgid "-non_shared is supported only for ELF format" msgstr "-non_shared yalnız ELF biçemi için destekleniyor" -#: config/tc-mips.c:9984 +#: config/tc-mips.c:10208 msgid "-G is not supported for this configuration" msgstr "-G bu ayarlarda desteklenmiyor" -#: config/tc-mips.c:9989 +#: config/tc-mips.c:10213 msgid "-G may not be used with SVR4 or embedded PIC code" msgstr "-G SVR4 veya gömülü PIC kodu ile kullanılamaz" -#: config/tc-mips.c:10003 +#: config/tc-mips.c:10227 msgid "-32 is supported for ELF format only" msgstr "-32 yalnız ELF biçemi için destekleniyor" -#: config/tc-mips.c:10012 +#: config/tc-mips.c:10236 msgid "-n32 is supported for ELF format only" msgstr "-n32 yalnız ELF biçemi için destekleniyor" -#: config/tc-mips.c:10021 +#: config/tc-mips.c:10245 msgid "-64 is supported for ELF format only" msgstr "-64 yalnız ELF biçemi için destekleniyor" -#: config/tc-mips.c:10026 config/tc-mips.c:10065 +#: config/tc-mips.c:10250 config/tc-mips.c:10289 msgid "No compiled in support for 64 bit object file format" msgstr "64 bitlik nesne dosyası biçemi için derlenmiş destek yok" -#: config/tc-mips.c:10052 +#: config/tc-mips.c:10276 msgid "-mabi is supported for ELF format only" msgstr "-mabi yalnız ELF biçemi için destekleniyor" -#: config/tc-mips.c:10126 +#: config/tc-mips.c:10296 +#, c-format +msgid "invalid abi -mabi=%s" +msgstr "geçersiz abi -mabi=%s" + +#: config/tc-mips.c:10363 msgid "" "MIPS options:\n" "-membedded-pic\t\tgenerate embedded position independent code\n" @@ -5857,7 +6476,7 @@ msgstr "" "-G SAYI SAYI bayta kadar nesnelere başvuruya örtük olarak gp\n" " yazmacı ile izin verir [öntanımlı 8]\n" -#: config/tc-mips.c:10134 +#: config/tc-mips.c:10371 msgid "" "-mips1\t\t\tgenerate MIPS ISA I instructions\n" "-mips2\t\t\tgenerate MIPS ISA II instructions\n" @@ -5877,7 +6496,7 @@ msgstr "" "-mips64 MIPS64 ISA işlemleri üretir\n" "-march=İŞL/-mtune=İŞL İŞL işlemcisi için kod üretir. İŞL seçenekleri:\n" -#: config/tc-mips.c:10170 +#: config/tc-mips.c:10407 msgid "" "-mCPU\t\t\tequivalent to -march=CPU -mtune=CPU. Deprecated.\n" "-no-mCPU\t\tdon't generate code specific to CPU.\n" @@ -5887,7 +6506,7 @@ msgstr "" "-no-mİŞL İŞL işlemcisine özgü kod üretmez.\n" " -mİŞL ve -no-mİŞL için İŞL seçenekleri:\n" -#: config/tc-mips.c:10183 +#: config/tc-mips.c:10420 msgid "" "-mips16\t\t\tgenerate mips16 instructions\n" "-no-mips16\t\tdo not generate mips16 instructions\n" @@ -5895,7 +6514,7 @@ msgstr "" "-mips16 mips16 işlemleri üretir\n" "-no-mips16 mips16 işlemleri üretmez\n" -#: config/tc-mips.c:10186 +#: config/tc-mips.c:10423 msgid "" "-mgp32\t\t\tuse 32-bit GPRs, regardless of the chosen ISA\n" "-mfp32\t\t\tuse 32-bit FPRs, regardless of the chosen ISA\n" @@ -5918,7 +6537,7 @@ msgstr "" "--break, --no-trap sıfırla bölme ve çarpma taşmasında olağandışılığı\n" " yakalamaz, durdurur\n" -#: config/tc-mips.c:10196 +#: config/tc-mips.c:10433 msgid "" "-KPIC, -call_shared\tgenerate SVR4 position independent code\n" "-non_shared\t\tdo not generate position independent code\n" @@ -5930,7 +6549,7 @@ msgstr "" "-xgot 32 bitlik GOT varsayar\n" "-mabi=ABI ABI uyumlu nesne dosyası oluşturur:\n" -#: config/tc-mips.c:10212 +#: config/tc-mips.c:10449 msgid "" "-32\t\t\tcreate o32 ABI object file (default)\n" "-n32\t\t\tcreate n32 ABI object file\n" @@ -5940,192 +6559,222 @@ msgstr "" "-n32\t\t\tn32 ABI nesne dosyası oluşturur\n" "-64\t\t\t64 ABI nesne dosyası oluşturur\n" -#: config/tc-mips.c:10342 +#: config/tc-mips.c:10469 +msgid "-G not supported in this configuration." +msgstr "-G bu ayarlarda desteklenmiyor." + +#: config/tc-mips.c:10488 +msgid "The -mcpu option can't be used together with -march. Use -mtune instead of -mcpu." +msgstr "-mcpu seçeneği -march ile birlikte kullanılamaz. -mcpu yerine -mtune kullanın." + +#: config/tc-mips.c:10496 +msgid "The -mcpu option can't be used together with -mtune. Use -march instead of -mcpu." +msgstr "-mcpu seçeneği -mtune ile birlikte kullanılamaz. -mcpu yerine -march kullanın." + +#: config/tc-mips.c:10545 config/tc-mips.c:10570 +msgid "The -mcpu option is deprecated. Please use -march and -mtune instead." +msgstr "-mcpu seçeneği artık kullanılmıyor. Lütfen -march ve -mtune kullanın." + +#. This really should be an error instead of a warning, but old +#. compilers only have -mcpu which sets both arch and tune. For +#. now, we discard arch and preserve tune. +#: config/tc-mips.c:10590 +msgid "The -march option is incompatible to -mipsN and therefore ignored." +msgstr "-march seçeneği -mipsN ile uyumsuz ve yoksayıldı." + +#: config/tc-mips.c:10642 +msgid "trap exception not supported at ISA 1" +msgstr "tuzak olağandışılığı ISA 1'de desteklenmiyor" + +#: config/tc-mips.c:10810 #, c-format msgid "Unmatched %%hi reloc" msgstr "Eşleşmeyen %%hi yerdeğişimi" -#: config/tc-mips.c:10554 +#: config/tc-mips.c:11030 msgid "Invalid PC relative reloc" msgstr "Geçersiz PC göreli yerdeğişim" -#: config/tc-mips.c:10662 config/tc-sparc.c:3106 config/tc-sparc.c:3113 config/tc-sparc.c:3120 config/tc-sparc.c:3127 config/tc-sparc.c:3134 config/tc-sparc.c:3143 config/tc-sparc.c:3154 config/tc-sparc.c:3176 config/tc-sparc.c:3200 write.c:1026 write.c:1089 +#: config/tc-mips.c:11138 config/tc-sparc.c:3113 config/tc-sparc.c:3120 +#: config/tc-sparc.c:3127 config/tc-sparc.c:3134 config/tc-sparc.c:3141 +#: config/tc-sparc.c:3150 config/tc-sparc.c:3161 config/tc-sparc.c:3183 +#: config/tc-sparc.c:3207 write.c:1041 write.c:1104 msgid "relocation overflow" msgstr "yerdeğişim taşması" -#: config/tc-mips.c:10673 +#: config/tc-mips.c:11149 #, c-format msgid "Branch to odd address (%lx)" msgstr "Tek sayılı adrese dal (%lx)" -#: config/tc-mips.c:10735 +#: config/tc-mips.c:11214 msgid "Branch out of range" msgstr "Dal kapsam dışı" -#: config/tc-mips.c:10843 +#: config/tc-mips.c:11322 #, c-format msgid "%08lx UNDEFINED\n" msgstr "%08lx TANIMSIZ\n" -#: config/tc-mips.c:10906 +#: config/tc-mips.c:11385 #, c-format msgid "Alignment too large: %d. assumed." msgstr "Hizalama fazla büyük: %d. varsayıldı." -#: config/tc-mips.c:10909 +#: config/tc-mips.c:11388 msgid "Alignment negative: 0 assumed." msgstr "Hizalama negatif: 0 varsayıldı." -#: config/tc-mips.c:10997 +#: config/tc-mips.c:11476 msgid "No read only data section in this object file format" msgstr "Bu nesne dosyası biçeminde salt okunur veri bölümü yok" -#: config/tc-mips.c:11020 +#: config/tc-mips.c:11499 msgid "Global pointers not supported; recompile -G 0" msgstr "Evrensel imleyiciler desteklenmiyor; -G 0 ile yeniden derleyin" -#: config/tc-mips.c:11106 +#: config/tc-mips.c:11585 #, c-format msgid "%s: no such section" msgstr "%s: böyle bir bölüm yok" -#: config/tc-mips.c:11143 +#: config/tc-mips.c:11622 #, c-format msgid ".option pic%d not supported" msgstr ".option pic%d desteklenmiyor" -#: config/tc-mips.c:11154 +#: config/tc-mips.c:11633 #, c-format msgid "Unrecognized option \"%s\"" msgstr "Bilinmeyen seçenek \"%s\"" -#: config/tc-mips.c:11217 +#: config/tc-mips.c:11696 msgid "`noreorder' must be set before `nomacro'" msgstr "`nomacro'dan önce `noreorder' atanmalı" -#: config/tc-mips.c:11273 config/tc-mips.c:11287 +#: config/tc-mips.c:11760 config/tc-mips.c:11774 #, c-format msgid "unknown ISA level %s" msgstr "bilinmeyen ISA seviyesi %s" -#: config/tc-mips.c:11309 +#: config/tc-mips.c:11796 msgid ".set pop with no .set push" msgstr ".set push olmaksızın .set pop" -#: config/tc-mips.c:11333 +#: config/tc-mips.c:11820 #, c-format msgid "Tried to set unrecognized symbol: %s\n" msgstr "Bilinmeyen sembol atanmaya çalışıldı: %s\n" -#: config/tc-mips.c:11384 +#: config/tc-mips.c:11871 msgid ".cpload not in noreorder section" msgstr ".cpload, `noreorder' bölümünde değil" -#: config/tc-mips.c:11441 config/tc-mips.c:11454 +#: config/tc-mips.c:11928 config/tc-mips.c:11947 msgid "missing argument separator ',' for .cpsetup" msgstr ".cpsetup için eksik argüman ayracı ','" -#: config/tc-mips.c:11638 +#: config/tc-mips.c:12128 msgid "Unsupported use of .gpword" msgstr ".gpword'un desteklenmeyen kullanımı" -#: config/tc-mips.c:11774 +#: config/tc-mips.c:12263 msgid "expected `$'" msgstr "`$' beklendi" -#: config/tc-mips.c:11782 +#: config/tc-mips.c:12271 msgid "Bad register number" msgstr "Hatalı yazmaç numarası" -#: config/tc-mips.c:11798 +#: config/tc-mips.c:12319 msgid "Unrecognized register name" msgstr "Bilinmeyen yazmaç ismi" -#: config/tc-mips.c:11983 +#: config/tc-mips.c:12505 msgid "unsupported PC relative reference to different section" msgstr "Değişik bölüme desteklenmeyen PC göreli başvuru" -#: config/tc-mips.c:12096 +#: config/tc-mips.c:12618 msgid "unsupported relocation" msgstr "desteklenmeyen yerdeğişim" -#: config/tc-mips.c:12200 +#: config/tc-mips.c:12714 msgid "AT used after \".set noat\" or macro used after \".set nomacro\"" msgstr "" "\".set noat\"dan sonra kullanılan AT veya \".set nomacro\"dan sonra\n" "kullanılan makro" -#: config/tc-mips.c:12269 +#: config/tc-mips.c:12784 msgid "Double check fx_r_type in tc-mips.c:tc_gen_reloc" msgstr "tc-mips.c:tc_gen_reloc içinde fx_r_type'ı tekrar kontrol edin" -#: config/tc-mips.c:12461 config/tc-sh.c:3218 +#: config/tc-mips.c:12987 config/tc-sh.c:3799 #, c-format msgid "Can not represent %s relocation in this object file format" msgstr "Bu nesne dosya biçeminde %s yerdeğişimi gösterilemez" -#: config/tc-mips.c:12800 +#: config/tc-mips.c:13338 msgid "missing .end at end of assembly" msgstr "çevrimin sonunda `.end' eksik" -#: config/tc-mips.c:12815 +#: config/tc-mips.c:13353 msgid "expected simple number" msgstr "Basit sayı beklendi." -#: config/tc-mips.c:12841 +#: config/tc-mips.c:13379 #, c-format msgid " *input_line_pointer == '%c' 0x%02x\n" msgstr " *input_line_pointer == '%c' 0x%02x\n" -#: config/tc-mips.c:12843 +#: config/tc-mips.c:13381 msgid "invalid number" msgstr "Geçersiz sayı" -#: config/tc-mips.c:12901 +#: config/tc-mips.c:13470 msgid ".end not in text section" msgstr ".end metin bölümünde değil" -#: config/tc-mips.c:12905 +#: config/tc-mips.c:13474 msgid ".end directive without a preceding .ent directive." msgstr "Öncesinde .ent yönergesi olmayan .end yönergesi" -#: config/tc-mips.c:12914 +#: config/tc-mips.c:13483 msgid ".end symbol does not match .ent symbol." msgstr ".end sembolü .ent sembolü ile eşleşmiyor." -#: config/tc-mips.c:12917 +#: config/tc-mips.c:13490 msgid ".end directive missing or unknown symbol" msgstr ".end yönergesi eksik veya bilinmeyen sembol" -#: config/tc-mips.c:12990 +#: config/tc-mips.c:13564 msgid ".ent or .aent not in text section." msgstr ".ent veya .aent metin bölümünde değil." -#: config/tc-mips.c:12993 +#: config/tc-mips.c:13567 msgid "missing .end" msgstr "eksik `.end'" -#: config/tc-mips.c:13030 ecoff.c:3202 +#: config/tc-mips.c:13609 ecoff.c:3200 msgid ".frame outside of .ent" msgstr ".ent dışında .frame" -#: config/tc-mips.c:13041 +#: config/tc-mips.c:13620 msgid "Bad .frame directive" msgstr "Hatalı .frame yönergesi" -#: config/tc-mips.c:13071 +#: config/tc-mips.c:13653 msgid ".mask/.fmask outside of .ent" msgstr ".ent dışında .mask/.fmask" -#: config/tc-mips.c:13078 +#: config/tc-mips.c:13660 msgid "Bad .mask/.fmask directive" msgstr "Hatalı .mask/.fmask yönergesi" -#: config/tc-mmix.c:669 +#: config/tc-mmix.c:681 msgid " MMIX-specific command line options:\n" msgstr " MMIX'a özgü komut satırı seçenekleri:\n" -#: config/tc-mmix.c:670 +#: config/tc-mmix.c:682 msgid "" " -fixed-special-register-names\n" " Allow only the original special register names.\n" @@ -6133,19 +6782,19 @@ msgstr "" " -fixed-special-register-names\n" " Yalnız orjinal özel yazmaç adlarına izin verir.\n" -#: config/tc-mmix.c:673 +#: config/tc-mmix.c:685 msgid " -globalize-symbols Make all symbols global.\n" msgstr " -globalize-symbols Bütün sembolleri evrensel yapar.\n" -#: config/tc-mmix.c:675 +#: config/tc-mmix.c:687 msgid " -gnu-syntax Turn off mmixal syntax compatibility.\n" msgstr " -gnu-syntax mmixal sözdizim uyumluluğunu etkisizleştirir.\n" -#: config/tc-mmix.c:677 +#: config/tc-mmix.c:689 msgid " -relax Create linker relaxable code.\n" msgstr " -relax bağlayıcı tarafından gevşetilebilen kod üretir\n" -#: config/tc-mmix.c:679 +#: config/tc-mmix.c:691 msgid "" " -no-predefined-syms Do not provide mmixal built-in constants.\n" " Implies -fixed-special-register-names.\n" @@ -6154,7 +6803,7 @@ msgstr "" " -fixed-special-register-names seçeneğini örtük\n" " olarak etkinleştirir.\n" -#: config/tc-mmix.c:682 +#: config/tc-mmix.c:694 msgid "" " -no-expand Do not expand GETA, branches, PUSHJ or JUMP\n" " into multiple instructions.\n" @@ -6162,195 +6811,214 @@ msgstr "" " -no-expand GETA, dallar, PUSHJ veya JUMP'ı birden fazla işlem\n" " olarak açmaz.\n" -#: config/tc-mmix.c:685 +#: config/tc-mmix.c:697 msgid " -no-merge-gregs Do not merge GREG definitions with nearby values.\n" msgstr " -no-merge-gregs GREG tanımlarını yaklaşık değerlerle birleştirmez.\n" -#: config/tc-mmix.c:687 +#: config/tc-mmix.c:699 +msgid " -linker-allocated-gregs If there's no suitable GREG definition for the operands of an instruction, let the linker resolve.\n" +msgstr "" +" -linker-allocated-gregs Eğer bir işlemin işlenenleri için uygun GREG tanımı\n" +" yoksa, bağlayıcının çözümlemesine bırakır.\n" + +#: config/tc-mmix.c:702 msgid "" " -x Do not warn when an operand to GETA, a branch,\n" " PUSHJ or JUMP is not known to be within range.\n" -" The linker will catch any errors.\n" +" The linker will catch any errors. Implies\n" +" -linker-allocated-gregs." msgstr "" -" -x GETA, bir dal, PUSHJ veya JUMP'ın bir işleneni kapsam dışında olduğu zaman uyarı vermez.\n" +" -x GETA, bir dal, PUSHJ veya JUMP'ın bir işleneni kapsam\n" +" dışında olduğu zaman uyarı vermez.\n" " Bağlayıcı hataları yakalayacaktır.\n" +" -linker-allocated-gregs seçeneğinin kullanıldığını\n" +" varsayar." -#: config/tc-mmix.c:813 +#: config/tc-mmix.c:829 #, c-format msgid "unknown opcode: `%s'" msgstr "bilinmeyen opkod `%s'" -#: config/tc-mmix.c:935 config/tc-mmix.c:950 +#: config/tc-mmix.c:951 config/tc-mmix.c:966 msgid "specified location wasn't TETRA-aligned" msgstr "belirtilen konum TETRA hizalanmamış." -#: config/tc-mmix.c:937 config/tc-mmix.c:952 config/tc-mmix.c:4055 config/tc-mmix.c:4071 +#: config/tc-mmix.c:953 config/tc-mmix.c:968 config/tc-mmix.c:4086 +#: config/tc-mmix.c:4102 msgid "unaligned data at an absolute location is not supported" msgstr "kesin konumlarda hizalanmamış veri desteklenmiyor" -#: config/tc-mmix.c:1062 +#: config/tc-mmix.c:1078 #, c-format msgid "invalid operand to opcode %s: `%s'" msgstr "opkod %s için geçersiz işlenen: `%s'" -#: config/tc-mmix.c:1084 config/tc-mmix.c:1111 config/tc-mmix.c:1144 config/tc-mmix.c:1152 config/tc-mmix.c:1169 config/tc-mmix.c:1197 config/tc-mmix.c:1218 config/tc-mmix.c:1243 config/tc-mmix.c:1291 config/tc-mmix.c:1389 config/tc-mmix.c:1414 config/tc-mmix.c:1446 config/tc-mmix.c:1478 config/tc-mmix.c:1508 config/tc-mmix.c:1561 config/tc-mmix.c:1578 config/tc-mmix.c:1605 config/tc-mmix.c:1633 config/tc-mmix.c:1660 config/tc-mmix.c:1686 config/tc-mmix.c:1702 config/tc-mmix.c:1728 config/tc-mmix.c:1744 config/tc-mmix.c:1760 config/tc-mmix.c:1823 config/tc-mmix.c:1839 +#: config/tc-mmix.c:1100 config/tc-mmix.c:1127 config/tc-mmix.c:1160 +#: config/tc-mmix.c:1168 config/tc-mmix.c:1185 config/tc-mmix.c:1213 +#: config/tc-mmix.c:1234 config/tc-mmix.c:1259 config/tc-mmix.c:1307 +#: config/tc-mmix.c:1405 config/tc-mmix.c:1430 config/tc-mmix.c:1462 +#: config/tc-mmix.c:1494 config/tc-mmix.c:1524 config/tc-mmix.c:1577 +#: config/tc-mmix.c:1594 config/tc-mmix.c:1621 config/tc-mmix.c:1649 +#: config/tc-mmix.c:1676 config/tc-mmix.c:1702 config/tc-mmix.c:1718 +#: config/tc-mmix.c:1744 config/tc-mmix.c:1760 config/tc-mmix.c:1776 +#: config/tc-mmix.c:1839 config/tc-mmix.c:1855 #, c-format msgid "invalid operands to opcode %s: `%s'" msgstr "opkod %s için geçersiz işlenenler: `%s'" -#: config/tc-mmix.c:1816 +#: config/tc-mmix.c:1832 #, c-format msgid "unsupported operands to %s: `%s'" msgstr "%s için desteklenmeyen işlenenler: `%s'" -#: config/tc-mmix.c:1944 +#: config/tc-mmix.c:1960 msgid "internal: mmix_prefix_name but empty prefix" msgstr "iç: mmix_prefix_name verilmiş fakat önek boş" -#: config/tc-mmix.c:1989 +#: config/tc-mmix.c:2005 #, c-format msgid "too many GREG registers allocated (max %d)" msgstr "çok fazla GREG yazmacı ayrılmış (maksimum %d)" -#: config/tc-mmix.c:2049 +#: config/tc-mmix.c:2065 msgid "BSPEC already active. Nesting is not supported." msgstr "BSPEC zaten etkin. Yuvalanma desteklenmiyor." -#: config/tc-mmix.c:2058 +#: config/tc-mmix.c:2074 msgid "invalid BSPEC expression" msgstr "geçersiz BSPEC ifadesi" -#: config/tc-mmix.c:2074 +#: config/tc-mmix.c:2090 #, c-format msgid "can't create section %s" msgstr "%s bölümü oluşturulamıyor" -#: config/tc-mmix.c:2079 +#: config/tc-mmix.c:2095 #, c-format msgid "can't set section flags for section %s" msgstr "%s bölümü için bölüm bayrakları atanamadı" -#: config/tc-mmix.c:2101 +#: config/tc-mmix.c:2117 msgid "ESPEC without preceding BSPEC" msgstr "öncesinde BSPEC olmayan ESPEC" -#: config/tc-mmix.c:2131 +#: config/tc-mmix.c:2147 msgid "missing local expression" msgstr "Yerel ifade eksik" -#: config/tc-mmix.c:2346 +#: config/tc-mmix.c:2363 msgid "operand out of range, instruction expanded" msgstr "işlenen değeri işlem için kapsam dışı, işlem genişletildi" #. The BFD_RELOC_MMIX_LOCAL-specific message is supposed to be #. user-friendly, though a little bit non-substantial. -#: config/tc-mmix.c:2598 +#: config/tc-mmix.c:2621 msgid "directive LOCAL must be placed in code or data" msgstr "LOCAL (yerel) yönergesi kod veya veri içine yerleştirilmelidir" -#: config/tc-mmix.c:2599 +#: config/tc-mmix.c:2622 msgid "internal confusion: relocation in a section without contents" msgstr "iç karışıklık: içeriği olmayan bir bölüme yerdeğişim" -#: config/tc-mmix.c:2714 +#: config/tc-mmix.c:2735 msgid "internal: BFD_RELOC_MMIX_BASE_PLUS_OFFSET not resolved to section" msgstr "içsel: BFD_RELOC_MMIX_BASE_PLUS_OFFSET bölüme çözümlenmedi" -#: config/tc-mmix.c:2754 +#: config/tc-mmix.c:2783 msgid "no suitable GREG definition for operands" msgstr "işlenenler için uygun GREG tanımı yok" -#: config/tc-mmix.c:2813 +#: config/tc-mmix.c:2842 msgid "operands were not reducible at assembly-time" msgstr "işlenenler çevrim esnasında indirgenemiyor" -#: config/tc-mmix.c:2841 +#: config/tc-mmix.c:2870 #, c-format msgid "cannot generate relocation type for symbol %s, code %s" msgstr "%s sembolü, %s kodu için yerdeğişim oluşturulamadı." -#: config/tc-mmix.c:2861 +#: config/tc-mmix.c:2890 #, c-format msgid "internal: unhandled label %s" msgstr "desteklenmeyen etiket türü %s" -#: config/tc-mmix.c:2915 +#: config/tc-mmix.c:2944 msgid "[0-9]H labels may not appear alone on a line" msgstr " [0-9]H etiketleri bir satırda tek başına olamaz" -#: config/tc-mmix.c:2924 +#: config/tc-mmix.c:2953 msgid "[0-9]H labels do not mix with dot-pseudos" msgstr "[0-9]H etiketleri dot-pseudo'larla karıştırılamaz" -#: config/tc-mmix.c:2988 +#: config/tc-mmix.c:3017 msgid "invalid characters in input" msgstr "Girdide geçersiz karakterler" -#: config/tc-mmix.c:3092 +#: config/tc-mmix.c:3121 msgid "empty label field for IS" msgstr "IS için boş etiket alanı" -#: config/tc-mmix.c:3342 +#: config/tc-mmix.c:3371 #, c-format msgid "internal: unexpected relax type %d:%d" msgstr "iç hata: beklenmeyen genişleme türü %d:%d" -#: config/tc-mmix.c:3364 +#: config/tc-mmix.c:3393 msgid "BSPEC without ESPEC." msgstr "ESPEC'siz BSPEC." -#: config/tc-mmix.c:3566 +#: config/tc-mmix.c:3595 msgid "GREG expression too complicated" msgstr "GREG ifadesi fazla karmaşık" -#: config/tc-mmix.c:3579 +#: config/tc-mmix.c:3610 msgid "internal: GREG expression not resolved to section" msgstr "içsel: GREG ifadesi bölüme çözümlenmedi" -#: config/tc-mmix.c:3630 +#: config/tc-mmix.c:3661 msgid "register section has contents\n" msgstr "yazmaç bölümünde içerik var\n" -#: config/tc-mmix.c:3808 +#: config/tc-mmix.c:3839 msgid "section change from within a BSPEC/ESPEC pair is not supported" msgstr "BSPEC/ESPEC çiftinin içinden bölüm değişikliği desteklenmiyor" -#: config/tc-mmix.c:3830 +#: config/tc-mmix.c:3861 msgid "directive LOC from within a BSPEC/ESPEC pair is not supported" msgstr "BSPEC/ESPEC çiftinin içinden LOC yönergesi desteklenmiyor" -#: config/tc-mmix.c:3841 +#: config/tc-mmix.c:3872 msgid "invalid LOC expression" msgstr "geçersiz LOC ifadesi" -#: config/tc-mmix.c:3866 config/tc-mmix.c:3892 +#: config/tc-mmix.c:3897 config/tc-mmix.c:3923 msgid "LOC expression stepping backwards is not supported" msgstr "LOC ifadesi geri adımlama desteklenmiyor" #. We will only get here in rare cases involving #NO_APP, #. where the unterminated string is not recognized by the #. preformatting pass. -#: config/tc-mmix.c:3976 config/tc-mmix.c:4137 +#: config/tc-mmix.c:4007 config/tc-mmix.c:4168 msgid "unterminated string" msgstr "sonlanmamış dizge" -#: config/tc-mmix.c:3993 +#: config/tc-mmix.c:4024 msgid "BYTE expression not a pure number" msgstr "BYTE ifadesi salt sayı değil" #. Note that mmixal does not allow negative numbers in #. BYTE sequences, so neither should we. -#: config/tc-mmix.c:4002 +#: config/tc-mmix.c:4033 msgid "BYTE expression not in the range 0..255" msgstr "BYTE ifadesi 0..255 aralığında değil" -#: config/tc-mmix.c:4053 config/tc-mmix.c:4069 +#: config/tc-mmix.c:4084 config/tc-mmix.c:4100 msgid "data item with alignment larger than location" msgstr "yerden daha büyük hizalamalı veri" #. Since integer_constant is local to expr.c, we have to make this a #. macro. FIXME: Do it cleaner. -#: config/tc-mmix.h:103 +#: config/tc-mmix.h:104 msgid "`&' serial number operator is not supported" msgstr "`&' seri sayı işlemimi desteklenmiyor" @@ -6362,22 +7030,25 @@ msgstr "" "MN10200 seçenekleri:\n" "henüz yok\n" -#: config/tc-mn10200.c:793 config/tc-mn10300.c:929 config/tc-ppc.c:1867 config/tc-s390.c:1290 config/tc-v850.c:1725 +#: config/tc-mn10200.c:793 config/tc-mn10300.c:936 config/tc-ppc.c:1883 +#: config/tc-s390.c:1299 config/tc-v850.c:1636 #, c-format msgid "Unrecognized opcode: `%s'" msgstr "Bilinmeyen opkod: `%s'" -#: config/tc-mn10200.c:1036 config/tc-mn10300.c:1452 config/tc-ppc.c:2305 config/tc-s390.c:1216 config/tc-v850.c:2149 +#: config/tc-mn10200.c:1036 config/tc-mn10300.c:1459 config/tc-ppc.c:2318 +#: config/tc-s390.c:1224 config/tc-v850.c:2060 #, c-format msgid "junk at end of line: `%s'" msgstr "satır sonunda bozukluk: `%s'" -#: config/tc-mn10200.c:1349 config/tc-mn10300.c:2076 config/tc-ppc.c:1299 config/tc-v850.c:1654 +#: config/tc-mn10200.c:1349 config/tc-mn10300.c:2083 config/tc-ppc.c:1290 +#: config/tc-v850.c:1565 #, c-format msgid "operand out of range (%s not between %ld and %ld)" msgstr "işlenen kapsam dışında (%s, %ld ve %ld arasında değil)" -#: config/tc-mn10300.c:518 +#: config/tc-mn10300.c:525 msgid "" "MN10300 options:\n" "none yet\n" @@ -6385,15 +7056,15 @@ msgstr "" "MN10300 seçenekleri:\n" "henüz yok\n" -#: config/tc-mn10300.c:946 +#: config/tc-mn10300.c:953 msgid "Invalid opcode/operands" msgstr "Geçersiz opkod/işlenenler" -#: config/tc-mn10300.c:1423 +#: config/tc-mn10300.c:1430 msgid "Invalid register specification." msgstr "Geçersiz yazmaç bildirimi." -#: config/tc-mn10300.c:1976 +#: config/tc-mn10300.c:1983 #, c-format msgid "Bad relocation fixup type (%d)" msgstr "Hatalı yerdeğişim düzeltme türü (%d)" @@ -6568,6 +7239,55 @@ msgstr "" msgid "Cannot find relocation type for symbol %s, code %d" msgstr "%s sembolü, %d kodu için yerdeğişim türü bulunamadı" +#: config/tc-or32.c:467 config/tc-or32.c:682 +#, c-format +msgid "unknown opcode1: `%s'" +msgstr "bilinmeyen opkod `%s'" + +#: config/tc-or32.c:473 config/tc-or32.c:688 +#, c-format +msgid "unknown opcode2 `%s'." +msgstr "bilinmeyen opkod2 `%s'" + +#: config/tc-or32.c:512 config/tc-or32.c:727 +#, c-format +msgid "instruction not allowed: %s" +msgstr "işleme izin yok: %s" + +#: config/tc-or32.c:515 config/tc-or32.c:730 +#, c-format +msgid "too many operands: %s" +msgstr "Çok fazla işlenen: %s" + +#: config/tc-or32.c:605 config/tc-or32.c:821 +msgid "call/jmp target out of range (1)" +msgstr "call/jmp hedefi aralık dışı (1)" + +#: config/tc-or32.c:1018 config/tc-or32.c:1135 +msgid "the linker will not handle this relocation correctly (1)" +msgstr "bağlayıcı bu yerdeğişimi doğru uygulayamaz (1)" + +#: config/tc-or32.c:1027 config/tc-or32.c:1144 +msgid "call/jmp target out of range (2)" +msgstr "call/jmp hedefi aralık dışı (2)" + +#: config/tc-or32.c:1437 +msgid "register out of range" +msgstr "yazmaç kapsam dışı" + +#: config/tc-or32.c:1482 +msgid "invalid register in & expression" +msgstr "& ifadesinde geçersiz yazmaç" + +#: config/tc-pdp11.c:454 +msgid "Low order bits truncated in immediate float operand" +msgstr "Şimdiki kayan nokta işleneninde düşük basamaklı bitler budandı" + +#: config/tc-pdp11.c:665 +#, c-format +msgid "Unknown instruction '%s'" +msgstr "Bilinmeyen işlem '%s'" + #: config/tc-pj.c:67 config/tc-pj.c:75 msgid "confusing relocation expressions" msgstr "yerdeğişim ifadeleri karmaşık" @@ -6591,7 +7311,8 @@ msgstr "" "-little\t\t\tküçük sonlu kod üretir\n" "-big\t\t\tbüyük sonlu kod üretir\n" -#: config/tc-pj.c:460 config/tc-sh.c:2922 config/tc-sh.c:2929 config/tc-sh.c:2936 config/tc-sh.c:2943 +#: config/tc-pj.c:460 config/tc-sh.c:3472 config/tc-sh.c:3479 +#: config/tc-sh.c:3486 config/tc-sh.c:3493 msgid "pcrel too far" msgstr "pcrel fazla uzak" @@ -6603,27 +7324,28 @@ msgstr "convert_frag\n" msgid "estimate size\n" msgstr "boyut tahmini\n" -#: config/tc-ppc.c:990 config/tc-s390.c:378 +#: config/tc-ppc.c:982 config/tc-s390.c:384 #, c-format msgid "invalid switch -m%s" msgstr "geçersiz bayrak -m%s" -#: config/tc-ppc.c:1027 +#: config/tc-ppc.c:1019 msgid "" "PowerPC options:\n" "-u\t\t\tignored\n" -"-mpwrx, -mpwr2\t\tgenerate code for IBM POWER/2 (RIOS2)\n" -"-mpwr\t\t\tgenerate code for IBM POWER (RIOS1)\n" -"-m601\t\t\tgenerate code for Motorola PowerPC 601\n" +"-mpwrx, -mpwr2\t\tgenerate code for POWER/2 (RIOS2)\n" +"-mpwr\t\t\tgenerate code for POWER (RIOS1)\n" +"-m601\t\t\tgenerate code for PowerPC 601\n" "-mppc, -mppc32, -m603, -m604\n" -"\t\t\tgenerate code for Motorola PowerPC 603/604\n" -"-m403, -m405 generate code for Motorola PowerPC 403/405\n" +"\t\t\tgenerate code for PowerPC 603/604\n" +"-m403, -m405 generate code for PowerPC 403/405\n" "-m7400, -m7410, -m7450, -m7455\n" -"\t\t\tgenerate code For Motorola PowerPC 7400/7410/7450/7455\n" -"-mppc64, -m620\t\tgenerate code for Motorola PowerPC 620\n" +"\t\t\tgenerate code For PowerPC 7400/7410/7450/7455\n" +"-mppc64, -m620\t\tgenerate code for PowerPC 620/625/630\n" "-mppc64bridge\t\tgenerate code for PowerPC 64, including bridge insns\n" "-mbooke64\t\tgenerate code for 64-bit PowerPC BookE\n" "-mbooke, mbooke32\tgenerate code for 32-bit PowerPC BookE\n" +"-mpower4\t\tgenerate code for Power4 architecture\n" "-maltivec\t\tgenerate code for AltiVec\n" "-mcom\t\t\tgenerate code Power/PowerPC common instructions\n" "-many\t\t\tgenerate code for any architecture (PWR/PWRX/PPC)\n" @@ -6636,20 +7358,21 @@ msgstr "" "-mpwr\t\t\tIBM POWER (RIOS1) için kod üretir\n" "-m601\t\t\tMotorola PowerPC 601 için kod üretir\n" "-mppc, -mppc32, -m603, -m604\n" -"\t\t\tMotorola PowerPC 603/604 için kod üretir\n" -"-m403, -m405\t\tMotorola PowerPC 403/405 için kod üretir\n" +"\t\t\tPowerPC 603/604 için kod üretir\n" +"-m403, -m405\t\tPowerPC 403/405 için kod üretir\n" "-m7400, -m7410, -m7450, -m7455\n" -"\t\t\tMotorola PowerPC 7400/7410/7450/7455 için kod üretir\n" -"-mppc64, -m620\t\tMotorola PowerPC 620 için kod üretir\n" +"\t\t\tPowerPC 7400/7410/7450/7455 için kod üretir\n" +"-mppc64, -m620\t\tPowerPC 620 için kod üretir\n" "-mppc64bridge\t\tPowerPC 64 için, köprü işlemlerini içeren kod üretir\n" "-mbooke64\t\t64-bit PowerPC BookE için kod üretir\n" "-mbooke, -mbooke32\t32-bit PowerPC BookE için kod üretir\n" -"-mcom\t\t\tPower/PowerPC ortak işlemleri içeren kod üretir\n" +"-mpower4\t\tPower4 için kod üretir\n" +"-maltivec\t\tAltiVec için kod üretir-mcom\t\t\tPower/PowerPC ortak işlemleri içeren kod üretir\n" "-many\t\t\tBütün yapılar için kod üretir (PWR/PWRX/PPC)\n" "-mregnames\t\tYazmaçlar için sembolik isme izin verir\n" "-mno-regnames\t\tYazmaçlar için sembolik isme izin vermez\n" -#: config/tc-ppc.c:1048 +#: config/tc-ppc.c:1041 msgid "" "-mrelocatable\t\tsupport for GCC's -mrelocatble option\n" "-mrelocatable-lib\tsupport for GCC's -mrelocatble-lib option\n" @@ -6673,215 +7396,216 @@ msgstr "" "-V\t\t\tçeviricinin sürüm numarasını yazdırır\n" "-Qy, -Qn\t\tyoksayılır\n" -#: config/tc-ppc.c:1082 +#: config/tc-ppc.c:1075 #, c-format msgid "Unknown default cpu = %s, os = %s" msgstr "Bilinmeyen öntanımlı işlemci = %s, os = %s" -#: config/tc-ppc.c:1107 +#: config/tc-ppc.c:1100 msgid "Neither Power nor PowerPC opcodes were selected." msgstr "Ne Power ne de PowerPC opkodları belirtilmiş." -#: config/tc-ppc.c:1190 config/tc-s390.c:471 +#: config/tc-ppc.c:1181 config/tc-s390.c:477 #, c-format msgid "Internal assembler error for instruction %s" msgstr "%s işlemi için iç çevirici hatası" -#: config/tc-ppc.c:1210 +#: config/tc-ppc.c:1201 #, c-format msgid "Internal assembler error for macro %s" msgstr "%s makrosu için iç çevirici hatası" -#: config/tc-ppc.c:1437 +#: config/tc-ppc.c:1428 msgid "identifier+constant@got means identifier@got+constant" msgstr "tanımlayıcı+sabit@got, tanımlayıcı@got+sabit ile aynı" -#: config/tc-ppc.c:1505 config/tc-sh.c:388 config/tc-sh.c:416 +#: config/tc-ppc.c:1495 #, c-format msgid "%s relocations do not fit in %d bytes\n" msgstr "%s yerdeğişimleri %d bayta sığmıyor\n" -#: config/tc-ppc.c:1612 +#: config/tc-ppc.c:1602 #, c-format msgid "Length of .lcomm \"%s\" is already %ld. Not changed to %ld." msgstr ".lcomm uzunluğu \"%s\" zaten %ld. %ld olarak değiştirilmedi." -#: config/tc-ppc.c:1694 +#: config/tc-ppc.c:1684 msgid "Relocation cannot be done when using -mrelocatable" msgstr "-mrelocatable kullanılırken yerdeğişim yapılamaz" -#: config/tc-ppc.c:1794 +#: config/tc-ppc.c:1810 #, c-format msgid "syntax error: invalid toc specifier `%s'" msgstr "sözdizim hatası: geçersiz toc belirteci `%s'" -#: config/tc-ppc.c:1808 +#: config/tc-ppc.c:1824 #, c-format msgid "syntax error: expected `]', found `%c'" msgstr "sözdizim hatası: `]' beklendi, `%c' bulundu" -#: config/tc-ppc.c:2044 +#: config/tc-ppc.c:2060 msgid "[tocv] symbol is not a toc symbol" msgstr "[tocv] sembolü toc sembolü değil" -#: config/tc-ppc.c:2055 +#: config/tc-ppc.c:2071 msgid "Unimplemented toc32 expression modifier" msgstr "toc32 ifade değiştiricisi henüz desteklenmiyor" -#: config/tc-ppc.c:2060 +#: config/tc-ppc.c:2076 msgid "Unimplemented toc64 expression modifier" msgstr "toc64 ifade değiştiricisi henüz desteklenmiyor" -#: config/tc-ppc.c:2064 +#: config/tc-ppc.c:2080 #, c-format msgid "Unexpected return value [%d] from parse_toc_entry!\n" msgstr "parse_toc_entry'den beklenmeyen geri dönüş değeri [%d]!\n" -#: config/tc-ppc.c:2249 +#: config/tc-ppc.c:2262 msgid "unsupported relocation for DS offset field" msgstr "DS görece alanı için desteklenmeyen yerdeğişim türü" -#: config/tc-ppc.c:2293 +#: config/tc-ppc.c:2306 #, c-format msgid "syntax error; found `%c' but expected `%c'" msgstr "sözdizim hatası; `%2$c' beklendi fakat `%1$c' bulundu" -#: config/tc-ppc.c:2419 +#: config/tc-ppc.c:2430 msgid "wrong number of operands" msgstr "işlenen sayısı yanlış" -#: config/tc-ppc.c:2475 -msgid "Bad .section directive: want a,e,w,x,M,S in string" -msgstr "Hatalı .section yönergesi: dizgede a,e,w,x,M,S olmalı" +#: config/tc-ppc.c:2486 +msgid "Bad .section directive: want a,e,w,x,M,S,G,T in string" +msgstr "Hatalı .section yönergesi: dizgede a,e,w,x,M,S,T olmalı" -#: config/tc-ppc.c:2590 +#: config/tc-ppc.c:2601 msgid "missing size" msgstr "boy eksik" -#: config/tc-ppc.c:2599 +#: config/tc-ppc.c:2610 msgid "negative size" msgstr "boy negatif" -#: config/tc-ppc.c:2636 +#: config/tc-ppc.c:2647 msgid "missing real symbol name" msgstr "gerçek sembol ismi eksik" -#: config/tc-ppc.c:2657 +#: config/tc-ppc.c:2668 msgid "attempt to redefine symbol" msgstr "sembolü yeniden tanımlama denemesi" -#: config/tc-ppc.c:2891 +#: config/tc-ppc.c:2902 msgid "The XCOFF file format does not support arbitrary sections" msgstr "XCOFF dosya biçemi, gelişigüzel bölümleri desteklemiyor" -#: config/tc-ppc.c:2968 +#: config/tc-ppc.c:2979 msgid "missing rename string" msgstr "isim değişim dizgesi eksik" -#: config/tc-ppc.c:2999 config/tc-ppc.c:3554 read.c:3053 +#: config/tc-ppc.c:3010 config/tc-ppc.c:3565 read.c:3058 msgid "missing value" msgstr "değer eksik" -#: config/tc-ppc.c:3017 +#: config/tc-ppc.c:3028 msgid "illegal .stabx expression; zero assumed" msgstr "geçersiz .stabx ifadesi; sıfır varsayıldı" -#: config/tc-ppc.c:3049 +#: config/tc-ppc.c:3060 msgid "missing class" msgstr "eksik sınıf" -#: config/tc-ppc.c:3058 +#: config/tc-ppc.c:3069 msgid "missing type" msgstr "eksik tür" -#: config/tc-ppc.c:3139 +#: config/tc-ppc.c:3150 msgid "missing symbol name" msgstr "eksik sembol adı" -#: config/tc-ppc.c:3333 +#: config/tc-ppc.c:3344 msgid "nested .bs blocks" msgstr "içiçe .bs blokları" -#: config/tc-ppc.c:3366 +#: config/tc-ppc.c:3377 msgid ".es without preceding .bs" msgstr "öncesinde .bs olmayan .es" -#: config/tc-ppc.c:3546 +#: config/tc-ppc.c:3557 msgid "non-constant byte count" msgstr "sabit olmayan bayt sayısı" -#: config/tc-ppc.c:3594 +#: config/tc-ppc.c:3605 msgid ".tc not in .toc section" msgstr ".tc, .toc bölümünde değil" -#: config/tc-ppc.c:3613 +#: config/tc-ppc.c:3624 msgid ".tc with no label" msgstr "etiketi olmayan .tc" -#: config/tc-ppc.c:3724 +#: config/tc-ppc.c:3735 msgid "No previous section to return to. Directive ignored." msgstr "Geri dönülecek önceki bölüm yok. Yönerge yoksayıldı." #. Section Contents #. unknown -#: config/tc-ppc.c:4141 +#: config/tc-ppc.c:4152 msgid "Unsupported section attribute -- 'a'" msgstr "Desteklenmeyen bölüm özniteliği -- 'a'" -#: config/tc-ppc.c:4330 +#: config/tc-ppc.c:4341 msgid "bad symbol suffix" msgstr "hatalı sembol soneki" -#: config/tc-ppc.c:4423 +#: config/tc-ppc.c:4434 msgid "Unrecognized symbol suffix" msgstr "Bilinmeyen sembol soneki" -#: config/tc-ppc.c:4505 +#: config/tc-ppc.c:4516 msgid "two .function pseudo-ops with no intervening .ef" msgstr "arada .ef olmaksızın iki .function sanal-op'u " -#: config/tc-ppc.c:4518 +#: config/tc-ppc.c:4529 msgid ".ef with no preceding .function" msgstr "öncesinde .function olmayan .ef" -#: config/tc-ppc.c:4646 +#: config/tc-ppc.c:4657 #, c-format msgid "warning: symbol %s has no csect" msgstr "uyarı: %s sembolünde csect yok" -#: config/tc-ppc.c:4946 +#: config/tc-ppc.c:4957 msgid "symbol in .toc does not match any .tc" msgstr ".toc'daki sembol .tc'de eşleşmiyor" -#: config/tc-ppc.c:5246 config/tc-s390.c:1797 config/tc-v850.c:2420 +#: config/tc-ppc.c:5256 config/tc-s390.c:1809 config/tc-v850.c:2331 +#: config/tc-xstormy16.c:536 msgid "unresolved expression that must be resolved" msgstr "Çözümlenmesi gereken çözümlenmemiş ifade" -#: config/tc-ppc.c:5249 +#: config/tc-ppc.c:5259 #, c-format msgid "unsupported relocation against %s" msgstr "%s'e karşı desteklenmeyen yerdeğişim" -#: config/tc-ppc.c:5326 +#: config/tc-ppc.c:5334 #, c-format msgid "cannot emit PC relative %s relocation against %s" msgstr "%2$s'ye göreli PC göreli %1$s yerdeğişimi üretilemedi" -#: config/tc-ppc.c:5331 +#: config/tc-ppc.c:5339 #, c-format msgid "cannot emit PC relative %s relocation" msgstr "PC göreli %s yerdeğişimi üretilemedi" -#: config/tc-ppc.c:5454 +#: config/tc-ppc.c:5460 msgid "must branch to an address a multiple of 4" msgstr "4'ün katı olan bir adrese dallanmak gerekli" -#: config/tc-ppc.c:5458 +#: config/tc-ppc.c:5464 #, c-format msgid "@local or @plt branch destination is too far away, %ld bytes" msgstr "@local veya @plt dal hedefi fazla uzak, %ld bayt" -#: config/tc-ppc.c:5491 +#: config/tc-ppc.c:5495 #, c-format msgid "Gas failure, reloc value %d\n" msgstr "Gas hatası, yerdeğişim değeri %d\n" @@ -6892,13 +7616,17 @@ msgid "" " -mregnames Allow symbolic names for registers\n" " -mwarn-areg-zero Warn about zero base/index registers\n" " -mno-regnames Do not allow symbolic names for registers\n" +" -m31 Set file format to 31 bit format\n" +" -m64 Set file format to 64 bit format\n" msgstr "" " S390 seçenekleri:\n" " -mregnames Yazmaçlar için sembolik isimlere izin verir\n" " -mwarn-areg-zero Sıfır değerli temel/indeks yazmaçlar hakkında uyarır\n" " -mno-regnames Yazmaçlarda sembolik isimlere izin vermez\n" +" -m31 Dosya biçemini 31 bit biçemi olarak ayarlar\n" +" -m64 Dosya biçemini 64 bit biçemi olarak ayarlar\n" -#: config/tc-s390.c:426 +#: config/tc-s390.c:428 msgid "" " -V print assembler version number\n" " -Qy, -Qn ignored\n" @@ -6906,193 +7634,238 @@ msgstr "" " -V\t\t\t çevirici sürüm numarasını yazdırır\n" " -Qy, -Qn\t\t yoksayılır\n" -#: config/tc-s390.c:456 +#: config/tc-s390.c:462 #, c-format msgid "Internal assembler error for instruction format %s" msgstr "%s işlem biçemi için iç çevirici hatası" -#: config/tc-s390.c:652 +#: config/tc-s390.c:658 #, c-format msgid "identifier+constant@%s means identifier@%s+constant" msgstr "tanımlayıcı+sabit@%s, tanımlayıcı@%s+sabit ile aynı" -#: config/tc-s390.c:735 +#: config/tc-s390.c:741 msgid "Can't handle O_big in s390_exp_compare" msgstr "s390_exp_compare içinde O_big işlenemiyor" -#: config/tc-s390.c:819 +#: config/tc-s390.c:825 msgid "Invalid suffix for literal pool entry" msgstr "Literal havuz girdisi için geçersiz sonek" -#: config/tc-s390.c:876 +#: config/tc-s390.c:882 msgid "Big number is too big" msgstr "Büyük sayı fazla büyük" -#: config/tc-s390.c:964 config/tc-s390.c:1473 +#: config/tc-s390.c:970 config/tc-s390.c:1482 #, c-format msgid "%s relocations do not fit in %d bytes" msgstr "%s yerdeğişimleri %d bayta sığmıyor" -#: config/tc-s390.c:974 +#: config/tc-s390.c:980 msgid "relocation not applicable" msgstr "yerdeğişim kapsam dışı" -#: config/tc-s390.c:1117 +#: config/tc-s390.c:1125 msgid "invalid operand suffix" msgstr "geçersiz işlenen soneki" -#: config/tc-s390.c:1140 +#: config/tc-s390.c:1148 msgid "syntax error; missing '(' after displacement" msgstr "sözdizim hatası; yerdeğişim sonrası '(' eksik" -#: config/tc-s390.c:1150 config/tc-s390.c:1183 config/tc-s390.c:1202 +#: config/tc-s390.c:1158 config/tc-s390.c:1191 config/tc-s390.c:1210 msgid "syntax error; expected ," msgstr "sözdizim hatası: , beklendi" -#: config/tc-s390.c:1177 +#: config/tc-s390.c:1185 msgid "syntax error; missing ')' after base register" msgstr "sözdizim hatası: temel yazmaçtan sonra ')' eksik" -#: config/tc-s390.c:1195 +#: config/tc-s390.c:1203 msgid "syntax error; ')' not allowed here" msgstr "sözdizim hatası; ')' burada kullanılamaz" -#: config/tc-s390.c:1353 config/tc-s390.c:1373 config/tc-s390.c:1386 +#: config/tc-s390.c:1362 config/tc-s390.c:1382 config/tc-s390.c:1395 msgid "Invalid .insn format\n" msgstr "Geçersiz .insn biçemi\n" -#: config/tc-s390.c:1361 +#: config/tc-s390.c:1370 #, c-format msgid "Unrecognized opcode format: `%s'" msgstr "Bilinmeyen opkod biçemi: `%s'" -#: config/tc-s390.c:1389 +#: config/tc-s390.c:1398 msgid "second operand of .insn not a constant\n" msgstr "işlemin ikinci işleneni sabit değil\n" -#: config/tc-s390.c:1392 +#: config/tc-s390.c:1401 msgid "missing comma after insn constant\n" msgstr "işlem sabitinden sonra virgül eksik\n" -#: config/tc-s390.c:1703 +#: config/tc-s390.c:1715 msgid "unresolved fx_subsy symbol that must be resolved" msgstr "Çözümlenmesi gereken çözümlenmemiş fx_subsy sembolü" -#: config/tc-s390.c:1800 +#: config/tc-s390.c:1812 msgid "unsupported relocation type" msgstr "desteklenmeyen yerdeğişim türü" -#: config/tc-sh.c:89 +#: config/tc-sh.c:90 msgid "directive .big encountered when option -big required" msgstr "seçenek -big gereken yerde .big yönergesi bulundu" -#: config/tc-sh.c:100 +#: config/tc-sh.c:101 msgid "directive .little encountered when option -little required" msgstr "seçenek -little gereken yerde .little yönergesi bulundu" -#: config/tc-sh.c:909 +#: config/tc-sh.c:779 +msgid "Invalid PIC expression." +msgstr "geçersiz PIC ifadesi" + +#: config/tc-sh.c:808 read.c:3754 +#, c-format +msgid "unsupported BFD relocation size %u" +msgstr "desteklenmeyen BFD yerdeğişim boyu %u" + +#: config/tc-sh.c:1277 +msgid "misplaced PIC operand" +msgstr "PIC işleneni yanlış yerde" + +#: config/tc-sh.c:1318 msgid "illegal register after @-" msgstr "@- sonrasında geçersiz yazmaç" -#: config/tc-sh.c:925 +#: config/tc-sh.c:1334 msgid "must be @(r0,...)" msgstr "@(r0,...) olmalı" -#: config/tc-sh.c:949 +#: config/tc-sh.c:1358 msgid "syntax error in @(r0,...)" msgstr "@(r0,...) içinde sözdizim hatası" -#: config/tc-sh.c:954 +#: config/tc-sh.c:1363 msgid "syntax error in @(r0...)" msgstr "@(r0...) içinde sözdizim hatası" -#: config/tc-sh.c:987 config/tc-sh.c:992 +#: config/tc-sh.c:1404 +msgid "Deprecated syntax." +msgstr "Artık kullanılmayan biçem." + +#: config/tc-sh.c:1416 config/tc-sh.c:1421 msgid "syntax error in @(disp,[Rn, gbr, pc])" msgstr "@(disp,[Rn, gbr, pc]) içinde sözdizim hatası" -#: config/tc-sh.c:997 +#: config/tc-sh.c:1426 msgid "expecting )" msgstr ") beklendi" -#: config/tc-sh.c:1005 +#: config/tc-sh.c:1434 msgid "illegal register after @" msgstr "@ sonrasında geçersiz yazmaç" -#: config/tc-sh.c:1553 +#: config/tc-sh.c:1985 #, c-format msgid "Invalid register: 'r%d'" msgstr "Geçersiz yazmaç: 'r%d'" -#: config/tc-sh.c:1716 +#: config/tc-sh.c:2151 msgid "insn can't be combined with parallel processing insn" msgstr "işlem, paralel işlenen işlem ile birleştirilemez" -#: config/tc-sh.c:1723 config/tc-sh.c:1734 +#: config/tc-sh.c:2158 config/tc-sh.c:2169 msgid "multiple movx specifications" msgstr "birden fazla movx tanımı" -#: config/tc-sh.c:1728 config/tc-sh.c:1755 +#: config/tc-sh.c:2163 config/tc-sh.c:2190 msgid "multiple movy specifications" msgstr "birden fazla movy tanımı" -#: config/tc-sh.c:1736 +#: config/tc-sh.c:2171 msgid "invalid movx address register" msgstr "geçersiz movx adres yazmacı" -#: config/tc-sh.c:1742 config/tc-sh.c:1747 +#: config/tc-sh.c:2177 config/tc-sh.c:2182 msgid "invalid movx dsp register" msgstr "geçersiz movx dsp yazmacı" -#: config/tc-sh.c:1764 config/tc-sh.c:1769 +#: config/tc-sh.c:2199 config/tc-sh.c:2204 msgid "invalid movy dsp register" msgstr "geçersiz movy dsp yazmacı" -#: config/tc-sh.c:1773 +#: config/tc-sh.c:2208 msgid "invalid movy address register" msgstr "geçersiz movy adres yazmacı" -#: config/tc-sh.c:1779 +#: config/tc-sh.c:2214 msgid "dsp immediate shift value not constant" msgstr "dsp şimdiki kaydırma değeri sabit değil" -#: config/tc-sh.c:1786 config/tc-sh.c:1799 +#: config/tc-sh.c:2221 config/tc-sh.c:2234 msgid "multiple parallel processing specifications" msgstr "birden fazla paralel işleme tanımı" -#: config/tc-sh.c:1792 +#: config/tc-sh.c:2227 msgid "multiple condition specifications" msgstr "birden fazla koşul tanımı" -#: config/tc-sh.c:1808 +#: config/tc-sh.c:2243 msgid "insn cannot be combined with pmuls" msgstr "işlem 'pmuls' ile birleştirilemez" -#: config/tc-sh.c:1825 +#: config/tc-sh.c:2260 msgid "bad padd / psub pmuls output operand" msgstr "hatalı padd / psub pmuls çıktı işleneni" -#: config/tc-sh.c:1835 +#: config/tc-sh.c:2270 +msgid "destination register is same for parallel insns" +msgstr "Paralel işlemler için hedef yazmaç aynı" + +#: config/tc-sh.c:2279 msgid "condition not followed by conditionalizable insn" msgstr "koşuldan sonra koşullanabilir işlem yok" -#: config/tc-sh.c:1845 +#: config/tc-sh.c:2289 msgid "unrecognized characters at end of parallel processing insn" msgstr "paralel işlenen işlemin sonunda bilinmeyen karakterler" -#: config/tc-sh.c:1961 +#: config/tc-sh.c:2425 #, c-format msgid "excess operands: '%s'" msgstr "fazla işlenenler: '%s'" -#: config/tc-sh.c:2131 +#: config/tc-sh.c:2577 msgid ".uses pseudo-op seen when not relaxing" msgstr ".uses sanal-op'u gevşetme olmadığı halde bulundu" -#: config/tc-sh.c:2137 +#: config/tc-sh.c:2583 msgid "bad .uses format" msgstr "hatalı .uses biçemi" -#: config/tc-sh.c:2203 +#: config/tc-sh.c:2658 +msgid "Invalid combination: --isa=SHcompact with --isa=SHmedia" +msgstr "Geçersiz birleşim: --isa=SHcompact ve --isa=SHmedia" + +#: config/tc-sh.c:2664 +msgid "Invalid combination: --isa=SHmedia with --isa=SHcompact" +msgstr "Geçersiz birleşim: --isa=SHmedia ve --isa=SHcompact" + +#: config/tc-sh.c:2666 +msgid "Invalid combination: --abi=64 with --isa=SHcompact" +msgstr "Geçersiz birleşim: --abi=64 ve --isa=SHcompact" + +#: config/tc-sh.c:2677 +msgid "Invalid combination: --abi=32 with --abi=64" +msgstr "Geçersiz birleşim: --abi=32 ve --abi=64" + +#: config/tc-sh.c:2683 +msgid "Invalid combination: --abi=64 with --abi=32" +msgstr "Geçersiz birleşim: --abi=64 ve --abi=32" + +#: config/tc-sh.c:2685 +msgid "Invalid combination: --isa=SHcompact with --abi=64" +msgstr "Geçersiz birleşim: --isa=SHcompact ve --abi=64" + +#: config/tc-sh.c:2720 msgid "" "SH options:\n" "-little\t\t\tgenerate little endian code\n" @@ -7109,91 +7882,303 @@ msgstr "" "-dsp\t\t\tsh-dsp işlemlerini etkinleştirir,\n" "\t\t\t\tsh3e/sh4 işlemlerini etkisiz kılar.\n" -#: config/tc-sh.c:2292 +#: config/tc-sh.c:2728 +msgid "" +"-isa=[shmedia\t\tset default instruction set for SH64\n" +" | SHmedia\n" +" | shcompact\n" +" | SHcompact]\n" +"-abi=[32|64]\t\tset size of expanded SHmedia operands and object\n" +"\t\t\tfile type\n" +"-shcompact-const-crange\temit code-range descriptors for constants in\n" +"\t\t\tSHcompact code sections\n" +"-no-mix\t\t\tdisallow SHmedia code in the same section as\n" +"\t\t\tconstants and SHcompact code\n" +"-no-expand\t\tdo not expand MOVI, PT, PTA or PTB instructions\n" +"-expand-pt32\t\twith -abi=64, expand PT, PTA and PTB instructions\n" +"\t\t\tto 32 bits only" +msgstr "" +"-isa=[shmedia\t\tSH64 için öntanımlı işlem kümesini belirler\n" +" | SHmedia\n" +" | shcompact\n" +" | SHcompact]\n" +"-abi=[32|64]\t\tgenişletilmiş SHmedia işlenen ve nesne dosyasının boyunu\n" +"\t\t\tbelirler\n" +"-shcompact-const-crange\tSHcompact kod bölümlerindeki sabitler için kod aralık\n" +"\t\t\ttanımlayıcılar üretir\n" +"-no-mix\t\t\tsabitler ve SHcompact kodunun bulunduğu bölümde SHmedia koduna\n" +"\t\t\tizin vermez\n" +"-no-expand\t\tMOVI, PT, PTA veya PTB işlemleri genişletilmez\n" +"-expand-pt32\t\t-abi=64 ile PT, PTA ve PTB işlemleri yalnız 32 bite\n" +"\t\t\t genişletilir" + +#: config/tc-sh.c:2825 msgid ".uses does not refer to a local symbol in the same section" msgstr ".uses aynı bölümde yerel bir sembole başvurmuyor" -#: config/tc-sh.c:2311 +#: config/tc-sh.c:2844 msgid "can't find fixup pointed to by .uses" msgstr ".uses tarafından imlenen düzeltme bulunamadı" -#: config/tc-sh.c:2334 +#: config/tc-sh.c:2867 msgid ".uses target does not refer to a local symbol in the same section" msgstr ".uses hedefi aynı bölümde yerel bir sembole başvurmuyor" -#: config/tc-sh.c:2432 +#: config/tc-sh.c:2969 msgid "displacement overflows 12-bit field" msgstr "yerdeğişim 12 bitlik alana sığmıyor" -#: config/tc-sh.c:2435 +#: config/tc-sh.c:2972 #, c-format msgid "displacement to defined symbol %s overflows 12-bit field" msgstr "tanımlı %s sembolüne yerdeğişim 12 bitlik alana sığmıyor" -#: config/tc-sh.c:2439 +#: config/tc-sh.c:2976 #, c-format msgid "displacement to undefined symbol %s overflows 12-bit field" msgstr "tanımlanmamış %s sembolüne yerdeğişim 12 bitlik alana sığmıyor" -#: config/tc-sh.c:2517 +#: config/tc-sh.c:3054 msgid "displacement overflows 8-bit field" msgstr "yerdeğişim 12 bitlik alana sığmıyor" -#: config/tc-sh.c:2520 +#: config/tc-sh.c:3057 #, c-format msgid "displacement to defined symbol %s overflows 8-bit field" msgstr "tanımlı %s sembolüne yerdeğişim 8 bitlik alana sığmıyor" -#: config/tc-sh.c:2524 +#: config/tc-sh.c:3061 #, c-format msgid "displacement to undefined symbol %s overflows 8-bit field " msgstr "tanımlanmamış %s sembolüne yerdeğişim 8 bitlik alana sığmıyor" -#: config/tc-sh.c:2537 +#: config/tc-sh.c:3078 #, c-format msgid "overflow in branch to %s; converted into longer instruction sequence" msgstr "dalda %s'ye taşma; daha uzun işlem dizisine çevrildi" -#: config/tc-sh.c:2612 config/tc-sh.c:2660 config/tc-sparc.c:4093 config/tc-sparc.c:4118 +#: config/tc-sh.c:3153 config/tc-sh.c:3201 config/tc-sparc.c:4100 +#: config/tc-sparc.c:4125 msgid "misaligned data" msgstr "hatalı hizalanmış veri" -#: config/tc-sh.c:3022 +#: config/tc-sh.c:3583 msgid "misaligned offset" msgstr "hatalı hizalanmış görece" -#: config/tc-sparc.c:281 +#: config/tc-sh64.c:570 +msgid "This operand must be constant at assembly time" +msgstr "Bu işlenen çevrim esnasında sabit olmalı" + +#: config/tc-sh64.c:685 +msgid "Invalid operand expression" +msgstr "Geçersiz işlenen ifadesi" + +#: config/tc-sh64.c:772 config/tc-sh64.c:878 +msgid "PTB operand is a SHmedia symbol" +msgstr "PTB işleneni bir SHmedia sembolü" + +#: config/tc-sh64.c:775 config/tc-sh64.c:875 +msgid "PTA operand is a SHcompact symbol" +msgstr "PTA işleneni bir SHcompact sembolü" + +#: config/tc-sh64.c:791 +msgid "invalid expression in operand" +msgstr "İşlenende geçersiz ifade" + +#: config/tc-sh64.c:1488 +#, c-format +msgid "invalid operand, not a 5-bit unsigned value: %d" +msgstr "Geçersiz işlenen; değeri 5bit unsigned değil: %d" + +#: config/tc-sh64.c:1493 +#, c-format +msgid "invalid operand, not a 6-bit signed value: %d" +msgstr "Geçersiz işlenen; değeri 6bit unsigned değil: %d" + +#: config/tc-sh64.c:1498 +#, c-format +msgid "invalid operand, not a 6-bit unsigned value: %d" +msgstr "geçersiz işlenen; değeri 6bit unsigned değil: %d" + +#: config/tc-sh64.c:1503 config/tc-sh64.c:1515 +#, c-format +msgid "invalid operand, not a 11-bit signed value: %d" +msgstr "geçersiz işlenen; değeri 11bit signed değil: %d" + +#: config/tc-sh64.c:1505 +#, c-format +msgid "invalid operand, not a multiple of 32: %d" +msgstr "geçersiz işlenen; 32'nin katı değil: %d" + +#: config/tc-sh64.c:1510 +#, c-format +msgid "invalid operand, not a 10-bit signed value: %d" +msgstr "geçersiz işlenen; değeri 10 bit signed değil: %d" + +#: config/tc-sh64.c:1517 +#, c-format +msgid "invalid operand, not an even value: %d" +msgstr "geçersiz işlenen; değeri çift sayı değil: %d" + +#: config/tc-sh64.c:1522 +#, c-format +msgid "invalid operand, not a 12-bit signed value: %d" +msgstr "geçersiz işlenen; değeri 12 bit signed değil: %d" + +#: config/tc-sh64.c:1524 +#, c-format +msgid "invalid operand, not a multiple of 4: %d" +msgstr "geçersiz işlenen; 4'ün katı değil: %d" + +#: config/tc-sh64.c:1529 +#, c-format +msgid "invalid operand, not a 13-bit signed value: %d" +msgstr "geçersiz işlenen; değeri 13 bit signed değil: %d" + +#: config/tc-sh64.c:1531 +#, c-format +msgid "invalid operand, not a multiple of 8: %d" +msgstr "geçersiz işlenen; 8'in katı değil: %d" + +#: config/tc-sh64.c:1536 +#, c-format +msgid "invalid operand, not a 16-bit signed value: %d" +msgstr "geçersiz işlenen; değeri 16 bit signed değil: %d" + +#: config/tc-sh64.c:1541 +#, c-format +msgid "invalid operand, not an 16-bit unsigned value: %d" +msgstr "geçersiz işlenen; değeri 16 bit unsigned değil: %d" + +#: config/tc-sh64.c:1547 +msgid "operand out of range for PT, PTA and PTB" +msgstr "işlenen PT, PTA ve PTB için aralık dışı" + +#: config/tc-sh64.c:1549 +#, c-format +msgid "operand not a multiple of 4 for PT, PTA or PTB: %d" +msgstr "işlenen PT, PTA ve PTB için 4'ün katı olmalı: %d" + +#: config/tc-sh64.c:2077 +#, c-format +msgid "MOVI operand is not a 32-bit signed value: 0x%8x%08x" +msgstr "MOVI işleneni 32 bit signed değil: 0x%8x%08x" + +#: config/tc-sh64.c:2440 config/tc-sh64.c:2605 config/tc-sh64.c:2620 +msgid "invalid PIC reference" +msgstr "geçersiz PIC referansı" + +#: config/tc-sh64.c:2498 +msgid "can't find opcode" +msgstr "opkod bulunamadı" + +#: config/tc-sh64.c:2828 +#, c-format +msgid "invalid operands to %s" +msgstr "Geçersiz işlenenler: %s" + +#: config/tc-sh64.c:2834 +#, c-format +msgid "excess operands to %s" +msgstr "fazla işlenenler: '%s'" + +#: config/tc-sh64.c:2880 +#, c-format +msgid "The `.mode %s' directive is not valid with this architecture" +msgstr "'.mode %s' yönergesi bu mimari için geçerli değil" + +#: config/tc-sh64.c:2888 +#, c-format +msgid "Invalid argument to .mode: %s" +msgstr ".mode için geçersiz argüman: %s" + +#: config/tc-sh64.c:2919 +#, c-format +msgid "The `.abi %s' directive is not valid with this architecture" +msgstr "'.abi %s' yönergesi bu mimari için geçerli değil" + +#: config/tc-sh64.c:2925 +msgid "`.abi 64' but command-line options do not specify 64-bit ABI" +msgstr "'.abi 64' fakat komut satırı seçenekleri 64 bit ABI belirtmiyor" + +#: config/tc-sh64.c:2930 +msgid "`.abi 32' but command-line options do not specify 32-bit ABI" +msgstr "'.abi 32' fakat komut satırı seçenekleri 32 bit ABI belirtmiyor" + +#: config/tc-sh64.c:2933 +#, c-format +msgid "Invalid argument to .abi: %s" +msgstr ".abi'ye geçersiz argüman: %s" + +#: config/tc-sh64.c:2984 +msgid "-no-mix is invalid without specifying SHcompact or SHmedia" +msgstr "-no-mix, SHcompact veya SHmedia belirtilmeden geçersiz" + +#: config/tc-sh64.c:2989 +msgid "-shcompact-const-crange is invalid without SHcompact" +msgstr "-shcompact-const-crange SHcompact seçeneği olmadan geçersizdir" + +#: config/tc-sh64.c:2992 +msgid "-expand-pt32 only valid with -abi=64" +msgstr "-expand-pt32 ancak -abi=64 ile birlikte geçerli olur" + +#: config/tc-sh64.c:2995 +msgid "-no-expand only valid with SHcompact or SHmedia" +msgstr "-no-expand ancak SHcompact veya SHmedia ile birlikte geçerli olur" + +#: config/tc-sh64.c:2998 +msgid "-expand-pt32 invalid together with -no-expand" +msgstr "-expand-pt32, -no-expand ile birlikte geçersiz olur" + +#: config/tc-sh64.c:3215 +msgid "SHmedia code not allowed in same section as constants and SHcompact code" +msgstr "SHmedia kodu, SHcompact kodu ve sabitlerle aynı bölümde bulunamaz" + +#: config/tc-sh64.c:3233 +msgid "No segment info for current section" +msgstr "Şimdiki bölüm için segment bilgisi yok" + +#: config/tc-sh64.c:3275 +msgid "duplicate datalabel operator ignored" +msgstr "Çoklu veri etiket işlemimi yoksayıldı" + +#: config/tc-sh64.c:3345 +msgid "Invalid DataLabel expression" +msgstr "geçersiz Veri Etiketi ifadesi" + +#: config/tc-sparc.c:287 msgid "Invalid default architecture, broken assembler." msgstr "Geçersiz öntanımlı yapı, hatalı çevirici." -#: config/tc-sparc.c:285 config/tc-sparc.c:488 +#: config/tc-sparc.c:291 config/tc-sparc.c:494 msgid "Bad opcode table, broken assembler." msgstr "Hatalı opkod tablosu, hatalı çevirici" -#: config/tc-sparc.c:480 +#: config/tc-sparc.c:486 #, c-format msgid "invalid architecture -xarch=%s" msgstr "geçersiz yapı -xarch=%s" -#: config/tc-sparc.c:482 +#: config/tc-sparc.c:488 #, c-format msgid "invalid architecture -A%s" msgstr "geçersiz yapı -A%s" -#: config/tc-sparc.c:549 +#: config/tc-sparc.c:555 #, c-format msgid "No compiled in support for %d bit object file format" msgstr "%d bitlik nesne dosyası biçemi için derlenmiş destek yok" -#: config/tc-sparc.c:586 +#: config/tc-sparc.c:592 msgid "Unrecognized option following -K" msgstr "-K'dan sonra bilinmeyen seçenek" -#: config/tc-sparc.c:627 +#: config/tc-sparc.c:633 msgid "SPARC options:\n" msgstr "SPARC seçenekleri:\n" -#: config/tc-sparc.c:656 +#: config/tc-sparc.c:662 msgid "" "\n" "\t\t\tspecify variant of SPARC architecture\n" @@ -7211,11 +8196,11 @@ msgstr "" "-relax\t\t\tsıçrama ve dalları gevşetir (öntanımlı)\n" "-no-relax\t\tsıçrama ve dalları değiştirmez\n" -#: config/tc-sparc.c:664 +#: config/tc-sparc.c:670 msgid "-k\t\t\tgenerate PIC\n" msgstr "-k\t\t\tPIC üretir\n" -#: config/tc-sparc.c:668 +#: config/tc-sparc.c:674 msgid "" "-32\t\t\tcreate 32 bit object file\n" "-64\t\t\tcreate 64 bit object file\n" @@ -7223,12 +8208,12 @@ msgstr "" "-32\t\t\t32 bit nesne dosyası oluşturur\n" "-64\t\t\t64 bit nesne dosyası oluşturur\n" -#: config/tc-sparc.c:671 +#: config/tc-sparc.c:677 #, c-format msgid "\t\t\t[default is %d]\n" msgstr "\t\t\t[öntanımlı: %d]\n" -#: config/tc-sparc.c:673 +#: config/tc-sparc.c:679 msgid "" "-TSO\t\t\tuse Total Store Ordering\n" "-PSO\t\t\tuse Partial Store Ordering\n" @@ -7238,12 +8223,12 @@ msgstr "" "-PSO\t\t\tKısmi Saklama Sıralaması kullanır\n" "-RMO\t\t\tGevşetilmiş Bellek Sıralaması kullanır\n" -#: config/tc-sparc.c:677 +#: config/tc-sparc.c:683 #, c-format msgid "\t\t\t[default is %s]\n" msgstr "\t\t\t[öntanımlı: %s]\n" -#: config/tc-sparc.c:679 +#: config/tc-sparc.c:685 msgid "" "-KPIC\t\t\tgenerate PIC\n" "-V\t\t\tprint assembler version number\n" @@ -7265,7 +8250,7 @@ msgstr "" "-Qy, -Qn\t\tyoksayılır\n" "-s\t\t\tyoksayılır\n" -#: config/tc-sparc.c:691 +#: config/tc-sparc.c:697 msgid "" "-EL\t\t\tgenerate code for a little endian machine\n" "-EB\t\t\tgenerate code for a big endian machine\n" @@ -7277,274 +8262,274 @@ msgstr "" "--little-endian-data\tbüyük sonlu işlemler ve küçük sonlu veriye sahip\n" " makinalar için işlem üretir\n" -#: config/tc-sparc.c:811 +#: config/tc-sparc.c:817 #, c-format msgid "Internal error: losing opcode: `%s' \"%s\"\n" msgstr "İç hata: opkod kaybedildi: `%s' \"%s\"\n" -#: config/tc-sparc.c:830 +#: config/tc-sparc.c:836 #, c-format msgid "Internal error: can't find opcode `%s' for `%s'\n" msgstr "İç hata: `%2$s' için `%1$s' opkodu bulunamadı\n" -#: config/tc-sparc.c:976 +#: config/tc-sparc.c:982 msgid "Support for 64-bit arithmetic not compiled in." msgstr "64 bitlik aritmetik desteği içine derlenmemiş." -#: config/tc-sparc.c:1023 +#: config/tc-sparc.c:1029 msgid "set: number not in 0..4294967295 range" msgstr "set: sayı 0..4294967295 aralığında değil" -#: config/tc-sparc.c:1030 +#: config/tc-sparc.c:1036 msgid "set: number not in -2147483648..4294967295 range" msgstr "set: sayı -2147483648..4294967295 aralığında değil" -#: config/tc-sparc.c:1090 +#: config/tc-sparc.c:1096 msgid "setsw: number not in -2147483648..4294967295 range" msgstr "setsw: sayı -2147483648..4294967295 aralığında değil" -#: config/tc-sparc.c:1139 +#: config/tc-sparc.c:1145 msgid "setx: temporary register same as destination register" msgstr "setx: geçici yazmaç, hedef yazmaçla aynı" -#: config/tc-sparc.c:1210 +#: config/tc-sparc.c:1216 msgid "setx: illegal temporary register g0" msgstr "setx: geçersiz geçici yazmaç g0" -#: config/tc-sparc.c:1307 +#: config/tc-sparc.c:1313 msgid "FP branch in delay slot" msgstr "gecikme yuvasında FP dalı" -#: config/tc-sparc.c:1323 +#: config/tc-sparc.c:1329 msgid "FP branch preceded by FP instruction; NOP inserted" msgstr "FP dalından önce FP işlemi geldi; NOP eklendi" -#: config/tc-sparc.c:1363 +#: config/tc-sparc.c:1369 msgid "failed special case insn sanity check" msgstr "özel durum işlem kontrolü başarısız" -#: config/tc-sparc.c:1451 +#: config/tc-sparc.c:1457 msgid ": invalid membar mask name" msgstr ": geçersiz membar maske adı" -#: config/tc-sparc.c:1467 +#: config/tc-sparc.c:1473 msgid ": invalid membar mask expression" msgstr ": geçersiz membar maske ifadesi" -#: config/tc-sparc.c:1472 +#: config/tc-sparc.c:1478 msgid ": invalid membar mask number" msgstr ": geçersiz membar maske numarası" -#: config/tc-sparc.c:1487 +#: config/tc-sparc.c:1493 msgid ": invalid siam mode expression" msgstr ": geçersiz siam kipi ifadesi" -#: config/tc-sparc.c:1492 +#: config/tc-sparc.c:1498 msgid ": invalid siam mode number" msgstr ": geçersiz siam kip numarası" -#: config/tc-sparc.c:1508 +#: config/tc-sparc.c:1514 msgid ": invalid prefetch function name" msgstr ": geçersiz prefetch işlev adı" -#: config/tc-sparc.c:1516 +#: config/tc-sparc.c:1522 msgid ": invalid prefetch function expression" msgstr ": geçersiz prefetch işlev ifadesi" -#: config/tc-sparc.c:1521 +#: config/tc-sparc.c:1527 msgid ": invalid prefetch function number" msgstr ": geçersiz prefetch işlev numarası" -#: config/tc-sparc.c:1549 config/tc-sparc.c:1561 +#: config/tc-sparc.c:1555 config/tc-sparc.c:1567 msgid ": unrecognizable privileged register" msgstr ": bilinmeyen ayrıcalıklı yazmaç" -#: config/tc-sparc.c:1585 config/tc-sparc.c:1610 +#: config/tc-sparc.c:1591 config/tc-sparc.c:1616 msgid ": unrecognizable v9a or v9b ancillary state register" msgstr ": bilinmeyen v9a veya v9b yardımcı durum yazmacı" -#: config/tc-sparc.c:1590 +#: config/tc-sparc.c:1596 msgid ": rd on write only ancillary state register" msgstr ": salt yazılır yardımcı durum yazmacında rd (okuma)" #. %sys_tick and %sys_tick_cmpr are v9bnotv9a -#: config/tc-sparc.c:1598 +#: config/tc-sparc.c:1604 msgid ": unrecognizable v9a ancillary state register" msgstr ": bilinmeyen v9a yardımcı durum yazmacı" -#: config/tc-sparc.c:1634 +#: config/tc-sparc.c:1640 msgid ": asr number must be between 16 and 31" msgstr ": asr sayısı 16 ve 31 arasında olmalı" -#: config/tc-sparc.c:1642 +#: config/tc-sparc.c:1648 msgid ": asr number must be between 0 and 31" msgstr ": asr numarası 0 ve 31 arasında olmalı" -#: config/tc-sparc.c:1652 +#: config/tc-sparc.c:1658 msgid ": expecting %asrN" msgstr ": %asrN beklendi" -#: config/tc-sparc.c:1980 +#: config/tc-sparc.c:1986 msgid "detected global register use not covered by .register pseudo-op" msgstr ".register sanal op tarafından desteklenmeyen evrensel yazmaç kullanımı bulundu" -#: config/tc-sparc.c:2051 +#: config/tc-sparc.c:2057 msgid ": There are only 64 f registers; [0-63]" msgstr ": Yalnızca 64 f yazmacı var; [0-63]" -#: config/tc-sparc.c:2053 config/tc-sparc.c:2065 +#: config/tc-sparc.c:2059 config/tc-sparc.c:2071 msgid ": There are only 32 f registers; [0-31]" msgstr ": Yalnız 32 f yazmacı var; [0-31]" -#: config/tc-sparc.c:2183 config/tc-sparc.c:2219 +#: config/tc-sparc.c:2189 config/tc-sparc.c:2225 #, c-format msgid "Illegal operands: %%%s requires arguments in ()" msgstr "Geçersiz işlenen: %%%s, () içinde argüman istiyor" -#: config/tc-sparc.c:2231 +#: config/tc-sparc.c:2237 #, c-format msgid "Illegal operands: Can't do arithmetics other than + and - involving %%%s()" msgstr "Geçersiz işlenenler: %%%s() ile ilgili + ve -'den başka aritmetik yapılamaz" -#: config/tc-sparc.c:2341 +#: config/tc-sparc.c:2347 #, c-format msgid "Illegal operands: Can't add non-constant expression to %%%s()" msgstr "Geçersiz işlenenler: Sabit olmayan ifade %%%s()'e eklenemez" -#: config/tc-sparc.c:2351 +#: config/tc-sparc.c:2357 #, c-format msgid "Illegal operands: Can't do arithmetics involving %%%s() of a relocatable symbol" msgstr "" "Geçersiz işlenenler: Yerdeğiştirebilen bir sembolün %%%s()'ı ile ilgili\n" "aritmetik yapılamaz" -#: config/tc-sparc.c:2369 +#: config/tc-sparc.c:2375 msgid ": PC-relative operand can't be a constant" msgstr ": PC göreli işlenen sabit olamaz" -#: config/tc-sparc.c:2402 +#: config/tc-sparc.c:2408 msgid ": invalid ASI name" msgstr ": geçersiz ASI ismi" -#: config/tc-sparc.c:2410 +#: config/tc-sparc.c:2416 msgid ": invalid ASI expression" msgstr ": geçersiz ASI ifadesi" -#: config/tc-sparc.c:2415 +#: config/tc-sparc.c:2421 msgid ": invalid ASI number" msgstr ": geçersiz ASI sayısı" -#: config/tc-sparc.c:2512 +#: config/tc-sparc.c:2518 msgid "OPF immediate operand out of range (0-0x1ff)" msgstr "OPF şimdiki işlenenleri aralık dışı (0-0x1ff)" -#: config/tc-sparc.c:2517 +#: config/tc-sparc.c:2523 msgid "non-immediate OPF operand, ignored" msgstr "şimdiki olmayan OPF işleneni, yoksayıldı" -#: config/tc-sparc.c:2536 +#: config/tc-sparc.c:2542 msgid ": invalid cpreg name" msgstr ": geçersiz cpreg ismi" -#: config/tc-sparc.c:2565 +#: config/tc-sparc.c:2571 #, c-format msgid "Illegal operands%s" msgstr "Geçersiz işlenen %s" -#: config/tc-sparc.c:2599 +#: config/tc-sparc.c:2605 #, c-format msgid "architecture bumped from \"%s\" to \"%s\" on \"%s\"" msgstr "\"%3$s\" üzerinde yapı, \"%1$s\"den \"%2$s\"e yükseltildi" -#: config/tc-sparc.c:2635 +#: config/tc-sparc.c:2641 #, c-format msgid "Architecture mismatch on \"%s\"." msgstr "\"%s\" üzerinde yapı uyumsuzluğu" -#: config/tc-sparc.c:2636 +#: config/tc-sparc.c:2642 #, c-format msgid " (Requires %s; requested architecture is %s.)" msgstr " (%s gerekli; talep edilen yapı: %s.)" -#: config/tc-sparc.c:3246 +#: config/tc-sparc.c:3253 #, c-format msgid "bad or unhandled relocation type: 0x%02x" msgstr "hatalı veya desteklenmeyen yerdeğişim türü: 0x%02x" -#: config/tc-sparc.c:3384 +#: config/tc-sparc.c:3391 #, c-format msgid "internal error: can't export reloc type %d (`%s')" msgstr "iç hata: %d yerdeğişim türü ihraç edilemedi (`%s')" -#: config/tc-sparc.c:3546 +#: config/tc-sparc.c:3553 #, c-format msgid "BSS length (%d.) <0! Ignored." msgstr "BSS uzunluğu (%d.) <0! Yoksayıldı." -#: config/tc-sparc.c:3558 +#: config/tc-sparc.c:3565 msgid "bad .reserve segment -- expected BSS segment" msgstr "hatalı .reserve bölümü -- BSS bölümü beklendi" -#: config/tc-sparc.c:3575 read.c:2040 +#: config/tc-sparc.c:3582 read.c:2045 msgid "missing alignment" msgstr "hizalama eksik" -#: config/tc-sparc.c:3586 config/tc-sparc.c:3736 +#: config/tc-sparc.c:3593 config/tc-sparc.c:3743 #, c-format msgid "alignment too large; assuming %d" msgstr "hizalama fazla büyük; %d varsayıldı" -#: config/tc-sparc.c:3592 config/tc-sparc.c:3742 +#: config/tc-sparc.c:3599 config/tc-sparc.c:3749 msgid "negative alignment" msgstr "negatif hizalama" -#: config/tc-sparc.c:3602 config/tc-sparc.c:3765 read.c:1249 read.c:2056 +#: config/tc-sparc.c:3609 config/tc-sparc.c:3772 read.c:1249 read.c:2061 msgid "alignment not a power of 2" msgstr "hizalama 2'nin kuvveti değil" -#: config/tc-sparc.c:3680 config/tc-v850.c:260 +#: config/tc-sparc.c:3687 config/tc-v850.c:231 msgid "Expected comma after symbol-name" msgstr "Sembol adından sonra virgül beklendi" -#: config/tc-sparc.c:3708 config/tc-v850.c:293 +#: config/tc-sparc.c:3715 config/tc-v850.c:264 #, c-format msgid "Length of .comm \"%s\" is already %ld. Not changed to %d." msgstr ".comm \"%s\" uzunluğu zaten %ld. %d olarak değiştirilmedi." -#: config/tc-sparc.c:3722 +#: config/tc-sparc.c:3729 msgid "Expected comma after common length" msgstr "Ortak uzunluktan sonra virgül beklendi" -#: config/tc-sparc.c:3963 config/tc-sparc.c:3973 +#: config/tc-sparc.c:3970 config/tc-sparc.c:3980 #, c-format msgid "register syntax is .register %%g[2367],{#scratch|symbolname|#ignore}" msgstr "yazmaç sözdizimi .register %%g[2367],{#scratch|sembolismi|#ignore} olmalı" -#: config/tc-sparc.c:3991 +#: config/tc-sparc.c:3998 msgid "redefinition of global register" msgstr "evrensel yazmaç yeniden tanımlanmış" -#: config/tc-sparc.c:4002 +#: config/tc-sparc.c:4009 #, c-format msgid "Register symbol %s already defined." msgstr "Yazmaç sembolü %s zaten tanımlı." -#: config/tc-sparc.c:4211 +#: config/tc-sparc.c:4218 #, c-format msgid "Illegal operands: %%r_plt in %d-byte data field" msgstr "Geçersiz işlenenler: %d-bayt veri alanında %%r_plt" -#: config/tc-sparc.c:4248 +#: config/tc-sparc.c:4255 #, c-format msgid "Illegal operands: Only %%r_%s%d allowed in %d-byte data fields" msgstr "Geçersiz işlenenler: %3$d-bayt veri alanlarında yalnız %%r_%1$s%2$d" -#: config/tc-sparc.c:4256 config/tc-sparc.c:4287 config/tc-sparc.c:4296 +#: config/tc-sparc.c:4263 config/tc-sparc.c:4294 config/tc-sparc.c:4303 #, c-format msgid "Illegal operands: %%r_%s%d requires arguments in ()" msgstr "Geçersiz işlenen: %%r_%s%d, () içinde argüman istiyor" -#: config/tc-sparc.c:4305 +#: config/tc-sparc.c:4312 #, c-format msgid "Illegal operands: garbage after %%r_%s%d()" msgstr "Geçersiz işlenen: %%r_%s%d() sonrasında karmaşıklık" @@ -7561,25 +8546,25 @@ msgstr "estimate_size_before_relax çağ msgid "The -a option doesn't exist. (Despite what the man page says!" msgstr "-a seçeneği mevcut değil. (man sayfası ne derse desin!)" -#: config/tc-tahoe.c:407 config/tc-vax.c:3125 +#: config/tc-tahoe.c:407 config/tc-vax.c:3286 #, c-format msgid "Displacement length %s ignored!" msgstr "Kaydırma uzunluğu %s yoksayıldı!" -#: config/tc-tahoe.c:411 config/tc-vax.c:3117 +#: config/tc-tahoe.c:411 config/tc-vax.c:3278 msgid "SYMBOL TABLE not implemented" msgstr "SEMBOL TABLOsu henüz desteklenmiyor" -#: config/tc-tahoe.c:415 config/tc-vax.c:3121 +#: config/tc-tahoe.c:415 config/tc-vax.c:3282 msgid "TOKEN TRACE not implemented" msgstr "DİZGECİK İZLEMESİ (token trace) henüz desteklenmiyor" -#: config/tc-tahoe.c:419 config/tc-vax.c:3129 +#: config/tc-tahoe.c:419 config/tc-vax.c:3290 #, c-format msgid "I don't need or use temp. file \"%s\"." msgstr "\"%s\" geçici dosyası istenmiyor ve kullanılmıyor." -#: config/tc-tahoe.c:423 config/tc-vax.c:3133 +#: config/tc-tahoe.c:423 config/tc-vax.c:3294 msgid "I don't use an interpass file! -V ignored" msgstr "Interpass dosyası kullanılmıyor! -V yoksayıldı" @@ -7755,15 +8740,15 @@ msgstr "Şimdiki erişim bir adres olara msgid "Compiler bug: ODD number of bytes in arg structure %s." msgstr "Derleyici hatası: Argüman yapısı %s'da TEK sayılı bayt." -#: config/tc-tahoe.c:1567 config/tc-vax.c:1835 +#: config/tc-tahoe.c:1567 config/tc-vax.c:1963 msgid "Not enough operands" msgstr "Yeteri kadar işlenen yok" -#: config/tc-tahoe.c:1577 config/tc-vax.c:1842 +#: config/tc-tahoe.c:1577 config/tc-vax.c:1970 msgid "Too many operands" msgstr "Çok fazla işlenen" -#: config/tc-tahoe.c:1628 config/tc-vax.c:378 +#: config/tc-tahoe.c:1628 config/tc-vax.c:403 #, c-format msgid "Ignoring statement due to \"%s\"" msgstr "\"%s\" yüzünden deyim yoksayıldı" @@ -7789,442 +8774,449 @@ msgstr "Hatalı %x kipi\n" #. Only word (et al.), align, or conditionals are allowed within #. .struct/.union. -#: config/tc-tic54x.c:80 +#: config/tc-tic54x.c:224 msgid "pseudo-op illegal within .struct/.union" msgstr "sanal op .struct/.union içinde geçersiz" -#: config/tc-tic54x.c:89 +#: config/tc-tic54x.c:349 msgid "C54x-specific command line options:\n" msgstr "C54x'e özgü komut satırı seçenekleri:\n" -#: config/tc-tic54x.c:90 +#: config/tc-tic54x.c:350 msgid "-mfar-mode | -mf Use extended addressing\n" msgstr "-mfar-mode | -mf Genişletilmiş adresleme kullanır\n" -#: config/tc-tic54x.c:91 +#: config/tc-tic54x.c:351 msgid "-mcpu= Specify the CPU version\n" msgstr "-mcpu= İşlemci sürümünü belirtir\n" -#: config/tc-tic54x.c:93 +#: config/tc-tic54x.c:353 msgid "-mcoff-version={0|1|2} Select COFF version\n" msgstr "-mcoff-version={0|1|2} COFF sürümünü belirtir\n" -#: config/tc-tic54x.c:95 +#: config/tc-tic54x.c:355 msgid "-merrors-to-file \n" msgstr "-merrors-to-file \n" -#: config/tc-tic54x.c:96 +#: config/tc-tic54x.c:356 msgid "-me Redirect errors to a file\n" msgstr "-me Hataları bir dosyaya yönlendirir\n" -#: config/tc-tic54x.c:348 +#: config/tc-tic54x.c:478 msgid "Comma and symbol expected for '.asg STRING, SYMBOL'" msgstr "'.asg DİZGE, SEMBOL' için virgül ve sembol beklendi" -#: config/tc-tic54x.c:401 +#: config/tc-tic54x.c:532 msgid "Unterminated string after absolute expression" msgstr "Kesin ifadeden sonra sonlanmamış dizge" -#: config/tc-tic54x.c:409 +#: config/tc-tic54x.c:540 msgid "Comma and symbol expected for '.eval EXPR, SYMBOL'" msgstr "'.eval İFADE, SEMBOL' için virgül ve sembol beklendi" -#: config/tc-tic54x.c:421 +#: config/tc-tic54x.c:552 msgid "symbols assigned with .eval must begin with a letter" msgstr ".eval ile atanmış semboller bir harfle başlamalı" -#: config/tc-tic54x.c:675 +#: config/tc-tic54x.c:810 msgid "Offset on nested structures is ignored" msgstr "İçiçe yapılarda görece yoksayılır" -#: config/tc-tic54x.c:725 +#: config/tc-tic54x.c:861 #, c-format msgid ".end%s without preceding .%s" msgstr "öncesinde .%s olmayan .end%s" -#: config/tc-tic54x.c:791 +#: config/tc-tic54x.c:928 #, c-format msgid "Unrecognized struct/union tag '%s'" msgstr "Bilinmeyen struct/union etiketi '%s'" -#: config/tc-tic54x.c:793 +#: config/tc-tic54x.c:930 msgid ".tag requires a structure tag" msgstr ".tag bir yapı etiketi gerektirir" -#: config/tc-tic54x.c:799 +#: config/tc-tic54x.c:936 msgid "Label required for .tag" msgstr ".tag için etiket gerekli" -#: config/tc-tic54x.c:817 +#: config/tc-tic54x.c:955 #, c-format msgid ".tag target '%s' undefined" msgstr ".tag hedefi '%s' tanımlanmamış" -#: config/tc-tic54x.c:879 +#: config/tc-tic54x.c:1018 #, c-format msgid ".field count '%d' out of range (1 <= X <= 32)" msgstr ".field (alan) sayısı '%d' aralık dışı (1 <= X <= 32)" -#: config/tc-tic54x.c:909 +#: config/tc-tic54x.c:1046 #, c-format msgid "Unrecognized field type '%c'" msgstr "Bilinmeyen alan türü '%c'" #. Disallow .byte with a non constant expression that will #. require relocation. -#: config/tc-tic54x.c:1044 +#: config/tc-tic54x.c:1183 msgid "Relocatable values require at least WORD storage" msgstr "Yerdeğiştirebilen değerler en az WORD saklama türünden olmalıdır" -#: config/tc-tic54x.c:1105 +#: config/tc-tic54x.c:1245 msgid "Use of .def/.ref is deprecated. Use .global instead" msgstr ".def/.ref kullanımı artık geçersiz. Yerine .global kullanın" -#: config/tc-tic54x.c:1298 +#: config/tc-tic54x.c:1444 msgid ".space/.bes repeat count is negative, ignored" msgstr ".space/.bes tekrar sayısı negatif, yoksayıldı" -#: config/tc-tic54x.c:1303 +#: config/tc-tic54x.c:1449 msgid ".space/.bes repeat count is zero, ignored" msgstr ".space/.bes tekrar sayısı sıfır, yoksayıldı" -#: config/tc-tic54x.c:1380 +#: config/tc-tic54x.c:1527 msgid "Missing size argument" msgstr "Eksik boyut argümanı" -#: config/tc-tic54x.c:1514 +#: config/tc-tic54x.c:1664 msgid "CPU version has already been set" msgstr "İşlemci sürümü zaten belirtilmiş" -#: config/tc-tic54x.c:1518 +#: config/tc-tic54x.c:1668 #, c-format msgid "Unrecognized version '%s'" msgstr "Bilinmeyen sürüm '%s'" -#: config/tc-tic54x.c:1524 +#: config/tc-tic54x.c:1674 msgid "Changing of CPU version on the fly not supported" msgstr "İşlemci sürümünü çevrim içinde değiştirmek desteklenmiyor" -#: config/tc-tic54x.c:1657 +#: config/tc-tic54x.c:1810 msgid "p2align not supported on this target" msgstr "p2align bu hedef üzerinde desteklenmiyor" -#: config/tc-tic54x.c:1669 +#: config/tc-tic54x.c:1823 msgid "Argument to .even ignored" msgstr ".even'a argüman yoksayıldı" -#: config/tc-tic54x.c:1715 +#: config/tc-tic54x.c:1870 msgid "Invalid field size, must be from 1 to 32" msgstr "Geçersiz alan boyutu, 1'den 32'ye kadar olmalı" -#: config/tc-tic54x.c:1728 +#: config/tc-tic54x.c:1883 msgid "field size must be 16 when value is relocatable" msgstr "değer yerdeğişebilir olduğu zaman alan boyu 16 olmalı" -#: config/tc-tic54x.c:1742 +#: config/tc-tic54x.c:1898 msgid "field value truncated" msgstr "alan değeri budandı" -#: config/tc-tic54x.c:1846 config/tc-tic54x.c:2148 +#: config/tc-tic54x.c:2007 config/tc-tic54x.c:2324 #, c-format msgid "Unrecognized section '%s'" msgstr "Bilinmeyen bölüm '%s'" -#: config/tc-tic54x.c:1855 +#: config/tc-tic54x.c:2016 msgid "Current section is unitialized, section name required for .clink" msgstr "Şimdiki bölüm ilklenmemiş, .clink için bölüm ismi gerekli" -#: config/tc-tic54x.c:2061 +#: config/tc-tic54x.c:2230 msgid "ENDLOOP without corresponding LOOP" msgstr "LOOP olmaksızın ENDLOOP" -#: config/tc-tic54x.c:2101 +#: config/tc-tic54x.c:2274 msgid "Mixing of normal and extended addressing not supported" msgstr "Normal ve genişletilmiş adreslemelerin karışımı desteklenmiyor" -#: config/tc-tic54x.c:2107 +#: config/tc-tic54x.c:2280 msgid "Extended addressing not supported on the specified CPU" msgstr "Belirtilen işlemcide genişletilmiş adresleme desteklenmiyor" -#: config/tc-tic54x.c:2154 +#: config/tc-tic54x.c:2330 msgid ".sblock may be used for initialized sections only" msgstr ".sblock yalnız ilklenmiş bölümler için kullanılabilir" -#: config/tc-tic54x.c:2184 +#: config/tc-tic54x.c:2361 msgid "Symbol missing for .set/.equ" msgstr ".set/.equ için sembol eksik" -#: config/tc-tic54x.c:2240 +#: config/tc-tic54x.c:2420 msgid ".var may only be used within a macro definition" msgstr ".var yalnız bir makro tanımı içinde kullanılabilir" -#: config/tc-tic54x.c:2248 +#: config/tc-tic54x.c:2428 msgid "Substitution symbols must begin with a letter" msgstr "İkame sembolleri bir harfle başlamalı" -#: config/tc-tic54x.c:2338 +#: config/tc-tic54x.c:2522 #, c-format msgid "Can't open macro library file '%s' for reading." msgstr "Makro kitaplık dosyası '%s' okuma için açılamadı." -#: config/tc-tic54x.c:2345 +#: config/tc-tic54x.c:2529 #, c-format msgid "File '%s' not in macro archive format" msgstr "'%s' dosyası makro arşiv biçeminde değil" -#: config/tc-tic54x.c:2504 +#: config/tc-tic54x.c:2689 #, c-format msgid "Bad COFF version '%s'" msgstr "Hatalı COFF sürümü '%s'" -#: config/tc-tic54x.c:2513 +#: config/tc-tic54x.c:2698 #, c-format msgid "Bad CPU version '%s'" msgstr "Hatalı işlemci sürümü '%s'" -#: config/tc-tic54x.c:2525 config/tc-tic54x.c:2528 +#: config/tc-tic54x.c:2711 config/tc-tic54x.c:2714 #, c-format msgid "Can't redirect stderr to the file '%s'" msgstr "Standart hata (stderr) '%s' dosyasına yönlendirilemez" -#: config/tc-tic54x.c:2662 +#: config/tc-tic54x.c:2861 #, c-format msgid "Undefined substitution symbol '%s'" msgstr "Tanımsız ikame sembolü '%s'" -#: config/tc-tic54x.c:3335 +#: config/tc-tic54x.c:3518 msgid "Badly formed address expression" msgstr "Hatalı oluşturulmuş adres ifadesi" -#: config/tc-tic54x.c:3593 +#: config/tc-tic54x.c:3782 #, c-format msgid "Invalid dmad syntax '%s'" msgstr "Geçersiz dmad sözdizimi '%s'" -#: config/tc-tic54x.c:3707 +#: config/tc-tic54x.c:3848 +#, c-format +msgid "Use the .mmregs directive to use memory-mapped register names such as '%s'" +msgstr "" +"'%s' gibi bellek eşlemeli yazmaç adlarını kullanmak için .mmregs yönergesini\n" +"kullanın" + +#: config/tc-tic54x.c:3901 msgid "Address mode *+ARx is write-only. Results of reading are undefined." msgstr "Adres kipi *+ARx salt yazılır. Okuma sonuçları tanımsız." -#: config/tc-tic54x.c:3727 +#: config/tc-tic54x.c:3921 #, c-format msgid "Unrecognized indirect address format \"%s\"" msgstr "Bilinmeyen dolaylı adresleme biçemi \"%s\"" -#: config/tc-tic54x.c:3762 +#: config/tc-tic54x.c:3960 #, c-format msgid "Operand '%s' out of range (%d <= x <= %d)" msgstr "'%s' işleneni aralık dışı (%d <= x <= %d)" -#: config/tc-tic54x.c:3782 +#: config/tc-tic54x.c:3980 msgid "Error in relocation handling" msgstr "Yerdeğişim desteğinde hata" -#: config/tc-tic54x.c:3801 config/tc-tic54x.c:3863 config/tc-tic54x.c:3889 +#: config/tc-tic54x.c:4001 config/tc-tic54x.c:4065 config/tc-tic54x.c:4097 #, c-format msgid "Unrecognized condition code \"%s\"" msgstr "Bilinmeyen koşul kodu \"%s\"" -#: config/tc-tic54x.c:3818 +#: config/tc-tic54x.c:4018 #, c-format msgid "Condition \"%s\" does not match preceding group" msgstr "\"%s\" koşulu önceki grupla eşleşmiyor" -#: config/tc-tic54x.c:3826 +#: config/tc-tic54x.c:4026 #, c-format msgid "Condition \"%s\" uses a different accumulator from a preceding condition" msgstr "\"%s\" koşulu önceki koşuldan daha farklı bir biriktirici kullanıyor" -#: config/tc-tic54x.c:3833 +#: config/tc-tic54x.c:4033 msgid "Only one comparison conditional allowed" msgstr "Yalnızca bir karşılaştırma koşulu kullanılabilir" -#: config/tc-tic54x.c:3838 +#: config/tc-tic54x.c:4038 msgid "Only one overflow conditional allowed" msgstr "Yalnızca bir taşma koşulu kullanılabilir" -#: config/tc-tic54x.c:3846 +#: config/tc-tic54x.c:4046 #, c-format msgid "Duplicate %s conditional" msgstr "Birden fazla %s koşulu" -#: config/tc-tic54x.c:3876 +#: config/tc-tic54x.c:4081 msgid "Invalid auxiliary register (use AR0-AR7)" msgstr "Geçersiz yardımcı yazmaç (AR0-AR7 kullanın)" -#: config/tc-tic54x.c:3909 +#: config/tc-tic54x.c:4117 msgid "lk addressing modes are invalid for memory-mapped register addressing" msgstr "1k adresleme kipleri bellek-eşlemeli yazmaç adreslemesi için geçersiz" -#: config/tc-tic54x.c:3917 +#: config/tc-tic54x.c:4125 msgid "Address mode *+ARx is not allowed in memory-mapped register addressing. Resulting behavior is undefined." msgstr "*+ARx adresleme kipi bellek eşlemeli yazmaç adreslemesinde kullanılamaz. Oluşan durum tanımsız." -#: config/tc-tic54x.c:3943 +#: config/tc-tic54x.c:4151 msgid "Destination accumulator for each part of this parallel instruction must be different" msgstr "Bu paralel işlemin her parçası için hedef biriktirici farklı olmalı." -#: config/tc-tic54x.c:3992 +#: config/tc-tic54x.c:4200 #, c-format msgid "Memory mapped register \"%s\" out of range" msgstr "Bellek eşlemeli \"%s\" yazmacı kapsam dışı" -#: config/tc-tic54x.c:4031 +#: config/tc-tic54x.c:4239 msgid "Invalid operand (use 1, 2, or 3)" msgstr "Geçersiz işlenen (1, 2 veya 3 kullanın)" -#: config/tc-tic54x.c:4056 +#: config/tc-tic54x.c:4264 msgid "A status register or status bit name is required" msgstr "Durum yazmacı veya durum bit ismi gerekli" -#: config/tc-tic54x.c:4066 +#: config/tc-tic54x.c:4274 #, c-format msgid "Unrecognized status bit \"%s\"" msgstr "Bilinmeyen durum biti \"%s\"" -#: config/tc-tic54x.c:4089 +#: config/tc-tic54x.c:4297 #, c-format msgid "Invalid status register \"%s\"" msgstr "Geçersiz durum yazmacı \"%s\"" -#: config/tc-tic54x.c:4101 +#: config/tc-tic54x.c:4309 #, c-format msgid "Operand \"%s\" out of range (use 1 or 2)" msgstr "\"%s\" işleneni aralık dışı (1 veya 2 kullanın)" -#: config/tc-tic54x.c:4302 +#: config/tc-tic54x.c:4517 #, c-format msgid "Unrecognized instruction \"%s\"" msgstr "Bilinmeyen işlem \"%s\"" -#: config/tc-tic54x.c:4331 +#: config/tc-tic54x.c:4546 #, c-format msgid "Unrecognized operand list '%s' for instruction '%s'" msgstr "'%2$s' işlemi için bilinmeyen işlenen listesi '%1$s'" -#: config/tc-tic54x.c:4360 +#: config/tc-tic54x.c:4578 #, c-format msgid "Unrecognized parallel instruction \"%s\"" msgstr "Bilinmeyen paralel işlem \"%s\"" -#: config/tc-tic54x.c:4410 +#: config/tc-tic54x.c:4629 #, c-format msgid "Invalid operand (s) for parallel instruction \"%s\"" msgstr "\"%s\" paralel işlemi için geçersiz işlenen(ler)" -#: config/tc-tic54x.c:4413 +#: config/tc-tic54x.c:4632 #, c-format msgid "Unrecognized parallel instruction combination \"%s || %s\"" msgstr "Bilinmeyen paralel işlem birleşimi \"%s || %s\"" -#: config/tc-tic54x.c:4645 +#: config/tc-tic54x.c:4869 #, c-format msgid "%s symbol recursion stopped at second appearance of '%s'" msgstr "%s sembol çevrimi '%s'nın ikinci görülmesinde durduruldu" -#: config/tc-tic54x.c:4684 +#: config/tc-tic54x.c:4909 msgid "Unrecognized substitution symbol function" msgstr "Bilinmeyen ikame sembol işlevi" -#: config/tc-tic54x.c:4689 +#: config/tc-tic54x.c:4914 msgid "Missing '(' after substitution symbol function" msgstr "İkame sembol işlevinden sonra eksik '('" -#: config/tc-tic54x.c:4703 +#: config/tc-tic54x.c:4928 msgid "Expecting second argument" msgstr "İkinci argüman bekleniyor" -#: config/tc-tic54x.c:4716 config/tc-tic54x.c:4765 +#: config/tc-tic54x.c:4941 config/tc-tic54x.c:4991 msgid "Extra junk in function call, expecting ')'" msgstr "İşlev çağrısında bozukluk, ')' beklendi" -#: config/tc-tic54x.c:4741 +#: config/tc-tic54x.c:4967 msgid "Function expects two arguments" msgstr "İşlev iki argüman gerektiriyor" -#: config/tc-tic54x.c:4754 +#: config/tc-tic54x.c:4980 msgid "Expecting character constant argument" msgstr "Karakter sabiti argüman beklendi" -#: config/tc-tic54x.c:4760 +#: config/tc-tic54x.c:4986 msgid "Both arguments must be substitution symbols" msgstr "Her iki argüman da ikame sembolü olmalı" -#: config/tc-tic54x.c:4813 +#: config/tc-tic54x.c:5039 #, c-format msgid "Invalid subscript (use 1 to %d)" msgstr "Geçersiz altsimge (1'den %d'e kadar kullanın)" -#: config/tc-tic54x.c:4823 +#: config/tc-tic54x.c:5049 #, c-format msgid "Invalid length (use 0 to %d" msgstr "Geçersiz uzunluk (0'dan %d'e kadar kullanın)" -#: config/tc-tic54x.c:4833 +#: config/tc-tic54x.c:5059 msgid "Missing ')' in subscripted substitution symbol expression" msgstr "Altsimgeli ikame sembol ifadesinde eksik ')'" -#: config/tc-tic54x.c:4853 +#: config/tc-tic54x.c:5079 msgid "Missing forced substitution terminator ':'" msgstr "Zorlanmış ikame sonlayıcısı ':' eksik" -#: config/tc-tic54x.c:5026 +#: config/tc-tic54x.c:5252 #, c-format msgid "Instruction does not fit in available delay slots (%d-word insn, %d slots left)" msgstr "İşlem mevcut gecikme yuvalarına sığmıyor (%d word işlem, %d yuva kaldı)" -#: config/tc-tic54x.c:5067 +#: config/tc-tic54x.c:5293 #, c-format msgid "Unrecognized parallel instruction '%s'" msgstr "Bilinmeyen paralel işlem '%s'" -#: config/tc-tic54x.c:5079 +#: config/tc-tic54x.c:5305 #, c-format msgid "Instruction '%s' requires an LP cpu version" msgstr "'%s' işlemi LP işlemci sürümü gerektiriyor" -#: config/tc-tic54x.c:5086 +#: config/tc-tic54x.c:5312 #, c-format msgid "Instruction '%s' requires far mode addressing" msgstr "'%s' işlemi uzak kip adreslemesi gerektiriyor" -#: config/tc-tic54x.c:5098 +#: config/tc-tic54x.c:5324 #, c-format msgid "Instruction does not fit in available delay slots (%d-word insn, %d slots left). Resulting behavior is undefined." msgstr "İşlem mevcut gecikme yuvalarına sığmıyor (%d word işlem, %d yuva kalmış). Oluşacak durum tanımlı değil." -#: config/tc-tic54x.c:5108 +#: config/tc-tic54x.c:5334 msgid "Instructions which cause PC discontinuity are not allowed in a delay slot. Resulting behavior is undefined." msgstr "PC kesintisi oluşturan işlemler gecikme yuvasında olamaz. Oluşacak durum tanımlı değil." -#: config/tc-tic54x.c:5119 +#: config/tc-tic54x.c:5345 #, c-format msgid "'%s' is not repeatable. Resulting behavior is undefined." msgstr "'%s' tekrarlanabilir değil. Oluşacak durum tanımlı değil." -#: config/tc-tic54x.c:5123 +#: config/tc-tic54x.c:5349 msgid "Instructions using long offset modifiers or absolute addresses are not repeatable. Resulting behavior is undefined." msgstr "Uzun görece değiştiricileri veya kesin adresler kullanan işlemler tekrarlanabilir değil. Oluşacak durum tanımlı değil." -#: config/tc-tic54x.c:5314 +#: config/tc-tic54x.c:5545 #, c-format msgid "Unsupported relocation size %d" msgstr "Desteklenmeyen yerdeğişim boyu %d" -#: config/tc-tic54x.c:5468 +#: config/tc-tic54x.c:5699 msgid "non-absolute value used with .space/.bes" msgstr ".space/.bes ile kesin olmayan değer kullanılmış" -#: config/tc-tic54x.c:5472 +#: config/tc-tic54x.c:5703 #, c-format msgid "negative value ignored in %s" msgstr "%s'deki negatif değer yoksayıldı" -#: config/tc-tic54x.c:5559 +#: config/tc-tic54x.c:5792 #, c-format msgid "attempt to .space/.bes backwards? (%ld)" msgstr ".space/.bes geri mi yapılmaya çalışılmış? (%ld)" -#: config/tc-tic54x.c:5592 +#: config/tc-tic54x.c:5826 #, c-format msgid "Invalid label '%s'" msgstr "Geçersiz etiket '%s'" @@ -8302,336 +9294,340 @@ msgstr "düzeltmede desteklenmeyen yerde msgid "md_convert_frag() not implemented yet" msgstr "md_convert_frag() henüz desteklenmiyor" -#: config/tc-v850.c:271 +#: config/tc-v850.c:242 #, c-format msgid ".COMMon length (%d.) < 0! Ignored." msgstr ".COMM ortak uzunluğu (%d.) < 0! Yoksayıldı" -#: config/tc-v850.c:320 +#: config/tc-v850.c:291 msgid "Common alignment negative; 0 assumed" msgstr "Ortak hizalama negatif; 0 varsayıldı" -#: config/tc-v850.c:1014 +#: config/tc-v850.c:916 #, c-format msgid "unknown operand shift: %x\n" msgstr "bilinmeyen terim kaydırması: %x\n" -#: config/tc-v850.c:1015 +#: config/tc-v850.c:917 msgid "internal failure in parse_register_list" msgstr "parse_register_list'te iç hata" -#: config/tc-v850.c:1032 +#: config/tc-v850.c:934 msgid "constant expression or register list expected" msgstr "sabit ifade veya yazmaç listesi beklendi" -#: config/tc-v850.c:1037 config/tc-v850.c:1050 config/tc-v850.c:1069 +#: config/tc-v850.c:939 config/tc-v850.c:952 config/tc-v850.c:971 msgid "high bits set in register list expression" msgstr "yazmaç liste ifadesinde yüksek bitler atanmış" -#: config/tc-v850.c:1109 config/tc-v850.c:1173 +#: config/tc-v850.c:1011 config/tc-v850.c:1075 msgid "illegal register included in list" msgstr "listede geçersiz yazmaç var" -#: config/tc-v850.c:1116 +#: config/tc-v850.c:1018 msgid "system registers cannot be included in list" msgstr "sistem yazmaçları listeye dahil edilemez" -#: config/tc-v850.c:1121 +#: config/tc-v850.c:1023 msgid "PSW cannot be included in list" msgstr "PSW listeye dahil edilemez" -#: config/tc-v850.c:1128 +#: config/tc-v850.c:1030 msgid "High value system registers cannot be included in list" msgstr "Yüksek değerli sistem yazmaçları listeye dahil edilemez" -#: config/tc-v850.c:1152 +#: config/tc-v850.c:1054 msgid "second register should follow dash in register list" msgstr "ikinci yazmaç yazmaç listesinde tireyi takip etmeli" -#: config/tc-v850.c:1199 +#: config/tc-v850.c:1101 msgid " V850 options:\n" msgstr " V850 seçenekleri:\n" -#: config/tc-v850.c:1200 +#: config/tc-v850.c:1102 msgid " -mwarn-signed-overflow Warn if signed immediate values overflow\n" msgstr " -mwarn-signed-overflow Eğer signed şimdiki değerler taşarsa uyarır\n" -#: config/tc-v850.c:1201 +#: config/tc-v850.c:1103 msgid " -mwarn-unsigned-overflow Warn if unsigned immediate values overflow\n" msgstr " -mwarn-unsigned-overflow Eğer unsigned şimdiki değerler taşarsa uyarır\n" -#: config/tc-v850.c:1202 +#: config/tc-v850.c:1104 msgid " -mv850 The code is targeted at the v850\n" msgstr " -mv850 v850 için kod üretilir\n" -#: config/tc-v850.c:1203 +#: config/tc-v850.c:1105 msgid " -mv850e The code is targeted at the v850e\n" msgstr " -mv850e v850e için kod üretilir\n" -#: config/tc-v850.c:1204 +#: config/tc-v850.c:1106 msgid " -mv850ea The code is targeted at the v850ea\n" msgstr " -mv850ea v850ea için kod üretilir\n" -#: config/tc-v850.c:1205 +#: config/tc-v850.c:1107 msgid " -mv850any The code is generic, despite any processor specific instructions\n" msgstr " -mv850any İşlemciye özgü işlemlere rağmen kod genel amaçlı\n" -#: config/tc-v850.c:1217 config/tc-v850.c:1255 +#: config/tc-v850.c:1119 config/tc-v850.c:1157 #, c-format msgid "unknown command line option: -%c%s\n" msgstr "bilinmeyen komut satırı seçeneği: -%c%s\n" -#: config/tc-v850.c:1405 +#: config/tc-v850.c:1306 #, c-format msgid "Unable to determine default target processor from string: %s" msgstr "Öntanımlı hedef işlemci dizgeden belirlenemedi: %s" -#: config/tc-v850.c:1453 +#: config/tc-v850.c:1344 msgid "ctoff() relocation used on an instruction which does not support it" msgstr "ctoff() yerdeğişimi, bunu desteklemeyen bir işlem için kullanıldı" -#: config/tc-v850.c:1475 +#: config/tc-v850.c:1370 msgid "sdaoff() relocation used on an instruction which does not support it" msgstr "sdaoff() yerdeğişimi, bunu desteklemeyen bir işlem için kullanıldı" -#: config/tc-v850.c:1497 +#: config/tc-v850.c:1396 msgid "zdaoff() relocation used on an instruction which does not support it" msgstr "zdaoff() yerdeğişimi, bunu desteklemeyen bir işlem için kullanıldı" -#: config/tc-v850.c:1530 +#: config/tc-v850.c:1433 msgid "tdaoff() relocation used on an instruction which does not support it" msgstr "tdaoff() yerdeğişimi, bunu desteklemeyen bir işlem için kullanıldı" -#: config/tc-v850.c:1746 +#: config/tc-v850.c:1657 msgid "Target processor does not support this instruction." msgstr "Hedef işlemci bu işlemi desteklemiyor." -#: config/tc-v850.c:1836 config/tc-v850.c:1866 config/tc-v850.c:2054 +#: config/tc-v850.c:1747 config/tc-v850.c:1777 config/tc-v850.c:1965 msgid "immediate operand is too large" msgstr "şimdiki işlenen fazla büyük" -#: config/tc-v850.c:1848 +#: config/tc-v850.c:1759 msgid "AAARG -> unhandled constant reloc" msgstr "AAARG -> desteklenmeyen sabit yerdeğişimi" -#: config/tc-v850.c:1892 +#: config/tc-v850.c:1803 msgid "invalid register name" msgstr "geçersiz yazmaç ismi" -#: config/tc-v850.c:1897 +#: config/tc-v850.c:1808 msgid "register r0 cannot be used here" msgstr "r0 yazmacı burada kullanılamaz" -#: config/tc-v850.c:1909 +#: config/tc-v850.c:1820 msgid "invalid system register name" msgstr "geçersiz sistem yazmaç ismi" -#: config/tc-v850.c:1922 +#: config/tc-v850.c:1833 msgid "expected EP register" msgstr "EP yazmacı beklendi" -#: config/tc-v850.c:1939 +#: config/tc-v850.c:1850 msgid "invalid condition code name" msgstr "geçersiz koşul kodu ismi" -#: config/tc-v850.c:1960 config/tc-v850.c:1964 +#: config/tc-v850.c:1871 config/tc-v850.c:1875 msgid "constant too big to fit into instruction" msgstr "sabit işleme sığmak için fazla büyük" -#: config/tc-v850.c:2017 +#: config/tc-v850.c:1928 msgid "syntax error: value is missing before the register name" msgstr "sözdizim hatası: yazmaç adından önce değer eksik" -#: config/tc-v850.c:2019 +#: config/tc-v850.c:1930 msgid "syntax error: register not expected" msgstr "sözdizim hatası: beklenmeyen yerde yazmaç bulundu" -#: config/tc-v850.c:2033 +#: config/tc-v850.c:1944 msgid "syntax error: system register not expected" msgstr "sözdizim hatası: beklenmeyen yerde sistem yazmacı bulundu" -#: config/tc-v850.c:2038 +#: config/tc-v850.c:1949 msgid "syntax error: condition code not expected" msgstr "sözdizim hatası: beklenmeyen yerde koşul kodu bulundu" -#: config/tc-v850.c:2079 +#: config/tc-v850.c:1990 msgid "invalid operand" msgstr "geçersiz işlenen" -#: config/tc-vax.c:267 +#: config/tc-vax.c:285 #, c-format msgid "VIP_BEGIN error:%s" msgstr "VIP_BEGIN hatası:%s" -#: config/tc-vax.c:397 +#: config/tc-vax.c:422 #, c-format -msgid "Ignoring statement because \"%s\"" -msgstr "Deyim yoksayıldı çünkü \"%s\"" +msgid "Aborting because statement has \"%s\"" +msgstr "İşlem durduruluyor çünkü deyimde \"%s\" var" -#: config/tc-vax.c:444 +#: config/tc-vax.c:469 msgid "Can't relocate expression" msgstr "İfade yerdeğiştirtilemez" -#: config/tc-vax.c:547 +#: config/tc-vax.c:572 msgid "Bignum not permitted in short literal. Immediate mode assumed." msgstr "Büyüksayı (bignum) short sabitte kullanılamaz. Şimdiki kip varsayıldı." -#: config/tc-vax.c:556 +#: config/tc-vax.c:581 msgid "Can't do flonum short literal: immediate mode used." msgstr "Kayan noktalı short sabit kullanılamaz: şimdiki kip kullanıldı." -#: config/tc-vax.c:601 +#: config/tc-vax.c:626 #, c-format msgid "A bignum/flonum may not be a displacement: 0x%lx used" msgstr "Büyüksayı/kayan noktalı yerdeğişim olamaz: 0x%lx kullanıldı" -#: config/tc-vax.c:922 +#: config/tc-vax.c:961 #, c-format msgid "Short literal overflow(%ld.), immediate mode assumed." msgstr "Short sabit taşması (%ld), şimdiki kip varsayıldı." -#: config/tc-vax.c:931 +#: config/tc-vax.c:970 #, c-format msgid "Forced short literal to immediate mode. now_seg=%s to_seg=%s" msgstr "Short sabit şimdiki kipe zorlandı. now_seg=%s to_seg=%s" -#: config/tc-vax.c:990 +#: config/tc-vax.c:1035 msgid "Length specification ignored. Address mode 9F used" msgstr "Uzunluk tanımı yoksayıldı. 9F adresleme kipi kullanıldı" -#: config/tc-vax.c:1039 +#: config/tc-vax.c:1096 msgid "Invalid operand: immediate value used as base address." msgstr "Geçersiz işlenen: şimdiki değer temel adres olarak kullanıldı." -#: config/tc-vax.c:1041 +#: config/tc-vax.c:1098 msgid "Invalid operand: immediate value used as address." msgstr "Geçersiz işlenen: şimdiki değer adres olarak kullanıldı." -#: config/tc-vax.c:1814 +#: config/tc-vax.c:1123 +msgid "Symbol used as immediate operand in PIC mode." +msgstr "Sembol PIC kipinde şimdiki işlenen olarak kullanıldı" + +#: config/tc-vax.c:1942 msgid "odd number of bytes in operand description" msgstr "işlenen tanımında tek sayılı bayt." -#: config/tc-vax.c:1830 +#: config/tc-vax.c:1958 msgid "Bad operand" msgstr "Hatalı işlenen" -#: config/tc-vax.c:2383 +#: config/tc-vax.c:2533 msgid "no '[' to match ']'" msgstr "']' ile eşleşen '[' yok" -#: config/tc-vax.c:2401 +#: config/tc-vax.c:2553 msgid "bad register in []" msgstr "[]'da hatalı yazmaç" -#: config/tc-vax.c:2403 +#: config/tc-vax.c:2555 msgid "[PC] index banned" msgstr "[PC] indeksi yasaklandı" -#: config/tc-vax.c:2438 +#: config/tc-vax.c:2590 msgid "no '(' to match ')'" msgstr "')' ile eşleşen '(' yok" -#: config/tc-vax.c:2573 +#: config/tc-vax.c:2730 msgid "invalid branch operand" msgstr "geçersiz dal işleneni" -#: config/tc-vax.c:2602 +#: config/tc-vax.c:2759 msgid "address prohibits @" msgstr "adres @'i yasaklıyor" -#: config/tc-vax.c:2604 +#: config/tc-vax.c:2761 msgid "address prohibits #" msgstr "adres #'i yasaklıyor" -#: config/tc-vax.c:2608 +#: config/tc-vax.c:2765 msgid "address prohibits -()" msgstr "adres -()'i yasaklıyor" -#: config/tc-vax.c:2610 +#: config/tc-vax.c:2767 msgid "address prohibits ()+" msgstr "adres ()+'i yasaklıyor" -#: config/tc-vax.c:2613 +#: config/tc-vax.c:2770 msgid "address prohibits ()" msgstr "adres ()'i yasaklıyor" -#: config/tc-vax.c:2615 +#: config/tc-vax.c:2772 msgid "address prohibits []" msgstr "adres []'i yasaklıyor" -#: config/tc-vax.c:2617 +#: config/tc-vax.c:2774 msgid "address prohibits register" msgstr "adres yazmacı yasaklıyor" -#: config/tc-vax.c:2619 +#: config/tc-vax.c:2776 msgid "address prohibits displacement length specifier" msgstr "adres yerdeğişim uzunluk belirleyicisini yasaklıyor" -#: config/tc-vax.c:2649 +#: config/tc-vax.c:2806 msgid "invalid operand of S^#" msgstr "S^# için geçersiz işlenen" -#: config/tc-vax.c:2666 +#: config/tc-vax.c:2823 msgid "S^# needs expression" msgstr "S^# için ifade gerekli" -#: config/tc-vax.c:2673 +#: config/tc-vax.c:2830 msgid "S^# may only read-access" msgstr "S^# yalnız salt okunur erişime izin verir" -#: config/tc-vax.c:2698 +#: config/tc-vax.c:2855 msgid "invalid operand of -()" msgstr "-() için geçersiz işlenen" -#: config/tc-vax.c:2704 +#: config/tc-vax.c:2861 msgid "-(PC) unpredictable" msgstr "-(PC)'nin sonuçları tahmin edilemez" -#: config/tc-vax.c:2706 +#: config/tc-vax.c:2863 msgid "[]index same as -()register: unpredictable" msgstr "[]indeks, -()yazmaç ile aynı: sonuçları tahmin edilemez" -#: config/tc-vax.c:2742 +#: config/tc-vax.c:2899 msgid "invalid operand of ()+" msgstr "()+ için geçersiz işlenen" -#: config/tc-vax.c:2748 +#: config/tc-vax.c:2905 msgid "(PC)+ unpredictable" msgstr "(PC)+'nin sonuçları tahmin edilemez" -#: config/tc-vax.c:2750 +#: config/tc-vax.c:2907 msgid "[]index same as ()+register: unpredictable" msgstr "[]indeks, ()+yazmaç ile aynı: sonuçları tahmin edilemez" -#: config/tc-vax.c:2775 +#: config/tc-vax.c:2932 msgid "# conflicts length" msgstr "#, uzunluk ile çakışıyor" -#: config/tc-vax.c:2777 +#: config/tc-vax.c:2934 msgid "# bars register" msgstr "#, yazmacı yasaklıyor" -#: config/tc-vax.c:2799 +#: config/tc-vax.c:2956 msgid "writing or modifying # is unpredictable" msgstr "#'i yazmak veya değiştirmenin sonuçları tahmin edilemez" -#: config/tc-vax.c:2829 +#: config/tc-vax.c:2986 msgid "length not needed" msgstr "uzunluk gerekli değil" -#: config/tc-vax.c:2836 +#: config/tc-vax.c:2993 msgid "can't []index a register, because it has no address" msgstr "bir yazmaca []indeks uygulanamaz, çünkü adresi yoktur" -#: config/tc-vax.c:2838 +#: config/tc-vax.c:2995 msgid "a register has no address" msgstr "bir yazmacın adresi yoktur" -#: config/tc-vax.c:2849 +#: config/tc-vax.c:3006 msgid "PC part of operand unpredictable" msgstr "İşlenenin PC bölümünün sonuçları tahmin edilemez" -#: config/tc-vax.c:3178 +#: config/tc-vax.c:3346 msgid "" "VAX options:\n" "-d LENGTH\t\tignored\n" @@ -8649,7 +9645,7 @@ msgstr "" "-T\t\t\tyoksayıldı\n" "-V\t\t\tyoksayıldı\n" -#: config/tc-vax.c:3187 +#: config/tc-vax.c:3355 msgid "" "VMS options:\n" "-+\t\t\thash encode names longer than 31 characters\n" @@ -8681,6 +9677,15 @@ msgstr " for character code.\n" msgstr "Karakter kodu için > eksik.\n" -#: gasp.c:2762 +#: gasp.c:2826 #, c-format msgid "string for SDATAC longer than 255 characters (%d).\n" msgstr "SDATA için dizge 255 karakterden uzun (%d).\n" -#: gasp.c:2791 +#: gasp.c:2855 #, c-format msgid "illegal character in SDATA line (0x%x).\n" msgstr "SDATA satırında geçersiz karakter (0x%x).\n" -#: gasp.c:2813 +#: gasp.c:2877 msgid "Must have absolute SDATAB repeat count.\n" msgstr "SDATAB tekrar sayısı kesin olmalı.\n" -#: gasp.c:2816 +#: gasp.c:2880 #, c-format msgid "Must have positive SDATAB repeat count (%d).\n" msgstr "SDATAB tekrar sayısı pozitif olmalı (%d).\n" -#: gasp.c:2844 +#: gasp.c:2908 #, c-format msgid "Unreasonable include depth (%ld).\n" msgstr "Mantıksız içerme derinliği (%ld).\n" -#: gasp.c:2898 +#: gasp.c:2962 #, c-format msgid "Can't open include file `%s'.\n" msgstr "`%s' include dosyası açılamadı.\n" -#: gasp.c:2972 +#: gasp.c:3036 msgid "Unreasonable expansion (-u turns off check).\n" msgstr "Mantıksız açılım (-u kontrolü durdurur).\n" #. This one causes lots of pain when trying to preprocess #. ordinary code. -#: gasp.c:3186 +#: gasp.c:3250 #, c-format msgid "Unrecognised pseudo op `%s'.\n" msgstr "Bilinmeyen sanal op `%s'.\n" -#: gasp.c:3255 +#: gasp.c:3319 msgid "ORG command not allowed.\n" msgstr "ORG komutu kullanılamaz.\n" -#: gasp.c:3468 +#: gasp.c:3532 msgid "Invalid expression on command line.\n" msgstr "Komut satırında geçersiz ifade.\n" -#: gasp.c:3511 +#: gasp.c:3575 #, c-format msgid "" "Usage: %s \n" @@ -9392,7 +10398,7 @@ msgstr "" " [-o çık] [--output çık] çıktı dosyasını belirtir\n" " [-p] [--print] satır numaraları yazdırır\n" -#: gasp.c:3520 +#: gasp.c:3584 msgid "" " [-s] [--copysource] copy source through as comments \n" " [-u] [--unreasonable] allow unreasonable nesting\n" @@ -9409,37 +10415,37 @@ msgstr "" " [-Iyol] Yol listesine ilave eder\n" " [girdi-dosyası]\n" -#: gasp.c:3537 +#: gasp.c:3601 #, c-format msgid "%s: Gnu Assembler Macro Preprocessor\n" msgstr "%s: Gnu Çevirici Makro Önişlemcisi\n" #. This output is intended to follow the GNU standards document. -#: gasp.c:3625 +#: gasp.c:3689 #, c-format msgid "GNU assembler pre-processor %s\n" msgstr "GNU çevirici önişlemcisi %s\n" -#: gasp.c:3626 +#: gasp.c:3690 msgid "Copyright 1996 Free Software Foundation, Inc.\n" msgstr "Telif Hakkı (c) 1996 Free Software Foundation, Inc.\n" -#: gasp.c:3649 +#: gasp.c:3713 #, c-format msgid "%s: Can't open output file `%s'.\n" msgstr "%s: `%s' çıktı dosyası açılamadı.\n" -#: gasp.c:3673 +#: gasp.c:3737 #, c-format msgid "%s: Can't open input file `%s'.\n" msgstr "%s: `%s' girdi dosyası açılamadı.\n" -#: gasp.c:3692 +#: gasp.c:3756 #, c-format msgid "Internal error, aborting at %s line %d" msgstr "İç hata, %s'de, %d satırında durduruldu" -#: gasp.c:3695 +#: gasp.c:3759 msgid "" "\n" "Please report this bug.\n" @@ -9458,7 +10464,7 @@ msgstr "" #. line here (assuming of course that we actually have a line of #. input to read), so that it can be displayed in the listing #. that is produced at the end of the assembly. -#: input-file.c:145 input-scrub.c:242 listing.c:344 +#: input-file.c:145 input-scrub.c:242 listing.c:343 msgid "{standard input}" msgstr "{standart girdi}" @@ -9497,21 +10503,21 @@ msgstr "Uyarı:" msgid "Error:" msgstr "Hata:" -#: listing.c:1131 +#: listing.c:1130 #, c-format msgid "can't open list file: %s" msgstr "Liste dosyası açılamadı: %s" -#: listing.c:1155 +#: listing.c:1154 #, c-format msgid "error closing list file: %s" msgstr "liste dosyası kapatılırken hata: %s" -#: listing.c:1234 +#: listing.c:1233 msgid "strange paper height, set to no form" msgstr "kağıt yüksekliği garip, bir forma atanmadı" -#: listing.c:1300 +#: listing.c:1299 msgid "new line in title" msgstr "başlıkta yenisatır" @@ -9642,7 +10648,7 @@ msgstr "\"%d$\" etiketi yeniden tanımla msgid ".abort detected. Abandoning ship." msgstr ".abort bulundu. Terk ediliyor." -#: read.c:1172 read.c:2406 +#: read.c:1172 read.c:2411 msgid "ignoring fill value in absolute section" msgstr "kesin bölümde dolgu değeri yoksayıldı" @@ -9655,11 +10661,11 @@ msgstr "hizalama fazla büyük: %u varsa msgid "expected fill pattern missing" msgstr "beklenen dolgu kalıbı eksik" -#: read.c:1368 read.c:1968 read.c:2176 read.c:2788 +#: read.c:1368 read.c:1973 read.c:2181 read.c:2793 msgid "expected symbol name" msgstr "sembol adı beklendi." -#: read.c:1378 read.c:2186 read.c:2798 stabs.c:472 +#: read.c:1378 read.c:2191 read.c:2803 stabs.c:480 #, c-format msgid "expected comma after \"%s\"" msgstr "\"%s\"dan sonra virgül beklendi" @@ -9676,304 +10682,307 @@ msgstr ".comm \"%s\" uzunluğu zaten %ld #. Some of the back ends can't deal with non-positive line numbers. #. Besides, it's silly. -#: read.c:1628 +#: read.c:1633 #, c-format msgid "line numbers must be positive; line number %d rejected" msgstr "satır numaraları pozitif olmalı; %d satır numarası reddedildi" -#: read.c:1656 +#: read.c:1661 msgid "start address not supported" msgstr "başlangıç adresi desteklenmiyor" -#: read.c:1666 +#: read.c:1671 msgid ".err encountered" msgstr ".err bulundu" -#: read.c:1685 read.c:1687 +#: read.c:1690 read.c:1692 #, c-format msgid ".fail %ld encountered" msgstr ".fail %ld bulundu" -#: read.c:1724 +#: read.c:1729 #, c-format msgid ".fill size clamped to %d" msgstr ".fill boyu %d'e bağlandı." -#: read.c:1729 +#: read.c:1734 msgid "size negative; .fill ignored" msgstr "Boy negatif: .fill yoksayıldı." -#: read.c:1735 +#: read.c:1740 msgid "repeat < 0; .fill ignored" msgstr "tekrar < 0, .fill yoksayıldı" -#: read.c:1895 +#: read.c:1900 #, c-format msgid "unrecognized .linkonce type `%s'" msgstr "bilinmeyen .linkonce türü `%s'" -#: read.c:1908 read.c:1934 +#: read.c:1913 read.c:1939 msgid ".linkonce is not supported for this object file format" msgstr ".linkonce bu nesne dosya biçemi için desteklenmiyor" -#: read.c:1930 +#: read.c:1935 #, c-format msgid "bfd_set_section_flags: %s" msgstr "bfd_set_section_flags: %s" -#: read.c:1985 +#: read.c:1990 msgid "missing size expression" msgstr "boyut ifadesi eksik" -#: read.c:1991 +#: read.c:1996 #, c-format msgid "BSS length (%d) < 0 ignored" msgstr "BSS uzunluğu (%d) <0 yoksayıldı." -#: read.c:2007 +#: read.c:2012 #, c-format msgid "error setting flags for \".sbss\": %s" msgstr "\".sbss\" için bayrak atanırken hata: %s" -#: read.c:2030 +#: read.c:2035 msgid "expected comma after size" msgstr "boydan sonra virgül beklendi" -#: read.c:2064 +#: read.c:2069 #, c-format msgid "alignment too large; %d assumed" msgstr "hizalama fazla büyük: %d varsayıldı" -#: read.c:2069 +#: read.c:2074 msgid "alignment negative; 0 assumed" msgstr "hizalama negatif: 0 varsayıldı" -#: read.c:2335 +#: read.c:2340 #, c-format msgid "attempt to redefine pseudo-op `%s' ignored" msgstr "`%s' sanal op'unu yeniden tanımlama denemesi yoksayıldı" -#: read.c:2401 +#: read.c:2406 #, c-format msgid "invalid segment \"%s\"" msgstr "geçersiz bölüm, \"%s\"" -#: read.c:2409 +#: read.c:2414 msgid "only constant offsets supported in absolute section" msgstr "kesin bölümde yalnız sabit göreceler destekleniyor" -#: read.c:2449 +#: read.c:2454 msgid "MRI style ORG pseudo-op not supported" msgstr "MRI tarzı ORG sanal op'u desteklenmiyor" -#: read.c:2606 +#: read.c:2611 #, c-format msgid "unrecognized section type `%s'" msgstr "bilinmeyen bölüm türü `%s'" -#: read.c:2620 +#: read.c:2625 msgid "absolute sections are not supported" msgstr "kesin bölümler desteklenmiyor" -#: read.c:2635 +#: read.c:2640 #, c-format msgid "unrecognized section command `%s'" msgstr "bilinmeyen bölüm komutu `%s'" -#: read.c:2701 +#: read.c:2706 msgid ".endr encountered without preceeding .rept, .irc, or .irp" msgstr "öncesinde .rept, .irc veya .irp olmaksızın .endr" -#: read.c:2733 +#: read.c:2738 #, c-format msgid "%s without %s" msgstr "%2$s olmaksızın %1$s" -#: read.c:2942 +#: read.c:2947 msgid "unsupported variable size or fill value" msgstr "desteklenmeyen değişken boyu veya dolgu değeri" -#: read.c:2967 +#: read.c:2972 msgid ".space repeat count is zero, ignored" msgstr ".space tekrar sayısı sıfır, yoksayıldı" -#: read.c:2969 +#: read.c:2974 msgid ".space repeat count is negative, ignored" msgstr ".space tekrar sayısı sıfır, yoksayıldı" -#: read.c:2998 +#: read.c:3003 msgid "space allocation too complex in absolute section" msgstr "kesin bölümde yer ayırması fazla karmaşık" -#: read.c:3004 +#: read.c:3009 msgid "space allocation too complex in common section" msgstr "ortak bölümde yer ayırması fazla karmaşık" -#: read.c:3092 read.c:4175 +#: read.c:3097 read.c:4180 #, c-format msgid "bad floating literal: %s" msgstr "hatalı kayan noktalı sabit: %s" -#: read.c:3165 +#: read.c:3170 #, c-format msgid "rest of line ignored; first ignored character is `%c'" msgstr "satırın geri kalanı yoksayıldı; ilk yoksayılan karakter `%c'." -#: read.c:3168 +#: read.c:3173 #, c-format msgid "rest of line ignored; first ignored character valued 0x%x" msgstr "satırın geri kalanı yoksayıldı; ilk yoksayılan karakterin değeri 0x%x." -#: read.c:3221 +#: read.c:3226 msgid "missing expression" msgstr "eksik ifade" -#: read.c:3392 +#: read.c:3397 msgid "rva without symbol" msgstr "sembol olmaksızın rva" -#: read.c:3516 +#: read.c:3521 msgid "attempt to store value in absolute section" msgstr "kesin bölümde değer saklama denemesi" -#: read.c:3554 read.c:4453 +#: read.c:3559 read.c:4458 msgid "zero assumed for missing expression" msgstr "eksik ifade için sıfır varsayıldı" -#: read.c:3566 read.c:4465 write.c:293 +#: read.c:3571 read.c:4470 write.c:293 msgid "register value used as expression" msgstr "yazmaç değeri ifade olarak kullanıldı" #. Leading bits contain both 0s & 1s. -#: read.c:3656 +#: read.c:3661 #, c-format msgid "value 0x%lx truncated to 0x%lx" msgstr "0x%lx değeri 0x%lx olarak budandı." -#: read.c:3672 +#: read.c:3677 #, c-format msgid "bignum truncated to %d bytes" msgstr "büyüksayı (bignum) %d bayta budandı" -#: read.c:3749 -#, c-format -msgid "unsupported BFD relocation size %u" -msgstr "desteklenmeyen BFD yerdeğişim boyu %u" - -#: read.c:3839 +#: read.c:3844 msgid "using a bit field width of zero" msgstr "bit alan genişliği sıfır kullanılıyor" -#: read.c:3847 +#: read.c:3852 #, c-format msgid "field width \"%s\" too complex for a bitfield" msgstr "\"%s\" alan genişliği bit alanı için fazla karmaşık" -#: read.c:3855 +#: read.c:3860 #, c-format msgid "field width %lu too big to fit in %d bytes: truncated to %d bits" msgstr "%lu alan genişliği %d bayta sığmak için fazla büyük: %d bite budandı" -#: read.c:3877 +#: read.c:3882 #, c-format msgid "field value \"%s\" too complex for a bitfield" msgstr "\"%s\" alan değeri bit alanı için fazla karmaşık" -#: read.c:4003 read.c:4197 +#: read.c:4008 read.c:4202 msgid "unresolvable or nonpositive repeat count; using 1" msgstr "çözümlenemeyen veya pozitif olmayan tekrar sayısı; 1 kullanıldı" -#: read.c:4054 +#: read.c:4059 #, c-format msgid "unknown floating type type '%c'" msgstr "bilinmeyen kayan nokta türü '%c'" -#: read.c:4076 +#: read.c:4081 msgid "floating point constant too large" msgstr "kayan nokta sabiti fazla büyük" -#: read.c:4607 +#: read.c:4612 msgid "expected " msgstr " beklendi" #. To be compatible with BSD 4.2 as: give the luser a linefeed!! -#: read.c:4640 read.c:4726 +#: read.c:4645 read.c:4731 msgid "unterminated string; newline inserted" msgstr "sonlanmamış dizge; yenisatır eklendi." -#: read.c:4734 +#: read.c:4739 msgid "bad escaped character in string" msgstr "dizgede hatalı kaçışlı karakter" -#: read.c:4760 +#: read.c:4765 msgid "expected address expression" msgstr "adres ifadesi beklendi" -#: read.c:4780 +#: read.c:4785 #, c-format msgid "symbol \"%s\" undefined; zero assumed" msgstr "\"%s\" sembolü tanımsız; sıfır varsayıldı" -#: read.c:4783 +#: read.c:4788 msgid "some symbol undefined; zero assumed" msgstr "bir sembol tanımsız; sıfır varsayıldı" -#: read.c:4801 +#: read.c:4806 msgid "bad or irreducible absolute expression" msgstr "hatalı veya indirgenemeyen kesin ifade" -#: read.c:4836 +#: read.c:4841 msgid "this string may not contain '\\0'" msgstr "bu dizgede '\\0' olamaz" -#: read.c:4873 +#: read.c:4878 msgid "missing string" msgstr "eksik dizge" -#: read.c:4996 +#: read.c:5001 #, c-format msgid ".incbin count zero, ignoring `%s'" msgstr ".incbin sayısı sıfır, `%s' yoksayıldı" -#: read.c:5022 +#: read.c:5027 #, c-format msgid "file not found: %s" msgstr "dosya bulunamadı: %s" -#: read.c:5036 +#: read.c:5041 #, c-format msgid "seek to end of .incbin file failed `%s'" msgstr ".incbin dosyasının sonuna arama başarısız `%s'" -#: read.c:5047 +#: read.c:5052 #, c-format msgid "skip (%ld) + count (%ld) larger than file size (%ld)" msgstr "atlama (%ld) + sayı (%ld) dosya boyundan büyük (%ld)" -#: read.c:5054 +#: read.c:5059 #, c-format msgid "could not skip to %ld in file `%s'" msgstr "`%2$s' dosyasında %1$ld'ye atlanamadı" -#: read.c:5063 +#: read.c:5068 #, c-format msgid "truncated file `%s', %ld of %ld bytes read" msgstr "`%s' dosyası budandı, %ld/%ld bayt okundu" -#: read.c:5226 +#: read.c:5231 msgid "missing .func" msgstr "eksik .func" -#: read.c:5243 +#: read.c:5248 msgid ".endfunc missing for previous .func" msgstr "önceki .func için eksik .endfunc" -#: stabs.c:220 stabs.c:228 stabs.c:236 stabs.c:247 +#: stabs.c:220 stabs.c:228 stabs.c:236 stabs.c:255 #, c-format msgid ".stab%c: missing comma" msgstr ".stab%c: eksik virgül" -#: stabs.c:427 +#. This could happen for example with a source file with a huge +#. number of lines. The only cure is to use a different debug +#. format, probably DWARF. +#: stabs.c:248 +#, c-format +msgid ".stab%c: description field '%x' too big, try a different debug format" +msgstr ".stab%c: '%x' tanım alanı fazla büyük, başka bir hata ayıklama biçemi deneyin" + +#: stabs.c:435 msgid "comma missing in .xstabs" msgstr ".xstabs içinde eksik virgül" @@ -9992,51 +11001,51 @@ msgstr "\"%s\" sembolü zaten \"%s\"/%s% msgid "inserting \"%s\" into symbol table failed: %s" msgstr "sembol tablosuna \"%s\" eklenmesi başarısız: %s" -#: symbols.c:873 +#: symbols.c:880 #, c-format msgid "symbol definition loop encountered at `%s'" msgstr "%s'de sembol tanım döngüsü bulundu" -#: symbols.c:1082 symbols.c:1086 +#: symbols.c:1094 symbols.c:1098 #, c-format msgid "undefined symbol `%s' in operation" msgstr "işlemde tanımsız %s sembolü" -#: symbols.c:1091 +#: symbols.c:1103 msgid "invalid section for operation" msgstr "işlem için geçersiz bölüm" -#: symbols.c:1096 symbols.c:1100 +#: symbols.c:1108 symbols.c:1112 #, c-format msgid "undefined symbol `%s' in operation setting `%s'" msgstr "işlemde tanımsız %s sembolü %s'i atıyor" -#: symbols.c:1105 +#: symbols.c:1117 #, c-format msgid "invalid section for operation setting `%s'" msgstr "%s'i atayan işlem için geçersiz bölüm" -#: symbols.c:1123 +#: symbols.c:1138 #, c-format msgid "division by zero when setting `%s'" msgstr "%s atanırken sıfırla bölüm" -#: symbols.c:1202 write.c:2009 +#: symbols.c:1225 write.c:2028 #, c-format msgid "can't resolve value for symbol `%s'" msgstr "\"%s\" sembolü için değer çözümlenemedi" -#: symbols.c:1596 +#: symbols.c:1619 #, c-format msgid "\"%d\" (instance number %d of a %s label)" msgstr "\"%1$d\" (%3$s etiketinde gerçekleme sayısı %2$d)" -#: symbols.c:1633 +#: symbols.c:1656 #, c-format msgid "attempt to get value of unresolved symbol `%s'" msgstr "tanımsız %s sembolünün değerini alma denemesi" -#: symbols.c:1869 +#: symbols.c:1892 msgid "section symbols are already global" msgstr "bölüm sembolleri zaten evrensel" @@ -10054,86 +11063,142 @@ msgstr "rva desteklenmiyor" msgid "attempt to .org/.space backwards? (%ld)" msgstr "Geriye .org/.space denemesi? (%ld)" -#: write.c:1029 +#: write.c:1044 msgid "relocation out of range" msgstr "yerdeğişim kapsam dışı" -#: write.c:1032 +#: write.c:1047 #, c-format msgid "%s:%u: bad return from bfd_install_relocation: %x" msgstr "%s:%u: bfd_install_relocation'dan hatalı geri dönüş: %x" -#: write.c:1076 +#: write.c:1091 msgid "internal error: fixup not contained within frag" msgstr "iç hata: düzeltme parça içinde değil" -#: write.c:1092 +#: write.c:1107 #, c-format msgid "%s:%u: bad return from bfd_install_relocation" msgstr "%s:%u: bfd_install_relocation'dan hatalı geri dönüş" -#: write.c:1179 write.c:1203 +#: write.c:1194 write.c:1218 #, c-format msgid "FATAL: Can't write %s" msgstr "ÖLÜMCÜL: %s yazılamadı" -#: write.c:1235 +#: write.c:1250 msgid "cannot write to output file" msgstr "çıktı dosyasına yazılamadı." -#: write.c:1484 +#: write.c:1503 #, c-format msgid "%d error%s, %d warning%s, generating bad object file" msgstr "%d hata%s, %d uyarı%s, hatalı nesne dosyası üretiliyor" -#: write.c:1491 +#: write.c:1510 #, c-format msgid "%d error%s, %d warning%s, no object file generated" msgstr "%d hata%s, %d uyarı%s, nesne dosyası üretilmedi" -#: write.c:1947 +#: write.c:1966 #, c-format msgid "local label `%s' is not defined" msgstr "yerel %s etiketi tanımsız" -#: write.c:2245 +#: write.c:2264 #, c-format msgid "alignment padding (%lu bytes) not a multiple of %ld" msgstr "hizalama dolgusu (%lu bayt) %ld'nin katı değil" -#: write.c:2362 +#: write.c:2381 #, c-format msgid ".word %s-%s+%s didn't fit" msgstr ".word %s-%s+%s sığmadı" -#: write.c:2447 +#: write.c:2466 msgid "attempt to .org backwards" msgstr "Geriye .org denemesi yoksayıldı" -#: write.c:2475 +#: write.c:2494 msgid ".space specifies non-absolute value" msgstr ".space kesin olmayan değer belirtiyor" -#: write.c:2482 +#: write.c:2501 msgid ".space or .fill with negative value, ignored" msgstr "negatif değerli .space veya .fill; yoksayıldı" -#: write.c:2656 +#: write.c:2675 #, c-format msgid "negative of non-absolute symbol `%s'" msgstr "bağımsız olmayan sembol %s'nin negatifi" -#: write.c:2750 +#: write.c:2769 #, c-format msgid "subtraction of two symbols in different sections `%s' {%s section} - `%s' {%s section} at file address %s" msgstr "\"%s\" {%s bölümü} - \"%s\" {%s bölümü}, dosya adresi %s: farklı bölümlerden iki sembolün birbirinden çıkarılması." -#: write.c:2886 +#: write.c:2905 #, c-format msgid "value of %s too large for field of %d bytes at %s" msgstr "%s değeri %d baytlık alan için %s'de çok büyük" -#: write.c:2898 +#: write.c:2917 #, c-format msgid "signed .word overflow; switch may be too large; %ld at 0x%lx" msgstr "signed .word taşması; bayrak çok büyük olabilir; 0x%2$lx de %1$ld" + +#~ msgid "unrecognised APCS switch -m%s" +#~ msgstr "Bilinmeyen APCS bayrağı -m%s" + +#~ msgid "invalid architecture variant -m%s" +#~ msgstr "Geçersiz platform alt-türü -m%s" + +#~ msgid "invalid processor variant -m%s" +#~ msgstr "Geçersiz işlemci alt-türü -m%s" + +#~ msgid "" +#~ " ARM Specific Assembler Options:\n" +#~ " -m[arm][] select processor variant\n" +#~ " -m[arm]v[2|2a|3|3m|4|4t|5[t][e]] select architecture variant\n" +#~ " -marm9e allow Cirrus/DSP instructions\n" +#~ " -mthumb only allow Thumb instructions\n" +#~ " -mthumb-interwork mark the assembled code as supporting interworking\n" +#~ " -mall allow any instruction\n" +#~ " -mfpa10, -mfpa11 select floating point architecture\n" +#~ " -mfpe-old don't allow floating-point multiple instructions\n" +#~ " -mvfpxd allow vfp single-precision instructions\n" +#~ " -mvfp allow all vfp instructions\n" +#~ " -mno-fpu don't allow any floating-point instructions.\n" +#~ " -k generate PIC code.\n" +#~ msgstr "" +#~ " ARM Özgün Çevirici Seçenekleri:\n" +#~ " -m[arm][] işlemci alt-türünü seçer\n" +#~ " -m[arm]v[2|2a|3|3m|4|4t|5[t][e]] mimari türünü seçer\n" +#~ " -marm9e Cirrus/DSP işlemlerine izin verir\n" +#~ " -mthumb yalnızca Thumb işlemlerini etkinleştirir\n" +#~ " -mthumb-interwork çevrilmiş kodu beraber çalışmaya uygun olarak imler\n" +#~ " -mall bütün işlemlere izin verir\n" +#~ " -mfpa10, -mfpa11 kayan nokta mimarisine izin verir\n" +#~ " -mfpe-old çoklu kayan nokta işlemlerine izin vermez\n" +#~ " -mvfpxd vfp tek kesinlikli işlemlere izin verir\n" +#~ " -mvfp bütün vfp işlemlerine izin verir\n" +#~ " -mno-fpu hiç bir kayan nokta işlemine izin vermez\n" +#~ " -k PIC kodu üretir\n" + +#~ msgid "" +#~ " -mapcs-32, -mapcs-26 specify which ARM Procedure Calling Standard to use\n" +#~ " -matpcs use ARM/Thumb Procedure Calling Standard\n" +#~ " -mapcs-float floating point args are passed in FP regs\n" +#~ " -mapcs-reentrant the code is position independent/reentrant\n" +#~ msgstr "" +#~ " -mapcs-32, -mapcs-26 hangi ARM Yordam Çağrı Standardını kullanacağını\n" +#~ " belirtir\n" +#~ " -matpcs ARM/Thumb Yordam Çağrı Standarını kullanır\n" +#~ " -mapcs-float kayan nokta argümanları FP yazmaçlarında geçirilir\n" +#~ " -mapcs-reentrant kod, yerden bağımsız/yeniden girişli\n" + +#~ msgid " -moabi support the old ELF ABI\n" +#~ msgstr " -moabi eski ELF ABI'sini destekler\n" + +#~ msgid "64bit operations available only in 64bit modes." +#~ msgstr "64bit işlemleri yalnız 64bit kiplerinde kullanılabilir" diff -uprN binutils-2.13.90.0.4/gas/read.c binutils-2.13.90.0.10/gas/read.c --- binutils-2.13.90.0.4/gas/read.c Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/gas/read.c Fri Sep 27 08:33:09 2002 @@ -1,6 +1,6 @@ /* read.c - read a source file - Copyright 1986, 1987, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, - 1998, 1999, 2000, 2001 Free Software Foundation, Inc. + 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -1197,7 +1197,7 @@ do_align (n, fill, len, max) } #ifdef md_do_align - just_record_alignment: + just_record_alignment: ATTRIBUTE_UNUSED_LABEL #endif record_alignment (now_seg, n - OCTETS_PER_BYTE_POWER); @@ -3232,8 +3232,6 @@ pseudo_set (symbolP) as_bad (_("floating point number invalid")); } else if (exp.X_op == O_subtract - && (S_GET_SEGMENT (exp.X_add_symbol) - == S_GET_SEGMENT (exp.X_op_symbol)) && SEG_NORMAL (S_GET_SEGMENT (exp.X_add_symbol)) && (symbol_get_frag (exp.X_add_symbol) == symbol_get_frag (exp.X_op_symbol))) diff -uprN binutils-2.13.90.0.4/gas/subsegs.c binutils-2.13.90.0.10/gas/subsegs.c --- binutils-2.13.90.0.4/gas/subsegs.c Tue Jun 18 21:41:59 2002 +++ binutils-2.13.90.0.10/gas/subsegs.c Fri Sep 27 08:33:09 2002 @@ -1,6 +1,6 @@ /* subsegs.c - subsegments - Copyright 1987, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, - 1999, 2000 + 1999, 2000, 2002 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -526,11 +526,7 @@ section_symbol (sec) #define EMIT_SECTION_SYMBOLS 1 #endif - if (! EMIT_SECTION_SYMBOLS -#ifdef BFD_ASSEMBLER - || symbol_table_frozen -#endif - ) + if (! EMIT_SECTION_SYMBOLS || symbol_table_frozen) { /* Here we know it won't be going into the symbol table. */ s = symbol_create (sec->name, sec, 0, &zero_address_frag); @@ -555,6 +551,8 @@ section_symbol (sec) /* Use the BFD section symbol, if possible. */ if (obj_sec_sym_ok_for_reloc (sec)) symbol_set_bfdsym (s, sec->symbol); + else + symbol_get_bfdsym (s)->flags |= BSF_SECTION_SYM; seginfo->sym = s; return s; diff -uprN binutils-2.13.90.0.4/gas/symbols.c binutils-2.13.90.0.10/gas/symbols.c --- binutils-2.13.90.0.4/gas/symbols.c Tue Jun 18 21:41:59 2002 +++ binutils-2.13.90.0.10/gas/symbols.c Fri Sep 27 08:33:09 2002 @@ -313,6 +313,13 @@ colon (sym_name) /* Just seen "x:" - ra extern const int md_short_jump_size; extern const int md_long_jump_size; + + if (now_seg == absolute_section) + { + as_bad (_("cannot define symbol `%s' in absolute section"), sym_name); + return NULL; + } + possible_bytes = (md_short_jump_size + new_broken_words * md_long_jump_size); @@ -1762,6 +1769,28 @@ S_IS_DEFINED (s) return s->bsym->section != undefined_section; } + +#ifndef EXTERN_FORCE_RELOC +#define EXTERN_FORCE_RELOC IS_ELF +#endif + +/* Return true for symbols that should not be reduced to section + symbols or eliminated from expressions, because they may be + overridden by the linker. */ +int +S_FORCE_RELOC (s) + symbolS *s; +{ + if (LOCAL_SYMBOL_CHECK (s)) + return ((struct local_symbol *) s)->lsy_section == undefined_section; + + return ((s->bsym->flags & BSF_WEAK) != 0 + || (EXTERN_FORCE_RELOC + && (s->bsym->flags & BSF_GLOBAL) != 0) + || s->bsym->section == undefined_section + || bfd_is_com_section (s->bsym->section)); +} + int S_IS_DEBUG (s) symbolS *s; diff -uprN binutils-2.13.90.0.4/gas/symbols.h binutils-2.13.90.0.10/gas/symbols.h --- binutils-2.13.90.0.4/gas/symbols.h Fri Jun 7 19:22:17 2002 +++ binutils-2.13.90.0.10/gas/symbols.h Fri Sep 27 08:33:09 2002 @@ -90,6 +90,7 @@ extern int S_IS_EXTERNAL PARAMS ((symbol extern int S_IS_WEAK PARAMS ((symbolS *)); extern int S_IS_COMMON PARAMS ((symbolS *)); extern int S_IS_DEFINED PARAMS ((symbolS *)); +extern int S_FORCE_RELOC PARAMS ((symbolS *)); extern int S_IS_DEBUG PARAMS ((symbolS *)); extern int S_IS_LOCAL PARAMS ((symbolS *)); extern int S_IS_EXTERN PARAMS ((symbolS *)); diff -uprN binutils-2.13.90.0.4/gas/testsuite/ChangeLog binutils-2.13.90.0.10/gas/testsuite/ChangeLog --- binutils-2.13.90.0.4/gas/testsuite/ChangeLog Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/gas/testsuite/ChangeLog Wed Oct 9 21:09:41 2002 @@ -1,3 +1,305 @@ +2002-10-09 Stephen Clarke + + * gas/elf.exp: Don't run for sh64*-*-linux*, because it sets the + lsb in SHmedia code addresses. + * gas/sh/basic.exp: Force SHcompact for sh64*-*-linux* to enable + recognition of SH-1/2/3/4 instructions. + (proc do_fp): Do not run dsp tests for sh64*-*-linux*. + * gas/sh/sh64/abi-32.d: Adjust expected output to include + sh64*-*-linux* formats too. + * gas/sh/sh64/abi-64.d, gas/sh/sh64/basic-1.d, + gas/sh/sh64/case-1.d, gas/sh/sh64/case-noexp-1.d, + gas/sh/sh64/crange1-1.d, gas/sh/sh64/crange1-2.d, + gas/sh/sh64/crange2-1.d, gas/sh/sh64/crange2-2.d, + sh/sh64/crange2-noexp-1.d, gas/sh/sh64/crange3-1.d, + gas/sh/sh64/crange4-1.d, gas/sh/sh64/crange5-1.d, + gas/sh/sh64/creg-1.d, gas/sh/sh64/creg-2.d, gas/sh/sh64/datal-2.d, + gas/sh/sh64/datal32-1.d, gas/sh/sh64/datal32-3.d, + gas/sh/sh64/datal64-1.d, gas/sh/sh64/datal64-3.d, + gas/sh/sh64/endian-1.d, gas/sh/sh64/endian-2.d, + gas/sh/sh64/err-noexp-cmd1.s, gas/sh/sh64/immexpr32-1.d, + gas/sh/sh64/immexpr32-2.d, gas/sh/sh64/immexpr64-1.d, + gas/sh/sh64/immexpr64-2.d, gas/sh/sh64/lineno.d, + gas/sh/sh64/localcom-1.d, gas/sh/sh64/mix-1.d, + gas/sh/sh64/mix-noexp-1.d, gas/sh/sh64/movi-3.d, + gas/sh/sh64/movi32-1.d, gas/sh/sh64/movi32-2.d, + gas/sh/sh64/movi32-noexp-2.d, gas/sh/sh64/movi64-1.d, + gas/sh/sh64/movi64-2.d, gas/sh/sh64/movi64-3.d, + gas/sh/sh64/movi64-noexp-2.d, gas/sh/sh64/pt-1.d, + gas/sh/sh64/pt-noexp-1.d, gas/sh/sh64/pt32-1.d, + gas/sh/sh64/pt32-noexp-2.d, gas/sh/sh64/pt64-1.d, + gas/sh/sh64/pt64-32-1.d, gas/sh/sh64/pt64-32-2.d, + gas/sh/sh64/pt64-noexp-2.d, gas/sh/sh64/ptc32-1.d, + gas/sh/sh64/ptc32-noexp-1.d, gas/sh/sh64/ptc64-1.d, + gas/sh/sh64/ptc64-32-1.d, gas/sh/sh64/ptc64-noexp-1.d, + gas/sh/sh64/ptext32-1.d, gas/sh/sh64/ptext32-noexp-1.d, + gas/sh/sh64/ptext64-1.d, gas/sh/sh64/ptext64-32-1.d, + gas/sh/sh64/ptext64-noexp-1.d, gas/sh/sh64/rel32-1.d, + gas/sh/sh64/rel32-2.d, gas/sh/sh64/rel32-3.d, + gas/sh/sh64/rel32-4.d, gas/sh/sh64/rel32-5.d, + gas/sh/sh64/rel64-1.d, gas/sh/sh64/rel64-2.d, + gas/sh/sh64/rel64-3.d, gas/sh/sh64/rel64-4.d, + gas/sh/sh64/rel64-5.d, gas/sh/sh64/relax-1.d, + gas/sh/sh64/relax-2.d, gas/sh/sh64/relax-3.d, + gas/sh/sh64/shift32-1.d, gas/sh/sh64/shift32-3.d, + gas/sh/sh64/shift32-noexp-3.d, gas/sh/sh64/shift64-1.d, + gas/sh/sh64/shift64-2.d, gas/sh/sh64/shift64-3.d, + gas/sh/sh64/shift64-noexp-3.d, gas/sh/sh64/syntax-1.d, + gas/sh/sh64/syntax-2.d, gas/sh/sh64/ua32-1.d, + gas/sh/sh64/ua64-1.d: Likewise. + +2002-10-03 Chris Demetriou + + * gas/mips/mips-no-jalx.l: Make error message regexps accomodate + tools which target a specific CPU by default. + +2002-10-03 Kaz Kojima + + * testsuite/gas/sh/pcrel2.d: Check code also. + +2002-10-02 Stephen Clarke + + * gas/sh/sh64/ptc32-noexp-1.d: Adjust for changes to *ABS* + symbol generation. + * gas/sh/sh64/ptc64-noexp-1.d: Likewise. + +2002-09-30 H.J. Lu + + * gas/mips/mips.exp: Undo the last change. + +2002-09-30 H.J. Lu + + * gas/mips/mips.exp: Set xfail on empic, empic2, empic3_g1 and + empic3_g2 on Linux/mips. + +2002-09-30 H.J. Lu + + * gas/mips/vr4120.d: Use "#pass" instead of "#..." to skip the + rest of output. + +2002-09-30 Gavin Romig-Koch + Ken Raeburn + Aldy Hernandez + DJ Delorie + Michael Meissner + Eric Christopher + Richard Sandiford + + * gas/mips/mips4100.[sd]: Move dmadd16 and madd16 checks to... + * gas/mips/vr4111.[sd]: ...this new test. + * gas/mips/vr4120.[sd], + * gas/mips/vr4122.[sd], + * gas/mips/vr5400.[sd], + * gas/mips/vr5500.[sd]: New tests. + * mips.exp: Run them. + +2002-09-27 Kaz Kojima + + * gas/sh/pcrel2.s: New. + * gas/sh/pcrel2.d: New. + * gas/sh/basic.exp: Add pcrel2 test. + +2002-09-27 Jason Thorpe + + * gas/vax/elf-rel.[ds]: New test. + * gas/vax/quad.exp: Move contents to... + * gas/vax/vax.exp: ...here. New file. + +2002-09-27 H.J. Lu + + * gas/mips/mips-jalx.s: Add ".p2align 4". + * gas/mips/mips16-jalx.s: Likewise. + + * gas/mips/mips-jalx.d: Check nop. + * gas/mips/mips16-jalx.d: Likewise. + +2002-09-26 Thiemo Seufer + + * gas/mips/mips-jalx.d: New file, check jalx assembly. + * gas/mips/mips-jalx.s: Likewise. + * gas/mips/mips-no-jalx.l: Likewise. + * gas/mips/mips-no-jalx.s: Likewise. + * gas/mips/mips16-jalx.d: Likewise. + * gas/mips/mips16-jalx.s: Likewise. + * gas/mips/mips.exp: Add new tests. + +2002-09-26 Thiemo Seufer + + * gas/mips/jal-range.s: Fix jump overflow check. + * gas/mips/jal-range.l: Likewise. + +2002-09-23 Nick Clifton + + * gas/arm/armv1-bad.s: Add LDM and STM instructions which are + unpredictable because of their use of the writeback bit. + +2002-09-21 Nick Clifton + + * gas/arm/inst.s: Fix UNPREDICATABLE use of writeback in LDM/STM + instructions. + * gas/arm/inst.d: Update expected results. + +2002-09-19 Jakub Jelinek + + * gas/i386/tlspic.s: Add tests. + * gas/i386/tlspic.d: Regenerated. + * gas/i386/tlsnopic.s: Add tests. + * gas/i386/tlsnopic.d: Regenerated. + +2002-09-19 Richard Henderson + + * gas/alpha/elf-reloc-7.s: New. + * gas/alpha/elf-reloc-7.d: New. + * gas/alpha/alpha.exp: Run it. + +2002-09-18 Chris Demetriou + + * gas/mips/mips-abi32-pic2.s: New file. + * gas/mips/mips-abi32-pic2.d: New file. + * gas/mips/mips.exp: Run new test. + +2002-09-18 Chris Demetriou + + * gas/mips/baddata1.s: New file. + * gas/mips/baddata1.l: New file. + * gas/mips/mips.exp: Run new test. + +2002-09-18 Chris Demetriou + + * gas/mips/branch-misc-1.d: New file. + * gas/mips/branch-misc-1.s: New file. + * gas/mips/branch-misc-2.s: New file. + * gas/mips/branch-misc-2.d: New file. + * gas/mips/mips.exp: Run new tests. + +2002-09-17 Thiemo Seufer + + * gas/mips/jal-range.s: Check for jal overflows. + * gas/mips/jal-range.l: List file for it. + * gas/mips/mips.exp: Use it. + +2002-09-08 Ben Elliston + + * gas/hppa/basic/basic.exp: Update DejaGnu mail address. + * gas/hppa/parse/parse.exp: Likewise. + * gas/hppa/reloc/reloc.exp: Likewise. + * gas/hppa/unsorted/unsorted.exp: Likewise. + * gas/mn10200/basic.exp: Likewise. + * gas/mn10300/basic.exp: Likewise. + * gas/sh/basic.exp: Likewise. + * gas/sh/sh64/sh64.exp: Likewise. + * gas/v850/basic.exp: Likewise. + * lib/gas-defs.exp: Likewise. + + * gas/all/gas.exp: Removing limping support for DejaGnu 1.1.1. + * gasp/gasp.exp: Likewise. + +2002-09-05 Alan Modra + + * gas/i386/absrel.s: New. + * gas/i386/absrel.d: New. + * gas/i386/pcrel.s: New. + * gas/i386/pcrel.d: New. + * gas/i386/i386.exp: Run them. + * gas/testsuite/gas/mmix/comment-1.d: Don't test the symbol + index, the name will do. + * gas/mri/moveml.d: Escape dots. + * gas/macros/macros.exp (strings): Add rs6000-*-* to xfails. + * gas/mips/beq.s: Don't make text_label global. + * gas/mips/mips32.s: Likewise. + * gas/mips/mips64-mips3d.s: Likewise. + +2002-08-28 Alan Modra + + * gas/mcore/allinsn.d: Escape dots. Pass -z to objdump and adjust + to suit. Match coff relocs. Match "from address pool" comments. + * gas/sparc/pcrel.s: Use 2b label in expressions. + * gas/sparc/pcrel64.s: Likewise. + * gas/sparc/pcrel.d: Adjust to suit. + * gas/sparc/pcrel64.d: Likewise. + * gas/vtable/vtable.exp: Move xfails to .. + (proc vtable_setup_xfails): .. here. Add i866. + + * gas/macros/macros.exp (strings): Update xfails. + +2002-08-26 Alan Modra + + * gas/m68k/all.exp: xfail non-ELF targets on pcrel test. + + * gas/m68hc11/insns.d: Quote dots. + * gas/m68hc11/opers12.d: Likewise. + + * gas/ieee-fp/x930509a.exp: Run the test but xfail. Add c80 to xfails. + + * gas/vax/quad.exp: Use quad_elf.s for ELF targets. + * gas/vax/quad.s: Align + * gas/vax/quad_elf.s: New version of quad.s with %reg. + + * gas/sparc/sparc.exp (sparc_elf_setup): New. + Use it to xfail for non-ELF targets. + + * gas/tic54x/align.s: Add comment. + * gas/tic54x/align.d: Adjust .text size for 2002-05-23 write.c change. + * gas/tic54x/extaddr.d: Similarly adjust disassembly tail. + +2002-08-22 Nick Clifton + + * gas/arm/arch5tej.s: Add nops to align output. + * gas/arm/arch5tej.d: Expect nops. + * gas/arm/arm7t.s: Add nops, remove thumb instructions. + * gas/arm/arm7t.d: Expect nops. + * gas/arm/armv1.s: Add nops. + * gas/arm/armv1.d: Expect nops. + * gas/arm/fpa-mem.s: Add nops. + * gas/arm/fpa-mem.d: Expext nops. + * gas/arm/vfp1.s: Add nops. + * gas/arm/vfp1.d: Expect nops. + * gas/arm/xscale.s: Add nops. + * gas/arm/xscale.d: Expect nops. + * gas/arm/arm.exp: Do not run thumb tests for arm-aout + toolchain. + +2002-08-22 Alan Modra + + * gas/ppc/ppc.exp: Don't run e500 test on xcoff targets. + * gas/ppc/astest2.d: Escape dots. + +2002-08-20 Richard Sandiford + + * gas/mips/rol.s: Add rotate by zero tests. + * gas/mips/rol.d: Update accordingly. + * gas/mips/rol64.d: Expect rotates by zero to use dsrl. + +2002-08-19 Elena Zannoni + + From matthew green + + * e500.s: New tests for e500 instructions. + * e500.d: Results for new test. + * ppc.exp: Test e500.s. + +2002-08-16 Stephen Clarke + + * gas/sh/sh64/datal32-3.d: Formatting change to match the current + output of objdump. + +2002-08-16 Alan Modra + + * gas/all/gas.exp (forward references): Don't test c30. + * gas/d30v/guard-debug.d: Use -gstabs rather than -g. + * gas/elf/ehopt0.s: Don't use "$" in labels. + * gas/ieee-fp/x930509a.exp: Don't test c30. + * gas/m68hc11/malis.d: Adjust -I so that test runs when not building + in source dir. + * gas/mri/mri.exp: Don't run on "m68hc*". + * gas/sh/basic.exp (do_fp): Match LE too. + (pcrel-coff): Run this version for "sh*-pe*" and rename "sh*-hms" to + "sh*-rtems". + * gas/sh/pcrel-coff.d: Add -EB to objdump flags. + * gas/vtable/vtable.exp: Don't run on linuxecoff. setup_xfail in + preference to not running on ELF targets that might one day pass. + Add more xfails. Add more targets to the REL list. + 2002-08-14 H.J. Lu * gas/mips/elempic.d: Treat "addiu" and "daddiu" as equivalent diff -uprN binutils-2.13.90.0.4/gas/testsuite/ChangeLog.linux binutils-2.13.90.0.10/gas/testsuite/ChangeLog.linux --- binutils-2.13.90.0.4/gas/testsuite/ChangeLog.linux Fri Feb 23 21:13:57 2001 +++ binutils-2.13.90.0.10/gas/testsuite/ChangeLog.linux Wed Oct 2 10:17:19 2002 @@ -0,0 +1,3 @@ +2002-09-29 H.J. Lu + + * gas/mips/branch-misc-2.d: Updated. diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/all/gas.exp binutils-2.13.90.0.10/gas/testsuite/gas/all/gas.exp --- binutils-2.13.90.0.4/gas/testsuite/gas/all/gas.exp Thu May 23 15:10:11 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/all/gas.exp Fri Sep 27 08:33:09 2002 @@ -89,13 +89,12 @@ proc do_930509a {} { # must not be resolved by the assembler. # C54x assembler (for compatibility) does not allow differences between # forward references -if { ![istarget hppa*-*-*] && ![istarget *c54x*-*-*] } then { +# C30 counts a four byte offset as a difference of one. +if { ![istarget hppa*-*-*] + && ![istarget *c30*-*-*] && ![istarget *c54x*-*-*] } then { # the vax fails because VMS can apparently actually handle this # case in relocs, so gas doesn't handle it itself. - setup_xfail "vax*-*-vms*" - setup_xfail "mn10300*-*-*" - setup_xfail "mn10200*-*-*" - setup_xfail "h8300*-*-elf*" + setup_xfail "h8300*-*-elf*" "mn10200*-*-*" "mn10300*-*-*" "vax*-*-vms*" do_930509a } @@ -165,9 +164,3 @@ case $target_triplet in { run_dump_test incbin } } - -# FIXME: this is here cause of a bug in DejaGnu 1.1.1. When it is no longer -# in use, then this can be removed. -if [info exists errorInfo] then { - unset errorInfo -} diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/alpha/alpha.exp binutils-2.13.90.0.10/gas/testsuite/gas/alpha/alpha.exp --- binutils-2.13.90.0.4/gas/testsuite/gas/alpha/alpha.exp Fri Jun 7 19:22:17 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/alpha/alpha.exp Fri Sep 27 08:33:09 2002 @@ -29,6 +29,7 @@ if { [istarget alpha*-*-*] } then { run_dump_test "elf-reloc-4" run_dump_test "elf-reloc-5" run_list_test "elf-reloc-6" "" + run_dump_test "elf-reloc-7" run_dump_test "elf-tls-1" run_list_test "elf-tls-2" "" run_list_test "elf-tls-3" "" diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/alpha/elf-reloc-7.d binutils-2.13.90.0.10/gas/testsuite/gas/alpha/elf-reloc-7.d --- binutils-2.13.90.0.4/gas/testsuite/gas/alpha/elf-reloc-7.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/gas/testsuite/gas/alpha/elf-reloc-7.d Fri Sep 27 08:33:09 2002 @@ -0,0 +1,22 @@ +#objdump: -r +#name: alpha elf-reloc-7 + +.*: file format elf64-alpha + +RELOCATION RECORDS FOR \[\.text\]: +OFFSET TYPE VALUE +0*0000008 BRADDR bar + + +RELOCATION RECORDS FOR \[\.data\]: +OFFSET TYPE VALUE +0*0000004 SREL32 \.data2\+0x0*0000004 +0*0000008 SREL32 BAR + + +RELOCATION RECORDS FOR \[\.text2\]: +OFFSET TYPE VALUE +0*0000004 BRADDR \.text\+0x0*0000010 +0*0000008 BRADDR bar + + diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/alpha/elf-reloc-7.s binutils-2.13.90.0.10/gas/testsuite/gas/alpha/elf-reloc-7.s --- binutils-2.13.90.0.4/gas/testsuite/gas/alpha/elf-reloc-7.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/gas/testsuite/gas/alpha/elf-reloc-7.s Fri Sep 27 08:33:09 2002 @@ -0,0 +1,26 @@ + .section .data2,"wa" + .globl BAR + .long 0 +FOO: .long 0 +BAR: .long 0 + .long FOO - . + .long BAR - . + + .data + .long 0 + .long FOO - . + .long BAR - . + + .text + .globl bar + nop + br foo + br bar + nop +foo: nop +bar: nop + + .section .text2,"ax" + nop + br foo + br bar diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/arm/arch5tej.d binutils-2.13.90.0.10/gas/testsuite/gas/arm/arch5tej.d --- binutils-2.13.90.0.4/gas/testsuite/gas/arm/arch5tej.d Sun Feb 3 11:22:32 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/arm/arch5tej.d Fri Sep 27 08:33:09 2002 @@ -13,3 +13,5 @@ Disassembly of section .text: 0+0c <[^>]*> 012fff20 ? bxjeq r0 0+10 <[^>]*> 412fff20 ? bxjmi r0 0+14 <[^>]*> 512fff27 ? bxjpl r7 +0+18 <[^>]*> e1a00000 ? nop[ ]+\(mov r0,r0\) +0+1c <[^>]*> e1a00000 ? nop[ ]+\(mov r0,r0\) diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/arm/arch5tej.s binutils-2.13.90.0.10/gas/testsuite/gas/arm/arch5tej.s --- binutils-2.13.90.0.4/gas/testsuite/gas/arm/arch5tej.s Sun Feb 3 11:22:32 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/arm/arch5tej.s Fri Sep 27 08:33:09 2002 @@ -7,3 +7,8 @@ label: bxjeq r0 bxjmi r0 bxjpl r7 + + # Add two nop instructions to ensure that the output + # is aligned as will automatically be done for arm-aout. + nop + nop diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/arm/arm.exp binutils-2.13.90.0.10/gas/testsuite/gas/arm/arm.exp --- binutils-2.13.90.0.4/gas/testsuite/gas/arm/arm.exp Thu May 23 15:10:11 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/arm/arm.exp Fri Sep 27 08:33:09 2002 @@ -31,7 +31,10 @@ if {[istarget *arm*-*-*] || [istarget "x run_dump_test "arm7t" - gas_test "thumb.s" "-mcpu=arm7t" $stdoptlist "Thumb instructions" + if {! [istarget arm*-*-aout]} then { + # The arm-aout port does not support Thumb mode. + gas_test "thumb.s" "-mcpu=arm7t" $stdoptlist "Thumb instructions" + } gas_test "arch4t.s" "-march=armv4t" $stdoptlist "Arm architecture 4t instructions" diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/arm/arm7t.d binutils-2.13.90.0.10/gas/testsuite/gas/arm/arm7t.d --- binutils-2.13.90.0.4/gas/testsuite/gas/arm/arm7t.d Thu May 23 15:10:11 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/arm/arm7t.d Fri Sep 27 08:33:09 2002 @@ -66,5 +66,5 @@ Disassembly of section .text: [ ]*dc:.*fred 0+e0 <[^>]*> 0000c0de ? .* 0+e4 <[^>]*> 0000dead ? .* -0+e8 <[^>]*> 3800 sub r0, #0 -0+ea <[^>]*> 3000 add r0, #0 +0+e8 <[^>]*> e1a00000 ? nop[ ]+\(mov r0,r0\) +0+ec <[^>]*> e1a00000 ? nop[ ]+\(mov r0,r0\) diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/arm/arm7t.s binutils-2.13.90.0.10/gas/testsuite/gas/arm/arm7t.s --- binutils-2.13.90.0.4/gas/testsuite/gas/arm/arm7t.s Thu May 23 15:10:11 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/arm/arm7t.s Fri Sep 27 08:33:09 2002 @@ -74,9 +74,8 @@ misc: .word fred .ltorg - .thumb - .global thumb_tests - .thumb_func -thumb_tests: - sub r0, #0 - add r0, #0 + + # Add two nop instructions to ensure that the + # output is 32-byte aligned as required for arm-aout. + nop + nop diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/arm/armv1-bad.l binutils-2.13.90.0.10/gas/testsuite/gas/arm/armv1-bad.l --- binutils-2.13.90.0.4/gas/testsuite/gas/arm/armv1-bad.l Sun Feb 3 11:22:32 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/arm/armv1-bad.l Fri Sep 27 08:33:09 2002 @@ -6,3 +6,7 @@ [^:]*:8: Error: invalid constant -- `mov r0,#0x1ff' [^:]*:9: Error: bad instruction `cmpl r0,r0' [^:]*:10: Error: selected processor does not support `strh r0,\[r1\]' +[^:]*:11: Warning: writeback of base register is UNPREDICTABLE +[^:]*:12: Warning: writeback of base register when in register list is UNPREDICTABLE +[^:]*:13: Warning: writeback of base register is UNPREDICTABLE +[^:]*:15: Warning: if writeback register is in list, it must be the lowest reg in the list diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/arm/armv1-bad.s binutils-2.13.90.0.10/gas/testsuite/gas/arm/armv1-bad.s --- binutils-2.13.90.0.4/gas/testsuite/gas/arm/armv1-bad.s Sun Feb 3 11:22:32 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/arm/armv1-bad.s Fri Sep 27 08:33:09 2002 @@ -8,3 +8,8 @@ entry: mov r0, #0x1ff cmpl r0, r0 strh r0, [r1] + ldmfa r4!, {r8, r9}^ + ldmfa r4!, {r4, r8, r9} + stmfa r4!, {r8, r9}^ + stmdb r4!, {r4, r8, r9} @ This is OK. + stmdb r8!, {r4, r8, r9} diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/arm/armv1.d binutils-2.13.90.0.10/gas/testsuite/gas/arm/armv1.d --- binutils-2.13.90.0.4/gas/testsuite/gas/arm/armv1.d Thu May 23 15:10:11 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/arm/armv1.d Fri Sep 27 08:33:09 2002 @@ -68,3 +68,6 @@ Disassembly of section .text: 0+e8 <[^>]*> e8100001 ? ldmda r0, {r0} 0+ec <[^>]*> e9100001 ? ldmdb r0, {r0} 0+f0 <[^>]*> e9900001 ? ldmib r0, {r0} +0+f4 <[^>]*> e1a00000 ? nop[ ]+\(mov r0,r0\) +0+f8 <[^>]*> e1a00000 ? nop[ ]+\(mov r0,r0\) +0+fc <[^>]*> e1a00000 ? nop[ ]+\(mov r0,r0\) diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/arm/armv1.s binutils-2.13.90.0.10/gas/testsuite/gas/arm/armv1.s --- binutils-2.13.90.0.4/gas/testsuite/gas/arm/armv1.s Sun Feb 3 11:22:32 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/arm/armv1.s Fri Sep 27 08:33:09 2002 @@ -68,3 +68,9 @@ entry: ldmfa r0, {r0} ldmea r0, {r0} ldmed r0, {r0} + + # Add three nop instructions to ensure that the + # output is 32-byte aligned as required for arm-aout. + nop + nop + nop diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/arm/fpa-mem.d binutils-2.13.90.0.10/gas/testsuite/gas/arm/fpa-mem.d --- binutils-2.13.90.0.4/gas/testsuite/gas/arm/fpa-mem.d Thu May 23 15:10:11 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/arm/fpa-mem.d Fri Sep 27 08:33:09 2002 @@ -30,3 +30,5 @@ Disassembly of section .text: 0+4c <[^>]*> ed800200 ? sfm f0, 4, \[r0\] 0+50 <[^>]*> ed00020c ? sfm f0, 4, \[r0, -#48\] 0+54 <[^>]*> ed800200 ? sfm f0, 4, \[r0\] +0+58 <[^>]*> e1a00000 ? nop[ ]+\(mov r0,r0\) +0+5c <[^>]*> e1a00000 ? nop[ ]+\(mov r0,r0\) diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/arm/fpa-mem.s binutils-2.13.90.0.10/gas/testsuite/gas/arm/fpa-mem.s --- binutils-2.13.90.0.4/gas/testsuite/gas/arm/fpa-mem.s Sun Feb 3 11:22:32 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/arm/fpa-mem.s Fri Sep 27 08:33:09 2002 @@ -24,3 +24,8 @@ F: sfm f0, 4, [r0] sfmfd f0, 4, [r0] sfmea f0, 4, [r0] + + # Add two nop instructions to ensure that the + # output is 32-byte aligned as required for arm-aout. + nop + nop diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/arm/inst.d binutils-2.13.90.0.10/gas/testsuite/gas/arm/inst.d --- binutils-2.13.90.0.4/gas/testsuite/gas/arm/inst.d Thu May 23 15:10:11 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/arm/inst.d Fri Sep 27 08:33:09 2002 @@ -148,15 +148,15 @@ Disassembly of section .text: 0+228 <[^>]*> e99100f7 ? ldmib r1, {r0, r1, r2, r4, r5, r6, r7} 0+22c <[^>]*> e89201f8 ? ldmia r2, {r3, r4, r5, r6, r7, r8} 0+230 <[^>]*> e9130003 ? ldmdb r3, {r0, r1} -0+234 <[^>]*> e8740300 ? ldmda r4!, {r8, r9}\^ +0+234 <[^>]*> e8540300 ? ldmda r4, {r8, r9}\^ 0+238 <[^>]*> e8800002 ? stmia r0, {r1} 0+23c <[^>]*> 09820038 ? stmeqib r2, {r3, r4, r5} 0+240 <[^>]*> e843ffff ? stmda r3, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, sp, lr, pc}\^ -0+244 <[^>]*> e92a05ff ? stmdb sl!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, sl} +0+244 <[^>]*> e92b05ff ? stmdb fp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, sl} 0+248 <[^>]*> e8010007 ? stmda r1, {r0, r1, r2} 0+24c <[^>]*> e9020018 ? stmdb r2, {r3, r4} 0+250 <[^>]*> e8830003 ? stmia r3, {r0, r1} -0+254 <[^>]*> e9e40300 ? stmib r4!, {r8, r9}\^ +0+254 <[^>]*> e9c40300 ? stmib r4, {r8, r9}\^ 0+258 <[^>]*> ef123456 ? swi 0x00123456 0+25c <[^>]*> 2f000033 ? swics 0x00000033 0+260 <[^>]*> ebfffffe ? bl 0+0 <[^>]*> diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/arm/inst.s binutils-2.13.90.0.10/gas/testsuite/gas/arm/inst.s --- binutils-2.13.90.0.4/gas/testsuite/gas/arm/inst.s Tue Aug 22 16:50:03 2000 +++ binutils-2.13.90.0.10/gas/testsuite/gas/arm/inst.s Fri Sep 27 08:33:09 2002 @@ -169,16 +169,16 @@ bar: ldmed r1, {r0, r1, r2}|0xf0 ldmfd r2, {r3, r4}+{r5, r6, r7, r8} ldmea r3, 3 - ldmfa r4!, {r8, r9}^ + ldmfa r4, {r8, r9}^ stmia r0, {r1} stmeqib r2, {r3, r4, r5} stmalda r3, {r0-r15}^ - stmdb r10!, {r0-r8, r10} + stmdb r11!, {r0-r8, r10} stmed r1, {r0, r1, r2} stmfd r2, {r3, r4} stmea r3, 3 - stmfa r4!, {r8, r9}^ + stmfa r4, {r8, r9}^ swi 0x123456 swihs 0x33 diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/arm/vfp1.d binutils-2.13.90.0.10/gas/testsuite/gas/arm/vfp1.d --- binutils-2.13.90.0.4/gas/testsuite/gas/arm/vfp1.d Sun Feb 3 11:22:32 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/arm/vfp1.d Fri Sep 27 08:33:09 2002 @@ -188,3 +188,6 @@ Disassembly of section .text: 0+2c8 <[^>]*> 0e1f7b10 fmrdleq r7, d15 0+2cc <[^>]*> 0e21fb10 fmdhreq d1, pc 0+2d0 <[^>]*> 0e0f1b10 fmdlreq d15, r1 +0+2d4 <[^>]*> e1a00000 ? nop[ ]+\(mov r0,r0\) +0+2d8 <[^>]*> e1a00000 ? nop[ ]+\(mov r0,r0\) +0+2dc <[^>]*> e1a00000 ? nop[ ]+\(mov r0,r0\) diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/arm/vfp1.s binutils-2.13.90.0.10/gas/testsuite/gas/arm/vfp1.s --- binutils-2.13.90.0.4/gas/testsuite/gas/arm/vfp1.s Sun Feb 3 11:22:32 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/arm/vfp1.s Fri Sep 27 08:33:09 2002 @@ -276,3 +276,9 @@ F: fmdhreq d1, r15 fmdlreq d15, r1 + + # Add three nop instructions to ensure that the + # output is 32-byte aligned as required for arm-aout. + nop + nop + nop diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/arm/xscale.d binutils-2.13.90.0.10/gas/testsuite/gas/arm/xscale.d --- binutils-2.13.90.0.4/gas/testsuite/gas/arm/xscale.d Thu May 23 15:10:11 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/arm/xscale.d Fri Sep 27 08:33:09 2002 @@ -33,3 +33,5 @@ Disassembly of section .text: 0+5c <[^>]*> e5910000 ldr r0, \[r1\] 0+60 <[^>]*> e5832000 str r2, \[r3\] 0+64 <[^>]*> e321f011 msr CPSR_c, #17 ; 0x11 +0+68 <[^>]*> e1a00000 ? nop[ ]+\(mov r0,r0\) +0+6c <[^>]*> e1a00000 ? nop[ ]+\(mov r0,r0\) diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/arm/xscale.s binutils-2.13.90.0.10/gas/testsuite/gas/arm/xscale.s --- binutils-2.13.90.0.4/gas/testsuite/gas/arm/xscale.s Sun Feb 3 11:22:32 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/arm/xscale.s Fri Sep 27 08:33:09 2002 @@ -35,3 +35,8 @@ foo: str r2, [r3] msr cpsr_ctl, #0x11 + + # Add two nop instructions to ensure that the + # output is 32-byte aligned as required for arm-aout. + nop + nop diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/d30v/guard-debug.d binutils-2.13.90.0.10/gas/testsuite/gas/d30v/guard-debug.d --- binutils-2.13.90.0.4/gas/testsuite/gas/d30v/guard-debug.d Thu Jun 3 11:02:02 1999 +++ binutils-2.13.90.0.10/gas/testsuite/gas/d30v/guard-debug.d Fri Sep 27 08:33:09 2002 @@ -1,6 +1,6 @@ #objdump: -ldr #name: D30V debug (-g) test -#as: -g +#as: -gstabs .*: +file format elf32-d30v diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/elf/ehopt0.s binutils-2.13.90.0.10/gas/testsuite/gas/elf/ehopt0.s --- binutils-2.13.90.0.4/gas/testsuite/gas/elf/ehopt0.s Fri Nov 16 14:05:52 2001 +++ binutils-2.13.90.0.10/gas/testsuite/gas/elf/ehopt0.s Fri Sep 27 08:33:09 2002 @@ -1,13 +1,13 @@ .text -$LFB1: +LFB1: .4byte 0 -$L1: +L1: .4byte 0 -$LFE1: +LFE1: .section .eh_frame,"aw" __FRAME_BEGIN__: - .4byte $LECIE1-$LSCIE1 -$LSCIE1: + .4byte LECIE1-LSCIE1 +LSCIE1: .4byte 0x0 .byte 0x1 .ascii "z\0" @@ -18,15 +18,15 @@ $LSCIE1: .byte 0x4 .4byte 1 .p2align 1 -$LECIE1: -$LSFDE1: - .4byte $LEFDE1-$LASFDE1 -$LASFDE1: - .4byte $LASFDE1-__FRAME_BEGIN__ - .4byte $LFB1 - .4byte $LFE1-$LFB1 +LECIE1: +LSFDE1: + .4byte LEFDE1-LASFDE1 +LASFDE1: + .4byte LASFDE1-__FRAME_BEGIN__ + .4byte LFB1 + .4byte LFE1-LFB1 .byte 0x4 - .4byte $LFE1-$LFB1 + .4byte LFE1-LFB1 .byte 0x4 - .4byte $L1-$LFB1 -$LEFDE1: + .4byte L1-LFB1 +LEFDE1: diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/elf/elf.exp binutils-2.13.90.0.10/gas/testsuite/gas/elf/elf.exp --- binutils-2.13.90.0.4/gas/testsuite/gas/elf/elf.exp Sun Feb 3 11:22:32 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/elf/elf.exp Wed Oct 9 21:09:41 2002 @@ -37,6 +37,7 @@ if { ([istarget "*-*-elf*"] && ![istarget *-*-linux*aout*] && ![istarget *-*-linux*coff*] && ![istarget *-*-linux*oldld*] + && ![istarget sh64*-*-linux*] } then { set target_machine "" if {[istarget "mips*-*-*"]} then { diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/hppa/basic/basic.exp binutils-2.13.90.0.10/gas/testsuite/gas/hppa/basic/basic.exp --- binutils-2.13.90.0.4/gas/testsuite/gas/hppa/basic/basic.exp Tue Aug 31 10:12:29 1999 +++ binutils-2.13.90.0.10/gas/testsuite/gas/hppa/basic/basic.exp Fri Sep 27 08:33:09 2002 @@ -15,7 +15,7 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: -# DejaGnu@cygnus.com +# dejagnu@gnu.org # Written by the Center for Software Science at the Univeristy of Utah # and by Cygnus Support. diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/hppa/parse/parse.exp binutils-2.13.90.0.10/gas/testsuite/gas/hppa/parse/parse.exp --- binutils-2.13.90.0.4/gas/testsuite/gas/hppa/parse/parse.exp Tue Apr 23 11:56:30 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/hppa/parse/parse.exp Fri Sep 27 08:33:09 2002 @@ -15,7 +15,7 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: -# DejaGnu@cygnus.com +# dejagnu@gnu.org # Written by the Center for Software Science at the University of Utah # and by Cygnus Support. diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/hppa/reloc/reloc.exp binutils-2.13.90.0.10/gas/testsuite/gas/hppa/reloc/reloc.exp --- binutils-2.13.90.0.4/gas/testsuite/gas/hppa/reloc/reloc.exp Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/hppa/reloc/reloc.exp Fri Sep 27 08:33:09 2002 @@ -15,7 +15,7 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: -# DejaGnu@cygnus.com +# dejagnu@gnu.org # Written by the Center for Software Science at the University of Utah # and by Cygnus Support. diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/hppa/unsorted/unsorted.exp binutils-2.13.90.0.10/gas/testsuite/gas/hppa/unsorted/unsorted.exp --- binutils-2.13.90.0.4/gas/testsuite/gas/hppa/unsorted/unsorted.exp Fri Jun 7 19:22:17 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/hppa/unsorted/unsorted.exp Fri Sep 27 08:33:09 2002 @@ -15,7 +15,7 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: -# DejaGnu@cygnus.com +# dejagnu@gnu.org # Written by the Center for Software Science at the University of Utah # and by Cygnus Support. diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/i386/absrel.d binutils-2.13.90.0.10/gas/testsuite/gas/i386/absrel.d --- binutils-2.13.90.0.4/gas/testsuite/gas/i386/absrel.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/gas/testsuite/gas/i386/absrel.d Fri Sep 27 08:33:09 2002 @@ -0,0 +1,49 @@ +#objdump: -drw +#name: i386 abs reloc + +.*: +file format .*i386.* + +Disassembly of section \.text: + +0+000 : + 0: a1 34 12 00 00[ ]*mov 0x1234,%eax + +0+005 : + 5: a1 00 00 00 00[ ]*mov 0x0,%eax 6: (R_386_|dir)?32 ext + a: a1 00 00 00 00[ ]*mov 0x0,%eax b: (R_386_|dir)?32 weak + f: (a1 00 00 00 00[ ]*mov 0x0,%eax 10: (R_386_)?32 comm|a1 04 00 00 00[ ]*mov 0x4,%eax 10: dir32 comm.*) + 14: a1 00 00 00 00[ ]*mov 0x0,%eax 15: (R_386_|dir)?32 \.text + 19: (a1 00 00 00 00[ ]*mov 0x0,%eax 1a: R_386_32 glob|a1 05 00 00 00[ ]*mov 0x5,%eax 1a: (dir)?32 \.text) + 1e: a1 76 98 00 00[ ]*mov 0x9876,%eax + 23: a1 00 01 00 00[ ]*mov 0x100,%eax 24: (R_386_|dir)?32 \.text + 28: (a1 00 00 00 00[ ]*mov 0x0,%eax 29: R_386_32 glob2|a1 05 01 00 00[ ]*mov 0x105,%eax 29: (dir)?32 \.text) + 2d: (a1 00 00 00 00[ ]*mov 0x0,%eax 2e: (R_386_|dir)32 \.data|a1 00 01 00 00[ ]*mov 0x100,%eax 2e: 32 \.data.*) + 32: (a1 04 00 00 00[ ]*mov 0x4,%eax 33: (R_386_|dir)32 \.data|a1 04 01 00 00[ ]*mov 0x104,%eax 33: 32 \.data.*) + 37: a1 00 00 00 00[ ]*mov 0x0,%eax + 3c: a1 cc ed ff ff[ ]*mov 0xffffedcc,%eax 3d: (R_386_|dir)?32 ext + 41: a1 cc ed ff ff[ ]*mov 0xffffedcc,%eax 42: (R_386_|dir)?32 weak + 46: (a1 cc ed ff ff[ ]*mov 0xffffedcc,%eax 47: (R_386_)?32 comm|a1 d0 ed ff ff[ ]*mov 0xffffedd0,%eax 47: dir32 comm.*) + 4b: a1 cc ed ff ff[ ]*mov 0xffffedcc,%eax 4c: (R_386_|dir)?32 \.text + 50: (a1 cc ed ff ff[ ]*mov 0xffffedcc,%eax 51: R_386_32 glob|a1 d1 ed ff ff[ ]*mov 0xffffedd1,%eax 51: (dir)?32 \.text) + 55: a1 42 86 00 00[ ]*mov 0x8642,%eax + 5a: a1 cc ee ff ff[ ]*mov 0xffffeecc,%eax 5b: (R_386_|dir)?32 \.text + 5f: (a1 cc ed ff ff[ ]*mov 0xffffedcc,%eax 60: R_386_32 glob2|a1 d1 ee ff ff[ ]*mov 0xffffeed1,%eax 60: (dir)?32 \.text) + 64: (a1 cc ed ff ff[ ]*mov 0xffffedcc,%eax 65: (R_386_|dir)32 \.data|a1 cc ee ff ff[ ]*mov 0xffffeecc,%eax 65: 32 \.data.*) + 69: (a1 d0 ed ff ff[ ]*mov 0xffffedd0,%eax 6a: (R_386_|dir)32 \.data|a1 d0 ee ff ff[ ]*mov 0xffffeed0,%eax 6a: 32 \.data.*) + 6e: a1 be 79 ff ff[ ]*mov 0xffff79be,%eax + 73: a1 8a 67 ff ff[ ]*mov 0xffff678a,%eax 74: (R_386_|dir)?32 ext + 78: a1 8a 67 ff ff[ ]*mov 0xffff678a,%eax 79: (R_386_|dir)?32 weak + 7d: (a1 8a 67 ff ff[ ]*mov 0xffff678a,%eax 7e: (R_386_)?32 comm|a1 8e 67 ff ff[ ]*mov 0xffff678e,%eax 7e: dir32 comm.*) + 82: a1 8a 67 ff ff[ ]*mov 0xffff678a,%eax 83: (R_386_|dir)?32 \.text + 87: (a1 8a 67 ff ff[ ]*mov 0xffff678a,%eax 88: R_386_32 glob|a1 8f 67 ff ff[ ]*mov 0xffff678f,%eax 88: (dir)?32 \.text) + 8c: a1 00 00 00 00[ ]*mov 0x0,%eax + 91: a1 8a 68 ff ff[ ]*mov 0xffff688a,%eax 92: (R_386_|dir)?32 \.text + 96: (a1 8a 67 ff ff[ ]*mov 0xffff678a,%eax 97: R_386_32 glob2|a1 8f 68 ff ff[ ]*mov 0xffff688f,%eax 97: (dir)?32 \.text) + 9b: (a1 8a 67 ff ff[ ]*mov 0xffff678a,%eax 9c: (R_386_|dir)32 \.data|a1 8a 68 ff ff[ ]*mov 0xffff688a,%eax 9c: 32 \.data.*) + a0: (a1 8e 67 ff ff[ ]*mov 0xffff678e,%eax a1: (R_386_|dir)32 \.data|a1 8e 68 ff ff[ ]*mov 0xffff688e,%eax a1: 32 \.data.*) + a5: a1 00 01 00 00[ ]*mov 0x100,%eax + aa: (a1 ab 00 00 00[ ]*mov 0xab,%eax ab: R_386_PC32 glob|a1 05 00 00 00[ ]*mov 0x5,%eax) + af: (a1 b0 ff ff ff[ ]*mov 0xffffffb0,%eax b0: R_386_PC32 glob|a1 05 ff ff ff[ ]*mov 0xffffff05,%eax) + b4: (a1 b5 00 00 00[ ]*mov 0xb5,%eax b5: R_386_PC32 glob2|a1 05 01 00 00[ ]*mov 0x105,%eax) + b9: (a1 ba ff ff ff[ ]*mov 0xffffffba,%eax ba: R_386_PC32 glob2|a1 05 00 00 00[ ]*mov 0x5,%eax) + \.\.\. diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/i386/absrel.s binutils-2.13.90.0.10/gas/testsuite/gas/i386/absrel.s --- binutils-2.13.90.0.4/gas/testsuite/gas/i386/absrel.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/gas/testsuite/gas/i386/absrel.s Fri Sep 27 08:33:09 2002 @@ -0,0 +1,59 @@ +abs = 0x1234 + .extern ext + .weak weak + .comm comm,4 + .global glob + + .data +data: .long 0 + + .text +loc: + mov abs, %eax +glob: + mov ext, %eax + mov weak, %eax + mov comm, %eax + mov loc, %eax + mov glob, %eax + mov abs2, %eax + mov loc2, %eax + mov glob2,%eax + mov data, %eax + mov data2,%eax + mov abs - abs, %eax + mov ext - abs, %eax + mov weak - abs, %eax + mov comm - abs, %eax + mov loc - abs, %eax + mov glob - abs, %eax + mov abs2 - abs, %eax + mov loc2 - abs, %eax + mov glob2 - abs, %eax + mov data - abs, %eax + mov data2 - abs, %eax + mov abs - abs2,%eax + mov ext - abs2,%eax + mov weak - abs2,%eax + mov comm - abs2,%eax + mov loc - abs2,%eax + mov glob - abs2,%eax + mov abs2 - abs2,%eax + mov loc2 - abs2,%eax + mov glob2 - abs2,%eax + mov data - abs2,%eax + mov data2 - abs2,%eax + mov loc2 - loc, %eax + mov glob - loc, %eax + mov glob - loc2,%eax + mov glob2 - loc, %eax + mov glob2 - loc2,%eax + + .org 0x100 +loc2: + .global glob2 +glob2 = loc2 + 5 +abs2 = 0x9876 + + .data +data2: .long 0 diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/i386/i386.exp binutils-2.13.90.0.10/gas/testsuite/gas/i386/i386.exp --- binutils-2.13.90.0.4/gas/testsuite/gas/i386/i386.exp Thu Aug 8 22:49:56 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/i386/i386.exp Fri Sep 27 08:33:09 2002 @@ -53,6 +53,8 @@ if [expr ([istarget "i*86-*-*"] || [ist run_dump_test "jump" run_dump_test "ssemmx2" run_dump_test "sse2" + run_dump_test "absrel" + run_dump_test "pcrel" # PIC is only supported on ELF targets. if { ([istarget "*-*-elf*"] || [istarget "*-*-linux*"] ) diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/i386/pcrel.d binutils-2.13.90.0.10/gas/testsuite/gas/i386/pcrel.d --- binutils-2.13.90.0.4/gas/testsuite/gas/i386/pcrel.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/gas/testsuite/gas/i386/pcrel.d Fri Sep 27 08:33:09 2002 @@ -0,0 +1,49 @@ +#objdump: -drw +#name: i386 pcrel reloc + +.*: +file format .*i386.* + +Disassembly of section \.text: + +0+000 : + ( 0: e9 30 12 00 00[ ]*jmp 1235 .*1: R_386_PC32 \*ABS\*| 0: e9 2f 12 00 00[ ]*jmp 1234 .*1: DISP32 \*ABS\*) + +0+005 : + ( 5: e9 fc ff ff ff[ ]*jmp 6 .*6: R_386_PC32 ext| 5: e9 f6 ff ff ff[ ]*jmp 0 .*6: DISP32 ext) + ( a: e9 fc ff ff ff[ ]*jmp b .*b: R_386_PC32 weak| a: e9 f1 ff ff ff[ ]*jmp 0 .*b: DISP32 weak) + ( f: e9 fc ff ff ff[ ]*jmp 10 .*10: R_386_PC32 comm| f: e9 ec ff ff ff[ ]*jmp 0 .*10: DISP32 comm| f: e9 f0 ff ff ff jmp 4 .*10: DISP32 comm.*) + (14: eb ea [ ]*jmp 0 .*|14: eb ea[ ]*jmp 0 .*) + (16: e9 fc ff ff ff[ ]*jmp 17 .*17: R_386_PC32 glob|16: eb ed[ ]*jmp 5 .*) + (1b: e9 72 98 00 00[ ]*jmp 9892 .*1c: R_386_PC32 \*ABS\*|18: e9 59 98 00 00[ ]*jmp 9876 .*19: DISP32 \*ABS\*) + (20: e9 db 00 00 00[ ]*jmp 100 .*|1d: e9 de 00 00 00[ ]*jmp 100 .*) + (25: e9 fc ff ff ff[ ]*jmp 26 .*26: R_386_PC32 glob2|22: e9 de 00 00 00[ ]*jmp 105 .*) + (2a: e9 fc ff ff ff[ ]*jmp 2b .*2b: R_386_PC32 \.data|27: e9 d4 00 00 00[ ]*jmp 100 .*28: DISP32 \.data.*|27: e9 d4 ff ff ff jmp 0 .*28: DISP32 \.data) + (2f: e9 00 00 00 00[ ]*jmp 34 .*30: R_386_PC32 \.data|2c: e9 d3 00 00 00[ ]*jmp 104 .*2d: DISP32 \.data.*|2c: e9 d3 ff ff ff jmp 4 .*2d: DISP32 \.data) + (34: e9 fc ff ff ff[ ]*jmp 35 .*35: R_386_PC32 \*ABS\*|31: e9 ca ff ff ff[ ]*jmp 0 .*32: DISP32 \*ABS\*) + (39: e9 c8 ed ff ff[ ]*jmp ffffee06 .*3a: R_386_PC32 ext|36: e9 91 ed ff ff[ ]*jmp ffffedcc .*37: DISP32 ext) + (3e: e9 c8 ed ff ff[ ]*jmp ffffee0b .*3f: R_386_PC32 weak|3b: e9 8c ed ff ff[ ]*jmp ffffedcc .*3c: DISP32 weak) + (43: e9 c8 ed ff ff[ ]*jmp ffffee10 .*44: R_386_PC32 comm|40: e9 87 ed ff ff[ ]*jmp ffffedcc .*41: DISP32 comm|40: e9 8b ed ff ff jmp ffffedd0 .*41: DISP32 comm.*) + (48: e9 7f ed ff ff[ ]*jmp ffffedcc .*|45: e9 82 ed ff ff[ ]*jmp ffffedcc .*) + (4d: e9 c8 ed ff ff[ ]*jmp ffffee1a .*4e: R_386_PC32 glob|4a: e9 82 ed ff ff[ ]*jmp ffffedd1 .*) + (52: e9 3e 86 00 00[ ]*jmp 8695 .*53: R_386_PC32 \*ABS\*|4f: e9 ee 85 00 00[ ]*jmp 8642 .*50: DISP32 \*ABS\*) + (57: e9 70 ee ff ff[ ]*jmp ffffeecc .*|54: e9 73 ee ff ff[ ]*jmp ffffeecc .*) + (5c: e9 c8 ed ff ff[ ]*jmp ffffee29 .*5d: R_386_PC32 glob2|59: e9 73 ee ff ff[ ]*jmp ffffeed1 .*) + (61: e9 c8 ed ff ff[ ]*jmp ffffee2e .*62: R_386_PC32 \.data|5e: e9 69 ee ff ff[ ]*jmp ffffeecc .*5f: DISP32 \.data.*|5e: e9 69 ed ff ff jmp ffffedcc .*5f: DISP32 \.data) + (66: e9 cc ed ff ff[ ]*jmp ffffee37 .*67: R_386_PC32 \.data|63: e9 68 ee ff ff[ ]*jmp ffffeed0 .*64: DISP32 \.data.*|63: e9 68 ed ff ff jmp ffffedd0 .*64: DISP32 \.data) + (6b: e9 ba 79 ff ff[ ]*jmp ffff7a2a .*6c: R_386_PC32 \*ABS\*|68: e9 51 79 ff ff[ ]*jmp ffff79be .*69: DISP32 \*ABS\*) + (70: e9 86 67 ff ff[ ]*jmp ffff67fb .*71: R_386_PC32 ext|6d: e9 18 67 ff ff[ ]*jmp ffff678a .*6e: DISP32 ext) + (75: e9 86 67 ff ff[ ]*jmp ffff6800 .*76: R_386_PC32 weak|72: e9 13 67 ff ff[ ]*jmp ffff678a .*73: DISP32 weak) + (7a: e9 86 67 ff ff[ ]*jmp ffff6805 .*7b: R_386_PC32 comm|77: e9 0e 67 ff ff[ ]*jmp ffff678a .*78: DISP32 comm|77: e9 12 67 ff ff jmp ffff678e .*78: DISP32 comm.*) + (7f: e9 06 67 ff ff[ ]*jmp ffff678a .*|7c: e9 09 67 ff ff[ ]*jmp ffff678a .*) + (84: e9 06 67 ff ff[ ]*jmp ffff678f .*|81: e9 09 67 ff ff[ ]*jmp ffff678f .*) + (89: e9 fc ff ff ff[ ]*jmp 8a .*8a: R_386_PC32 \*ABS\*|86: e9 75 ff ff ff[ ]*jmp 0 .*87: DISP32 \*ABS\*) + (8e: e9 f7 67 ff ff[ ]*jmp ffff688a .*|8b: e9 fa 67 ff ff[ ]*jmp ffff688a .*) + (93: e9 f7 67 ff ff[ ]*jmp ffff688f .*|90: e9 fa 67 ff ff[ ]*jmp ffff688f .*) + (98: e9 86 67 ff ff[ ]*jmp ffff6823 .*99: R_386_PC32 \.data|95: e9 f0 67 ff ff[ ]*jmp ffff688a .*96: DISP32 \.data.*|95: e9 f0 66 ff ff jmp ffff678a .*96: DISP32 \.data) + (9d: e9 8a 67 ff ff[ ]*jmp ffff682c .*9e: R_386_PC32 \.data|9a: e9 ef 67 ff ff[ ]*jmp ffff688e .*9b: DISP32 \.data.*|9a: e9 ef 66 ff ff jmp ffff678e .*9b: DISP32 \.data) + (a2: e9 fc 00 00 00[ ]*jmp 1a3 .*a3: R_386_PC32 \*ABS\*|9f: e9 5c 00 00 00[ ]*jmp 100 .*a0: DISP32 \*ABS\*) + (a7: e9 01 00 00 00[ ]*jmp ad .*a8: R_386_PC32 \*ABS\*|a4: e9 5c ff ff ff[ ]*jmp 5 .*a5: DISP32 \*ABS\*) + (ac: e9 01 ff ff ff[ ]*jmp ffffffb2 .*ad: R_386_PC32 \*ABS\*|a9: e9 57 fe ff ff[ ]*jmp ffffff05 .*aa: DISP32 \*ABS\*) + (b1: e9 01 01 00 00[ ]*jmp 1b7 .*b2: R_386_PC32 \*ABS\*|ae: e9 52 00 00 00[ ]*jmp 105 .*af: DISP32 \*ABS\*) + (b6: e9 01 00 00 00[ ]*jmp bc .*b7: R_386_PC32 \*ABS\*|b3: e9 4d ff ff ff[ ]*jmp 5 .*b4: DISP32 \*ABS\*) + \.\.\. diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/i386/pcrel.s binutils-2.13.90.0.10/gas/testsuite/gas/i386/pcrel.s --- binutils-2.13.90.0.4/gas/testsuite/gas/i386/pcrel.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/gas/testsuite/gas/i386/pcrel.s Fri Sep 27 08:33:09 2002 @@ -0,0 +1,59 @@ +abs = 0x1234 + .extern ext + .weak weak + .comm comm,4 + .global glob + + .data +data: .long 0 + + .text +loc: + jmp abs +glob: + jmp ext + jmp weak + jmp comm + jmp loc + jmp glob + jmp abs2 + jmp loc2 + jmp glob2 + jmp data + jmp data2 + jmp abs - abs + jmp ext - abs + jmp weak - abs + jmp comm - abs + jmp loc - abs + jmp glob - abs + jmp abs2 - abs + jmp loc2 - abs + jmp glob2 - abs + jmp data - abs + jmp data2 - abs + jmp abs - abs2 + jmp ext - abs2 + jmp weak - abs2 + jmp comm - abs2 + jmp loc - abs2 + jmp glob - abs2 + jmp abs2 - abs2 + jmp loc2 - abs2 + jmp glob2 - abs2 + jmp data - abs2 + jmp data2 - abs2 + jmp loc2 - loc + jmp glob - loc + jmp glob - loc2 + jmp glob2 - loc + jmp glob2 - loc2 + + .org 0x100 +loc2: + .global glob2 +glob2 = loc2 + 5 +abs2 = 0x9876 + + .data +data2: .long 0 diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/i386/tlsnopic.d binutils-2.13.90.0.10/gas/testsuite/gas/i386/tlsnopic.d --- binutils-2.13.90.0.4/gas/testsuite/gas/i386/tlsnopic.d Thu May 23 15:10:11 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/i386/tlsnopic.d Fri Sep 27 08:33:09 2002 @@ -28,4 +28,10 @@ Disassembly of section .text: 40: 90 [ ]*nop 41: 8d 91 00 00 00 00 lea 0x0\(%ecx\),%edx [ ]+43: R_386_TLS_LE var2 - 47: c3 [ ]*ret[ ]* + 47: a1 00 00 00 00 [ ]*mov 0x0,%eax +[ ]+48: R_386_TLS_IE foo + 4c: 65 8b 00 [ ]*mov %gs:\(%eax\),%eax + 4f: 65 a1 00 00 00 00 [ ]*mov %gs:0x0,%eax + 55: 03 05 00 00 00 00 [ ]*add 0x0,%eax + 57: R_386_TLS_IE foo + 5b: c3 [ ]*ret[ ]* diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/i386/tlsnopic.s binutils-2.13.90.0.10/gas/testsuite/gas/i386/tlsnopic.s --- binutils-2.13.90.0.4/gas/testsuite/gas/i386/tlsnopic.s Thu May 23 15:10:11 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/i386/tlsnopic.s Fri Sep 27 08:33:09 2002 @@ -11,35 +11,44 @@ var2: .long 33 .globl fn .type fn,@function fn: - /* Main binary, no PIC */ + /* Main binary, no PIC. */ 1: movl 1b, %edx addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx - /* foo can be anywhere in startup TLS */ + /* foo can be anywhere in startup TLS. */ movl %gs:0, %eax subl foo@GOTTPOFF(%edx), %eax - /* %eax now contains &foo */ + /* %eax now contains &foo. */ - /* bar only in the main program */ + /* bar only in the main program. */ movl %gs:0, %eax subl $bar@TPOFF, %eax - /* %eax now contains &bar */ + /* %eax now contains &bar. */ - /* baz only in the main program */ + /* baz only in the main program. */ movl %gs:0, %ecx - /* Arbitrary instructions in between */ + /* Arbitrary instructions in between. */ nop subl $baz@TPOFF, %ecx - /* %ecx now contains &baz */ + /* %ecx now contains &baz. */ - /* var and var2 only in the main program */ + /* var and var2 only in the main program. */ movl %gs:0, %ecx - /* Arbitrary instructions in between */ + /* Arbitrary instructions in between. */ nop nop leal var@NTPOFF(%ecx), %eax - /* Arbitrary instructions in between */ + /* Arbitrary instructions in between. */ nop leal var2@NTPOFF(%ecx), %edx + /* foo can be anywhere in startup TLS. */ + movl foo@INDNTPOFF, %eax + movl %gs:(%eax), %eax + /* %eax now contains foo. */ + + movl %gs:0, %eax + addl foo@INDNTPOFF, %eax + /* %eax now contains &foo. */ + ret diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/i386/tlspic.d binutils-2.13.90.0.10/gas/testsuite/gas/i386/tlspic.d --- binutils-2.13.90.0.4/gas/testsuite/gas/i386/tlspic.d Thu May 23 15:10:11 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/i386/tlspic.d Fri Sep 27 08:33:09 2002 @@ -18,6 +18,13 @@ Disassembly of section .text: 17: 8d 76 00 [ ]*lea 0x0\(%esi\),%esi 1a: 2b 83 00 00 00 00 [ ]*sub 0x0\(%ebx\),%eax [ ]+1c: R_386_TLS_IE_32 foo - 20: 8b 5d fc [ ]*mov 0xfffffffc\(%ebp\),%ebx - 23: c9 [ ]*leave[ ]* - 24: c3 [ ]*ret[ ]* + 20: 8b 83 00 00 00 00 [ ]*mov 0x0\(%ebx\),%eax +[ ]+22: R_386_TLS_GOTIE foo + 26: 8d 76 00 [ ]*lea 0x0\(%esi\),%esi + 29: 65 8b 00 [ ]*mov %gs:\(%eax\),%eax + 2c: 65 8b 0d 00 00 00 00 [ ]*mov %gs:0x0,%ecx + 33: 03 8b 00 00 00 00 [ ]*add 0x0\(%ebx\),%ecx +[ ]+35: R_386_TLS_GOTIE foo + 39: 8b 5d fc [ ]*mov 0xfffffffc\(%ebp\),%ebx + 3c: c9 [ ]*leave[ ]* + 3d: c3 [ ]*ret[ ]* diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/i386/tlspic.s binutils-2.13.90.0.10/gas/testsuite/gas/i386/tlspic.s --- binutils-2.13.90.0.4/gas/testsuite/gas/i386/tlspic.s Thu May 23 15:10:11 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/i386/tlspic.s Fri Sep 27 08:33:09 2002 @@ -16,12 +16,24 @@ fn: /* foo can be anywhere in the startup TLS */ movl %gs:0, %eax - /* Arbitrary instructions in between */ + /* Arbitrary instructions in between. */ leal 0(%esi, 1), %esi subl foo@GOTTPOFF(%ebx), %eax /* %eax now contains &foo */ + /* Now the GNU sequence. */ + movl foo@GOTNTPOFF(%ebx), %eax + + /* Arbitrary instructions in between. */ + leal 0(%esi, 1), %esi + + movl %gs:(%eax), %eax + /* %eax now contains foo */ + + movl %gs:0, %ecx + addl foo@GOTNTPOFF(%ebx), %ecx + movl -4(%ebp), %ebx leave ret diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/ieee-fp/x930509a.exp binutils-2.13.90.0.10/gas/testsuite/gas/ieee-fp/x930509a.exp --- binutils-2.13.90.0.4/gas/testsuite/gas/ieee-fp/x930509a.exp Tue Jan 23 11:00:20 2001 +++ binutils-2.13.90.0.10/gas/testsuite/gas/ieee-fp/x930509a.exp Fri Sep 27 08:33:09 2002 @@ -16,13 +16,12 @@ proc dotest {} { } } gas_finish - if !$x then { fail "$testname (listing didn't match)" } -} -# C54x alignment/addressing is different, so the listing looks different -# float encoding is tested in c54x-specific tests. -# No floating point support in assembly code for CRIS. -if { ![istarget vax*-*-*] && ![istarget *c54x*-*-*] - && ![istarget cris-*-*] && ![istarget arc*-*-*] } then { - dotest + # C54x alignment/addressing is different, so the listing looks different + # float encoding is tested in c54x-specific tests. + # No floating point support in assembly code for CRIS. + setup_xfail "arc*-*-*" "cris-*-*" "*c30*-*-*" "*c54x*-*-*" "*c80*-*-*" + setup_xfail "vax*-*-*" + + if !$x then { fail "$testname (listing didn't match)" } } diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/m68hc11/insns.d binutils-2.13.90.0.10/gas/testsuite/gas/m68hc11/insns.d --- binutils-2.13.90.0.4/gas/testsuite/gas/m68hc11/insns.d Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/m68hc11/insns.d Fri Sep 27 08:33:09 2002 @@ -59,7 +59,7 @@ Disassembly of section .text: [ ]+54: R_M68HC11_RL_JUMP \*ABS\* [ ]+55: R_M68HC11_16 Stop 0+0057 anda #23 -[ ]+58: R_M68HC11_LO8 .text +[ ]+58: R_M68HC11_LO8 \.text 0+0059 andb #0 -[ ]+5a: R_M68HC11_HI8 .text +[ ]+5a: R_M68HC11_HI8 \.text 0+005b rts diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/m68hc11/malis.d binutils-2.13.90.0.10/gas/testsuite/gas/m68hc11/malis.d --- binutils-2.13.90.0.4/gas/testsuite/gas/m68hc11/malis.d Tue Feb 6 09:20:32 2001 +++ binutils-2.13.90.0.10/gas/testsuite/gas/m68hc11/malis.d Fri Sep 27 08:33:09 2002 @@ -1,5 +1,5 @@ #objdump: -d --prefix-addresses -#as: -m68hc11 --mri -I../testsuite/gas/m68hc11/ +#as: -m68hc11 --mri -I$srcdir/$subdir #name: Motorola Assembly Language Input Standard # Test compliance with MALIS diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/m68hc11/opers12.d binutils-2.13.90.0.10/gas/testsuite/gas/m68hc11/opers12.d --- binutils-2.13.90.0.4/gas/testsuite/gas/m68hc11/opers12.d Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/m68hc11/opers12.d Fri Sep 27 08:33:09 2002 @@ -27,7 +27,7 @@ Disassembly of section .text: 0+0035 ldab \[32767,SP\] 0+0039 ldd \[32768,PC\] 0+003d ldd 9,PC -[ ]+3f: R_M68HC12_8 .text +[ ]+3f: R_M68HC12_8 \.text 0+0040 std A,X 0+0042 ldx B,X 0+0044 stx D,Y diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/m68k/all.exp binutils-2.13.90.0.10/gas/testsuite/gas/m68k/all.exp --- binutils-2.13.90.0.4/gas/testsuite/gas/m68k/all.exp Tue Jun 20 10:25:35 2000 +++ binutils-2.13.90.0.10/gas/testsuite/gas/m68k/all.exp Fri Sep 27 08:33:09 2002 @@ -25,6 +25,9 @@ if [istarget m68*-*-*] then { gas_test_error "p2410.s" "" "out-of-range 'bras'" + # Reloc types etc. need changing for aout and coff to pass. + setup_xfail "*-*" + clear_xfail "*-*-*elf*" "*-*-sysv4*" "*-*-rtems" "*-*-*gnu*" "*-*-psos*" run_dump_test pcrel run_dump_test operands run_dump_test cas diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/macros/macros.exp binutils-2.13.90.0.10/gas/testsuite/gas/macros/macros.exp --- binutils-2.13.90.0.4/gas/testsuite/gas/macros/macros.exp Fri Nov 16 14:05:52 2001 +++ binutils-2.13.90.0.10/gas/testsuite/gas/macros/macros.exp Fri Sep 27 08:33:09 2002 @@ -28,12 +28,14 @@ case $target_triplet in { if { ![istarget hppa*-*-*] || [istarget *-*-linux*]} { # FIXME: Due to macro mishandling of ONLY_STANDARD_ESCAPES. - setup_xfail cris-*-* - setup_xfail powerpc-*-aix* - setup_xfail sh*-*-* - setup_xfail z8k*-*-* - setup_xfail h8300*-*-* + setup_xfail "avr-*" "cris-*" + + # These fail due to NO_STRING_ESCAPES + setup_xfail "powerpc*-*-aix*" "powerpc*-*-beos*" "powerpc*-*-macos*" + setup_xfail "powerpc*-*-mpw*" "powerpc*-*-pe" "powerpc*-*-*win*" + setup_xfail "rs6000-*-*" + # FIXME: Due to difference in what "consecutive octets" means. - setup_xfail *c54x*-*-* + setup_xfail "*c54x*-*" run_dump_test strings } diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/mcore/allinsn.d binutils-2.13.90.0.10/gas/testsuite/gas/mcore/allinsn.d --- binutils-2.13.90.0.4/gas/testsuite/gas/mcore/allinsn.d Thu Jun 3 11:02:03 1999 +++ binutils-2.13.90.0.10/gas/testsuite/gas/mcore/allinsn.d Fri Sep 27 08:33:09 2002 @@ -1,10 +1,10 @@ #as: -#objdump: -dr +#objdump: -drz #name: allinsn .*: +file format .* -Disassembly of section .text: +Disassembly of section \.text: 0+000 : 0: 01e0 abs r0 @@ -55,7 +55,7 @@ Disassembly of section .text: 1e: 1321 bgenr r1, r2 0+020 : - ... + 20: 0000 bkpt 0+022 : 22: 2c83 bmaski r3, 8 @@ -154,7 +154,7 @@ Disassembly of section .text: 60: f00e br 0x7e 0+062 : - 62: 7f0a jsri 0x.* + 62: 7f0a jsri 0x0 // from address pool at 0x8c 0+064 : 64: e00c bt 0x7e @@ -163,21 +163,21 @@ Disassembly of section .text: 66: 00c1 jmp r1 0+068 : - 68: 7009 jmpi 0x.* + 68: 7009 jmpi 0x0 // from address pool at 0x8c 0+06a : 6a: 00d2 jsr r2 0+06c : - 6c: 7f08 jsri 0x.* + 6c: 7f08 jsri 0x0 // from address pool at 0x8c -0+06e : +0+06e : 6e: a304 ldb r3, \(r4, 0\) -0+070 : +0+070 : 70: c516 ldh r5, \(r6, 2\) -0+072 : +0+072 : 72: 8718 ld r7, \(r8, 4\) 0+074 : @@ -202,7 +202,7 @@ Disassembly of section .text: 80: 048e loopt r8, 0x64 0+082 : - 82: 7903 lrw r9, 0x.* + 82: 7903 lrw r9, (0x86|0x0 // from address pool at 0x90) 0+084 : 84: 7904 lrw r9, 0x4321 @@ -215,12 +215,14 @@ Disassembly of section .text: 0+08a : 8a: 3c0c lslc r12 - - ... - 8c: ADDR32 .text - 90: ADDR32 .text.* - 94: 0000 bkpt - 96: 4321 .short 0x4321 + 8c: 0000 bkpt + 8c: ADDR32 \.text + 8e: 0000 bkpt + 90: (0000 bkpt|0086 dect r6) + 90: ADDR32 \.text(\+0x86)? + 92: 0000 bkpt + 94: 4321 \.short 0x4321 + 96: 0000 bkpt 0+098 : 98: 3dfd lsli r13, 31 @@ -312,13 +314,13 @@ Disassembly of section .text: 0+0d2 : d2: 0177 sexth r7 -0+0d4 : +0+0d4 : d4: b809 stb r8, \(r9, 0\) -0+0d6 : +0+0d6 : d6: da1b sth r10, \(r11, 2\) -0+0d8 : +0+0d8 : d8: 9c1d st r12, \(r13, 4\) 0+0da : diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/mips/baddata1.l binutils-2.13.90.0.10/gas/testsuite/gas/mips/baddata1.l --- binutils-2.13.90.0.4/gas/testsuite/gas/mips/baddata1.l Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/gas/testsuite/gas/mips/baddata1.l Fri Sep 27 08:33:09 2002 @@ -0,0 +1,3 @@ +.*: Assembler messages: +.*:8: Error: Can not represent BFD_RELOC_8 relocation in this object file format +.*:9: Error: Can not represent BFD_RELOC_8 relocation in this object file format diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/mips/baddata1.s binutils-2.13.90.0.10/gas/testsuite/gas/mips/baddata1.s --- binutils-2.13.90.0.4/gas/testsuite/gas/mips/baddata1.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/gas/testsuite/gas/mips/baddata1.s Fri Sep 27 08:33:09 2002 @@ -0,0 +1,9 @@ +# Source file used to some bad data declarations. + + .globl x + + .data +foo: + # no way these are going to hold the pointers. + .byte x + .byte x+1 diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/mips/beq.s binutils-2.13.90.0.10/gas/testsuite/gas/mips/beq.s --- binutils-2.13.90.0.4/gas/testsuite/gas/mips/beq.s Fri Nov 16 14:05:52 2001 +++ binutils-2.13.90.0.10/gas/testsuite/gas/mips/beq.s Fri Sep 27 08:33:09 2002 @@ -1,5 +1,5 @@ # Source file used to test the beq macro. - .globl text_label .text + .text text_label: beq $4,$5,text_label beq $4,0,text_label diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/mips/branch-misc-1.d binutils-2.13.90.0.10/gas/testsuite/gas/mips/branch-misc-1.d --- binutils-2.13.90.0.4/gas/testsuite/gas/mips/branch-misc-1.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/gas/testsuite/gas/mips/branch-misc-1.d Fri Sep 27 08:33:09 2002 @@ -0,0 +1,27 @@ +#objdump: -dr --prefix-addresses --show-raw-insn +#name: MIPS branch-misc-1 + +# Test the branches to local symbols in current file. + +.*: +file format .*mips.* + +Disassembly of section .text: + \.\.\. + \.\.\. + \.\.\. +0+003c <[^>]*> 0411fff0 bal 00000000 +0+0040 <[^>]*> 00000000 nop +0+0044 <[^>]*> 0411fff3 bal 00000014 +0+0048 <[^>]*> 00000000 nop +0+004c <[^>]*> 0411fff6 bal 00000028 +0+0050 <[^>]*> 00000000 nop +0+0054 <[^>]*> 0411000a bal 00000080 +0+0058 <[^>]*> 00000000 nop +0+005c <[^>]*> 0411000d bal 00000094 +0+0060 <[^>]*> 00000000 nop +0+0064 <[^>]*> 04110010 bal 000000a8 +0+0068 <[^>]*> 00000000 nop + \.\.\. + \.\.\. + \.\.\. + \.\.\. diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/mips/branch-misc-1.s binutils-2.13.90.0.10/gas/testsuite/gas/mips/branch-misc-1.s --- binutils-2.13.90.0.4/gas/testsuite/gas/mips/branch-misc-1.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/gas/testsuite/gas/mips/branch-misc-1.s Fri Sep 27 08:33:09 2002 @@ -0,0 +1,27 @@ +# Source file used to test the branches to locals in this file. + + .text +l1: + .space 20 +l2: + .space 20 +l3: + .space 20 + +x: + bal l1 + bal l2 + bal l3 + bal l4 + bal l5 + bal l6 + + .space 20 +l4: + .space 20 +l5: + .space 20 +l6: + +# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ... + .space 8 diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/mips/branch-misc-2.d binutils-2.13.90.0.10/gas/testsuite/gas/mips/branch-misc-2.d --- binutils-2.13.90.0.4/gas/testsuite/gas/mips/branch-misc-2.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/gas/testsuite/gas/mips/branch-misc-2.d Wed Oct 2 10:17:19 2002 @@ -0,0 +1,33 @@ +#objdump: -dr --prefix-addresses --show-raw-insn +#name: MIPS branch-misc-2 + +# Test the branches to global symbols in current file. + +.*: +file format .*mips.* + +Disassembly of section .text: + \.\.\. + \.\.\. + \.\.\. +0+003c <[^>]*> 0411fffc bal 00000030 +[ ]*3c: R_MIPS_PC16 g1 +0+0040 <[^>]*> 00000000 nop +0+0044 <[^>]*> 0411fffc bal 00000038 +[ ]*44: R_MIPS_PC16 g2 +0+0048 <[^>]*> 00000000 nop +0+004c <[^>]*> 0411fffc bal 00000040 +[ ]*4c: R_MIPS_PC16 g3 +0+0050 <[^>]*> 00000000 nop +0+0054 <[^>]*> 0411fffc bal 00000048 +[ ]*54: R_MIPS_PC16 g4 +0+0058 <[^>]*> 00000000 nop +0+005c <[^>]*> 0411fffc bal 00000050 +[ ]*5c: R_MIPS_PC16 g5 +0+0060 <[^>]*> 00000000 nop +0+0064 <[^>]*> 0411fffc bal 00000058 +[ ]*64: R_MIPS_PC16 g6 +0+0068 <[^>]*> 00000000 nop + \.\.\. + \.\.\. + \.\.\. + \.\.\. diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/mips/branch-misc-2.s binutils-2.13.90.0.10/gas/testsuite/gas/mips/branch-misc-2.s --- binutils-2.13.90.0.4/gas/testsuite/gas/mips/branch-misc-2.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/gas/testsuite/gas/mips/branch-misc-2.s Fri Sep 27 08:33:09 2002 @@ -0,0 +1,34 @@ +# Source file used to test the backward branches to globals in this file. + + .globl g1 .text + .globl g2 .text + .globl g3 .text + .globl g4 .text + .globl g5 .text + .globl g6 .text + + .text +g1: + .space 20 +g2: + .space 20 +g3: + .space 20 + +x: + bal g1 + bal g2 + bal g3 + bal g4 + bal g5 + bal g6 + + .space 20 +g4: + .space 20 +g5: + .space 20 +g6: + +# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ... + .space 8 diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/mips/jal-range.l binutils-2.13.90.0.10/gas/testsuite/gas/mips/jal-range.l --- binutils-2.13.90.0.4/gas/testsuite/gas/mips/jal-range.l Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/gas/testsuite/gas/mips/jal-range.l Fri Sep 27 08:33:09 2002 @@ -0,0 +1,4 @@ +.*: Assembler messages: +.*:4: Error: jump to misaligned address \(0x1\) +.*:6: Error: jump to misaligned address \(0xfffffff\) +.*:7: Error: jump address range overflow \(0x10000000\) diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/mips/jal-range.s binutils-2.13.90.0.10/gas/testsuite/gas/mips/jal-range.s --- binutils-2.13.90.0.4/gas/testsuite/gas/mips/jal-range.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/gas/testsuite/gas/mips/jal-range.s Fri Sep 27 08:33:09 2002 @@ -0,0 +1,7 @@ +# Source file use to test border cases of jumps + + jal 0x0 + jal 0x1 + jal 0xffffffc + jal 0xfffffff + jal 0x10000000 diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/mips/mips-abi32-pic2.d binutils-2.13.90.0.10/gas/testsuite/gas/mips/mips-abi32-pic2.d --- binutils-2.13.90.0.4/gas/testsuite/gas/mips/mips-abi32-pic2.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/gas/testsuite/gas/mips/mips-abi32-pic2.d Fri Sep 27 08:33:09 2002 @@ -0,0 +1,74 @@ +#objdump: -d -mmips:8000 -r --prefix-addresses --show-raw-insn +#as: -march=8000 -EB -mabi=32 -KPIC +#name: MIPS -mabi=32 test 2 (SVR4 PIC) + +.*: +file format.* + +Disassembly of section \.text: +0+000 <[^>]*> 3c1c0000 lui gp,0x0 + 0: R_MIPS_HI16 _gp_disp +0+004 <[^>]*> 279c0000 addiu gp,gp,0 + 4: R_MIPS_LO16 _gp_disp +0+008 <[^>]*> 0399e021 addu gp,gp,t9 +0+00c <[^>]*> afbc0008 sw gp,8\(sp\) +0+010 <[^>]*> 8f990000 lw t9,0\(gp\) + 10: R_MIPS_GOT16 \.text +0+014 <[^>]*> 00000000 nop +0+018 <[^>]*> 273900d8 addiu t9,t9,216 + 18: R_MIPS_LO16 \.text +0+01c <[^>]*> 0320f809 jalr t9 +0+020 <[^>]*> 00000000 nop +0+024 <[^>]*> 8fbc0008 lw gp,8\(sp\) +0+028 <[^>]*> 00000000 nop +0+02c <[^>]*> 0320f809 jalr t9 +0+030 <[^>]*> 00000000 nop +0+034 <[^>]*> 8fbc0008 lw gp,8\(sp\) +0+038 <[^>]*> 3c1c0000 lui gp,0x0 + 38: R_MIPS_HI16 _gp_disp +0+03c <[^>]*> 279c0000 addiu gp,gp,0 + 3c: R_MIPS_LO16 _gp_disp +0+040 <[^>]*> 0399e021 addu gp,gp,t9 +0+044 <[^>]*> 3c010001 lui at,0x1 +0+048 <[^>]*> 003d0821 addu at,at,sp +0+04c <[^>]*> ac3c8000 sw gp,-32768\(at\) +0+050 <[^>]*> 8f990000 lw t9,0\(gp\) + 50: R_MIPS_GOT16 \.text +0+054 <[^>]*> 00000000 nop +0+058 <[^>]*> 273900d8 addiu t9,t9,216 + 58: R_MIPS_LO16 \.text +0+05c <[^>]*> 0320f809 jalr t9 +0+060 <[^>]*> 00000000 nop +0+064 <[^>]*> 3c010001 lui at,0x1 +0+068 <[^>]*> 003d0821 addu at,at,sp +0+06c <[^>]*> 8c3c8000 lw gp,-32768\(at\) +0+070 <[^>]*> 00000000 nop +0+074 <[^>]*> 0320f809 jalr t9 +0+078 <[^>]*> 00000000 nop +0+07c <[^>]*> 3c010001 lui at,0x1 +0+080 <[^>]*> 003d0821 addu at,at,sp +0+084 <[^>]*> 8c3c8000 lw gp,-32768\(at\) +0+088 <[^>]*> 3c1c0000 lui gp,0x0 + 88: R_MIPS_HI16 _gp_disp +0+08c <[^>]*> 279c0000 addiu gp,gp,0 + 8c: R_MIPS_LO16 _gp_disp +0+090 <[^>]*> 0399e021 addu gp,gp,t9 +0+094 <[^>]*> 3c010001 lui at,0x1 +0+098 <[^>]*> 003d0821 addu at,at,sp +0+09c <[^>]*> ac3c0000 sw gp,0\(at\) +0+0a0 <[^>]*> 8f990000 lw t9,0\(gp\) + a0: R_MIPS_GOT16 \.text +0+0a4 <[^>]*> 00000000 nop +0+0a8 <[^>]*> 273900d8 addiu t9,t9,216 + a8: R_MIPS_LO16 \.text +0+0ac <[^>]*> 0320f809 jalr t9 +0+0b0 <[^>]*> 00000000 nop +0+0b4 <[^>]*> 3c010001 lui at,0x1 +0+0b8 <[^>]*> 003d0821 addu at,at,sp +0+0bc <[^>]*> 8c3c0000 lw gp,0\(at\) +0+0c0 <[^>]*> 00000000 nop +0+0c4 <[^>]*> 0320f809 jalr t9 +0+0c8 <[^>]*> 00000000 nop +0+0cc <[^>]*> 3c010001 lui at,0x1 +0+0d0 <[^>]*> 003d0821 addu at,at,sp +0+0d4 <[^>]*> 8c3c0000 lw gp,0\(at\) + \.\.\. diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/mips/mips-abi32-pic2.s binutils-2.13.90.0.10/gas/testsuite/gas/mips/mips-abi32-pic2.s --- binutils-2.13.90.0.4/gas/testsuite/gas/mips/mips-abi32-pic2.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/gas/testsuite/gas/mips/mips-abi32-pic2.s Fri Sep 27 08:33:09 2002 @@ -0,0 +1,107 @@ + + .text + .ent func1 +func1: + .frame $sp,0,$31 + .set noreorder + .cpload $25 # 0000 lui gp,hi(_gp_disp) + # 0004 addiu gp,gp,lo(_gp_disp) + # 0008 addu gp,gp,t9 + .set reorder + .cprestore 8 # 000c sw gp,8(sp) + + jal end # 0010 lw t9,got(.text)(gp) + # 0014 nop + # 0018 addiu t9,t9,lo(end) + # 001c jalr t9 + # 0020 nop + # 0024 lw gp,8(sp) + + # Avoid confusion: avoid the 'lw' above being put into the delay + # slot for the jalr below! + .set noreorder + nop # 0028 nop + .set reorder + + jal $25 # 002c jalr t9 + # 0030 nop + # 0034 lw gp,8(sp) + .end func1 + + + .text + .ent func2 +func2: + .frame $sp,0,$31 + .set noreorder + .cpload $25 # 0038 lui gp,hi(_gp_disp) + # 003c addiu gp,gp,lo(_gp_disp) + # 0040 addu gp,gp,t9 + .set reorder + .cprestore 32768 # 0044 lui at,0x1 + # 0048 addu at,at,sp + # 004c sw gp,-32768(at) + + jal end # 0050 lw t9,got(.text)(gp) + # 0054 nop + # 0058 addiu t9,t9,lo(end) + # 005c jalr t9 + # 0060 nop + # 0064 lui at,0x1 + # 0068 addu at,at,sp + # 006c lw gp,-32768(at) + + # Avoid confusion: avoid the 'lw' above being put into the delay + # slot for the jalr below! + .set noreorder + nop # 0070 nop + .set reorder + + jal $25 # 0074 jalr t9 + # 0078 nop + # 007c lui at,0x1 + # 0080 addu at,at,sp + # 0084 lw gp,-32768(at) + .end func2 + + + .text + .ent func3 +func3: + .frame $sp,0,$31 + .set noreorder + .cpload $25 # 0088 lui gp,hi(_gp_disp) + # 008c addiu gp,gp,lo(_gp_disp) + # 0090 addu gp,gp,t9 + .set reorder + .cprestore 65536 # 0094 lui at,0x1 + # 0098 addu at,at,sp + # 009c sw gp,0(at) + + jal end # 00a0 lw t9,got(.text)(gp) + # 00a4 nop + # 00a8 addiu t9,t9,lo(end) + # 00ac jalr t9 + # 00b0 nop + # 00b4 lui at,0x1 + # 00b8 addu at,at,sp + # 00bc lw gp,0(at) + + # Avoid confusion: avoid the 'lw' above being put into the delay + # slot for the jalr below! + .set noreorder + nop # 00c0 nop + .set reorder + + jal $25 # 00c4 jalr t9 + # 00c8 nop + # 00cc lui at,0x1 + # 00d0 addu at,at,sp + # 00d4 lw gp,0(at) + + .end func3 + +end: + +# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ... + .space 8 diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/mips/mips-jalx.d binutils-2.13.90.0.10/gas/testsuite/gas/mips/mips-jalx.d --- binutils-2.13.90.0.4/gas/testsuite/gas/mips/mips-jalx.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/gas/testsuite/gas/mips/mips-jalx.d Fri Sep 27 08:33:09 2002 @@ -0,0 +1,11 @@ +#objdump: -dr -z -mmips:4000 +#as: -mips3 -mtune=r4000 -mips16 +#name: mips jalx +.*: file format .* +Disassembly of section .text: +00000000 <.text>: + 0: 74000000 jalx 0x0 + 0: R_MIPS_26 external_label + 4: 00000000 nop + 8: 00000000 nop + c: 00000000 nop diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/mips/mips-jalx.s binutils-2.13.90.0.10/gas/testsuite/gas/mips/mips-jalx.s --- binutils-2.13.90.0.4/gas/testsuite/gas/mips/mips-jalx.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/gas/testsuite/gas/mips/mips-jalx.s Fri Sep 27 08:33:09 2002 @@ -0,0 +1,6 @@ +# Test the generation of jalx opcodes + .set nomips16 + jalx external_label + +# align section end to 16-byte boundary for easier testing on multiple targets + .p2align 4 diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/mips/mips-no-jalx.l binutils-2.13.90.0.10/gas/testsuite/gas/mips/mips-no-jalx.l --- binutils-2.13.90.0.4/gas/testsuite/gas/mips/mips-no-jalx.l Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/gas/testsuite/gas/mips/mips-no-jalx.l Mon Oct 7 23:08:00 2002 @@ -0,0 +1,2 @@ +.*: Assembler messages: +.*:3: Error: opcode not supported (at this ISA level|on this processor: .*) \(mips.*\) `jalx external_label' diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/mips/mips-no-jalx.s binutils-2.13.90.0.10/gas/testsuite/gas/mips/mips-no-jalx.s --- binutils-2.13.90.0.4/gas/testsuite/gas/mips/mips-no-jalx.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/gas/testsuite/gas/mips/mips-no-jalx.s Fri Sep 27 08:33:09 2002 @@ -0,0 +1,3 @@ +# Test the generation of jalx opcodes + .set nomips16 + jalx external_label diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/mips/mips.exp binutils-2.13.90.0.10/gas/testsuite/gas/mips/mips.exp --- binutils-2.13.90.0.4/gas/testsuite/gas/mips/mips.exp Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/mips/mips.exp Wed Oct 2 10:17:19 2002 @@ -56,6 +56,8 @@ if { [istarget mips*-*-*] } then { run_dump_test "bgeu" run_dump_test "blt" run_dump_test "bltu" + run_dump_test "branch-misc-1" + run_dump_test "branch-misc-2" if $ilocks { run_dump_test "div-ilocks" @@ -77,6 +79,7 @@ if { [istarget mips*-*-*] } then { if $elf { run_dump_test "jal-empic-elf" } if $elf { run_dump_test "jal-empic-elf-2" } if $elf { run_dump_test "jal-empic-elf-3" } + run_list_test "jal-range" "" if !$aout { run_dump_test "la" } if $elf { run_dump_test "la-svr4pic" } if $elf { run_dump_test "la-xgot" } @@ -138,12 +141,23 @@ if { [istarget mips*-*-*] } then { } # The mips16 test can only be run on ELF, because only ELF # supports the necessary mips16 reloc. - if { $elf && !$no_mips16 } { run_dump_test "mips16" } + if { $elf && !$no_mips16 } { + run_dump_test "mips16" + # Check jalx handling + run_dump_test "mips16-jalx" + run_dump_test "mips-jalx" + } + run_list_test "mips-no-jalx" "" run_dump_test "delay" run_dump_test "nodelay" run_dump_test "mips4010" run_dump_test "mips4650" run_dump_test "mips4100" + run_dump_test "vr4111" + run_dump_test "vr4120" + run_dump_test "vr4122" + run_dump_test "vr5400" + run_dump_test "vr5500" run_dump_test "perfcount" run_dump_test "lineno" run_dump_test "sync" @@ -159,6 +173,7 @@ if { [istarget mips*-*-*] } then { run_dump_test "relax" run_list_test "illegal" "" + run_list_test "baddata1" "" # LOSE: As of 2002-02-08, the next 4 tests fail for target mips-ecoff. # It's unknown whether they _should_ pass as-is, or whether different @@ -190,6 +205,7 @@ if { [istarget mips*-*-*] } then { run_dump_test "mips-abi32" run_dump_test "mips-abi32-pic" + run_dump_test "mips-abi32-pic2" run_dump_test "elf${el}-rel" if {[istarget mips64*-*-*] || [istarget mipsisa32*-*-*] diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/mips/mips16-jalx.d binutils-2.13.90.0.10/gas/testsuite/gas/mips/mips16-jalx.d --- binutils-2.13.90.0.4/gas/testsuite/gas/mips/mips16-jalx.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/gas/testsuite/gas/mips/mips16-jalx.d Fri Sep 27 08:33:09 2002 @@ -0,0 +1,14 @@ +#objdump: -dr -mmips:4000 -mmips:16 +#as: -mips3 -mtune=r4000 -mips16 +#name: mips16 jalx +.*: file format .* +Disassembly of section .text: +00000000 <.text>: + 0: 1c00 0000 jalx 0x0 + 0: R_MIPS16_26 external_label + 4: 6500 nop + 6: 6500 nop + 8: 6500 nop + a: 6500 nop + c: 6500 nop + e: 6500 nop diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/mips/mips16-jalx.s binutils-2.13.90.0.10/gas/testsuite/gas/mips/mips16-jalx.s --- binutils-2.13.90.0.4/gas/testsuite/gas/mips/mips16-jalx.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/gas/testsuite/gas/mips/mips16-jalx.s Fri Sep 27 08:33:09 2002 @@ -0,0 +1,5 @@ +# Test the generation of jalx opcodes + jalx external_label + +# align section end to 16-byte boundary for easier testing on multiple targets + .p2align 4 diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/mips/mips32.s binutils-2.13.90.0.10/gas/testsuite/gas/mips/mips32.s --- binutils-2.13.90.0.4/gas/testsuite/gas/mips/mips32.s Mon Dec 4 16:33:56 2000 +++ binutils-2.13.90.0.10/gas/testsuite/gas/mips/mips32.s Fri Sep 27 08:33:09 2002 @@ -3,7 +3,7 @@ .set noreorder .set noat - .globl text_label .text + .text text_label: # unprivileged CPU instructions diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/mips/mips4100.d binutils-2.13.90.0.10/gas/testsuite/gas/mips/mips4100.d --- binutils-2.13.90.0.4/gas/testsuite/gas/mips/mips4100.d Fri Jul 6 09:26:11 2001 +++ binutils-2.13.90.0.10/gas/testsuite/gas/mips/mips4100.d Wed Oct 2 10:17:19 2002 @@ -6,10 +6,7 @@ .*: +file format .*mips.* Disassembly of section \.text: -0+0000 dmadd16 a0,a1 - ... -0+000c madd16 a1,a2 -0+0010 hibernate -0+0014 standby -0+0018 suspend -0+001c nop +0+0000 hibernate +0+0004 standby +0+0008 suspend +0+000c nop diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/mips/mips4100.s binutils-2.13.90.0.10/gas/testsuite/gas/mips/mips4100.s --- binutils-2.13.90.0.4/gas/testsuite/gas/mips/mips4100.s Sat Jun 9 00:13:01 2001 +++ binutils-2.13.90.0.10/gas/testsuite/gas/mips/mips4100.s Wed Oct 2 10:17:19 2002 @@ -2,8 +2,6 @@ stuff: .ent stuff - dmadd16 $4,$5 - madd16 $5,$6 hibernate standby suspend diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/mips/mips64-mips3d.s binutils-2.13.90.0.10/gas/testsuite/gas/mips/mips64-mips3d.s --- binutils-2.13.90.0.4/gas/testsuite/gas/mips/mips64-mips3d.s Fri Mar 22 14:06:16 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/mips/mips64-mips3d.s Fri Sep 27 08:33:09 2002 @@ -3,7 +3,7 @@ .set noreorder .set noat - .globl text_label .text + .text text_label: addr.ps $f4, $f8, $f19 diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/mips/rol.d binutils-2.13.90.0.10/gas/testsuite/gas/mips/rol.d --- binutils-2.13.90.0.4/gas/testsuite/gas/mips/rol.d Fri Jul 6 09:26:11 2001 +++ binutils-2.13.90.0.10/gas/testsuite/gas/mips/rol.d Fri Sep 27 08:33:09 2002 @@ -21,17 +21,20 @@ Disassembly of section .text: 0+002c <[^>]*> sll at,a1,0x1 0+0030 <[^>]*> srl a0,a1,0x1f 0+0034 <[^>]*> or a0,a0,at -0+0038 <[^>]*> negu at,a1 -0+003c <[^>]*> sllv at,a0,at -0+0040 <[^>]*> srlv a0,a0,a1 -0+0044 <[^>]*> or a0,a0,at -0+0048 <[^>]*> negu at,a2 -0+004c <[^>]*> sllv at,a1,at -0+0050 <[^>]*> srlv a0,a1,a2 -0+0054 <[^>]*> or a0,a0,at -0+0058 <[^>]*> srl at,a0,0x1 -0+005c <[^>]*> sll a0,a0,0x1f -0+0060 <[^>]*> or a0,a0,at -0+0064 <[^>]*> srl at,a1,0x1 -0+0068 <[^>]*> sll a0,a1,0x1f -0+006c <[^>]*> or a0,a0,at +0+0038 <[^>]*> srl a0,a1,0x0 +0+003c <[^>]*> negu at,a1 +0+0040 <[^>]*> sllv at,a0,at +0+0044 <[^>]*> srlv a0,a0,a1 +0+0048 <[^>]*> or a0,a0,at +0+004c <[^>]*> negu at,a2 +0+0050 <[^>]*> sllv at,a1,at +0+0054 <[^>]*> srlv a0,a1,a2 +0+0058 <[^>]*> or a0,a0,at +0+005c <[^>]*> srl at,a0,0x1 +0+0060 <[^>]*> sll a0,a0,0x1f +0+0064 <[^>]*> or a0,a0,at +0+0068 <[^>]*> srl at,a1,0x1 +0+006c <[^>]*> sll a0,a1,0x1f +0+0070 <[^>]*> or a0,a0,at +0+0074 <[^>]*> srl a0,a1,0x0 + ... diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/mips/rol.s binutils-2.13.90.0.10/gas/testsuite/gas/mips/rol.s --- binutils-2.13.90.0.4/gas/testsuite/gas/mips/rol.s Thu Jun 3 11:02:03 1999 +++ binutils-2.13.90.0.10/gas/testsuite/gas/mips/rol.s Fri Sep 27 08:33:09 2002 @@ -5,8 +5,11 @@ foo: rol $4,$5,$6 rol $4,1 rol $4,$5,1 + rol $4,$5,0 ror $4,$5 ror $4,$5,$6 ror $4,1 ror $4,$5,1 + ror $4,$5,0 + .space 8 diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/mips/rol64.d binutils-2.13.90.0.10/gas/testsuite/gas/mips/rol64.d --- binutils-2.13.90.0.4/gas/testsuite/gas/mips/rol64.d Thu May 23 15:10:11 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/mips/rol64.d Fri Sep 27 08:33:09 2002 @@ -18,45 +18,49 @@ Disassembly of section .text: 0+0020 <[^>]*> dsll at,a0,0x1 0+0024 <[^>]*> dsrl32 a0,a0,0x1f 0+0028 <[^>]*> or a0,a0,at -0+002c <[^>]*> dsll at,a1,0x1 -0+0030 <[^>]*> dsrl32 a0,a1,0x1f -0+0034 <[^>]*> or a0,a0,at -0+0038 <[^>]*> dsll at,a1,0x1f -0+003c <[^>]*> dsrl32 a0,a1,0x1 -0+0040 <[^>]*> or a0,a0,at -0+0044 <[^>]*> dsll32 at,a1,0x0 -0+0048 <[^>]*> dsrl32 a0,a1,0x0 -0+004c <[^>]*> or a0,a0,at -0+0050 <[^>]*> dsll32 at,a1,0x1 -0+0054 <[^>]*> dsrl a0,a1,0x1f -0+0058 <[^>]*> or a0,a0,at -0+005c <[^>]*> dsll32 at,a1,0x1f -0+0060 <[^>]*> dsrl a0,a1,0x1 -0+0064 <[^>]*> or a0,a0,at -0+0068 <[^>]*> dnegu at,a1 -0+006c <[^>]*> dsllv at,a0,at -0+0070 <[^>]*> dsrlv a0,a0,a1 -0+0074 <[^>]*> or a0,a0,at -0+0078 <[^>]*> dnegu at,a2 -0+007c <[^>]*> dsllv at,a1,at -0+0080 <[^>]*> dsrlv a0,a1,a2 -0+0084 <[^>]*> or a0,a0,at -0+0088 <[^>]*> dsrl at,a0,0x1 -0+008c <[^>]*> dsll32 a0,a0,0x1f -0+0090 <[^>]*> or a0,a0,at -0+0094 <[^>]*> dsrl at,a1,0x1 -0+0098 <[^>]*> dsll32 a0,a1,0x1f -0+009c <[^>]*> or a0,a0,at -0+00a0 <[^>]*> dsrl at,a1,0x1f -0+00a4 <[^>]*> dsll32 a0,a1,0x1 +0+002c <[^>]*> dsrl a0,a1,0x0 +0+0030 <[^>]*> dsll at,a1,0x1 +0+0034 <[^>]*> dsrl32 a0,a1,0x1f +0+0038 <[^>]*> or a0,a0,at +0+003c <[^>]*> dsll at,a1,0x1f +0+0040 <[^>]*> dsrl32 a0,a1,0x1 +0+0044 <[^>]*> or a0,a0,at +0+0048 <[^>]*> dsll32 at,a1,0x0 +0+004c <[^>]*> dsrl32 a0,a1,0x0 +0+0050 <[^>]*> or a0,a0,at +0+0054 <[^>]*> dsll32 at,a1,0x1 +0+0058 <[^>]*> dsrl a0,a1,0x1f +0+005c <[^>]*> or a0,a0,at +0+0060 <[^>]*> dsll32 at,a1,0x1f +0+0064 <[^>]*> dsrl a0,a1,0x1 +0+0068 <[^>]*> or a0,a0,at +0+006c <[^>]*> dsrl a0,a1,0x0 +0+0070 <[^>]*> dnegu at,a1 +0+0074 <[^>]*> dsllv at,a0,at +0+0078 <[^>]*> dsrlv a0,a0,a1 +0+007c <[^>]*> or a0,a0,at +0+0080 <[^>]*> dnegu at,a2 +0+0084 <[^>]*> dsllv at,a1,at +0+0088 <[^>]*> dsrlv a0,a1,a2 +0+008c <[^>]*> or a0,a0,at +0+0090 <[^>]*> dsrl at,a0,0x1 +0+0094 <[^>]*> dsll32 a0,a0,0x1f +0+0098 <[^>]*> or a0,a0,at +0+009c <[^>]*> dsrl a0,a1,0x0 +0+00a0 <[^>]*> dsrl at,a1,0x1 +0+00a4 <[^>]*> dsll32 a0,a1,0x1f 0+00a8 <[^>]*> or a0,a0,at -0+00ac <[^>]*> dsrl32 at,a1,0x0 -0+00b0 <[^>]*> dsll32 a0,a1,0x0 +0+00ac <[^>]*> dsrl at,a1,0x1f +0+00b0 <[^>]*> dsll32 a0,a1,0x1 0+00b4 <[^>]*> or a0,a0,at -0+00b8 <[^>]*> dsrl32 at,a1,0x1 -0+00bc <[^>]*> dsll a0,a1,0x1f +0+00b8 <[^>]*> dsrl32 at,a1,0x0 +0+00bc <[^>]*> dsll32 a0,a1,0x0 0+00c0 <[^>]*> or a0,a0,at -0+00c4 <[^>]*> dsrl32 at,a1,0x1f -0+00c8 <[^>]*> dsll a0,a1,0x1 +0+00c4 <[^>]*> dsrl32 at,a1,0x1 +0+00c8 <[^>]*> dsll a0,a1,0x1f 0+00cc <[^>]*> or a0,a0,at +0+00d0 <[^>]*> dsrl32 at,a1,0x1f +0+00d4 <[^>]*> dsll a0,a1,0x1 +0+00d8 <[^>]*> or a0,a0,at +0+00dc <[^>]*> dsrl a0,a1,0x0 ... diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/mips/vr4111.d binutils-2.13.90.0.10/gas/testsuite/gas/mips/vr4111.d --- binutils-2.13.90.0.4/gas/testsuite/gas/mips/vr4111.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/gas/testsuite/gas/mips/vr4111.d Wed Oct 2 10:17:19 2002 @@ -0,0 +1,11 @@ +#objdump: -dr +#name: MIPS VR4111 +#as: -march=vr4111 + +.*: +file format .*mips.* + +Disassembly of section \.text: +0+000 <\.text>: + + 0: 00850029 dmadd16 a0,a1 + \.\.\. + + c: 00a60028 madd16 a1,a2 diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/mips/vr4111.s binutils-2.13.90.0.10/gas/testsuite/gas/mips/vr4111.s --- binutils-2.13.90.0.4/gas/testsuite/gas/mips/vr4111.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/gas/testsuite/gas/mips/vr4111.s Wed Oct 2 10:17:19 2002 @@ -0,0 +1,2 @@ + dmadd16 $4,$5 + madd16 $5,$6 diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/mips/vr4120.d binutils-2.13.90.0.10/gas/testsuite/gas/mips/vr4120.d --- binutils-2.13.90.0.4/gas/testsuite/gas/mips/vr4120.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/gas/testsuite/gas/mips/vr4120.d Wed Oct 2 10:17:19 2002 @@ -0,0 +1,29 @@ +#objdump: -dr +#name: MIPS VR4120 +#as: -march=vr4120 + +.*: +file format .*mips.* + +Disassembly of section \.text: +0+000 <\.text>: + + 0: 00002012 mflo a0 + \.\.\. + + c: 00a62029 dmacc a0,a1,a2 + +10: 00a62229 dmacchi a0,a1,a2 + +14: 00a62629 dmacchis a0,a1,a2 + +18: 00a62269 dmacchiu a0,a1,a2 + +1c: 00a62669 dmacchius a0,a1,a2 + +20: 00a62429 dmaccs a0,a1,a2 + +24: 00a62069 dmaccu a0,a1,a2 + +28: 00a62469 dmaccus a0,a1,a2 + +2c: 00002012 mflo a0 + \.\.\. + +38: 00a62028 macc a0,a1,a2 + +3c: 00a62228 macchi a0,a1,a2 + +40: 00a62628 macchis a0,a1,a2 + +44: 00a62268 macchiu a0,a1,a2 + +48: 00a62668 macchius a0,a1,a2 + +4c: 00a62428 maccs a0,a1,a2 + +50: 00a62068 maccu a0,a1,a2 + +54: 00a62468 maccus a0,a1,a2 +#pass diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/mips/vr4120.s binutils-2.13.90.0.10/gas/testsuite/gas/mips/vr4120.s --- binutils-2.13.90.0.4/gas/testsuite/gas/mips/vr4120.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/gas/testsuite/gas/mips/vr4120.s Wed Oct 2 10:17:19 2002 @@ -0,0 +1,19 @@ + # Include mflos to check for nop insertion. + mflo $4 + dmacc $4,$5,$6 + dmacchi $4,$5,$6 + dmacchis $4,$5,$6 + dmacchiu $4,$5,$6 + dmacchius $4,$5,$6 + dmaccs $4,$5,$6 + dmaccu $4,$5,$6 + dmaccus $4,$5,$6 + mflo $4 + macc $4,$5,$6 + macchi $4,$5,$6 + macchis $4,$5,$6 + macchiu $4,$5,$6 + macchius $4,$5,$6 + maccs $4,$5,$6 + maccu $4,$5,$6 + maccus $4,$5,$6 diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/mips/vr4122.d binutils-2.13.90.0.10/gas/testsuite/gas/mips/vr4122.d --- binutils-2.13.90.0.4/gas/testsuite/gas/mips/vr4122.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/gas/testsuite/gas/mips/vr4122.d Wed Oct 2 10:17:19 2002 @@ -0,0 +1,68 @@ +#objdump: -dz --prefix-addresses -m mips:4120 +#as: -march=vr4120 -mtune=vr4120 -mfix-vr4122-bugs +#name: MIPS vr4122 workarounds + +.*: +file format .*mips.* + +Disassembly of section .text: +0+0000 <[^>]*> macc a0,a1,a2 +0+0004 <[^>]*> nop +0+0008 <[^>]*> div zero,a3,t0 +0+000c <[^>]*> or a0,a0,a1 +0+0010 <[^>]*> dmacc a0,a1,a2 +0+0014 <[^>]*> nop +0+0018 <[^>]*> div zero,a3,t0 +0+001c <[^>]*> or a0,a0,a1 +0+0020 <[^>]*> macc a0,a1,a2 +0+0024 <[^>]*> nop +0+0028 <[^>]*> divu zero,a3,t0 +0+002c <[^>]*> or a0,a0,a1 +0+0030 <[^>]*> dmacc a0,a1,a2 +0+0034 <[^>]*> nop +0+0038 <[^>]*> divu zero,a3,t0 +0+003c <[^>]*> or a0,a0,a1 +0+0040 <[^>]*> macc a0,a1,a2 +0+0044 <[^>]*> nop +0+0048 <[^>]*> ddiv zero,a3,t0 +0+004c <[^>]*> or a0,a0,a1 +0+0050 <[^>]*> dmacc a0,a1,a2 +0+0054 <[^>]*> nop +0+0058 <[^>]*> ddiv zero,a3,t0 +0+005c <[^>]*> or a0,a0,a1 +0+0060 <[^>]*> macc a0,a1,a2 +0+0064 <[^>]*> nop +0+0068 <[^>]*> ddivu zero,a3,t0 +0+006c <[^>]*> or a0,a0,a1 +0+0070 <[^>]*> dmacc a0,a1,a2 +0+0074 <[^>]*> nop +0+0078 <[^>]*> ddivu zero,a3,t0 +0+007c <[^>]*> or a0,a0,a1 +0+0080 <[^>]*> dmult a0,a1 +0+0084 <[^>]*> nop +0+0088 <[^>]*> dmult a2,a3 +0+008c <[^>]*> or a0,a0,a1 +0+0090 <[^>]*> dmultu a0,a1 +0+0094 <[^>]*> nop +0+0098 <[^>]*> dmultu a2,a3 +0+009c <[^>]*> or a0,a0,a1 +0+00a0 <[^>]*> dmacc a0,a1,a2 +0+00a4 <[^>]*> nop +0+00a8 <[^>]*> dmacc a2,a3,t0 +0+00ac <[^>]*> or a0,a0,a1 +0+00b0 <[^>]*> dmult a0,a1 +0+00b4 <[^>]*> nop +0+00b8 <[^>]*> dmacc a2,a3,t0 +0+00bc <[^>]*> or a0,a0,a1 +0+00c0 <[^>]*> macc a0,a1,a2 +0+00c4 <[^>]*> nop +0+00c8 <[^>]*> mtlo a3 +0+00cc <[^>]*> dmacc a0,a1,a2 +0+00d0 <[^>]*> nop +0+00d4 <[^>]*> mtlo a3 +0+00d8 <[^>]*> macc a0,a1,a2 +0+00dc <[^>]*> nop +0+00e0 <[^>]*> mthi a3 +0+00e4 <[^>]*> dmacc a0,a1,a2 +0+00e8 <[^>]*> nop +0+00ec <[^>]*> mthi a3 +#... diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/mips/vr4122.s binutils-2.13.90.0.10/gas/testsuite/gas/mips/vr4122.s --- binutils-2.13.90.0.4/gas/testsuite/gas/mips/vr4122.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/gas/testsuite/gas/mips/vr4122.s Wed Oct 2 10:17:19 2002 @@ -0,0 +1,65 @@ +# Test that certain vr4122 hardware bugs are worked around. +# Note that we only work around bugs gcc may generate. + +r21: + macc $4,$5,$6 + div $0,$7,$8 + or $4,$5 + + dmacc $4,$5,$6 + div $0,$7,$8 + or $4,$5 + + macc $4,$5,$6 + divu $0,$7,$8 + or $4,$5 + + dmacc $4,$5,$6 + divu $0,$7,$8 + or $4,$5 + + macc $4,$5,$6 + ddiv $0,$7,$8 + or $4,$5 + + dmacc $4,$5,$6 + ddiv $0,$7,$8 + or $4,$5 + + macc $4,$5,$6 + ddivu $0,$7,$8 + or $4,$5 + + dmacc $4,$5,$6 + ddivu $0,$7,$8 + or $4,$5 + +r23: + dmult $4,$5 + dmult $6,$7 + or $4,$5 + + dmultu $4,$5 + dmultu $6,$7 + or $4,$5 + + dmacc $4,$5,$6 + dmacc $6,$7,$8 + or $4,$5 + + dmult $4,$5 + dmacc $6,$7,$8 + or $4,$5 + +r24: + macc $4,$5,$6 + mtlo $7 + + dmacc $4,$5,$6 + mtlo $7 + + macc $4,$5,$6 + mthi $7 + + dmacc $4,$5,$6 + mthi $7 diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/mips/vr5400.d binutils-2.13.90.0.10/gas/testsuite/gas/mips/vr5400.d --- binutils-2.13.90.0.4/gas/testsuite/gas/mips/vr5400.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/gas/testsuite/gas/mips/vr5400.d Wed Oct 2 10:17:19 2002 @@ -0,0 +1,130 @@ +#objdump: -dr --prefix-addresses +#name: MIPS VR5400 +#as: -march=vr5400 + +.*: +file format .*mips.* + +Disassembly of section \.text: +0+0000 mul a0,a1,a2 +0+0004 mulu a0,a1,a2 +0+0008 mulhi a0,a1,a2 +0+000c mulhiu a0,a1,a2 +0+0010 muls a0,a1,a2 +0+0014 mulsu a0,a1,a2 +0+0018 mulshi a0,a1,a2 +0+001c mulshiu a0,a1,a2 +0+0020 macc a0,a1,a2 +0+0024 maccu a0,a1,a2 +0+0028 macchi a0,a1,a2 +0+002c macchiu a0,a1,a2 +0+0030 msac a0,a1,a2 +0+0034 msacu a0,a1,a2 +0+0038 msachi a0,a1,a2 +0+003c msachiu a0,a1,a2 +0+0040 ror a0,a1,0x19 +0+0044 rorv a0,a1,a2 +0+0048 dror a0,a1,0x19 +0+004c dror32 a0,a1,0x19 +0+0050 dror32 a0,a1,0x19 +0+0054 drorv a0,a1,a2 +0+0058 dbreak +0+005c dret +0+0060 mfdr v1,\$3 +0+0064 mtdr v1,\$3 +0+0068 mfpc a0,1 +0+006c mfps a0,1 +0+0070 mtpc a0,1 +0+0074 mtps a0,1 +0+0078 add\.ob \$f0,\$f1,\$f2 +0+007c add\.ob \$f3,\$f4,\$f6\[2\] +0+0080 add\.ob \$f6,\$f5,0xf +0+0084 add\.ob \$f3,\$f7,0x1f +0+0088 and\.ob \$f0,\$f1,\$f2 +0+008c and\.ob \$f3,\$f4,\$f6\[2\] +0+0090 and\.ob \$f6,\$f5,0xf +0+0094 and\.ob \$f3,\$f7,0x1f +0+0098 c\.eq\.ob \$f0,\$f2 +0+009c c\.eq\.ob \$f3,\$f6\[2\] +0+00a0 c\.eq\.ob \$f6,0xf +0+00a4 c\.eq\.ob \$f3,0x1f +0+00a8 c\.le\.ob \$f0,\$f2 +0+00ac c\.le\.ob \$f3,\$f6\[2\] +0+00b0 c\.le\.ob \$f6,0xf +0+00b4 c\.le\.ob \$f3,0x1f +0+00b8 c\.lt\.ob \$f0,\$f2 +0+00bc c\.lt\.ob \$f3,\$f6\[2\] +0+00c0 c\.lt\.ob \$f6,0xf +0+00c4 c\.lt\.ob \$f3,0x1f +0+00c8 max\.ob \$f0,\$f1,\$f2 +0+00cc max\.ob \$f3,\$f4,\$f6\[2\] +0+00d0 max\.ob \$f6,\$f5,0xf +0+00d4 max\.ob \$f3,\$f7,0x1f +0+00d8 min\.ob \$f0,\$f1,\$f2 +0+00dc min\.ob \$f3,\$f4,\$f6\[2\] +0+00e0 min\.ob \$f6,\$f5,0xf +0+00e4 min\.ob \$f3,\$f7,0x1f +0+00e8 mul\.ob \$f0,\$f1,\$f2 +0+00ec mul\.ob \$f3,\$f4,\$f6\[2\] +0+00f0 mul\.ob \$f6,\$f5,0xf +0+00f4 mul\.ob \$f3,\$f7,0x1f +0+00f8 mula\.ob \$f0,\$f2 +0+00fc mula\.ob \$f3,\$f6\[2\] +0+0100 mula\.ob \$f6,0xf +0+0104 mula\.ob \$f3,0x1f +0+0108 mull\.ob \$f0,\$f2 +0+010c mull\.ob \$f3,\$f6\[2\] +0+0110 mull\.ob \$f6,0xf +0+0114 mull\.ob \$f3,0x1f +0+0118 muls\.ob \$f0,\$f2 +0+011c muls\.ob \$f3,\$f6\[2\] +0+0120 muls\.ob \$f6,0xf +0+0124 muls\.ob \$f3,0x1f +0+0128 mulsl\.ob \$f0,\$f2 +0+012c mulsl\.ob \$f3,\$f6\[2\] +0+0130 mulsl\.ob \$f6,0xf +0+0134 mulsl\.ob \$f3,0x1f +0+0138 nor\.ob \$f0,\$f1,\$f2 +0+013c nor\.ob \$f3,\$f4,\$f6\[2\] +0+0140 nor\.ob \$f6,\$f5,0xf +0+0144 nor\.ob \$f3,\$f7,0x1f +0+0148 or\.ob \$f0,\$f1,\$f2 +0+014c or\.ob \$f3,\$f4,\$f6\[2\] +0+0150 or\.ob \$f6,\$f5,0xf +0+0154 or\.ob \$f3,\$f7,0x1f +0+0158 pickf\.ob \$f0,\$f1,\$f2 +0+015c pickf\.ob \$f3,\$f4,\$f6\[2\] +0+0160 pickf\.ob \$f6,\$f5,0xf +0+0164 pickf\.ob \$f3,\$f7,0x1f +0+0168 pickt\.ob \$f0,\$f1,\$f2 +0+016c pickt\.ob \$f3,\$f4,\$f6\[2\] +0+0170 pickt\.ob \$f6,\$f5,0xf +0+0174 pickt\.ob \$f3,\$f7,0x1f +0+0178 sub\.ob \$f0,\$f1,\$f2 +0+017c sub\.ob \$f3,\$f4,\$f6\[2\] +0+0180 sub\.ob \$f6,\$f5,0xf +0+0184 sub\.ob \$f3,\$f7,0x1f +0+0188 xor\.ob \$f0,\$f1,\$f2 +0+018c xor\.ob \$f3,\$f4,\$f6\[2\] +0+0190 xor\.ob \$f6,\$f5,0xf +0+0194 xor\.ob \$f3,\$f7,0x1f +0+0198 alni\.ob \$f1,\$f2,\$f3,5 +0+019c shfl\.mixh\.ob \$f1,\$f2,\$f3 +0+01a0 shfl\.mixl\.ob \$f1,\$f2,\$f3 +0+01a4 bc2tl 0+4324 +0+01a8 shfl\.pacl\.ob \$f1,\$f2,\$f3 +0+01ac sll\.ob \$f2,\$f4,\$f5\[3\] +0+01b0 sll\.ob \$f3,\$f6,0xe +0+01b4 srl\.ob \$f2,\$f4,\$f5\[3\] +0+01b8 srl\.ob \$f3,\$f6,0xe +0+01bc rzu\.ob \$f2,0xd +0+01c0 rach\.ob \$f2 +0+01c4 racl\.ob \$f2 +0+01c8 bc2f 0+04c8 +0+01cc wach\.ob \$f2 +0+01d0 wacl\.ob \$f2,\$f3 +0+01d4 rorv a0,a1,a2 +0+01d8 ror a0,a1,0x11 +0+01dc drorv a0,a1,a2 +0+01e0 dror32 a0,a1,0x1 +0+01e4 dror a0,a1,0x2 + \.\.\. diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/mips/vr5400.s binutils-2.13.90.0.10/gas/testsuite/gas/mips/vr5400.s --- binutils-2.13.90.0.4/gas/testsuite/gas/mips/vr5400.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/gas/testsuite/gas/mips/vr5400.s Wed Oct 2 10:17:19 2002 @@ -0,0 +1,125 @@ + .text + +stuff: + .ent stuff + /* Integer instructions. */ + + mul $4,$5,$6 + mulu $4,$5,$6 + mulhi $4,$5,$6 + mulhiu $4,$5,$6 + muls $4,$5,$6 + mulsu $4,$5,$6 + mulshi $4,$5,$6 + mulshiu $4,$5,$6 + macc $4,$5,$6 + maccu $4,$5,$6 + macchi $4,$5,$6 + macchiu $4,$5,$6 + msac $4,$5,$6 + msacu $4,$5,$6 + msachi $4,$5,$6 + msachiu $4,$5,$6 + + ror $4,$5,25 + rorv $4,$5,$6 + dror $4,$5,25 + dror $4,$5,57 /* Should expand to dror32 $4,$5,25. */ + dror32 $4,$5,25 + drorv $4,$5,$6 + + /* Debug instructions. */ + + dbreak + dret + mfdr $3,$3 + mtdr $3,$3 + + /* Coprocessor 0 instructions, minus standard ISA 3 ones. + That leaves just the performance monitoring registers. */ + + mfpc $4,1 + mfps $4,1 + mtpc $4,1 + mtps $4,1 + + /* Multimedia instructions. */ + + .macro nsel2 op + /* Test each form of each vector opcode. */ + \op $f0,$f2 + \op $f3,$f6[2] + \op $f6,15 + .if 0 /* Which is right?? */ + /* Test negative numbers in immediate-value slot. */ + \op $f4,-3 + .else + /* Test that it's recognized as an unsigned field. */ + \op $f3,31 + .endif + .endm + + .macro nsel3 op + /* Test each form of each vector opcode. */ + \op $f0,$f1,$f2 + \op $f3,$f4,$f6[2] + \op $f6,$f5,15 + .if 0 /* Which is right?? */ + /* Test negative numbers in immediate-value slot. */ + \op $f4,$f6,-3 + .else + /* Test that it's recognized as an unsigned field. */ + \op $f3,$f7,31 + .endif + .endm + + nsel3 add.ob + nsel3 and.ob + nsel2 c.eq.ob + nsel2 c.le.ob + nsel2 c.lt.ob + nsel3 max.ob + nsel3 min.ob + nsel3 mul.ob + nsel2 mula.ob + nsel2 mull.ob + nsel2 muls.ob + nsel2 mulsl.ob + nsel3 nor.ob + nsel3 or.ob + nsel3 pickf.ob + nsel3 pickt.ob + nsel3 sub.ob + nsel3 xor.ob + + /* ALNI, SHFL: Vector only. */ + alni.ob $f1,$f2,$f3,5 + shfl.mixh.ob $f1,$f2,$f3 + shfl.mixl.ob $f1,$f2,$f3 + shfl.pach.ob $f1,$f2,$f3 + shfl.pacl.ob $f1,$f2,$f3 + + /* SLL,SRL: Scalar or immediate. */ + sll.ob $f2,$f4,$f5[3] + sll.ob $f3,$f6,14 + srl.ob $f2,$f4,$f5[3] + srl.ob $f3,$f6,14 + + /* RZU: Immediate, must be 0, 8, or 16. */ + rzu.ob $f2,13 + + /* No selector. */ + rach.ob $f2 + racl.ob $f2 + racm.ob $f2 + wach.ob $f2 + wacl.ob $f2,$f3 + + ror $4,$5,$6 + rol $4,$5,15 + dror $4,$5,$6 + drol $4,$5,31 + drol $4,$5,62 + + .space 8 + .end stuff diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/mips/vr5500.d binutils-2.13.90.0.10/gas/testsuite/gas/mips/vr5500.d --- binutils-2.13.90.0.4/gas/testsuite/gas/mips/vr5500.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/gas/testsuite/gas/mips/vr5500.d Wed Oct 2 10:17:19 2002 @@ -0,0 +1,51 @@ +#objdump: -dr --prefix-addresses +#name: MIPS VR5500 +#as: -march=vr5500 + +.*: +file format .*mips.* + +Disassembly of section .text: +0+0000 mul a0,a1,a2 +0+0004 mulu a0,a1,a2 +0+00008 mulhi a0,a1,a2 +0+0000c mulhiu a0,a1,a2 +0+00010 muls a0,a1,a2 +0+00014 mulsu a0,a1,a2 +0+00018 mulshi a0,a1,a2 +0+0001c mulshiu a0,a1,a2 +0+00020 macc a0,a1,a2 +0+00024 maccu a0,a1,a2 +0+00028 macchi a0,a1,a2 +0+0002c macchiu a0,a1,a2 +0+00030 msac a0,a1,a2 +0+00034 msacu a0,a1,a2 +0+00038 msachi a0,a1,a2 +0+0003c msachiu a0,a1,a2 +0+00040 ror a0,a1,0x19 +0+00044 rorv a0,a1,a2 +0+00048 dror a0,a1,0x19 +0+0004c dror32 a0,a1,0x19 +0+00050 dror32 a0,a1,0x19 +0+00054 drorv a0,a1,a2 +0+00058 prefx 0x4,a0\(a1\) +0+0005c dbreak +0+00060 dret +0+00064 mfdr v1,\$3 +0+00068 mtdr v1,\$3 +0+0006c mfpc a0,1 +0+00070 mfps a0,1 +0+00074 mtpc a0,1 +0+00078 mtps a0,1 +0+0007c wait +0+00080 wait +0+00084 wait 0x56789 +0+00088 ssnop +0+0008c clo v1,a0 +0+00090 dclo v1,a0 +0+00094 clz v1,a0 +0+00098 dclz v1,a0 +0+0009c luxc1 \$f1,a0\(v0\) +0+000a0 suxc1 \$f1,a0\(v0\) +0+000a4 tlbp +0+000a8 tlbr + \.\.\. diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/mips/vr5500.s binutils-2.13.90.0.10/gas/testsuite/gas/mips/vr5500.s --- binutils-2.13.90.0.4/gas/testsuite/gas/mips/vr5500.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/gas/testsuite/gas/mips/vr5500.s Wed Oct 2 10:17:19 2002 @@ -0,0 +1,80 @@ + .text + +stuff: + .ent stuff + /* Integer instructions. */ + + mul $4,$5,$6 + mulu $4,$5,$6 + mulhi $4,$5,$6 + mulhiu $4,$5,$6 + muls $4,$5,$6 + mulsu $4,$5,$6 + mulshi $4,$5,$6 + mulshiu $4,$5,$6 + macc $4,$5,$6 + maccu $4,$5,$6 + macchi $4,$5,$6 + macchiu $4,$5,$6 + msac $4,$5,$6 + msacu $4,$5,$6 + msachi $4,$5,$6 + msachiu $4,$5,$6 + + ror $4,$5,25 + rorv $4,$5,$6 + dror $4,$5,25 + dror $4,$5,57 /* Should expand to dror32 $4,$5,25. */ + dror32 $4,$5,25 + drorv $4,$5,$6 + + + /* Prefetch instructions. */ + # We don't test pref because currently the disassembler will + # disassemble it as lwc3. lwc3 is correct for mips1 to mips3, + # while pref is correct for mips4. Unfortunately, the + # disassembler does not know which architecture it is + # disassembling for. + # pref 4,0($4) + + prefx 4,$4($5) + + /* Debug instructions. */ + + dbreak + dret + mfdr $3,$3 + mtdr $3,$3 + + /* Coprocessor 0 instructions, minus standard ISA 3 ones. + That leaves just the performance monitoring registers. */ + + mfpc $4,1 + mfps $4,1 + mtpc $4,1 + mtps $4,1 + + /* Miscellaneous instructions. */ + + wait + wait 0 # disassembles without code + wait 0x56789 + + ssnop + + clo $3,$4 + dclo $3,$4 + clz $3,$4 + dclz $3,$4 + + luxc1 $f1,$4($2) + suxc1 $f1,$4($2) + + tlbp + tlbr + + /* Align to 16-byte boundary. */ + nop + nop + nop + .end stuff diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/mmix/comment-1.d binutils-2.13.90.0.10/gas/testsuite/gas/mmix/comment-1.d --- binutils-2.13.90.0.4/gas/testsuite/gas/mmix/comment-1.d Mon Jul 29 08:19:19 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/mmix/comment-1.d Fri Sep 27 08:33:09 2002 @@ -9,11 +9,11 @@ There are 10 section headers, starting a #... Relocation section '\.rela\.text' at offset 0x... contains 5 entries: .* -0+34 0+90000001e R_MMIX_ADDR19 +0+ +target +\+ 2c -0+46 0+a00000002 R_MMIX_16 +0+ +target2 +\+ 30 -0+48 0+b0000001f R_MMIX_ADDR27 +0+ +target3 +\+ 38 -0+54 0+b0000001e R_MMIX_ADDR19 +0+ +target3 +\+ 0 -0+78 0+23 R_MMIX_LOCAL +0+30 +0+34 .* R_MMIX_ADDR19 +0+ +target +\+ 2c +0+46 .* R_MMIX_16 +0+ +target2 +\+ 30 +0+48 .* R_MMIX_ADDR27 +0+ +target3 +\+ 38 +0+54 .* R_MMIX_ADDR19 +0+ +target3 +\+ 0 +0+78 .* R_MMIX_LOCAL +0+30 Symbol table '\.symtab' contains 12 entries: Num: Value Size Type Bind Vis Ndx Name diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/mn10200/basic.exp binutils-2.13.90.0.10/gas/testsuite/gas/mn10200/basic.exp --- binutils-2.13.90.0.4/gas/testsuite/gas/mn10200/basic.exp Thu Jun 3 11:02:03 1999 +++ binutils-2.13.90.0.10/gas/testsuite/gas/mn10200/basic.exp Fri Sep 27 08:33:09 2002 @@ -15,7 +15,7 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ # Please email any bugs, comments, and/or additions to this file to: -# DejaGnu@cygnus.com +# dejagnu@gnu.org # Written by Cygnus Support. diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/mn10300/basic.exp binutils-2.13.90.0.10/gas/testsuite/gas/mn10300/basic.exp --- binutils-2.13.90.0.4/gas/testsuite/gas/mn10300/basic.exp Sun Feb 3 11:22:32 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/mn10300/basic.exp Fri Sep 27 08:33:09 2002 @@ -15,7 +15,7 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ # Please email any bugs, comments, and/or additions to this file to: -# DejaGnu@cygnus.com +# dejagnu@gnu.org # Written by Cygnus Support. diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/mri/moveml.d binutils-2.13.90.0.10/gas/testsuite/gas/mri/moveml.d --- binutils-2.13.90.0.4/gas/testsuite/gas/mri/moveml.d Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.10/gas/testsuite/gas/mri/moveml.d Fri Sep 27 08:33:09 2002 @@ -4,24 +4,24 @@ .*: +file format .* -Disassembly of section .text: +Disassembly of section \.text: -0+000 <.text>: +0+000 <\.text>: 0: 4cdf 07fc moveml %sp@\+,%d2-%a2 4: 4cdf 07fc moveml %sp@\+,%d2-%a2 - 8: 48f9 07fc 0000 moveml %d2-%a2,0 <.text> + 8: 48f9 07fc 0000 moveml %d2-%a2,0 <\.text> e: 0000 - 10: 48f9 07fc 0000 moveml %d2-%a2,0 <.text> + 10: 48f9 07fc 0000 moveml %d2-%a2,0 <\.text> 16: 0000 - 18: 4cf9 07fc 0000 moveml 0 <.text>,%d2-%a2 + 18: 4cf9 07fc 0000 moveml 0 <\.text>,%d2-%a2 1e: 0000 - 20: 4cf9 07fc 0000 moveml 0 <.text>,%d2-%a2 + 20: 4cf9 07fc 0000 moveml 0 <\.text>,%d2-%a2 26: 0000 - 28: 4cf9 07fc 0001 moveml 16000 ,%d2-%a2 + 28: 4cf9 07fc 0001 moveml 16000 <.*>,%d2-%a2 2e: 6000 - 30: 4cf9 07fc 0001 moveml 16000 ,%d2-%a2 + 30: 4cf9 07fc 0001 moveml 16000 <.*>,%d2-%a2 36: 6000 - 38: 48f9 07fc 0001 moveml %d2-%a2,16000 + 38: 48f9 07fc 0001 moveml %d2-%a2,16000 <.*> 3e: 6000 - 40: 48f9 07fc 0001 moveml %d2-%a2,16000 + 40: 48f9 07fc 0001 moveml %d2-%a2,16000 <.*> 46: 6000 diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/mri/mri.exp binutils-2.13.90.0.10/gas/testsuite/gas/mri/mri.exp --- binutils-2.13.90.0.4/gas/testsuite/gas/mri/mri.exp Sun Mar 18 17:51:03 2001 +++ binutils-2.13.90.0.10/gas/testsuite/gas/mri/mri.exp Fri Sep 27 08:33:09 2002 @@ -21,7 +21,7 @@ run_dump_test comment gas_test "empty.s" "-M" "" "MRI empty macro" run_dump_test semi -if {[istarget "m6811-*-*"] || [istarget "m6812-*-*"]} { +if {[istarget "m6811-*"] || [istarget "m6812-*"] || [istarget "m68hc*-*"]} { return } diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/ppc/astest2.d binutils-2.13.90.0.10/gas/testsuite/gas/ppc/astest2.d --- binutils-2.13.90.0.4/gas/testsuite/gas/ppc/astest2.d Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.10/gas/testsuite/gas/ppc/astest2.d Fri Sep 27 08:33:09 2002 @@ -3,7 +3,7 @@ .*: +file format elf32-powerpc -Disassembly of section .text: +Disassembly of section \.text: 0+0000000 : 0: 60 00 00 00 nop @@ -14,7 +14,7 @@ Disassembly of section .text: 14: 48 00 00 00 b 14 14: R_PPC_REL24 x 18: 48 00 00 04 b 1c - 18: R_PPC_REL24 .data\+0x4 + 18: R_PPC_REL24 \.data\+0x4 1c: 48 00 00 00 b 1c 1c: R_PPC_REL24 z 20: 48 00 00 14 b 34 @@ -30,16 +30,16 @@ Disassembly of section .text: 38: R_PPC_LOCAL24PC a 3c: 48 00 00 40 b 7c - 40: 00 00 00 40 .long 0x40 - 40: R_PPC_ADDR32 .text\+0x40 + 40: 00 00 00 40 \.long 0x40 + 40: R_PPC_ADDR32 \.text\+0x40 - 44: 00 00 00 4c .long 0x4c - 44: R_PPC_ADDR32 .text\+0x4c - 48: 00 00 00 00 .long 0x0 + 44: 00 00 00 4c \.long 0x4c + 44: R_PPC_ADDR32 \.text\+0x4c + 48: 00 00 00 00 \.long 0x0 48: R_PPC_REL32 x - 4c: 00 00 00 04 .long 0x4 + 4c: 00 00 00 04 \.long 0x4 4c: R_PPC_REL32 x\+0x4 - ... + \.\.\. 50: R_PPC_REL32 z 54: R_PPC_REL32 y 58: R_PPC_ADDR32 x @@ -51,25 +51,25 @@ Disassembly of section .text: 68: R_PPC_ADDR32 y\+0xf+ffffffc 6c: ff ff ff fc fnmsub f31,f31,f31,f31 6c: R_PPC_ADDR32 z\+0xf+ffffffc - 70: 00 00 00 08 .long 0x8 - 74: 00 00 00 08 .long 0x8 + 70: 00 00 00 08 \.long 0x8 + 74: 00 00 00 08 \.long 0x8 0+0000078 : - 78: 00 00 00 00 .long 0x0 + 78: 00 00 00 00 \.long 0x0 78: R_PPC_ADDR32 a 0+000007c : - ... + \.\.\. 7c: R_PPC_ADDR32 b 80: R_PPC_ADDR32 apfour 84: ff ff ff fc fnmsub f31,f31,f31,f31 - 88: 00 00 00 02 .long 0x2 + 88: 00 00 00 02 \.long 0x2 88: R_PPC_ADDR32 apfour\+0x2 - 8c: 00 00 00 00 .long 0x0 -Disassembly of section .data: + 8c: 00 00 00 00 \.long 0x0 +Disassembly of section \.data: 0+0000000 : - 0: 00 00 00 00 .long 0x0 + 0: 00 00 00 00 \.long 0x0 0+0000004 : - 4: 00 00 00 00 .long 0x0 + 4: 00 00 00 00 \.long 0x0 diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/ppc/e500.d binutils-2.13.90.0.10/gas/testsuite/gas/ppc/e500.d --- binutils-2.13.90.0.4/gas/testsuite/gas/ppc/e500.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/gas/testsuite/gas/ppc/e500.d Fri Sep 27 08:33:09 2002 @@ -0,0 +1,22 @@ +#as: -mppc -me500 +#objdump: -Dr -Me500 +#name: e500 tests + +.*: +file format elf(32)?(64)?-powerpc + +Disassembly of section \.text: + +0+0000000 : + 0: 7c 43 25 de isel r2,r3,r4,23 + 4: 7c 85 33 0c dcblc 4,r5,r6 + 8: 7c e8 49 4c dcbtls 7,r8,r9 + c: 7d 4b 61 0c dcbtstls 10,r11,r12 + 10: 7d ae 7b cc icbtls 13,r14,r15 + 14: 7e 11 91 cc icblc 16,r17,r18 + 18: 7c 89 43 9c mtpmr r41,r4 + 1c: 7c ab 52 9c mfpmr r5,r43 + 20: 7c 00 04 0c bblels + 24: 7c 00 04 4c bbelr + 28: 7d 00 83 a6 mtspefscr r8 + 2c: 7d 20 82 a6 mfspefscr r9 +Disassembly of section \.data: diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/ppc/e500.s binutils-2.13.90.0.10/gas/testsuite/gas/ppc/e500.s --- binutils-2.13.90.0.4/gas/testsuite/gas/ppc/e500.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/gas/testsuite/gas/ppc/e500.s Fri Sep 27 08:33:09 2002 @@ -0,0 +1,15 @@ +# Motorola PowerPC e500 tests + .section ".text" +start: + isel 2, 3, 4, 23 + dcblc 4, 5, 6 + dcbtls 7, 8, 9 + dcbtstls 10, 11, 12 + icbtls 13, 14, 15 + icblc 16, 17, 18 + mtpmr 201, 4 + mfpmr 5, 203 + bblels + bbelr + mtspefscr 8 + mfspefscr 9 diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/ppc/ppc.exp binutils-2.13.90.0.10/gas/testsuite/gas/ppc/ppc.exp --- binutils-2.13.90.0.4/gas/testsuite/gas/ppc/ppc.exp Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/ppc/ppc.exp Fri Sep 27 08:33:09 2002 @@ -27,7 +27,7 @@ if { [istarget powerpc64*-*-*] || [istar if { [istarget powerpc*-*-*] } then { run_dump_test "simpshft" - if { [istarget powerpc-ibm-aix*] } then { + if { [istarget powerpc-*-*aix*] } then { run_dump_test "altivec_xcoff" run_dump_test "altivec_xcoff64" run_dump_test "booke_xcoff" @@ -35,5 +35,6 @@ if { [istarget powerpc*-*-*] } then { } else { run_dump_test "altivec" run_dump_test "booke" + run_dump_test "e500" } } diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/basic.exp binutils-2.13.90.0.10/gas/testsuite/gas/sh/basic.exp --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/basic.exp Thu May 23 15:10:11 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/basic.exp Wed Oct 9 21:09:41 2002 @@ -15,7 +15,7 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: -# DejaGnu@cygnus.com +# dejagnu@gnu.org # Written by Cygnus Support. @@ -23,6 +23,12 @@ if [istarget "sh*-*-linux-gnu"] { global ASFLAGS set ASFLAGS "$ASFLAGS -big" } +if [istarget "sh64*-*-linux*"] { + global ASFLAGS + + set old_ASFLAGS $ASFLAGS + set ASFLAGS "$ASFLAGS --abi=32 --isa=SHcompact" +} proc do_fp {} { set testname "fp.s: floating point tests (sh3e)" @@ -70,6 +76,37 @@ proc do_fp {} { -re "^ +\[0-9\]+ 0038 4352\[^\n\]*\n" { set x [expr $x+1] } -re "^ +\[0-9\]+ 003a 036A\[^\n\]*\n" { set x [expr $x+1] } -re "^ +\[0-9\]+ 003c 4362\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0000 08F0\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0002 0AF0\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0004 09F0\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0006 0BF0\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0008 06F0\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 000a 07F0\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 000c 0CF1\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 000e 8DF0\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0010 9DF0\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0012 00F1\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0014 01F1\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0016 02F1\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0018 03F1\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 001a 0EF1\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 001c 04F1\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 001e 05F1\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0020 4DF0\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0022 5DF0\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0024 6DF0\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0026 2DF0\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0028 3DF0\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 002a 0DF0\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 002c 1DF0\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 002e 5A43\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0030 5643\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0032 6A43\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0034 6643\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0036 5A03\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0038 5243\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 003a 6A03\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 003c 6243\[^\n\]*\n" { set x [expr $x+1] } -re "\[^\n\]*\n" { } timeout { perror "timeout\n"; break } eof { break } @@ -91,16 +128,23 @@ if [istarget sh*-*-*] then { # coff is missing information about the machine type, so everything is # dumped as sh4. - if {[istarget sh*-*coff] || [istarget sh*-hms]} then { + if {[istarget sh*-*coff] || [istarget sh*-pe*] || [istarget sh*-rtems]} then { run_dump_test "pcrel-coff" - } else { + } elseif {![istarget sh64*-*-linux*]} { # Test DSP instructions run_dump_test "dsp" run_dump_test "pcrel" + + run_dump_test "pcrel2" } if {[istarget sh*-*elf] || [istarget sh*-linux*]} then { run_dump_test "pic" } } + +if {[info exists old_ASFLAGS]} { + global ASFLAGS + set ASFLAGS $old_ASFLAGS +} diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/pcrel-coff.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/pcrel-coff.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/pcrel-coff.d Thu May 23 15:10:11 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/pcrel-coff.d Fri Sep 27 08:33:09 2002 @@ -1,5 +1,5 @@ #as: -big -#objdump: -d +#objdump: -d -EB #name: PC-relative loads .*: file format .*sh.* diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/pcrel2.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/pcrel2.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/pcrel2.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/pcrel2.d Mon Oct 7 23:08:00 2002 @@ -0,0 +1,23 @@ +#as: -big +#objdump: -drj.text +#name: PC-relative loads + +.*: file format .*sh.* + +Disassembly of section \.text: + +00000000 : + 0: 8b 01 bf 6 + 2: d0 02 mov\.l c ,r0 ! 0x6 + 4: 90 02 mov\.w c ,r0 ! 0x0 + +00000006 : + 6: af fe bra 6 + 8: 00 09 nop + a: 00 09 nop + +0000000c : + c: 00 00 .*[ ]*.* + e: 00 06 .*[ ]*.* + 10: 00 0a .*[ ]*.* + 12: 0c 00 .*[ ]*.* diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/pcrel2.s binutils-2.13.90.0.10/gas/testsuite/gas/sh/pcrel2.s --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/pcrel2.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/pcrel2.s Wed Oct 2 10:17:20 2002 @@ -0,0 +1,17 @@ + .text + + .p2align 2 +code: + bf foo + mov.l bar, r0 + mov.w bar, r0 + .globl foo +foo: + bra foo + nop + .align 2 + .globl bar +bar: + .long . - foo + .word . - foo + .byte . - foo diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/abi-32.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/abi-32.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/abi-32.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/abi-32.d Wed Oct 9 21:09:41 2002 @@ -2,7 +2,7 @@ #objdump: -dr #name: Assertion .abi 32. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: [0]+ : diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/abi-64.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/abi-64.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/abi-64.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/abi-64.d Wed Oct 9 21:09:41 2002 @@ -2,7 +2,7 @@ #objdump: -dr #name: Assertion .abi 64. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: [0]+ : diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/basic-1.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/basic-1.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/basic-1.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/basic-1.d Wed Oct 9 21:09:41 2002 @@ -2,7 +2,7 @@ #objdump: -dr #name: Basic SHmedia instructions. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: [0]+ : diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/case-1.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/case-1.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/case-1.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/case-1.d Wed Oct 9 21:09:41 2002 @@ -2,7 +2,7 @@ #objdump: -dr #name: Case-insensitive registers and opcodes. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/case-noexp-1.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/case-noexp-1.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/case-noexp-1.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/case-noexp-1.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: case-1.s #name: Case-insensitive registers and opcodes with -no-expand. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/crange1-1.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/crange1-1.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/crange1-1.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/crange1-1.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: crange1.s #name: .cranges descriptors. -.*: file format .*-sh64 +.*: file format .*-sh64.* RELOCATION RECORDS FOR \[\.cranges\]: OFFSET *TYPE *VALUE diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/crange1-2.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/crange1-2.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/crange1-2.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/crange1-2.d Wed Oct 9 21:09:41 2002 @@ -1,9 +1,9 @@ -#as: --abi=32 -shcompact-const-crange +#as: --abi=32 --isa=SHcompact -shcompact-const-crange #objdump: -sr #source: crange1.s #name: .cranges descriptors including SHcompact constant pool -.*: file format .*-sh64 +.*: file format .*-sh64.* RELOCATION RECORDS FOR \[\.cranges\]: OFFSET *TYPE *VALUE diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/crange2-1.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/crange2-1.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/crange2-1.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/crange2-1.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: crange2.s #name: PT to SHcompact -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/crange2-2.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/crange2-2.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/crange2-2.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/crange2-2.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: crange2.s #name: .cranges descriptors for SHcompact and SHmedia in .text. -.*: file format .*-sh64 +.*: file format .*-sh64.* RELOCATION RECORDS FOR \[\.cranges\]: diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/crange2-noexp-1.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/crange2-noexp-1.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/crange2-noexp-1.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/crange2-noexp-1.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: crange2.s #name: PT to SHcompact with -no-expand. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/crange3-1.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/crange3-1.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/crange3-1.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/crange3-1.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: crange3.s #name: .cranges descriptors, constant mix. -.*: file format .*-sh64 +.*: file format .*-sh64.* RELOCATION RECORDS FOR \[\.cranges\]: OFFSET *TYPE *VALUE diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/crange4-1.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/crange4-1.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/crange4-1.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/crange4-1.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: crange4.s #name: .cranges descriptors with final variant. -.*: file format .*-sh64 +.*: file format .*-sh64.* RELOCATION RECORDS FOR \[\.cranges\]: OFFSET *TYPE *VALUE diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/crange5-1.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/crange5-1.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/crange5-1.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/crange5-1.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: crange5.s #name: Avoid zero length .cranges range descriptor at .align in code. -.*: file format .*-sh64 +.*: file format .*-sh64.* Contents of section \.text: 0000 e8003a00 d4ff80f0 4455fc00 acf000e0 .* diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/creg-1.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/creg-1.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/creg-1.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/creg-1.d Wed Oct 9 21:09:41 2002 @@ -2,7 +2,7 @@ #objdump: -dr #name: Predefined control register names. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/creg-2.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/creg-2.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/creg-2.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/creg-2.d Wed Oct 9 21:09:41 2002 @@ -2,7 +2,7 @@ #objdump: -dr #name: Predefined control register names specified in crN syntax. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/datal-2.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/datal-2.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/datal-2.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/datal-2.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: datal-2.s #name: DataLabel redundant local use, SHcompact -.*: file format .*-sh64 +.*: file format .*-sh64.* RELOCATION RECORDS FOR \[\.text\]: OFFSET *TYPE *VALUE diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/datal32-1.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/datal32-1.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/datal32-1.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/datal32-1.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: datal-1.s #name: DataLabel redundant local use, SHmedia 32-bit ABI -.*: file format .*-sh64 +.*: file format .*-sh64.* RELOCATION RECORDS FOR \[\.text\]: OFFSET *TYPE *VALUE diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/datal32-3.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/datal32-3.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/datal32-3.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/datal32-3.d Wed Oct 9 21:09:41 2002 @@ -7,14 +7,14 @@ # check that STT_DATALABEL is set, but objdump doesn't do that at present, # and readelf isn't supported as a run_dump_test tool. -.*: file format .*-sh64 +.*: file format .*-sh64.* .* architecture: sh5, flags 0x0+11: HAS_RELOC, HAS_SYMS start address 0x0+ Sections: -Idx Name Size VMA LMA File off Algn +Idx Name Size VMA LMA File off Algn 0 \.text 0+6c 0+ 0+ 0+34 2\*\*0 CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE 1 \.data 0+ 0+ 0+ 0+a0 2\*\*0 diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/datal64-1.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/datal64-1.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/datal64-1.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/datal64-1.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: datal-1.s #name: DataLabel redundant local use, SHmedia 64-bit ABI -.*: file format .*-sh64 +.*: file format .*-sh64.* RELOCATION RECORDS FOR \[\.text\]: OFFSET TYPE VALUE diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/datal64-3.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/datal64-3.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/datal64-3.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/datal64-3.d Wed Oct 9 21:09:41 2002 @@ -7,7 +7,7 @@ # check that STT_DATALABEL is set, but objdump doesn't do that at present, # and readelf isn't supported as a run_dump_test tool. -.*: file format .*-sh64 +.*: file format .*-sh64.* .* architecture: sh5, flags 0x0+11: HAS_RELOC, HAS_SYMS diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/endian-1.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/endian-1.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/endian-1.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/endian-1.d Wed Oct 9 21:09:41 2002 @@ -1,8 +1,8 @@ -#as: --isa=shmedia --no-exp -little +#as: --isa=shmedia --abi=64 --no-exp -little #objdump: -s #name: SH64 Little Endian -.*: file format elf64-sh64l +.*: file format elf64-sh64.* Contents of section .text: 0000 00d048cc 78563412 34120000.* diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/endian-2.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/endian-2.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/endian-2.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/endian-2.d Wed Oct 9 21:09:41 2002 @@ -1,8 +1,8 @@ -#as: --isa=shmedia --no-exp +#as: --isa=shmedia --abi=64 --no-exp -big #objdump: -s #name: SH64 Big Endian -.*: file format elf64-sh64 +.*: file format elf64-sh64.* Contents of section .text: 0000 cc48d000 12345678 12340000.* diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/err-noexp-cmd1.s binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/err-noexp-cmd1.s --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/err-noexp-cmd1.s Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/err-noexp-cmd1.s Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ ! { dg-do assemble } ! { dg-options "-no-expand" } -! { dg-error ".* only valid with SHcompact or SHmedia" "" { target sh64-*-* } 0 } +! { dg-error ".* only valid with SHcompact or SHmedia" "" { target sh64-*-elf* } 0 } .text start: diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/immexpr32-1.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/immexpr32-1.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/immexpr32-1.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/immexpr32-1.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: immexpr1.s #name: Immediate resolved operands, 32-bit ABI. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/immexpr32-2.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/immexpr32-2.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/immexpr32-2.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/immexpr32-2.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: immexpr2.s #name: Resolved 64-bit operand, 32-bit ABI. -.*: file format .*-sh64 +.*: file format .*-sh64.* Contents of section \.text: 0000 6ff0fff0 6ff0fff0 6ff0fff0 .* diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/immexpr64-1.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/immexpr64-1.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/immexpr64-1.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/immexpr64-1.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: immexpr1.s #name: Immediate resolved operands, 64-bit ABI. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/immexpr64-2.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/immexpr64-2.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/immexpr64-2.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/immexpr64-2.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: immexpr2.s #name: Resolved 64-bit operand, 64-bit ABI. -.*: file format .*-sh64 +.*: file format .*-sh64.* Contents of section \.text: 0000 6ff0fff0 6ff0fff0 6ff0fff0 .* diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/lineno.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/lineno.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/lineno.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/lineno.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: lineno.s #name: Dwarf2 line numbers vs macro opcodes -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section .text: diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/localcom-1.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/localcom-1.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/localcom-1.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/localcom-1.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: localcom-1.s #name: Datalabel on local comm symbol and equated local comm symbol -.*: file format .*-sh64 +.*: file format .*-sh64.* SYMBOL TABLE: 0+0 l d \.text 0+ diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/mix-1.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/mix-1.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/mix-1.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/mix-1.d Wed Oct 9 21:09:41 2002 @@ -2,7 +2,7 @@ #objdump: -dr #name: Mixed-ISA objects. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/mix-noexp-1.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/mix-noexp-1.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/mix-noexp-1.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/mix-noexp-1.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: mix-1.s #name: Mixed-ISA objects with -no-expand. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/movi-3.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/movi-3.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/movi-3.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/movi-3.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: movi-3.s #name: Assembler PC-rel resolved negative MOVI. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/movi32-1.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/movi32-1.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/movi32-1.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/movi32-1.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: movi-1.s #name: MOVI expansion, 32-bit ABI. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/movi32-2.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/movi32-2.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/movi32-2.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/movi32-2.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: movi-2.s #name: MOVI expansion of local symbols with relocs, 32-bit ABI. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/movi32-noexp-2.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/movi32-noexp-2.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/movi32-noexp-2.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/movi32-noexp-2.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: movi-2.s #name: MOVI non-expansion of local symbols with relocs, 32-bit ABI. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/movi64-1.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/movi64-1.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/movi64-1.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/movi64-1.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: movi-1.s #name: MOVI expansion, 64-bit ABI, 32-bit subset. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/movi64-2.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/movi64-2.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/movi64-2.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/movi64-2.d Wed Oct 9 21:09:41 2002 @@ -2,7 +2,7 @@ #objdump: -dr #name: MOVI expansion, 64-bit ABI, 64-bit subset. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/movi64-3.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/movi64-3.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/movi64-3.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/movi64-3.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: movi-2.s #name: MOVI expansion of local symbols with relocs, 64-bit ABI. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/movi64-noexp-2.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/movi64-noexp-2.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/movi64-noexp-2.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/movi64-noexp-2.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: movi-2.s #name: MOVI non-expansion of local symbols with relocs, 64-bit ABI. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/pt-1.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/pt-1.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/pt-1.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/pt-1.d Wed Oct 9 21:09:41 2002 @@ -2,7 +2,7 @@ #objdump: -dr #name: Basic SHmedia PT and PTA instructions. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: [0]+ : diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/pt-noexp-1.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/pt-noexp-1.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/pt-noexp-1.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/pt-noexp-1.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: pt-1.s #name: Basic SHmedia PT and PTA instructions with -no-expand. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: [0]+ : diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/pt32-1.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/pt32-1.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/pt32-1.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/pt32-1.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: pt-2.s #name: Inter-segment PT, 32-bit. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: 0+ : diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/pt32-noexp-2.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/pt32-noexp-2.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/pt32-noexp-2.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/pt32-noexp-2.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: pt-2.s #name: Inter-segment PT, 32-bit with -no-expand. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: 0+ : diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/pt64-1.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/pt64-1.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/pt64-1.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/pt64-1.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: pt-2.s #name: Inter-segment PT, 64-bit. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: 0+ : diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/pt64-32-1.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/pt64-32-1.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/pt64-32-1.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/pt64-32-1.d Wed Oct 9 21:09:41 2002 @@ -1,9 +1,9 @@ -#as: --isa=shmedia -expand-pt32 +#as: --isa=shmedia --abi=64 -expand-pt32 #objdump: -dr #source: pt-1.s #name: Basic SHmedia PT and PTA instructions with -expand-pt32. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: [0]+ : diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/pt64-32-2.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/pt64-32-2.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/pt64-32-2.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/pt64-32-2.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: pt-2.s #name: Inter-segment PT, 64-bit with -expand-pt32. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: 0+ : diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/pt64-noexp-2.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/pt64-noexp-2.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/pt64-noexp-2.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/pt64-noexp-2.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: pt-2.s #name: Inter-segment PT, 64-bit with -no-expand. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: 0+ : diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/ptc32-1.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/ptc32-1.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/ptc32-1.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/ptc32-1.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: ptc-1.s #name: PT constant, 32-bit ABI. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/ptc32-noexp-1.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/ptc32-noexp-1.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/ptc32-noexp-1.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/ptc32-noexp-1.d Wed Oct 9 21:09:41 2002 @@ -3,10 +3,10 @@ #source: ptc-1.s #name: PT constant, 32-bit ABI with -no-expand. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: [0]+ : -[ ]+0:[ ]+e8000610[ ]+pta/l 4 <\*ABS\*\+0x4>,tr1 +[ ]+0:[ ]+e8000610[ ]+pta/l 4 ,tr1 [ ]+0:[ ]+R_SH_PT_16 \*ABS\*\+0x100 diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/ptc64-1.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/ptc64-1.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/ptc64-1.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/ptc64-1.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: ptc-1.s #name: PT constant, 64-bit ABI. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/ptc64-32-1.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/ptc64-32-1.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/ptc64-32-1.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/ptc64-32-1.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: ptc-1.s #name: PT constant, 64-bit ABI with -expand-pt32. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/ptc64-noexp-1.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/ptc64-noexp-1.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/ptc64-noexp-1.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/ptc64-noexp-1.d Wed Oct 9 21:09:41 2002 @@ -3,11 +3,11 @@ #source: ptc-1.s #name: PT constant, 64-bit ABI with -no-expand. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: [0]+ : -[ ]+0:[ ]+e8000610[ ]+pta/l 4 <\*ABS\*\+0x4>,tr1 +[ ]+0:[ ]+e8000610[ ]+pta/l 4 ,tr1 [ ]+0:[ ]+R_SH_PT_16 \*ABS\*\+0x100 diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/ptext32-1.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/ptext32-1.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/ptext32-1.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/ptext32-1.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #objdump: -dr #name: PT, PTA, PTB expansion for external symbols, 32-bit ABI. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/ptext32-noexp-1.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/ptext32-noexp-1.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/ptext32-noexp-1.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/ptext32-noexp-1.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #objdump: -dr #name: PT, PTA, PTB non-expansion for external symbols, 32-bit ABI. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/ptext64-1.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/ptext64-1.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/ptext64-1.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/ptext64-1.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #objdump: -dr #name: PT, PTA, PTB expansion for external symbols, 64-bit ABI. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/ptext64-32-1.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/ptext64-32-1.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/ptext64-32-1.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/ptext64-32-1.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #objdump: -dr #name: PT, PTA, PTB expansion for external symbols, 64-bit ABI with -expand-pt32. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/ptext64-noexp-1.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/ptext64-noexp-1.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/ptext64-noexp-1.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/ptext64-noexp-1.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #objdump: -dr #name: PT, PTA, PTB non-expansion for external symbols, 64-bit ABI. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/rel32-1.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/rel32-1.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/rel32-1.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/rel32-1.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: rel-1.s #name: MOVI: PC-relative relocs, 32-bit ABI. -.*: file format .*-sh64 +.*: file format .*-sh64.* RELOCATION RECORDS FOR \[\.text\]: OFFSET *TYPE *VALUE diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/rel32-2.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/rel32-2.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/rel32-2.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/rel32-2.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: rel-2.s #name: MOVI: PC+1-relative relocs, 32-bit ABI. -.*: file format .*-sh64 +.*: file format .*-sh64.* RELOCATION RECORDS FOR \[\.text\]: OFFSET *TYPE *VALUE diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/rel32-3.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/rel32-3.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/rel32-3.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/rel32-3.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: rel-3.s #name: MOVI: PC-relative datalabel relocs, 32-bit ABI. -.*: file format .*-sh64 +.*: file format .*-sh64.* RELOCATION RECORDS FOR \[\.text\]: OFFSET *TYPE *VALUE diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/rel32-4.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/rel32-4.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/rel32-4.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/rel32-4.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: rel-4.s #name: MOVI: PC+1-relative datalabel relocs, 32-bit ABI. -.*: file format .*-sh64 +.*: file format .*-sh64.* RELOCATION RECORDS FOR \[\.text\]: OFFSET *TYPE *VALUE diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/rel32-5.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/rel32-5.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/rel32-5.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/rel32-5.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: rel-5.s #name: MOVI: PC-relative reloc within .text, 32-bit ABI. -.*: file format .*-sh64 +.*: file format .*-sh64.* RELOCATION RECORDS FOR \[\.text\]: OFFSET *TYPE *VALUE diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/rel64-1.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/rel64-1.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/rel64-1.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/rel64-1.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: rel-1.s #name: MOVI: PC-relative relocs, 64-bit ABI. -.*: file format .*-sh64 +.*: file format .*-sh64.* RELOCATION RECORDS FOR \[\.text\]: OFFSET TYPE VALUE diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/rel64-2.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/rel64-2.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/rel64-2.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/rel64-2.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: rel-2.s #name: MOVI: PC+1-relative relocs, 64-bit ABI. -.*: file format .*-sh64 +.*: file format .*-sh64.* RELOCATION RECORDS FOR \[\.text\]: OFFSET TYPE VALUE diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/rel64-3.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/rel64-3.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/rel64-3.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/rel64-3.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: rel-3.s #name: MOVI: PC-relative datalabel relocs, 64-bit ABI. -.*: file format .*-sh64 +.*: file format .*-sh64.* RELOCATION RECORDS FOR \[\.text\]: OFFSET TYPE VALUE diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/rel64-4.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/rel64-4.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/rel64-4.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/rel64-4.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: rel-4.s #name: MOVI: PC+1-relative datalabel relocs, 64-bit ABI. -.*: file format .*-sh64 +.*: file format .*-sh64.* RELOCATION RECORDS FOR \[\.text\]: OFFSET TYPE VALUE diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/rel64-5.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/rel64-5.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/rel64-5.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/rel64-5.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: rel-5.s #name: MOVI: PC-relative reloc within .text, 64-bit ABI. -.*: file format .*-sh64 +.*: file format .*-sh64.* RELOCATION RECORDS FOR \[\.text\]: OFFSET TYPE VALUE diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/relax-1.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/relax-1.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/relax-1.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/relax-1.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: relax-1.s #name: Assembler PT relaxation limit, from first to second state. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/relax-2.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/relax-2.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/relax-2.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/relax-2.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: relax-2.s #name: Assembler PTB relaxation limit, from first to second state. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/relax-3.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/relax-3.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/relax-3.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/relax-3.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: relax-3.s #name: Assembler PC-rel MOVI relaxation limit, from first to second state. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/sh64.exp binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/sh64.exp --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/sh64.exp Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/sh64.exp Fri Sep 27 08:33:09 2002 @@ -15,7 +15,7 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: -# DejaGnu@cygnus.com +# dejagnu@gnu.org if [istarget sh64-*-*] then { set rd_test_list [lsort [glob -nocomplain $srcdir/$subdir/*.d]] diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/shift32-1.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/shift32-1.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/shift32-1.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/shift32-1.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: shift-1.s #name: Shift expressions, 32-bit ABI. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/shift32-3.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/shift32-3.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/shift32-3.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/shift32-3.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: shift-3.s #name: Shift expression, local but undefined symbol, 32-bit ABI. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/shift32-noexp-3.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/shift32-noexp-3.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/shift32-noexp-3.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/shift32-noexp-3.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: shift-3.s #name: Shift expression, local but undefined symbol, 32-bit ABI with -no-expand. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/shift64-1.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/shift64-1.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/shift64-1.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/shift64-1.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: shift-1.s #name: Shift expressions, 64-bit ABI, 32-bit subset. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/shift64-2.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/shift64-2.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/shift64-2.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/shift64-2.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: shift-2.s #name: Shift expressions, 64-bit ABI, 64-bit subset. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/shift64-3.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/shift64-3.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/shift64-3.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/shift64-3.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: shift-3.s #name: Shift expression, local but undefined symbol, 64-bit ABI. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/shift64-noexp-3.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/shift64-noexp-3.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/shift64-noexp-3.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/shift64-noexp-3.d Wed Oct 9 21:09:41 2002 @@ -3,7 +3,7 @@ #source: shift-3.s #name: Shift expression, local but undefined symbol, 64-bit ABI with -no-expand. -.*: file format .*-sh64 +.*: file format .*-sh64.* Disassembly of section \.text: diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/syntax-1.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/syntax-1.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/syntax-1.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/syntax-1.d Wed Oct 9 21:09:41 2002 @@ -1,8 +1,8 @@ -#as: --isa=shmedia --no-exp +#as: --isa=shmedia --abi=64 --no-exp #objdump: -d #name: Minimum SH64 Syntax Support. -.*: file format elf64-sh64 +.*: file format elf64-sh64.* Disassembly of section .text: diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/syntax-2.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/syntax-2.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/syntax-2.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/syntax-2.d Wed Oct 9 21:09:41 2002 @@ -1,8 +1,8 @@ -#as: --isa=shmedia +#as: --isa=shmedia --abi=64 #objdump: -d #name: Minimum SH64 Syntax Support - Pseudos. -dump.o: file format elf64-sh64 +dump.o: file format elf64-sh64.* Disassembly of section .text: diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/ua32-1.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/ua32-1.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/ua32-1.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/ua32-1.d Wed Oct 9 21:09:41 2002 @@ -6,7 +6,7 @@ # Note that the relocs for externsym0 + 3 and externsym2 + 42 are # partial-in-place, i.e. REL-like, and are not displayed correctly. -.*: file format .*-sh64 +.*: file format .*-sh64.* RELOCATION RECORDS FOR \[\.rodata\]: OFFSET *TYPE *VALUE diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/ua64-1.d binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/ua64-1.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sh/sh64/ua64-1.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sh/sh64/ua64-1.d Wed Oct 9 21:09:41 2002 @@ -6,7 +6,7 @@ # Note that the relocs for externsym0 + 3 and externsym2 + 42 are # partial-in-place, i.e. REL-like, and are not displayed correctly. -.*: file format .*-sh64 +.*: file format .*-sh64.* RELOCATION RECORDS FOR \[\.rodata\]: OFFSET TYPE VALUE diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sparc/pcrel.d binutils-2.13.90.0.10/gas/testsuite/gas/sparc/pcrel.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sparc/pcrel.d Sun Feb 3 11:22:32 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sparc/pcrel.d Fri Sep 27 08:33:09 2002 @@ -20,8 +20,8 @@ Disassembly of section .data: ... 8: R_SPARC_32 .text\+0x10 c: R_SPARC_DISP32 .text\+0x10 - 10: R_SPARC_32 .text\+0x10 - 14: R_SPARC_DISP32 .text\+0x10 + 10: R_SPARC_32 .text\+0x14 + 14: R_SPARC_DISP32 .text\+0x14 18: R_SPARC_32 foo 1c: R_SPARC_DISP32 foo 20: R_SPARC_32 foo\+0x10 diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sparc/pcrel.s binutils-2.13.90.0.10/gas/testsuite/gas/sparc/pcrel.s --- binutils-2.13.90.0.4/gas/testsuite/gas/sparc/pcrel.s Sun Feb 3 11:22:32 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sparc/pcrel.s Fri Sep 27 08:33:09 2002 @@ -11,8 +11,8 @@ foo: nop .word 1 .word 1b + 16 .word %r_disp32(1b + 16) - .word 1b + 16 - .word %r_disp32(1b + 16) + .word 2b + 16 + .word %r_disp32(2b + 16) 3: .word foo .word %r_disp32(foo) .word foo + 16 diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sparc/pcrel64.d binutils-2.13.90.0.10/gas/testsuite/gas/sparc/pcrel64.d --- binutils-2.13.90.0.4/gas/testsuite/gas/sparc/pcrel64.d Sun Feb 3 11:22:32 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sparc/pcrel64.d Fri Sep 27 08:33:09 2002 @@ -20,8 +20,8 @@ Disassembly of section .data: ... 8: R_SPARC_32 .text\+0x10 c: R_SPARC_DISP32 .text\+0x10 - 10: R_SPARC_32 .text\+0x10 - 14: R_SPARC_DISP32 .text\+0x10 + 10: R_SPARC_32 .text\+0x14 + 14: R_SPARC_DISP32 .text\+0x14 18: R_SPARC_32 foo 1c: R_SPARC_DISP32 foo 20: R_SPARC_32 foo\+0x10 diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sparc/pcrel64.s binutils-2.13.90.0.10/gas/testsuite/gas/sparc/pcrel64.s --- binutils-2.13.90.0.4/gas/testsuite/gas/sparc/pcrel64.s Sun Feb 3 11:22:32 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sparc/pcrel64.s Fri Sep 27 08:33:09 2002 @@ -11,8 +11,8 @@ foo: nop .word 1 .word 1b + 16 .word %r_disp32(1b + 16) - .word 1b + 16 - .word %r_disp32(1b + 16) + .word 2b + 16 + .word %r_disp32(2b + 16) 3: .word foo .word %r_disp32(foo) .word foo + 16 diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/sparc/sparc.exp binutils-2.13.90.0.10/gas/testsuite/gas/sparc/sparc.exp --- binutils-2.13.90.0.4/gas/testsuite/gas/sparc/sparc.exp Sun Feb 3 11:22:32 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gas/sparc/sparc.exp Fri Sep 27 08:33:09 2002 @@ -16,10 +16,21 @@ proc gas_64_check { } { return [regexp "elf64\[_-\]sparc" $nm_help]; } +proc sparc_elf_setup { } { + setup_xfail "sparc*-*-*aout*" "sparc*-*-sunos4*" "sparc*-*-vxworks*" + setup_xfail "sparc*-fujitsu-none" "sparc*-*-*n*bsd*" + setup_xfail "sparc*-*-coff" "sparc*-*-lynxos*" + clear_xfail "sparc64*-*-*n*bsd*" +} + if [istarget sparc*-*-*] { run_dump_test "synth" + # The next three tests are ELF only. + sparc_elf_setup run_dump_test "unalign" + sparc_elf_setup run_dump_test "pcrel" + sparc_elf_setup run_dump_test "plt" if [gas_64_check] { run_dump_test "asi" diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/tic54x/align.d binutils-2.13.90.0.10/gas/testsuite/gas/tic54x/align.d --- binutils-2.13.90.0.4/gas/testsuite/gas/tic54x/align.d Fri Nov 16 14:05:52 2001 +++ binutils-2.13.90.0.10/gas/testsuite/gas/tic54x/align.d Fri Sep 27 08:33:09 2002 @@ -5,7 +5,7 @@ Sections: Idx Name Size VMA LMA File off Algn - 0 .text 000000c0 00000000 00000000 0000.... 2..7 + 0 .text 00000089 00000000 00000000 0000.... 2..7 CONTENTS, ALLOC, LOAD, .... 1 .data 00000005 00000000 00000000 0000.... 2..1 CONTENTS, ALLOC, LOAD, DATA @@ -53,4 +53,3 @@ Disassembly of section .text: 86: 0005.* 87: 0006.* 88: 0007.* - ... diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/tic54x/align.s binutils-2.13.90.0.10/gas/testsuite/gas/tic54x/align.s --- binutils-2.13.90.0.4/gas/testsuite/gas/tic54x/align.s Fri Nov 16 14:05:52 2001 +++ binutils-2.13.90.0.10/gas/testsuite/gas/tic54x/align.s Fri Sep 27 08:33:09 2002 @@ -20,6 +20,8 @@ align8 .word 8 align128 .byte 4 .word 0,1,2,3,4,5,6,7 * TI .text section total size is 0x89 words; GAS fills to 0xc0 +* no, it doesn't fill post 2002-05-23 write.c change since we don't define +# HANDLE_ALIGN or SUB_SEGMENT_ALIGN. .data .field 2, 3 .field 11, 8 diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/tic54x/extaddr.d binutils-2.13.90.0.10/gas/testsuite/gas/tic54x/extaddr.d --- binutils-2.13.90.0.4/gas/testsuite/gas/tic54x/extaddr.d Fri Nov 16 14:05:53 2001 +++ binutils-2.13.90.0.10/gas/testsuite/gas/tic54x/extaddr.d Fri Sep 27 08:33:09 2002 @@ -53,5 +53,3 @@ Disassembly of section .text: 10080: f881.* 10081: 0080.* .*10080: ARELEXT.* - ... - diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/v850/basic.exp binutils-2.13.90.0.10/gas/testsuite/gas/v850/basic.exp --- binutils-2.13.90.0.4/gas/testsuite/gas/v850/basic.exp Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.10/gas/testsuite/gas/v850/basic.exp Fri Sep 27 08:33:09 2002 @@ -15,7 +15,7 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ # Please email any bugs, comments, and/or additions to this file to: -# DejaGnu@cygnus.com +# dejagnu@gnu.org # Written by Cygnus Support. diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/vax/elf-rel.d binutils-2.13.90.0.10/gas/testsuite/gas/vax/elf-rel.d --- binutils-2.13.90.0.4/gas/testsuite/gas/vax/elf-rel.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/gas/testsuite/gas/vax/elf-rel.d Wed Oct 2 10:17:20 2002 @@ -0,0 +1,41 @@ +#objdump: -sr +#name: VAX ELF relocations + +# Test VAX ELF relocations + +.*: file format elf32-vax + +RELOCATION RECORDS FOR \[\.text\]: +OFFSET [ ]+ TYPE VALUE +00000015 R_VAX_PLT32 text_vax_plt32 +00000028 R_VAX_GOT32 text_vax_got32 +0000003b R_VAX_GOT32 text_vax_got32\+0x00000020 +00000005 R_VAX_PC8 text_vax_pc8 +00000009 R_VAX_PC16 text_vax_pc16 +0000000e R_VAX_PC32 text_vax_pc32 +0000001b R_VAX_PC8 text_vax_pc8 +0000001e R_VAX_PC16 text_vax_pc16 +00000022 R_VAX_PC32 text_vax_pc32 +0000002e R_VAX_PC8 text_vax_pc8\+0x00000008 +00000031 R_VAX_PC16 text_vax_pc16\+0x00000010 +00000035 R_VAX_PC32 text_vax_pc32\+0x00000020 + + +RELOCATION RECORDS FOR \[\.data\]: +OFFSET [ ]+ TYPE VALUE +00000000 R_VAX_8 data_vax_8 +00000001 R_VAX_16 data_vax_16 +00000003 R_VAX_32 data_vax_32 +00000007 R_VAX_8 data_vax_8\+0x00000008 +00000008 R_VAX_16 data_vax_16\+0x00000010 +0000000a R_VAX_32 data_vax_32\+0x00000020 + + +Contents of section \.text: + 0000 0000fb00 affafb00 cff5fffb 00efeeff .* + 0010 fffffb00 ef000000 00d5afe4 d5cfe0ff .* + 0020 d5efdaff ffffd5ef 00000000 d5afd9d5 .* + 0030 cfddffd5 efe7ffff ffd5ef00 00000004 .* +Contents of section \.data: + 0000 00000000 00000000 00000000 0000 .* +#pass diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/vax/elf-rel.s binutils-2.13.90.0.10/gas/testsuite/gas/vax/elf-rel.s --- binutils-2.13.90.0.4/gas/testsuite/gas/vax/elf-rel.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/gas/testsuite/gas/vax/elf-rel.s Wed Oct 2 10:17:20 2002 @@ -0,0 +1,30 @@ + .data + + .byte data_vax_8 + .word data_vax_16 + .long data_vax_32 + + .byte data_vax_8+8 + .word data_vax_16+16 + .long data_vax_32+32 + + .text + .globl x +x: + .word 0 + + calls $0, b`text_vax_pc8 + calls $0, w`text_vax_pc16 + calls $0, l`text_vax_pc32 + calls $0, text_vax_plt32 + + tstl b`text_vax_pc8 + tstl w`text_vax_pc16 + tstl l`text_vax_pc32 + tstl text_vax_got32 + + tstl b`text_vax_pc8+8 + tstl w`text_vax_pc16+16 + tstl l`text_vax_pc32+32 + tstl text_vax_got32+32 + ret diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/vax/quad.exp binutils-2.13.90.0.10/gas/testsuite/gas/vax/quad.exp --- binutils-2.13.90.0.4/gas/testsuite/gas/vax/quad.exp Fri Mar 23 13:54:55 2001 +++ binutils-2.13.90.0.10/gas/testsuite/gas/vax/quad.exp Wed Dec 31 16:00:00 1969 @@ -1,23 +0,0 @@ -proc do_quad {} { - set testname "quad.s: quadword immediate values" - set x1 0 - set x2 0 - set x3 0 - gas_start "quad.s" "-al" - while 1 { - expect { - -re "^ +2\[ \t\]+0000+ 7D8F7856\[ \t\]+movq\[^\n\]*\n" { set x1 1 } - -re "^ +2\[ \t\]+3412DDCC\[^\n\]*\n" { set x2 1 } - -re "^ +2\[ \t\]+BBAA50\[ \t\]*\r\n" { set x3 1 } - -re "\[^\n\]*\n" { } - timeout { perror "timeout\n"; break } - eof { break } - } - } - gas_finish - if [all_ones $x1 $x2 $x3] then { pass $testname } else { fail $testname } -} - -if [istarget vax-*-*] then { - do_quad -} diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/vax/quad.s binutils-2.13.90.0.10/gas/testsuite/gas/vax/quad.s --- binutils-2.13.90.0.4/gas/testsuite/gas/vax/quad.s Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.10/gas/testsuite/gas/vax/quad.s Fri Sep 27 08:33:09 2002 @@ -1,2 +1,3 @@ .text movq $0xaabbccdd12345678,r0 + .p2align 2 diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/vax/quad_elf.s binutils-2.13.90.0.10/gas/testsuite/gas/vax/quad_elf.s --- binutils-2.13.90.0.4/gas/testsuite/gas/vax/quad_elf.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/gas/testsuite/gas/vax/quad_elf.s Fri Sep 27 08:33:09 2002 @@ -0,0 +1,3 @@ + .text + movq $0xaabbccdd12345678,%r0 + .p2align 2 diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/vax/vax.exp binutils-2.13.90.0.10/gas/testsuite/gas/vax/vax.exp --- binutils-2.13.90.0.4/gas/testsuite/gas/vax/vax.exp Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/gas/testsuite/gas/vax/vax.exp Wed Oct 2 10:17:20 2002 @@ -0,0 +1,35 @@ +# +# Some generic VAX tests +# + +proc do_quad {} { + set testname "quad.s: quadword immediate values" + set x1 0 + set x2 0 + set x3 0 + set file "quad.s" + if [istarget vax-*-*elf*] { + set file "quad_elf.s" + } + gas_start $file "-al" + while 1 { + expect { + -re "^ +2\[ \t\]+0000+ 7D8F7856\[ \t\]+movq\[^\n\]*\n" { set x1 1 } + -re "^ +2\[ \t\]+3412DDCC\[^\n\]*\n" { set x2 1 } + -re "^ +2\[ \t\]+BBAA50\[ \t\]*\r\n" { set x3 1 } + -re "\[^\n\]*\n" { } + timeout { perror "timeout\n"; break } + eof { break } + } + } + gas_finish + if [all_ones $x1 $x2 $x3] then { pass $testname } else { fail $testname } +} + +if [istarget vax-*-* ] then { + do_quad + + if [istarget vax-*-*elf*] { + run_dump_test "elf-rel" + } +} diff -uprN binutils-2.13.90.0.4/gas/testsuite/gas/vtable/vtable.exp binutils-2.13.90.0.10/gas/testsuite/gas/vtable/vtable.exp --- binutils-2.13.90.0.4/gas/testsuite/gas/vtable/vtable.exp Mon Oct 1 15:25:25 2001 +++ binutils-2.13.90.0.10/gas/testsuite/gas/vtable/vtable.exp Fri Sep 27 08:33:09 2002 @@ -14,38 +14,39 @@ proc run_list_test { name opts } { pass $testname } +# These tests are not (yet) supported on some targets. +proc vtable_setup_xfails { } { + setup_xfail "alpha*-*" "arc-*" "avr-*" "d30v-*" + setup_xfail "h8300*-*" "hppa*64*-*-*hpux*" + setup_xfail "i370-*" "i860-*" "i960-*" "ia64-*" "ip2k-*" + setup_xfail "mn10200-*" "or32-*" "sparc64*-*" +} + # Vtable bits are only supported by ELF targets. if { ( [istarget "*-*-elf*"] || [istarget "*-*-linux*"]) && ![istarget *-*-linux*aout*] + && ![istarget *-*-linux*ecoff*] && ![istarget *-*-linux*oldld*] } then { - - # These tests are not (yet) supported on some targets. - if { [istarget "ia64-*"] - || [istarget "hppa*64*-*-*"] - || [istarget "i960-*-*"] - || [istarget "arc*-*-*"] - || [istarget "alpha*-*-*"] - || [istarget "sparc64*-*-*"] - || [istarget "h8300*-*-*"] - || [istarget "d30v-*-*"] } then { - return - } - - # not yet supported by ARC - if {[istarget "arc*-*-*"]} { - return - } - run_dump_test "inherit0" + vtable_setup_xfails + run_dump_test "inherit0" + + # This particular test is supposed to fail.. run_list_test "inherit1" "-al" # The vtable entry results are different on Rel and Rela targets. - if {[istarget "i*86-*-*"] - || [istarget "d10v-*-*"] - || [istarget "mips*-*-*"] - || [istarget "strongarm*-*-*"] - || [istarget "xscale*-*-*"] - || [istarget "arm*-*-*"] } then { + vtable_setup_xfails + if {[istarget "arm*-*"] + || [istarget "arc-*"] + || [istarget "d10v-*"] + || [istarget "dlx-*"] + || [istarget "i*86-*"] + || [istarget "m32r-*"] + || [istarget "mips*-*"] + || [istarget "m68hc*-*"] + || [istarget "or32-*"] + || [istarget "strongarm*-*"] + || [istarget "xscale*-*"] } then { run_dump_test "entry0" diff -uprN binutils-2.13.90.0.4/gas/testsuite/gasp/gasp.exp binutils-2.13.90.0.10/gas/testsuite/gasp/gasp.exp --- binutils-2.13.90.0.4/gas/testsuite/gasp/gasp.exp Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.10/gas/testsuite/gasp/gasp.exp Fri Sep 27 08:33:09 2002 @@ -38,10 +38,3 @@ foreach src [ lsort [ glob $srcdir/gasp/ regsub "^.*/(\[^/\]*)$" $t "gasp MRI \\1" testname gasp_test $t $testname "-M" } - -# FIXME: this is here cause of a bug in DejaGnu 1.1.1. When it is no longer -# in use, then this can be removed. -if [info exists errorInfo] then { - unset errorInfo -} - diff -uprN binutils-2.13.90.0.4/gas/testsuite/lib/gas-defs.exp binutils-2.13.90.0.10/gas/testsuite/lib/gas-defs.exp --- binutils-2.13.90.0.4/gas/testsuite/lib/gas-defs.exp Wed Jul 17 11:38:29 2002 +++ binutils-2.13.90.0.10/gas/testsuite/lib/gas-defs.exp Fri Sep 27 08:33:09 2002 @@ -16,7 +16,7 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: -# DejaGnu@cygnus.com +# dejagnu@gnu.org # This file was written by Ken Raeburn (raeburn@cygnus.com). diff -uprN binutils-2.13.90.0.4/gas/write.c binutils-2.13.90.0.10/gas/write.c --- binutils-2.13.90.0.4/gas/write.c Sat Jun 8 20:44:52 2002 +++ binutils-2.13.90.0.10/gas/write.c Fri Sep 27 08:33:09 2002 @@ -28,28 +28,67 @@ #include "output-file.h" #include "dwarf2dbg.h" -/* This looks like a good idea. Let's try turning it on always, for now. */ -#undef BFD_FAST_SECTION_FILL -#define BFD_FAST_SECTION_FILL - #ifndef TC_ADJUST_RELOC_COUNT -#define TC_ADJUST_RELOC_COUNT(FIXP,COUNT) +#define TC_ADJUST_RELOC_COUNT(FIX, COUNT) #endif #ifndef TC_FORCE_RELOCATION -#define TC_FORCE_RELOCATION(FIXP) 0 +#define TC_FORCE_RELOCATION(FIX) \ + (S_FORCE_RELOC ((FIX)->fx_addsy)) +#endif + +#ifndef TC_FORCE_RELOCATION_ABS +#define TC_FORCE_RELOCATION_ABS(FIX) \ + (TC_FORCE_RELOCATION (FIX)) +#endif + +#ifndef TC_FORCE_RELOCATION_LOCAL +#define TC_FORCE_RELOCATION_LOCAL(FIX) \ + (!(FIX)->fx_pcrel \ + || (FIX)->fx_plt \ + || TC_FORCE_RELOCATION (FIX)) +#endif + +#ifndef TC_FORCE_RELOCATION_SUB_SAME +#define TC_FORCE_RELOCATION_SUB_SAME(FIX, SEG) \ + (! SEG_NORMAL (SEG)) #endif -#ifndef TC_FORCE_RELOCATION_SECTION -#define TC_FORCE_RELOCATION_SECTION(FIXP,SEG) TC_FORCE_RELOCATION(FIXP) +#ifndef TC_FORCE_RELOCATION_SUB_ABS +#define TC_FORCE_RELOCATION_SUB_ABS(FIX) \ + (S_FORCE_RELOC ((FIX)->fx_subsy)) +#endif + +#ifndef TC_FORCE_RELOCATION_SUB_LOCAL +#ifdef DIFF_EXPR_OK +#define TC_FORCE_RELOCATION_SUB_LOCAL(FIX) \ + (S_FORCE_RELOC ((FIX)->fx_subsy)) +#else +#define TC_FORCE_RELOCATION_SUB_LOCAL(FIX) 1 +#endif +#endif + +#ifndef TC_VALIDATE_FIX_SUB +#ifdef UNDEFINED_DIFFERENCE_OK +/* The PA needs this for PIC code generation. */ +#define TC_VALIDATE_FIX_SUB(FIX) 1 +#else +#ifdef BFD_ASSEMBLER +#define TC_VALIDATE_FIX_SUB(FIX) \ + ((FIX)->fx_r_type == BFD_RELOC_GPREL32 \ + || (FIX)->fx_r_type == BFD_RELOC_GPREL16) +#else +#define TC_VALIDATE_FIX_SUB(FIX) 0 +#endif +#endif #endif #ifndef TC_LINKRELAX_FIXUP #define TC_LINKRELAX_FIXUP(SEG) 1 #endif -#ifndef TC_FIX_ADJUSTABLE -#define TC_FIX_ADJUSTABLE(fix) 1 +#ifndef MD_APPLY_SYM_VALUE +#define MD_APPLY_SYM_VALUE(FIX) 1 #endif #ifndef TC_FINALIZE_SYMS_BEFORE_SIZE_SEG @@ -57,7 +96,7 @@ #endif #ifndef MD_PCREL_FROM_SECTION -#define MD_PCREL_FROM_SECTION(FIXP, SEC) md_pcrel_from(FIXP) +#define MD_PCREL_FROM_SECTION(FIX, SEC) md_pcrel_from (FIX) #endif #ifndef WORKING_DOT_WORD @@ -69,6 +108,12 @@ extern const int md_long_jump_size; int finalize_syms = 0; int symbol_table_frozen; + +symbolS *abs_section_sym; + +/* Remember the value of dot when parsing expressions. */ +addressT dot_value; + void print_fixup PARAMS ((fixS *)); #ifdef BFD_ASSEMBLER @@ -109,18 +154,17 @@ int magic_number_for_object_file = DEFAU static int n_fixups; #ifdef BFD_ASSEMBLER -static fixS *fix_new_internal PARAMS ((fragS *, int where, int size, - symbolS *add, symbolS *sub, - offsetT offset, int pcrel, - bfd_reloc_code_real_type r_type)); +#define RELOC_ENUM enum bfd_reloc_code_real #else +#define RELOC_ENUM int +#endif + static fixS *fix_new_internal PARAMS ((fragS *, int where, int size, symbolS *add, symbolS *sub, offsetT offset, int pcrel, - int r_type)); -#endif + RELOC_ENUM r_type)); #if defined (BFD_ASSEMBLER) || (!defined (BFD) && !defined (OBJ_VMS)) -static long fixup_segment PARAMS ((fixS * fixP, segT this_segment_type)); +static long fixup_segment PARAMS ((fixS *, segT)); #endif static relax_addressT relax_align PARAMS ((relax_addressT addr, int align)); #if defined (BFD_ASSEMBLER) || ! defined (BFD) @@ -130,6 +174,7 @@ static fragS *chain_frchains_together_1 static void chain_frchains_together PARAMS ((bfd *, segT, PTR)); static void cvt_frag_to_fill PARAMS ((segT, fragS *)); static void adjust_reloc_syms PARAMS ((bfd *, asection *, PTR)); +static void fix_segment PARAMS ((bfd *, asection *, PTR)); static void write_relocs PARAMS ((bfd *, asection *, PTR)); static void write_contents PARAMS ((bfd *, asection *, PTR)); static void set_symtab PARAMS ((void)); @@ -142,9 +187,6 @@ static void cvt_frag_to_fill PARAMS ((ob static void remove_subsegs PARAMS ((frchainS *, int, fragS **, fragS **)); static void relax_and_size_all_segments PARAMS ((void)); #endif -#if defined (BFD_ASSEMBLER) && defined (OBJ_COFF) && defined (TE_GO32) -static void set_segment_vma PARAMS ((bfd *, asection *, PTR)); -#endif /* Create a fixS in obstack 'notes'. */ @@ -158,11 +200,7 @@ fix_new_internal (frag, where, size, add symbolS *sub_symbol; /* X_op_symbol. */ offsetT offset; /* X_add_number. */ int pcrel; /* TRUE if PC-relative relocation. */ -#ifdef BFD_ASSEMBLER - bfd_reloc_code_real_type r_type; /* Relocation type. */ -#else - int r_type; /* Relocation type. */ -#endif + RELOC_ENUM r_type ATTRIBUTE_UNUSED; /* Relocation type. */ { fixS *fixP; @@ -182,6 +220,7 @@ fix_new_internal (frag, where, size, add fixP->fx_addsy = add_symbol; fixP->fx_subsy = sub_symbol; fixP->fx_offset = offset; + fixP->fx_dot_value = dot_value; fixP->fx_pcrel = pcrel; fixP->fx_plt = 0; #if defined(NEED_FX_R_TYPE) || defined (BFD_ASSEMBLER) @@ -253,11 +292,7 @@ fix_new (frag, where, size, add_symbol, symbolS *add_symbol; /* X_add_symbol. */ offsetT offset; /* X_add_number. */ int pcrel; /* TRUE if PC-relative relocation. */ -#ifdef BFD_ASSEMBLER - bfd_reloc_code_real_type r_type; /* Relocation type. */ -#else - int r_type; /* Relocation type. */ -#endif + RELOC_ENUM r_type; /* Relocation type. */ { return fix_new_internal (frag, where, size, add_symbol, (symbolS *) NULL, offset, pcrel, r_type); @@ -274,11 +309,7 @@ fix_new_exp (frag, where, size, exp, pcr int size; /* 1, 2, or 4 usually. */ expressionS *exp; /* Expression. */ int pcrel; /* TRUE if PC-relative relocation. */ -#ifdef BFD_ASSEMBLER - bfd_reloc_code_real_type r_type; /* Relocation type. */ -#else - int r_type; /* Relocation type. */ -#endif + RELOC_ENUM r_type; /* Relocation type. */ { symbolS *add = NULL; symbolS *sub = NULL; @@ -735,6 +766,9 @@ dump_section_relocs (abfd, sec, stream_) #define EMIT_SECTION_SYMBOLS 1 #endif +/* This pass over fixups decides whether symbols can be replaced with + section symbols. */ + static void adjust_reloc_syms (abfd, sec, xxx) bfd *abfd ATTRIBUTE_UNUSED; @@ -769,64 +803,53 @@ adjust_reloc_syms (abfd, sec, xxx) point. It is possible to see unresolved expression symbols, though, since they are not in the regular symbol table. */ - if (sym != NULL) - resolve_symbol_value (sym); + resolve_symbol_value (sym); if (fixp->fx_subsy != NULL) resolve_symbol_value (fixp->fx_subsy); /* If this symbol is equated to an undefined symbol, convert the fixup to being against that symbol. */ - if (sym != NULL && symbol_equated_reloc_p (sym)) + if (symbol_equated_reloc_p (sym)) { fixp->fx_offset += symbol_get_value_expression (sym)->X_add_number; sym = symbol_get_value_expression (sym)->X_add_symbol; fixp->fx_addsy = sym; } - if (sym != NULL && symbol_mri_common_p (sym)) + if (symbol_mri_common_p (sym)) { /* These symbols are handled specially in fixup_segment. */ - goto done; + continue; } - symsec = S_GET_SEGMENT (sym); + /* If the symbol is undefined, common, weak, or global (ELF + shared libs), we can't replace it with the section symbol. */ + if (S_FORCE_RELOC (fixp->fx_addsy)) + continue; + + /* Is there some other (target cpu dependent) reason we can't adjust + this one? (E.g. relocations involving function addresses on + the PA. */ +#ifdef tc_fix_adjustable + if (! tc_fix_adjustable (fixp)) + continue; +#endif + /* Since we're reducing to section symbols, don't attempt to reduce + anything that's already using one. */ + if (symbol_section_p (sym)) + continue; + + symsec = S_GET_SEGMENT (sym); if (symsec == NULL) abort (); if (bfd_is_abs_section (symsec)) { - /* The fixup_segment routine will not use this symbol in a - relocation unless TC_FORCE_RELOCATION returns 1. */ - if (TC_FORCE_RELOCATION (fixp)) - { - symbol_mark_used_in_reloc (fixp->fx_addsy); -#ifdef UNDEFINED_DIFFERENCE_OK - if (fixp->fx_subsy != NULL) - symbol_mark_used_in_reloc (fixp->fx_subsy); -#endif - } - goto done; - } - - /* If it's one of these sections, assume the symbol is - definitely going to be output. The code in - md_estimate_size_before_relax in tc-mips.c uses this test - as well, so if you change this code you should look at that - code. */ - if (bfd_is_und_section (symsec) - || bfd_is_com_section (symsec)) - { - symbol_mark_used_in_reloc (fixp->fx_addsy); -#ifdef UNDEFINED_DIFFERENCE_OK - /* We have the difference of an undefined symbol and some - other symbol. Make sure to mark the other symbol as used - in a relocation so that it will always be output. */ - if (fixp->fx_subsy) - symbol_mark_used_in_reloc (fixp->fx_subsy); -#endif - goto done; + /* The fixup_segment routine normally will not use this + symbol in a relocation. */ + continue; } /* Don't try to reduce relocs which refer to non-local symbols @@ -835,127 +858,51 @@ adjust_reloc_syms (abfd, sec, xxx) this will always be correct. */ if (symsec != sec && ! S_IS_LOCAL (sym)) { - boolean linkonce; - - linkonce = false; -#ifdef BFD_ASSEMBLER - if ((bfd_get_section_flags (stdoutput, symsec) & SEC_LINK_ONCE) - != 0) - linkonce = true; -#endif -#ifdef OBJ_ELF - /* The GNU toolchain uses an extension for ELF: a section - beginning with the magic string .gnu.linkonce is a - linkonce section. */ - if (strncmp (segment_name (symsec), ".gnu.linkonce", - sizeof ".gnu.linkonce" - 1) == 0) - linkonce = true; -#endif - - if (linkonce) - { - symbol_mark_used_in_reloc (fixp->fx_addsy); -#ifdef UNDEFINED_DIFFERENCE_OK - if (fixp->fx_subsy != NULL) - symbol_mark_used_in_reloc (fixp->fx_subsy); -#endif - goto done; - } - } - - /* Since we're reducing to section symbols, don't attempt to reduce - anything that's already using one. */ - if (symbol_section_p (sym)) - { - symbol_mark_used_in_reloc (fixp->fx_addsy); - goto done; - } - -#ifdef BFD_ASSEMBLER - /* We can never adjust a reloc against a weak symbol. If we - did, and the weak symbol was overridden by a real symbol - somewhere else, then our relocation would be pointing at - the wrong area of memory. */ - if (S_IS_WEAK (sym)) - { - symbol_mark_used_in_reloc (fixp->fx_addsy); - goto done; + if ((symsec->flags & SEC_LINK_ONCE) != 0 + || (IS_ELF + /* The GNU toolchain uses an extension for ELF: a + section beginning with the magic string + .gnu.linkonce is a linkonce section. */ + && strncmp (segment_name (symsec), ".gnu.linkonce", + sizeof ".gnu.linkonce" - 1) == 0)) + continue; } /* Never adjust a reloc against local symbol in a merge section with non-zero addend. */ - if ((symsec->flags & SEC_MERGE) && fixp->fx_offset) - { - symbol_mark_used_in_reloc (fixp->fx_addsy); - goto done; - } + if ((symsec->flags & SEC_MERGE) != 0 && fixp->fx_offset != 0) + continue; /* Never adjust a reloc against TLS local symbol. */ - if (symsec->flags & SEC_THREAD_LOCAL) - { - symbol_mark_used_in_reloc (fixp->fx_addsy); - goto done; - } -#endif - - /* Is there some other reason we can't adjust this one? (E.g., - call/bal links in i960-bout symbols.) */ -#ifdef obj_fix_adjustable - if (! obj_fix_adjustable (fixp)) - { - symbol_mark_used_in_reloc (fixp->fx_addsy); - goto done; - } -#endif - - /* Is there some other (target cpu dependent) reason we can't adjust - this one? (E.g. relocations involving function addresses on - the PA. */ -#ifdef tc_fix_adjustable - if (! tc_fix_adjustable (fixp)) - { - symbol_mark_used_in_reloc (fixp->fx_addsy); - goto done; - } -#endif - - /* If the section symbol isn't going to be output, the relocs - at least should still work. If not, figure out what to do - when we run into that case. + if ((symsec->flags & SEC_THREAD_LOCAL) != 0) + continue; - We refetch the segment when calling section_symbol, rather + /* We refetch the segment when calling section_symbol, rather than using symsec, because S_GET_VALUE may wind up changing the section when it calls resolve_symbol_value. */ fixp->fx_offset += S_GET_VALUE (sym); fixp->fx_addsy = section_symbol (S_GET_SEGMENT (sym)); - symbol_mark_used_in_reloc (fixp->fx_addsy); #ifdef DEBUG5 fprintf (stderr, "\nadjusted fixup:\n"); print_fixup (fixp); #endif - - done: - ; } -#if 1 /* def RELOC_REQUIRES_SYMBOL */ - else - { - /* There was no symbol required by this relocation. However, - BFD doesn't really handle relocations without symbols well. - (At least, the COFF support doesn't.) So for now we fake up - a local symbol in the absolute section. */ - - fixp->fx_addsy = section_symbol (absolute_section); -#if 0 - fixp->fx_addsy->sy_used_in_reloc = 1; -#endif - } -#endif dump_section_relocs (abfd, sec, stderr); } static void +fix_segment (abfd, sec, xxx) + bfd *abfd ATTRIBUTE_UNUSED; + asection *sec; + PTR xxx ATTRIBUTE_UNUSED; +{ + segment_info_type *seginfo = seg_info (sec); + + fixup_segment (seginfo->fix_root, sec); +} + +static void write_relocs (abfd, sec, xxx) bfd *abfd; asection *sec; @@ -973,8 +920,6 @@ write_relocs (abfd, sec, xxx) if (seginfo == NULL) return; - fixup_segment (seginfo->fix_root, sec); - n = 0; for (fixp = seginfo->fix_root; fixp; fixp = fixp->fx_next) n++; @@ -1038,10 +983,12 @@ write_relocs (abfd, sec, xxx) case bfd_reloc_ok: break; case bfd_reloc_overflow: - as_bad_where (fixp->fx_file, fixp->fx_line, _("relocation overflow")); + as_bad_where (fixp->fx_file, fixp->fx_line, + _("relocation overflow")); break; case bfd_reloc_outofrange: - as_bad_where (fixp->fx_file, fixp->fx_line, _("relocation out of range")); + as_bad_where (fixp->fx_file, fixp->fx_line, + _("relocation out of range")); break; default: as_fatal (_("%s:%u: bad return from bfd_install_relocation: %x"), @@ -1074,7 +1021,17 @@ write_relocs (abfd, sec, xxx) rather than the former. */ sym = fixp->fx_addsy; while (symbol_equated_reloc_p (sym)) - sym = symbol_get_value_expression (sym)->X_add_symbol; + { + symbolS *n; + + /* We must avoid looping, as that can occur with a badly + written program. */ + n = symbol_get_value_expression (sym)->X_add_symbol; + if (n == sym) + break; + fixp->fx_offset += symbol_get_value_expression (sym)->X_add_number; + sym = n; + } fixp->fx_addsy = sym; reloc = tc_gen_reloc (sec, fixp); @@ -1103,9 +1060,13 @@ write_relocs (abfd, sec, xxx) as_bad_where (fixp->fx_file, fixp->fx_line, _("relocation overflow")); break; + case bfd_reloc_outofrange: + as_bad_where (fixp->fx_file, fixp->fx_line, + _("relocation out of range")); + break; default: - as_fatal (_("%s:%u: bad return from bfd_install_relocation"), - fixp->fx_file, fixp->fx_line); + as_fatal (_("%s:%u: bad return from bfd_install_relocation: %x"), + fixp->fx_file, fixp->fx_line, s); } } } @@ -1411,20 +1372,6 @@ set_symtab () } #endif -#if defined (BFD_ASSEMBLER) && defined (OBJ_COFF) && defined (TE_GO32) -static void -set_segment_vma (abfd, sec, xxx) - bfd *abfd; - asection *sec; - PTR xxx ATTRIBUTE_UNUSED; -{ - static bfd_vma addr = 0; - - bfd_set_section_vma (abfd, sec, addr); - addr += bfd_section_size (abfd, sec); -} -#endif /* BFD_ASSEMBLER && OBJ_COFF && !TE_PE */ - /* Finish the subsegments. After every sub-segment, we fake an ".align ...". This conforms to BSD4.2 brane-damage. We then fake ".fill 0" because that is the kind of frag that requires least @@ -1609,14 +1556,6 @@ write_object_file () /* Relaxation has completed. Freeze all syms. */ finalize_syms = 1; -#if defined (BFD_ASSEMBLER) && defined (OBJ_COFF) && defined (TE_GO32) - /* Now that the segments have their final sizes, run through the - sections and set their vma and lma. !BFD gas sets them, and BFD gas - should too. Currently, only DJGPP uses this code, but other - COFF targets may need to execute this too. */ - bfd_map_over_sections (stdoutput, set_segment_vma, (char *) 0); -#endif - #ifndef BFD_ASSEMBLER /* Crawl the symbol chain. @@ -1936,6 +1875,15 @@ write_object_file () bfd_map_over_sections (stdoutput, adjust_reloc_syms, (char *) 0); +#ifdef tc_frob_file_before_fix + tc_frob_file_before_fix (); +#endif +#ifdef obj_frob_file_before_fix + obj_frob_file_before_fix (); +#endif + + bfd_map_over_sections (stdoutput, fix_segment, (char *) 0); + /* Set up symbol table, and write it out. */ if (symbol_rootP) { @@ -2005,13 +1953,14 @@ write_object_file () want section symbols. Otherwise, we skip local symbols and symbols that the frob_symbol macros told us to punt, but we keep such symbols if they are used in relocs. */ - if ((! EMIT_SECTION_SYMBOLS - && symbol_section_p (symp)) + if (symp == abs_section_sym + || (! EMIT_SECTION_SYMBOLS + && symbol_section_p (symp)) /* Note that S_IS_EXTERN and S_IS_LOCAL are not always opposites. Sometimes the former checks flags and the latter examines the name... */ || (!S_IS_EXTERN (symp) - && (S_IS_LOCAL (symp) || punt) + && (punt || S_IS_LOCAL (symp)) && ! symbol_used_in_reloc_p (symp))) { symbol_remove (symp, &symbol_rootP, &symbol_lastP); @@ -2119,7 +2068,7 @@ relax_frag (segment, fragP, stretch) #endif know (sym_frag != NULL); #endif - know (!(S_GET_SEGMENT (symbolP) == absolute_section) + know (S_GET_SEGMENT (symbolP) != absolute_section || sym_frag == &zero_address_frag); target += S_GET_VALUE (symbolP); @@ -2565,10 +2514,6 @@ relax_segment (segment_frag_root, segmen #if defined (BFD_ASSEMBLER) || (!defined (BFD) && !defined (OBJ_VMS)) -#ifndef TC_RELOC_RTSYM_LOC_FIXUP -#define TC_RELOC_RTSYM_LOC_FIXUP(X) (1) -#endif - /* fixup_segment() Go through all the fixS's in a segment and see which ones can be @@ -2581,32 +2526,48 @@ relax_segment (segment_frag_root, segmen These will be output later by emit_relocations(). */ static long -fixup_segment (fixP, this_segment_type) - register fixS *fixP; - segT this_segment_type; /* N_TYPE bits for segment. */ +fixup_segment (fixP, this_segment) + fixS *fixP; + segT this_segment; { long seg_reloc_count = 0; - symbolS *add_symbolP; - symbolS *sub_symbolP; valueT add_number; - int size; - char *place; - long where; - int pcrel, plt; fragS *fragP; segT add_symbol_segment = absolute_section; + if (fixP != NULL && abs_section_sym == NULL) + { +#ifndef BFD_ASSEMBLER + abs_section_sym = &abs_symbol; +#else + abs_section_sym = section_symbol (absolute_section); +#endif + } + /* If the linker is doing the relaxing, we must not do any fixups. - Well, strictly speaking that's not true -- we could do any that are - PC-relative and don't cross regions that could change size. And for the - i960 (the only machine for which we've got a relaxing linker right now), - we might be able to turn callx/callj into bal anyways in cases where we - know the maximum displacement. */ - if (linkrelax && TC_LINKRELAX_FIXUP (this_segment_type)) + Well, strictly speaking that's not true -- we could do any that + are PC-relative and don't cross regions that could change size. + And for the i960 we might be able to turn callx/callj into bal + anyways in cases where we know the maximum displacement. */ + if (linkrelax && TC_LINKRELAX_FIXUP (this_segment)) { for (; fixP; fixP = fixP->fx_next) - seg_reloc_count++; + if (!fixP->fx_done) + { + if (fixP->fx_addsy == NULL) + { + /* There was no symbol required by this relocation. + However, BFD doesn't really handle relocations + without symbols well. So fake up a local symbol in + the absolute section. */ + fixP->fx_addsy = abs_section_sym; + } + symbol_mark_used_in_reloc (fixP->fx_addsy); + if (fixP->fx_subsy != NULL) + symbol_mark_used_in_reloc (fixP->fx_subsy); + seg_reloc_count++; + } TC_ADJUST_RELOC_COUNT (fixP, seg_reloc_count); return seg_reloc_count; } @@ -2620,290 +2581,166 @@ fixup_segment (fixP, this_segment_type) fragP = fixP->fx_frag; know (fragP); - where = fixP->fx_where; - place = fragP->fr_literal + where; - size = fixP->fx_size; - add_symbolP = fixP->fx_addsy; #ifdef TC_VALIDATE_FIX - TC_VALIDATE_FIX (fixP, this_segment_type, skip); + TC_VALIDATE_FIX (fixP, this_segment, skip); #endif - sub_symbolP = fixP->fx_subsy; add_number = fixP->fx_offset; - pcrel = fixP->fx_pcrel; - plt = fixP->fx_plt; - if (add_symbolP != NULL - && symbol_mri_common_p (add_symbolP)) + if (fixP->fx_addsy != NULL + && symbol_mri_common_p (fixP->fx_addsy)) { - know (add_symbolP->sy_value.X_op == O_symbol); - add_number += S_GET_VALUE (add_symbolP); + know (fixP->fx_addsy->sy_value.X_op == O_symbol); + add_number += S_GET_VALUE (fixP->fx_addsy); fixP->fx_offset = add_number; - add_symbolP = fixP->fx_addsy = - symbol_get_value_expression (add_symbolP)->X_add_symbol; + fixP->fx_addsy + = symbol_get_value_expression (fixP->fx_addsy)->X_add_symbol; } - if (add_symbolP) - add_symbol_segment = S_GET_SEGMENT (add_symbolP); + if (fixP->fx_addsy != NULL) + add_symbol_segment = S_GET_SEGMENT (fixP->fx_addsy); - if (sub_symbolP) + if (fixP->fx_subsy != NULL) { - resolve_symbol_value (sub_symbolP); - if (add_symbolP == NULL || add_symbol_segment == absolute_section) + segT sub_symbol_segment; + resolve_symbol_value (fixP->fx_subsy); + sub_symbol_segment = S_GET_SEGMENT (fixP->fx_subsy); + if (fixP->fx_addsy != NULL + && sub_symbol_segment == add_symbol_segment + && !TC_FORCE_RELOCATION_SUB_SAME (fixP, add_symbol_segment)) { - if (add_symbolP != NULL) - { - add_number += S_GET_VALUE (add_symbolP); - add_symbolP = NULL; - fixP->fx_addsy = NULL; - } - - /* It's just -sym. */ - if (S_GET_SEGMENT (sub_symbolP) == absolute_section) - { - add_number -= S_GET_VALUE (sub_symbolP); - fixP->fx_subsy = NULL; - } - else if (pcrel - && S_GET_SEGMENT (sub_symbolP) == this_segment_type) - { - /* Should try converting to a constant. */ - goto bad_sub_reloc; - } - else - bad_sub_reloc: - as_bad_where (fixP->fx_file, fixP->fx_line, - _("negative of non-absolute symbol `%s'"), - S_GET_NAME (sub_symbolP)); - } - else if (S_GET_SEGMENT (sub_symbolP) == add_symbol_segment - && SEG_NORMAL (add_symbol_segment)) - { - /* Difference of 2 symbols from same segment. - Can't make difference of 2 undefineds: 'value' means - something different for N_UNDF. */ -#ifdef TC_I960 - /* Makes no sense to use the difference of 2 arbitrary symbols - as the target of a call instruction. */ - if (fixP->fx_tcbit) - as_bad_where (fixP->fx_file, fixP->fx_line, - _("callj to difference of two symbols")); -#endif /* TC_I960 */ - add_number += (S_GET_VALUE (add_symbolP) - - S_GET_VALUE (sub_symbolP)); + add_number += S_GET_VALUE (fixP->fx_addsy); + add_number -= S_GET_VALUE (fixP->fx_subsy); + fixP->fx_offset = add_number; + /* If the back-end code has selected a pc-relative + reloc, adjust the value to be pc-relative. */ if (1 #ifdef TC_M68K /* See the comment below about 68k weirdness. */ && 0 #endif - && pcrel) - add_number -= MD_PCREL_FROM_SECTION (fixP, this_segment_type); - - add_symbolP = NULL; - pcrel = 0; /* No further pcrel processing. */ - - /* Let the target machine make the final determination - as to whether or not a relocation will be needed to - handle this fixup. */ - if (!TC_FORCE_RELOCATION_SECTION (fixP, this_segment_type)) - { - fixP->fx_pcrel = 0; - fixP->fx_addsy = NULL; - fixP->fx_subsy = NULL; - } + && fixP->fx_pcrel) + add_number -= MD_PCREL_FROM_SECTION (fixP, this_segment); + fixP->fx_addsy = NULL; + fixP->fx_subsy = NULL; + fixP->fx_pcrel = 0; } - else + else if (sub_symbol_segment == absolute_section + && !TC_FORCE_RELOCATION_SUB_ABS (fixP)) { - /* Different segments in subtraction. */ - know (!(S_IS_EXTERNAL (sub_symbolP) - && (S_GET_SEGMENT (sub_symbolP) == absolute_section))); - - if ((S_GET_SEGMENT (sub_symbolP) == absolute_section)) - add_number -= S_GET_VALUE (sub_symbolP); - -#ifdef DIFF_EXPR_OK - else if (S_GET_SEGMENT (sub_symbolP) == this_segment_type) - { - /* Make it pc-relative. */ - if (0 + add_number -= S_GET_VALUE (fixP->fx_subsy); + fixP->fx_offset = add_number; + fixP->fx_subsy = NULL; + } + else if (sub_symbol_segment == this_segment + && !TC_FORCE_RELOCATION_SUB_LOCAL (fixP)) + { + add_number -= S_GET_VALUE (fixP->fx_subsy); + fixP->fx_offset = (add_number + fixP->fx_dot_value + + fixP->fx_frag->fr_address); + + /* Make it pc-relative. If the back-end code has not + selected a pc-relative reloc, cancel the adjustment + we do later on all pc-relative relocs. */ + if (0 #ifdef TC_M68K - /* Do this for m68k even if it's already described - as pc-relative. On the m68k, an operand of - "pc@(foo-.-2)" should address "foo" in a - pc-relative mode. */ - || 1 -#endif - || !pcrel) - { - add_number += MD_PCREL_FROM_SECTION (fixP, - this_segment_type); - pcrel = 1; - fixP->fx_pcrel = 1; - } - - add_number -= S_GET_VALUE (sub_symbolP); - sub_symbolP = 0; - fixP->fx_subsy = 0; - } -#endif -#ifdef UNDEFINED_DIFFERENCE_OK - /* The PA needs this for PIC code generation. We basically - don't want to do anything if we have the difference of two - symbols at this point. */ - else if (1) - { - /* Leave it alone. */ - } -#endif -#ifdef BFD_ASSEMBLER - else if (fixP->fx_r_type == BFD_RELOC_GPREL32 - || fixP->fx_r_type == BFD_RELOC_GPREL16) - { - /* Leave it alone. */ - } -#endif - else - { - char buf[50]; - sprint_value (buf, fragP->fr_address + where); - as_bad_where (fixP->fx_file, fixP->fx_line, - _("subtraction of two symbols in different sections `%s' {%s section} - `%s' {%s section} at file address %s"), - S_GET_NAME (add_symbolP), - segment_name (S_GET_SEGMENT (add_symbolP)), - S_GET_NAME (sub_symbolP), - segment_name (S_GET_SEGMENT (sub_symbolP)), - buf); - } + /* Do this for m68k even if it's already described + as pc-relative. On the m68k, an operand of + "pc@(foo-.-2)" should address "foo" in a + pc-relative mode. */ + || 1 +#endif + || !fixP->fx_pcrel) + add_number += MD_PCREL_FROM_SECTION (fixP, this_segment); + fixP->fx_subsy = NULL; + fixP->fx_pcrel = 1; + } + else if (!TC_VALIDATE_FIX_SUB (fixP)) + { + as_bad_where (fixP->fx_file, fixP->fx_line, + _("can't resolve `%s' {%s section} - `%s' {%s section}"), + fixP->fx_addsy ? S_GET_NAME (fixP->fx_addsy) : "0", + segment_name (add_symbol_segment), + S_GET_NAME (fixP->fx_subsy), + segment_name (sub_symbol_segment)); } } - if (add_symbolP) + if (fixP->fx_addsy) { - if (add_symbol_segment == this_segment_type && pcrel && !plt - && TC_RELOC_RTSYM_LOC_FIXUP (fixP)) + if (add_symbol_segment == this_segment + && !TC_FORCE_RELOCATION_LOCAL (fixP)) { /* This fixup was made when the symbol's segment was SEG_UNKNOWN, but it is now in the local segment. So we know how to do the address without relocation. */ -#ifdef TC_I960 - /* reloc_callj() may replace a 'call' with a 'calls' or a - 'bal', in which cases it modifies *fixP as appropriate. - In the case of a 'calls', no further work is required, - and *fixP has been set up to make the rest of the code - below a no-op. */ - reloc_callj (fixP); -#endif /* TC_I960 */ - - add_number += S_GET_VALUE (add_symbolP); - add_number -= MD_PCREL_FROM_SECTION (fixP, this_segment_type); - /* Lie. Don't want further pcrel processing. */ - pcrel = 0; - - /* Let the target machine make the final determination - as to whether or not a relocation will be needed to - handle this fixup. */ - if (!TC_FORCE_RELOCATION (fixP)) - { - fixP->fx_pcrel = 0; - fixP->fx_addsy = NULL; - } + add_number += S_GET_VALUE (fixP->fx_addsy); + fixP->fx_offset = add_number; + if (fixP->fx_pcrel) + add_number -= MD_PCREL_FROM_SECTION (fixP, this_segment); + fixP->fx_addsy = NULL; + fixP->fx_pcrel = 0; } - else + else if (add_symbol_segment == absolute_section + && !TC_FORCE_RELOCATION_ABS (fixP)) { - if (add_symbol_segment == absolute_section - && ! pcrel) - { -#ifdef TC_I960 - /* See comment about reloc_callj() above. */ - reloc_callj (fixP); -#endif /* TC_I960 */ - add_number += S_GET_VALUE (add_symbolP); - - /* Let the target machine make the final determination - as to whether or not a relocation will be needed to - handle this fixup. */ - - if (!TC_FORCE_RELOCATION (fixP)) - { - fixP->fx_addsy = NULL; - add_symbolP = NULL; - } - } - else if (add_symbol_segment == undefined_section + add_number += S_GET_VALUE (fixP->fx_addsy); + fixP->fx_offset = add_number; + fixP->fx_addsy = NULL; + } + else if (add_symbol_segment != undefined_section #ifdef BFD_ASSEMBLER - || bfd_is_com_section (add_symbol_segment) + && ! bfd_is_com_section (add_symbol_segment) #endif - ) - { -#ifdef TC_I960 - if ((int) fixP->fx_bit_fixP == 13) - { - /* This is a COBR instruction. They have only a - 13-bit displacement and are only to be used - for local branches: flag as error, don't generate - relocation. */ - as_bad_where (fixP->fx_file, fixP->fx_line, - _("can't use COBR format with external label")); - fixP->fx_addsy = NULL; - fixP->fx_done = 1; - continue; - } /* COBR. */ -#endif /* TC_I960 */ - -#ifdef OBJ_COFF -#ifdef TE_I386AIX - if (S_IS_COMMON (add_symbolP)) - add_number += S_GET_VALUE (add_symbolP); -#endif /* TE_I386AIX */ -#endif /* OBJ_COFF */ - ++seg_reloc_count; - } - else - { - seg_reloc_count++; - if (TC_FIX_ADJUSTABLE (fixP)) - add_number += S_GET_VALUE (add_symbolP); - } - } + && MD_APPLY_SYM_VALUE (fixP)) + add_number += S_GET_VALUE (fixP->fx_addsy); } - if (pcrel) + if (fixP->fx_pcrel) { - add_number -= MD_PCREL_FROM_SECTION (fixP, this_segment_type); - if (add_symbolP == 0) + add_number -= MD_PCREL_FROM_SECTION (fixP, this_segment); + if (!fixP->fx_done && fixP->fx_addsy == NULL) { -#ifndef BFD_ASSEMBLER - fixP->fx_addsy = &abs_symbol; -#else - fixP->fx_addsy = section_symbol (absolute_section); -#endif - symbol_mark_used_in_reloc (fixP->fx_addsy); - ++seg_reloc_count; + /* There was no symbol required by this relocation. + However, BFD doesn't really handle relocations + without symbols well. So fake up a local symbol in + the absolute section. */ + fixP->fx_addsy = abs_section_sym; } } if (!fixP->fx_done) - md_apply_fix3 (fixP, & add_number, this_segment_type); + md_apply_fix3 (fixP, &add_number, this_segment); + + if (!fixP->fx_done) + { + ++seg_reloc_count; + if (fixP->fx_addsy == NULL) + fixP->fx_addsy = abs_section_sym; + symbol_mark_used_in_reloc (fixP->fx_addsy); + if (fixP->fx_subsy != NULL) + symbol_mark_used_in_reloc (fixP->fx_subsy); + } - if (!fixP->fx_bit_fixP && !fixP->fx_no_overflow && size > 0) + if (!fixP->fx_bit_fixP && !fixP->fx_no_overflow && fixP->fx_size != 0) { - if ((size_t) size < sizeof (valueT)) + if (fixP->fx_size < sizeof (valueT)) { valueT mask; mask = 0; mask--; /* Set all bits to one. */ - mask <<= size * 8 - (fixP->fx_signed ? 1 : 0); + mask <<= fixP->fx_size * 8 - (fixP->fx_signed ? 1 : 0); if ((add_number & mask) != 0 && (add_number & mask) != mask) { char buf[50], buf2[50]; - sprint_value (buf, fragP->fr_address + where); + sprint_value (buf, fragP->fr_address + fixP->fx_where); if (add_number > 1000) sprint_value (buf2, add_number); else sprintf (buf2, "%ld", (long) add_number); as_bad_where (fixP->fx_file, fixP->fx_line, _("value of %s too large for field of %d bytes at %s"), - buf2, size, buf); + buf2, fixP->fx_size, buf); } /* Generic error checking. */ } #ifdef WARN_SIGNED_OVERFLOW_WORD @@ -2911,12 +2748,12 @@ fixup_segment (fixP, this_segment_type) number. We already know it is not too negative. This is to catch over-large switches generated by gcc on the 68k. */ if (!flag_signed_overflow_ok - && size == 2 + && fixP->fx_size == 2 && add_number > 0x7fff) as_bad_where (fixP->fx_file, fixP->fx_line, _("signed .word overflow; switch may be too large; %ld at 0x%lx"), (long) add_number, - (unsigned long) (fragP->fr_address + where)); + (long) (fragP->fr_address + fixP->fx_where)); #endif } /* Not a bit fix. */ diff -uprN binutils-2.13.90.0.4/gas/write.h binutils-2.13.90.0.10/gas/write.h --- binutils-2.13.90.0.4/gas/write.h Thu Mar 29 23:28:43 2001 +++ binutils-2.13.90.0.10/gas/write.h Fri Sep 27 08:33:09 2002 @@ -105,6 +105,9 @@ struct fix /* Absolute number we add in. */ valueT fx_offset; + /* The value of dot when the fixup expression was parsed. */ + addressT fx_dot_value; + /* Next fixS in linked list, or NULL. */ struct fix *fx_next; @@ -158,6 +161,8 @@ struct fix typedef struct fix fixS; extern int finalize_syms; +extern symbolS *abs_section_sym; +extern addressT dot_value; #ifndef BFD_ASSEMBLER extern char *next_object_file_charP; diff -uprN binutils-2.13.90.0.4/gprof/ChangeLog binutils-2.13.90.0.10/gprof/ChangeLog --- binutils-2.13.90.0.4/gprof/ChangeLog Thu Aug 1 17:49:32 2002 +++ binutils-2.13.90.0.10/gprof/ChangeLog Fri Sep 27 08:33:09 2002 @@ -1,3 +1,14 @@ +2002-08-22 Nick Clifton + + * gprof.c (main): Turn off default excluded functions in FLAT + profile. + +2002-08-21 John David Anglin + + * gmon_io.c (gmon_io_read_64, gmon_io_write_64): Define only if + BFD_HOST_U_64_BIT is defined. + (gmon_io_read_vma, gmon_io_write_vma): Add ifdefs. + 2002-07-30 Nick Clifton * po/tr.po: Updated Turkish translation. diff -uprN binutils-2.13.90.0.4/gprof/gmon_io.c binutils-2.13.90.0.10/gprof/gmon_io.c --- binutils-2.13.90.0.4/gprof/gmon_io.c Sun Feb 3 11:22:32 2002 +++ binutils-2.13.90.0.10/gprof/gmon_io.c Fri Sep 27 08:33:09 2002 @@ -34,8 +34,10 @@ #include "hist.h" #include "libiberty.h" +#ifdef BFD_HOST_U_64_BIT static int gmon_io_read_64 PARAMS ((FILE *, BFD_HOST_U_64_BIT *)); static int gmon_io_write_64 PARAMS ((FILE *, BFD_HOST_U_64_BIT)); +#endif static int gmon_read_raw_arc PARAMS ((FILE *, bfd_vma *, bfd_vma *, unsigned long *)); static int gmon_write_raw_arc @@ -57,6 +59,7 @@ gmon_io_read_32 (ifp, valp) return 0; } +#ifdef BFD_HOST_U_64_BIT static int gmon_io_read_64 (ifp, valp) FILE *ifp; @@ -69,6 +72,7 @@ gmon_io_read_64 (ifp, valp) *valp = bfd_get_64 (core_bfd, buf); return 0; } +#endif int gmon_io_read_vma (ifp, valp) @@ -76,7 +80,9 @@ gmon_io_read_vma (ifp, valp) bfd_vma *valp; { unsigned int val32; +#ifdef BFD_HOST_U_64_BIT BFD_HOST_U_64_BIT val64; +#endif switch (bfd_arch_bits_per_address (core_bfd)) { @@ -86,11 +92,13 @@ gmon_io_read_vma (ifp, valp) *valp = val32; break; +#ifdef BFD_HOST_U_64_BIT case 64: if (gmon_io_read_64 (ifp, &val64)) return 1; *valp = val64; break; +#endif default: fprintf (stderr, _("%s: bits per address has unexpected value of %u\n"), @@ -124,6 +132,7 @@ gmon_io_write_32 (ofp, val) return 0; } +#ifdef BFD_HOST_U_64_BIT static int gmon_io_write_64 (ofp, val) FILE *ofp; @@ -136,6 +145,7 @@ gmon_io_write_64 (ofp, val) return 1; return 0; } +#endif int gmon_io_write_vma (ofp, val) @@ -150,10 +160,12 @@ gmon_io_write_vma (ofp, val) return 1; break; +#ifdef BFD_HOST_U_64_BIT case 64: if (gmon_io_write_64 (ofp, (BFD_HOST_U_64_BIT) val)) return 1; break; +#endif default: fprintf (stderr, _("%s: bits per address has unexpected value of %u\n"), @@ -194,7 +206,9 @@ gmon_read_raw_arc (ifp, fpc, spc, cnt) bfd_vma *spc; unsigned long *cnt; { +#ifdef BFD_HOST_U_64_BIT BFD_HOST_U_64_BIT cnt64; +#endif unsigned int cnt32; if (gmon_io_read_vma (ifp, fpc) @@ -209,11 +223,13 @@ gmon_read_raw_arc (ifp, fpc, spc, cnt) *cnt = cnt32; break; +#ifdef BFD_HOST_U_64_BIT case 64: if (gmon_io_read_64 (ifp, &cnt64)) return 1; *cnt = cnt64; break; +#endif default: fprintf (stderr, _("%s: bits per address has unexpected value of %u\n"), @@ -242,10 +258,12 @@ gmon_write_raw_arc (ofp, fpc, spc, cnt) return 1; break; +#ifdef BFD_HOST_U_64_BIT case 64: if (gmon_io_write_64 (ofp, (BFD_HOST_U_64_BIT) cnt)) return 1; break; +#endif default: fprintf (stderr, _("%s: bits per address has unexpected value of %u\n"), diff -uprN binutils-2.13.90.0.4/gprof/gprof.c binutils-2.13.90.0.10/gprof/gprof.c --- binutils-2.13.90.0.4/gprof/gprof.c Thu Aug 1 17:49:32 2002 +++ binutils-2.13.90.0.10/gprof/gprof.c Fri Sep 27 08:33:09 2002 @@ -508,9 +508,7 @@ This program is free software. This pro { sym_id_add (*sp, EXCL_TIME); sym_id_add (*sp, EXCL_GRAPH); -#ifdef __alpha__ sym_id_add (*sp, EXCL_FLAT); -#endif } /* diff -uprN binutils-2.13.90.0.4/include/ChangeLog binutils-2.13.90.0.10/include/ChangeLog --- binutils-2.13.90.0.4/include/ChangeLog Thu Aug 8 22:49:56 2002 +++ binutils-2.13.90.0.10/include/ChangeLog Wed Oct 2 10:17:20 2002 @@ -1,3 +1,38 @@ +2002-09-26 Jakub Jelinek + + * elf/x86-64.h: Add TLS relocs. + +2002-09-26 Andrew Cagney + + * regs/: Delete directory. + +2002-09-19 Alexandre Oliva + + * libiberty.h (asprintf, vasprintf): Don't declare them if the + corresponding HAVE_DECL_ macro is 1. + +2002-09-19 Jakub Jelinek + + * elf/i386.h (R_386_TLS_TPOFF, R_386_TLS_IE, R_386_TLS_GOTIE): + Define. + +2002-09-19 Nathan Tallent + + * dis-asm.h: Remove (errant) trailing semicolon (;) from the + extern "C" { } declaration. + +2002-09-04 Nick Clifton + + * dis-asm.h (print_ppc_disassembler_options): Prototype. + +2002-08-28 Michael Hayes + + * coff/internal.h: Add new relocation types. + * coff/ti.h: Add file-header flags for tic4x code. + * dis-asm.h: Add standard disassembler for tic4x. + * opcode/tic4x.h: New file. + * coff/tic4x.h: New file + 2002-08-07 H.J. Lu * bfdlink.h (bfd_link_info): Add allow_undefined_version. diff -uprN binutils-2.13.90.0.4/include/coff/internal.h binutils-2.13.90.0.10/include/coff/internal.h --- binutils-2.13.90.0.4/include/coff/internal.h Mon Aug 27 11:44:52 2001 +++ binutils-2.13.90.0.10/include/coff/internal.h Fri Sep 27 08:33:09 2002 @@ -600,6 +600,7 @@ struct internal_reloc }; #define R_DIR16 1 +#define R_REL24 5 #define R_DIR32 6 #define R_IMAGEBASE 7 #define R_RELBYTE 15 @@ -608,12 +609,15 @@ struct internal_reloc #define R_PCRBYTE 18 #define R_PCRWORD 19 #define R_PCRLONG 20 +#define R_PCR24 21 #define R_IPRSHORT 24 #define R_IPRLONG 26 #define R_GETSEG 29 #define R_GETPA 30 #define R_TAGWORD 31 #define R_JUMPTARG 32 /* strange 29k 00xx00xx reloc */ +#define R_PARTLS16 32 +#define R_PARTMS8 33 #define R_PCR16L 128 #define R_PCR26L 129 diff -uprN binutils-2.13.90.0.4/include/coff/ti.h binutils-2.13.90.0.10/include/coff/ti.h --- binutils-2.13.90.0.4/include/coff/ti.h Fri Nov 16 14:05:53 2001 +++ binutils-2.13.90.0.10/include/coff/ti.h Fri Sep 27 08:33:09 2002 @@ -118,6 +118,7 @@ struct external_filehdr #define F_RELFLG (0x0001) #define F_EXEC (0x0002) #define F_LNNO (0x0004) +#define F_VERS (0x0010) /* TMS320C4x code */ /* F_LSYMS needs to be redefined in your source file */ #define F_LSYMS_TICOFF (0x0010) /* normal COFF is 0x8 */ diff -uprN binutils-2.13.90.0.4/include/coff/tic4x.h binutils-2.13.90.0.10/include/coff/tic4x.h --- binutils-2.13.90.0.4/include/coff/tic4x.h Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/include/coff/tic4x.h Fri Sep 27 08:33:09 2002 @@ -0,0 +1,46 @@ +/* TI COFF information for Texas Instruments TMS320C4X/C3X. + This file customizes the settings in coff/ti.h. + + Copyright 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 + 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 COFF_TIC4X_H +#define COFF_TIC4X_H + +#define TIC4X_TARGET_ID 0x0093 +/* Octets per byte, as a power of two. */ +#define TI_TARGET_ID TIC4X_TARGET_ID +#define OCTETS_PER_BYTE_POWER 2 +/* Add to howto to get absolute/sect-relative version. */ +#define HOWTO_BANK 6 +#define TICOFF_TARGET_ARCH bfd_arch_tic4x +/* We use COFF2. */ +#define TICOFF_DEFAULT_MAGIC TICOFF2MAGIC + +#define TICOFF_TARGET_MACHINE_GET (FLAGS) \ + (((FLAGS) & F_VERS) ? bfd_mach_c4x : bfd_mach_c3x) + +#define TICOFF_TARGET_MACHINE_SET (FLAGSP, MACHINE) \ + do \ + { \ + if ((MACHINE) == bfd_mach_c4x) \ + *(FLAGSP) = F_VERS; \ + } \ + while (0) + +#include "coff/ti.h" + +#endif /* COFF_TIC4X_H */ diff -uprN binutils-2.13.90.0.4/include/dis-asm.h binutils-2.13.90.0.10/include/dis-asm.h --- binutils-2.13.90.0.4/include/dis-asm.h Mon Jul 29 08:19:19 2002 +++ binutils-2.13.90.0.10/include/dis-asm.h Fri Sep 27 08:33:09 2002 @@ -229,6 +229,7 @@ extern int print_insn_rs6000 PARAMS ((b extern int print_insn_s390 PARAMS ((bfd_vma, disassemble_info*)); extern int print_insn_sh PARAMS ((bfd_vma, disassemble_info*)); extern int print_insn_tic30 PARAMS ((bfd_vma, disassemble_info*)); +extern int print_insn_tic4x 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_v850 PARAMS ((bfd_vma, disassemble_info*)); @@ -242,6 +243,7 @@ extern int print_insn_frv PARAMS ((bfd_ extern disassembler_ftype arc_get_disassembler PARAMS ((void *)); extern disassembler_ftype cris_get_disassembler PARAMS ((bfd *)); +extern void print_ppc_disassembler_options PARAMS ((FILE *)); extern void print_arm_disassembler_options PARAMS ((FILE *)); extern void parse_arm_disassembler_option PARAMS ((char *)); extern int get_arm_regname_num_options PARAMS ((void)); @@ -316,7 +318,7 @@ extern int generic_symbol_at_address (INFO).insn_info_valid = 0 #ifdef __cplusplus -}; +} #endif #endif /* ! defined (DIS_ASM_H) */ diff -uprN binutils-2.13.90.0.4/include/elf/ChangeLog binutils-2.13.90.0.10/include/elf/ChangeLog --- binutils-2.13.90.0.4/include/elf/ChangeLog Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/include/elf/ChangeLog Wed Oct 2 10:17:20 2002 @@ -1,3 +1,27 @@ +2002-09-30 Gavin Romig-Koch + Ken Raeburn + Aldy Hernandez + Eric Christopher + Richard Sandiford + + * mips.h (E_MIPS_MACH_4120, E_MIPS_MACH_5400, E_MIPS_MACH_5500): New. + +2002-09-12 Roland McGrath + + * dwarf2.h: Updates from GCC version of thie file: + (enum dwarf_location_atom): DW_OP_calli -> DW_OP_call_ref. + Add DW_OP_GNU_push_tls_address. + (DW_OP_lo_user): Change to 0xe0. + +2002-08-28 Catherine Moore + + * elf/v850.h (R_V850_LONGCALL, R_V850_ALIGN, + R_V850_LONGJUMP): New relocations. + +2002-08-15 Alan Modra + + * i370.h: Define relocs using reloc-macros.h. + 2002-08-13 Stephane Carrez * m68hc11.h (E_M68HC12_BANKS, E_M68HC11_I32, E_M68HC11_F64, diff -uprN binutils-2.13.90.0.4/include/elf/dwarf2.h binutils-2.13.90.0.10/include/elf/dwarf2.h --- binutils-2.13.90.0.4/include/elf/dwarf2.h Fri Jun 7 19:22:17 2002 +++ binutils-2.13.90.0.10/include/elf/dwarf2.h Fri Sep 27 08:33:09 2002 @@ -10,22 +10,22 @@ Derived from the DWARF 1 implementation written by Ron Guilmette (rfg@netcom.com), November 1990. -This file is part of GCC. + 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. */ + 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. */ /* This file is derived from the DWARF specification (a public document) Revision 2.0.0 (July 27, 1993) developed by the UNIX International @@ -488,10 +488,12 @@ enum dwarf_location_atom DW_OP_push_object_address = 0x97, DW_OP_call2 = 0x98, DW_OP_call4 = 0x99, - DW_OP_calli = 0x9a + DW_OP_call_ref = 0x9a, + /* GNU extensions. */ + DW_OP_GNU_push_tls_address = 0xe0 }; -#define DW_OP_lo_user 0x80 /* Implementation-defined range start. */ +#define DW_OP_lo_user 0xe0 /* Implementation-defined range start. */ #define DW_OP_hi_user 0xff /* Implementation-defined range end. */ /* Type encodings. */ @@ -679,7 +681,6 @@ enum dwarf_source_language DW_LANG_Mips_Assembler = 0x8001 }; - #define DW_LANG_lo_user 0x8000 /* Implementation-defined range start. */ #define DW_LANG_hi_user 0xffff /* Implementation-defined range start. */ diff -uprN binutils-2.13.90.0.4/include/elf/i370.h binutils-2.13.90.0.10/include/elf/i370.h --- binutils-2.13.90.0.4/include/elf/i370.h Sat Mar 17 12:48:08 2001 +++ binutils-2.13.90.0.10/include/elf/i370.h Fri Sep 27 08:33:09 2002 @@ -1,5 +1,5 @@ /* i370 ELF support for BFD. - Copyright 2000 Free Software Foundation, Inc. + Copyright 2000, 2002 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -23,6 +23,8 @@ Foundation, Inc., 59 Temple Place - Suit #ifndef _ELF_I370_H #define _ELF_I370_H +#include "elf/reloc-macros.h" + /* Processor specific section headers, sh_type field */ #define SHT_ORDERED SHT_HIPROC /* Link editor is to sort the \ @@ -41,6 +43,26 @@ Foundation, Inc., 59 Temple Place - Suit builds when those objects \ are not to be furhter \ relocated. */ -#endif /* _ELF_I370_H */ +/* i370 relocations + Note that there is really just one relocation that we currently + support (and only one that we seem to need, at the moment), and + that is the 31-bit address relocation. Note that the 370/390 + only supports a 31-bit (2GB) address space. */ + +START_RELOC_NUMBERS (i370_reloc_type) + RELOC_NUMBER (R_I370_NONE, 0) + RELOC_NUMBER (R_I370_ADDR31, 1) + RELOC_NUMBER (R_I370_ADDR32, 2) + RELOC_NUMBER (R_I370_ADDR16, 3) + RELOC_NUMBER (R_I370_REL31, 4) + RELOC_NUMBER (R_I370_REL32, 5) + RELOC_NUMBER (R_I370_ADDR12, 6) + RELOC_NUMBER (R_I370_REL12, 7) + RELOC_NUMBER (R_I370_ADDR8, 8) + RELOC_NUMBER (R_I370_REL8, 9) + RELOC_NUMBER (R_I370_COPY, 10) + RELOC_NUMBER (R_I370_RELATIVE, 11) +END_RELOC_NUMBERS (R_I370_max) +#endif /* _ELF_I370_H */ diff -uprN binutils-2.13.90.0.4/include/elf/i386.h binutils-2.13.90.0.10/include/elf/i386.h --- binutils-2.13.90.0.4/include/elf/i386.h Thu May 23 15:10:11 2002 +++ binutils-2.13.90.0.10/include/elf/i386.h Fri Sep 27 08:33:09 2002 @@ -36,7 +36,10 @@ START_RELOC_NUMBERS (elf_i386_reloc_type RELOC_NUMBER (R_386_GOTPC, 10) /* 32 bit PC relative offset to GOT */ RELOC_NUMBER (R_386_32PLT, 11) /* Used by Sun */ FAKE_RELOC (FIRST_INVALID_RELOC, 12) - FAKE_RELOC (LAST_INVALID_RELOC, 16) + FAKE_RELOC (LAST_INVALID_RELOC, 13) + RELOC_NUMBER (R_386_TLS_TPOFF,14) + RELOC_NUMBER (R_386_TLS_IE, 15) + RELOC_NUMBER (R_386_TLS_GOTIE,16) RELOC_NUMBER (R_386_TLS_LE, 17) RELOC_NUMBER (R_386_TLS_GD, 18) RELOC_NUMBER (R_386_TLS_LDM, 19) diff -uprN binutils-2.13.90.0.4/include/elf/mips.h binutils-2.13.90.0.10/include/elf/mips.h --- binutils-2.13.90.0.4/include/elf/mips.h Mon Oct 1 15:25:25 2001 +++ binutils-2.13.90.0.10/include/elf/mips.h Wed Oct 2 10:17:20 2002 @@ -175,8 +175,11 @@ END_RELOC_NUMBERS (R_MIPS_maxext) #define E_MIPS_MACH_4010 0x00820000 #define E_MIPS_MACH_4100 0x00830000 #define E_MIPS_MACH_4650 0x00850000 +#define E_MIPS_MACH_4120 0x00870000 #define E_MIPS_MACH_4111 0x00880000 #define E_MIPS_MACH_SB1 0x008a0000 +#define E_MIPS_MACH_5400 0x00910000 +#define E_MIPS_MACH_5500 0x00980000 /* Processor specific section indices. These sections do not actually exist. Symbols with a st_shndx field corresponding to one of these diff -uprN binutils-2.13.90.0.4/include/elf/v850.h binutils-2.13.90.0.10/include/elf/v850.h --- binutils-2.13.90.0.4/include/elf/v850.h Thu Mar 15 14:53:08 2001 +++ binutils-2.13.90.0.10/include/elf/v850.h Fri Sep 27 08:33:09 2002 @@ -1,22 +1,22 @@ /* V850 ELF support for BFD. - Copyright 1997, 1998, 2000 Free Software Foundation, Inc. + Copyright 1997, 1998, 2000, 2002 Free Software Foundation, Inc. Created by Michael Meissner, Cygnus Support -This file is part of BFD, the Binary File Descriptor library. + 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 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 MIPS ELF ABI. Note that most of this is not actually implemented by BFD. */ @@ -35,18 +35,15 @@ Foundation, Inc., 59 Temple Place - Suit /* v850e code. */ #define E_V850E_ARCH 0x10000000 -/* v850ea code. */ -#define E_V850EA_ARCH 0x20000000 +/* Flags for the st_other field. */ +#define V850_OTHER_SDA 0x01 /* Symbol had SDA relocations. */ +#define V850_OTHER_ZDA 0x02 /* Symbol had ZDA relocations. */ +#define V850_OTHER_TDA 0x04 /* Symbol had TDA relocations. */ +#define V850_OTHER_TDA_BYTE 0x08 /* Symbol had TDA byte relocations. */ +#define V850_OTHER_ERROR 0x80 /* Symbol had an error reported. */ -/* Flags for the st_other field */ -#define V850_OTHER_SDA 0x01 /* symbol had SDA relocations */ -#define V850_OTHER_ZDA 0x02 /* symbol had ZDA relocations */ -#define V850_OTHER_TDA 0x04 /* symbol had TDA relocations */ -#define V850_OTHER_TDA_BYTE 0x08 /* symbol had TDA byte relocations */ -#define V850_OTHER_ERROR 0x80 /* symbol had an error reported */ - -/* V850 relocations */ +/* V850 relocations. */ #include "elf/reloc-macros.h" START_RELOC_NUMBERS (v850_reloc_type) @@ -75,6 +72,9 @@ START_RELOC_NUMBERS (v850_reloc_type) RELOC_NUMBER( R_V850_CALLT_16_16_OFFSET, 22) /* For callt */ RELOC_NUMBER (R_V850_GNU_VTINHERIT, 23) RELOC_NUMBER (R_V850_GNU_VTENTRY, 24) + RELOC_NUMBER (R_V850_LONGCALL, 25) + RELOC_NUMBER (R_V850_LONGJUMP, 26) + RELOC_NUMBER (R_V850_ALIGN, 27) END_RELOC_NUMBERS (R_V850_max) @@ -103,5 +103,4 @@ END_RELOC_NUMBERS (R_V850_max) /* Section contains the .scommon data. */ #define SHT_V850_ZCOMMON 0x70000002 - #endif /* _ELF_V850_H */ diff -uprN binutils-2.13.90.0.4/include/elf/x86-64.h binutils-2.13.90.0.10/include/elf/x86-64.h --- binutils-2.13.90.0.4/include/elf/x86-64.h Tue Apr 24 09:12:20 2001 +++ binutils-2.13.90.0.10/include/elf/x86-64.h Wed Oct 2 10:17:20 2002 @@ -1,5 +1,5 @@ /* x86_64 ELF support for BFD. - Copyright (C) 2000 Free Software Foundation, Inc. + Copyright (C) 2000, 2002 Free Software Foundation, Inc. Contributed by Jan Hubicka This file is part of BFD, the Binary File Descriptor library. @@ -25,22 +25,30 @@ START_RELOC_NUMBERS (elf_x86_64_reloc_type) RELOC_NUMBER (R_X86_64_NONE, 0) /* No reloc */ - RELOC_NUMBER (R_X86_64_64, 1) /* Direct 64 bit */ + RELOC_NUMBER (R_X86_64_64, 1) /* Direct 64 bit */ RELOC_NUMBER (R_X86_64_PC32, 2) /* PC relative 32 bit signed */ RELOC_NUMBER (R_X86_64_GOT32, 3) /* 32 bit GOT entry */ RELOC_NUMBER (R_X86_64_PLT32, 4) /* 32 bit PLT address */ RELOC_NUMBER (R_X86_64_COPY, 5) /* Copy symbol at runtime */ RELOC_NUMBER (R_X86_64_GLOB_DAT, 6) /* Create GOT entry */ - RELOC_NUMBER (R_X86_64_JUMP_SLOT, 7) /* Create PLT entry */ + RELOC_NUMBER (R_X86_64_JUMP_SLOT,7) /* Create PLT entry */ RELOC_NUMBER (R_X86_64_RELATIVE, 8) /* Adjust by program base */ RELOC_NUMBER (R_X86_64_GOTPCREL, 9) /* 32 bit signed pc relative offset to GOT */ - RELOC_NUMBER (R_X86_64_32, 10) /* Direct 32 bit zero extended */ - RELOC_NUMBER (R_X86_64_32S, 11) /* Direct 32 bit sign extended */ - RELOC_NUMBER (R_X86_64_16, 12) /* Direct 16 bit zero extended */ + RELOC_NUMBER (R_X86_64_32, 10) /* Direct 32 bit zero extended */ + RELOC_NUMBER (R_X86_64_32S, 11) /* Direct 32 bit sign extended */ + RELOC_NUMBER (R_X86_64_16, 12) /* Direct 16 bit zero extended */ RELOC_NUMBER (R_X86_64_PC16, 13) /* 16 bit sign extended pc relative*/ - RELOC_NUMBER (R_X86_64_8, 14) /* Direct 8 bit sign extended */ - RELOC_NUMBER (R_X86_64_PC8, 15) /* 8 bit sign extended pc relative*/ + RELOC_NUMBER (R_X86_64_8, 14) /* Direct 8 bit sign extended */ + RELOC_NUMBER (R_X86_64_PC8, 15) /* 8 bit sign extended pc relative*/ + RELOC_NUMBER (R_X86_64_DTPMOD64, 16) /* ID of module containing symbol */ + RELOC_NUMBER (R_X86_64_DTPOFF64, 17) /* Offset in TLS block */ + RELOC_NUMBER (R_X86_64_TPOFF64, 18) /* Offset in initial TLS block */ + RELOC_NUMBER (R_X86_64_TLSGD, 19) /* PC relative offset to GD GOT block */ + RELOC_NUMBER (R_X86_64_TLSLD, 20) /* PC relative offset to LD GOT block */ + RELOC_NUMBER (R_X86_64_DTPOFF32, 21) /* Offset in TLS block */ + RELOC_NUMBER (R_X86_64_GOTTPOFF, 22) /* PC relative offset to IE GOT entry */ + RELOC_NUMBER (R_X86_64_TPOFF32, 23) /* Offset in initial TLS block */ RELOC_NUMBER (R_X86_64_GNU_VTINHERIT, 250) /* GNU C++ hack */ RELOC_NUMBER (R_X86_64_GNU_VTENTRY, 251) /* GNU C++ hack */ END_RELOC_NUMBERS (R_X86_64_max) diff -uprN binutils-2.13.90.0.4/include/libiberty.h binutils-2.13.90.0.10/include/libiberty.h --- binutils-2.13.90.0.4/include/libiberty.h Wed Jun 26 09:24:56 2002 +++ binutils-2.13.90.0.10/include/libiberty.h Fri Sep 27 08:33:09 2002 @@ -264,16 +264,20 @@ extern int pexecute PARAMS ((const char extern int pwait PARAMS ((int, int *, int)); +#if !HAVE_DECL_ASPRINTF /* Like sprintf but provides a pointer to malloc'd storage, which must be freed by the caller. */ extern int asprintf PARAMS ((char **, const char *, ...)) ATTRIBUTE_PRINTF_2; +#endif +#if !HAVE_DECL_VASPRINTF /* Like vsprintf but provides a pointer to malloc'd storage, which must be freed by the caller. */ extern int vasprintf PARAMS ((char **, const char *, va_list)) ATTRIBUTE_PRINTF(2,0); +#endif #define ARRAY_SIZE(a) (sizeof (a) / sizeof ((a)[0])) diff -uprN binutils-2.13.90.0.4/include/opcode/ChangeLog binutils-2.13.90.0.10/include/opcode/ChangeLog --- binutils-2.13.90.0.4/include/opcode/ChangeLog Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/include/opcode/ChangeLog Wed Oct 2 10:17:20 2002 @@ -1,3 +1,30 @@ +2002-09-30 Gavin Romig-Koch + Ken Raeburn + Aldy Hernandez + Eric Christopher + Richard Sandiford + + * mips.h: Update comment for new opcodes. + (OP_MASK_VECBYTE, OP_SH_VECBYTE): New. + (OP_MASK_VECALIGN, OP_SH_VECALIGN): New. + (INSN_4111, INSN_4120, INSN_5400, INSN_5500): New. + (CPU_VR4120, CPU_VR5400, CPU_VR5500): New. + (OPCODE_IS_MEMBER): Handle the new CPU_* values and INSN_* flags. + Don't match CPU_R4111 with INSN_4100. + +2002-08-19 Elena Zannoni + + From matthew green + + * ppc.h (PPC_OPCODE_SPE): New opcode flag for Powerpc e500 + instructions. + (PPC_OPCODE_ISEL, PPC_OPCODE_BRLOCK, PPC_OPCODE_PMR, + PPC_OPCODE_CACHELCK, PPC_OPCODE_RFMCI): New opcode flags for the + e500x2 Integer select, branch locking, performance monitor, + cache locking and machine check APUs, respectively. + (PPC_OPCODE_EFS): New opcode type for efs* instructions. + (PPC_OPCODE_CLASSIC): New opcode type for Classic PowerPC instructions. + 2002-08-13 Stephane Carrez * m68hc11.h (M6812_OP_PAGE): Define to identify call operand. diff -uprN binutils-2.13.90.0.4/include/opcode/mips.h binutils-2.13.90.0.10/include/opcode/mips.h --- binutils-2.13.90.0.4/include/opcode/mips.h Mon Jul 29 08:19:19 2002 +++ binutils-2.13.90.0.10/include/opcode/mips.h Wed Oct 2 10:17:20 2002 @@ -137,6 +137,11 @@ Software Foundation, 59 Temple Place - S #define OP_MASK_ALN 0x7 #define OP_SH_VSEL 21 #define OP_MASK_VSEL 0x1f +#define OP_MASK_VECBYTE 0x7 /* Selector field is really 4 bits, + but 0x8-0xf don't select bytes. */ +#define OP_SH_VECBYTE 22 +#define OP_MASK_VECALIGN 0x7 /* Vector byte-align (alni.ob) op. */ +#define OP_SH_VECALIGN 21 /* Values in the 'VSEL' field. */ #define MDMX_FMTSEL_IMM_QH 0x1d @@ -189,6 +194,7 @@ struct mips_opcode "i" 16 bit unsigned immediate (OP_*_IMMEDIATE) "j" 16 bit signed immediate (OP_*_DELTA) "k" 5 bit cache opcode in target register position (OP_*_CACHE) + Also used for immediate operands in vr5400 vector insns. "o" 16 bit signed offset (OP_*_DELTA) "p" 16 bit PC relative branch target address (OP_*_DELTA) "q" 10 bit extra breakpoint code (OP_*_CODE2) @@ -221,6 +227,9 @@ struct mips_opcode "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) + "e" 5 bit vector register byte specifier (OP_*_VECBYTE) + "%" 3 bit immediate vr5400 vector alignment operand (OP_*_VECALIGN) + see also "k" above Macro instructions: "A" General 32 bit expression @@ -241,11 +250,12 @@ struct mips_opcode Other: "()" parens surrounding optional value "," separates operands + "[]" brackets around index for vector-op scalar operand specifier (vr5400) Characters used so far, for quick reference when adding more: - "<>()," + "%[]<>()," "ABCDEFGHIJLMNOPQRSTUVWXYZ" - "abcdfhijklopqrstuvwxz" + "abcdefhijklopqrstuvwxz" */ /* These are the bits which may be set in the pinfo field of an @@ -362,6 +372,14 @@ struct mips_opcode #define INSN_10000 0x00100000 /* Broadcom SB-1 instruction. */ #define INSN_SB1 0x00200000 +/* NEC VR4111/VR4181 instruction. */ +#define INSN_4111 0x00400000 +/* NEC VR4120 instruction. */ +#define INSN_4120 0x00800000 +/* NEC VR5400 instruction. */ +#define INSN_5400 0x01000000 +/* NEC VR5500 instruction. */ +#define INSN_5500 0x02000000 /* MIPS ISA defines, use instead of hardcoding ISA level. */ @@ -383,11 +401,14 @@ struct mips_opcode #define CPU_R4010 4010 #define CPU_VR4100 4100 #define CPU_R4111 4111 +#define CPU_VR4120 4120 #define CPU_R4300 4300 #define CPU_R4400 4400 #define CPU_R4600 4600 #define CPU_R4650 4650 #define CPU_R5000 5000 +#define CPU_VR5400 5400 +#define CPU_VR5500 5500 #define CPU_R6000 6000 #define CPU_R8000 8000 #define CPU_R10000 10000 @@ -407,12 +428,15 @@ struct mips_opcode (((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_VR4100 && ((insn)->membership & INSN_4100) != 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) \ + || (cpu == CPU_R4111 && ((insn)->membership & INSN_4111) != 0) \ + || (cpu == CPU_VR4120 && ((insn)->membership & INSN_4120) != 0) \ + || (cpu == CPU_VR5400 && ((insn)->membership & INSN_5400) != 0) \ + || (cpu == CPU_VR5500 && ((insn)->membership & INSN_5500) != 0) \ || 0) /* Please keep this term for easier source merging. */ /* This is a list of macro expanded instructions. diff -uprN binutils-2.13.90.0.4/include/opcode/ppc.h binutils-2.13.90.0.10/include/opcode/ppc.h --- binutils-2.13.90.0.4/include/opcode/ppc.h Thu Mar 7 11:52:39 2002 +++ binutils-2.13.90.0.10/include/opcode/ppc.h Fri Sep 27 08:33:09 2002 @@ -107,6 +107,30 @@ extern const int powerpc_num_opcodes; /* Opcode isn't supported by Power4 architecture. */ #define PPC_OPCODE_NOPOWER4 (040000) +/* Opcode is only supported by POWERPC Classic architecture. */ +#define PPC_OPCODE_CLASSIC (0100000) + +/* Opcode is only supported by e500x2 Core. */ +#define PPC_OPCODE_SPE (0200000) + +/* Opcode is supported by e500x2 Integer select APU. */ +#define PPC_OPCODE_ISEL (0400000) + +/* Opcode is an e500 SPE floating point instruction. */ +#define PPC_OPCODE_EFS (01000000) + +/* Opcode is supported by branch locking APU. */ +#define PPC_OPCODE_BRLOCK (02000000) + +/* Opcode is supported by performance monitor APU. */ +#define PPC_OPCODE_PMR (04000000) + +/* Opcode is supported by cache locking APU. */ +#define PPC_OPCODE_CACHELCK (010000000) + +/* Opcode is supported by machine check APU. */ +#define PPC_OPCODE_RFMCI (020000000) + /* A macro to extract the major opcode from an instruction. */ #define PPC_OP(i) (((i) >> 26) & 0x3f) diff -uprN binutils-2.13.90.0.4/include/opcode/tic4x.h binutils-2.13.90.0.10/include/opcode/tic4x.h --- binutils-2.13.90.0.4/include/opcode/tic4x.h Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/include/opcode/tic4x.h Fri Sep 27 08:33:09 2002 @@ -0,0 +1,1338 @@ +/* Table of opcodes for the Texas Instruments TMS320C[34]X family. + + Copyright (c) 2002 Free Software Foundation. + + Contributed by Michael P. Hayes (m.hayes@elec.canterbury.ac.nz) + + 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. */ + + +/* FIXME: Only allow floating point registers for floating point + instructions. Use another field in the instruction table? + This field could also flag which instructions are valid for + which architectures... + e.g., OP_FP | OP_C40 or OP_C40_FP */ + +#define IS_CPU_C3X(v) ((v) == 30 || (v) == 31 || (v) == 32) +#define IS_CPU_C4X(v) ((v) == 0 || (v) == 40 || (v) == 44) + +/* Define some bitfield extraction/insertion macros. */ +#define EXTR(inst, m, l) ((inst) << (31 - (m)) >> (31 - ((m) - (l)))) +#define EXTRU(inst, m, l) EXTR ((unsigned long)(inst), (m), (l)) +#define EXTRS(inst, m, l) EXTR ((long)(inst), (m), (l)) +#define INSERTU(inst, val, m, l) (inst |= ((val) << (l))) +#define INSERTS(inst, val, m, l) INSERTU (inst, ((val) & ((1 << ((m) - (l) + 1)) - 1)), m, l) + +/* Define register numbers. */ +typedef enum + { + REG_R0, REG_R1, REG_R2, REG_R3, + REG_R4, REG_R5, REG_R6, REG_R7, + REG_AR0, REG_AR1, REG_AR2, REG_AR3, + REG_AR4, REG_AR5, REG_AR6, REG_AR7, + REG_DP, REG_IR0, REG_IR1, REG_BK, + REG_SP, REG_ST, REG_DIE, REG_IIE, + REG_IIF, REG_RS, REG_RE, REG_RC, + REG_R8, REG_R9, REG_R10, REG_R11, + REG_IVTP, REG_TVTP + } +c4x_reg_t; + +/* Note that the actual register numbers for IVTP is 0 and TVTP is 1. */ + +#define REG_IE REG_DIE /* C3x only */ +#define REG_IF REG_IIE /* C3x only */ +#define REG_IOF REG_IIF /* C3x only */ + +#define C3X_REG_MAX REG_RC +#define C4X_REG_MAX REG_TVTP + +/* Register table size including C4x expansion regs. */ +#define REG_TABLE_SIZE (C4X_REG_MAX + 1) + +struct c4x_register +{ + char * name; + unsigned long regno; +}; + +typedef struct c4x_register c4x_register_t; + +/* We could store register synonyms here. */ +static const c4x_register_t c3x_registers[] = +{ + {"f0", REG_R0}, + {"r0", REG_R0}, + {"f1", REG_R1}, + {"r1", REG_R1}, + {"f2", REG_R2}, + {"r2", REG_R2}, + {"f3", REG_R3}, + {"r3", REG_R3}, + {"f4", REG_R4}, + {"r4", REG_R4}, + {"f5", REG_R5}, + {"r5", REG_R5}, + {"f6", REG_R6}, + {"r6", REG_R6}, + {"f7", REG_R7}, + {"r7", REG_R7}, + {"ar0", REG_AR0}, + {"ar1", REG_AR1}, + {"ar2", REG_AR2}, + {"ar3", REG_AR3}, + {"ar4", REG_AR4}, + {"ar5", REG_AR5}, + {"ar6", REG_AR6}, + {"ar7", REG_AR7}, + {"dp", REG_DP}, + {"ir0", REG_IR0}, + {"ir1", REG_IR1}, + {"bk", REG_BK}, + {"sp", REG_SP}, + {"st", REG_ST}, + {"ie", REG_IE}, + {"if", REG_IF}, + {"iof", REG_IOF}, + {"rs", REG_RS}, + {"re", REG_RE}, + {"rc", REG_RC}, + {"", 0} +}; + +const unsigned int c3x_num_registers = (((sizeof c3x_registers) / (sizeof c3x_registers[0])) - 1); + +/* Define C4x registers in addition to C3x registers. */ +static const c4x_register_t c4x_registers[] = +{ + {"die", REG_DIE}, /* Clobbers C3x REG_IE */ + {"iie", REG_IIE}, /* Clobbers C3x REG_IF */ + {"iif", REG_IIF}, /* Clobbers C3x REG_IOF */ + {"f8", REG_R8}, + {"r8", REG_R8}, + {"f9", REG_R9}, + {"r9", REG_R9}, + {"f10", REG_R10}, + {"r10", REG_R10}, + {"f11", REG_R11}, + {"r11", REG_R11}, + {"ivtp", REG_IVTP}, + {"tvtp", REG_TVTP}, + {"", 0} +}; + +const unsigned int c4x_num_registers = (((sizeof c4x_registers) / (sizeof c4x_registers[0])) - 1); + +/* Instruction template. */ +struct c4x_inst +{ + char * name; + unsigned long opcode; + unsigned long opmask; + char * args; +}; + +typedef struct c4x_inst c4x_inst_t; + +/* B condition 16--20 + C condition 23--27 + , required arg follows + ; optional arg follows + General addressing modes + * indirect 0--15 + # direct (for ldp only) 0--15 + @ direct 0--15 + F short float immediate 0--15 + Q register 0--15 + R register 16--20 + S short int immediate 0--15 + D src and dst same reg + Three operand addressing modes + E register 0--7 + G register 8--15 + I indirect(short) 0--7 + J indirect(short) 8--15 + R register 16--20 + W short int (C4x) 0--7 + C indirect(short) (C4x) 0--7 + O indirect(short) (C4x) 8--15 + Parallel instruction addressing modes + E register 0--7 + G register 8--15 + I indirect(short) 0--7 + J indirect(short) 8--15 + K register 19--21 + L register 22--24 + M register (R2,R3) 22--22 + N register (R0,R1) 23--23 + Misc. addressing modes + A address register 22--24 + B unsigned integer 0--23 (absolute on C3x, relative on C4x) + P displacement (PC Rel) 0--15 + U unsigned integer 0--15 + V vector 0--4 (C4x 0--8) + T integer (C4x stik) 16--20 + Y address reg (C4x) 16--20 + X expansion reg (C4x) 0--4 + Z expansion reg (C4x) 16--20. */ + +#define C4X_OPERANDS_MAX 7 /* Max number of operands for an inst. */ +#define C4X_NAME_MAX 16 /* Max number of chars in parallel name. */ + +/* General (two) operand group. */ +#define G_F_r "F,R" +#define G_I_r "S,R" +#define G_L_r "U,R" +#define G_Q_r "*,R" +#define G_T_r "@,R" +#define G_r_r "Q;R" + +/* Three operand group (Type 1 with missing third operand). */ +#define T_rr_ "E,G" +#define T_rS_ "E,J" +#define T_Sr_ "I,G" +#define T_SS_ "I,J" + +/* Three operand group (Type 2 with missing third operand). */ +#define T_Jr_ "W,G" /* C4x only */ +#define T_rJ_ "G,W" /* C4x only (commutative insns only) */ +#define T_Rr_ "C,G" /* C4x only */ +#define T_rR_ "G,C" /* C4x only (commutative insns only) */ +#define T_JR_ "W,O" /* C4x only */ +#define T_RJ_ "O,W" /* C4x only (commutative insns only) */ +#define T_RR_ "C,O" /* C4x only */ + +/* Three operand group (Type 1). */ +#define T_rrr "E,G;R" +#define T_Srr "E,J,R" +#define T_rSr "I,G;R" +#define T_SSr "I,J,R" + +/* Three operand group (Type 2). */ +#define T_Jrr "W,G;R" /* C4x only */ +#define T_rJr "G,W,R" /* C4x only (commutative insns only) */ +#define T_Rrr "C,G;R" /* C4x only */ +#define T_rRr "G,C,R" /* C4x only (commutative insns only) */ +#define T_JRr "W,O,R" /* C4x only */ +#define T_RJr "O,W,R" /* C4x only (commutative insns only) */ +#define T_RRr "C,O,R" /* C4x only */ + +/* Parallel group (store || op). */ +#define Q_rS_rSr "H,J|K,I,L" +#define Q_rS_Sr "H,J|I,L" +#define Q_rS_Srr "H,J|I,K;L" + +/* Parallel group (op || store). */ +#define P_rSr_rS "K,I,L|H,J" +#define P_Srr_rS "I,K;L|H,J" +#define P_rS_rS "L,I|H,J" + +/* Parallel group (load || load). */ +#define P_Sr_Sr "I,L|J,K" +#define Q_Sr_Sr "J,K|I,L" + +/* Parallel group (store || store). */ +#define P_Sr_rS "I,L|H,J" +#define Q_rS_rS "H,J|L,I" + +/* Parallel group (multiply || add/sub). */ +#define P_SSr_rrr "I,J,N|H,K;M" /* 00 (User manual transposes I,J) */ +#define P_Srr_rSr "J,K;N|H,I,M" /* 01 */ +#define P_rSr_rSr "K,J,N|H,I,M" /* 01 */ +#define P_rrr_SSr "H,K;N|I,J,M" /* 10 (User manual transposes H,K) */ +#define P_Srr_Srr "J,K;N|I,H;M" /* 11 */ +#define P_rSr_Srr "K,J,N|I,H;M" /* 11 */ + +#define Q_rrr_SSr "H,K;M|I,J,N" /* 00 (User manual transposes I,J) */ +#define Q_rSr_Srr "H,I,M|J,K;N" /* 01 */ +#define Q_rSr_rSr "H,I,M|K,J,N" /* 01 */ +#define Q_SSr_rrr "I,J,M|H,K;N" /* 10 (User manual transposes H,K) */ +#define Q_Srr_Srr "I,H;M|J,K;N" /* 11 */ +#define Q_Srr_rSr "I,H;M|K,J,N" /* 11 */ + +/* Define c3x opcodes for assembler and disassembler. */ +static const c4x_inst_t c3x_insts[] = +{ + /* Put synonyms after the desired forms in table so that they get + overwritten in the lookup table. The disassembler will thus + print the `proper' mnemonics. Note that the disassembler + only decodes the 11 MSBs, so instructions like ldp @0x500 will + be printed as ldiu 5, dp. Note that with parallel instructions, + the second part is executed before the first part, unless + the sti1||sti2 form is used. We also allow sti2||sti1 + which is equivalent to the default sti||sti form. + + Put most common forms first to speed up assembler. + + FIXME: Add all the other parallel/load forms, like absf1_stf2 + Perhaps I should have used a few macros...especially with + all the bloat after adding the C4x opcodes...too late now! */ + + /* Parallel instructions. */ + { "absf_stf", 0xc8000000, 0xfe000000, P_Sr_rS }, + { "absi_sti", 0xca000000, 0xfe000000, P_Sr_rS }, + { "addf_mpyf", 0x80000000, 0xff000000, Q_rrr_SSr }, + { "addf_mpyf", 0x81000000, 0xff000000, Q_rSr_Srr }, + { "addf_mpyf", 0x81000000, 0xff000000, Q_rSr_rSr }, + { "addf_mpyf", 0x82000000, 0xff000000, Q_SSr_rrr }, + { "addf_mpyf", 0x83000000, 0xff000000, Q_Srr_Srr }, + { "addf_mpyf", 0x83000000, 0xff000000, Q_Srr_rSr }, + { "addf3_mpyf3", 0x80000000, 0xff000000, Q_rrr_SSr }, + { "addf3_mpyf3", 0x81000000, 0xff000000, Q_rSr_Srr }, + { "addf3_mpyf3", 0x81000000, 0xff000000, Q_rSr_rSr }, + { "addf3_mpyf3", 0x82000000, 0xff000000, Q_SSr_rrr }, + { "addf3_mpyf3", 0x83000000, 0xff000000, Q_Srr_Srr }, + { "addf3_mpyf3", 0x83000000, 0xff000000, Q_Srr_rSr }, + { "addf_stf", 0xcc000000, 0xfe000000, P_Srr_rS }, + { "addf_stf", 0xcc000000, 0xfe000000, P_rSr_rS }, + { "addf3_stf", 0xcc000000, 0xfe000000, P_Srr_rS }, + { "addf3_stf", 0xcc000000, 0xfe000000, P_rSr_rS }, + { "addi_mpyi", 0x88000000, 0xff000000, Q_rrr_SSr }, + { "addi_mpyi", 0x89000000, 0xff000000, Q_rSr_Srr }, + { "addi_mpyi", 0x89000000, 0xff000000, Q_rSr_rSr }, + { "addi_mpyi", 0x8a000000, 0xff000000, Q_SSr_rrr }, + { "addi_mpyi", 0x8b000000, 0xff000000, Q_Srr_Srr }, + { "addi3_mpyi3", 0x88000000, 0xff000000, Q_rrr_SSr }, + { "addi3_mpyi3", 0x89000000, 0xff000000, Q_rSr_Srr }, + { "addi3_mpyi3", 0x8a000000, 0xff000000, Q_SSr_rrr }, + { "addi3_mpyi3", 0x8b000000, 0xff000000, Q_Srr_Srr }, + { "addi3_mpyi3", 0x8b000000, 0xff000000, Q_Srr_rSr }, + { "addi_sti", 0xce000000, 0xfe000000, P_Srr_rS }, + { "addi_sti", 0xce000000, 0xfe000000, P_rSr_rS }, + { "addi3_sti", 0xce000000, 0xfe000000, P_Srr_rS }, + { "addi3_sti", 0xce000000, 0xfe000000, P_rSr_rS }, + { "and_sti", 0xd0000000, 0xfe000000, P_Srr_rS }, + { "and_sti", 0xd0000000, 0xfe000000, P_rSr_rS }, + { "and3_sti", 0xd0000000, 0xfe000000, P_Srr_rS }, + { "and3_sti", 0xd0000000, 0xfe000000, P_rSr_rS }, + { "ash_sti", 0xd2000000, 0xfe000000, P_rSr_rS }, + { "ash3_sti", 0xd2000000, 0xfe000000, P_rSr_rS }, + { "fix_sti", 0xd4000000, 0xfe000000, P_Sr_rS }, + { "float_stf", 0xd6000000, 0xfe000000, P_Sr_rS }, + { "ldf_ldf", 0xc4000000, 0xfe000000, P_Sr_Sr }, + { "ldf1_ldf2", 0xc4000000, 0xfe000000, Q_Sr_Sr }, /* synonym */ + { "ldf2_ldf1", 0xc4000000, 0xfe000000, P_Sr_Sr }, /* synonym */ + { "ldf_stf", 0xd8000000, 0xfe000000, P_Sr_rS }, + { "ldi_ldi", 0xc6000000, 0xfe000000, P_Sr_Sr }, + { "ldi1_ldi2", 0xc6000000, 0xfe000000, Q_Sr_Sr }, /* synonym */ + { "ldi2_ldi1", 0xc6000000, 0xfe000000, P_Sr_Sr }, /* synonym */ + { "ldi_sti", 0xda000000, 0xfe000000, P_Sr_rS }, + { "lsh_sti", 0xdc000000, 0xfe000000, P_rSr_rS }, + { "lsh3_sti", 0xdc000000, 0xfe000000, P_rSr_rS }, + { "mpyf_addf", 0x80000000, 0xff000000, P_SSr_rrr }, + { "mpyf_addf", 0x81000000, 0xff000000, P_Srr_rSr }, + { "mpyf_addf", 0x81000000, 0xff000000, P_rSr_rSr }, + { "mpyf_addf", 0x82000000, 0xff000000, P_rrr_SSr }, + { "mpyf_addf", 0x83000000, 0xff000000, P_Srr_Srr }, + { "mpyf_addf", 0x83000000, 0xff000000, P_rSr_Srr }, + { "mpyf3_addf3", 0x80000000, 0xff000000, P_SSr_rrr }, + { "mpyf3_addf3", 0x81000000, 0xff000000, P_Srr_rSr }, + { "mpyf3_addf3", 0x81000000, 0xff000000, P_rSr_rSr }, + { "mpyf3_addf3", 0x82000000, 0xff000000, P_rrr_SSr }, + { "mpyf3_addf3", 0x83000000, 0xff000000, P_Srr_Srr }, + { "mpyf3_addf3", 0x83000000, 0xff000000, P_rSr_Srr }, + { "mpyf_stf", 0xde000000, 0xfe000000, P_Srr_rS }, + { "mpyf_stf", 0xde000000, 0xfe000000, P_rSr_rS }, + { "mpyf3_stf", 0xde000000, 0xfe000000, P_Srr_rS }, + { "mpyf3_stf", 0xde000000, 0xfe000000, P_rSr_rS }, + { "mpyf_subf", 0x84000000, 0xff000000, P_SSr_rrr }, + { "mpyf_subf", 0x85000000, 0xff000000, P_Srr_rSr }, + { "mpyf_subf", 0x85000000, 0xff000000, P_rSr_rSr }, + { "mpyf_subf", 0x86000000, 0xff000000, P_rrr_SSr }, + { "mpyf_subf", 0x87000000, 0xff000000, P_Srr_Srr }, + { "mpyf_subf", 0x87000000, 0xff000000, P_rSr_Srr }, + { "mpyf3_subf3", 0x84000000, 0xff000000, P_SSr_rrr }, + { "mpyf3_subf3", 0x85000000, 0xff000000, P_Srr_rSr }, + { "mpyf3_subf3", 0x85000000, 0xff000000, P_rSr_rSr }, + { "mpyf3_subf3", 0x86000000, 0xff000000, P_rrr_SSr }, + { "mpyf3_subf3", 0x87000000, 0xff000000, P_Srr_Srr }, + { "mpyf3_subf3", 0x87000000, 0xff000000, P_rSr_Srr }, + { "mpyi_addi", 0x88000000, 0xff000000, P_SSr_rrr }, + { "mpyi_addi", 0x89000000, 0xff000000, P_Srr_rSr }, + { "mpyi_addi", 0x89000000, 0xff000000, P_rSr_rSr }, + { "mpyi_addi", 0x8a000000, 0xff000000, P_rrr_SSr }, + { "mpyi_addi", 0x8b000000, 0xff000000, P_Srr_Srr }, + { "mpyi_addi", 0x8b000000, 0xff000000, P_rSr_Srr }, + { "mpyi3_addi3", 0x88000000, 0xff000000, P_SSr_rrr }, + { "mpyi3_addi3", 0x89000000, 0xff000000, P_Srr_rSr }, + { "mpyi3_addi3", 0x89000000, 0xff000000, P_rSr_rSr }, + { "mpyi3_addi3", 0x8a000000, 0xff000000, P_rrr_SSr }, + { "mpyi3_addi3", 0x8b000000, 0xff000000, P_Srr_Srr }, + { "mpyi3_addi3", 0x8b000000, 0xff000000, P_rSr_Srr }, + { "mpyi_sti", 0xe0000000, 0xfe000000, P_Srr_rS }, + { "mpyi_sti", 0xe0000000, 0xfe000000, P_rSr_rS }, + { "mpyi3_sti", 0xe0000000, 0xfe000000, P_Srr_rS }, + { "mpyi3_sti", 0xe0000000, 0xfe000000, P_rSr_rS }, + { "mpyi_subi", 0x8c000000, 0xff000000, P_SSr_rrr }, + { "mpyi_subi", 0x8d000000, 0xff000000, P_Srr_rSr }, + { "mpyi_subi", 0x8d000000, 0xff000000, P_rSr_rSr }, + { "mpyi_subi", 0x8e000000, 0xff000000, P_rrr_SSr }, + { "mpyi_subi", 0x8f000000, 0xff000000, P_Srr_Srr }, + { "mpyi_subi", 0x8f000000, 0xff000000, P_rSr_Srr }, + { "mpyi3_subi3", 0x8c000000, 0xff000000, P_SSr_rrr }, + { "mpyi3_subi3", 0x8d000000, 0xff000000, P_Srr_rSr }, + { "mpyi3_subi3", 0x8d000000, 0xff000000, P_rSr_rSr }, + { "mpyi3_subi3", 0x8e000000, 0xff000000, P_rrr_SSr }, + { "mpyi3_subi3", 0x8f000000, 0xff000000, P_Srr_Srr }, + { "mpyi3_subi3", 0x8f000000, 0xff000000, P_rSr_Srr }, + { "negf_stf", 0xe2000000, 0xfe000000, P_Sr_rS }, + { "negi_sti", 0xe4000000, 0xfe000000, P_Sr_rS }, + { "not_sti", 0xe6000000, 0xfe000000, P_Sr_rS }, + { "or3_sti", 0xe8000000, 0xfe000000, P_Srr_rS }, + { "or3_sti", 0xe8000000, 0xfe000000, P_rSr_rS }, + { "stf_absf", 0xc8000000, 0xfe000000, Q_rS_Sr }, + { "stf_addf", 0xcc000000, 0xfe000000, Q_rS_Srr }, + { "stf_addf", 0xcc000000, 0xfe000000, Q_rS_rSr }, + { "stf_addf3", 0xcc000000, 0xfe000000, Q_rS_Srr }, + { "stf_addf3", 0xcc000000, 0xfe000000, Q_rS_rSr }, + { "stf_float", 0xd6000000, 0xfe000000, Q_rS_Sr }, + { "stf_mpyf", 0xde000000, 0xfe000000, Q_rS_Srr }, + { "stf_mpyf", 0xde000000, 0xfe000000, Q_rS_rSr }, + { "stf_mpyf3", 0xde000000, 0xfe000000, Q_rS_Srr }, + { "stf_mpyf3", 0xde000000, 0xfe000000, Q_rS_rSr }, + { "stf_negf", 0xe2000000, 0xfe000000, Q_rS_Sr }, + { "stf_stf", 0xc0000000, 0xfe000000, P_rS_rS }, + { "stf1_stf2", 0xc0000000, 0xfe000000, Q_rS_rS }, /* synonym */ + { "stf2_stf1", 0xc0000000, 0xfe000000, P_rS_rS }, /* synonym */ + { "stf_subf", 0xea000000, 0xfe000000, Q_rS_rSr }, + { "stf_subf3", 0xea000000, 0xfe000000, Q_rS_rSr }, + { "sti_absi", 0xca000000, 0xfe000000, Q_rS_Sr }, + { "sti_addi", 0xce000000, 0xfe000000, Q_rS_Srr }, + { "sti_addi", 0xce000000, 0xfe000000, Q_rS_rSr }, + { "sti_addi3", 0xce000000, 0xfe000000, Q_rS_Srr }, + { "sti_addi3", 0xce000000, 0xfe000000, Q_rS_rSr }, + { "sti_and", 0xd0000000, 0xfe000000, Q_rS_Srr }, + { "sti_and", 0xd0000000, 0xfe000000, Q_rS_rSr }, + { "sti_and3", 0xd0000000, 0xfe000000, Q_rS_Srr }, + { "sti_and3", 0xd0000000, 0xfe000000, Q_rS_rSr }, + { "sti_ash3", 0xd2000000, 0xfe000000, Q_rS_rSr }, + { "sti_fix", 0xd4000000, 0xfe000000, Q_rS_Sr }, + { "sti_ldi", 0xda000000, 0xfe000000, Q_rS_Sr }, + { "sti_lsh", 0xdc000000, 0xfe000000, Q_rS_rSr }, + { "sti_lsh3", 0xdc000000, 0xfe000000, Q_rS_rSr }, + { "sti_mpyi", 0xe0000000, 0xfe000000, Q_rS_Srr }, + { "sti_mpyi", 0xe0000000, 0xfe000000, Q_rS_rSr }, + { "sti_mpyi3", 0xe0000000, 0xfe000000, Q_rS_Srr }, + { "sti_mpyi3", 0xe0000000, 0xfe000000, Q_rS_rSr }, + { "sti_negi", 0xe4000000, 0xfe000000, Q_rS_Sr }, + { "sti_not", 0xe6000000, 0xfe000000, Q_rS_Sr }, + { "sti_or", 0xe8000000, 0xfe000000, Q_rS_Srr }, + { "sti_or", 0xe8000000, 0xfe000000, Q_rS_rSr }, + { "sti_or3", 0xe8000000, 0xfe000000, Q_rS_Srr }, + { "sti_or3", 0xe8000000, 0xfe000000, Q_rS_rSr }, + { "sti_sti", 0xc2000000, 0xfe000000, P_rS_rS }, + { "sti1_sti2", 0xc2000000, 0xfe000000, Q_rS_rS }, /* synonym */ + { "sti2_sti1", 0xc2000000, 0xfe000000, P_rS_rS }, /* synonym */ + { "sti_subi", 0xec000000, 0xfe000000, Q_rS_rSr }, + { "sti_subi3", 0xec000000, 0xfe000000, Q_rS_rSr }, + { "sti_xor", 0xee000000, 0xfe000000, Q_rS_Srr }, + { "sti_xor", 0xee000000, 0xfe000000, Q_rS_rSr }, + { "sti_xor3", 0xee000000, 0xfe000000, Q_rS_Srr }, + { "sti_xor3", 0xee000000, 0xfe000000, Q_rS_rSr }, + { "subf_mpyf", 0x84000000, 0xff000000, Q_rrr_SSr }, + { "subf_mpyf", 0x85000000, 0xff000000, Q_rSr_Srr }, + { "subf_mpyf", 0x85000000, 0xff000000, Q_rSr_rSr }, + { "subf_mpyf", 0x86000000, 0xff000000, Q_SSr_rrr }, + { "subf_mpyf", 0x87000000, 0xff000000, Q_Srr_Srr }, + { "subf_mpyf", 0x87000000, 0xff000000, Q_Srr_rSr }, + { "subf3_mpyf3", 0x84000000, 0xff000000, Q_rrr_SSr }, + { "subf3_mpyf3", 0x85000000, 0xff000000, Q_rSr_Srr }, + { "subf3_mpyf3", 0x85000000, 0xff000000, Q_rSr_rSr }, + { "subf3_mpyf3", 0x86000000, 0xff000000, Q_SSr_rrr }, + { "subf3_mpyf3", 0x87000000, 0xff000000, Q_Srr_Srr }, + { "subf3_mpyf3", 0x87000000, 0xff000000, Q_Srr_rSr }, + { "subf_stf", 0xea000000, 0xfe000000, P_rSr_rS }, + { "subf3_stf", 0xea000000, 0xfe000000, P_rSr_rS }, + { "subi_mpyi", 0x8c000000, 0xff000000, Q_rrr_SSr }, + { "subi_mpyi", 0x8d000000, 0xff000000, Q_rSr_Srr }, + { "subi_mpyi", 0x8d000000, 0xff000000, Q_rSr_rSr }, + { "subi_mpyi", 0x8e000000, 0xff000000, Q_SSr_rrr }, + { "subi_mpyi", 0x8f000000, 0xff000000, Q_Srr_Srr }, + { "subi_mpyi", 0x8f000000, 0xff000000, Q_Srr_rSr }, + { "subi3_mpyi3", 0x8c000000, 0xff000000, Q_rrr_SSr }, + { "subi3_mpyi3", 0x8d000000, 0xff000000, Q_rSr_Srr }, + { "subi3_mpyi3", 0x8d000000, 0xff000000, Q_rSr_rSr }, + { "subi3_mpyi3", 0x8e000000, 0xff000000, Q_SSr_rrr }, + { "subi3_mpyi3", 0x8f000000, 0xff000000, Q_Srr_Srr }, + { "subi3_mpyi3", 0x8f000000, 0xff000000, Q_Srr_rSr }, + { "subi_sti", 0xec000000, 0xfe000000, P_rSr_rS }, + { "subi3_sti", 0xec000000, 0xfe000000, P_rSr_rS }, + { "xor_sti", 0xee000000, 0xfe000000, P_Srr_rS }, + { "xor_sti", 0xee000000, 0xfe000000, P_rSr_rS }, + { "xor3_sti", 0xee000000, 0xfe000000, P_Srr_rS }, + { "xor3_sti", 0xee000000, 0xfe000000, P_rSr_rS }, + + { "absf", 0x00000000, 0xffe00000, G_r_r }, + { "absf", 0x00200000, 0xffe00000, G_T_r }, + { "absf", 0x00400000, 0xffe00000, G_Q_r }, + { "absf", 0x00600000, 0xffe00000, G_F_r }, + { "absi", 0x00800000, 0xffe00000, G_r_r }, + { "absi", 0x00a00000, 0xffe00000, G_T_r }, + { "absi", 0x00c00000, 0xffe00000, G_Q_r }, + { "absi", 0x00e00000, 0xffe00000, G_I_r }, + { "addc", 0x01000000, 0xffe00000, G_r_r }, + { "addc", 0x01200000, 0xffe00000, G_T_r }, + { "addc", 0x01400000, 0xffe00000, G_Q_r }, + { "addc", 0x01600000, 0xffe00000, G_I_r }, + { "addc", 0x20000000, 0xffe00000, T_rrr }, + { "addc", 0x20200000, 0xffe00000, T_Srr }, + { "addc", 0x20400000, 0xffe00000, T_rSr }, + { "addc", 0x20600000, 0xffe00000, T_SSr }, + { "addc", 0x30000000, 0xffe00000, T_Jrr }, /* C4x */ + { "addc", 0x30000000, 0xffe00000, T_rJr }, /* C4x */ + { "addc", 0x30200000, 0xffe00000, T_rRr }, /* C4x */ + { "addc", 0x30200000, 0xffe00000, T_Rrr }, /* C4x */ + { "addc", 0x30400000, 0xffe00000, T_JRr }, /* C4x */ + { "addc", 0x30400000, 0xffe00000, T_RJr }, /* C4x */ + { "addc", 0x30600000, 0xffe00000, T_RRr }, /* C4x */ + { "addc3", 0x20000000, 0xffe00000, T_rrr }, + { "addc3", 0x20200000, 0xffe00000, T_Srr }, + { "addc3", 0x20400000, 0xffe00000, T_rSr }, + { "addc3", 0x20600000, 0xffe00000, T_SSr }, + { "addc3", 0x30000000, 0xffe00000, T_Jrr }, /* C4x */ + { "addc3", 0x30000000, 0xffe00000, T_rJr }, /* C4x */ + { "addc3", 0x30200000, 0xffe00000, T_rRr }, /* C4x */ + { "addc3", 0x30200000, 0xffe00000, T_Rrr }, /* C4x */ + { "addc3", 0x30400000, 0xffe00000, T_JRr }, /* C4x */ + { "addc3", 0x30400000, 0xffe00000, T_RJr }, /* C4x */ + { "addc3", 0x30600000, 0xffe00000, T_RRr }, /* C4x */ + { "addf", 0x01800000, 0xffe00000, G_r_r }, + { "addf", 0x01a00000, 0xffe00000, G_T_r }, + { "addf", 0x01c00000, 0xffe00000, G_Q_r }, + { "addf", 0x01e00000, 0xffe00000, G_F_r }, + { "addf", 0x20800000, 0xffe00000, T_rrr }, + { "addf", 0x20a00000, 0xffe00000, T_Srr }, + { "addf", 0x20c00000, 0xffe00000, T_rSr }, + { "addf", 0x20e00000, 0xffe00000, T_SSr }, + { "addf", 0x30800000, 0xffe00000, T_Jrr }, /* C4x */ + { "addf", 0x30800000, 0xffe00000, T_rJr }, /* C4x */ + { "addf", 0x30a00000, 0xffe00000, T_rRr }, /* C4x */ + { "addf", 0x30a00000, 0xffe00000, T_Rrr }, /* C4x */ + { "addf", 0x30c00000, 0xffe00000, T_JRr }, /* C4x */ + { "addf", 0x30c00000, 0xffe00000, T_RJr }, /* C4x */ + { "addf", 0x30e00000, 0xffe00000, T_RRr }, /* C4x */ + { "addf3", 0x20800000, 0xffe00000, T_rrr }, + { "addf3", 0x20a00000, 0xffe00000, T_Srr }, + { "addf3", 0x20c00000, 0xffe00000, T_rSr }, + { "addf3", 0x20e00000, 0xffe00000, T_SSr }, + { "addf3", 0x30800000, 0xffe00000, T_Jrr }, /* C4x */ + { "addf3", 0x30800000, 0xffe00000, T_rJr }, /* C4x */ + { "addf3", 0x30a00000, 0xffe00000, T_rRr }, /* C4x */ + { "addf3", 0x30a00000, 0xffe00000, T_Rrr }, /* C4x */ + { "addf3", 0x30c00000, 0xffe00000, T_JRr }, /* C4x */ + { "addf3", 0x30c00000, 0xffe00000, T_RJr }, /* C4x */ + { "addf3", 0x30e00000, 0xffe00000, T_RRr }, /* C4x */ + { "addi", 0x02000000, 0xffe00000, G_r_r }, + { "addi", 0x02200000, 0xffe00000, G_T_r }, + { "addi", 0x02400000, 0xffe00000, G_Q_r }, + { "addi", 0x02600000, 0xffe00000, G_I_r }, + { "addi", 0x21000000, 0xffe00000, T_rrr }, + { "addi", 0x21200000, 0xffe00000, T_Srr }, + { "addi", 0x21400000, 0xffe00000, T_rSr }, + { "addi", 0x21600000, 0xffe00000, T_SSr }, + { "addi", 0x31000000, 0xffe00000, T_Jrr }, /* C4x */ + { "addi", 0x31000000, 0xffe00000, T_rJr }, /* C4x */ + { "addi", 0x31200000, 0xffe00000, T_rRr }, /* C4x */ + { "addi", 0x31200000, 0xffe00000, T_Rrr }, /* C4x */ + { "addi", 0x31400000, 0xffe00000, T_JRr }, /* C4x */ + { "addi", 0x31400000, 0xffe00000, T_RJr }, /* C4x */ + { "addi", 0x31600000, 0xffe00000, T_RRr }, /* C4x */ + { "addi3", 0x21000000, 0xffe00000, T_rrr }, + { "addi3", 0x21200000, 0xffe00000, T_Srr }, + { "addi3", 0x21400000, 0xffe00000, T_rSr }, + { "addi3", 0x21600000, 0xffe00000, T_SSr }, + { "addi3", 0x31000000, 0xffe00000, T_Jrr }, /* C4x */ + { "addi3", 0x31000000, 0xffe00000, T_rJr }, /* C4x */ + { "addi3", 0x31200000, 0xffe00000, T_rRr }, /* C4x */ + { "addi3", 0x31200000, 0xffe00000, T_Rrr }, /* C4x */ + { "addi3", 0x31400000, 0xffe00000, T_JRr }, /* C4x */ + { "addi3", 0x31400000, 0xffe00000, T_RJr }, /* C4x */ + { "addi3", 0x31600000, 0xffe00000, T_RRr }, /* C4x */ + { "and", 0x02800000, 0xffe00000, G_r_r }, + { "and", 0x02a00000, 0xffe00000, G_T_r }, + { "and", 0x02c00000, 0xffe00000, G_Q_r }, + { "and", 0x02e00000, 0xffe00000, G_L_r }, + { "and", 0x21800000, 0xffe00000, T_rrr }, + { "and", 0x21a00000, 0xffe00000, T_Srr }, + { "and", 0x21c00000, 0xffe00000, T_rSr }, + { "and", 0x21e00000, 0xffe00000, T_SSr }, + { "and", 0x31800000, 0xffe00000, T_Jrr }, /* C4x */ + { "and", 0x31800000, 0xffe00000, T_rJr }, /* C4x */ + { "and", 0x31a00000, 0xffe00000, T_rRr }, /* C4x */ + { "and", 0x31a00000, 0xffe00000, T_Rrr }, /* C4x */ + { "and", 0x31c00000, 0xffe00000, T_JRr }, /* C4x */ + { "and", 0x31c00000, 0xffe00000, T_RJr }, /* C4x */ + { "and", 0x31e00000, 0xffe00000, T_RRr }, /* C4x */ + { "and3", 0x21800000, 0xffe00000, T_rrr }, + { "and3", 0x21a00000, 0xffe00000, T_Srr }, + { "and3", 0x21c00000, 0xffe00000, T_rSr }, + { "and3", 0x21e00000, 0xffe00000, T_SSr }, + { "and3", 0x31800000, 0xffe00000, T_Jrr }, /* C4x */ + { "and3", 0x31800000, 0xffe00000, T_rJr }, /* C4x */ + { "and3", 0x31a00000, 0xffe00000, T_rRr }, /* C4x */ + { "and3", 0x31a00000, 0xffe00000, T_Rrr }, /* C4x */ + { "and3", 0x31c00000, 0xffe00000, T_JRr }, /* C4x */ + { "and3", 0x31c00000, 0xffe00000, T_RJr }, /* C4x */ + { "and3", 0x31e00000, 0xffe00000, T_RRr }, /* C4x */ + { "andn", 0x03000000, 0xffe00000, G_r_r }, + { "andn", 0x03200000, 0xffe00000, G_T_r }, + { "andn", 0x03400000, 0xffe00000, G_Q_r }, + { "andn", 0x03600000, 0xffe00000, G_L_r }, + { "andn", 0x22000000, 0xffe00000, T_rrr }, + { "andn", 0x22200000, 0xffe00000, T_Srr }, + { "andn", 0x22400000, 0xffe00000, T_rSr }, + { "andn", 0x22600000, 0xffe00000, T_SSr }, + { "andn", 0x32000000, 0xffe00000, T_Jrr }, /* C4x */ + { "andn", 0x32200000, 0xffe00000, T_Rrr }, /* C4x */ + { "andn", 0x32400000, 0xffe00000, T_JRr }, /* C4x */ + { "andn", 0x32600000, 0xffe00000, T_RRr }, /* C4x */ + { "andn3", 0x22000000, 0xffe00000, T_rrr }, + { "andn3", 0x22200000, 0xffe00000, T_Srr }, + { "andn3", 0x22400000, 0xffe00000, T_rSr }, + { "andn3", 0x22600000, 0xffe00000, T_SSr }, + { "andn3", 0x32000000, 0xffe00000, T_Jrr }, /* C4x */ + { "andn3", 0x32200000, 0xffe00000, T_Rrr }, /* C4x */ + { "andn3", 0x32400000, 0xffe00000, T_JRr }, /* C4x */ + { "andn3", 0x32600000, 0xffe00000, T_RRr }, /* C4x */ + { "ash", 0x03800000, 0xffe00000, G_r_r }, + { "ash", 0x03a00000, 0xffe00000, G_T_r }, + { "ash", 0x03c00000, 0xffe00000, G_Q_r }, + { "ash", 0x03e00000, 0xffe00000, G_I_r }, + { "ash", 0x22800000, 0xffe00000, T_rrr }, + { "ash", 0x22a00000, 0xffe00000, T_Srr }, + { "ash", 0x22c00000, 0xffe00000, T_rSr }, + { "ash", 0x22e00000, 0xffe00000, T_SSr }, + { "ash", 0x32800000, 0xffe00000, T_Jrr }, /* C4x */ + { "ash", 0x32a00000, 0xffe00000, T_Rrr }, /* C4x */ + { "ash", 0x32c00000, 0xffe00000, T_JRr }, /* C4x */ + { "ash", 0x32e00000, 0xffe00000, T_RRr }, /* C4x */ + { "ash3", 0x22800000, 0xffe00000, T_rrr }, + { "ash3", 0x22a00000, 0xffe00000, T_Srr }, + { "ash3", 0x22c00000, 0xffe00000, T_rSr }, + { "ash3", 0x22e00000, 0xffe00000, T_SSr }, + { "ash3", 0x32800000, 0xffe00000, T_Jrr }, /* C4x */ + { "ash3", 0x32a00000, 0xffe00000, T_Rrr }, /* C4x */ + { "ash3", 0x32c00000, 0xffe00000, T_JRr }, /* C4x */ + { "ash3", 0x32e00000, 0xffe00000, T_RRr }, /* C4x */ + { "bB", 0x68000000, 0xffe00000, "Q" }, + { "bB", 0x6a000000, 0xffe00000, "P" }, + { "b", 0x68000000, 0xffe00000, "Q" }, /* synonym for bu */ + { "b", 0x6a000000, 0xffe00000, "P" }, /* synonym for bu */ + { "bBd", 0x68200000, 0xffe00000, "Q" }, + { "bBd", 0x6a200000, 0xffe00000, "P" }, + { "bd", 0x68200000, 0xffe00000, "Q" }, /* synonym for bud */ + { "bd", 0x6a200000, 0xffe00000, "P" }, /* synonym for bud */ + { "br", 0x60000000, 0xff000000, "B" }, + { "brd", 0x61000000, 0xff000000, "B" }, + { "call", 0x62000000, 0xff000000, "B" }, + { "callB", 0x70000000, 0xffe00000, "Q" }, + { "callB", 0x72000000, 0xffe00000, "P" }, + { "cmpf", 0x04000000, 0xffe00000, G_r_r }, + { "cmpf", 0x04200000, 0xffe00000, G_T_r }, + { "cmpf", 0x04400000, 0xffe00000, G_Q_r }, + { "cmpf", 0x04600000, 0xffe00000, G_F_r }, + { "cmpf", 0x23000000, 0xffe00000, T_rr_ }, + { "cmpf", 0x23200000, 0xffe00000, T_rS_ }, + { "cmpf", 0x23400000, 0xffe00000, T_Sr_ }, + { "cmpf", 0x23600000, 0xffe00000, T_SS_ }, + { "cmpf", 0x33200000, 0xffe00000, T_Rr_ }, /* C4x */ + { "cmpf", 0x33600000, 0xffe00000, T_RR_ }, /* C4x */ + { "cmpf3", 0x23000000, 0xffe00000, T_rr_ }, + { "cmpf3", 0x23200000, 0xffe00000, T_rS_ }, + { "cmpf3", 0x23400000, 0xffe00000, T_Sr_ }, + { "cmpf3", 0x23600000, 0xffe00000, T_SS_ }, + { "cmpf3", 0x33200000, 0xffe00000, T_Rr_ }, /* C4x */ + { "cmpf3", 0x33600000, 0xffe00000, T_RR_ }, /* C4x */ + { "cmpi", 0x04800000, 0xffe00000, G_r_r }, + { "cmpi", 0x04a00000, 0xffe00000, G_T_r }, + { "cmpi", 0x04c00000, 0xffe00000, G_Q_r }, + { "cmpi", 0x04e00000, 0xffe00000, G_I_r }, + { "cmpi", 0x23800000, 0xffe00000, T_rr_ }, + { "cmpi", 0x23a00000, 0xffe00000, T_rS_ }, + { "cmpi", 0x23c00000, 0xffe00000, T_Sr_ }, + { "cmpi", 0x23e00000, 0xffe00000, T_SS_ }, + { "cmpi", 0x33800000, 0xffe00000, T_Jr_ }, /* C4x */ + { "cmpi", 0x33a00000, 0xffe00000, T_Rr_ }, /* C4x */ + { "cmpi", 0x33c00000, 0xffe00000, T_JR_ }, /* C4x */ + { "cmpi", 0x33e00000, 0xffe00000, T_RR_ }, /* C4x */ + { "cmpi3", 0x23800000, 0xffe00000, T_rr_ }, + { "cmpi3", 0x23a00000, 0xffe00000, T_rS_ }, + { "cmpi3", 0x23c00000, 0xffe00000, T_Sr_ }, + { "cmpi3", 0x23e00000, 0xffe00000, T_SS_ }, + { "cmpi3", 0x33800000, 0xffe00000, T_Jr_ }, /* C4x */ + { "cmpi3", 0x33a00000, 0xffe00000, T_Rr_ }, /* C4x */ + { "cmpi3", 0x33c00000, 0xffe00000, T_JR_ }, /* C4x */ + { "cmpi3", 0x33e00000, 0xffe00000, T_RR_ }, /* C4x */ + { "dbB", 0x6c000000, 0xfe200000, "A,Q" }, + { "dbB", 0x6e000000, 0xfe200000, "A,P" }, + { "db", 0x6c000000, 0xfe200000, "A,Q" }, /* synonym for dbu */ + { "db", 0x6e000000, 0xfe200000, "A,P" }, /* synonym for dbu */ + { "dbBd", 0x6c200000, 0xfe200000, "A,Q" }, + { "dbBd", 0x6e200000, 0xfe200000, "A,P" }, + { "dbd", 0x6c200000, 0xfe200000, "A,Q" }, /* synonym for dbud */ + { "dbd", 0x6e200000, 0xfe200000, "A,P" }, /* synonym for dbud */ + { "fix", 0x05000000, 0xffe00000, G_r_r }, + { "fix", 0x05200000, 0xffe00000, G_T_r }, + { "fix", 0x05400000, 0xffe00000, G_Q_r }, + { "fix", 0x05600000, 0xffe00000, G_F_r }, + { "float", 0x05800000, 0xffe00000, G_r_r }, + { "float", 0x05a00000, 0xffe00000, G_T_r }, + { "float", 0x05c00000, 0xffe00000, G_Q_r }, + { "float", 0x05e00000, 0xffe00000, G_I_r }, + { "iack", 0x1b200000, 0xffe00000, "@" }, + { "iack", 0x1b400000, 0xffe00000, "*" }, + { "idle", 0x06000000, 0xffffffff, "" }, + { "lde", 0x06800000, 0xffe00000, G_r_r }, + { "lde", 0x06a00000, 0xffe00000, G_T_r }, + { "lde", 0x06c00000, 0xffe00000, G_Q_r }, + { "lde", 0x06e00000, 0xffe00000, G_F_r }, + { "ldf", 0x07000000, 0xffe00000, G_r_r }, + { "ldf", 0x07200000, 0xffe00000, G_T_r }, + { "ldf", 0x07400000, 0xffe00000, G_Q_r }, + { "ldf", 0x07600000, 0xffe00000, G_F_r }, + { "ldfC", 0x40000000, 0xf0600000, G_r_r }, + { "ldfC", 0x40200000, 0xf0600000, G_T_r }, + { "ldfC", 0x40400000, 0xf0600000, G_Q_r }, + { "ldfC", 0x40600000, 0xf0600000, G_F_r }, + { "ldfi", 0x07a00000, 0xffe00000, G_T_r }, + { "ldfi", 0x07c00000, 0xffe00000, G_Q_r }, + { "ldi", 0x08000000, 0xffe00000, G_r_r }, + { "ldi", 0x08200000, 0xffe00000, G_T_r }, + { "ldi", 0x08400000, 0xffe00000, G_Q_r }, + { "ldi", 0x08600000, 0xffe00000, G_I_r }, + { "ldiC", 0x50000000, 0xf0600000, G_r_r }, + { "ldiC", 0x50200000, 0xf0600000, G_T_r }, + { "ldiC", 0x50400000, 0xf0600000, G_Q_r }, + { "ldiC", 0x50600000, 0xf0600000, G_I_r }, + { "ldii", 0x08a00000, 0xffe00000, G_T_r }, + { "ldii", 0x08c00000, 0xffe00000, G_Q_r }, + { "ldp", 0x50700000, 0xffff0000, "#" }, /* synonym for ldiu #,dp */ + { "ldm", 0x09000000, 0xffe00000, G_r_r }, + { "ldm", 0x09200000, 0xffe00000, G_T_r }, + { "ldm", 0x09400000, 0xffe00000, G_Q_r }, + { "ldm", 0x09600000, 0xffe00000, G_F_r }, + { "lsh", 0x09800000, 0xffe00000, G_r_r }, + { "lsh", 0x09a00000, 0xffe00000, G_T_r }, + { "lsh", 0x09c00000, 0xffe00000, G_Q_r }, + { "lsh", 0x09e00000, 0xffe00000, G_I_r }, + { "lsh", 0x24000000, 0xffe00000, T_rrr }, + { "lsh", 0x24200000, 0xffe00000, T_Srr }, + { "lsh", 0x24400000, 0xffe00000, T_rSr }, + { "lsh", 0x24600000, 0xffe00000, T_SSr }, + { "lsh", 0x34000000, 0xffe00000, T_Jrr }, /* C4x */ + { "lsh", 0x34200000, 0xffe00000, T_Rrr }, /* C4x */ + { "lsh", 0x34400000, 0xffe00000, T_JRr }, /* C4x */ + { "lsh", 0x34600000, 0xffe00000, T_RRr }, /* C4x */ + { "lsh3", 0x24000000, 0xffe00000, T_rrr }, + { "lsh3", 0x24200000, 0xffe00000, T_Srr }, + { "lsh3", 0x24400000, 0xffe00000, T_rSr }, + { "lsh3", 0x24600000, 0xffe00000, T_SSr }, + { "lsh3", 0x34000000, 0xffe00000, T_Jrr }, /* C4x */ + { "lsh3", 0x34200000, 0xffe00000, T_Rrr }, /* C4x */ + { "lsh3", 0x34400000, 0xffe00000, T_JRr }, /* C4x */ + { "lsh3", 0x34600000, 0xffe00000, T_RRr }, /* C4x */ + { "mpyf", 0x0a000000, 0xffe00000, G_r_r }, + { "mpyf", 0x0a200000, 0xffe00000, G_T_r }, + { "mpyf", 0x0a400000, 0xffe00000, G_Q_r }, + { "mpyf", 0x0a600000, 0xffe00000, G_F_r }, + { "mpyf", 0x24800000, 0xffe00000, T_rrr }, + { "mpyf", 0x24a00000, 0xffe00000, T_Srr }, + { "mpyf", 0x24c00000, 0xffe00000, T_rSr }, + { "mpyf", 0x24e00000, 0xffe00000, T_SSr }, + { "mpyf", 0x34800000, 0xffe00000, T_Jrr }, /* C4x */ + { "mpyf", 0x34800000, 0xffe00000, T_rJr }, /* C4x */ + { "mpyf", 0x34a00000, 0xffe00000, T_rRr }, /* C4x */ + { "mpyf", 0x34a00000, 0xffe00000, T_Rrr }, /* C4x */ + { "mpyf", 0x34c00000, 0xffe00000, T_JRr }, /* C4x */ + { "mpyf", 0x34c00000, 0xffe00000, T_RJr }, /* C4x */ + { "mpyf", 0x34e00000, 0xffe00000, T_RRr }, /* C4x */ + { "mpyf3", 0x24800000, 0xffe00000, T_rrr }, + { "mpyf3", 0x24a00000, 0xffe00000, T_Srr }, + { "mpyf3", 0x24c00000, 0xffe00000, T_rSr }, + { "mpyf3", 0x24e00000, 0xffe00000, T_SSr }, + { "mpyf3", 0x34800000, 0xffe00000, T_Jrr }, /* C4x */ + { "mpyf3", 0x34800000, 0xffe00000, T_rJr }, /* C4x */ + { "mpyf3", 0x34a00000, 0xffe00000, T_rRr }, /* C4x */ + { "mpyf3", 0x34a00000, 0xffe00000, T_Rrr }, /* C4x */ + { "mpyf3", 0x34c00000, 0xffe00000, T_JRr }, /* C4x */ + { "mpyf3", 0x34c00000, 0xffe00000, T_RJr }, /* C4x */ + { "mpyf3", 0x34e00000, 0xffe00000, T_RRr }, /* C4x */ + { "mpyi", 0x0a800000, 0xffe00000, G_r_r }, + { "mpyi", 0x0aa00000, 0xffe00000, G_T_r }, + { "mpyi", 0x0ac00000, 0xffe00000, G_Q_r }, + { "mpyi", 0x0ae00000, 0xffe00000, G_I_r }, + { "mpyi", 0x25000000, 0xffe00000, T_rrr }, + { "mpyi", 0x25200000, 0xffe00000, T_Srr }, + { "mpyi", 0x25400000, 0xffe00000, T_rSr }, + { "mpyi", 0x25600000, 0xffe00000, T_SSr }, + { "mpyi", 0x35000000, 0xffe00000, T_Jrr }, /* C4x */ + { "mpyi", 0x35000000, 0xffe00000, T_rJr }, /* C4x */ + { "mpyi", 0x35200000, 0xffe00000, T_rRr }, /* C4x */ + { "mpyi", 0x35200000, 0xffe00000, T_Rrr }, /* C4x */ + { "mpyi", 0x35400000, 0xffe00000, T_JRr }, /* C4x */ + { "mpyi", 0x35400000, 0xffe00000, T_RJr }, /* C4x */ + { "mpyi", 0x35600000, 0xffe00000, T_RRr }, /* C4x */ + { "mpyi3", 0x25000000, 0xffe00000, T_rrr }, + { "mpyi3", 0x25200000, 0xffe00000, T_Srr }, + { "mpyi3", 0x25400000, 0xffe00000, T_rSr }, + { "mpyi3", 0x25600000, 0xffe00000, T_SSr }, + { "mpyi3", 0x35000000, 0xffe00000, T_Jrr }, /* C4x */ + { "mpyi3", 0x35000000, 0xffe00000, T_rJr }, /* C4x */ + { "mpyi3", 0x35200000, 0xffe00000, T_rRr }, /* C4x */ + { "mpyi3", 0x35200000, 0xffe00000, T_Rrr }, /* C4x */ + { "mpyi3", 0x35400000, 0xffe00000, T_JRr }, /* C4x */ + { "mpyi3", 0x35400000, 0xffe00000, T_RJr }, /* C4x */ + { "mpyi3", 0x35600000, 0xffe00000, T_RRr }, /* C4x */ + { "negb", 0x0b000000, 0xffe00000, G_r_r }, + { "negb", 0x0b200000, 0xffe00000, G_T_r }, + { "negb", 0x0b400000, 0xffe00000, G_Q_r }, + { "negb", 0x0b600000, 0xffe00000, G_I_r }, + { "negf", 0x0b800000, 0xffe00000, G_r_r }, + { "negf", 0x0ba00000, 0xffe00000, G_T_r }, + { "negf", 0x0bc00000, 0xffe00000, G_Q_r }, + { "negf", 0x0be00000, 0xffe00000, G_F_r }, + { "negi", 0x0c000000, 0xffe00000, G_r_r }, + { "negi", 0x0c200000, 0xffe00000, G_T_r }, + { "negi", 0x0c400000, 0xffe00000, G_Q_r }, + { "negi", 0x0c600000, 0xffe00000, G_I_r }, + { "nop", 0x0c800000, 0xffe00000, "Q" }, + { "nop", 0x0cc00000, 0xffe00000, "*" }, + { "nop", 0x0c800000, 0xffe00000, "" }, + { "norm", 0x0d000000, 0xffe00000, G_r_r }, + { "norm", 0x0d200000, 0xffe00000, G_T_r }, + { "norm", 0x0d400000, 0xffe00000, G_Q_r }, + { "norm", 0x0d600000, 0xffe00000, G_F_r }, + { "not", 0x0d800000, 0xffe00000, G_r_r }, + { "not", 0x0da00000, 0xffe00000, G_T_r }, + { "not", 0x0dc00000, 0xffe00000, G_Q_r }, + { "not", 0x0de00000, 0xffe00000, G_L_r }, + { "or", 0x10000000, 0xffe00000, G_r_r }, + { "or", 0x10200000, 0xffe00000, G_T_r }, + { "or", 0x10400000, 0xffe00000, G_Q_r }, + { "or", 0x10600000, 0xffe00000, G_L_r }, + { "or", 0x25800000, 0xffe00000, T_rrr }, + { "or", 0x25a00000, 0xffe00000, T_Srr }, + { "or", 0x25c00000, 0xffe00000, T_rSr }, + { "or", 0x25e00000, 0xffe00000, T_SSr }, + { "or", 0x35800000, 0xffe00000, T_Jrr }, /* C4x */ + { "or", 0x35800000, 0xffe00000, T_rJr }, /* C4x */ + { "or", 0x35a00000, 0xffe00000, T_rRr }, /* C4x */ + { "or", 0x35a00000, 0xffe00000, T_Rrr }, /* C4x */ + { "or", 0x35c00000, 0xffe00000, T_JRr }, /* C4x */ + { "or", 0x35c00000, 0xffe00000, T_RJr }, /* C4x */ + { "or", 0x35e00000, 0xffe00000, T_RRr }, /* C4x */ + { "or3", 0x25800000, 0xffe00000, T_rrr }, + { "or3", 0x25a00000, 0xffe00000, T_Srr }, + { "or3", 0x25c00000, 0xffe00000, T_rSr }, + { "or3", 0x25e00000, 0xffe00000, T_SSr }, + { "or3", 0x35800000, 0xffe00000, T_Jrr }, /* C4x */ + { "or3", 0x35800000, 0xffe00000, T_rJr }, /* C4x */ + { "or3", 0x35a00000, 0xffe00000, T_rRr }, /* C4x */ + { "or3", 0x35a00000, 0xffe00000, T_Rrr }, /* C4x */ + { "or3", 0x35c00000, 0xffe00000, T_JRr }, /* C4x */ + { "or3", 0x35c00000, 0xffe00000, T_RJr }, /* C4x */ + { "or3", 0x35e00000, 0xffe00000, T_RRr }, /* C4x */ + { "pop", 0x0e200000, 0xffe00000, "R" }, + { "popf", 0x0ea00000, 0xffe00000, "R" }, + { "push", 0x0f200000, 0xffe00000, "R" }, + { "pushf", 0x0fa00000, 0xffe00000, "R" }, + { "retiB", 0x78000000, 0xffe00000, "" }, + { "reti", 0x78000000, 0xffe00000, "" }, /* synonym for reti */ + { "retsB", 0x78800000, 0xffe00000, "" }, + { "rets", 0x78800000, 0xffe00000, "" }, /* synonym for rets */ + { "rnd", 0x11000000, 0xffe00000, G_r_r }, + { "rnd", 0x11200000, 0xffe00000, G_T_r }, + { "rnd", 0x11400000, 0xffe00000, G_Q_r }, + { "rnd", 0x11600000, 0xffe00000, G_F_r }, + { "rol", 0x11e00000, 0xffe00000, "R" }, + { "rolc", 0x12600000, 0xffe00000, "R" }, + { "ror", 0x12e00000, 0xffe00000, "R" }, + { "rorc", 0x13600000, 0xffe00000, "R" }, + { "rptb", 0x64000000, 0xff000000, "B" }, + { "rptb", 0x79000000, 0xff000000, "Q" }, /* C4x */ + { "rpts", 0x139b0000, 0xffff0000, "Q" }, + { "rpts", 0x13bb0000, 0xffff0000, "@" }, + { "rpts", 0x13db0000, 0xffff0000, "*" }, + { "rpts", 0x13fb0000, 0xffff0000, "U" }, + { "sigi", 0x16000000, 0xffe00000, "" }, /* C3x */ + { "sigi", 0x16200000, 0xffe00000, G_T_r }, /* C4x */ + { "sigi", 0x16400000, 0xffe00000, G_Q_r }, /* C4x */ + { "stf", 0x14200000, 0xffe00000, "R,@" }, + { "stf", 0x14400000, 0xffe00000, "R,*" }, + { "stfi", 0x14a00000, 0xffe00000, "R,@" }, + { "stfi", 0x14c00000, 0xffe00000, "R,*" }, + { "sti", 0x15000000, 0xffe00000, "T,@" }, /* C4x only */ + { "sti", 0x15200000, 0xffe00000, "R,@" }, + { "sti", 0x15400000, 0xffe00000, "R,*" }, + { "sti", 0x15600000, 0xffe00000, "T,*" }, /* C4x only */ + { "stii", 0x15a00000, 0xffe00000, "R,@" }, + { "stii", 0x15c00000, 0xffe00000, "R,*" }, + { "subb", 0x16800000, 0xffe00000, G_r_r }, + { "subb", 0x16a00000, 0xffe00000, G_T_r }, + { "subb", 0x16c00000, 0xffe00000, G_Q_r }, + { "subb", 0x16e00000, 0xffe00000, G_I_r }, + { "subb", 0x26000000, 0xffe00000, T_rrr }, + { "subb", 0x26200000, 0xffe00000, T_Srr }, + { "subb", 0x26400000, 0xffe00000, T_rSr }, + { "subb", 0x26600000, 0xffe00000, T_SSr }, + { "subb", 0x36000000, 0xffe00000, T_Jrr }, /* C4x */ + { "subb", 0x36200000, 0xffe00000, T_Rrr }, /* C4x */ + { "subb", 0x36400000, 0xffe00000, T_JRr }, /* C4x */ + { "subb", 0x36600000, 0xffe00000, T_RRr }, /* C4x */ + { "subb3", 0x26000000, 0xffe00000, T_rrr }, + { "subb3", 0x26200000, 0xffe00000, T_Srr }, + { "subb3", 0x26400000, 0xffe00000, T_rSr }, + { "subb3", 0x26600000, 0xffe00000, T_SSr }, + { "subb3", 0x36000000, 0xffe00000, T_Jrr }, /* C4x */ + { "subb3", 0x36200000, 0xffe00000, T_Rrr }, /* C4x */ + { "subb3", 0x36400000, 0xffe00000, T_JRr }, /* C4x */ + { "subb3", 0x36600000, 0xffe00000, T_RRr }, /* C4x */ + { "subc", 0x17000000, 0xffe00000, G_r_r }, + { "subc", 0x17200000, 0xffe00000, G_T_r }, + { "subc", 0x17400000, 0xffe00000, G_Q_r }, + { "subc", 0x17600000, 0xffe00000, G_I_r }, + { "subf", 0x17800000, 0xffe00000, G_r_r }, + { "subf", 0x17a00000, 0xffe00000, G_T_r }, + { "subf", 0x17c00000, 0xffe00000, G_Q_r }, + { "subf", 0x17e00000, 0xffe00000, G_F_r }, + { "subf", 0x26800000, 0xffe00000, T_rrr }, + { "subf", 0x26a00000, 0xffe00000, T_Srr }, + { "subf", 0x26c00000, 0xffe00000, T_rSr }, + { "subf", 0x26e00000, 0xffe00000, T_SSr }, + { "subf", 0x36800000, 0xffe00000, T_Jrr }, /* C4x */ + { "subf", 0x36a00000, 0xffe00000, T_Rrr }, /* C4x */ + { "subf", 0x36c00000, 0xffe00000, T_JRr }, /* C4x */ + { "subf", 0x36e00000, 0xffe00000, T_RRr }, /* C4x */ + { "subf3", 0x26800000, 0xffe00000, T_rrr }, + { "subf3", 0x26a00000, 0xffe00000, T_Srr }, + { "subf3", 0x26c00000, 0xffe00000, T_rSr }, + { "subf3", 0x26e00000, 0xffe00000, T_SSr }, + { "subf3", 0x36800000, 0xffe00000, T_Jrr }, /* C4x */ + { "subf3", 0x36a00000, 0xffe00000, T_Rrr }, /* C4x */ + { "subf3", 0x36c00000, 0xffe00000, T_JRr }, /* C4x */ + { "subf3", 0x36e00000, 0xffe00000, T_RRr }, /* C4x */ + { "subi", 0x18000000, 0xffe00000, G_r_r }, + { "subi", 0x18200000, 0xffe00000, G_T_r }, + { "subi", 0x18400000, 0xffe00000, G_Q_r }, + { "subi", 0x18600000, 0xffe00000, G_I_r }, + { "subi", 0x27000000, 0xffe00000, T_rrr }, + { "subi", 0x27200000, 0xffe00000, T_Srr }, + { "subi", 0x27400000, 0xffe00000, T_rSr }, + { "subi", 0x27600000, 0xffe00000, T_SSr }, + { "subi", 0x37000000, 0xffe00000, T_Jrr }, /* C4x */ + { "subi", 0x37200000, 0xffe00000, T_Rrr }, /* C4x */ + { "subi", 0x37400000, 0xffe00000, T_JRr }, /* C4x */ + { "subi", 0x37600000, 0xffe00000, T_RRr }, /* C4x */ + { "subi3", 0x27000000, 0xffe00000, T_rrr }, + { "subi3", 0x27200000, 0xffe00000, T_Srr }, + { "subi3", 0x27400000, 0xffe00000, T_rSr }, + { "subi3", 0x27600000, 0xffe00000, T_SSr }, + { "subi3", 0x37000000, 0xffe00000, T_Jrr }, /* C4x */ + { "subi3", 0x37200000, 0xffe00000, T_Rrr }, /* C4x */ + { "subi3", 0x37400000, 0xffe00000, T_JRr }, /* C4x */ + { "subi3", 0x37600000, 0xffe00000, T_RRr }, /* C4x */ + { "subrb", 0x18800000, 0xffe00000, G_r_r }, + { "subrb", 0x18a00000, 0xffe00000, G_T_r }, + { "subrb", 0x18c00000, 0xffe00000, G_Q_r }, + { "subrb", 0x18e00000, 0xffe00000, G_I_r }, + { "subrf", 0x19000000, 0xffe00000, G_r_r }, + { "subrf", 0x19200000, 0xffe00000, G_T_r }, + { "subrf", 0x19400000, 0xffe00000, G_Q_r }, + { "subrf", 0x19600000, 0xffe00000, G_F_r }, + { "subri", 0x19800000, 0xffe00000, G_r_r }, + { "subri", 0x19a00000, 0xffe00000, G_T_r }, + { "subri", 0x19c00000, 0xffe00000, G_Q_r }, + { "subri", 0x19e00000, 0xffe00000, G_I_r }, + { "swi", 0x66000000, 0xffffffff, "" }, + { "trapB", 0x74000000, 0xffe00000, "V" }, + { "trap", 0x74000000, 0xffe00000, "V" }, /* synonym for trapu */ + { "tstb", 0x1a000000, 0xffe00000, G_r_r }, + { "tstb", 0x1a200000, 0xffe00000, G_T_r }, + { "tstb", 0x1a400000, 0xffe00000, G_Q_r }, + { "tstb", 0x1a600000, 0xffe00000, G_L_r }, + { "tstb", 0x27800000, 0xffe00000, T_rr_ }, + { "tstb", 0x27a00000, 0xffe00000, T_rS_ }, + { "tstb", 0x27c00000, 0xffe00000, T_Sr_ }, + { "tstb", 0x27e00000, 0xffe00000, T_SS_ }, + { "tstb", 0x37800000, 0xffe00000, T_Jr_ }, /* C4x */ + { "tstb", 0x37800000, 0xffe00000, T_rJ_ }, /* C4x */ + { "tstb", 0x37a00000, 0xffe00000, T_rR_ }, /* C4x */ + { "tstb", 0x37a00000, 0xffe00000, T_Rr_ }, /* C4x */ + { "tstb", 0x37c00000, 0xffe00000, T_JR_ }, /* C4x */ + { "tstb", 0x37c00000, 0xffe00000, T_RJ_ }, /* C4x */ + { "tstb", 0x37e00000, 0xffe00000, T_RR_ }, /* C4x */ + { "tstb3", 0x27800000, 0xffe00000, T_rr_ }, + { "tstb3", 0x27a00000, 0xffe00000, T_rS_ }, + { "tstb3", 0x27c00000, 0xffe00000, T_Sr_ }, + { "tstb3", 0x27e00000, 0xffe00000, T_SS_ }, + { "tstb3", 0x37800000, 0xffe00000, T_Jr_ }, /* C4x */ + { "tstb3", 0x37800000, 0xffe00000, T_rJ_ }, /* C4x */ + { "tstb3", 0x37a00000, 0xffe00000, T_rR_ }, /* C4x */ + { "tstb3", 0x37a00000, 0xffe00000, T_Rr_ }, /* C4x */ + { "tstb3", 0x37c00000, 0xffe00000, T_JR_ }, /* C4x */ + { "tstb3", 0x37c00000, 0xffe00000, T_RJ_ }, /* C4x */ + { "tstb3", 0x37e00000, 0xffe00000, T_RR_ }, /* C4x */ + { "xor", 0x1a800000, 0xffe00000, G_r_r }, + { "xor", 0x1aa00000, 0xffe00000, G_T_r }, + { "xor", 0x1ac00000, 0xffe00000, G_Q_r }, + { "xor", 0x1ae00000, 0xffe00000, G_L_r }, + { "xor", 0x28000000, 0xffe00000, T_rrr }, + { "xor", 0x28200000, 0xffe00000, T_Srr }, + { "xor", 0x28400000, 0xffe00000, T_rSr }, + { "xor", 0x28600000, 0xffe00000, T_SSr }, + { "xor", 0x38000000, 0xffe00000, T_Jrr }, /* C4x */ + { "xor", 0x38000000, 0xffe00000, T_rJr }, /* C4x */ + { "xor", 0x38200000, 0xffe00000, T_rRr }, /* C4x */ + { "xor", 0x38200000, 0xffe00000, T_Rrr }, /* C4x */ + { "xor", 0x3c400000, 0xffe00000, T_JRr }, /* C4x */ + { "xor", 0x3c400000, 0xffe00000, T_RJr }, /* C4x */ + { "xor", 0x3c600000, 0xffe00000, T_RRr }, /* C4x */ + { "xor3", 0x28000000, 0xffe00000, T_rrr }, + { "xor3", 0x28200000, 0xffe00000, T_Srr }, + { "xor3", 0x28400000, 0xffe00000, T_rSr }, + { "xor3", 0x28600000, 0xffe00000, T_SSr }, + { "xor3", 0x38000000, 0xffe00000, T_Jrr }, /* C4x */ + { "xor3", 0x38000000, 0xffe00000, T_rJr }, /* C4x */ + { "xor3", 0x38200000, 0xffe00000, T_rRr }, /* C4x */ + { "xor3", 0x38200000, 0xffe00000, T_Rrr }, /* C4x */ + { "xor3", 0x3c400000, 0xffe00000, T_JRr }, /* C4x */ + { "xor3", 0x3c400000, 0xffe00000, T_RJr }, /* C4x */ + { "xor3", 0x3c600000, 0xffe00000, T_RRr }, /* C4x */ + + /* Dummy entry, not included in c3x_num_insts. This + lets code examine entry i + 1 without checking + if we've run off the end of the table. */ + { "", 0x0, 0x00, "" } +}; + +const unsigned int c3x_num_insts = (((sizeof c3x_insts) / (sizeof c3x_insts[0])) - 1); + +/* Define c4x additional opcodes for assembler and disassembler. */ +static const c4x_inst_t c4x_insts[] = +{ + /* Parallel instructions. */ + { "frieee_stf", 0xf2000000, 0xfe000000, P_Sr_rS }, + { "toieee_stf", 0xf0000000, 0xfe000000, P_Sr_rS }, + + { "bBaf", 0x68a00000, 0xffe00000, "Q" }, + { "bBaf", 0x6aa00000, 0xffe00000, "P" }, + { "baf", 0x68a00000, 0xffe00000, "Q" }, /* synonym for buaf */ + { "baf", 0x6aa00000, 0xffe00000, "P" }, /* synonym for buaf */ + { "bBat", 0x68600000, 0xffe00000, "Q" }, + { "bBat", 0x6a600000, 0xffe00000, "P" }, + { "bat", 0x68600000, 0xffe00000, "Q" }, /* synonym for buat */ + { "bat", 0x6a600000, 0xffe00000, "P" }, /* synonym for buat */ + { "laj", 0x63000000, 0xff000000, "B" }, + { "lajB", 0x70200000, 0xffe00000, "Q" }, + { "lajB", 0x72200000, 0xffe00000, "P" }, + { "latB", 0x74800000, 0xffe00000, "V" }, + + { "frieee", 0x1c000000, 0xffe00000, G_r_r }, + { "frieee", 0x1c200000, 0xffe00000, G_T_r }, + { "frieee", 0x1c400000, 0xffe00000, G_Q_r }, + { "frieee", 0x1c600000, 0xffe00000, G_F_r }, + + { "lb0", 0xb0000000, 0xffe00000, G_r_r }, + { "lb0", 0xb0200000, 0xffe00000, G_T_r }, + { "lb0", 0xb0400000, 0xffe00000, G_Q_r }, + { "lb0", 0xb0600000, 0xffe00000, G_I_r }, + { "lbu0", 0xb2000000, 0xffe00000, G_r_r }, + { "lbu0", 0xb2200000, 0xffe00000, G_T_r }, + { "lbu0", 0xb2400000, 0xffe00000, G_Q_r }, + { "lbu0", 0xb2600000, 0xffe00000, G_L_r }, + { "lb1", 0xb0800000, 0xffe00000, G_r_r }, + { "lb1", 0xb0a00000, 0xffe00000, G_T_r }, + { "lb1", 0xb0c00000, 0xffe00000, G_Q_r }, + { "lb1", 0xb0e00000, 0xffe00000, G_I_r }, + { "lbu1", 0xb2800000, 0xffe00000, G_r_r }, + { "lbu1", 0xb2a00000, 0xffe00000, G_T_r }, + { "lbu1", 0xb2c00000, 0xffe00000, G_Q_r }, + { "lbu1", 0xb2e00000, 0xffe00000, G_L_r }, + { "lb2", 0xb1000000, 0xffe00000, G_r_r }, + { "lb2", 0xb1200000, 0xffe00000, G_T_r }, + { "lb2", 0xb1400000, 0xffe00000, G_Q_r }, + { "lb2", 0xb1600000, 0xffe00000, G_I_r }, + { "lbu2", 0xb3000000, 0xffe00000, G_r_r }, + { "lbu2", 0xb3200000, 0xffe00000, G_T_r }, + { "lbu2", 0xb3400000, 0xffe00000, G_Q_r }, + { "lbu2", 0xb3600000, 0xffe00000, G_L_r }, + { "lb3", 0xb1800000, 0xffe00000, G_r_r }, + { "lb3", 0xb1a00000, 0xffe00000, G_T_r }, + { "lb3", 0xb1c00000, 0xffe00000, G_Q_r }, + { "lb3", 0xb1e00000, 0xffe00000, G_I_r }, + { "lbu3", 0xb3800000, 0xffe00000, G_r_r }, + { "lbu3", 0xb3a00000, 0xffe00000, G_T_r }, + { "lbu3", 0xb3c00000, 0xffe00000, G_Q_r }, + { "lbu3", 0xb3e00000, 0xffe00000, G_L_r }, + { "lda", 0x1e800000, 0xffe00000, "Q,Y" }, + { "lda", 0x1ea00000, 0xffe00000, "@,Y" }, + { "lda", 0x1ec00000, 0xffe00000, "*,Y" }, + { "lda", 0x1ee00000, 0xffe00000, "S,Y" }, + { "ldep", 0x76000000, 0xffe00000, "X,R" }, + { "ldhi", 0x1fe00000, 0xffe00000, G_L_r }, + { "ldhi", 0x1fe00000, 0xffe00000, "#,R" }, + { "ldpe", 0x76800000, 0xffe00000, "Q,Z" }, + { "ldpk", 0x1F700000, 0xffff0000, "#" }, + { "lh0", 0xba000000, 0xffe00000, G_r_r }, + { "lh0", 0xba200000, 0xffe00000, G_T_r }, + { "lh0", 0xba400000, 0xffe00000, G_Q_r }, + { "lh0", 0xba600000, 0xffe00000, G_I_r }, + { "lhu0", 0xbb000000, 0xffe00000, G_r_r }, + { "lhu0", 0xbb200000, 0xffe00000, G_T_r }, + { "lhu0", 0xbb400000, 0xffe00000, G_Q_r }, + { "lhu0", 0xbb600000, 0xffe00000, G_L_r }, + { "lh1", 0xba800000, 0xffe00000, G_r_r }, + { "lh1", 0xbaa00000, 0xffe00000, G_T_r }, + { "lh1", 0xbac00000, 0xffe00000, G_Q_r }, + { "lh1", 0xbae00000, 0xffe00000, G_I_r }, + { "lhu1", 0xbb800000, 0xffe00000, G_r_r }, + { "lhu1", 0xbba00000, 0xffe00000, G_T_r }, + { "lhu1", 0xbbc00000, 0xffe00000, G_Q_r }, + { "lhu1", 0xbbe00000, 0xffe00000, G_L_r }, + { "lwl0", 0xb4000000, 0xffe00000, G_r_r }, + { "lwl0", 0xb4200000, 0xffe00000, G_T_r }, + { "lwl0", 0xb4400000, 0xffe00000, G_Q_r }, + { "lwl0", 0xb4600000, 0xffe00000, G_I_r }, + { "lwl1", 0xb4800000, 0xffe00000, G_r_r }, + { "lwl1", 0xb4a00000, 0xffe00000, G_T_r }, + { "lwl1", 0xb4c00000, 0xffe00000, G_Q_r }, + { "lwl1", 0xb4e00000, 0xffe00000, G_I_r }, + { "lwl2", 0xb5000000, 0xffe00000, G_r_r }, + { "lwl2", 0xb5200000, 0xffe00000, G_T_r }, + { "lwl2", 0xb5400000, 0xffe00000, G_Q_r }, + { "lwl2", 0xb5600000, 0xffe00000, G_I_r }, + { "lwl3", 0xb5800000, 0xffe00000, G_r_r }, + { "lwl3", 0xb5a00000, 0xffe00000, G_T_r }, + { "lwl3", 0xb5c00000, 0xffe00000, G_Q_r }, + { "lwl3", 0xb5e00000, 0xffe00000, G_I_r }, + { "lwr0", 0xb6000000, 0xffe00000, G_r_r }, + { "lwr0", 0xb6200000, 0xffe00000, G_T_r }, + { "lwr0", 0xb6400000, 0xffe00000, G_Q_r }, + { "lwr0", 0xb6600000, 0xffe00000, G_I_r }, + { "lwr1", 0xb6800000, 0xffe00000, G_r_r }, + { "lwr1", 0xb6a00000, 0xffe00000, G_T_r }, + { "lwr1", 0xb6c00000, 0xffe00000, G_Q_r }, + { "lwr1", 0xb6e00000, 0xffe00000, G_I_r }, + { "lwr2", 0xb7000000, 0xffe00000, G_r_r }, + { "lwr2", 0xb7200000, 0xffe00000, G_T_r }, + { "lwr2", 0xb7400000, 0xffe00000, G_Q_r }, + { "lwr2", 0xb7600000, 0xffe00000, G_I_r }, + { "lwr3", 0xb7800000, 0xffe00000, G_r_r }, + { "lwr3", 0xb7a00000, 0xffe00000, G_T_r }, + { "lwr3", 0xb7c00000, 0xffe00000, G_Q_r }, + { "lwr3", 0xb7e00000, 0xffe00000, G_I_r }, + { "mb0", 0xb8000000, 0xffe00000, G_r_r }, + { "mb0", 0xb8200000, 0xffe00000, G_T_r }, + { "mb0", 0xb8400000, 0xffe00000, G_Q_r }, + { "mb0", 0xb8600000, 0xffe00000, G_I_r }, + { "mb1", 0xb8800000, 0xffe00000, G_r_r }, + { "mb1", 0xb8a00000, 0xffe00000, G_T_r }, + { "mb1", 0xb8c00000, 0xffe00000, G_Q_r }, + { "mb1", 0xb8e00000, 0xffe00000, G_I_r }, + { "mb2", 0xb9000000, 0xffe00000, G_r_r }, + { "mb2", 0xb9200000, 0xffe00000, G_T_r }, + { "mb2", 0xb9400000, 0xffe00000, G_Q_r }, + { "mb2", 0xb9600000, 0xffe00000, G_I_r }, + { "mb3", 0xb9800000, 0xffe00000, G_r_r }, + { "mb3", 0xb9a00000, 0xffe00000, G_T_r }, + { "mb3", 0xb9c00000, 0xffe00000, G_Q_r }, + { "mb3", 0xb9e00000, 0xffe00000, G_I_r }, + { "mh0", 0xbc000000, 0xffe00000, G_r_r }, + { "mh0", 0xbc200000, 0xffe00000, G_T_r }, + { "mh0", 0xbc400000, 0xffe00000, G_Q_r }, + { "mh0", 0xbc600000, 0xffe00000, G_I_r }, + { "mh1", 0xbc800000, 0xffe00000, G_r_r }, + { "mh1", 0xbca00000, 0xffe00000, G_T_r }, + { "mh1", 0xbcc00000, 0xffe00000, G_Q_r }, + { "mh1", 0xbce00000, 0xffe00000, G_I_r }, + { "mh2", 0xbd000000, 0xffe00000, G_r_r }, + { "mh2", 0xbd200000, 0xffe00000, G_T_r }, + { "mh2", 0xbd400000, 0xffe00000, G_Q_r }, + { "mh2", 0xbd600000, 0xffe00000, G_I_r }, + { "mh3", 0xbd800000, 0xffe00000, G_r_r }, + { "mh3", 0xbda00000, 0xffe00000, G_T_r }, + { "mh3", 0xbdc00000, 0xffe00000, G_Q_r }, + { "mh3", 0xbde00000, 0xffe00000, G_I_r }, + { "mpyshi", 0x1d800000, 0xffe00000, G_r_r }, + { "mpyshi", 0x1da00000, 0xffe00000, G_T_r }, + { "mpyshi", 0x1dc00000, 0xffe00000, G_Q_r }, + { "mpyshi", 0x1de00000, 0xffe00000, G_I_r }, + { "mpyshi", 0x28800000, 0xffe00000, T_rrr }, + { "mpyshi", 0x28a00000, 0xffe00000, T_Srr }, + { "mpyshi", 0x28c00000, 0xffe00000, T_rSr }, + { "mpyshi", 0x28e00000, 0xffe00000, T_SSr }, + { "mpyshi", 0x38800000, 0xffe00000, T_Jrr }, /* C4x */ + { "mpyshi", 0x38800000, 0xffe00000, T_rJr }, /* C4x */ + { "mpyshi", 0x38a00000, 0xffe00000, T_rRr }, /* C4x */ + { "mpyshi", 0x38a00000, 0xffe00000, T_Rrr }, /* C4x */ + { "mpyshi", 0x38c00000, 0xffe00000, T_JRr }, /* C4x */ + { "mpyshi", 0x38c00000, 0xffe00000, T_RJr }, /* C4x */ + { "mpyshi", 0x38e00000, 0xffe00000, T_RRr }, /* C4x */ + { "mpyshi3", 0x28800000, 0xffe00000, T_rrr }, + { "mpyshi3", 0x28a00000, 0xffe00000, T_Srr }, + { "mpyshi3", 0x28c00000, 0xffe00000, T_rSr }, + { "mpyshi3", 0x28e00000, 0xffe00000, T_SSr }, + { "mpyshi3", 0x38800000, 0xffe00000, T_Jrr }, /* C4x */ + { "mpyshi3", 0x38800000, 0xffe00000, T_rJr }, /* C4x */ + { "mpyshi3", 0x38a00000, 0xffe00000, T_rRr }, /* C4x */ + { "mpyshi3", 0x38a00000, 0xffe00000, T_Rrr }, /* C4x */ + { "mpyshi3", 0x38c00000, 0xffe00000, T_JRr }, /* C4x */ + { "mpyshi3", 0x38c00000, 0xffe00000, T_RJr }, /* C4x */ + { "mpyshi3", 0x38e00000, 0xffe00000, T_RRr }, /* C4x */ + { "mpyuhi", 0x1e000000, 0xffe00000, G_r_r }, + { "mpyuhi", 0x1e200000, 0xffe00000, G_T_r }, + { "mpyuhi", 0x1e400000, 0xffe00000, G_Q_r }, + { "mpyuhi", 0x1e600000, 0xffe00000, G_I_r }, + { "mpyuhi", 0x29000000, 0xffe00000, T_rrr }, + { "mpyuhi", 0x29200000, 0xffe00000, T_Srr }, + { "mpyuhi", 0x29400000, 0xffe00000, T_rSr }, + { "mpyuhi", 0x29600000, 0xffe00000, T_SSr }, + { "mpyuhi", 0x39000000, 0xffe00000, T_Jrr }, /* C4x */ + { "mpyuhi", 0x39000000, 0xffe00000, T_rJr }, /* C4x */ + { "mpyuhi", 0x39200000, 0xffe00000, T_rRr }, /* C4x */ + { "mpyuhi", 0x39200000, 0xffe00000, T_Rrr }, /* C4x */ + { "mpyuhi", 0x39400000, 0xffe00000, T_JRr }, /* C4x */ + { "mpyuhi", 0x39400000, 0xffe00000, T_RJr }, /* C4x */ + { "mpyuhi", 0x39600000, 0xffe00000, T_RRr }, /* C4x */ + { "mpyuhi3", 0x29000000, 0xffe00000, T_rrr }, + { "mpyuhi3", 0x29200000, 0xffe00000, T_Srr }, + { "mpyuhi3", 0x29400000, 0xffe00000, T_rSr }, + { "mpyuhi3", 0x29600000, 0xffe00000, T_SSr }, + { "mpyuhi3", 0x39000000, 0xffe00000, T_Jrr }, /* C4x */ + { "mpyuhi3", 0x39000000, 0xffe00000, T_rJr }, /* C4x */ + { "mpyuhi3", 0x39200000, 0xffe00000, T_rRr }, /* C4x */ + { "mpyuhi3", 0x39200000, 0xffe00000, T_Rrr }, /* C4x */ + { "mpyuhi3", 0x39400000, 0xffe00000, T_JRr }, /* C4x */ + { "mpyuhi3", 0x39400000, 0xffe00000, T_RJr }, /* C4x */ + { "mpyuhi3", 0x39600000, 0xffe00000, T_RRr }, /* C4x */ + { "rcpf", 0x1d000000, 0xffe00000, G_r_r }, + { "rcpf", 0x1d200000, 0xffe00000, G_T_r }, + { "rcpf", 0x1d400000, 0xffe00000, G_Q_r }, + { "rcpf", 0x1d600000, 0xffe00000, G_F_r }, + { "retiBd", 0x78200000, 0xffe00000, "" }, + { "retid", 0x78200000, 0xffe00000, "" }, /* synonym for retiud */ + { "rptbd", 0x79800000, 0xff000000, "Q" }, + { "rptbd", 0x65000000, 0xff000000, "B" }, + { "rsqrf", 0x1c800000, 0xffe00000, G_r_r }, + { "rsqrf", 0x1ca00000, 0xffe00000, G_T_r }, + { "rsqrf", 0x1cc00000, 0xffe00000, G_Q_r }, + { "rsqrf", 0x1ce00000, 0xffe00000, G_F_r }, + { "stik", 0x15000000, 0xffe00000, "T,@" }, + { "stik", 0x15600000, 0xffe00000, "T,*" }, + { "toieee", 0x1b800000, 0xffe00000, G_r_r }, + { "toieee", 0x1ba00000, 0xffe00000, G_T_r }, + { "toieee", 0x1bc00000, 0xffe00000, G_Q_r }, + { "toieee", 0x1be00000, 0xffe00000, G_F_r }, + { "idle2", 0x06000001, 0xffffffff, "" }, + + /* Dummy entry, not included in num_insts. This + lets code examine entry i+1 without checking + if we've run off the end of the table. */ + { "", 0x0, 0x00, "" } +}; + +const unsigned int c4x_num_insts = (((sizeof c4x_insts) / (sizeof c4x_insts[0])) - 1); + + +struct c4x_cond +{ + char * name; + unsigned long cond; +}; + +typedef struct c4x_cond c4x_cond_t; + +/* Define conditional branch/load suffixes. Put desired form for + disassembler last. */ +static const c4x_cond_t c4x_conds[] = +{ + { "u", 0x00 }, + { "c", 0x01 }, { "lo", 0x01 }, + { "ls", 0x02 }, + { "hi", 0x03 }, + { "nc", 0x04 }, { "hs", 0x04 }, + { "z", 0x05 }, { "eq", 0x05 }, + { "nz", 0x06 }, { "ne", 0x06 }, + { "n", 0x07 }, { "l", 0x07 }, { "lt", 0x07 }, + { "le", 0x08 }, + { "p", 0x09 }, { "gt", 0x09 }, + { "nn", 0x0a }, { "ge", 0x0a }, + { "nv", 0x0c }, + { "v", 0x0d }, + { "nuf", 0x0e }, + { "uf", 0x0f }, + { "nlv", 0x10 }, + { "lv", 0x11 }, + { "nluf", 0x12 }, + { "luf", 0x13 }, + { "zuf", 0x14 }, + /* Dummy entry, not included in num_conds. This + lets code examine entry i+1 without checking + if we've run off the end of the table. */ + { "", 0x0} +}; + +const unsigned int num_conds = (((sizeof c4x_conds) / (sizeof c4x_conds[0])) - 1); + +struct c4x_indirect +{ + char * name; + unsigned long modn; +}; + +typedef struct c4x_indirect c4x_indirect_t; + +/* Define indirect addressing modes where: + d displacement (signed) + y ir0 + z ir1 */ + +static const c4x_indirect_t c4x_indirects[] = +{ + { "*+a(d)", 0x00 }, + { "*-a(d)", 0x01 }, + { "*++a(d)", 0x02 }, + { "*--a(d)", 0x03 }, + { "*a++(d)", 0x04 }, + { "*a--(d)", 0x05 }, + { "*a++(d)%", 0x06 }, + { "*a--(d)%", 0x07 }, + { "*+a(y)", 0x08 }, + { "*-a(y)", 0x09 }, + { "*++a(y)", 0x0a }, + { "*--a(y)", 0x0b }, + { "*a++(y)", 0x0c }, + { "*a--(y)", 0x0d }, + { "*a++(y)%", 0x0e }, + { "*a--(y)%", 0x0f }, + { "*+a(z)", 0x10 }, + { "*-a(z)", 0x11 }, + { "*++a(z)", 0x12 }, + { "*--a(z)", 0x13 }, + { "*a++(z)", 0x14 }, + { "*a--(z)", 0x15 }, + { "*a++(z)%", 0x16 }, + { "*a--(z)%", 0x17 }, + { "*a", 0x18 }, + { "*a++(y)b", 0x19 }, + /* Dummy entry, not included in num_indirects. This + lets code examine entry i+1 without checking + if we've run off the end of the table. */ + { "", 0x0} +}; + +#define C3X_MODN_MAX 0x19 + +const unsigned int num_indirects = (((sizeof c4x_indirects) / (sizeof c4x_indirects[0])) - 1); diff -uprN binutils-2.13.90.0.4/ld/ChangeLog binutils-2.13.90.0.10/ld/ChangeLog --- binutils-2.13.90.0.4/ld/ChangeLog Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/ld/ChangeLog Thu Oct 10 09:16:57 2002 @@ -1,3 +1,217 @@ +2002-10-10 Jakub Jelinek + + * ldfile.c (ldfile_try_open_bfd): When searching skip linker scripts if + they have OUTPUT_FORMAT not matching actual output format. + * ldlang.c (lang_get_output_target): New function. + (open_output): Use it. + * ldlang.h (lang_get_output_target): New prototype. + +2002-10-10 Alan Modra + + * emultempl/elf32.em (output_rel_find): Prefer .rel script sections + when orphan is .rel, .rela when orphan is .rela. + (gld${EMULATION_NAME}_place_orphan): Handle combreloc .rel* case + first. Remove outsecname var. + +2002-10-09 Richard Shann + Stephen Clarke + + * Makefile.am: Add eshelf32_linux.o and + eshlelf32_linux.o, new emulations for sh64 Linux. + * Makefile.in: Regenerate. + * configure.tgt: Add sh64eb-*-linux* and sh64-*-linux* emulations. + * emulparams/shelf32_linux.sh: New file. + * emulparams/shlelf32_linux.sh: New file. + +2002-10-08 H.J. Lu + + * ldlang.c (lang_file_exist): Removed. + (new_afile): Revert the last change. + * ldlang.h (lang_file_exist): Removed. + * lexsup.c (parse_args): Revert the last change. + +2002-10-07 Ralf Habacker + + * pe-dll.cc (autofilter_symbolprefixlist): Don't re-export + auto-import symbols. + (make_one): Create _nm_ for data only. + +2002-10-05 Elias Athanasopoulos + + * ldlang.c (lang_file_exist): New function. + (new_afile): Abort if the filename to be added matches the linker + output filename. + * ldlang.h: Add prototype for lang_file_exist. + * lexsup.c (parse_args): Abort if the output filename matches + one of the input filenames. + +2002-10-02 Alan Modra + + * emulparams/elf64ppc.sh (MAXPAGESIZE): Set to 0x10000. + +2002-09-30 Alan Modra + + * scripttempl/elfd30v.sc: Order reloc sections placing .plt last. + * scripttempl/elfm68hc11.sc: Likewise. + * scripttempl/elfm68hc12.sc: Likewise. + + * emultempl/elf32.em (output_rel_find): Always place orphan loadable + reloc sections just before .rel.plt/.rela.plt. + (gld${EMULATION_NAME}_place_orphan <.rel>): Remove combreloc code. + Only put loadable reloc sections in hold_rel. + +2002-09-29 H.J. Lu + + * emulparams/elf32ppc.sh (OTHER_GOT_RELOC_SECTIONS): New. + +2002-09-25 Daniel Jacobowitz + + From "Anita Kulkarni" + * scripttempl/sh.sc: Handle .eh_frame* and .gcc_exc* + sections. + +2002-09-25 Alan Modra + + * genscripts.sh (SEGMENT_SIZE): Use MAXPAGESIZE before + TARGET_PAGE_SIZE. + * scripttempl/elf.sc (DATA_SEGMENT_ALIGN): Incorporate + SEGMENT_SIZE alignment. + * emulparams/elf64ppc.sh (DATA_ADDR): Delete. + (SEGMENT_SIZE): Define. + + * ldexp.c (fold_unary): New. Split out from exp_fold_tree. + (fold_binary): Correct abs - non-abs case. + (fold_trinary): New. Split out from exp_fold_tree. + +2002-09-24 Alan Modra + + * emulparams/elf64ppc.sh (DATA_ADDR): Define. + * emulparams/elf64_aix.sh (DATA_ADDR): Don't use a fixed address + for start of .data, instead align up to 256M boundary. + * scripttempl/aix.sc: Likewise. + +2002-09-22 Mark Elbrecht + + * scripttempl/i386go32.sc: Handle bss unique sections. + +2002-09-21 Alan Modra + + * ldmisc.c (vfinfo <%C,%D,%G>): Always output bfd, section and offset. + +2002-09-17 Stan Cox + + * emulparams/elf32bmipn32-defs.sh: New file. + * emulparams/elf32bmipn32.sh: Use elf32bmipn32-defs.sh. + * emulparams/elf32btsmipn32.sh: Likewise. + * emulparams/elf64bmip.sh: Likewise. + * emulparams/elf64btsmip.sh: Likewise. + +2002-09-16 Bruno Haible + + * emulparams/elf_i386_fbsd.sh: Set OUTPUT_FORMAT to + elf32-i386-freebsd. + * emulparams/elf64alpha_fbsd.sh: Set OUTPUT_FORMAT to + elf64-alpha-freebsd. + +2002-09-11 Nick Clifton + + * NEWS: New TI port supports both C4x and C3x series of DSPs. + + * po/tr.po: Updated Turkish translation. + +2002-09-06 Jeffrey A Law (law@redhat.com) + + * configure.tgt (h8300-*-hms*, h8500-*-hms*): Restore. + +2002-09-02 Nick Clifton + + * scripttempl/v850.sc: Add EXTERN references to __ctbpm __gp and + __ep. + * emulparams/v850.sh (TEMPLATE_NAME): Define. + +2002-08-30 Nick Clifton + + * scripttempl/elfd10v.sc (MEMORY): Remove UNIFIED, it is not + used. Change INSN to start at 0x01000000 and extend for + 256K (ignoring holes). Start the STACK on a word aligned + boundary. + (.rodata): Start it at the READONLY_START_ADDR. + +2002-08-30 Alan Modra + + * emulparams/elf32ppc.sh (ARCH): Set to "powerpc:common". + +2002-08-28 Svein E. Seldal + + * Makefile.am: Add etic4xcoff.o in ALL_EMULATIONS list and + added makefile targets for this file. + * Makefile.in: Regenerate. + * configure.tgt: Added tic4x-coff and c4x-coff emulations. + * NEWS: Mention new port. + +2002-08-28 Michael Hayes + + * emulparams/tic3xcoff.sh: New file. + * emulparams/tic4xcoff.sh: New file. + * scripttempl/tic3xcoff.sc: New file. + * scripttempl/tic4xcoff.sc: New file. + +2002-08-28 Alan Modra + + * emultempl/aix.em (gld${EMULATION_NAME}_parse_args): Replace strtoll, + strtoul and strtoull with bfd_scan_vma. + (gld${EMULATION_NAME}_read_file): Likewise. + +2002-08-28 Alan Modra + + * configure.tgt: Remove h8[35]00-*-hms*. Add h8500-*-rtems*. + +2002-08-27 Egor Duda + + * scripttempl/pe.sc: Handle .rdata_runtime_pseudo_reloc sections. + Add symbols for application to access them. + +2002-08-27 Nick Clifton + + * emultempl/armelf.em: Revert this patch, it is not needed. + + 2002-08-22 Adam Nemet + +2002-08-20 Dan Kegel + + * configure.in: added --with-lib-path argument to ld's configure + to set LIB_PATH. + * ld/NEWS: Document new switch. + * ld/README: Mention new switch. + * configure: Regenerate. + * Makefile.in: Regenerate. + + Based on this patch: + 2001-04-25 Christopher Faylor + + * Makefile.in (LIB_PATH): Make configurable. + (GENSCRIPTS): Set LIB_PATH in environment. + * configure.in: Substitute LIB_PATH. + +2002-08-22 Adam Nemet + + * emultempl/armelf.em: Include elf-bfd.h and elf/arm.h. + (arm_elf_finish): Set the last bit of DT_INIT and DT_FINI + depending on the type of the function. + (arm_elf_convert_thumb_symbol_to_address): New function. + +2002-08-22 Graeme Peterson + + * Makefile.am: Add esh{l}elf_nto.o files. + * Makefile.in: Regenerate. + * configure.tgt: Add support for sh-**-nto* targets. + * emulparams/shelf_nto.sh: New file. + * emulparams/shlelf_nto.sh: New file. + +2002-08-21 John David Anglin + + * ldlang.c (offsetof): Define if not defined. + 2002-08-14 H.J. Lu * configure.tgt: Always enable 64bit emulations for 32bit diff -uprN binutils-2.13.90.0.4/ld/Makefile.am binutils-2.13.90.0.10/ld/Makefile.am --- binutils-2.13.90.0.4/ld/Makefile.am Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/ld/Makefile.am Wed Oct 9 21:09:41 2002 @@ -30,8 +30,9 @@ EMUL_EXTRA_OFILES = @EMUL_EXTRA_OFILES@ # (The default is usually /lib:/usr/lib:/usr/local/lib, unless building # a cross-linker, in which case the default is empty. See genscripts.sh.) # Otherwise, they are replaced with the ones given in LIB_PATH, -# which may have the form: LIB_PATH=/lib:/usr/local/lib -LIB_PATH = +# which may have the form: LIB_PATH=/lib:/usr/local/lib. This can be set +# when the linker is configured via the --with-lib-path configure switch. +LIB_PATH = @LIB_PATH@ BASEDIR = $(srcdir)/.. BFDDIR = $(BASEDIR)/bfd @@ -260,6 +261,8 @@ ALL_EMULATIONS = \ esh.o \ eshelf32.o \ eshlelf32.o \ + eshelf32_linux.o \ + eshlelf32_linux.o \ eshelf32_nbsd.o \ eshlelf32_nbsd.o \ eshelf.o \ @@ -267,6 +270,8 @@ ALL_EMULATIONS = \ eshlelf_linux.o \ eshelf_nbsd.o \ eshlelf_nbsd.o \ + eshelf_nto.o \ + eshlelf_nto.o \ eshl.o \ eshlelf.o \ eshpe.o \ @@ -279,6 +284,7 @@ ALL_EMULATIONS = \ esun4.o \ etic30aout.o \ etic30coff.o \ + etic4xcoff.o \ etic54xcoff.o \ etic80coff.o \ evanilla.o \ @@ -369,7 +375,7 @@ stringify.sed: ${srcdir}/emultempl/$(STR # These all start with e so 'make clean' can find them. -GENSCRIPTS = $(SHELL) $(srcdir)/genscripts.sh ${srcdir} ${libdir} "${exec_prefix}" @host@ @target@ @target_alias@ "@EMULATION_LIBPATH@" "@NATIVE_LIB_DIRS@" +GENSCRIPTS = LIB_PATH='${LIB_PATH}' $(SHELL) $(srcdir)/genscripts.sh ${srcdir} ${libdir} "${exec_prefix}" @host@ @target@ @target_alias@ "@EMULATION_LIBPATH@" "@NATIVE_LIB_DIRS@" GEN_DEPENDS = $(srcdir)/genscripts.sh stringify.sed @TDIRS@ @@ -982,6 +988,12 @@ eshelf32.c: $(srcdir)/emulparams/shelf32 $(srcdir)/emultempl/sh64elf.em $(INCDIR)/elf/sh.h $(BFDDIR)/elf-bfd.h \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shelf32 "$(tdir_shelf32)" +eshelf32_linux.c: $(srcdir)/emulparams/shelf32_linux.sh \ + $(srcdir)/emulparams/shelf32.sh \ + $(BFDDIR)/libbfd.h $(INCDIR)/libiberty.h \ + $(srcdir)/emultempl/sh64elf.em $(INCDIR)/elf/sh.h $(BFDDIR)/elf-bfd.h \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} shelf32_linux "$(tdir_shelf32_linux)" eshelf32_nbsd.c: $(srcdir)/emulparams/shelf32_nbsd.sh \ $(srcdir)/emulparams/shelf32.sh \ $(BFDDIR)/libbfd.h $(INCDIR)/libiberty.h \ @@ -1006,11 +1018,17 @@ eshelf_nbsd.c: $(srcdir)/emulparams/shel $(srcdir)/emulparams/shelf.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shelf_nbsd "$(tdir_shelf_nbsd)" +eshelf_nto.c: $(srcdir)/emulparams/shelf_nto.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} shelf_nto "$(tdir_shelf_nto)" eshlelf_nbsd.c: $(srcdir)/emulparams/shlelf_nbsd.sh \ $(srcdir)/emulparams/shelf_nbsd.sh \ $(srcdir)/emulparams/shelf.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shlelf_nbsd "$(tdir_shlelf_nbsd)" +eshlelf_nto.c: $(srcdir)/emulparams/shlelf_nto.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} shlelf_nto "$(tdir_shlelf_nto)" eshlelf.c: $(srcdir)/emulparams/shlelf.sh \ $(srcdir)/emulparams/shelf.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} @@ -1020,6 +1038,12 @@ eshlelf32.c: $(srcdir)/emulparams/shlelf $(srcdir)/emultempl/sh64elf.em $(INCDIR)/elf/sh.h $(BFDDIR)/elf-bfd.h \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shlelf32 "$(tdir_shlelf32)" +eshlelf32_linux.c: $(srcdir)/emulparams/shlelf32_linux.sh \ + $(srcdir)/emulparams/shelf32_linux.sh $(srcdir)/emulparams/shelf32.sh \ + $(BFDDIR)/libbfd.h $(INCDIR)/libiberty.h \ + $(srcdir)/emultempl/sh64elf.em $(INCDIR)/elf/sh.h $(BFDDIR)/elf-bfd.h \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} shlelf32_linux "$(tdir_shlelf32_linux)" eshlelf32_nbsd.c: $(srcdir)/emulparams/shlelf32_nbsd.sh \ $(srcdir)/emulparams/shelf32_nbsd.sh $(srcdir)/emulparams/shelf32.sh \ $(BFDDIR)/libbfd.h $(INCDIR)/libiberty.h \ @@ -1069,6 +1093,9 @@ etic30aout.c: $(srcdir)/emulparams/tic30 etic30coff.c: $(srcdir)/emulparams/tic30coff.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/tic30coff.sc ${GEN_DEPENDS} ${GENSCRIPTS} tic30coff "$(tdir_tic30coff)" +etic4xcoff.c: $(srcdir)/emulparams/tic4xcoff.sh \ + $(srcdir)/emultempl/ticoff.em $(srcdir)/scripttempl/tic4xcoff.sc ${GEN_DEPENDS} + ${GENSCRIPTS} tic4xcoff "$(tdir_tic4xcoff)" etic54xcoff.c: $(srcdir)/emulparams/tic54xcoff.sh \ $(srcdir)/emultempl/ticoff.em $(srcdir)/scripttempl/tic54xcoff.sc ${GEN_DEPENDS} ${GENSCRIPTS} tic54xcoff "$(tdir_tic54xcoff)" diff -uprN binutils-2.13.90.0.4/ld/Makefile.in binutils-2.13.90.0.10/ld/Makefile.in --- binutils-2.13.90.0.4/ld/Makefile.in Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/ld/Makefile.in Wed Oct 9 21:09:41 2002 @@ -136,8 +136,9 @@ EMUL_EXTRA_OFILES = @EMUL_EXTRA_OFILES@ # (The default is usually /lib:/usr/lib:/usr/local/lib, unless building # a cross-linker, in which case the default is empty. See genscripts.sh.) # Otherwise, they are replaced with the ones given in LIB_PATH, -# which may have the form: LIB_PATH=/lib:/usr/local/lib -LIB_PATH = +# which may have the form: LIB_PATH=/lib:/usr/local/lib. This can be set +# when the linker is configured via the --with-lib-path configure switch. +LIB_PATH = @LIB_PATH@ BASEDIR = $(srcdir)/.. BFDDIR = $(BASEDIR)/bfd @@ -371,6 +372,8 @@ ALL_EMULATIONS = \ esh.o \ eshelf32.o \ eshlelf32.o \ + eshelf32_linux.o \ + eshlelf32_linux.o \ eshelf32_nbsd.o \ eshlelf32_nbsd.o \ eshelf.o \ @@ -378,6 +381,8 @@ ALL_EMULATIONS = \ eshlelf_linux.o \ eshelf_nbsd.o \ eshlelf_nbsd.o \ + eshelf_nto.o \ + eshlelf_nto.o \ eshl.o \ eshlelf.o \ eshpe.o \ @@ -390,6 +395,7 @@ ALL_EMULATIONS = \ esun4.o \ etic30aout.o \ etic30coff.o \ + etic4xcoff.o \ etic54xcoff.o \ etic80coff.o \ evanilla.o \ @@ -461,7 +467,7 @@ POTFILES = $(CFILES) $(HFILES) $(EMULATI # These all start with e so 'make clean' can find them. -GENSCRIPTS = $(SHELL) $(srcdir)/genscripts.sh ${srcdir} ${libdir} "${exec_prefix}" @host@ @target@ @target_alias@ "@EMULATION_LIBPATH@" "@NATIVE_LIB_DIRS@" +GENSCRIPTS = LIB_PATH='${LIB_PATH}' $(SHELL) $(srcdir)/genscripts.sh ${srcdir} ${libdir} "${exec_prefix}" @host@ @target@ @target_alias@ "@EMULATION_LIBPATH@" "@NATIVE_LIB_DIRS@" GEN_DEPENDS = $(srcdir)/genscripts.sh stringify.sed # We need this for automake to use YLWRAP. @@ -1705,6 +1711,12 @@ eshelf32.c: $(srcdir)/emulparams/shelf32 $(srcdir)/emultempl/sh64elf.em $(INCDIR)/elf/sh.h $(BFDDIR)/elf-bfd.h \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shelf32 "$(tdir_shelf32)" +eshelf32_linux.c: $(srcdir)/emulparams/shelf32_linux.sh \ + $(srcdir)/emulparams/shelf32.sh \ + $(BFDDIR)/libbfd.h $(INCDIR)/libiberty.h \ + $(srcdir)/emultempl/sh64elf.em $(INCDIR)/elf/sh.h $(BFDDIR)/elf-bfd.h \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} shelf32_linux "$(tdir_shelf32_linux)" eshelf32_nbsd.c: $(srcdir)/emulparams/shelf32_nbsd.sh \ $(srcdir)/emulparams/shelf32.sh \ $(BFDDIR)/libbfd.h $(INCDIR)/libiberty.h \ @@ -1729,11 +1741,17 @@ eshelf_nbsd.c: $(srcdir)/emulparams/shel $(srcdir)/emulparams/shelf.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shelf_nbsd "$(tdir_shelf_nbsd)" +eshelf_nto.c: $(srcdir)/emulparams/shelf_nto.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} shelf_nto "$(tdir_shelf_nto)" eshlelf_nbsd.c: $(srcdir)/emulparams/shlelf_nbsd.sh \ $(srcdir)/emulparams/shelf_nbsd.sh \ $(srcdir)/emulparams/shelf.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shlelf_nbsd "$(tdir_shlelf_nbsd)" +eshlelf_nto.c: $(srcdir)/emulparams/shlelf_nto.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} shlelf_nto "$(tdir_shlelf_nto)" eshlelf.c: $(srcdir)/emulparams/shlelf.sh \ $(srcdir)/emulparams/shelf.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} @@ -1743,6 +1761,12 @@ eshlelf32.c: $(srcdir)/emulparams/shlelf $(srcdir)/emultempl/sh64elf.em $(INCDIR)/elf/sh.h $(BFDDIR)/elf-bfd.h \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shlelf32 "$(tdir_shlelf32)" +eshlelf32_linux.c: $(srcdir)/emulparams/shlelf32_linux.sh \ + $(srcdir)/emulparams/shelf32_linux.sh $(srcdir)/emulparams/shelf32.sh \ + $(BFDDIR)/libbfd.h $(INCDIR)/libiberty.h \ + $(srcdir)/emultempl/sh64elf.em $(INCDIR)/elf/sh.h $(BFDDIR)/elf-bfd.h \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} shlelf32_linux "$(tdir_shlelf32_linux)" eshlelf32_nbsd.c: $(srcdir)/emulparams/shlelf32_nbsd.sh \ $(srcdir)/emulparams/shelf32_nbsd.sh $(srcdir)/emulparams/shelf32.sh \ $(BFDDIR)/libbfd.h $(INCDIR)/libiberty.h \ @@ -1792,6 +1816,9 @@ etic30aout.c: $(srcdir)/emulparams/tic30 etic30coff.c: $(srcdir)/emulparams/tic30coff.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/tic30coff.sc ${GEN_DEPENDS} ${GENSCRIPTS} tic30coff "$(tdir_tic30coff)" +etic4xcoff.c: $(srcdir)/emulparams/tic4xcoff.sh \ + $(srcdir)/emultempl/ticoff.em $(srcdir)/scripttempl/tic4xcoff.sc ${GEN_DEPENDS} + ${GENSCRIPTS} tic4xcoff "$(tdir_tic4xcoff)" etic54xcoff.c: $(srcdir)/emulparams/tic54xcoff.sh \ $(srcdir)/emultempl/ticoff.em $(srcdir)/scripttempl/tic54xcoff.sc ${GEN_DEPENDS} ${GENSCRIPTS} tic54xcoff "$(tdir_tic54xcoff)" diff -uprN binutils-2.13.90.0.4/ld/NEWS binutils-2.13.90.0.10/ld/NEWS --- binutils-2.13.90.0.4/ld/NEWS Thu Aug 1 17:49:32 2002 +++ binutils-2.13.90.0.10/ld/NEWS Fri Sep 27 08:33:09 2002 @@ -1,5 +1,11 @@ -*- text -*- +* Support for Texas Instruments TMS320C4x and TMS320C3x series of + DSP's contributed by Michael Hayes and Svein E. Seldal. + +* Added --with-lib-path configure switch to specify default value for + LIB_PATH. + * ARM port to QNX operating system added by Graeme Peterson. * IP2K support added by Denis Chertykov. diff -uprN binutils-2.13.90.0.4/ld/README binutils-2.13.90.0.10/ld/README --- binutils-2.13.90.0.4/ld/README Thu Jul 26 18:02:55 2001 +++ binutils-2.13.90.0.10/ld/README Fri Sep 27 08:33:09 2002 @@ -28,7 +28,8 @@ See ../binutils/README. If you want to make a cross-linker, you may want to specify a different search path of -lfoo libraries than the default. -You can do this by setting the LIB_PATH variable in ./Makefile. +You can do this by setting the LIB_PATH variable in ./Makefile +or using the --with-lib-path configure switch. To build just the linker, make the target all-ld from the top level directory (one directory above this one). diff -uprN binutils-2.13.90.0.4/ld/configure binutils-2.13.90.0.10/ld/configure --- binutils-2.13.90.0.4/ld/configure Fri Jun 7 19:22:17 2002 +++ binutils-2.13.90.0.10/ld/configure Fri Sep 27 08:33:09 2002 @@ -24,11 +24,13 @@ ac_help="$ac_help ac_help="$ac_help --with-pic try to use only PIC/non-PIC objects [default=use both]" ac_help="$ac_help + --with-lib-path=dir1:dir2... set default LIB_PATH" +ac_help="$ac_help --enable-targets alternative target configurations" ac_help="$ac_help --enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes)" ac_help="$ac_help - --enable-build-warnings Enable build-time compiler warnings if gcc is used" + --enable-build-warnings enable build-time compiler warnings if gcc is used" ac_help="$ac_help --disable-nls do not use Native Language Support" ac_help="$ac_help @@ -546,12 +548,12 @@ else fi echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 -echo "configure:550: checking for Cygwin environment" >&5 +echo "configure:552: checking for Cygwin environment" >&5 if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:568: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_cygwin=yes else @@ -579,19 +581,19 @@ echo "$ac_t""$ac_cv_cygwin" 1>&6 CYGWIN= test "$ac_cv_cygwin" = yes && CYGWIN=yes echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 -echo "configure:583: checking for mingw32 environment" >&5 +echo "configure:585: checking for mingw32 environment" >&5 if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:597: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_mingw32=yes else @@ -656,7 +658,7 @@ else { echo "configure: error: can not r fi echo $ac_n "checking host system type""... $ac_c" 1>&6 -echo "configure:660: checking host system type" >&5 +echo "configure:662: checking host system type" >&5 host_alias=$host case "$host_alias" in @@ -677,7 +679,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)- echo "$ac_t""$host" 1>&6 echo $ac_n "checking target system type""... $ac_c" 1>&6 -echo "configure:681: checking target system type" >&5 +echo "configure:683: checking target system type" >&5 target_alias=$target case "$target_alias" in @@ -695,7 +697,7 @@ target_os=`echo $target | sed 's/^\([^-] echo "$ac_t""$target" 1>&6 echo $ac_n "checking build system type""... $ac_c" 1>&6 -echo "configure:699: checking build system type" >&5 +echo "configure:701: checking build system type" >&5 build_alias=$build case "$build_alias" in @@ -720,7 +722,7 @@ test "$host_alias" != "$target_alias" && # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:724: checking for $ac_word" >&5 +echo "configure:726: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -750,7 +752,7 @@ if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:754: checking for $ac_word" >&5 +echo "configure:756: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -801,7 +803,7 @@ fi # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:805: checking for $ac_word" >&5 +echo "configure:807: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -833,7 +835,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:837: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:839: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. @@ -844,12 +846,12 @@ cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext << EOF -#line 848 "configure" +#line 850 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:853: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:855: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -875,12 +877,12 @@ if test $ac_cv_prog_cc_works = no; then { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:879: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:881: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:884: checking whether we are using GNU C" >&5 +echo "configure:886: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -889,7 +891,7 @@ else yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:893: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:895: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -908,7 +910,7 @@ ac_test_CFLAGS="${CFLAGS+set}" ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:912: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:914: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -940,7 +942,7 @@ else fi echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6 -echo "configure:944: checking for POSIXized ISC" >&5 +echo "configure:946: checking for POSIXized ISC" >&5 if test -d /etc/conf/kconfig.d && grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1 then @@ -974,7 +976,7 @@ BFD_VERSION=`sed -n -e 's/^.._INIT_AUTOM # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:978: checking for a BSD compatible install" >&5 +echo "configure:980: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1027,7 +1029,7 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCR test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 -echo "configure:1031: checking whether build environment is sane" >&5 +echo "configure:1033: checking whether build environment is sane" >&5 # Just in case sleep 1 echo timestamp > conftestfile @@ -1084,7 +1086,7 @@ test "$program_suffix" != NONE && test "$program_transform_name" = "" && program_transform_name="s,x,x," echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 -echo "configure:1088: checking whether ${MAKE-make} sets \${MAKE}" >&5 +echo "configure:1090: checking whether ${MAKE-make} sets \${MAKE}" >&5 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1130,7 +1132,7 @@ EOF missing_dir=`cd $ac_aux_dir && pwd` echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 -echo "configure:1134: checking for working aclocal" >&5 +echo "configure:1136: checking for working aclocal" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. @@ -1143,7 +1145,7 @@ else fi echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 -echo "configure:1147: checking for working autoconf" >&5 +echo "configure:1149: checking for working autoconf" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. @@ -1156,7 +1158,7 @@ else fi echo $ac_n "checking for working automake""... $ac_c" 1>&6 -echo "configure:1160: checking for working automake" >&5 +echo "configure:1162: checking for working automake" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. @@ -1169,7 +1171,7 @@ else fi echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 -echo "configure:1173: checking for working autoheader" >&5 +echo "configure:1175: checking for working autoheader" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. @@ -1182,7 +1184,7 @@ else fi echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 -echo "configure:1186: checking for working makeinfo" >&5 +echo "configure:1188: checking for working makeinfo" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. @@ -1277,7 +1279,7 @@ ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6 -echo "configure:1281: checking for ld used by GCC" >&5 +echo "configure:1283: checking for ld used by GCC" >&5 case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw @@ -1307,10 +1309,10 @@ echo "configure:1281: checking for ld us esac elif test "$with_gnu_ld" = yes; then echo $ac_n "checking for GNU ld""... $ac_c" 1>&6 -echo "configure:1311: checking for GNU ld" >&5 +echo "configure:1313: checking for GNU ld" >&5 else echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 -echo "configure:1314: checking for non-GNU ld" >&5 +echo "configure:1316: checking for non-GNU ld" >&5 fi if eval "test \"`echo '$''{'lt_cv_path_LD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1345,7 +1347,7 @@ else fi test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; } echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6 -echo "configure:1349: checking if the linker ($LD) is GNU ld" >&5 +echo "configure:1351: checking if the linker ($LD) is GNU ld" >&5 if eval "test \"`echo '$''{'lt_cv_prog_gnu_ld'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1362,7 +1364,7 @@ with_gnu_ld=$lt_cv_prog_gnu_ld echo $ac_n "checking for $LD option to reload object files""... $ac_c" 1>&6 -echo "configure:1366: checking for $LD option to reload object files" >&5 +echo "configure:1368: checking for $LD option to reload object files" >&5 if eval "test \"`echo '$''{'lt_cv_ld_reload_flag'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1374,7 +1376,7 @@ reload_flag=$lt_cv_ld_reload_flag test -n "$reload_flag" && reload_flag=" $reload_flag" echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6 -echo "configure:1378: checking for BSD-compatible nm" >&5 +echo "configure:1380: checking for BSD-compatible nm" >&5 if eval "test \"`echo '$''{'lt_cv_path_NM'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1412,7 +1414,7 @@ NM="$lt_cv_path_NM" echo "$ac_t""$NM" 1>&6 echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 -echo "configure:1416: checking whether ln -s works" >&5 +echo "configure:1418: checking whether ln -s works" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1433,7 +1435,7 @@ else fi echo $ac_n "checking how to recognise dependant libraries""... $ac_c" 1>&6 -echo "configure:1437: checking how to recognise dependant libraries" >&5 +echo "configure:1439: checking how to recognise dependant libraries" >&5 if eval "test \"`echo '$''{'lt_cv_deplibs_check_method'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1600,13 +1602,13 @@ file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method echo $ac_n "checking for object suffix""... $ac_c" 1>&6 -echo "configure:1604: checking for object suffix" >&5 +echo "configure:1606: checking for object suffix" >&5 if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else rm -f conftest* echo 'int i = 1;' > conftest.$ac_ext -if { (eval echo configure:1610: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1612: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then for ac_file in conftest.*; do case $ac_file in *.c) ;; @@ -1626,7 +1628,7 @@ ac_objext=$ac_cv_objext echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 -echo "configure:1630: checking for executable suffix" >&5 +echo "configure:1632: checking for executable suffix" >&5 if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1636,7 +1638,7 @@ else rm -f conftest* echo 'int main () { return 0; }' > conftest.$ac_ext ac_cv_exeext= - if { (eval echo configure:1640: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + if { (eval echo configure:1642: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then for file in conftest.*; do case $file in *.c | *.o | *.obj) ;; @@ -1669,7 +1671,7 @@ case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then echo $ac_n "checking for ${ac_tool_prefix}file""... $ac_c" 1>&6 -echo "configure:1673: checking for ${ac_tool_prefix}file" >&5 +echo "configure:1675: checking for ${ac_tool_prefix}file" >&5 if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1731,7 +1733,7 @@ fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then echo $ac_n "checking for file""... $ac_c" 1>&6 -echo "configure:1735: checking for file" >&5 +echo "configure:1737: checking for file" >&5 if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1802,7 +1804,7 @@ esac # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1806: checking for $ac_word" >&5 +echo "configure:1808: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1834,7 +1836,7 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1838: checking for $ac_word" >&5 +echo "configure:1840: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1869,7 +1871,7 @@ fi # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1873: checking for $ac_word" >&5 +echo "configure:1875: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1901,7 +1903,7 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1905: checking for $ac_word" >&5 +echo "configure:1907: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1968,8 +1970,8 @@ test x"$pic_mode" = xno && libtool_flags case $host in *-*-irix6*) # Find out which ABI we are using. - echo '#line 1972 "configure"' > conftest.$ac_ext - if { (eval echo configure:1973: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + echo '#line 1974 "configure"' > conftest.$ac_ext + if { (eval echo configure:1975: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" @@ -1988,7 +1990,7 @@ case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext - if { (eval echo configure:1992: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + if { (eval echo configure:1994: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then case "`/usr/bin/file conftest.o`" in *ELF-32*) HPUX_IA64_MODE="32" @@ -2006,7 +2008,7 @@ ia64-*-hpux*) SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6 -echo "configure:2010: checking whether the C compiler needs -belf" >&5 +echo "configure:2012: checking whether the C compiler needs -belf" >&5 if eval "test \"`echo '$''{'lt_cv_cc_needs_belf'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2019,14 +2021,14 @@ ac_link='${CC-cc} -o conftest${ac_exeext cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2032: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* lt_cv_cc_needs_belf=yes else @@ -2142,6 +2144,12 @@ exec 5>>./config.log +# Check whether --with-lib-path or --without-lib-path was given. +if test "${with_lib_path+set}" = set; then + withval="$with_lib_path" + LIB_PATH=$withval +fi + # Check whether --enable-targets or --disable-targets was given. if test "${enable_targets+set}" = set; then enableval="$enable_targets" @@ -2203,7 +2211,7 @@ fi # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2207: checking for $ac_word" >&5 +echo "configure:2215: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2233,7 +2241,7 @@ if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2237: checking for $ac_word" >&5 +echo "configure:2245: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2284,7 +2292,7 @@ fi # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2288: checking for $ac_word" >&5 +echo "configure:2296: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2316,7 +2324,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:2320: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:2328: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. @@ -2327,12 +2335,12 @@ cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext << EOF -#line 2331 "configure" +#line 2339 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:2336: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2344: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -2358,12 +2366,12 @@ if test $ac_cv_prog_cc_works = no; then { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:2362: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:2370: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:2367: checking whether we are using GNU C" >&5 +echo "configure:2375: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2372,7 +2380,7 @@ else yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2376: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2384: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -2391,7 +2399,7 @@ ac_test_CFLAGS="${CFLAGS+set}" ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:2395: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:2403: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2434,7 +2442,7 @@ fi # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:2438: checking for a BSD compatible install" >&5 +echo "configure:2446: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2489,7 +2497,7 @@ test -z "$INSTALL_DATA" && INSTALL_DATA= ALL_LINGUAS="fr sv tr es" echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:2493: checking how to run the C preprocessor" >&5 +echo "configure:2501: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -2504,13 +2512,13 @@ else # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2514: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2522: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -2521,13 +2529,13 @@ else rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2531: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2539: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -2538,13 +2546,13 @@ else rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2548: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2556: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -2571,7 +2579,7 @@ echo "$ac_t""$CPP" 1>&6 # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2575: checking for $ac_word" >&5 +echo "configure:2583: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2599,12 +2607,12 @@ else fi echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:2603: checking for ANSI C header files" >&5 +echo "configure:2611: checking for ANSI C header files" >&5 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -2612,7 +2620,7 @@ else #include EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2616: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2624: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2629,7 +2637,7 @@ rm -f conftest* if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -2647,7 +2655,7 @@ fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -2668,7 +2676,7 @@ if test "$cross_compiling" = yes; then : else cat > conftest.$ac_ext < #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') @@ -2679,7 +2687,7 @@ if (XOR (islower (i), ISLOWER (i)) || to exit (0); } EOF -if { (eval echo configure:2683: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:2691: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then : else @@ -2703,12 +2711,12 @@ EOF fi echo $ac_n "checking for working const""... $ac_c" 1>&6 -echo "configure:2707: checking for working const" >&5 +echo "configure:2715: checking for working const" >&5 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2769: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else @@ -2778,21 +2786,21 @@ EOF fi echo $ac_n "checking for inline""... $ac_c" 1>&6 -echo "configure:2782: checking for inline" >&5 +echo "configure:2790: checking for inline" >&5 if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2804: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_inline=$ac_kw; break else @@ -2818,12 +2826,12 @@ EOF esac echo $ac_n "checking for off_t""... $ac_c" 1>&6 -echo "configure:2822: checking for off_t" >&5 +echo "configure:2830: checking for off_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -2851,12 +2859,12 @@ EOF fi echo $ac_n "checking for size_t""... $ac_c" 1>&6 -echo "configure:2855: checking for size_t" >&5 +echo "configure:2863: checking for size_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -2886,19 +2894,19 @@ fi # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 -echo "configure:2890: checking for working alloca.h" >&5 +echo "configure:2898: checking for working alloca.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { char *p = alloca(2 * sizeof(int)); ; return 0; } EOF -if { (eval echo configure:2902: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2910: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_header_alloca_h=yes else @@ -2919,12 +2927,12 @@ EOF fi echo $ac_n "checking for alloca""... $ac_c" 1>&6 -echo "configure:2923: checking for alloca" >&5 +echo "configure:2931: checking for alloca" >&5 if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2964: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_func_alloca_works=yes else @@ -2984,12 +2992,12 @@ EOF echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 -echo "configure:2988: checking whether alloca needs Cray hooks" >&5 +echo "configure:2996: checking whether alloca needs Cray hooks" >&5 if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3018: checking for $ac_func" >&5 +echo "configure:3026: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3054: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3069,7 +3077,7 @@ done fi echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 -echo "configure:3073: checking stack direction for C alloca" >&5 +echo "configure:3081: checking stack direction for C alloca" >&5 if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3077,7 +3085,7 @@ else ac_cv_c_stack_direction=0 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:3108: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_c_stack_direction=1 else @@ -3117,21 +3125,21 @@ EOF fi -for ac_hdr in unistd.h +for ac_hdr in stdlib.h unistd.h sys/stat.h sys/types.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:3125: checking for $ac_hdr" >&5 +echo "configure:3133: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3135: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3143: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -3160,12 +3168,12 @@ done for ac_func in getpagesize do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3164: checking for $ac_func" >&5 +echo "configure:3172: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3200: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3213,7 +3221,7 @@ fi done echo $ac_n "checking for working mmap""... $ac_c" 1>&6 -echo "configure:3217: checking for working mmap" >&5 +echo "configure:3225: checking for working mmap" >&5 if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3221,7 +3229,7 @@ else ac_cv_func_mmap_fixed_mapped=no else cat > conftest.$ac_ext < #include +#if HAVE_SYS_TYPES_H +# include +#endif + +#if HAVE_STDLIB_H +# include +#endif + +#if HAVE_SYS_STAT_H +# include +#endif + +#if HAVE_UNISTD_H +# include +#endif + /* This mess was copied from the GNU getpagesize.h. */ #ifndef HAVE_GETPAGESIZE -# ifdef HAVE_UNISTD_H -# include -# endif /* Assume that all systems that can run configure have sys/param.h. */ # ifndef HAVE_SYS_PARAM_H @@ -3361,7 +3382,7 @@ main() } EOF -if { (eval echo configure:3365: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:3386: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_mmap_fixed_mapped=yes else @@ -3389,17 +3410,17 @@ unistd.h values.h sys/param.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:3393: checking for $ac_hdr" >&5 +echo "configure:3414: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3403: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3424: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -3429,12 +3450,12 @@ done __argz_count __argz_stringify __argz_next do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3433: checking for $ac_func" >&5 +echo "configure:3454: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3482: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3486,12 +3507,12 @@ done for ac_func in stpcpy do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3490: checking for $ac_func" >&5 +echo "configure:3511: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3539: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3548,19 +3569,19 @@ EOF if test $ac_cv_header_locale_h = yes; then echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6 -echo "configure:3552: checking for LC_MESSAGES" >&5 +echo "configure:3573: checking for LC_MESSAGES" >&5 if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { return LC_MESSAGES ; return 0; } EOF -if { (eval echo configure:3564: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3585: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_val_LC_MESSAGES=yes else @@ -3581,7 +3602,7 @@ EOF fi fi echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6 -echo "configure:3585: checking whether NLS is requested" >&5 +echo "configure:3606: checking whether NLS is requested" >&5 # Check whether --enable-nls or --disable-nls was given. if test "${enable_nls+set}" = set; then enableval="$enable_nls" @@ -3601,7 +3622,7 @@ fi EOF echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6 -echo "configure:3605: checking whether included gettext is requested" >&5 +echo "configure:3626: checking whether included gettext is requested" >&5 # Check whether --with-included-gettext or --without-included-gettext was given. if test "${with_included_gettext+set}" = set; then withval="$with_included_gettext" @@ -3620,17 +3641,17 @@ fi ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for libintl.h""... $ac_c" 1>&6 -echo "configure:3624: checking for libintl.h" >&5 +echo "configure:3645: checking for libintl.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3634: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3655: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -3647,19 +3668,19 @@ fi if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 echo $ac_n "checking for gettext in libc""... $ac_c" 1>&6 -echo "configure:3651: checking for gettext in libc" >&5 +echo "configure:3672: checking for gettext in libc" >&5 if eval "test \"`echo '$''{'gt_cv_func_gettext_libc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { return (int) gettext ("") ; return 0; } EOF -if { (eval echo configure:3663: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3684: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gt_cv_func_gettext_libc=yes else @@ -3675,7 +3696,7 @@ echo "$ac_t""$gt_cv_func_gettext_libc" 1 if test "$gt_cv_func_gettext_libc" != "yes"; then echo $ac_n "checking for bindtextdomain in -lintl""... $ac_c" 1>&6 -echo "configure:3679: checking for bindtextdomain in -lintl" >&5 +echo "configure:3700: checking for bindtextdomain in -lintl" >&5 ac_lib_var=`echo intl'_'bindtextdomain | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3683,7 +3704,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lintl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3719: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3710,19 +3731,19 @@ fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 echo $ac_n "checking for gettext in libintl""... $ac_c" 1>&6 -echo "configure:3714: checking for gettext in libintl" >&5 +echo "configure:3735: checking for gettext in libintl" >&5 if eval "test \"`echo '$''{'gt_cv_func_gettext_libintl'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3747: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gt_cv_func_gettext_libintl=yes else @@ -3750,7 +3771,7 @@ EOF # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3754: checking for $ac_word" >&5 +echo "configure:3775: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3784,12 +3805,12 @@ fi for ac_func in dcgettext do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3788: checking for $ac_func" >&5 +echo "configure:3809: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3837: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3839,7 +3860,7 @@ done # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3843: checking for $ac_word" >&5 +echo "configure:3864: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3875,7 +3896,7 @@ fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3879: checking for $ac_word" >&5 +echo "configure:3900: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3907,7 +3928,7 @@ else fi cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3940: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* CATOBJEXT=.gmo DATADIRNAME=share @@ -3947,7 +3968,7 @@ fi # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3951: checking for $ac_word" >&5 +echo "configure:3972: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3981,7 +4002,7 @@ fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3985: checking for $ac_word" >&5 +echo "configure:4006: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4017,7 +4038,7 @@ fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4021: checking for $ac_word" >&5 +echo "configure:4042: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4107,7 +4128,7 @@ fi LINGUAS= else echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6 -echo "configure:4111: checking for catalogs to be installed" >&5 +echo "configure:4132: checking for catalogs to be installed" >&5 NEW_LINGUAS= for lang in ${LINGUAS=$ALL_LINGUAS}; do case "$ALL_LINGUAS" in @@ -4135,17 +4156,17 @@ echo "configure:4111: checking for catal if test "$CATOBJEXT" = ".cat"; then ac_safe=`echo "linux/version.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for linux/version.h""... $ac_c" 1>&6 -echo "configure:4139: checking for linux/version.h" >&5 +echo "configure:4160: checking for linux/version.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4149: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4170: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4210,7 +4231,7 @@ fi echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 -echo "configure:4214: checking for executable suffix" >&5 +echo "configure:4235: checking for executable suffix" >&5 if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4220,7 +4241,7 @@ else rm -f conftest* echo 'int main () { return 0; }' > conftest.$ac_ext ac_cv_exeext= - if { (eval echo configure:4224: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + if { (eval echo configure:4245: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then for file in conftest.*; do case $file in *.c | *.o | *.obj) ;; @@ -4246,7 +4267,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4250: checking for $ac_word" >&5 +echo "configure:4271: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4282,7 +4303,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4286: checking for $ac_word" >&5 +echo "configure:4307: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4315,7 +4336,7 @@ test -n "$LEX" || LEX=""$missing_dir/mis # Extract the first word of "flex", so it can be a program name with args. set dummy flex; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4319: checking for $ac_word" >&5 +echo "configure:4340: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4349,7 +4370,7 @@ then *) ac_lib=l ;; esac echo $ac_n "checking for yywrap in -l$ac_lib""... $ac_c" 1>&6 -echo "configure:4353: checking for yywrap in -l$ac_lib" >&5 +echo "configure:4374: checking for yywrap in -l$ac_lib" >&5 ac_lib_var=`echo $ac_lib'_'yywrap | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4357,7 +4378,7 @@ else ac_save_LIBS="$LIBS" LIBS="-l$ac_lib $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4393: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4391,7 +4412,7 @@ fi fi echo $ac_n "checking lex output file root""... $ac_c" 1>&6 -echo "configure:4395: checking lex output file root" >&5 +echo "configure:4416: checking lex output file root" >&5 if eval "test \"`echo '$''{'ac_cv_prog_lex_root'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4412,7 +4433,7 @@ echo "$ac_t""$ac_cv_prog_lex_root" 1>&6 LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root echo $ac_n "checking whether yytext is a pointer""... $ac_c" 1>&6 -echo "configure:4416: checking whether yytext is a pointer" >&5 +echo "configure:4437: checking whether yytext is a pointer" >&5 if eval "test \"`echo '$''{'ac_cv_prog_lex_yytext_pointer'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4424,14 +4445,14 @@ echo 'extern char *yytext;' >>$LEX_OUTPU ac_save_LIBS="$LIBS" LIBS="$LIBS $LEXLIB" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4456: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_prog_lex_yytext_pointer=yes else @@ -4454,7 +4475,7 @@ fi echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 -echo "configure:4458: checking whether to enable maintainer-specific portions of Makefiles" >&5 +echo "configure:4479: checking whether to enable maintainer-specific portions of Makefiles" >&5 # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then enableval="$enable_maintainer_mode" @@ -4488,17 +4509,17 @@ for ac_hdr in string.h strings.h stdlib. do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:4492: checking for $ac_hdr" >&5 +echo "configure:4513: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4502: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4523: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4527,12 +4548,12 @@ done for ac_func in sbrk do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4531: checking for $ac_func" >&5 +echo "configure:4552: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4580: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -4584,12 +4605,12 @@ for ac_hdr in dirent.h sys/ndir.h sys/di do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6 -echo "configure:4588: checking for $ac_hdr that defines DIR" >&5 +echo "configure:4609: checking for $ac_hdr that defines DIR" >&5 if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include <$ac_hdr> @@ -4597,7 +4618,7 @@ int main() { DIR *dirp = 0; ; return 0; } EOF -if { (eval echo configure:4601: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4622: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* eval "ac_cv_header_dirent_$ac_safe=yes" else @@ -4622,7 +4643,7 @@ done # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. if test $ac_header_dirent = dirent.h; then echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6 -echo "configure:4626: checking for opendir in -ldir" >&5 +echo "configure:4647: checking for opendir in -ldir" >&5 ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4630,7 +4651,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ldir $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4666: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4663,7 +4684,7 @@ fi else echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6 -echo "configure:4667: checking for opendir in -lx" >&5 +echo "configure:4688: checking for opendir in -lx" >&5 ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4671,7 +4692,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lx $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4707: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4706,12 +4727,12 @@ fi echo $ac_n "checking whether weak symbol works""... $ac_c" 1>&6 -echo "configure:4710: checking whether weak symbol works" >&5 +echo "configure:4731: checking whether weak symbol works" >&5 if eval "test \"`echo '$''{'libiberty_cv_have_weak_symbol'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4745: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* libiberty_cv_have_weak_symbol=no else @@ -4744,14 +4765,14 @@ if test $libiberty_cv_have_weak_symbol = # demangler may use dlopen. echo $ac_n "checking for library containing dlopen""... $ac_c" 1>&6 -echo "configure:4748: checking for library containing dlopen" >&5 +echo "configure:4769: checking for library containing dlopen" >&5 if eval "test \"`echo '$''{'ac_cv_search_dlopen'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_func_search_save_LIBS="$LIBS" ac_cv_search_dlopen="no" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4787: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_dlopen="none required" else @@ -4773,7 +4794,7 @@ rm -f conftest* test "$ac_cv_search_dlopen" = "no" && for i in dl; do LIBS="-l$i $ac_func_search_save_LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4809: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_dlopen="-l$i" break @@ -4816,12 +4837,12 @@ EOF esac echo $ac_n "checking whether strstr must be declared""... $ac_c" 1>&6 -echo "configure:4820: checking whether strstr must be declared" >&5 +echo "configure:4841: checking whether strstr must be declared" >&5 if eval "test \"`echo '$''{'bfd_cv_decl_needed_strstr'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -4842,7 +4863,7 @@ int main() { char *(*pfn) = (char *(*)) strstr ; return 0; } EOF -if { (eval echo configure:4846: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4867: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_decl_needed_strstr=no else @@ -4863,12 +4884,12 @@ EOF fi echo $ac_n "checking whether free must be declared""... $ac_c" 1>&6 -echo "configure:4867: checking whether free must be declared" >&5 +echo "configure:4888: checking whether free must be declared" >&5 if eval "test \"`echo '$''{'bfd_cv_decl_needed_free'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -4889,7 +4910,7 @@ int main() { char *(*pfn) = (char *(*)) free ; return 0; } EOF -if { (eval echo configure:4893: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4914: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_decl_needed_free=no else @@ -4910,12 +4931,12 @@ EOF fi echo $ac_n "checking whether sbrk must be declared""... $ac_c" 1>&6 -echo "configure:4914: checking whether sbrk must be declared" >&5 +echo "configure:4935: checking whether sbrk must be declared" >&5 if eval "test \"`echo '$''{'bfd_cv_decl_needed_sbrk'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -4936,7 +4957,7 @@ int main() { char *(*pfn) = (char *(*)) sbrk ; return 0; } EOF -if { (eval echo configure:4940: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4961: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_decl_needed_sbrk=no else @@ -4957,12 +4978,12 @@ EOF fi echo $ac_n "checking whether getenv must be declared""... $ac_c" 1>&6 -echo "configure:4961: checking whether getenv must be declared" >&5 +echo "configure:4982: checking whether getenv must be declared" >&5 if eval "test \"`echo '$''{'bfd_cv_decl_needed_getenv'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -4983,7 +5004,7 @@ int main() { char *(*pfn) = (char *(*)) getenv ; return 0; } EOF -if { (eval echo configure:4987: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5008: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_decl_needed_getenv=no else @@ -5004,12 +5025,12 @@ EOF fi echo $ac_n "checking whether environ must be declared""... $ac_c" 1>&6 -echo "configure:5008: checking whether environ must be declared" >&5 +echo "configure:5029: checking whether environ must be declared" >&5 if eval "test \"`echo '$''{'bfd_cv_decl_needed_environ'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -5030,7 +5051,7 @@ int main() { char *(*pfn) = (char *(*)) environ ; return 0; } EOF -if { (eval echo configure:5034: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5055: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_decl_needed_environ=no else @@ -5058,19 +5079,19 @@ fi # constants, while still supporting pre-ANSI compilers which do not # support string concatenation. echo $ac_n "checking whether ANSI C string concatenation works""... $ac_c" 1>&6 -echo "configure:5062: checking whether ANSI C string concatenation works" >&5 +echo "configure:5083: checking whether ANSI C string concatenation works" >&5 if eval "test \"`echo '$''{'ld_cv_string_concatenation'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5095: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ld_cv_string_concatenation=yes else @@ -5174,6 +5195,7 @@ fi + EMULATION_LIBPATH=$all_libpath @@ -5402,6 +5424,7 @@ s%@EMUL@%$EMUL%g s%@TDIRS@%%g s%@EMULATION_OFILES@%$EMULATION_OFILES%g s%@EMUL_EXTRA_OFILES@%$EMUL_EXTRA_OFILES%g +s%@LIB_PATH@%$LIB_PATH%g s%@EMULATION_LIBPATH@%$EMULATION_LIBPATH%g s%@TESTBFDLIB@%$TESTBFDLIB%g diff -uprN binutils-2.13.90.0.4/ld/configure.in binutils-2.13.90.0.10/ld/configure.in --- binutils-2.13.90.0.4/ld/configure.in Thu May 23 15:10:11 2002 +++ binutils-2.13.90.0.10/ld/configure.in Fri Sep 27 08:33:09 2002 @@ -13,6 +13,7 @@ AM_INIT_AUTOMAKE(ld, ${BFD_VERSION}) AM_PROG_LIBTOOL +AC_ARG_WITH(lib-path, [ --with-lib-path=dir1:dir2... set default LIB_PATH],LIB_PATH=$withval) AC_ARG_ENABLE(targets, [ --enable-targets alternative target configurations], [case "${enableval}" in @@ -31,7 +32,7 @@ esac],[want64=false])dnl build_warnings="-W -Wall -Wstrict-prototypes -Wmissing-prototypes" AC_ARG_ENABLE(build-warnings, -[ --enable-build-warnings Enable build-time compiler warnings if gcc is used], +[ --enable-build-warnings enable build-time compiler warnings if gcc is used], [case "${enableval}" in yes) ;; no) build_warnings="-w";; @@ -208,6 +209,7 @@ else fi AC_SUBST(EMULATION_OFILES) AC_SUBST(EMUL_EXTRA_OFILES) +AC_SUBST(LIB_PATH) EMULATION_LIBPATH=$all_libpath AC_SUBST(EMULATION_LIBPATH) diff -uprN binutils-2.13.90.0.4/ld/configure.tgt binutils-2.13.90.0.10/ld/configure.tgt --- binutils-2.13.90.0.4/ld/configure.tgt Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/ld/configure.tgt Wed Oct 9 21:09:41 2002 @@ -232,7 +232,7 @@ arm-*-netbsdelf*) targ_emul=armelf_nbsd; targ_extra_emuls="armelfb_nbsd armelf armnbsd" ;; arm-*-netbsd*) targ_emul=armnbsd; targ_extra_emuls="armelf armelf_nbsd armelfb_nbsd" ;; -arm-**-nto*) targ_emul=armnto ;; +arm-*-nto*) targ_emul=armnto ;; arm-*-openbsd*) targ_emul=armnbsd ;; arm-*-rtems*) targ_emul=armelf ;; arm-*-elf) targ_emul=armelf ;; @@ -260,7 +260,7 @@ h8300-*-elf*) targ_emul=h8300elf; targ_extra_emuls="h8300helf h8300self" ;; -h8500-*-hms* | h8500-*-coff*) +h8500-*-hms* | h8500-*-coff* | h8500-*-rtems*) targ_emul=h8500 targ_extra_emuls="h8500s h8500b h8500m h8500c" ;; @@ -269,6 +269,13 @@ sh-*-linux*) targ_extra_emuls=shelf_linux targ_extra_libpath=shelf_linux ;; +sh64eb-*-linux*) targ_emul=shelf32_linux + targ_extra_emuls="shlelf32_linux" + ;; +sh64-*-linux*) targ_emul=shlelf32_linux + targ_extra_emuls="shelf32_linux" + targ_extra_libpath=shelf32_linux + ;; sh*eb-*-linux*) targ_emul=shelf_linux ;; @@ -307,6 +314,9 @@ sh-*-elf* | sh[1234]*-*-elf | sh-*-rtems targ_emul=shelf targ_extra_emuls="shlelf sh shl" ;; +sh-*-nto*) targ_emul=shelf_nto + targ_extra_emuls=shlelf_nto + ;; sh-*-pe) targ_emul=shpe ; targ_extra_ofiles="deffilep.o pe-dll.o" ;; sh-*-*|sh-*-rtems*) targ_emul=sh; targ_extra_emuls=shl ;; @@ -495,6 +505,7 @@ rs6000-*-aix5*) targ_emul=aix5rs6 ;; rs6000-*-aix*) targ_emul=aixrs6 ;; tic30-*-*aout*) targ_emul=tic30aout ;; tic30-*-*coff*) targ_emul=tic30coff ;; +tic4x-*-* | c4x-*-*) targ_emul=tic4xcoff ;; tic54x-*-* | c54x*-*-*) targ_emul=tic54xcoff ;; tic80-*-*) targ_emul=tic80coff ;; v850-*-*) targ_emul=v850 ;; diff -uprN binutils-2.13.90.0.4/ld/emulparams/elf32bmipn32-defs.sh binutils-2.13.90.0.10/ld/emulparams/elf32bmipn32-defs.sh --- binutils-2.13.90.0.4/ld/emulparams/elf32bmipn32-defs.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/emulparams/elf32bmipn32-defs.sh Fri Sep 27 08:33:09 2002 @@ -0,0 +1,71 @@ +# If you change this file, please also look at files which source this one: +# elf64bmip.sh elf64btsmip.sh elf32btsmipn32.sh elf32bmipn32.sh + +# This is an ELF platform. +SCRIPT_NAME=elf + +# Handle both big- and little-ended 32-bit MIPS objects. +ARCH=mips +OUTPUT_FORMAT="elf32-bigmips" +BIG_OUTPUT_FORMAT="elf32-bigmips" +LITTLE_OUTPUT_FORMAT="elf32-littlemips" + +TEMPLATE_NAME=elf32 + +TEXT_START_ADDR=0x10000000 +MAXPAGESIZE=0x100000 +ENTRY=__start + +# GOT-related settings. +OTHER_GOT_SYMBOLS=' + _gp = ALIGN(16) + 0x7ff0; +' +OTHER_SDATA_SECTIONS=" + .lit8 ${RELOCATING-0} : { *(.lit8) } + .lit4 ${RELOCATING-0} : { *(.lit4) } + .srdata ${RELOCATING-0} : { *(.srdata) } +" + +# Magic symbols. +TEXT_START_SYMBOLS='_ftext = . ;' +DATA_START_SYMBOLS='_fdata = . ;' +OTHER_BSS_SYMBOLS='_fbss = .;' +# IRIX6 defines these symbols. 0x34 is the size of the ELF header. +EXECUTABLE_SYMBOLS=" + __dso_displacement = 0; + __elf_header = ${TEXT_START_ADDR}; + __program_header_table = ${TEXT_START_ADDR} + 0x34; +" + +# There are often dynamic relocations against the .rodata section. +# Setting DT_TEXTREL in the .dynamic section does not convince the +# IRIX6 linker to permit relocations against the text segment. +# Following the IRIX linker, we simply put .rodata in the data +# segment. +WRITABLE_RODATA= + +OTHER_SECTIONS=" + .MIPS.events.text ${RELOCATING-0} : + { + *(.MIPS.events.text${RELOCATING+ .MIPS.events.gnu.linkonce.t*}) + } + .MIPS.content.text ${RELOCATING-0} : + { + *(.MIPS.content.text${RELOCATING+ .MIPS.content.gnu.linkonce.t*}) + } + .MIPS.events.data ${RELOCATING-0} : + { + *(.MIPS.events.data${RELOCATING+ .MIPS.events.gnu.linkonce.d*}) + } + .MIPS.content.data ${RELOCATING-0} : + { + *(.MIPS.content.data${RELOCATING+ .MIPS.content.gnu.linkonce.d*}) + } + .MIPS.events.rodata ${RELOCATING-0} : + { + *(.MIPS.events.rodata${RELOCATING+ .MIPS.events.gnu.linkonce.r*}) + } + .MIPS.content.rodata ${RELOCATING-0} : + { + *(.MIPS.content.rodata${RELOCATING+ .MIPS.content.gnu.linkonce.r*}) + }" diff -uprN binutils-2.13.90.0.4/ld/emulparams/elf32bmipn32.sh binutils-2.13.90.0.10/ld/emulparams/elf32bmipn32.sh --- binutils-2.13.90.0.4/ld/emulparams/elf32bmipn32.sh Thu Aug 1 17:49:32 2002 +++ binutils-2.13.90.0.10/ld/emulparams/elf32bmipn32.sh Fri Sep 27 08:33:09 2002 @@ -1,71 +1,6 @@ -# If you change this file, please also look at files which source this one: -# elf64bmip.sh elf64btsmip.sh elf32btsmipn32.sh - -# This is an ELF platform. -SCRIPT_NAME=elf - -# Handle both big- and little-ended 32-bit MIPS objects. -ARCH=mips -OUTPUT_FORMAT="elf32-bigmips" -BIG_OUTPUT_FORMAT="elf32-bigmips" -LITTLE_OUTPUT_FORMAT="elf32-littlemips" - -TEMPLATE_NAME=elf32 - -TEXT_START_ADDR=0x10000000 -MAXPAGESIZE=0x100000 -ENTRY=__start - -# GOT-related settings. -OTHER_GOT_SYMBOLS=' - _gp = ALIGN(16) + 0x7ff0; -' -OTHER_SDATA_SECTIONS=" - .lit8 ${RELOCATING-0} : { *(.lit8) } - .lit4 ${RELOCATING-0} : { *(.lit4) } - .srdata ${RELOCATING-0} : { *(.srdata) } -" - -# Magic symbols. -TEXT_START_SYMBOLS='_ftext = . ;' -DATA_START_SYMBOLS='_fdata = . ;' -OTHER_BSS_SYMBOLS='_fbss = .;' -# IRIX6 defines these symbols. 0x34 is the size of the ELF header. -EXECUTABLE_SYMBOLS=" - __dso_displacement = 0; - __elf_header = ${TEXT_START_ADDR}; - __program_header_table = ${TEXT_START_ADDR} + 0x34; -" - -# There are often dynamic relocations against the .rodata section. -# Setting DT_TEXTREL in the .dynamic section does not convince the -# IRIX6 linker to permit relocations against the text segment. -# Following the IRIX linker, we simply put .rodata in the data -# segment. -WRITABLE_RODATA= - -OTHER_SECTIONS=" - .MIPS.events.text ${RELOCATING-0} : - { - *(.MIPS.events.text${RELOCATING+ .MIPS.events.gnu.linkonce.t*}) - } - .MIPS.content.text ${RELOCATING-0} : - { - *(.MIPS.content.text${RELOCATING+ .MIPS.content.gnu.linkonce.t*}) - } - .MIPS.events.data ${RELOCATING-0} : - { - *(.MIPS.events.data${RELOCATING+ .MIPS.events.gnu.linkonce.d*}) - } - .MIPS.content.data ${RELOCATING-0} : - { - *(.MIPS.content.data${RELOCATING+ .MIPS.content.gnu.linkonce.d*}) - } - .MIPS.events.rodata ${RELOCATING-0} : - { - *(.MIPS.events.rodata${RELOCATING+ .MIPS.events.gnu.linkonce.r*}) - } - .MIPS.content.rodata ${RELOCATING-0} : - { - *(.MIPS.content.rodata${RELOCATING+ .MIPS.content.gnu.linkonce.r*}) - }" +. ${srcdir}/emulparams/elf32bmipn32-defs.sh +OUTPUT_FORMAT="elf32-nbigmips" +BIG_OUTPUT_FORMAT="elf32-nbigmips" +LITTLE_OUTPUT_FORMAT="elf32-nlittlemips" +GENERATE_SHLIB_SCRIPT=yes +SHLIB_TEXT_START_ADDR=0x5ffe0000 diff -uprN binutils-2.13.90.0.4/ld/emulparams/elf32btsmipn32.sh binutils-2.13.90.0.10/ld/emulparams/elf32btsmipn32.sh --- binutils-2.13.90.0.4/ld/emulparams/elf32btsmipn32.sh Thu Aug 1 17:49:32 2002 +++ binutils-2.13.90.0.10/ld/emulparams/elf32btsmipn32.sh Fri Sep 27 08:33:09 2002 @@ -1,13 +1,14 @@ # If you change this file, please also look at files which source this one: # elf32ltsmipn32.sh -. ${srcdir}/emulparams/elf32bmipn32.sh +. ${srcdir}/emulparams/elf32bmipn32-defs.sh OUTPUT_FORMAT="elf32-ntradbigmips" BIG_OUTPUT_FORMAT="elf32-ntradbigmips" LITTLE_OUTPUT_FORMAT="elf32-ntradlittlemips" unset EXECUTABLE_SYMBOLS unset WRITABLE_RODATA +unset SHLIB_TEXT_START_ADDR # Magic sections. OTHER_TEXT_SECTIONS='*(.mips16.fn.*) *(.mips16.call.*)' diff -uprN binutils-2.13.90.0.4/ld/emulparams/elf32ppc.sh binutils-2.13.90.0.10/ld/emulparams/elf32ppc.sh --- binutils-2.13.90.0.4/ld/emulparams/elf32ppc.sh Thu May 23 15:10:11 2002 +++ binutils-2.13.90.0.10/ld/emulparams/elf32ppc.sh Wed Oct 2 10:17:20 2002 @@ -7,7 +7,7 @@ SCRIPT_NAME=elf OUTPUT_FORMAT="elf32-powerpc" TEXT_START_ADDR=0x01800000 MAXPAGESIZE=0x10000 -ARCH=powerpc +ARCH=powerpc:common MACHINE= BSS_PLT= EXECUTABLE_SYMBOLS='PROVIDE (__stack = 0); PROVIDE (___stack = 0);' @@ -17,6 +17,10 @@ OTHER_READWRITE_SECTIONS=" .got1 ${RELOCATING-0} : { *(.got1) } .got2 ${RELOCATING-0} : { *(.got2) } " +OTHER_GOT_RELOC_SECTIONS=" + .rela.got1 ${RELOCATING-0} : { *(.rela.got1) } + .rela.got2 ${RELOCATING-0} : { *(.rela.got2) } +" # Treat a host that matches the target with the possible exception of "64" # in the name as if it were native. diff -uprN binutils-2.13.90.0.4/ld/emulparams/elf64_aix.sh binutils-2.13.90.0.10/ld/emulparams/elf64_aix.sh --- binutils-2.13.90.0.4/ld/emulparams/elf64_aix.sh Sun Feb 3 11:22:32 2002 +++ binutils-2.13.90.0.10/ld/emulparams/elf64_aix.sh Fri Sep 27 08:33:09 2002 @@ -7,7 +7,7 @@ ARCH=ia64 MACHINE= MAXPAGESIZE=0x10000 TEXT_START_ADDR="0x10000000" -DATA_ADDR="0x20000000 + (. & (${MAXPAGESIZE} - 1))" +DATA_ADDR="ALIGN (0x10000000) + (. & (${MAXPAGESIZE} - 1))" GENERATE_SHLIB_SCRIPT=yes NOP=0x00300000010070000002000001000400 # a bundle full of nops OTHER_GOT_SECTIONS=" diff -uprN binutils-2.13.90.0.4/ld/emulparams/elf64alpha_fbsd.sh binutils-2.13.90.0.10/ld/emulparams/elf64alpha_fbsd.sh --- binutils-2.13.90.0.4/ld/emulparams/elf64alpha_fbsd.sh Thu Mar 7 11:52:39 2002 +++ binutils-2.13.90.0.10/ld/emulparams/elf64alpha_fbsd.sh Fri Sep 27 08:33:09 2002 @@ -1,2 +1,3 @@ . ${srcdir}/emulparams/elf64alpha.sh . ${srcdir}/emulparams/elf_fbsd.sh +OUTPUT_FORMAT="elf64-alpha-freebsd" diff -uprN binutils-2.13.90.0.4/ld/emulparams/elf64bmip.sh binutils-2.13.90.0.10/ld/emulparams/elf64bmip.sh --- binutils-2.13.90.0.4/ld/emulparams/elf64bmip.sh Sun Feb 3 11:22:32 2002 +++ binutils-2.13.90.0.10/ld/emulparams/elf64bmip.sh Fri Sep 27 08:33:09 2002 @@ -1,8 +1,10 @@ -. ${srcdir}/emulparams/elf32bmipn32.sh +. ${srcdir}/emulparams/elf32bmipn32-defs.sh OUTPUT_FORMAT="elf64-bigmips" BIG_OUTPUT_FORMAT="elf64-bigmips" LITTLE_OUTPUT_FORMAT="elf64-littlemips" ELFSIZE=64 +GENERATE_SHLIB_SCRIPT=yes +LIB_PATH=/usr/lib64 # IRIX6 defines these symbols. 0x40 is the size of the ELF header. EXECUTABLE_SYMBOLS=" diff -uprN binutils-2.13.90.0.4/ld/emulparams/elf64btsmip.sh binutils-2.13.90.0.10/ld/emulparams/elf64btsmip.sh --- binutils-2.13.90.0.4/ld/emulparams/elf64btsmip.sh Fri Apr 5 10:03:50 2002 +++ binutils-2.13.90.0.10/ld/emulparams/elf64btsmip.sh Fri Sep 27 08:33:09 2002 @@ -1,7 +1,7 @@ # If you change this file, please also look at files which source this one: # elf64ltsmip.sh -. ${srcdir}/emulparams/elf32bmipn32.sh +. ${srcdir}/emulparams/elf32bmipn32-defs.sh OUTPUT_FORMAT="elf64-tradbigmips" BIG_OUTPUT_FORMAT="elf64-tradbigmips" LITTLE_OUTPUT_FORMAT="elf64-tradlittlemips" diff -uprN binutils-2.13.90.0.4/ld/emulparams/elf64ppc.sh binutils-2.13.90.0.10/ld/emulparams/elf64ppc.sh --- binutils-2.13.90.0.4/ld/emulparams/elf64ppc.sh Wed Jul 17 11:38:29 2002 +++ binutils-2.13.90.0.10/ld/emulparams/elf64ppc.sh Wed Oct 2 10:17:20 2002 @@ -5,7 +5,8 @@ GENERATE_SHLIB_SCRIPT=yes SCRIPT_NAME=elf OUTPUT_FORMAT="elf64-powerpc" TEXT_START_ADDR=0x10000000 -MAXPAGESIZE=0x40000 +SEGMENT_SIZE=0x10000000 +MAXPAGESIZE=0x10000 COMMONPAGESIZE=0x1000 ARCH=powerpc:common64 MACHINE= diff -uprN binutils-2.13.90.0.4/ld/emulparams/elf_i386_fbsd.sh binutils-2.13.90.0.10/ld/emulparams/elf_i386_fbsd.sh --- binutils-2.13.90.0.4/ld/emulparams/elf_i386_fbsd.sh Thu Mar 7 11:52:39 2002 +++ binutils-2.13.90.0.10/ld/emulparams/elf_i386_fbsd.sh Fri Sep 27 08:33:09 2002 @@ -1,2 +1,3 @@ . ${srcdir}/emulparams/elf_i386.sh . ${srcdir}/emulparams/elf_fbsd.sh +OUTPUT_FORMAT="elf32-i386-freebsd" diff -uprN binutils-2.13.90.0.4/ld/emulparams/shelf32_linux.sh binutils-2.13.90.0.10/ld/emulparams/shelf32_linux.sh --- binutils-2.13.90.0.4/ld/emulparams/shelf32_linux.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/emulparams/shelf32_linux.sh Wed Oct 9 21:09:41 2002 @@ -0,0 +1,2 @@ +. ${srcdir}/emulparams/shlelf32_linux.sh +OUTPUT_FORMAT="elf32-sh64big-linux" diff -uprN binutils-2.13.90.0.4/ld/emulparams/shelf_nto.sh binutils-2.13.90.0.10/ld/emulparams/shelf_nto.sh --- binutils-2.13.90.0.4/ld/emulparams/shelf_nto.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/emulparams/shelf_nto.sh Fri Sep 27 08:33:09 2002 @@ -0,0 +1,10 @@ +SCRIPT_NAME=elf +OUTPUT_FORMAT="elf32-sh" +TEXT_START_ADDR=0x08040000 +MAXPAGESIZE=0x1000 +ARCH=sh +MACHINE= +TEMPLATE_NAME=elf32 +GENERATE_SHLIB_SCRIPT=yes +TEXT_START_SYMBOLS='_btext = .;' +ENTRY=_start diff -uprN binutils-2.13.90.0.4/ld/emulparams/shlelf32_linux.sh binutils-2.13.90.0.10/ld/emulparams/shlelf32_linux.sh --- binutils-2.13.90.0.4/ld/emulparams/shlelf32_linux.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/emulparams/shlelf32_linux.sh Wed Oct 9 21:09:41 2002 @@ -0,0 +1,41 @@ +# If you change this file, please also look at files which source this one: +# shelf32_linux.sh + +SCRIPT_NAME=elf +OUTPUT_FORMAT="elf32-sh64-linux" +TEXT_START_ADDR=0x400000 +MAXPAGESIZE=0x10000 +ARCH=sh +MACHINE=sh5 +ALIGNMENT=8 +TEMPLATE_NAME=elf32 +GENERATE_SHLIB_SCRIPT=yes + + +DATA_START_SYMBOLS='PROVIDE (___data = .);' + +# If data is located right after .text (not explicitly specified), +# then we need to align it to an 8-byte boundary. +OTHER_READONLY_SECTIONS=' +PROVIDE (___rodata = DEFINED (.rodata) ? .rodata : 0); +. = ALIGN (8); +' + +# Make _edata and .bss aligned by smuggling in an alignment directive. +OTHER_GOT_SECTIONS='. = ALIGN (8);' + +CTOR_START='___ctors = .;' +CTOR_END='___ctors_end = .;' +DTOR_START='___dtors = .;' +DTOR_END='___dtors_end = .;' + +# Do not use the varname=${varname-'string'} construct here; there are +# problems with that on some shells (e.g. on Solaris) where there is a bug +# that trigs when $varname contains a "}". +test -z "$OTHER_RELOCATING_SECTIONS" && OTHER_RELOCATING_SECTIONS=' + .cranges 0 : { *(.cranges) } +' + +# We need to adjust sizes in the .cranges section after relaxation, so +# we need an after_allocation function, and it goes in this file. +EXTRA_EM_FILE=${EXTRA_EM_FILE-sh64elf} diff -uprN binutils-2.13.90.0.4/ld/emulparams/shlelf_nto.sh binutils-2.13.90.0.10/ld/emulparams/shlelf_nto.sh --- binutils-2.13.90.0.4/ld/emulparams/shlelf_nto.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/emulparams/shlelf_nto.sh Fri Sep 27 08:33:09 2002 @@ -0,0 +1,10 @@ +SCRIPT_NAME=elf +OUTPUT_FORMAT="elf32-shl" +TEXT_START_ADDR=0x08040000 +MAXPAGESIZE=0x1000 +ARCH=sh +MACHINE= +TEMPLATE_NAME=elf32 +GENERATE_SHLIB_SCRIPT=yes +TEXT_START_SYMBOLS='_btext = .;' +ENTRY=_start diff -uprN binutils-2.13.90.0.4/ld/emulparams/tic3xcoff.sh binutils-2.13.90.0.10/ld/emulparams/tic3xcoff.sh --- binutils-2.13.90.0.4/ld/emulparams/tic3xcoff.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/emulparams/tic3xcoff.sh Fri Sep 27 08:33:09 2002 @@ -0,0 +1,9 @@ +SCRIPT_NAME=tic4xcoff +OUTPUT_FORMAT="coff2-c4x" +OUTPUT_ARCH="c3x" +ARCH=c3x +#ENTRY=_c_int00 +TEXT_START_ADDR=0x0080 +TARGET_PAGE_SIZE=0x1000 +TEMPLATE_NAME=ticoff +OUTPUT_FORMAT_TEMPLATE=tic4x diff -uprN binutils-2.13.90.0.4/ld/emulparams/tic4xcoff.sh binutils-2.13.90.0.10/ld/emulparams/tic4xcoff.sh --- binutils-2.13.90.0.4/ld/emulparams/tic4xcoff.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/emulparams/tic4xcoff.sh Fri Sep 27 08:33:09 2002 @@ -0,0 +1,9 @@ +SCRIPT_NAME=tic4xcoff +OUTPUT_FORMAT="coff2-c4x" +OUTPUT_ARCH="c4x" +ARCH=c4x +#ENTRY=_c_int00 +TEXT_START_ADDR=0x0080 +TARGET_PAGE_SIZE=0x1000 +TEMPLATE_NAME=ticoff +OUTPUT_FORMAT_TEMPLATE=tic4x diff -uprN binutils-2.13.90.0.4/ld/emulparams/v850.sh binutils-2.13.90.0.10/ld/emulparams/v850.sh --- binutils-2.13.90.0.4/ld/emulparams/v850.sh Thu Jun 3 11:02:10 1999 +++ binutils-2.13.90.0.10/ld/emulparams/v850.sh Fri Sep 27 08:33:09 2002 @@ -12,3 +12,4 @@ ARCH=v850 MAXPAGESIZE=256 ENTRY=_start EMBEDDED=yes +TEMPLATE_NAME=elf32 diff -uprN binutils-2.13.90.0.4/ld/emultempl/aix.em binutils-2.13.90.0.10/ld/emultempl/aix.em --- binutils-2.13.90.0.4/ld/emultempl/aix.em Thu Aug 8 22:49:56 2002 +++ binutils-2.13.90.0.10/ld/emultempl/aix.em Fri Sep 27 08:33:09 2002 @@ -180,7 +180,7 @@ gld${EMULATION_NAME}_parse_args (argc, a int longind; int optc; bfd_signed_vma val; - char *end; + const char *end; enum { @@ -319,7 +319,7 @@ gld${EMULATION_NAME}_parse_args (argc, a break; case 'D': - val = strtoll (optarg, &end, 0); + val = bfd_scan_vma (optarg, &end, 0); if (*end != '\0') einfo ("%P: warning: ignoring invalid -D number %s\n", optarg); else if (val != -1) @@ -327,7 +327,7 @@ gld${EMULATION_NAME}_parse_args (argc, a break; case 'H': - val = strtoul (optarg, &end, 0); + val = bfd_scan_vma (optarg, &end, 0); if (*end != '\0' || (val & (val - 1)) != 0) einfo ("%P: warning: ignoring invalid -H number %s\n", optarg); else @@ -345,7 +345,7 @@ gld${EMULATION_NAME}_parse_args (argc, a number, we assume the AIX option is intended. Otherwise, we assume the usual GNU ld -T option is intended. We can't just ignore the AIX option, because gcc passes it to the linker. */ - val = strtoull (optarg, &end, 0); + val = bfd_scan_vma (optarg, &end, 0); if (*end != '\0') { optind = prevoptind; @@ -430,7 +430,7 @@ gld${EMULATION_NAME}_parse_args (argc, a break; case OPTION_MAXDATA: - val = strtoull (optarg, &end, 0); + val = bfd_scan_vma (optarg, &end, 0); if (*end != '\0') einfo ("%P: warning: ignoring invalid -bmaxdata number %s\n", optarg); else @@ -438,7 +438,7 @@ gld${EMULATION_NAME}_parse_args (argc, a break; case OPTION_MAXSTACK: - val = strtoull (optarg, &end, 0); + val = bfd_scan_vma (optarg, &end, 0); if (*end != '\0') einfo ("%P: warning: ignoring invalid -bmaxstack number %s\n", optarg); @@ -471,7 +471,7 @@ gld${EMULATION_NAME}_parse_args (argc, a start on. The offset within the page should still be the offset within the file, so we need to build an appropriate expression. */ - val = strtoull (optarg, &end, 0); + val = bfd_scan_vma (optarg, &end, 0); if (*end != '\0') einfo ("%P: warning: ignoring invalid -pD number %s\n", optarg); else @@ -494,7 +494,7 @@ gld${EMULATION_NAME}_parse_args (argc, a /* This set the page that the .text section is supposed to start on. The offset within the page should still be the offset within the file. */ - val = strtoull (optarg, &end, 0); + val = bfd_scan_vma (optarg, &end, 0); if (*end != '\0') einfo ("%P: warning: ignoring invalid -pT number %s\n", optarg); else @@ -1112,14 +1112,14 @@ gld${EMULATION_NAME}_read_file (filename if (s != se) { int status; - char *end; + const char *end; status = is_syscall (s, &syscall_flag); if (0 > status) { /* not a system call, check for address */ - address = strtoul (s, &end, 0); + address = bfd_scan_vma (s, &end, 0); if (*end != '\0') { einfo ("%s:%d: warning: syntax error in import/export file\n", diff -uprN binutils-2.13.90.0.4/ld/emultempl/elf32.em binutils-2.13.90.0.10/ld/emultempl/elf32.em --- binutils-2.13.90.0.4/ld/emultempl/elf32.em Mon Jul 29 08:19:19 2002 +++ binutils-2.13.90.0.10/ld/emultempl/elf32.em Wed Oct 9 21:09:41 2002 @@ -75,7 +75,7 @@ static void gld${EMULATION_NAME}_before_ static boolean gld${EMULATION_NAME}_open_dynamic_archive PARAMS ((const char *, search_dirs_type *, lang_input_statement_type *)); static lang_output_section_statement_type *output_rel_find - PARAMS ((void)); + PARAMS ((asection *)); static asection *output_prev_sec_find PARAMS ((lang_output_section_statement_type *)); static boolean gld${EMULATION_NAME}_place_orphan @@ -1012,24 +1012,46 @@ cat >>e${EMULATION_NAME}.c <name[4] == 'a'; - for (u = lang_output_section_statement.head; - u != (lang_statement_union_type *) NULL; - u = lookup->next) + for (u = lang_output_section_statement.head; u; u = lookup->next) { lookup = &u->output_section_statement; - if (strncmp (".rel", lookup->name, 4) == 0 - && lookup->bfd_section != NULL - && (lookup->bfd_section->flags & SEC_ALLOC) != 0) + if (strncmp (".rel", lookup->name, 4) == 0) { - return lookup; + /* Don't place after .rel.plt as doing so results in wrong + dynamic tags. Also, place allocated reloc sections before + non-allocated. */ + int lookrela = lookup->name[4] == 'a'; + + if (strcmp (".plt", lookup->name + 4 + lookrela) == 0 + || (lookup->bfd_section != NULL + && (lookup->bfd_section->flags & SEC_ALLOC) == 0)) + break; + last = lookup; + if (rela == lookrela) + last_rel = lookup; + if (lookup->bfd_section != NULL + && (lookup->bfd_section->flags & SEC_ALLOC) != 0) + last_rel_alloc = lookup; } } - return (lang_output_section_statement_type *) NULL; + + if (last_rel_alloc) + return last_rel_alloc; + + if (last_rel) + return last_rel; + + return last; } /* Find the last output section before given output statement. @@ -1085,13 +1107,23 @@ gld${EMULATION_NAME}_place_orphan (file, lang_statement_list_type add; etree_type *address; const char *secname; - const char *outsecname; const char *ps = NULL; lang_output_section_statement_type *os; + int isdyn = 0; secname = bfd_get_section_name (s->owner, s); + if (! link_info.relocateable + && link_info.combreloc + && strncmp (secname, ".rel", 4) == 0) + { + if (secname[4] == 'a') + secname = ".rela.dyn"; + else + secname = ".rel.dyn"; + isdyn = 1; + } - if (! config.unique_orphan_sections && ! unique_section_p (secname)) + if (isdyn || (!config.unique_orphan_sections && !unique_section_p (secname))) { /* Look through the script to see where to place this section. */ os = lang_output_section_find (secname); @@ -1154,27 +1186,10 @@ gld${EMULATION_NAME}_place_orphan (file, && HAVE_SECTION (hold_data, ".data")) place = &hold_data; else if (strncmp (secname, ".rel", 4) == 0 + && (s->flags & SEC_LOAD) != 0 && (hold_rel.os != NULL - || (hold_rel.os = output_rel_find ()) != NULL)) - { - if (! link_info.relocateable && link_info.combreloc) - { - if (strncmp (secname, ".rela", 5) == 0) - os = lang_output_section_find (".rela.dyn"); - else - os = lang_output_section_find (".rel.dyn"); - - if (os != NULL - && os->bfd_section != NULL - && ((s->flags ^ os->bfd_section->flags) - & (SEC_LOAD | SEC_ALLOC)) == 0) - { - lang_add_section (&os->children, s, os, file); - return true; - } - } - place = &hold_rel; - } + || (hold_rel.os = output_rel_find (s)) != NULL)) + place = &hold_rel; else if ((s->flags & (SEC_CODE | SEC_READONLY)) == SEC_READONLY && HAVE_SECTION (hold_rodata, ".rodata")) place = &hold_rodata; @@ -1187,13 +1202,10 @@ gld${EMULATION_NAME}_place_orphan (file, /* Choose a unique name for the section. This will be needed if the same section name appears in the input file with different loadable or allocatable characteristics. */ - outsecname = secname; - if (bfd_get_section_by_name (output_bfd, outsecname) != NULL) + if (bfd_get_section_by_name (output_bfd, secname) != NULL) { - outsecname = bfd_get_unique_section_name (output_bfd, - outsecname, - &count); - if (outsecname == NULL) + secname = bfd_get_unique_section_name (output_bfd, secname, &count); + if (secname == NULL) einfo ("%F%P: place_orphan failed: %E\n"); } @@ -1214,7 +1226,7 @@ gld${EMULATION_NAME}_place_orphan (file, { /* If the name of the section is representable in C, then create symbols to mark the start and the end of the section. */ - for (ps = outsecname; *ps != '\0'; ps++) + for (ps = secname; *ps != '\0'; ps++) if (! ISALNUM (*ps) && *ps != '_') break; if (*ps == '\0') @@ -1222,8 +1234,8 @@ gld${EMULATION_NAME}_place_orphan (file, char *symname; etree_type *e_align; - symname = (char *) xmalloc (ps - outsecname + sizeof "__start_"); - sprintf (symname, "__start_%s", outsecname); + symname = (char *) xmalloc (ps - secname + sizeof "__start_"); + sprintf (symname, "__start_%s", secname); e_align = exp_unop (ALIGN_K, exp_intop ((bfd_vma) 1 << s->alignment_power)); lang_add_assignment (exp_assop ('=', symname, e_align)); @@ -1235,7 +1247,7 @@ gld${EMULATION_NAME}_place_orphan (file, else address = NULL; - os = lang_enter_output_section_statement (outsecname, address, 0, + os = lang_enter_output_section_statement (secname, address, 0, (bfd_vma) 0, (etree_type *) NULL, (etree_type *) NULL, @@ -1256,8 +1268,8 @@ gld${EMULATION_NAME}_place_orphan (file, if (place != NULL) stat_ptr = &add; - symname = (char *) xmalloc (ps - outsecname + sizeof "__stop_"); - sprintf (symname, "__stop_%s", outsecname); + symname = (char *) xmalloc (ps - secname + sizeof "__stop_"); + sprintf (symname, "__stop_%s", secname); lang_add_assignment (exp_assop ('=', symname, exp_nameop (NAME, "."))); } diff -uprN binutils-2.13.90.0.4/ld/genscripts.sh binutils-2.13.90.0.10/ld/genscripts.sh --- binutils-2.13.90.0.4/ld/genscripts.sh Thu May 23 15:10:11 2002 +++ binutils-2.13.90.0.10/ld/genscripts.sh Fri Sep 27 08:33:09 2002 @@ -90,7 +90,7 @@ if [ "x$SCRIPT_NAME" = "xelf" ]; then GENERATE_COMBRELOC_SCRIPT=yes fi -SEGMENT_SIZE=${SEGMENT_SIZE-${TARGET_PAGE_SIZE}} +SEGMENT_SIZE=${SEGMENT_SIZE-${MAXPAGESIZE-${TARGET_PAGE_SIZE}}} # Determine DATA_ALIGNMENT for the 5 variants, using # values specified in the emulparams/.sh file or default. diff -uprN binutils-2.13.90.0.4/ld/ldexp.c binutils-2.13.90.0.10/ld/ldexp.c --- binutils-2.13.90.0.4/ld/ldexp.c Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/ld/ldexp.c Fri Sep 27 08:33:09 2002 @@ -50,11 +50,21 @@ static etree_value_type new_rel PARAMS ((bfd_vma, char *, lang_output_section_statement_type *section)); static etree_value_type new_rel_from_section PARAMS ((bfd_vma value, lang_output_section_statement_type *section)); +static etree_value_type fold_unary + PARAMS ((etree_type *tree, + lang_output_section_statement_type *current_section, + lang_phase_type allocation_done, + bfd_vma dot, bfd_vma *dotp)); static etree_value_type fold_binary PARAMS ((etree_type *tree, lang_output_section_statement_type *current_section, lang_phase_type allocation_done, bfd_vma dot, bfd_vma *dotp)); +static etree_value_type fold_trinary + PARAMS ((etree_type *tree, + lang_output_section_statement_type *current_section, + lang_phase_type allocation_done, + bfd_vma dot, bfd_vma *dotp)); static etree_value_type fold_name PARAMS ((etree_type *tree, lang_output_section_statement_type *current_section, @@ -247,6 +257,93 @@ new_rel_from_section (value, section) } static etree_value_type +fold_unary (tree, current_section, allocation_done, dot, dotp) + etree_type *tree; + lang_output_section_statement_type *current_section; + lang_phase_type allocation_done; + bfd_vma dot; + bfd_vma *dotp; +{ + etree_value_type result; + + result = exp_fold_tree (tree->unary.child, + current_section, + allocation_done, dot, dotp); + if (result.valid_p) + { + switch (tree->type.node_code) + { + case ALIGN_K: + if (allocation_done != lang_first_phase_enum) + result = new_rel_from_section (align_n (dot, result.value), + current_section); + else + result.valid_p = false; + break; + + case ABSOLUTE: + if (allocation_done != lang_first_phase_enum) + { + result.value += result.section->bfd_section->vma; + result.section = abs_output_section; + } + else + result.valid_p = false; + break; + + case '~': + make_abs (&result); + result.value = ~result.value; + break; + + case '!': + make_abs (&result); + result.value = !result.value; + break; + + case '-': + make_abs (&result); + result.value = -result.value; + break; + + case NEXT: + /* Return next place aligned to value. */ + if (allocation_done == lang_allocating_phase_enum) + { + make_abs (&result); + result.value = align_n (dot, result.value); + } + else + result.valid_p = false; + break; + + case DATA_SEGMENT_END: + if (allocation_done != lang_first_phase_enum + && current_section == abs_output_section + && (exp_data_seg.phase == exp_dataseg_align_seen + || exp_data_seg.phase == exp_dataseg_adjust + || allocation_done != lang_allocating_phase_enum)) + { + if (exp_data_seg.phase == exp_dataseg_align_seen) + { + exp_data_seg.phase = exp_dataseg_end_seen; + exp_data_seg.end = result.value; + } + } + else + result.valid_p = false; + break; + + default: + FAIL (); + break; + } + } + + return result; +} + +static etree_value_type fold_binary (tree, current_section, allocation_done, dot, dotp) etree_type *tree; lang_output_section_statement_type *current_section; @@ -279,15 +376,14 @@ fold_binary (tree, current_section, allo && (tree->type.node_code == '+' || tree->type.node_code == '-')) { - etree_value_type hold; - - /* If there is only one absolute term, make sure it is the - second one. */ if (other.section != abs_output_section) { - hold = result; - result = other; - other = hold; + /* Keep the section of the other term. */ + if (tree->type.node_code == '+') + other.value = result.value + other.value; + else + other.value = result.value - other.value; + return other; } } else if (result.section != other.section @@ -382,6 +478,28 @@ fold_binary (tree, current_section, allo return result; } +static etree_value_type +fold_trinary (tree, current_section, allocation_done, dot, dotp) + etree_type *tree; + lang_output_section_statement_type *current_section; + lang_phase_type allocation_done; + bfd_vma dot; + bfd_vma *dotp; +{ + etree_value_type result; + + result = exp_fold_tree (tree->trinary.cond, current_section, + allocation_done, dot, dotp); + if (result.valid_p) + result = exp_fold_tree ((result.value + ? tree->trinary.lhs + : tree->trinary.rhs), + current_section, + allocation_done, dot, dotp); + + return result; +} + etree_value_type invalid () { @@ -584,90 +702,8 @@ exp_fold_tree (tree, current_section, al break; case etree_unary: - result = exp_fold_tree (tree->unary.child, - current_section, - allocation_done, dot, dotp); - if (result.valid_p) - { - switch (tree->type.node_code) - { - case ALIGN_K: - if (allocation_done != lang_first_phase_enum) - result = new_rel_from_section (align_n (dot, result.value), - current_section); - else - result.valid_p = false; - break; - - case ABSOLUTE: - if (allocation_done != lang_first_phase_enum) - { - result.value += result.section->bfd_section->vma; - result.section = abs_output_section; - } - else - result.valid_p = false; - break; - - case '~': - make_abs (&result); - result.value = ~result.value; - break; - - case '!': - make_abs (&result); - result.value = !result.value; - break; - - case '-': - make_abs (&result); - result.value = -result.value; - break; - - case NEXT: - /* Return next place aligned to value. */ - if (allocation_done == lang_allocating_phase_enum) - { - make_abs (&result); - result.value = align_n (dot, result.value); - } - else - result.valid_p = false; - break; - - case DATA_SEGMENT_END: - if (allocation_done != lang_first_phase_enum - && current_section == abs_output_section - && (exp_data_seg.phase == exp_dataseg_align_seen - || exp_data_seg.phase == exp_dataseg_adjust - || allocation_done != lang_allocating_phase_enum)) - { - if (exp_data_seg.phase == exp_dataseg_align_seen) - { - exp_data_seg.phase = exp_dataseg_end_seen; - exp_data_seg.end = result.value; - } - } - else - result.valid_p = false; - break; - - default: - FAIL (); - break; - } - } - break; - - case etree_trinary: - result = exp_fold_tree (tree->trinary.cond, current_section, - allocation_done, dot, dotp); - if (result.valid_p) - result = exp_fold_tree ((result.value - ? tree->trinary.lhs - : tree->trinary.rhs), - current_section, - allocation_done, dot, dotp); + result = fold_unary (tree, current_section, allocation_done, + dot, dotp); break; case etree_binary: @@ -675,6 +711,11 @@ exp_fold_tree (tree, current_section, al dot, dotp); break; + case etree_trinary: + result = fold_trinary (tree, current_section, allocation_done, + dot, dotp); + break; + case etree_assign: case etree_provide: case etree_provided: diff -uprN binutils-2.13.90.0.4/ld/ldfile.c binutils-2.13.90.0.10/ld/ldfile.c --- binutils-2.13.90.0.4/ld/ldfile.c Wed Jul 17 11:38:29 2002 +++ binutils-2.13.90.0.10/ld/ldfile.c Thu Oct 10 09:16:57 2002 @@ -146,7 +146,99 @@ ldfile_try_open_bfd (attempt, entry) if (check != NULL) { if (! bfd_check_format (check, bfd_object)) - return true; + { + if (check == entry->the_bfd + && bfd_get_error () == bfd_error_file_not_recognized + && ! ldemul_unrecognized_file (entry)) + { + int token, skip = 0; + char *arg, *arg1, *arg2, *arg3; + extern FILE *yyin; + + /* Try to interpret the file as a linker script. */ + ldfile_open_command_file (attempt); + + ldfile_assumed_script = true; + parser_input = input_selected; + ldlex_both (); + token = INPUT_SCRIPT; + while (token != 0) + { + switch (token) + { + case OUTPUT_FORMAT: + if ((token = yylex ()) != '(') + continue; + if ((token = yylex ()) != NAME) + continue; + arg1 = yylval.name; + arg2 = NULL; + arg3 = NULL; + token = yylex (); + if (token == ',') + { + if ((token = yylex ()) != NAME) + { + free (arg1); + continue; + } + arg2 = yylval.name; + if ((token = yylex ()) != ',' + || (token = yylex ()) != NAME) + { + free (arg1); + free (arg2); + continue; + } + arg3 = yylval.name; + token = yylex (); + } + if (token == ')') + { + switch (command_line.endian) + { + default: + case ENDIAN_UNSET: + arg = arg1; break; + case ENDIAN_BIG: + arg = arg2 ? arg2 : arg1; break; + case ENDIAN_LITTLE: + arg = arg3 ? arg3 : arg1; break; + } + if (strcmp (arg, lang_get_output_target ()) != 0) + skip = 1; + } + free (arg1); + if (arg2) free (arg2); + if (arg3) free (arg3); + break; + case NAME: + case LNAME: + case VERS_IDENTIFIER: + case VERS_TAG: + free (yylval.name); + break; + case INT: + if (yylval.bigint.str) + free (yylval.bigint.str); + break; + } + token = yylex (); + } + ldfile_assumed_script = false; + fclose (yyin); + yyin = NULL; + if (skip) + { + einfo (_("%P: skipping incompatible %s when searching for %s\n"), + attempt, entry->local_sym_name); + bfd_close (entry->the_bfd); + entry->the_bfd = NULL; + return false; + } + } + return true; + } if ((bfd_arch_get_compatible (check, output_bfd) == NULL) /* XCOFF archives can have 32 and 64 bit objects */ diff -uprN binutils-2.13.90.0.4/ld/ldlang.c binutils-2.13.90.0.10/ld/ldlang.c --- binutils-2.13.90.0.4/ld/ldlang.c Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/ld/ldlang.c Thu Oct 10 09:16:57 2002 @@ -3,22 +3,22 @@ 2001, 2002 Free Software Foundation, Inc. -This file is part of GLD, the Gnu Linker. + This file is part of GLD, the Gnu Linker. -GLD 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. - -GLD 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 GLD; see the file COPYING. If not, write to the Free -Software Foundation, 59 Temple Place - Suite 330, Boston, MA -02111-1307, USA. */ + GLD 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. + + GLD 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 GLD; see the file COPYING. If not, write to the Free + Software Foundation, 59 Temple Place - Suite 330, Boston, MA + 02111-1307, USA. */ #include "bfd.h" #include "sysdep.h" @@ -40,6 +40,10 @@ Software Foundation, 59 Temple Place - S #include "fnmatch.h" #include "demangle.h" +#ifndef offsetof +#define offsetof(TYPE,MEMBER) ((size_t)&(((TYPE*)0)->MEMBER)) +#endif + /* FORWARDS */ static lang_statement_union_type *new_statement PARAMS ((enum statement_enum, size_t, lang_statement_list_type *)); @@ -1783,6 +1787,29 @@ get_first_input_target () return target; } +const char * +lang_get_output_target () +{ + const char *target; + + /* Has the user told us which output format to use? */ + if (output_target != (char *) NULL) + return output_target; + + /* No - has the current target been set to something other than + the default? */ + if (current_target != default_target) + return current_target; + + /* No - can we determine the format of the first input file? */ + target = get_first_input_target (); + if (target != NULL) + return target; + + /* Failed - use the default output target. */ + return default_target; +} + /* Open the output file. */ static bfd * @@ -1791,24 +1818,7 @@ open_output (name) { bfd *output; - /* Has the user told us which output format to use? */ - if (output_target == (char *) NULL) - { - /* No - has the current target been set to something other than - the default? */ - if (current_target != default_target) - output_target = current_target; - - /* No - can we determine the format of the first input file? */ - else - { - output_target = get_first_input_target (); - - /* Failed - use the default output target. */ - if (output_target == NULL) - output_target = default_target; - } - } + output_target = lang_get_output_target (); /* Has the user requested a particular endianness on the command line? */ diff -uprN binutils-2.13.90.0.4/ld/ldlang.h binutils-2.13.90.0.10/ld/ldlang.h --- binutils-2.13.90.0.4/ld/ldlang.h Wed Jul 17 11:38:29 2002 +++ binutils-2.13.90.0.10/ld/ldlang.h Thu Oct 10 09:16:57 2002 @@ -483,5 +483,6 @@ extern void lang_register_vers_node struct bfd_elf_version_deps *)); boolean unique_section_p PARAMS ((const char *)); extern void lang_add_unique PARAMS ((const char *)); +extern const char *lang_get_output_target PARAMS ((void)); #endif diff -uprN binutils-2.13.90.0.4/ld/ldmisc.c binutils-2.13.90.0.10/ld/ldmisc.c --- binutils-2.13.90.0.4/ld/ldmisc.c Wed Jul 17 11:38:29 2002 +++ binutils-2.13.90.0.10/ld/ldmisc.c Fri Sep 27 08:33:09 2002 @@ -236,9 +236,8 @@ vfinfo (fp, fmt, arg) case 'C': case 'D': case 'G': - /* Clever filename:linenumber with function name if possible, - or section name as a last resort. The arguments are a BFD, - a section, and an offset. */ + /* Clever filename:linenumber with function name if possible. + The arguments are a BFD, a section, and an offset. */ { static bfd *last_bfd; static char *last_file = NULL; @@ -280,68 +279,54 @@ vfinfo (fp, fmt, arg) } } + lfinfo (fp, "%B(%s+0x%v)", abfd, section->name, offset); + discard_last = true; if (bfd_find_nearest_line (abfd, section, asymbols, offset, &filename, &functionname, &linenumber)) { - if (functionname != NULL && fmt[-1] == 'G') - { - lfinfo (fp, "%B:", abfd); - if (filename != NULL - && strcmp (filename, bfd_get_filename (abfd)) != 0) - fprintf (fp, "%s:", filename); - lfinfo (fp, "%T", functionname); - } - else if (functionname != NULL && fmt[-1] == 'C') - { - if (filename == (char *) NULL) - filename = abfd->filename; + boolean need_colon = true; + if (functionname != NULL && fmt[-1] == 'C') + { if (last_bfd == NULL || last_file == NULL || last_function == NULL || last_bfd != abfd - || strcmp (last_file, filename) != 0 + || (filename != NULL + && strcmp (last_file, filename) != 0) || strcmp (last_function, functionname) != 0) { - /* We use abfd->filename in this initial line, - in case filename is a .h file or something - similarly unhelpful. */ - lfinfo (fp, _("%B: In function `%T':\n"), - abfd, functionname); + lfinfo (fp, _(": In function `%T':\n"), + functionname); + need_colon = false; last_bfd = abfd; if (last_file != NULL) free (last_file); - last_file = xstrdup (filename); + last_file = NULL; + if (filename) + last_file = xstrdup (filename); if (last_function != NULL) free (last_function); last_function = xstrdup (functionname); } discard_last = false; - if (linenumber != 0) - fprintf (fp, "%s:%u", filename, linenumber); - else - lfinfo (fp, "%s(%s+0x%v)", filename, section->name, - offset); } - else if (filename == NULL - || strcmp (filename, abfd->filename) == 0) + + if (filename != NULL) { - lfinfo (fp, "%B(%s+0x%v)", abfd, section->name, - offset); - if (linenumber != 0) - lfinfo (fp, ":%u", linenumber); + if (need_colon) + putc (':', fp); + fputs (filename, fp); } - else if (linenumber != 0) - lfinfo (fp, "%B:%s:%u", abfd, filename, linenumber); - else - lfinfo (fp, "%B(%s+0x%v):%s", abfd, section->name, - offset, filename); + + if (functionname != NULL && fmt[-1] == 'G') + lfinfo (fp, ":%T", functionname); + else if (filename != NULL && linenumber != 0) + fprintf (fp, ":%u", linenumber); } - else - lfinfo (fp, "%B(%s+0x%v)", abfd, section->name, offset); if (discard_last) { diff -uprN binutils-2.13.90.0.4/ld/lexsup.c binutils-2.13.90.0.10/ld/lexsup.c --- binutils-2.13.90.0.4/ld/lexsup.c Thu Aug 8 22:49:56 2002 +++ binutils-2.13.90.0.10/ld/lexsup.c Tue Oct 8 17:47:53 2002 @@ -3,22 +3,22 @@ 2001, 2002 Free Software Foundation, Inc. -This file is part of GLD, the Gnu Linker. + This file is part of GLD, the Gnu Linker. -GLD 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. - -GLD 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 GLD; see the file COPYING. If not, write to the Free -Software Foundation, 59 Temple Place - Suite 330, Boston, MA -02111-1307, USA. */ + GLD 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. + + GLD 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 GLD; see the file COPYING. If not, write to the Free + Software Foundation, 59 Temple Place - Suite 330, Boston, MA + 02111-1307, USA. */ #include "bfd.h" #include "sysdep.h" @@ -54,8 +54,8 @@ Software Foundation, 59 Temple Place - S #endif static int is_num PARAMS ((const char *, int, int, int)); -static void set_default_dirlist PARAMS ((char *dirlist_ptr)); -static void set_section_start PARAMS ((char *sect, char *valstr)); +static void set_default_dirlist PARAMS ((char *)); +static void set_section_start PARAMS ((char *, char *)); static void help PARAMS ((void)); /* Non-zero if we are processing a --defsym from the command line. */ diff -uprN binutils-2.13.90.0.4/ld/pe-dll.c binutils-2.13.90.0.10/ld/pe-dll.c --- binutils-2.13.90.0.4/ld/pe-dll.c Sun May 26 09:57:13 2002 +++ binutils-2.13.90.0.10/ld/pe-dll.c Mon Oct 7 23:08:00 2002 @@ -257,6 +257,8 @@ static autofilter_entry_type autofilter_ /* { "__imp_", 6 }, */ /* Do __imp_ explicitly to save time. */ { "__rtti_", 7 }, + /* Don't re-export auto-imported symbols. */ + { "_nm_", 4 }, { "__builtin_", 10 }, /* Don't export symbols specifying internal DLL layout. */ { "_head_", 6 }, @@ -1814,8 +1816,10 @@ make_one (exp, parent) quick_symbol (abfd, U ("_head_"), dll_symname, "", UNDSEC, BSF_GLOBAL, 0); quick_symbol (abfd, U ("_imp__"), exp->internal_name, "", id5, BSF_GLOBAL, 0); /* Symbol to reference ord/name of imported - symbol, used to implement auto-import. */ - quick_symbol (abfd, U("_nm__"), exp->internal_name, "", id6, BSF_GLOBAL, 0); + data symbol, used to implement auto-import. */ + if (exp->flag_data) + quick_symbol (abfd, U("_nm__"), exp->internal_name, "", id6, + BSF_GLOBAL,0); if (pe_dll_compat_implib) quick_symbol (abfd, U ("__imp_"), exp->internal_name, "", id5, BSF_GLOBAL, 0); diff -uprN binutils-2.13.90.0.4/ld/po/tr.po binutils-2.13.90.0.10/ld/po/tr.po --- binutils-2.13.90.0.4/ld/po/tr.po Thu Mar 7 11:52:40 2002 +++ binutils-2.13.90.0.10/ld/po/tr.po Fri Sep 27 08:33:09 2002 @@ -4,9 +4,9 @@ # msgid "" msgstr "" -"Project-Id-Version: ld 2.12-pre020121\n" -"POT-Creation-Date: 2002-01-17 13:58+0000\n" -"PO-Revision-Date: 2002-02-17 10:48EET\n" +"Project-Id-Version: ld 2.12.91\n" +"POT-Creation-Date: 2002-07-23 15:58-0400\n" +"PO-Revision-Date: 2002-09-07 10:48EET\n" "Last-Translator: Deniz Akkus Kanca \n" "Language-Team: Turkish \n" "MIME-Version: 1.0\n" @@ -27,125 +27,129 @@ msgstr " --thumb-entry= Giriş no msgid "Errors encountered processing file %s" msgstr "%s dosyası işlenirken hata oluştu" -#: emultempl/armcoff.em:207 emultempl/pe.em:1414 +#: emultempl/armcoff.em:207 emultempl/pe.em:1422 msgid "%P: warning: '--thumb-entry %s' is overriding '-e %s'\n" msgstr "%P: uyarı: '--thumb-entry %s', '-e %s' seçeneğini etkisizleştiriyor\n" -#: emultempl/armcoff.em:212 emultempl/pe.em:1419 +#: emultempl/armcoff.em:212 emultempl/pe.em:1427 msgid "%P: warning: connot find thumb start symbol %s\n" msgstr "%P: uyarı: thumb başlangıç sembolü %s bulunamadı\n" -#: emultempl/pe.em:315 +#: emultempl/pe.em:317 msgid " --base_file Generate a base file for relocatable DLLs\n" msgstr "" " --base_file Yerdeğiştirebilen DLL'ler için temeldosya\n" " oluşturur.\n" -#: emultempl/pe.em:316 +#: emultempl/pe.em:318 msgid " --dll Set image base to the default for DLLs\n" msgstr "" " --dll DLL'ler için görüntü temelini öntanımlıya\n" " ayarlar.\n" -#: emultempl/pe.em:317 +#: emultempl/pe.em:319 msgid " --file-alignment Set file alignment\n" msgstr " --file-alignment Dosya hizalamasını ayarlar\n" -#: emultempl/pe.em:318 +#: emultempl/pe.em:320 msgid " --heap Set initial size of the heap\n" msgstr " --heap Yığının ilk boyunu ayarlar.\n" -#: emultempl/pe.em:319 +#: emultempl/pe.em:321 msgid " --image-base
Set start address of the executable\n" msgstr " --image-base Uygulamanın baÅŸlangıç adresini ayarlar\n" -#: emultempl/pe.em:320 +#: emultempl/pe.em:322 msgid " --major-image-version Set version number of the executable\n" msgstr " --major-image-version Uygulamanın sürüm numarasını ayarlar\n" -#: emultempl/pe.em:321 +#: emultempl/pe.em:323 msgid " --major-os-version Set minimum required OS version\n" msgstr " --major-os-version OS için en alt gerekli sürümü belirler\n" -#: emultempl/pe.em:322 +#: emultempl/pe.em:324 msgid " --major-subsystem-version Set minimum required OS subsystem version\n" msgstr "" " --major-subsystem-version OS alt sistem sürümü için en küçük gerekli\n" " sürüm sayısını belirler\n" -#: emultempl/pe.em:323 +#: emultempl/pe.em:325 msgid " --minor-image-version Set revision number of the executable\n" msgstr " --minor-image-version Uygulamanın deÄŸiÅŸim sayısını ayarlar\n" -#: emultempl/pe.em:324 +#: emultempl/pe.em:326 msgid " --minor-os-version Set minimum required OS revision\n" msgstr " --minor-os-version Gerekli en alt OS deÄŸiÅŸimini belirler\n" -#: emultempl/pe.em:325 +#: emultempl/pe.em:327 msgid " --minor-subsystem-version Set minimum required OS subsystem revision\n" msgstr "" " --minor-subsystem-version Gerekli en alt OS alt sistem deÄŸiÅŸim\n" " sayısını belirler\n" -#: emultempl/pe.em:326 +#: emultempl/pe.em:328 msgid " --section-alignment Set section alignment\n" msgstr " --section-alignment Bölüm hizalamasını ayarlar\n" -#: emultempl/pe.em:327 +#: emultempl/pe.em:329 msgid " --stack Set size of the initial stack\n" msgstr " --stack Yığıtın ilk boyunu belirler\n" -#: emultempl/pe.em:328 +#: emultempl/pe.em:330 msgid " --subsystem [:] Set required OS subsystem [& version]\n" msgstr " --subsystem [:] Gerekli OS, altsistem ve sürümü belirler\n" -#: emultempl/pe.em:329 +#: emultempl/pe.em:331 msgid " --support-old-code Support interworking with old code\n" msgstr " --support-old-code Eski kod ile beraber çalışmayı destekler\n" -#: emultempl/pe.em:330 +#: emultempl/pe.em:332 msgid " --thumb-entry= Set the entry point to be Thumb \n" msgstr " --thumb-entry= GiriÅŸ noktasını Thumb olarak atar\n" -#: emultempl/pe.em:332 +#: emultempl/pe.em:334 msgid " --add-stdcall-alias Export symbols with and without @nn\n" msgstr " --add-stdcall-alias Sembolleri @nn ile ve @nn'siz ihraç eder\n" -#: emultempl/pe.em:333 +#: emultempl/pe.em:335 msgid " --disable-stdcall-fixup Don't link _sym to _sym@nn\n" msgstr " --disable-stdcall-fixup _sym'i _sym@nn'e baÄŸlamaz\n" -#: emultempl/pe.em:334 +#: emultempl/pe.em:336 msgid " --enable-stdcall-fixup Link _sym to _sym@nn without warnings\n" msgstr " --enable-stdcall-fixup _sym'i _sym@nn'e uyarı vermeksizin baÄŸlar\n" -#: emultempl/pe.em:335 +#: emultempl/pe.em:337 msgid " --exclude-symbols sym,sym,... Exclude symbols from automatic export\n" msgstr " --exclude-symbols sem,sem,... Sembolleri otomatik ihraçtan ayrı tutar\n" -#: emultempl/pe.em:336 +#: emultempl/pe.em:338 +msgid " --exclude-libs lib,lib,... Exclude libraries from automatic export\n" +msgstr " --exclude-libs lib,lib,... Kitaplıkları otomatik ihraçtan ayrı tutar\n" + +#: emultempl/pe.em:339 msgid " --export-all-symbols Automatically export all globals to DLL\n" msgstr " --export-all-symbols Bütün evrenselleri DLL'e ihraç eder\n" -#: emultempl/pe.em:337 +#: emultempl/pe.em:340 msgid " --kill-at Remove @nn from exported symbols\n" msgstr " --kill-at Ä°hraç edilen sembollerden @nn'i çıkarır\n" -#: emultempl/pe.em:338 +#: emultempl/pe.em:341 msgid " --out-implib Generate import library\n" msgstr " --out-implib Ä°thal kitaplığı oluÅŸturur\n" -#: emultempl/pe.em:339 +#: emultempl/pe.em:342 msgid " --output-def Generate a .DEF file for the built DLL\n" msgstr "" " --output-def OluÅŸturulmuÅŸ DLL için .DEF dosyası\n" " oluÅŸturur\n" -#: emultempl/pe.em:340 +#: emultempl/pe.em:343 msgid " --warn-duplicate-exports Warn about duplicate exports.\n" msgstr " --warn-duplicate-exports Birden fazla ihraçlarda uyarı verir\n" -#: emultempl/pe.em:341 +#: emultempl/pe.em:344 msgid "" " --compat-implib Create backward compatible import libs;\n" " create __imp_ as well.\n" @@ -153,7 +157,7 @@ msgstr "" " --compat-implib GeçmiÅŸe uyumlu ithal kitaplığı ve\n" " __imp_ oluÅŸturur.\n" -#: emultempl/pe.em:343 +#: emultempl/pe.em:346 msgid "" " --enable-auto-image-base Automatically choose image base for DLLs\n" " unless user specifies one\n" @@ -161,13 +165,13 @@ msgstr "" " --enable-auto-image-base Kullanıcılar bir görüntü temeli seçmezse\n" " DLL'ler için otomatik görüntü temeli seçer\n" -#: emultempl/pe.em:345 +#: emultempl/pe.em:348 msgid " --disable-auto-image-base Do not auto-choose image base. (default)\n" msgstr "" " --disable-auto-image-base Görüntü temelini otomatik olarak seçmez\n" " (öntanımlı).\n" -#: emultempl/pe.em:346 +#: emultempl/pe.em:349 msgid "" " --dll-search-prefix= When linking dynamically to a dll without an\n" " importlib, use .dll \n" @@ -178,7 +182,7 @@ msgstr "" " lib.dll yerine\n" " .dll'i tercih eder\n" -#: emultempl/pe.em:349 +#: emultempl/pe.em:352 msgid "" " --enable-auto-import Do sophistcated linking of _sym to \n" " __imp_sym for DATA references\n" @@ -186,11 +190,11 @@ msgstr "" " --enable-auto-import VERÄ° (DATA) baÅŸvuruları için _sym'in\n" " __imp_sym'e ileri düzey baÄŸlamasını yapar\n" -#: emultempl/pe.em:351 +#: emultempl/pe.em:354 msgid " --disable-auto-import Do not auto-import DATA items from DLLs\n" msgstr " --disable-auto-image-base Görüntü temelini otomatik olarak seçmez\n" -#: emultempl/pe.em:352 +#: emultempl/pe.em:355 msgid "" " --enable-extra-pe-debug Enable verbose debug output when building\n" " or linking to DLLs (esp. auto-import)\n" @@ -200,75 +204,75 @@ msgstr "" " çıktısını etkinleÅŸtirir. (özellikle\n" " otomatik ithallerde)\n" -#: emultempl/pe.em:421 +#: emultempl/pe.em:424 msgid "%P: warning: bad version number in -subsystem option\n" msgstr "%P: uyarı: -subsystem seçeneÄŸinde hatalı sürüm sayısı\n" -#: emultempl/pe.em:457 +#: emultempl/pe.em:460 msgid "%P%F: invalid subsystem type %s\n" msgstr "%P%F: geçersiz altsistem türü %s\n" -#: emultempl/pe.em:472 +#: emultempl/pe.em:475 msgid "%P%F: invalid hex number for PE parameter '%s'\n" msgstr "%P%F: PE parametresi '%s' için geçersiz onaltılık sayı\n" -#: emultempl/pe.em:490 +#: emultempl/pe.em:493 msgid "%P%F: strange hex info for PE parameter '%s'\n" msgstr "%P%F: PE parametresi '%s' için garip onaltılık bilgi\n" -#: emultempl/pe.em:529 +#: emultempl/pe.em:532 #, c-format msgid "%s: Can't open base file %s\n" msgstr "%s: %s temel dosyası açılamadı\n" -#: emultempl/pe.em:731 +#: emultempl/pe.em:738 msgid "%P: warning, file alignment > section alignment.\n" msgstr "%P: uyarı, dosya hizalaması > bölüm hizalaması.\n" -#: emultempl/pe.em:815 emultempl/pe.em:841 +#: emultempl/pe.em:822 emultempl/pe.em:848 #, c-format msgid "Warning: resolving %s by linking to %s\n" msgstr "Uyarı: %s %s'yi baÄŸlayarak çözümleniyor\n" -#: emultempl/pe.em:820 emultempl/pe.em:846 +#: emultempl/pe.em:827 emultempl/pe.em:853 msgid "Use --enable-stdcall-fixup to disable these warnings\n" msgstr "Bu uyarıları etkisizleÅŸirmek için --enable-stdcall-fixup kullanın\n" -#: emultempl/pe.em:821 emultempl/pe.em:847 +#: emultempl/pe.em:828 emultempl/pe.em:854 msgid "Use --disable-stdcall-fixup to disable these fixups\n" msgstr "Bu düzeltmeleri etkisizleÅŸtirmek için --disable-stdcall-fixup kullanın\n" -#: emultempl/pe.em:872 +#: emultempl/pe.em:879 msgid "%C: Cannot get section contents - auto-import exception\n" msgstr "%C: Bölüm içerikleri alınamadı - otomatik ithal hatası\n" -#: emultempl/pe.em:880 +#: emultempl/pe.em:887 msgid "%C: variable '%T' can't be auto-imported. Please read the documentation for ld's --enable-auto-import for details.\n" msgstr "" "%C: '%T' deÄŸiÅŸkeni oto-ithal edilemez. Lütfen ld için dökümantasyonu okuyun.\n" " detay için --enable-auto-import kullanın.\n" -#: emultempl/pe.em:908 +#: emultempl/pe.em:916 #, c-format -msgid "Warning: resolving %s by linking to %s (auto-import)\n" -msgstr "Uyarı: %s %s'yi baÄŸlayarak çözümleniyor (oto-ithal)\n" +msgid "Info: resolving %s by linking to %s (auto-import)\n" +msgstr "Bilgi: %s %s'yi baÄŸlayarak çözümleniyor (oto-ithal)\n" -#: emultempl/pe.em:989 +#: emultempl/pe.em:997 msgid "%F%P: PE operations on non PE file.\n" msgstr "%F%P: PE dosyası olmayan dosya üzerinde PE iÅŸlemleri.\n" -#: emultempl/pe.em:1218 +#: emultempl/pe.em:1226 #, c-format msgid "Errors encountered processing file %s\n" msgstr "%s dosyası iÅŸlenirken hata oluÅŸtu\n" -#: emultempl/pe.em:1241 +#: emultempl/pe.em:1249 #, c-format msgid "Errors encountered processing file %s for interworking" msgstr "%s dosyası beraber çalışma için iÅŸlenirken hata oluÅŸtu" -#: emultempl/pe.em:1297 ldlang.c:2050 ldlang.c:4441 ldlang.c:4474 -#: ldmain.c:1067 +#: emultempl/pe.em:1305 ldlang.c:2065 ldlang.c:4608 ldlang.c:4641 +#: ldmain.c:1061 msgid "%P%F: bfd_link_hash_lookup failed: %E\n" msgstr "%P%F: bfd_link_hash_lookup baÅŸarısız: %E\n" @@ -281,8 +285,14 @@ msgid "%X%P: cref_hash_lookup failed: %E msgstr "%X%P: cref_hash_lookup baÅŸarısız: %E\n" #: ldcref.c:235 -msgid "\nCross Reference Table\n\n" -msgstr "\nÇapraz BaÅŸvuru Tablosu\n\n" +msgid "" +"\n" +"Cross Reference Table\n" +"\n" +msgstr "" +"\n" +"Çapraz BaÅŸvuru Tablosu\n" +"\n" #: ldcref.c:236 msgid "Symbol" @@ -304,11 +314,11 @@ msgstr "%P: `%T' sembolü ana hash tablo msgid "%B%F: could not read symbols; %E\n" msgstr "%B%F: semboller okunamadı; %E\n" -#: ldcref.c:469 ldmain.c:1133 ldmain.c:1137 +#: ldcref.c:469 ldmain.c:1127 ldmain.c:1131 msgid "%B%F: could not read symbols: %E\n" msgstr "%B%F: semboller okunamadı: %E\n" -#: ldcref.c:537 ldcref.c:544 ldmain.c:1183 ldmain.c:1190 +#: ldcref.c:537 ldcref.c:544 ldmain.c:1177 ldmain.c:1184 msgid "%B%F: could not read relocs: %E\n" msgstr "%B%F: yer deÄŸiÅŸimleri okunamadı: %E\n" @@ -337,8 +347,14 @@ msgid "%P%X: Unsupported size %d for set msgstr "%1$P%2$X: %4$s kümesi için desteklenmeyen boy %3$d\n" #: ldctor.c:344 -msgid "\nSet Symbol\n\n" -msgstr "\nKüme Sembol\n\n" +msgid "" +"\n" +"Set Symbol\n" +"\n" +msgstr "" +"\n" +"Küme Sembol\n" +"\n" #: ldemul.c:225 msgid "%S SYSLIB ignored\n" @@ -360,55 +376,55 @@ msgstr "Desteklenen öykünümler: " msgid " no emulation specific options.\n" msgstr " öykünüme özel seçenek yok.\n" -#: ldexp.c:163 +#: ldexp.c:174 msgid "%F%P: %s uses undefined section %s\n" msgstr "%F%P: %s tanımsız %s bölümünü kullanıyor\n" -#: ldexp.c:165 +#: ldexp.c:176 msgid "%F%P: %s forward reference of section %s\n" msgstr "%F%P: %s %s bölümüne ileriye baÅŸvuru\n" -#: ldexp.c:277 +#: ldexp.c:304 msgid "%F%S %% by zero\n" msgstr "%F%S %% sıfırla\n" -#: ldexp.c:284 +#: ldexp.c:311 msgid "%F%S / by zero\n" msgstr "%F%S sıfırla bölme\n" -#: ldexp.c:408 +#: ldexp.c:463 msgid "%X%S: unresolvable symbol `%s' referenced in expression\n" msgstr "%X%S: ifadede çözümlenemeyen `%s' sembolüne baÅŸvuru var\n" -#: ldexp.c:427 +#: ldexp.c:483 msgid "%F%S: undefined symbol `%s' referenced in expression\n" msgstr "%F%S: ifadede tanımlanmamış `%s' sembolüne baÅŸvuru var\n" -#: ldexp.c:611 +#: ldexp.c:685 msgid "%F%S can not PROVIDE assignment to location counter\n" msgstr "%F%S yer sayacına atama YAPILAMAZ\n" -#: ldexp.c:621 +#: ldexp.c:695 msgid "%F%S invalid assignment to location counter\n" msgstr "%F%S yer sayacına hatalı atama\n" -#: ldexp.c:625 +#: ldexp.c:699 msgid "%F%S assignment to location counter invalid outside of SECTION\n" msgstr "%F%S yer sayacına atama BÖLÃœM'ün dışında geçersiz\n" -#: ldexp.c:634 +#: ldexp.c:708 msgid "%F%S cannot move location counter backwards (from %V to %V)\n" msgstr "%F%S yer sayacı geri gidemez (%V'den %V'e)\n" -#: ldexp.c:661 +#: ldexp.c:735 msgid "%P%F:%s: hash creation failed\n" msgstr "%P%F:%s: hash oluÅŸturulması baÅŸarısız\n" -#: ldexp.c:963 +#: ldexp.c:1037 ldexp.c:1071 msgid "%F%S nonconstant expression for %s\n" msgstr "%F%S %s için sabit olmayan ifade\n" -#: ldexp.c:993 +#: ldexp.c:1126 msgid "%F%S non constant expression for %s\n" msgstr "%F%S %s için sabit olmayan ifade\n" @@ -426,523 +442,550 @@ msgstr "%s açılabildi\n" msgid "%F%P: invalid BFD target `%s'\n" msgstr "%F%P: hatalı BFD hedefi `%s'\n" -#: ldfile.c:137 +#: ldfile.c:142 msgid "%P: skipping incompatible %s when searching for %s\n" msgstr "%1$P: %3$s için arama yapılırken uyumsuz %2$s atlandı\n" -#: ldfile.c:229 +#: ldfile.c:234 msgid "%F%P: cannot open %s for %s: %E\n" msgstr "%1$F%2$P: %4$s için %3$s açılamadı: %5$E\n" -#: ldfile.c:232 +#: ldfile.c:237 msgid "%F%P: cannot open %s: %E\n" msgstr "%F%P: %s açılamadı: %E\n" -#: ldfile.c:262 +#: ldfile.c:267 msgid "%F%P: cannot find %s\n" msgstr "%F%P: %s bulunamadı\n" -#: ldfile.c:281 ldfile.c:297 +#: ldfile.c:286 ldfile.c:302 #, c-format msgid "cannot find script file %s\n" msgstr "%s betik dosyası bulunamadı\n" -#: ldfile.c:283 ldfile.c:299 +#: ldfile.c:288 ldfile.c:304 #, c-format msgid "opened script file %s\n" msgstr "%s betik dosyası açıldı\n" -#: ldfile.c:348 +#: ldfile.c:353 msgid "%P%F: cannot open linker script file %s: %E\n" msgstr "%P%F: %s baÄŸlayıcı betik dosyası açılamadı: %E\n" -#: ldfile.c:386 +#: ldfile.c:391 msgid "%P%F: unknown architecture: %s\n" msgstr "%P%F: bilinmeyen platform: %s\n" -#: ldfile.c:402 +#: ldfile.c:407 msgid "%P%F: target architecture respecified\n" msgstr "%P%F: hedef platform yeniden belirtilmiÅŸ\n" -#: ldfile.c:456 +#: ldfile.c:461 msgid "%P%F: cannot represent machine `%s'\n" msgstr "%P%F: `%s' makinası gösterilemiyor\n" -#: ldlang.c:771 -msgid "\nMemory Configuration\n\n" -msgstr "\nBellek Ayarları\n\n" +#: ldlang.c:784 +msgid "" +"\n" +"Memory Configuration\n" +"\n" +msgstr "" +"\n" +"Bellek Ayarları\n" +"\n" -#: ldlang.c:773 +#: ldlang.c:786 msgid "Name" msgstr "Ä°sim" -#: ldlang.c:773 +#: ldlang.c:786 msgid "Origin" msgstr "Orijin" -#: ldlang.c:773 +#: ldlang.c:786 msgid "Length" msgstr "Uzunluk" -#: ldlang.c:773 +#: ldlang.c:786 msgid "Attributes" msgstr "Özellikler" -#: ldlang.c:815 -msgid "\nLinker script and memory map\n\n" -msgstr "\nBaÄŸlayıcı betiÄŸi ve bellek eÅŸlemesi\n\n" +#: ldlang.c:828 +msgid "" +"\n" +"Linker script and memory map\n" +"\n" +msgstr "" +"\n" +"BaÄŸlayıcı betiÄŸi ve bellek eÅŸlemesi\n" +"\n" -#: ldlang.c:832 +#: ldlang.c:845 msgid "%P%F: Illegal use of `%s' section\n" msgstr "%P%F: `%s' bölümünün geçersiz kullanımı\n" -#: ldlang.c:842 +#: ldlang.c:855 msgid "%P%F: output format %s cannot represent section called %s\n" msgstr "%P%F: %s çıktı biçemi %s adındaki bölümü temsil edemez\n" -#: ldlang.c:1004 +#: ldlang.c:1016 msgid "%P: %B: warning: ignoring duplicate section `%s'\n" msgstr "%P: %B: uyarı: birden fazla tekrar edilmiÅŸ `%s' bölümü yoksayıldı\n" -#: ldlang.c:1007 +#: ldlang.c:1019 msgid "%P: %B: warning: ignoring duplicate `%s' section symbol `%s'\n" msgstr "%P: %B: uyarı: birden fazla tekrar edilmiÅŸ `%s' bölümü `%s' sembolü yoksayıldı\n" -#: ldlang.c:1021 +#: ldlang.c:1033 msgid "%P: %B: warning: duplicate section `%s' has different size\n" msgstr "%P: %B: uyarı: birden fazla tekrar edilmiÅŸ `%s' bölümünün boyutu farklı\n" -#: ldlang.c:1069 +#: ldlang.c:1084 msgid "%P%F: Failed to create hash table\n" msgstr "%P%F: Hash tablosu oluÅŸturulamadı\n" -#: ldlang.c:1484 +#: ldlang.c:1503 msgid "%B: file not recognized: %E\n" msgstr "%B: Bilinmeyen dosya: %E\n" -#: ldlang.c:1485 +#: ldlang.c:1504 msgid "%B: matching formats:" msgstr "%B: eÅŸleÅŸen biçemler:" -#: ldlang.c:1492 +#: ldlang.c:1511 msgid "%F%B: file not recognized: %E\n" msgstr "%F%B: bilinmeyen dosya: %E\n" -#: ldlang.c:1548 +#: ldlang.c:1567 msgid "%F%B: member %B in archive is not an object\n" msgstr "%F%B: arÅŸivdeki %B nesnesi nesne deÄŸil\n" -#: ldlang.c:1559 ldlang.c:1573 +#: ldlang.c:1578 ldlang.c:1592 msgid "%F%B: could not read symbols: %E\n" msgstr "%F%B: semboller okunamadı: %E\n" -#: ldlang.c:1834 +#: ldlang.c:1853 msgid "%P: warning: could not find any targets that match endianness requirement\n" msgstr "%P: uyarı: küçük/büyük sonlu gerekliliÄŸini karşılayan hedef bulunamadı\n" -#: ldlang.c:1847 +#: ldlang.c:1866 msgid "%P%F: target %s not found\n" msgstr "%P%F: %s hedefi bulunamadı\n" -#: ldlang.c:1849 +#: ldlang.c:1868 msgid "%P%F: cannot open output file %s: %E\n" msgstr "%P%F: %s çıktı dosyası açılamadı: %E\n" -#: ldlang.c:1859 +#: ldlang.c:1878 msgid "%P%F:%s: can not make object file: %E\n" msgstr "%P%F:%s: nesne dosyası oluÅŸturulamadı: %E\n" -#: ldlang.c:1863 +#: ldlang.c:1882 msgid "%P%F:%s: can not set architecture: %E\n" msgstr "%P%F:%s: platform türü atanamadı: %E\n" -#: ldlang.c:1867 +#: ldlang.c:1886 msgid "%P%F: can not create link hash table: %E\n" msgstr "%P%F: baÄŸ hash tablosu oluÅŸturulamadı: %E\n" -#: ldlang.c:2169 +#: ldlang.c:2235 msgid " load address 0x%V" msgstr " yükleme adresi 0x%V" -#: ldlang.c:2299 +#: ldlang.c:2375 msgid "%W (size before relaxing)\n" msgstr "%W (gevÅŸetmeden önceki boyut)\n" -#: ldlang.c:2381 +#: ldlang.c:2462 #, c-format msgid "Address of section %s set to " msgstr "%s bölümünün adresi atanmış" -#: ldlang.c:2535 +#: ldlang.c:2623 #, c-format msgid "Fail with %d\n" msgstr "%d hatası verildi\n" -#: ldlang.c:2777 +#: ldlang.c:2868 msgid "%X%P: section %s [%V -> %V] overlaps section %s [%V -> %V]\n" msgstr "%X%P: %s bölümü [%V -> %V] %s bölümü [%V -> %V] ile örtüşüyor\n" -#: ldlang.c:2806 +#: ldlang.c:2897 msgid "%X%P: address 0x%v of %B section %s is not within region %s\n" msgstr "%1$X%2$P: %5$s %4$B bölümünde 0x%3$v adresi %6$s kapsamı içinde deÄŸil\n" -#: ldlang.c:2814 +#: ldlang.c:2905 msgid "%X%P: region %s is full (%B section %s)\n" msgstr "%X%P: %s bölümü dolu (%B %s bölümü)\n" -#: ldlang.c:2864 +#: ldlang.c:2955 msgid "%P%X: Internal error on COFF shared library section %s\n" msgstr "%P%X: %s COFF paylaşımlı kitaplık bölümünde iç hata\n" -#: ldlang.c:2906 +#: ldlang.c:2999 msgid "%P: warning: no memory region specified for section `%s'\n" msgstr "%P: uyarı: `%s' bölümü için bellek bölümü belirtilmemiÅŸ\n" -#: ldlang.c:2921 +#: ldlang.c:3014 msgid "%P: warning: changing start of section %s by %u bytes\n" msgstr "%P: uyarı: %s bölümünün baÅŸlangıcı %u bayt deÄŸiÅŸtirildi\n" -#: ldlang.c:2935 +#: ldlang.c:3028 msgid "%F%S: non constant address expression for section %s\n" msgstr "%F%S: %s bölümü için sabit olmayan adres açılımı\n" -#: ldlang.c:2999 -msgid "%X%P: use an absolute load address or a load memory region, not both\n" -msgstr "%X%P: kesin bir yükleme adresi ve bellek bölümü yüklemek aynı anda kullanılamaz\n" - -#: ldlang.c:3114 +#: ldlang.c:3203 msgid "%P%F: can't relax section: %E\n" msgstr "%P%F: bölüm gevÅŸetilemedi: %E\n" -#: ldlang.c:3273 +#: ldlang.c:3398 msgid "%F%P: invalid data statement\n" msgstr "%F%P: geçersiz veri deyimi\n" -#: ldlang.c:3310 +#: ldlang.c:3435 msgid "%F%P: invalid reloc statement\n" msgstr "%F%P: geçersiz yerdeÄŸiÅŸim deyimi\n" -#: ldlang.c:3448 +#: ldlang.c:3574 msgid "%P%F:%s: can't set start address\n" msgstr "%P%F:%s: baÅŸlangıç adresi atanamadı\n" -#: ldlang.c:3461 ldlang.c:3478 +#: ldlang.c:3587 ldlang.c:3605 msgid "%P%F: can't set start address\n" msgstr "%P%F: baÅŸlangıç adresi atanamadı\n" -#: ldlang.c:3473 +#: ldlang.c:3599 msgid "%P: warning: cannot find entry symbol %s; defaulting to %V\n" msgstr "%P: uyarı: giriÅŸ sembolü %s bulunamadı; öntanımlı %V kullanılıyor\n" -#: ldlang.c:3483 +#: ldlang.c:3610 msgid "%P: warning: cannot find entry symbol %s; not setting start address\n" msgstr "%P: uyarı: giriÅŸ sembolü %s bulunamadı; baÅŸlangıç adresi atanmıyor\n" -#: ldlang.c:3525 -msgid "%P: warning: %s architecture of input file `%B' is incompatible with %s output\n" -msgstr "%1$P: uyarı: `%3$B' girdi dosyasının platformu %2$s, %4$s çıktısıyla uyumlu deÄŸil\n" - -#: ldlang.c:3538 +#: ldlang.c:3660 msgid "%P%F: Relocatable linking with relocations from format %s (%B) to format %s (%B) is not supported\n" msgstr "%P%F: %s (%B) biçeminden yerdeÄŸiÅŸimlerle %s (%B) biçemine yerdeÄŸiÅŸtirebilen baÄŸlanma desteklenmiyor\n" -#: ldlang.c:3558 +#: ldlang.c:3669 +msgid "%P: warning: %s architecture of input file `%B' is incompatible with %s output\n" +msgstr "%1$P: uyarı: `%3$B' girdi dosyasının platformu %2$s, %4$s çıktısıyla uyumlu deÄŸil\n" + +#: ldlang.c:3690 msgid "%E%X: failed to merge target specific data of file %B\n" msgstr "%E%X: %B dosyasındaki hedefe özel veri birleÅŸtirilemedi\n" -#: ldlang.c:3647 -msgid "\nAllocating common symbols\n" -msgstr "\nOrtak sembollere bellek ayrılıyor\n" - -#: ldlang.c:3648 -msgid "Common symbol size file\n\n" -msgstr "Ortak sembol boy dosya\n\n" +#: ldlang.c:3779 +msgid "" +"\n" +"Allocating common symbols\n" +msgstr "" +"\n" +"Ortak sembollere bellek ayrılıyor\n" + +#: ldlang.c:3780 +msgid "" +"Common symbol size file\n" +"\n" +msgstr "" +"Ortak sembol boy dosya\n" +"\n" #. This message happens when using the #. svr3.ifile linker script, so I have #. disabled it. -#: ldlang.c:3730 +#: ldlang.c:3858 msgid "%P: no [COMMON] command, defaulting to .bss\n" msgstr "%P: [ORTAK] komutu yok, öntanımlı .bss kullanılıyor\n" -#: ldlang.c:3789 +#: ldlang.c:3917 msgid "%P%F: invalid syntax in flags\n" msgstr "%P%F: bayraklarda geçersiz sözdizimi\n" -#: ldlang.c:4390 +#: ldlang.c:4532 msgid "%P%Fmultiple STARTUP files\n" msgstr "%P%Fbirden fazla BAÅžLANGIÇ dosyası\n" -#: ldlang.c:4658 +#: ldlang.c:4575 +msgid "%X%P:%S: section has both a load address and a load region\n" +msgstr "%X%P:%S: bölümün hem bir yükleme adresi, hem de bir yükleme bölgesi var\n" + +#: ldlang.c:4825 msgid "%F%P: bfd_record_phdr failed: %E\n" msgstr "%F%P: bfd_record_phdr baÅŸarısız: %E\n" -#: ldlang.c:4677 +#: ldlang.c:4844 msgid "%X%P: section `%s' assigned to non-existent phdr `%s'\n" msgstr "%X%P: `%s' bölümü var olmayan phdr `%s'a atanmış\n" -#: ldlang.c:5003 +#: ldlang.c:5143 msgid "%X%P: unknown language `%s' in version information\n" msgstr "%X%P: sürüm bilgisinde bilinmeyen `%s' dili\n" -#: ldlang.c:5055 +#: ldlang.c:5195 msgid "%X%P: anonymous version tag cannot be combined with other version tags\n" msgstr "%X%P: anonim sürüm etiketi diÄŸer sürüm etiketleri ile birleÅŸtirilemez\n" -#: ldlang.c:5062 +#: ldlang.c:5202 msgid "%X%P: duplicate version tag `%s'\n" msgstr "%X%P: birden fazla sürüm etiketi `%s'\n" -#: ldlang.c:5075 ldlang.c:5088 +#: ldlang.c:5215 ldlang.c:5228 msgid "%X%P: duplicate expression `%s' in version information\n" msgstr "%X%P: sürüm bilgisinde birden fazla `%s' ifadesi\n" -#: ldlang.c:5130 +#: ldlang.c:5270 msgid "%X%P: unable to find version dependency `%s'\n" msgstr "%X%P: sürüm bağımlılığı `%s' karşılanamadı\n" -#: ldlang.c:5152 +#: ldlang.c:5292 msgid "%X%P: unable to read .exports section contents\n" msgstr "%X%P: .exports bölümünün içeriÄŸi okunamadı\n" -#: ldmain.c:195 +#: ldmain.c:198 msgid "%X%P: can't set BFD default target to `%s': %E\n" msgstr "%X%P: BFD öntanımlı hedefi `%s' olarak atanamadı: %E\n" -#: ldmain.c:284 +#: ldmain.c:290 msgid "%P%F: -r and --mpc860c0 may not be used together\n" msgstr "%P%F: -r ve --mpc860c0 beraber kullanılamaz\n" -#: ldmain.c:286 +#: ldmain.c:292 msgid "%P%F: --relax and -r may not be used together\n" msgstr "%P%F: --relax ve -r beraber kullanılamaz\n" -#: ldmain.c:288 +#: ldmain.c:294 msgid "%P%F: -r and -shared may not be used together\n" msgstr "%P%F: -r ve -shared beraber kullanılamaz\n" -#: ldmain.c:294 +#: ldmain.c:300 msgid "%P%F: -F may not be used without -shared\n" msgstr "%P%F: -F, -shared olmaksızın kullanılamaz\n" -#: ldmain.c:296 +#: ldmain.c:302 msgid "%P%F: -f may not be used without -shared\n" msgstr "%P%F: -f, -shared olmaksızın kullanılamaz\n" -#: ldmain.c:334 -#, c-format -msgid "using %s linker script:\n" -msgstr "iç baÄŸlayıcı betiÄŸi %s kullanılıyor:\n" +#: ldmain.c:341 +msgid "using external linker script:" +msgstr "dış baÄŸlayıcı betiÄŸi kullanılıyor:" + +#: ldmain.c:343 +msgid "using internal linker script:" +msgstr "iç baÄŸlayıcı betiÄŸi kullanılıyor:" -#: ldmain.c:369 +#: ldmain.c:377 msgid "%P%F: no input files\n" msgstr "%P%F: girdi dosyası yok\n" -#: ldmain.c:374 +#: ldmain.c:382 msgid "%P: mode %s\n" msgstr "%P: %s kipi\n" -#: ldmain.c:391 +#: ldmain.c:399 msgid "%P%F: cannot open map file %s: %E\n" msgstr "%P%F: EÅŸleme dosyası %s açılamadı: %E\n" -#: ldmain.c:438 +#: ldmain.c:432 msgid "%P: link errors found, deleting executable `%s'\n" msgstr "%P: baÄŸlama hataları bulundu, `%s' uygulaması siliniyor\n" -#: ldmain.c:449 +#: ldmain.c:443 msgid "%F%B: final close failed: %E\n" msgstr "%F%B: son kapatma baÅŸarısız: %E\n" -#: ldmain.c:473 +#: ldmain.c:467 msgid "%X%P: unable to open for source of copy `%s'\n" msgstr "%X%P: `%s' kopyasının kaynağı açılamadı\n" -#: ldmain.c:475 +#: ldmain.c:469 msgid "%X%P: unable to open for destination of copy `%s'\n" msgstr "%X%P: `%s' kopyası için hedef açılamadı\n" -#: ldmain.c:481 +#: ldmain.c:475 msgid "%P: Error writing file `%s'\n" msgstr "%P: `%s' dosyası yazılırken hata oluÅŸtu\n" -#: ldmain.c:487 pe-dll.c:1442 +#: ldmain.c:481 pe-dll.c:1463 #, c-format msgid "%P: Error closing file `%s'\n" msgstr "%P: `%s' dosyası kapatılırken hata oluÅŸtu\n" -#: ldmain.c:504 +#: ldmain.c:498 #, c-format msgid "%s: total time in link: %ld.%06ld\n" msgstr "%s: BaÄŸlanmada geçen toplam süre: %ld.%06ld\n" -#: ldmain.c:507 +#: ldmain.c:501 #, c-format msgid "%s: data size %ld\n" msgstr "%s: veri boyu %ld\n" -#: ldmain.c:548 +#: ldmain.c:542 msgid "%P%F: missing argument to -m\n" msgstr "%P%F: -m için argüman eksik\n" -#: ldmain.c:676 ldmain.c:697 ldmain.c:728 +#: ldmain.c:670 ldmain.c:691 ldmain.c:722 msgid "%P%F: bfd_hash_table_init failed: %E\n" msgstr "%P%F: bfd_hash_table_init baÅŸarısız: %E\n" -#: ldmain.c:681 ldmain.c:700 +#: ldmain.c:675 ldmain.c:694 msgid "%P%F: bfd_hash_lookup failed: %E\n" msgstr "%P%F: bfd_hash_lookup baÅŸarısız: %E\n" -#: ldmain.c:715 +#: ldmain.c:709 msgid "%X%P: error: duplicate retain-symbols-file\n" msgstr "%X%P: hata: duplicate retain-symbols-file\n" -#: ldmain.c:759 +#: ldmain.c:753 msgid "%P%F: bfd_hash_lookup for insertion failed: %E\n" msgstr "%P%F: yerleÅŸtirme için bfd_hash_lookup baÅŸarısız: %E\n" -#: ldmain.c:764 +#: ldmain.c:758 msgid "%P: `-retain-symbols-file' overrides `-s' and `-S'\n" msgstr "%P: `-retain-symbols-file' seçeneÄŸi `-s' and `-S' seçeneklerinin yerine geçer\n" -#: ldmain.c:840 -msgid "Archive member included because of file (symbol)\n\n" -msgstr "ArÅŸiv üyesi dosya yüzünden (sembol) içerildi\n\n" +#: ldmain.c:834 +msgid "" +"Archive member included because of file (symbol)\n" +"\n" +msgstr "" +"ArÅŸiv üyesi dosya yüzünden (sembol) içerildi\n" +"\n" -#: ldmain.c:911 +#: ldmain.c:905 msgid "%X%C: multiple definition of `%T'\n" msgstr "%X%C: `%T' için birden fazla tanım\n" -#: ldmain.c:914 +#: ldmain.c:908 msgid "%D: first defined here\n" msgstr "%D: ilk burada tanımlanmış\n" -#: ldmain.c:918 +#: ldmain.c:912 msgid "%P: Disabling relaxation: it will not work with multiple definitions\n" msgstr "%P: GevÅŸetme etkisizleÅŸtirildi: çoklu tanımlarla beraber çalışmaz\n" -#: ldmain.c:949 +#: ldmain.c:943 msgid "%B: warning: definition of `%T' overriding common\n" msgstr "%B: uyarı: `%T' tanımı genelin yerine geçiyor\n" -#: ldmain.c:952 +#: ldmain.c:946 msgid "%B: warning: common is here\n" msgstr "%B: uyarı: genel burada\n" -#: ldmain.c:959 +#: ldmain.c:953 msgid "%B: warning: common of `%T' overridden by definition\n" msgstr "%B: uyarı: tanım, `%T'nin genelinin yerine geçti\n" -#: ldmain.c:962 +#: ldmain.c:956 msgid "%B: warning: defined here\n" msgstr "%B: uyarı: burada tanımlanmış\n" -#: ldmain.c:969 +#: ldmain.c:963 msgid "%B: warning: common of `%T' overridden by larger common\n" msgstr "%B: uyarı: Daha büyük genel, `%T'nin genelinin yerine geçti\n" -#: ldmain.c:972 +#: ldmain.c:966 msgid "%B: warning: larger common is here\n" msgstr "%B: uyarı: daha büyük genel burada\n" -#: ldmain.c:976 +#: ldmain.c:970 msgid "%B: warning: common of `%T' overriding smaller common\n" msgstr "%B: uyarı: `%T'nin geneli daha küçük genelin yerine geçti\n" -#: ldmain.c:979 +#: ldmain.c:973 msgid "%B: warning: smaller common is here\n" msgstr "%B: uyarı: daha küçük genel burada\n" -#: ldmain.c:983 +#: ldmain.c:977 msgid "%B: warning: multiple common of `%T'\n" msgstr "%B: uyarı: `%T'nin birden fazla geneli var\n" -#: ldmain.c:985 +#: ldmain.c:979 msgid "%B: warning: previous common is here\n" msgstr "%B: uyarı: bir önceki genel burada\n" -#: ldmain.c:1006 ldmain.c:1045 +#: ldmain.c:1000 ldmain.c:1039 msgid "%P: warning: global constructor %s used\n" msgstr "%P: uyarı: evrensel kurucu %s kullanıldı\n" -#: ldmain.c:1055 +#: ldmain.c:1049 msgid "%P%F: BFD backend error: BFD_RELOC_CTOR unsupported\n" msgstr "%P%F: BFD arkayüz hatası: BFD_RELOC_CTOR desteklenmiyor\n" -#: ldmain.c:1239 +#: ldmain.c:1233 msgid "%F%P: bfd_hash_table_init failed: %E\n" msgstr "%F%P: bfd_hash_table_init baÅŸarısız: %E\n" -#: ldmain.c:1246 +#: ldmain.c:1240 msgid "%F%P: bfd_hash_lookup failed: %E\n" msgstr "%F%P: bfd_hash_lookup baÅŸarısız: %E\n" -#: ldmain.c:1266 +#: ldmain.c:1260 msgid "%C: undefined reference to `%T'\n" msgstr "%C: `%T'ye tanımsız baÅŸvuru\n" -#: ldmain.c:1272 +#: ldmain.c:1266 msgid "%D: more undefined references to `%T' follow\n" msgstr "%D: `%T'ye baÅŸka tanımsız baÅŸvurular aÅŸağıda\n" -#: ldmain.c:1279 +#: ldmain.c:1273 msgid "%B: undefined reference to `%T'\n" msgstr "%B: `%T'ye tanımsız baÅŸvuru\n" -#: ldmain.c:1285 +#: ldmain.c:1279 msgid "%B: more undefined references to `%T' follow\n" msgstr "%B: `%T'ye baÅŸka tanımsız baÅŸvurular aÅŸağıda\n" -#: ldmain.c:1305 ldmain.c:1326 ldmain.c:1345 +#: ldmain.c:1299 ldmain.c:1320 ldmain.c:1339 msgid "%P%X: generated" msgstr "%P%X: oluÅŸturuldu" -#: ldmain.c:1308 +#: ldmain.c:1302 msgid " relocation truncated to fit: %s %T" msgstr " yer deÄŸiÅŸim sığması için budandı: %s %T" -#: ldmain.c:1329 +#: ldmain.c:1323 #, c-format msgid "dangerous relocation: %s\n" msgstr "tehlikeli yerdeÄŸiÅŸim: %s\n" -#: ldmain.c:1348 +#: ldmain.c:1342 msgid " reloc refers to symbol `%T' which is not being output\n" msgstr " yer deÄŸiÅŸim, çıktılanmayan `%T' sembolüne referans veriyor\n" -#: ldmisc.c:176 +#: ldmisc.c:157 msgid "no symbol" msgstr "sembol yok" -#: ldmisc.c:240 +#: ldmisc.c:221 #, c-format msgid "built in linker script:%u" msgstr "yerleÅŸik baÄŸlayıcı betiÄŸi:%u" -#: ldmisc.c:290 ldmisc.c:294 +#: ldmisc.c:271 ldmisc.c:275 msgid "%B%F: could not read symbols\n" msgstr "%B%F: semboller okunamadı\n" #. We use abfd->filename in this initial line, #. in case filename is a .h file or something #. similarly unhelpful. -#: ldmisc.c:330 +#: ldmisc.c:311 msgid "%B: In function `%T':\n" msgstr "%B: `%T' Ä°ÅŸlevinde:\n" -#: ldmisc.c:439 +#: ldmisc.c:463 msgid "%F%P: internal error %s %d\n" msgstr "%F%P: iç hata %s %d\n" -#: ldmisc.c:489 +#: ldmisc.c:513 msgid "%P: internal error: aborting at %s line %d in %s\n" msgstr "%1$P: iç hata: %4$s içinde %3$d satırı %2$s'da durduruldu\n" -#: ldmisc.c:492 +#: ldmisc.c:516 msgid "%P: internal error: aborting at %s line %d\n" msgstr "%P: iç hata: %s'da, %d satırında durduruldu\n" -#: ldmisc.c:494 +#: ldmisc.c:518 msgid "%P%F: please report this bug\n" msgstr "%P%F: lütfen bu yazılım hatasını bildirin\n" @@ -953,8 +996,8 @@ msgid "GNU ld version %s\n" msgstr "GNU ld sürüm %s\n" #: ldver.c:42 -msgid "Copyright 2001 Free Software Foundation, Inc.\n" -msgstr "Telif Hakkı 2001 Free Software Foundation, Inc.\n" +msgid "Copyright 2002 Free Software Foundation, Inc.\n" +msgstr "Telif Hakkı 2002 Free Software Foundation, Inc.\n" #: ldver.c:43 msgid "" @@ -973,358 +1016,362 @@ msgstr " Desteklenen öykünümler:\n" msgid "%P%F: bfd_new_link_order failed\n" msgstr "%P%F: bfd_new_link_order baÅŸarısız\n" -#: ldwrite.c:321 +#: ldwrite.c:325 msgid "%F%P: clone section failed: %E\n" msgstr "%F%P: bölümü çoÄŸaltmak baÅŸarısız : %E\n" -#: ldwrite.c:360 +#: ldwrite.c:364 #, c-format msgid "%8x something else\n" msgstr "%8x baÅŸka bir ÅŸey\n" -#: ldwrite.c:543 +#: ldwrite.c:547 msgid "%F%P: final link failed: %E\n" msgstr "%F%P: son baÄŸlama baÅŸarısız: %E\n" -#: lexsup.c:175 lexsup.c:270 +#: lexsup.c:172 lexsup.c:267 msgid "KEYWORD" msgstr "ANAHTARSÖZ" -#: lexsup.c:175 +#: lexsup.c:172 msgid "Shared library control for HP/UX compatibility" msgstr "HP/UX uyumluluÄŸu için paylaşımlı kitaplık kontrolü" -#: lexsup.c:178 +#: lexsup.c:175 msgid "ARCH" msgstr "PLATFORM" -#: lexsup.c:178 +#: lexsup.c:175 msgid "Set architecture" msgstr "Platformu belirler" -#: lexsup.c:180 lexsup.c:337 +#: lexsup.c:177 lexsup.c:336 msgid "TARGET" msgstr "HEDEF" -#: lexsup.c:180 +#: lexsup.c:177 msgid "Specify target for following input files" msgstr "AÅŸağıdaki girdi dosyaları için hedef belirler" -#: lexsup.c:182 lexsup.c:223 lexsup.c:235 lexsup.c:244 lexsup.c:315 -#: lexsup.c:344 lexsup.c:384 +#: lexsup.c:179 lexsup.c:220 lexsup.c:232 lexsup.c:241 lexsup.c:312 +#: lexsup.c:343 lexsup.c:383 msgid "FILE" msgstr "DOSYA" -#: lexsup.c:182 +#: lexsup.c:179 msgid "Read MRI format linker script" msgstr "MRI biçeminde baÄŸlayıcı betiÄŸi okur" -#: lexsup.c:184 +#: lexsup.c:181 msgid "Force common symbols to be defined" msgstr "genel sembollerin tanımlı olmasını ÅŸart koÅŸar" -#: lexsup.c:188 lexsup.c:374 lexsup.c:376 lexsup.c:378 +#: lexsup.c:185 lexsup.c:373 lexsup.c:375 lexsup.c:377 msgid "ADDRESS" msgstr "ADRES" -#: lexsup.c:188 +#: lexsup.c:185 msgid "Set start address" msgstr "BaÅŸlangıç adresini atar" -#: lexsup.c:190 +#: lexsup.c:187 msgid "Export all dynamic symbols" msgstr "Bütün dinamik sembolleri ihraç eder" -#: lexsup.c:192 +#: lexsup.c:189 msgid "Link big-endian objects" msgstr "Büyük sonlu nesneleri baÄŸlar" -#: lexsup.c:194 +#: lexsup.c:191 msgid "Link little-endian objects" msgstr "Küçük-sonlu nesneleri baÄŸlar" -#: lexsup.c:196 lexsup.c:199 +#: lexsup.c:193 lexsup.c:196 msgid "SHLIB" msgstr "SHLIB" -#: lexsup.c:196 +#: lexsup.c:193 msgid "Auxiliary filter for shared object symbol table" msgstr "Paylaşımlı nesne sembol tablosu için ikincil filtre" -#: lexsup.c:199 +#: lexsup.c:196 msgid "Filter for shared object symbol table" msgstr "Paylaşımlı nesne sembol tablosu için filtre" -#: lexsup.c:201 +#: lexsup.c:198 msgid "Ignored" msgstr "Gözardı edilmiÅŸ" -#: lexsup.c:203 +#: lexsup.c:200 msgid "SIZE" msgstr "BOYUT" -#: lexsup.c:203 +#: lexsup.c:200 msgid "Small data size (if no size, same as --shared)" msgstr "Küçük veri boyu (eÄŸer boy belirtilmemiÅŸse, --shared ile aynı)" -#: lexsup.c:206 +#: lexsup.c:203 msgid "FILENAME" msgstr "DOSYAÄ°SMÄ°" -#: lexsup.c:206 +#: lexsup.c:203 msgid "Set internal name of shared library" msgstr "Paylaşımlı kitaplığın iç adını belirler" -#: lexsup.c:208 +#: lexsup.c:205 msgid "PROGRAM" msgstr "YAZILIM" -#: lexsup.c:208 +#: lexsup.c:205 msgid "Set PROGRAM as the dynamic linker to use" msgstr "YAZILIM'ı kullanılacak dinamik baÄŸlayıcı olarak atar" -#: lexsup.c:210 +#: lexsup.c:207 msgid "LIBNAME" msgstr "KÄ°TAPLIKADI" -#: lexsup.c:210 +#: lexsup.c:207 msgid "Search for library LIBNAME" msgstr "KÄ°TAPLIKADI kitaplığını arar" -#: lexsup.c:212 +#: lexsup.c:209 msgid "DIRECTORY" msgstr "DÄ°ZÄ°N" -#: lexsup.c:212 +#: lexsup.c:209 msgid "Add DIRECTORY to library search path" msgstr "DÄ°ZÄ°N'i kitaplık arama yoluna ekler" -#: lexsup.c:214 +#: lexsup.c:211 msgid "EMULATION" msgstr "ÖYKÃœNÃœM" -#: lexsup.c:214 +#: lexsup.c:211 msgid "Set emulation" msgstr "Öykünümü belirler" -#: lexsup.c:216 +#: lexsup.c:213 msgid "Print map file on standard output" msgstr "EÅŸleme dosyasını standart çıktıya yazdırır" -#: lexsup.c:218 +#: lexsup.c:215 msgid "Do not page align data" msgstr "Veriyi sayfaya hizalamaz" -#: lexsup.c:220 +#: lexsup.c:217 msgid "Do not page align data, do not make text readonly" msgstr "Veriyi sayfaya hizalamaz, metni saltokunur yapmaz" -#: lexsup.c:223 +#: lexsup.c:220 msgid "Set output file name" msgstr "Çıktı dosyası adını belirler" -#: lexsup.c:225 +#: lexsup.c:222 msgid "Optimize output file" msgstr "Çıktı dosyasını eniyiler" -#: lexsup.c:227 +#: lexsup.c:224 msgid "Ignored for SVR4 compatibility" msgstr "SVR4 uyumluluÄŸu için yoksayıldı" -#: lexsup.c:231 +#: lexsup.c:228 msgid "Generate relocateable output" msgstr "YerdeÄŸiÅŸimli çıktı oluÅŸturur" -#: lexsup.c:235 +#: lexsup.c:232 msgid "Just link symbols (if directory, same as --rpath)" msgstr "Yalnız sembolleri baÄŸlar (eÄŸer dizin ise, --rpath ile aynı)" -#: lexsup.c:238 +#: lexsup.c:235 msgid "Strip all symbols" msgstr "Bütün sembolleri soyar" -#: lexsup.c:240 +#: lexsup.c:237 msgid "Strip debugging symbols" msgstr "Hata ayıklama sembollerini soyar" -#: lexsup.c:242 +#: lexsup.c:239 msgid "Trace file opens" msgstr "Ä°zleme dosyası açılır" -#: lexsup.c:244 +#: lexsup.c:241 msgid "Read linker script" msgstr "BaÄŸlama betiÄŸi okunur" -#: lexsup.c:246 lexsup.c:262 lexsup.c:301 lexsup.c:313 lexsup.c:368 -#: lexsup.c:387 lexsup.c:407 +#: lexsup.c:243 lexsup.c:259 lexsup.c:298 lexsup.c:310 lexsup.c:367 +#: lexsup.c:386 lexsup.c:406 msgid "SYMBOL" msgstr "SEMBOL" -#: lexsup.c:246 +#: lexsup.c:243 msgid "Start with undefined reference to SYMBOL" msgstr "SEMBOL'e tanımsız baÅŸvuru ile baÅŸlıyor" -#: lexsup.c:248 +#: lexsup.c:245 msgid "[=SECTION]" msgstr "[=BÖLÃœM]" -#: lexsup.c:248 +#: lexsup.c:245 msgid "Don't merge input [SECTION | orphan] sections" msgstr "Girdide [BÖLÃœM | öksüz] bölümlerini katıştırmaz" -#: lexsup.c:250 +#: lexsup.c:247 msgid "Build global constructor/destructor tables" msgstr "Evrensel kurucu/serbestleÅŸtirici tabloları hazırlar" -#: lexsup.c:252 +#: lexsup.c:249 msgid "Print version information" msgstr "Sürüm bilgisini gösterir" -#: lexsup.c:254 +#: lexsup.c:251 msgid "Print version and emulation information" msgstr "Sürüm ve öykünüm bilgisini gösterir" -#: lexsup.c:256 +#: lexsup.c:253 msgid "Discard all local symbols" msgstr "Bütün yerel sembolleri siler" -#: lexsup.c:258 +#: lexsup.c:255 msgid "Discard temporary local symbols (default)" msgstr "Geçici yerel sembolleri siler (öntanımlı)" -#: lexsup.c:260 +#: lexsup.c:257 msgid "Don't discard any local symbols" msgstr "Hiçbir yerel sembolü silmez" -#: lexsup.c:262 +#: lexsup.c:259 msgid "Trace mentions of SYMBOL" msgstr "SEMBOL'ün geçtiÄŸi yerleri takip eder" -#: lexsup.c:264 lexsup.c:346 lexsup.c:348 +#: lexsup.c:261 lexsup.c:345 lexsup.c:347 msgid "PATH" msgstr "YOL" -#: lexsup.c:264 +#: lexsup.c:261 msgid "Default search path for Solaris compatibility" msgstr "Solaris uyumluluÄŸu için öntanımlı arama yolu" -#: lexsup.c:266 +#: lexsup.c:263 msgid "Start a group" msgstr "Grup baÅŸlatır" -#: lexsup.c:268 +#: lexsup.c:265 msgid "End a group" msgstr "Grup sonlandırır" -#: lexsup.c:270 +#: lexsup.c:267 msgid "Ignored for SunOS compatibility" msgstr "SunOS uyumluluÄŸu için yoksayıldı" -#: lexsup.c:272 +#: lexsup.c:269 msgid "Link against shared libraries" msgstr "Paylaşımlı kitaplıklara baÄŸlanır" -#: lexsup.c:278 +#: lexsup.c:275 msgid "Do not link against shared libraries" msgstr "Paylaşımlı kitaplıklara baÄŸlanmaz" -#: lexsup.c:286 +#: lexsup.c:283 msgid "Bind global references locally" msgstr "Evrensel baÅŸvuruları yerel baÄŸlar" -#: lexsup.c:288 +#: lexsup.c:285 msgid "Check section addresses for overlaps (default)" msgstr "(öntanımlı) Bölüm adreslerini örtüşme için kontrol eder" -#: lexsup.c:290 +#: lexsup.c:287 msgid "Do not check section addresses for overlaps" msgstr "Bölüm adreslerini örtüşme için kontrol etmez" -#: lexsup.c:293 +#: lexsup.c:290 msgid "Output cross reference table" msgstr "Çapraz baÅŸvuru tablosunu çıktılar" -#: lexsup.c:295 +#: lexsup.c:292 msgid "SYMBOL=EXPRESSION" msgstr "SEMBOL=Ä°FADE" -#: lexsup.c:295 +#: lexsup.c:292 msgid "Define a symbol" msgstr "Sembol tanımlar" -#: lexsup.c:297 +#: lexsup.c:294 msgid "[=STYLE]" msgstr "[=TARZ]" -#: lexsup.c:297 +#: lexsup.c:294 msgid "Demangle symbol names [using STYLE]" msgstr "[TARZ kullanarak] sembol isimlerini düzeltir" -#: lexsup.c:299 +#: lexsup.c:296 msgid "Generate embedded relocs" msgstr "Gömülü yerdeÄŸiÅŸimler oluÅŸturur" -#: lexsup.c:301 +#: lexsup.c:298 msgid "Call SYMBOL at unload-time" msgstr "BoÅŸaltma zamanında SEMBOL'ü çağırır" -#: lexsup.c:303 +#: lexsup.c:300 msgid "Force generation of file with .exe suffix" msgstr "Dosyanın .exe soneki ile oluÅŸturulmasını saÄŸlar" -#: lexsup.c:305 +#: lexsup.c:302 msgid "Remove unused sections (on some targets)" msgstr "(Bazı hedeflerde) kullanılmayan bölümleri siler" -#: lexsup.c:308 +#: lexsup.c:305 msgid "Don't remove unused sections (default)" msgstr "(öntanımlı) Kullanılmayan bölümleri silmez" -#: lexsup.c:311 +#: lexsup.c:308 msgid "Print option help" msgstr "Seçenek yardımını gösterir" -#: lexsup.c:313 +#: lexsup.c:310 msgid "Call SYMBOL at load-time" msgstr "Yükleme sırasında SEMBOL'ü çağırır" -#: lexsup.c:315 +#: lexsup.c:312 msgid "Write a map file" msgstr "EÅŸleme dosyası yazdırır" -#: lexsup.c:317 +#: lexsup.c:314 msgid "Do not define Common storage" msgstr "Ortak depo'yu tanımlamaz" -#: lexsup.c:319 +#: lexsup.c:316 msgid "Do not demangle symbol names" msgstr "Sembol isimlerini düzeltmez" -#: lexsup.c:321 +#: lexsup.c:318 msgid "Use less memory and more disk I/O" msgstr "Daha az bellek ve daha fazla disk I/O kullanır" -#: lexsup.c:323 +#: lexsup.c:320 msgid "Allow no undefined symbols" msgstr "Tanımsız sembollere izin vermez" -#: lexsup.c:325 +#: lexsup.c:322 msgid "Allow undefined symbols in shared objects" msgstr "Paylaşımlı nesnelerde tanımsız sembollere izin verir" -#: lexsup.c:327 +#: lexsup.c:324 +msgid "Allow multiple definitions" +msgstr "Birden fazla tanıma izin verir" + +#: lexsup.c:326 msgid "Don't warn about mismatched input files" msgstr "EÅŸleÅŸmeyen girdi dosyaları hakkında uyarmaz" -#: lexsup.c:329 +#: lexsup.c:328 msgid "Turn off --whole-archive" msgstr "--whole-archive seçeneÄŸini etkisizleÅŸtirir" -#: lexsup.c:331 +#: lexsup.c:330 msgid "Create an output file even if errors occur" msgstr "Hatalar oluÅŸsa bile bir çıktı dosyası oluÅŸturur" -#: lexsup.c:335 +#: lexsup.c:334 msgid "" "Only use library directories specified on\n" "\t\t\t\tthe command line" @@ -1332,107 +1379,107 @@ msgstr "" "Yalnızca komut satırında belirtilen\n" "\t\t\t\tkitaplık dizinlerini kullanır" -#: lexsup.c:337 +#: lexsup.c:336 msgid "Specify target of output file" msgstr "Çıktı dosyasının hedefini belirler" -#: lexsup.c:339 +#: lexsup.c:338 msgid "Ignored for Linux compatibility" msgstr "Linux uyumluluÄŸu için yoksayıldı" -#: lexsup.c:341 +#: lexsup.c:340 msgid "Relax branches on certain targets" msgstr "Bazı hedeflerde dalları gevÅŸetir" -#: lexsup.c:344 +#: lexsup.c:343 msgid "Keep only symbols listed in FILE" msgstr "Yalnızca DOSYA'da belirtilen sembolleri tutar" -#: lexsup.c:346 +#: lexsup.c:345 msgid "Set runtime shared library search path" msgstr "Çalışma zamanı paylaşımlı kitaplık arama yolunu belirler" -#: lexsup.c:348 +#: lexsup.c:347 msgid "Set link time shared library search path" msgstr "BaÄŸlama zamanı paylaşımlı kitaplık arama yolunu belirler" -#: lexsup.c:350 +#: lexsup.c:349 msgid "Create a shared library" msgstr "Paylaşımlı kitaplık oluÅŸturur" -#: lexsup.c:354 +#: lexsup.c:353 msgid "Sort common symbols by size" msgstr "Ortak sembolleri boyuta göre sıralar" -#: lexsup.c:358 +#: lexsup.c:357 msgid "COUNT" msgstr "SAYI" -#: lexsup.c:358 +#: lexsup.c:357 msgid "How many tags to reserve in .dynamic section" msgstr "Bir .dynamic bölümde tutulacak etiket sayısı" -#: lexsup.c:360 +#: lexsup.c:359 msgid "[=SIZE]" msgstr "[=BOYUT]" -#: lexsup.c:360 +#: lexsup.c:359 msgid "Split output sections every SIZE octets" msgstr "Her BOYUT sekizliÄŸinde çıktı bölümlerini ayırır" -#: lexsup.c:362 +#: lexsup.c:361 msgid "[=COUNT]" msgstr "[=SAYI]" -#: lexsup.c:362 +#: lexsup.c:361 msgid "Split output sections every COUNT relocs" msgstr "Her SAYI yerdeÄŸiÅŸiminde çıktı bölümlerini ayırır" -#: lexsup.c:364 +#: lexsup.c:363 msgid "Print memory usage statistics" msgstr "Bellek kullanım istatistiklerini gösterir" -#: lexsup.c:366 +#: lexsup.c:365 msgid "Display target specific options" msgstr "Hedefe özel seçenekleri gösterir" -#: lexsup.c:368 +#: lexsup.c:367 msgid "Do task level linking" msgstr "Görev seviyesinde baÄŸlama yapar" -#: lexsup.c:370 +#: lexsup.c:369 msgid "Use same format as native linker" msgstr "Yerel baÄŸlayıcı ile aynı biçemi kullanır" -#: lexsup.c:372 +#: lexsup.c:371 msgid "SECTION=ADDRESS" msgstr "BÖLÃœM=ADRES" -#: lexsup.c:372 +#: lexsup.c:371 msgid "Set address of named section" msgstr "Ä°simli bölümün adresini belirler" -#: lexsup.c:374 +#: lexsup.c:373 msgid "Set address of .bss section" msgstr ".bss bölümünün adresini belirler" -#: lexsup.c:376 +#: lexsup.c:375 msgid "Set address of .data section" msgstr ".data bölümünün adresini belirler" -#: lexsup.c:378 +#: lexsup.c:377 msgid "Set address of .text section" msgstr ".text bölümünün adresini belirler" -#: lexsup.c:380 +#: lexsup.c:379 msgid "Output lots of information during link" msgstr "BaÄŸlama esnasında ek bilgi gösterir" -#: lexsup.c:384 +#: lexsup.c:383 msgid "Read version information script" msgstr "Sürüm bilgisi betiÄŸini okur" -#: lexsup.c:387 +#: lexsup.c:386 msgid "" "Take export symbols list from .exports, using\n" "\t\t\t\tSYMBOL as the version." @@ -1440,43 +1487,43 @@ msgstr "" "Ä°hraç sembolleri listesini .exports'dan alır, sürüm olarak\n" "\t\t\t\tSEMBOL deÄŸerini kullanır." -#: lexsup.c:390 +#: lexsup.c:389 msgid "Warn about duplicate common symbols" msgstr "Tekrarlanmış ortak semboller hakkında uyarı verir" -#: lexsup.c:392 +#: lexsup.c:391 msgid "Warn if global constructors/destructors are seen" msgstr "Evrensel kurucu/serbestleÅŸtiriciler bulunursa uyarı verir" -#: lexsup.c:395 +#: lexsup.c:394 msgid "Warn if the multiple GP values are used" msgstr "Çoklu GP deÄŸerleri kullanılırsa uyarı verir" -#: lexsup.c:397 +#: lexsup.c:396 msgid "Warn only once per undefined symbol" msgstr "Her tanımsız sembol için bir defa uyarı verir" -#: lexsup.c:399 +#: lexsup.c:398 msgid "Warn if start of section changes due to alignment" msgstr "Hizalama sebebi ile bölüm baÅŸlangıcı deÄŸiÅŸirse uyarı verir" -#: lexsup.c:402 +#: lexsup.c:401 msgid "Treat warnings as errors" msgstr "Uyarıları hata olarak iÅŸler" -#: lexsup.c:405 +#: lexsup.c:404 msgid "Include all objects from following archives" msgstr "AÅŸağıdaki arÅŸivlerdeki tüm nesneleri içerir" -#: lexsup.c:407 +#: lexsup.c:406 msgid "Use wrapper functions for SYMBOL" msgstr "SEMBOL için sarmalama iÅŸlevleri kullanır" -#: lexsup.c:409 +#: lexsup.c:408 msgid "[=WORDS]" msgstr "[=SÖZCÃœKLER]" -#: lexsup.c:409 +#: lexsup.c:408 msgid "" "Modify problematic branches in last WORDS (1-10,\n" "\t\t\t\tdefault 5) words of a page" @@ -1484,27 +1531,27 @@ msgstr "" "Bir sayfanın son SÖZCÃœKLER sözcüklerindeki (1-10,\n" "\t\t\t\töntanımlı 5) problemli dalları deÄŸiÅŸtirir" -#: lexsup.c:575 +#: lexsup.c:574 msgid "%P: unrecognized option '%s'\n" msgstr "%P: bilinmeyen `%s' seçeneÄŸi\n" -#: lexsup.c:577 +#: lexsup.c:576 msgid "%P%F: use the --help option for usage information\n" msgstr "%P%F: kullanım bilgisi için --help seçeneÄŸini kullanın\n" -#: lexsup.c:596 +#: lexsup.c:595 msgid "%P%F: unrecognized -a option `%s'\n" msgstr "%P%F: bilinmeyen -a seçeneÄŸi `%s'\n" -#: lexsup.c:609 +#: lexsup.c:608 msgid "%P%F: unrecognized -assert option `%s'\n" msgstr "%P%F: bilinmeyen -assert seçeneÄŸi `%s'\n" -#: lexsup.c:652 +#: lexsup.c:651 msgid "%F%P: unknown demangling style `%s'" msgstr "%F%P: bilinmeyen düzeltme tarzı `%s'" -#: lexsup.c:712 +#: lexsup.c:711 msgid "%P%F: invalid number `%s'\n" msgstr "%P%F: geçersiz sayı `%s'\n" @@ -1516,65 +1563,65 @@ msgstr "%P%F: geçersiz sayı `%s'\n" #. an error message here. We cannot just make this a warning, #. increment optind, and continue because getopt is too confused #. and will seg-fault the next time around. -#: lexsup.c:810 +#: lexsup.c:812 msgid "%P%F: bad -rpath option\n" msgstr "%P%F: hatalı -rpath seçeneÄŸi\n" -#: lexsup.c:908 +#: lexsup.c:910 msgid "%P%F: -shared not supported\n" msgstr "%P%F: -shared desteklenmiyor\n" -#: lexsup.c:940 +#: lexsup.c:942 msgid "%P%F: invalid argument to option \"--section-start\"\n" msgstr "%P%F: \"--section-start\" seçeneÄŸine geçersiz argüman verilmiÅŸ\n" -#: lexsup.c:946 +#: lexsup.c:948 msgid "%P%F: missing argument(s) to option \"--section-start\"\n" msgstr "%P%F: \"--section-start\" seçeneÄŸine eksik argüman(lar) verilmiÅŸ\n" -#: lexsup.c:1095 +#: lexsup.c:1097 msgid "%P%F: may not nest groups (--help for usage)\n" msgstr "%P%F: gruplar yuvalanamaz (yardım için --help)\n" -#: lexsup.c:1102 +#: lexsup.c:1104 msgid "%P%F: group ended before it began (--help for usage)\n" msgstr "%P%F: grup baÅŸlamadan bitti (yardım için --help)\n" -#: lexsup.c:1116 +#: lexsup.c:1118 msgid "%P%F: invalid argument to option \"mpc860c0\"\n" msgstr "%P%F: \"mpc860c0\" seçeneÄŸine geçersiz argüman\n" -#: lexsup.c:1171 +#: lexsup.c:1173 msgid "%P%F: invalid hex number `%s'\n" msgstr "%P%F: geçersiz onaltılık sayı `%s'\n" -#: lexsup.c:1183 +#: lexsup.c:1185 #, c-format msgid "Usage: %s [options] file...\n" msgstr "Kullanımı: %s [seçenekler] DOSYA...\n" -#: lexsup.c:1185 +#: lexsup.c:1187 msgid "Options:\n" msgstr "Seçenekler:\n" #. Note: Various tools (such as libtool) depend upon the #. format of the listings below - do not change them. -#: lexsup.c:1268 +#: lexsup.c:1270 #, c-format msgid "%s: supported targets:" msgstr "%s: desteklenen hedefler:" -#: lexsup.c:1276 +#: lexsup.c:1278 #, c-format msgid "%s: supported emulations: " msgstr "%s: desteklenen öykünümler: " -#: lexsup.c:1281 +#: lexsup.c:1283 #, c-format msgid "%s: emulation specific options:\n" msgstr "%s: öykünüme özel seçenekler:\n" -#: lexsup.c:1285 +#: lexsup.c:1287 #, c-format msgid "Report bugs to %s\n" msgstr "" @@ -1585,61 +1632,61 @@ msgstr "" msgid "%P%F: unknown format type %s\n" msgstr "%P%F: bilinmeyen biçem türü %s\n" -#: pe-dll.c:316 +#: pe-dll.c:321 #, c-format msgid "%XUnsupported PEI architecture: %s\n" msgstr "%XDesteklenmeyen PEI platformu: %s\n" -#: pe-dll.c:650 +#: pe-dll.c:671 #, c-format msgid "%XError, duplicate EXPORT with ordinals: %s (%d vs %d)\n" msgstr "%XHata, %s (%d yerine %d) onlukları ile tekrarlanmış Ä°HRAÇ\n" -#: pe-dll.c:657 +#: pe-dll.c:678 #, c-format msgid "Warning, duplicate EXPORT: %s\n" msgstr "Uyarı, tekrarlanmış Ä°HRAÇ: %s\n" -#: pe-dll.c:721 +#: pe-dll.c:742 #, c-format msgid "%XCannot export %s: symbol not defined\n" msgstr "%X%s ihraç edilemedi: sembol tanımsız\n" -#: pe-dll.c:727 +#: pe-dll.c:748 #, c-format msgid "%XCannot export %s: symbol wrong type (%d vs %d)\n" msgstr "%X%s ihraç edilemedi: sembol hatalı türde (%d yerine %d)\n" -#: pe-dll.c:734 +#: pe-dll.c:755 #, c-format msgid "%XCannot export %s: symbol not found\n" msgstr "%X%s ihraç edilemedi: sembol bulunamadı\n" -#: pe-dll.c:849 +#: pe-dll.c:870 #, c-format msgid "%XError, ordinal used twice: %d (%s vs %s)\n" msgstr "%XHata, %d (%s yerine %s) onluÄŸu iki defa kullanılmış\n" -#: pe-dll.c:1160 +#: pe-dll.c:1181 #, c-format msgid "%XError: %d-bit reloc in dll\n" msgstr "%XHata: dll'de %d-bitlik yerdeÄŸiÅŸim\n" -#: pe-dll.c:1295 +#: pe-dll.c:1316 #, c-format msgid "%s: Can't open output def file %s\n" msgstr "%s: %s tanım dosyası açılamadı\n" -#: pe-dll.c:1438 +#: pe-dll.c:1459 msgid "; no contents available\n" msgstr "; içerik yok\n" -#: pe-dll.c:2107 +#: pe-dll.c:2128 #, c-format msgid "%XCan't open .lib file: %s\n" msgstr "%X.lib dosyası açılamadı: %s\n" -#: pe-dll.c:2112 +#: pe-dll.c:2133 #, c-format msgid "Creating library file: %s\n" msgstr "Kitaplık dosyası oluÅŸturuluyor: %s\n" diff -uprN binutils-2.13.90.0.4/ld/scripttempl/aix.sc binutils-2.13.90.0.10/ld/scripttempl/aix.sc --- binutils-2.13.90.0.4/ld/scripttempl/aix.sc Sun Feb 3 11:22:32 2002 +++ binutils-2.13.90.0.10/ld/scripttempl/aix.sc Fri Sep 27 08:33:09 2002 @@ -24,7 +24,7 @@ SECTIONS *(.tb) ${RELOCATING+PROVIDE (_etext = .);} } - . = 0x20000000; + . = ALIGN (0x10000000); .data . : { ${RELOCATING+PROVIDE (_data = .);} *(.data) diff -uprN binutils-2.13.90.0.4/ld/scripttempl/elf.sc binutils-2.13.90.0.10/ld/scripttempl/elf.sc --- binutils-2.13.90.0.4/ld/scripttempl/elf.sc Fri Jun 7 19:22:17 2002 +++ binutils-2.13.90.0.10/ld/scripttempl/elf.sc Fri Sep 27 08:33:09 2002 @@ -74,10 +74,10 @@ test -z "${ALIGNMENT}" && ALIGNMENT="${E test "$LD_FLAG" = "N" && DATA_ADDR=. test -n "$CREATE_SHLIB" && test -n "$SHLIB_DATA_ADDR" && COMMONPAGESIZE="" test -z "$CREATE_SHLIB" && test -n "$DATA_ADDR" && COMMONPAGESIZE="" -DATA_SEGMENT_ALIGN="ALIGN(${MAXPAGESIZE}) + (. & (${MAXPAGESIZE} - 1))" +DATA_SEGMENT_ALIGN="ALIGN(${SEGMENT_SIZE}) + (. & (${MAXPAGESIZE} - 1))" DATA_SEGMENT_END="" if test -n "${COMMONPAGESIZE}"; then - DATA_SEGMENT_ALIGN="DATA_SEGMENT_ALIGN(${MAXPAGESIZE}, ${COMMONPAGESIZE})" + DATA_SEGMENT_ALIGN="ALIGN (${SEGMENT_SIZE}) - ((${MAXPAGESIZE} - .) & (${MAXPAGESIZE} - 1)); . = DATA_SEGMENT_ALIGN (${MAXPAGESIZE}, ${COMMONPAGESIZE})" DATA_SEGMENT_END=". = DATA_SEGMENT_END (.);" fi INTERP=".interp ${RELOCATING-0} : { *(.interp) }" diff -uprN binutils-2.13.90.0.4/ld/scripttempl/elfd10v.sc binutils-2.13.90.0.10/ld/scripttempl/elfd10v.sc --- binutils-2.13.90.0.4/ld/scripttempl/elfd10v.sc Tue Jun 18 21:41:59 2002 +++ binutils-2.13.90.0.10/ld/scripttempl/elfd10v.sc Fri Sep 27 08:33:09 2002 @@ -65,10 +65,19 @@ ${RELOCATING+${EXECUTABLE_SYMBOLS}} MEMORY { - UNIFIED : org = 0, len = 0x1000000 - INSN : org = 0x1014000, len = 0x40000 - DATA : org = 0x2000004, len = 0x7FFC - STACK : org = 0x200BFFE, len = 4 + /* These are the values for the D10V-TS3 board. + There are other memory regions available on + the TS3 (eg ROM, FLASH, etc) but these are not + used by this script. */ + + INSN : org = 0x01000000, len = 256K + DATA : org = 0x02000000, len = 48K + + /* This is a fake memory region at the top of the + on-chip RAM, used as the start of the + (descending) stack. */ + + STACK : org = 0x0200BFFC, len = 4 } SECTIONS @@ -89,7 +98,7 @@ SECTIONS ${RELOCATING+PROVIDE (etext = .);} } ${RELOCATING+ >INSN} =${NOP-0} - .rodata ${RELOCATING-0} : { + .rodata ${RELOCATING+${READONLY_START_ADDR}} : { *(.rodata) *(.gnu.linkonce.r*) *(.rodata.*) diff -uprN binutils-2.13.90.0.4/ld/scripttempl/elfd30v.sc binutils-2.13.90.0.10/ld/scripttempl/elfd30v.sc --- binutils-2.13.90.0.4/ld/scripttempl/elfd30v.sc Wed Aug 22 08:52:10 2001 +++ binutils-2.13.90.0.10/ld/scripttempl/elfd30v.sc Wed Oct 2 10:17:20 2002 @@ -58,44 +58,44 @@ SECTIONS .gnu.version_d ${RELOCATING-0} : { *(.gnu.version_d) } .gnu.version_r ${RELOCATING-0} : { *(.gnu.version_r) } + .rel.text ${RELOCATING-0} : { *(.rel.text) *(.rel.gnu.linkonce.t*) } .rela.text ${RELOCATING-0} : { *(.rela.text) *(.rela.gnu.linkonce.t*) } + .rel.data ${RELOCATING-0} : { *(.rel.data) *(.rel.gnu.linkonce.d*) } .rela.data ${RELOCATING-0} : { *(.rela.data) *(.rela.gnu.linkonce.d*) } + .rel.rodata ${RELOCATING-0} : { *(.rel.rodata) *(.rel.gnu.linkonce.r*) } .rela.rodata ${RELOCATING-0} : { *(.rela.rodata) *(.rela.gnu.linkonce.r*) } + .rel.stext ${RELOCATING-0} : { *(.rel.stest) } .rela.stext ${RELOCATING-0} : { *(.rela.stest) } + .rel.etext ${RELOCATING-0} : { *(.rel.etest) } .rela.etext ${RELOCATING-0} : { *(.rela.etest) } + .rel.sdata ${RELOCATING-0} : { *(.rel.sdata) } .rela.sdata ${RELOCATING-0} : { *(.rela.sdata) } + .rel.edata ${RELOCATING-0} : { *(.rel.edata) } .rela.edata ${RELOCATING-0} : { *(.rela.edata) } + .rel.eit_v ${RELOCATING-0} : { *(.rel.eit_v) } .rela.eit_v ${RELOCATING-0} : { *(.rela.eit_v) } - .rela.sbss ${RELOCATING-0} : { *(.rela.sbss) } - .rela.ebss ${RELOCATING-0} : { *(.rela.ebss) } - .rela.srodata ${RELOCATING-0} : { *(.rela.srodata) } - .rela.erodata ${RELOCATING-0} : { *(.rela.erodata) } - .rela.got ${RELOCATING-0} : { *(.rela.got) } - .rela.ctors ${RELOCATING-0} : { *(.rela.ctors) } - .rela.dtors ${RELOCATING-0} : { *(.rela.dtors) } - .rela.init ${RELOCATING-0} : { *(.rela.init) } - .rela.fini ${RELOCATING-0} : { *(.rela.fini) } - .rela.bss ${RELOCATING-0} : { *(.rela.bss) } - .rela.plt ${RELOCATING-0} : { *(.rela.plt) } - - .rel.data ${RELOCATING-0} : { *(.rel.data) *(.rel.gnu.linkonce.d*) } - .rel.rodata ${RELOCATING-0} : { *(.rel.rodata) *(.rel.gnu.linkonce.r*) } - .rel.stext ${RELOCATING-0} : { *(.rel.stest) } - .rel.etext ${RELOCATING-0} : { *(.rel.etest) } - .rel.sdata ${RELOCATING-0} : { *(.rel.sdata) } - .rel.edata ${RELOCATING-0} : { *(.rel.edata) } .rel.sbss ${RELOCATING-0} : { *(.rel.sbss) } + .rela.sbss ${RELOCATING-0} : { *(.rela.sbss) } .rel.ebss ${RELOCATING-0} : { *(.rel.ebss) } - .rel.eit_v ${RELOCATING-0} : { *(.rel.eit_v) } + .rela.ebss ${RELOCATING-0} : { *(.rela.ebss) } .rel.srodata ${RELOCATING-0} : { *(.rel.srodata) } + .rela.srodata ${RELOCATING-0} : { *(.rela.srodata) } .rel.erodata ${RELOCATING-0} : { *(.rel.erodata) } + .rela.erodata ${RELOCATING-0} : { *(.rela.erodata) } .rel.got ${RELOCATING-0} : { *(.rel.got) } + .rela.got ${RELOCATING-0} : { *(.rela.got) } .rel.ctors ${RELOCATING-0} : { *(.rel.ctors) } + .rela.ctors ${RELOCATING-0} : { *(.rela.ctors) } .rel.dtors ${RELOCATING-0} : { *(.rel.dtors) } + .rela.dtors ${RELOCATING-0} : { *(.rela.dtors) } .rel.init ${RELOCATING-0} : { *(.rel.init) } + .rela.init ${RELOCATING-0} : { *(.rela.init) } .rel.fini ${RELOCATING-0} : { *(.rel.fini) } + .rela.fini ${RELOCATING-0} : { *(.rela.fini) } .rel.bss ${RELOCATING-0} : { *(.rel.bss) } + .rela.bss ${RELOCATING-0} : { *(.rela.bss) } .rel.plt ${RELOCATING-0} : { *(.rel.plt) } + .rela.plt ${RELOCATING-0} : { *(.rela.plt) } .init ${RELOCATING-0} : { *(.init) } =${NOP-0} ${DATA_PLT-${PLT}} diff -uprN binutils-2.13.90.0.4/ld/scripttempl/elfm68hc11.sc binutils-2.13.90.0.10/ld/scripttempl/elfm68hc11.sc --- binutils-2.13.90.0.4/ld/scripttempl/elfm68hc11.sc Wed Jul 17 11:38:29 2002 +++ binutils-2.13.90.0.10/ld/scripttempl/elfm68hc11.sc Wed Oct 2 10:17:20 2002 @@ -264,35 +264,34 @@ SECTIONS ${RELOCATING+*(.rela.bss.*)} ${RELOCATING+*(.rela.gnu.linkonce.b.*)} } + .rel.stext ${RELOCATING-0} : { *(.rel.stest) } .rela.stext ${RELOCATING-0} : { *(.rela.stest) } + .rel.etext ${RELOCATING-0} : { *(.rel.etest) } .rela.etext ${RELOCATING-0} : { *(.rela.etest) } + .rel.sdata ${RELOCATING-0} : { *(.rel.sdata) } .rela.sdata ${RELOCATING-0} : { *(.rela.sdata) } + .rel.edata ${RELOCATING-0} : { *(.rel.edata) } .rela.edata ${RELOCATING-0} : { *(.rela.edata) } + .rel.eit_v ${RELOCATING-0} : { *(.rel.eit_v) } .rela.eit_v ${RELOCATING-0} : { *(.rela.eit_v) } - .rela.ebss ${RELOCATING-0} : { *(.rela.ebss) } - .rela.srodata ${RELOCATING-0} : { *(.rela.srodata) } - .rela.erodata ${RELOCATING-0} : { *(.rela.erodata) } - .rela.got ${RELOCATING-0} : { *(.rela.got) } - .rela.ctors ${RELOCATING-0} : { *(.rela.ctors) } - .rela.dtors ${RELOCATING-0} : { *(.rela.dtors) } - .rela.init ${RELOCATING-0} : { *(.rela.init) } - .rela.fini ${RELOCATING-0} : { *(.rela.fini) } - .rela.plt ${RELOCATING-0} : { *(.rela.plt) } - - .rel.stext ${RELOCATING-0} : { *(.rel.stest) } - .rel.etext ${RELOCATING-0} : { *(.rel.etest) } - .rel.sdata ${RELOCATING-0} : { *(.rel.sdata) } - .rel.edata ${RELOCATING-0} : { *(.rel.edata) } .rel.ebss ${RELOCATING-0} : { *(.rel.ebss) } - .rel.eit_v ${RELOCATING-0} : { *(.rel.eit_v) } + .rela.ebss ${RELOCATING-0} : { *(.rela.ebss) } .rel.srodata ${RELOCATING-0} : { *(.rel.srodata) } + .rela.srodata ${RELOCATING-0} : { *(.rela.srodata) } .rel.erodata ${RELOCATING-0} : { *(.rel.erodata) } + .rela.erodata ${RELOCATING-0} : { *(.rela.erodata) } .rel.got ${RELOCATING-0} : { *(.rel.got) } + .rela.got ${RELOCATING-0} : { *(.rela.got) } .rel.ctors ${RELOCATING-0} : { *(.rel.ctors) } + .rela.ctors ${RELOCATING-0} : { *(.rela.ctors) } .rel.dtors ${RELOCATING-0} : { *(.rel.dtors) } + .rela.dtors ${RELOCATING-0} : { *(.rela.dtors) } .rel.init ${RELOCATING-0} : { *(.rel.init) } + .rela.init ${RELOCATING-0} : { *(.rela.init) } .rel.fini ${RELOCATING-0} : { *(.rel.fini) } + .rela.fini ${RELOCATING-0} : { *(.rela.fini) } .rel.plt ${RELOCATING-0} : { *(.rel.plt) } + .rela.plt ${RELOCATING-0} : { *(.rela.plt) } /* Concatenate .page0 sections. Put them in the page0 memory bank unless we are creating a relocatable file. */ diff -uprN binutils-2.13.90.0.4/ld/scripttempl/elfm68hc12.sc binutils-2.13.90.0.10/ld/scripttempl/elfm68hc12.sc --- binutils-2.13.90.0.4/ld/scripttempl/elfm68hc12.sc Wed Jul 17 11:38:29 2002 +++ binutils-2.13.90.0.10/ld/scripttempl/elfm68hc12.sc Wed Oct 2 10:17:20 2002 @@ -263,35 +263,34 @@ SECTIONS ${RELOCATING+*(.rela.bss.*)} ${RELOCATING+*(.rela.gnu.linkonce.b.*)} } + .rel.stext ${RELOCATING-0} : { *(.rel.stest) } .rela.stext ${RELOCATING-0} : { *(.rela.stest) } + .rel.etext ${RELOCATING-0} : { *(.rel.etest) } .rela.etext ${RELOCATING-0} : { *(.rela.etest) } + .rel.sdata ${RELOCATING-0} : { *(.rel.sdata) } .rela.sdata ${RELOCATING-0} : { *(.rela.sdata) } + .rel.edata ${RELOCATING-0} : { *(.rel.edata) } .rela.edata ${RELOCATING-0} : { *(.rela.edata) } + .rel.eit_v ${RELOCATING-0} : { *(.rel.eit_v) } .rela.eit_v ${RELOCATING-0} : { *(.rela.eit_v) } - .rela.ebss ${RELOCATING-0} : { *(.rela.ebss) } - .rela.srodata ${RELOCATING-0} : { *(.rela.srodata) } - .rela.erodata ${RELOCATING-0} : { *(.rela.erodata) } - .rela.got ${RELOCATING-0} : { *(.rela.got) } - .rela.ctors ${RELOCATING-0} : { *(.rela.ctors) } - .rela.dtors ${RELOCATING-0} : { *(.rela.dtors) } - .rela.init ${RELOCATING-0} : { *(.rela.init) } - .rela.fini ${RELOCATING-0} : { *(.rela.fini) } - .rela.plt ${RELOCATING-0} : { *(.rela.plt) } - - .rel.stext ${RELOCATING-0} : { *(.rel.stest) } - .rel.etext ${RELOCATING-0} : { *(.rel.etest) } - .rel.sdata ${RELOCATING-0} : { *(.rel.sdata) } - .rel.edata ${RELOCATING-0} : { *(.rel.edata) } .rel.ebss ${RELOCATING-0} : { *(.rel.ebss) } - .rel.eit_v ${RELOCATING-0} : { *(.rel.eit_v) } + .rela.ebss ${RELOCATING-0} : { *(.rela.ebss) } .rel.srodata ${RELOCATING-0} : { *(.rel.srodata) } + .rela.srodata ${RELOCATING-0} : { *(.rela.srodata) } .rel.erodata ${RELOCATING-0} : { *(.rel.erodata) } + .rela.erodata ${RELOCATING-0} : { *(.rela.erodata) } .rel.got ${RELOCATING-0} : { *(.rel.got) } + .rela.got ${RELOCATING-0} : { *(.rela.got) } .rel.ctors ${RELOCATING-0} : { *(.rel.ctors) } + .rela.ctors ${RELOCATING-0} : { *(.rela.ctors) } .rel.dtors ${RELOCATING-0} : { *(.rel.dtors) } + .rela.dtors ${RELOCATING-0} : { *(.rela.dtors) } .rel.init ${RELOCATING-0} : { *(.rel.init) } + .rela.init ${RELOCATING-0} : { *(.rela.init) } .rel.fini ${RELOCATING-0} : { *(.rel.fini) } + .rela.fini ${RELOCATING-0} : { *(.rela.fini) } .rel.plt ${RELOCATING-0} : { *(.rel.plt) } + .rela.plt ${RELOCATING-0} : { *(.rela.plt) } /* Concatenate .page0 sections. Put them in the page0 memory bank unless we are creating a relocatable file. */ diff -uprN binutils-2.13.90.0.4/ld/scripttempl/i386go32.sc binutils-2.13.90.0.10/ld/scripttempl/i386go32.sc --- binutils-2.13.90.0.4/ld/scripttempl/i386go32.sc Tue Mar 27 08:49:50 2001 +++ binutils-2.13.90.0.10/ld/scripttempl/i386go32.sc Fri Sep 27 08:33:09 2002 @@ -57,7 +57,7 @@ SECTIONS ${CONSTRUCTING+${RELOCATING-$DTOR}} .bss ${RELOCATING+ SIZEOF(.data) + ADDR(.data)} : { - *(.bss) + *(.bss${RELOCATING+ .bss.* .gnu.linkonce.b.*}) *(COMMON) ${RELOCATING+ end = . ; PROVIDE(_end = .) ;} ${RELOCATING+ . = ALIGN(${SEGMENT_SIZE});} diff -uprN binutils-2.13.90.0.4/ld/scripttempl/pe.sc binutils-2.13.90.0.10/ld/scripttempl/pe.sc --- binutils-2.13.90.0.4/ld/scripttempl/pe.sc Sun Feb 3 11:22:33 2002 +++ binutils-2.13.90.0.10/ld/scripttempl/pe.sc Fri Sep 27 08:33:09 2002 @@ -85,6 +85,11 @@ SECTIONS *(.rdata) ${R_RDATA} *(.eh_frame) + ___RUNTIME_PSEUDO_RELOC_LIST__ = .; + __RUNTIME_PSEUDO_RELOC_LIST__ = .; + *(.rdata_runtime_pseudo_reloc) + ___RUNTIME_PSEUDO_RELOC_LIST_END__ = .; + __RUNTIME_PSEUDO_RELOC_LIST_END__ = .; } .pdata ${RELOCATING+BLOCK(__section_alignment__)} : diff -uprN binutils-2.13.90.0.4/ld/scripttempl/sh.sc binutils-2.13.90.0.10/ld/scripttempl/sh.sc --- binutils-2.13.90.0.4/ld/scripttempl/sh.sc Thu Jun 3 11:02:11 1999 +++ binutils-2.13.90.0.10/ld/scripttempl/sh.sc Fri Sep 27 08:33:09 2002 @@ -29,6 +29,11 @@ SECTIONS .data : { *(.data) + ${RELOCATING+*(.gcc_exc*)} + ${RELOCATING+___EH_FRAME_BEGIN__ = . ;} + ${RELOCATING+*(.eh_fram*)} + ${RELOCATING+___EH_FRAME_END__ = . ;} + ${RELOCATING+LONG(0);} ${RELOCATING+ _edata = . ; } } ${RELOCATING+ > ram} .bss : diff -uprN binutils-2.13.90.0.4/ld/scripttempl/tic3xcoff.sc binutils-2.13.90.0.10/ld/scripttempl/tic3xcoff.sc --- binutils-2.13.90.0.4/ld/scripttempl/tic3xcoff.sc Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/scripttempl/tic3xcoff.sc Fri Sep 27 08:33:09 2002 @@ -0,0 +1,92 @@ +# 32 interrupt vectors + 32 trap vectors each of 4 bytes +# The .bss and .data sections need to be contiguous for direct addressing +# The data page pointer gets loaded with the start of .bss +# TI C compiler uses .cinit to initialise variables in .bss + +test -z "$ENTRY" && ENTRY=_start +# These are substituted in as variables in order to get '}' in a shell +# conditional expansion. +INIT='.init : { *(.init) }' +FINI='.fini : { *(.fini) }' +cat < + + * ld-i386/combreloc.s: New test. + * ld-i386/combreloc.d: New test. + * ld-i386/i386.exp (i386tests): Add it. + +2002-10-10 Alan Modra + + * ld-i386/i386.exp (reloc): Turn off combreloc. + * ld-i386/reloc.d: Likewise. + * ld-powerpc/powerpc.exp: Likewise. + * ld-powerpc/reloc.d: Likewise. + +2002-10-03 H.J. Lu + + * ld-elfvers/vers21.c (_old_foobar): Initialized to -1 for gcc + 3.x. + +2002-10-03 Chris Demetriou + + * ld-mips-elf/branch-misc-1.d: Link at 0x500000 and use -N, to be + more compatible with non-embedded targets. + * ld-mips-elf/branch-misc-2.d: Likewise. + + * ld-mips-elf/mips-elf.exp: Clean up some comments about embedded + PIC tests. + (elf): New variable, to control whether generic ELF tests are run. + (embedded_elf): New variable, to control whether ELF tests + requiring embedded PIC or embedded relocs are run. + +2002-10-02 Stephen Clarke + + * ld-sh/sh64/gotplt.d, ld-sh/sh64/gotplt.map, + ld-sh/sh64/gotplt.s: New test. + +2002-10-02 Stephen Clarke + * ld-sh/sh64/cmpct1.sd : Fix linked file name. + * ld-sh/sh64/crange3.dd: Likewise. + +2002-10-01 Jakub Jelinek + + * ld-i386/i386.exp: Add tlsindntpoff test. + * ld-i386/tlsindntpoff.s: New test. + * ld-i386/tlsindntpoff.dd: New test. + +2002-10-01 Jakub Jelinek + + * ld-x86-64/tlspic1.s: Change TLSGD sequences. + * ld-x86-64/tlsbinpic.s: Likewise. + * ld-x86-64/tlspic.dd: Adjust. + +2002-10-01 Jakub Jelinek + + * ld-i386/i386.exp: Add tlsg test. + * ld-i386/tlsg.s: New test. + * ld-i386/tlsg.sd: New test. + * ld-i386/tlsbin.dd: Change LD into LD -> LE in comments. + * ld-i386/tlsbinpic.s: Likewise. + * ld-x86-64/x86-64.exp: Add tlsg test. + * ld-x86-64/tlsg.s: New test. + * ld-x86-64/tlsg.sd: New test. + * ld-x86-64/tlsbin.dd: Change LD into LD -> LE in comments. + * ld-x86-64/tlsbinpic.s: Likewise. + +2002-09-30 Alan Modra + + * ld-powerpc/powerpc.exp: Restrict to 32 bit ELF. + +2002-09-30 Alan Modra + + * ld-powerpc/reloc.s, ld-powerpc/reloc.d: New. + * ld-powerpc/powerpc.exp: New. + + * ld-i386/reloc.s, ld-i386/reloc.d: New. + * ld-i386/i386.exp: Run new test. + +2002-09-27 Jakub Jelinek + + * lib/ld-lib.exp (run_ld_link_tests): Add. + * ld-sh/sh64/sh64.exp (run_ld_link_tests, regexp_diff, + file_contents): Remove. + (sh64tests): Add 6th field to the tests array. + * ld-i386/i386.exp (run_ld_link_tests): Remove. + * ld-x86-64/x86-64.exp: New. + * ld-x86-64/tlsbin.dd: New test. + * ld-x86-64/tlsbinpic.s: New test. + * ld-x86-64/tlsbin.rd: New test. + * ld-x86-64/tlsbin.s: New test. + * ld-x86-64/tlsbin.sd: New test. + * ld-x86-64/tlsbin.td: New test. + * ld-x86-64/tlslib.s: New test. + * ld-x86-64/tlspic1.s: New test. + * ld-x86-64/tlspic2.s: New test. + * ld-x86-64/tlspic.dd: New test. + * ld-x86-64/tlspic.rd: New test. + * ld-x86-64/tlspic.sd: New test. + * ld-x86-64/tlspic.td: New test. + +2002-09-21 Alan Modra + + * ld-undefined/undefined.exp: Adjust function test. + +2002-09-20 Alan Modra + + * ld-i386/i386.exp: Only run tests on ELF targets. + +2002-09-19 Jakub Jelinek + + * ld-i386/i386.exp: New. + * ld-i386/tlsbin.dd: New test. + * ld-i386/tlsbinpic.s: New test. + * ld-i386/tlsbin.rd: New test. + * ld-i386/tlsbin.s: New test. + * ld-i386/tlsbin.sd: New test. + * ld-i386/tlsbin.td: New test. + * ld-i386/tlslib.s: New test. + * ld-i386/tlsnopic1.s: New test. + * ld-i386/tlsnopic2.s: New test. + * ld-i386/tlsnopic.dd: New test. + * ld-i386/tlsnopic.rd: New test. + * ld-i386/tlsnopic.sd: New test. + * ld-i386/tlspic1.s: New test. + * ld-i386/tlspic2.s: New test. + * ld-i386/tlspic.dd: New test. + * ld-i386/tlspic.rd: New test. + * ld-i386/tlspic.sd: New test. + * ld-i386/tlspic.td: New test. + +2002-09-18 Chris Demetriou + + * ld-mips-elf/branch-misc-1.d: New file. + * ld-mips-elf/branch-misc-2.d: New file. + * ld-mips-elf/mips-elf.exp: Run new tests. + +2002-09-05 Alan Modra + + * ld-sh/sh64/cmpct1.xd: Adjust for lack of abs section sym. + * ld-sh/sh64/crange3-cmpct.rd: Likewise. + * ld-sh/sh64/crange3-media.rd: Likewise. + * ld-sh/sh64/crange3.rd: Likewise. + +2002-08-31 Hans-Peter Nilsson + + * ld-mmix/bpo-10.d: Tweak for change in symbols handling. + * ld-mmix/bpo-11.d: Ditto. + + * ld-mmix/b-nosym.d: Adjust for changed output for absence of + symbols. + + * ld-mmix/sec-7m.d: Rename tested section from .debug_info to + .di. + * ld-mmix/sec-7a.s, ld-mmix/sec-7b.s, ld-mmix/sec-7c.s, + ld-mmix/sec-7d.s, ld-mmix/sec-7e.s: Ditto. + +2002-08-28 Alan Modra + + * ld-discard/discard.exp: xfail m6812. + * ld-scripts/map-address.d: Adjust for extras emitted by pe targets. + +2002-08-27 Alan Modra + + * ld-mmix/b-nosym.d: Revert last change. + +2002-08-26 Alan Modra + + * ld-mmix/b-nosym.d: Adjust for "no symbols" on stdout. + +2002-08-23 Stephen Clarke + + * ld-sh/sh64/rd-sh64.exp: New framework file. + * ld-sh/sh64/init-cmpct.d, ld-sh/sh64/init-media.d, + ld-sh/sh64/init64.d, ld-sh/sh64/init.s: New tests for + correct setting of ISA bit for init and fini entry-points. + +2002-08-16 Stephen Clarke + + * ld-sh/sh64/sh64.exp: Add dlsection. + * ld-sh/sh64/dlsection-1.s, ld-sh/sh64/dlsection.sd: New. + +2002-08-16 Alan Modra + + * ld-discard/discard.exp: xfail targets using generic linker. + * ld-discard/extern.d: Allow "data" to be reduced to a section sym. + +2002-08-15 Hans-Peter Nilsson + + * ld-cris/libdso-4.d, ld-cris/undef1.d: New test. + 2002-08-13 H.J. Lu * ld-elfvers/vers.exp: Add vers23c and vers23d. diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-cris/libdso-4.d binutils-2.13.90.0.10/ld/testsuite/ld-cris/libdso-4.d --- binutils-2.13.90.0.4/ld/testsuite/ld-cris/libdso-4.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-cris/libdso-4.d Fri Sep 27 08:33:09 2002 @@ -0,0 +1,11 @@ +#source: dso-2.s +#as: --pic --no-underscore +#ld: --shared -m crislinux +#objdump: -T + +# DSO with an undef symbol "dsofn". See undef1.d. + +.*: file format elf32-cris +#... +0+ D \*UND\* 0+ dsofn + diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-cris/undef1.d binutils-2.13.90.0.10/ld/testsuite/ld-cris/undef1.d --- binutils-2.13.90.0.4/ld/testsuite/ld-cris/undef1.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-cris/undef1.d Fri Sep 27 08:33:09 2002 @@ -0,0 +1,13 @@ +#source: dso-1.s +#source: gotrel1.s --pic +#as: --no-underscore +#ld: -m crislinux tmpdir/libdso-4.so +#objdump: -T + +# The DSO used has an undef reference to the symbol "dsofn", which is +# supposed to cause the program to automatically export it as a dynamic +# symbol; no --export-dynamic is supposed to be needed. + +#... +[0-9a-f]+ g DF .text 00000000 dsofn +#pass diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-discard/discard.exp binutils-2.13.90.0.10/ld/testsuite/ld-discard/discard.exp --- binutils-2.13.90.0.4/ld/testsuite/ld-discard/discard.exp Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/ld/testsuite/ld-discard/discard.exp Fri Sep 27 08:33:09 2002 @@ -40,5 +40,8 @@ set test_list [lsort [glob -nocomplain $ for { set i 0 } { $i < [llength $test_list] } { incr i } { # We need to strip the ".d", but can leave the dirname. verbose [file rootname [lindex $test_list $i]] + # These fail because they use the generic linker. + setup_xfail "arc-*" "d30v-*" "dlx-*" "i960-*" "m6812-*" "m68hc12-*" + setup_xfail "or32-*" "pj-*" run_dump_test [file rootname [lindex $test_list $i]] } diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-discard/extern.d binutils-2.13.90.0.10/ld/testsuite/ld-discard/extern.d --- binutils-2.13.90.0.4/ld/testsuite/ld-discard/extern.d Fri Nov 16 14:05:53 2001 +++ binutils-2.13.90.0.10/ld/testsuite/ld-discard/extern.d Fri Sep 27 08:33:09 2002 @@ -1,3 +1,3 @@ #source: extern.s #ld: -T $srcdir/$subdir/discard.ld -#error: undefined reference to `data' +#error: undefined reference to `(data|local symbols in discarded section \.data\.exit)' diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-elfvers/vers21.c binutils-2.13.90.0.10/ld/testsuite/ld-elfvers/vers21.c --- binutils-2.13.90.0.4/ld/testsuite/ld-elfvers/vers21.c Wed Jul 17 11:38:29 2002 +++ binutils-2.13.90.0.10/ld/testsuite/ld-elfvers/vers21.c Mon Oct 7 23:08:00 2002 @@ -27,6 +27,6 @@ _old_foo () return foo (); } -int _old_foobar = 0; +int _old_foobar = -1; int foobar = 1; diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-i386/combreloc.d binutils-2.13.90.0.10/ld/testsuite/ld-i386/combreloc.d --- binutils-2.13.90.0.4/ld/testsuite/ld-i386/combreloc.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-i386/combreloc.d Thu Oct 10 09:16:57 2002 @@ -0,0 +1,18 @@ +# Test that orphan reloc sections are merged into .rel.dyn with +# -z combreloc. +#source: combreloc.s +#as: --32 +#ld: -shared -melf_i386 -z combreloc +#readelf: -r +#target: i?86-*-* + +Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 4 entries: + Offset Info Type Sym.Value Sym. Name +[0-9a-f]+ [0-9a-f]+01 R_386_32 [0-9a-f]+ _start +[0-9a-f]+ [0-9a-f]+01 R_386_32 [0-9a-f]+ _start +[0-9a-f]+ [0-9a-f]+01 R_386_32 [0-9a-f]+ _start +[0-9a-f]+ [0-9a-f]+06 R_386_GLOB_DAT [0-9a-f]+ _start + +Relocation section '.rel.plt' at offset 0x[0-9a-f]+ contains 1 entries: + Offset Info Type Sym.Value Sym. Name +[0-9a-f]+ [0-9a-f]+07 R_386_JUMP_SLOT [0-9a-f]+ foo diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-i386/combreloc.s binutils-2.13.90.0.10/ld/testsuite/ld-i386/combreloc.s --- binutils-2.13.90.0.4/ld/testsuite/ld-i386/combreloc.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-i386/combreloc.s Thu Oct 10 09:16:57 2002 @@ -0,0 +1,22 @@ + .text + .globl _start, foo + .type _start,@function +_start: + pushl %ebp + movl %esp, %ebp + pushl %ebx + call 1f +1: popl %ebx + addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ebx + movl _start@GOT(%ebx), %eax + movl (%eax), %eax + call foo@PLT + movl (%esp), %ebx + leave +foo: ret + .data + .long _start + .section "__libc_subfreeres", "aw", @progbits + .long _start + .section "__libc_atexit", "aw", @progbits + .long _start diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-i386/i386.exp binutils-2.13.90.0.10/ld/testsuite/ld-i386/i386.exp --- binutils-2.13.90.0.4/ld/testsuite/ld-i386/i386.exp Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-i386/i386.exp Thu Oct 10 09:16:57 2002 @@ -0,0 +1,66 @@ +# Expect script for ld-i386 tests +# Copyright (C) 2002 Free Software Foundation +# +# 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 +# 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. +# + +# Test i386 linking; all types of relocs. This tests the assembler and +# tools like objdump as well as the linker. + +if { !([istarget "i?86-*-elf*"] + || ([istarget "i?86-*-linux*"] + && ![istarget "*-*-*aout*"] + && ![istarget "*-*-*oldld*"])) } { + return +} + +# List contains test-items with 3 items followed by 2 lists: +# 0:name 1:ld options 2:assembler options +# 3:filenames of assembler files 4: action and options. 5: name of output file + +# Actions: +# objdump: Apply objdump options on result. Compare with regex (last arg). +# nm: Apply nm options on result. Compare with regex (last arg). +# readelf: Apply readelf options on result. Compare with regex (last arg). + +set i386tests { + {"TLS -fpic -shared transitions" "-shared -melf_i386" + "--32" {tlspic1.s tlspic2.s} + {{readelf -Ssrl tlspic.rd} {objdump -drj.text tlspic.dd} + {objdump -sj.got tlspic.sd} {objdump -sj.tdata tlspic.td}} + "libtlspic.so"} + {"Helper shared library" "-shared -melf_i386" + "--32" {tlslib.s} {} "libtlslib.so"} + {"TLS -fpic and -fno-pic exec transitions" + "-melf_i386 tmpdir/libtlslib.so" "--32" {tlsbinpic.s tlsbin.s} + {{readelf -Ssrl tlsbin.rd} {objdump -drj.text tlsbin.dd} + {objdump -sj.got tlsbin.sd} {objdump -sj.tdata tlsbin.td}} + "tlsbin"} + {"TLS -fno-pic -shared" "-shared -melf_i386" + "--32" {tlsnopic1.s tlsnopic2.s} + {{readelf -Ssrl tlsnopic.rd} {objdump -drj.text tlsnopic.dd} + {objdump -sj.got tlsnopic.sd}} "libtlsnopic.so"} + {"TLS in debug sections" "-melf_i386" + "--32" {tlsg.s} + {{objdump -sj.debug_foobar tlsg.sd}} "tlsg"} + {"TLS @indntpoff with %eax" "-melf_i386" "--32" {tlsindntpoff.s} + {{objdump -drj.text tlsindntpoff.dd}} "tlsindntpoff"} + {"Reloc section order" "-shared -melf_i386 -z nocombreloc" "--32" + {reloc.s} {{objdump -hw reloc.d}} "reloc.so"} + {"-z combreloc relocation sections" "-shared -melf_i386 -z combreloc" + "--32" {combreloc.s} {{readelf -r combreloc.d}} "combreloc.so"} +} + +run_ld_link_tests $i386tests diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-i386/reloc.d binutils-2.13.90.0.10/ld/testsuite/ld-i386/reloc.d --- binutils-2.13.90.0.4/ld/testsuite/ld-i386/reloc.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-i386/reloc.d Wed Oct 9 21:09:41 2002 @@ -0,0 +1,18 @@ +# Test that orphan reloc sections are placed before .rel.plt even when +# .rel.plt is the only reloc section. +#source: reloc.s +#as: --32 +#ld: -shared -melf_i386 -z nocombreloc +#objdump: -hw +#target: i?86-*-* + +.*: +file format elf32-i386 +#... +.*\.relplatypus.* +#... +.*\.rel\.plt.* +# x86 ld doesn't output non-alloc reloc sections to shared libs, so disable +# the following two lines for the time being. +# #... +# .*\.relechidna.* +#pass diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-i386/reloc.s binutils-2.13.90.0.10/ld/testsuite/ld-i386/reloc.s --- binutils-2.13.90.0.4/ld/testsuite/ld-i386/reloc.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-i386/reloc.s Wed Oct 2 10:17:20 2002 @@ -0,0 +1,8 @@ + .section echidna + .long .text + + .section platypus,"ax" + .long .text + + .text + jmp _start@plt diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-i386/tlsbin.dd binutils-2.13.90.0.10/ld/testsuite/ld-i386/tlsbin.dd --- binutils-2.13.90.0.4/ld/testsuite/ld-i386/tlsbin.dd Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-i386/tlsbin.dd Wed Oct 2 10:17:20 2002 @@ -0,0 +1,456 @@ +#source: tlsbinpic.s +#source: tlsbin.s +#as: --32 +#ld: -melf_i386 tmpdir/libtlslib.so +#objdump: -drj.text +#target: i?86-*-* + +# PT_TLS layout is: +# Offset from Offset from Name +# TCB base TCB end +# 0x00 -0xa0 sg1..sg8 +# 0x20 -0x80 sl1..sl8 +# 0x40 -0x60 sh1..sh8 +# 0x60 -0x40 bg1..bg8 +# 0x80 -0x20 bl1..bl8 + +.*: +file format elf32-i386 + +Disassembly of section .text: + +0+8049000 : + 8049000: 55[ ]+push %ebp + 8049001: 89 e5[ ]+mov %esp,%ebp + 8049003: 53[ ]+push %ebx + 8049004: 50[ ]+push %eax + 8049005: e8 00 00 00 00[ ]+call 804900a + 804900a: 5b[ ]+pop %ebx + 804900b: 81 c3 f6 10 00 00[ ]+add \$0x10f6,%ebx + 8049011: 90[ ]+nop * + 8049012: 90[ ]+nop * + 8049013: 90[ ]+nop * + 8049014: 90[ ]+nop * +# GD -> IE because variable is not defined in executable + 8049015: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax + 804901b: 2b 83 2c 00 00 00[ ]+sub 0x2c\(%ebx\),%eax +# ->R_386_TLS_TPOFF32 sG1 + 8049021: 90[ ]+nop * + 8049022: 90[ ]+nop * + 8049023: 90[ ]+nop * + 8049024: 90[ ]+nop * +# GD -> IE because variable is not defined in executable where +# the variable is referenced through @gottpoff too + 8049025: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax + 804902b: 2b 83 1c 00 00 00[ ]+sub 0x1c\(%ebx\),%eax +# ->R_386_TLS_TPOFF32 sG2 + 8049031: 90[ ]+nop * + 8049032: 90[ ]+nop * + 8049033: 90[ ]+nop * + 8049034: 90[ ]+nop * +# GD -> IE because variable is not defined in executable where +# the variable is referenced through @gotntpoff too + 8049035: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax + 804903b: 2b 83 10 00 00 00[ ]+sub 0x10\(%ebx\),%eax +# ->R_386_TLS_TPOFF sG3 + 8049041: 90[ ]+nop * + 8049042: 90[ ]+nop * + 8049043: 90[ ]+nop * + 8049044: 90[ ]+nop * +# GD -> IE because variable is not defined in executable where +# the variable is referenced through @gottpoff and @gotntpoff too + 8049045: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax + 804904b: 2b 83 20 00 00 00[ ]+sub 0x20\(%ebx\),%eax +# ->R_386_TLS_TPOFF32 sG4 + 8049051: 90[ ]+nop * + 8049052: 90[ ]+nop * + 8049053: 90[ ]+nop * + 8049054: 90[ ]+nop * +# GD -> LE with global variable defined in executable + 8049055: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax + 804905b: 81 e8 a0 00 00 00[ ]+sub \$0xa0,%eax +# sg1 + 8049061: 90[ ]+nop * + 8049062: 90[ ]+nop * + 8049063: 90[ ]+nop * + 8049064: 90[ ]+nop * +# GD -> LE with local variable defined in executable + 8049065: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax + 804906b: 81 e8 80 00 00 00[ ]+sub \$0x80,%eax +# sl1 + 8049071: 90[ ]+nop * + 8049072: 90[ ]+nop * + 8049073: 90[ ]+nop * + 8049074: 90[ ]+nop * +# GD -> LE with hidden variable defined in executable + 8049075: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax + 804907b: 81 e8 60 00 00 00[ ]+sub \$0x60,%eax +# sh1 + 8049081: 90[ ]+nop * + 8049082: 90[ ]+nop * + 8049083: 90[ ]+nop * + 8049084: 90[ ]+nop * +# LD -> LE + 8049085: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax + 804908b: 90[ ]+nop * + 804908c: 8d 74 26 00[ ]+lea 0x0\(%esi,1\),%esi + 8049090: 90[ ]+nop * + 8049091: 90[ ]+nop * + 8049092: 8d 90 80 ff ff ff[ ]+lea 0xffffff80\(%eax\),%edx +# sl1 + 8049098: 90[ ]+nop * + 8049099: 90[ ]+nop * + 804909a: 8d 88 84 ff ff ff[ ]+lea 0xffffff84\(%eax\),%ecx +# sl2 + 80490a0: 90[ ]+nop * + 80490a1: 90[ ]+nop * + 80490a2: 90[ ]+nop * + 80490a3: 90[ ]+nop * +# LD -> LE against hidden variables + 80490a4: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax + 80490aa: 90[ ]+nop * + 80490ab: 8d 74 26 00[ ]+lea 0x0\(%esi,1\),%esi + 80490af: 90[ ]+nop * + 80490b0: 90[ ]+nop * + 80490b1: 8d 90 a0 ff ff ff[ ]+lea 0xffffffa0\(%eax\),%edx +# sh1 + 80490b7: 90[ ]+nop * + 80490b8: 90[ ]+nop * + 80490b9: 8d 88 a4 ff ff ff[ ]+lea 0xffffffa4\(%eax\),%ecx +# sh2 + 80490bf: 90[ ]+nop * + 80490c0: 90[ ]+nop * + 80490c1: 90[ ]+nop * + 80490c2: 90[ ]+nop * +# @gottpoff IE against global var + 80490c3: 65 8b 0d 00 00 00 00 mov %gs:0x0,%ecx + 80490ca: 90[ ]+nop * + 80490cb: 90[ ]+nop * + 80490cc: 2b 8b 1c 00 00 00[ ]+sub 0x1c\(%ebx\),%ecx +# ->R_386_TLS_TPOFF32 sG2 + 80490d2: 90[ ]+nop * + 80490d3: 90[ ]+nop * + 80490d4: 90[ ]+nop * + 80490d5: 90[ ]+nop * +# @gottpoff IE against global var + 80490d6: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax + 80490dc: 90[ ]+nop * + 80490dd: 90[ ]+nop * + 80490de: 2b 83 20 00 00 00[ ]+sub 0x20\(%ebx\),%eax +# ->R_386_TLS_TPOFF32 sG4 + 80490e4: 90[ ]+nop * + 80490e5: 90[ ]+nop * + 80490e6: 90[ ]+nop * + 80490e7: 90[ ]+nop * +# @gotntpoff IE against global var + 80490e8: 65 8b 0d 00 00 00 00 mov %gs:0x0,%ecx + 80490ef: 90[ ]+nop * + 80490f0: 90[ ]+nop * + 80490f1: 03 8b 10 00 00 00[ ]+add 0x10\(%ebx\),%ecx +# ->R_386_TLS_TPOFF sG3 + 80490f7: 90[ ]+nop * + 80490f8: 90[ ]+nop * + 80490f9: 90[ ]+nop * + 80490fa: 90[ ]+nop * +# @gotntpoff IE against global var + 80490fb: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax + 8049101: 90[ ]+nop * + 8049102: 90[ ]+nop * + 8049103: 03 83 24 00 00 00[ ]+add 0x24\(%ebx\),%eax +# ->R_386_TLS_TPOFF sG4 + 8049109: 90[ ]+nop * + 804910a: 90[ ]+nop * + 804910b: 90[ ]+nop * + 804910c: 90[ ]+nop * +# @gottpoff IE -> LE against global var defined in exec + 804910d: 65 8b 0d 00 00 00 00 mov %gs:0x0,%ecx + 8049114: 90[ ]+nop * + 8049115: 90[ ]+nop * + 8049116: 81 e9 a0 00 00 00[ ]+sub \$0xa0,%ecx +# sg1 + 804911c: 90[ ]+nop * + 804911d: 90[ ]+nop * + 804911e: 90[ ]+nop * + 804911f: 90[ ]+nop * +# @gotntpoff IE -> LE against local var + 8049120: 65 8b 0d 00 00 00 00 mov %gs:0x0,%ecx + 8049127: 90[ ]+nop * + 8049128: 90[ ]+nop * + 8049129: 81 c0 80 ff ff ff[ ]+add \$0xffffff80,%eax +# sl1 + 804912f: 90[ ]+nop * + 8049130: 90[ ]+nop * + 8049131: 90[ ]+nop * + 8049132: 90[ ]+nop * +# @gottpoff IE -> LE against hidden var + 8049133: 65 8b 0d 00 00 00 00 mov %gs:0x0,%ecx + 804913a: 90[ ]+nop * + 804913b: 90[ ]+nop * + 804913c: 81 e9 60 00 00 00[ ]+sub \$0x60,%ecx +# sh1 + 8049142: 90[ ]+nop * + 8049143: 90[ ]+nop * + 8049144: 90[ ]+nop * + 8049145: 90[ ]+nop * +# Direct access through %gs +# @gotntpoff IE against global var + 8049146: 8b 8b 14 00 00 00[ ]+mov 0x14\(%ebx\),%ecx +# ->R_386_TLS_TPOFF sG5 + 804914c: 90[ ]+nop * + 804914d: 90[ ]+nop * + 804914e: 65 8b 11[ ]+mov %gs:\(%ecx\),%edx + 8049151: 90[ ]+nop * + 8049152: 90[ ]+nop * + 8049153: 90[ ]+nop * + 8049154: 90[ ]+nop * +# @gotntpoff IE->LE against local var + 8049155: c7 c0 90 ff ff ff[ ]+mov \$0xffffff90,%eax +# sl5 + 804915b: 90[ ]+nop * + 804915c: 90[ ]+nop * + 804915d: 65 8b 10[ ]+mov %gs:\(%eax\),%edx + 8049160: 90[ ]+nop * + 8049161: 90[ ]+nop * + 8049162: 90[ ]+nop * + 8049163: 90[ ]+nop * +# @gotntpoff IE->LE against hidden var + 8049164: c7 c2 b0 ff ff ff[ ]+mov \$0xffffffb0,%edx +# sh5 + 804916a: 90[ ]+nop * + 804916b: 90[ ]+nop * + 804916c: 65 8b 12[ ]+mov %gs:\(%edx\),%edx + 804916f: 90[ ]+nop * + 8049170: 90[ ]+nop * + 8049171: 90[ ]+nop * + 8049172: 90[ ]+nop * + 8049173: 8b 5d fc[ ]+mov 0xfffffffc\(%ebp\),%ebx + 8049176: c9[ ]+leave * + 8049177: c3[ ]+ret * + +08049178 <_start>: + 8049178: 55[ ]+push %ebp + 8049179: 89 e5[ ]+mov %esp,%ebp + 804917b: e8 00 00 00 00[ ]+call 8049180 <_start\+0x8> + 8049180: 59[ ]+pop %ecx + 8049181: 81 c1 80 0f 00 00[ ]+add \$0xf80,%ecx + 8049187: 90[ ]+nop * + 8049188: 90[ ]+nop * + 8049189: 90[ ]+nop * + 804918a: 90[ ]+nop * +# @gottpoff IE against global var + 804918b: 65 8b 15 00 00 00 00 mov %gs:0x0,%edx + 8049192: 90[ ]+nop * + 8049193: 90[ ]+nop * + 8049194: 2b 91 28 00 00 00[ ]+sub 0x28\(%ecx\),%edx +# ->R_386_TLS_TPOFF32 sG6 + 804919a: 90[ ]+nop * + 804919b: 90[ ]+nop * + 804919c: 90[ ]+nop * + 804919d: 90[ ]+nop * +# @indntpoff IE against global var + 804919e: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax + 80491a4: 90[ ]+nop * + 80491a5: 90[ ]+nop * + 80491a6: 03 05 18 a1 04 08[ ]+add 0x804a118,%eax +# ->R_386_TLS_TPOFF sG7 + 80491ac: 90[ ]+nop * + 80491ad: 90[ ]+nop * + 80491ae: 90[ ]+nop * + 80491af: 90[ ]+nop * +# @indntpoff direct %gs access IE against global var + 80491b0: 8b 15 30 a1 04 08[ ]+mov 0x804a130,%edx +# ->R_386_TLS_TPOFF sG8 + 80491b6: 90[ ]+nop * + 80491b7: 90[ ]+nop * + 80491b8: 65 8b 02[ ]+mov %gs:\(%edx\),%eax + 80491bb: 90[ ]+nop * + 80491bc: 90[ ]+nop * + 80491bd: 90[ ]+nop * + 80491be: 90[ ]+nop * +# @gottpoff IE -> LE against global var defined in exec + 80491bf: 65 8b 15 00 00 00 00 mov %gs:0x0,%edx + 80491c6: 90[ ]+nop * + 80491c7: 90[ ]+nop * + 80491c8: 81 ea 2c 00 00 00[ ]+sub \$0x2c,%edx +# bg6 + 80491ce: 90[ ]+nop * + 80491cf: 90[ ]+nop * + 80491d0: 90[ ]+nop * + 80491d1: 90[ ]+nop * +# @indntpoff IE -> LE against global var defined in exec + 80491d2: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax + 80491d8: 90[ ]+nop * + 80491d9: 90[ ]+nop * + 80491da: 81 c0 d8 ff ff ff[ ]+add \$0xffffffd8,%eax +# bg7 + 80491e0: 90[ ]+nop * + 80491e1: 90[ ]+nop * + 80491e2: 90[ ]+nop * + 80491e3: 90[ ]+nop * +# @indntpoff direct %gs access IE -> LE against global var defined +# in exec + 80491e4: c7 c2 dc ff ff ff[ ]+mov \$0xffffffdc,%edx +# bg8 + 80491ea: 90[ ]+nop * + 80491eb: 90[ ]+nop * + 80491ec: 65 8b 02[ ]+mov %gs:\(%edx\),%eax + 80491ef: 90[ ]+nop * + 80491f0: 90[ ]+nop * + 80491f1: 90[ ]+nop * + 80491f2: 90[ ]+nop * +# @gottpoff IE -> LE against local var + 80491f3: 65 8b 15 00 00 00 00 mov %gs:0x0,%edx + 80491fa: 90[ ]+nop * + 80491fb: 90[ ]+nop * + 80491fc: 81 ea 0c 00 00 00[ ]+sub \$0xc,%edx +# bl6 + 8049202: 90[ ]+nop * + 8049203: 90[ ]+nop * + 8049204: 90[ ]+nop * + 8049205: 90[ ]+nop * +# @indntpoff IE -> LE against local var + 8049206: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax + 804920c: 90[ ]+nop * + 804920d: 90[ ]+nop * + 804920e: 81 c0 f8 ff ff ff[ ]+add \$0xfffffff8,%eax +# bl7 + 8049214: 90[ ]+nop * + 8049215: 90[ ]+nop * + 8049216: 90[ ]+nop * + 8049217: 90[ ]+nop * +# @indntpoff direct %gs access IE -> LE against local var + 8049218: c7 c2 fc ff ff ff[ ]+mov \$0xfffffffc,%edx +# bl8 + 804921e: 90[ ]+nop * + 804921f: 90[ ]+nop * + 8049220: 65 8b 02[ ]+mov %gs:\(%edx\),%eax + 8049223: 90[ ]+nop * + 8049224: 90[ ]+nop * + 8049225: 90[ ]+nop * + 8049226: 90[ ]+nop * +# @gottpoff IE -> LE against hidden but not local var + 8049227: 65 8b 15 00 00 00 00 mov %gs:0x0,%edx + 804922e: 90[ ]+nop * + 804922f: 90[ ]+nop * + 8049230: 81 ea 4c 00 00 00[ ]+sub \$0x4c,%edx +# sh6 + 8049236: 90[ ]+nop * + 8049237: 90[ ]+nop * + 8049238: 90[ ]+nop * + 8049239: 90[ ]+nop * +# @indntpoff IE -> LE against hidden but not local var + 804923a: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax + 8049240: 90[ ]+nop * + 8049241: 90[ ]+nop * + 8049242: 81 c0 b8 ff ff ff[ ]+add \$0xffffffb8,%eax +# sh7 + 8049248: 90[ ]+nop * + 8049249: 90[ ]+nop * + 804924a: 90[ ]+nop * + 804924b: 90[ ]+nop * +# @indntpoff direct %gs access IE -> LE against hidden but not +# local var + 804924c: c7 c2 bc ff ff ff[ ]+mov \$0xffffffbc,%edx +# sh8 + 8049252: 90[ ]+nop * + 8049253: 90[ ]+nop * + 8049254: 65 8b 02[ ]+mov %gs:\(%edx\),%eax + 8049257: 90[ ]+nop * + 8049258: 90[ ]+nop * + 8049259: 90[ ]+nop * + 804925a: 90[ ]+nop * +# LE @tpoff, global var defined in exec + 804925b: ba a0 00 00 00[ ]+mov \$0xa0,%edx +# sg1 + 8049260: 90[ ]+nop * + 8049261: 90[ ]+nop * + 8049262: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax + 8049268: 90[ ]+nop * + 8049269: 90[ ]+nop * + 804926a: 29 d0[ ]+sub %edx,%eax + 804926c: 90[ ]+nop * + 804926d: 90[ ]+nop * + 804926e: 90[ ]+nop * + 804926f: 90[ ]+nop * +# LE @tpoff, local var + 8049270: b8 1f 00 00 00[ ]+mov \$0x1f,%eax +# bl1+1 + 8049275: 90[ ]+nop * + 8049276: 90[ ]+nop * + 8049277: 65 8b 15 00 00 00 00 mov %gs:0x0,%edx + 804927e: 90[ ]+nop * + 804927f: 90[ ]+nop * + 8049280: 29 c2[ ]+sub %eax,%edx + 8049282: 90[ ]+nop * + 8049283: 90[ ]+nop * + 8049284: 90[ ]+nop * + 8049285: 90[ ]+nop * +# LE @tpoff, hidden var defined in exec + 8049286: b8 5d 00 00 00[ ]+mov \$0x5d,%eax +# sh1+3 + 804928b: 90[ ]+nop * + 804928c: 90[ ]+nop * + 804928d: 65 8b 15 00 00 00 00 mov %gs:0x0,%edx + 8049294: 90[ ]+nop * + 8049295: 90[ ]+nop * + 8049296: 29 c2[ ]+sub %eax,%edx + 8049298: 90[ ]+nop * + 8049299: 90[ ]+nop * + 804929a: 90[ ]+nop * + 804929b: 90[ ]+nop * +# LE @ntpoff, global var defined in exec + 804929c: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax + 80492a2: 90[ ]+nop * + 80492a3: 90[ ]+nop * + 80492a4: 8d 90 64 ff ff ff[ ]+lea 0xffffff64\(%eax\),%edx +# sg2 + 80492aa: 90[ ]+nop * + 80492ab: 90[ ]+nop * + 80492ac: 90[ ]+nop * + 80492ad: 90[ ]+nop * +# LE @ntpoff, local var, non-canonical sequence + 80492ae: b8 e6 ff ff ff[ ]+mov \$0xffffffe6,%eax +# bl2+2 + 80492b3: 90[ ]+nop * + 80492b4: 90[ ]+nop * + 80492b5: 65 8b 15 00 00 00 00 mov %gs:0x0,%edx + 80492bc: 90[ ]+nop * + 80492bd: 90[ ]+nop * + 80492be: 01 c2[ ]+add %eax,%edx + 80492c0: 90[ ]+nop * + 80492c1: 90[ ]+nop * + 80492c2: 90[ ]+nop * + 80492c3: 90[ ]+nop * +# LE @ntpoff, hidden var defined in exec, non-canonical sequence + 80492c4: 65 8b 15 00 00 00 00 mov %gs:0x0,%edx + 80492cb: 90[ ]+nop * + 80492cc: 90[ ]+nop * + 80492cd: 81 c2 a5 ff ff ff[ ]+add \$0xffffffa5,%edx +# sh2+1 + 80492d3: 90[ ]+nop * + 80492d4: 90[ ]+nop * + 80492d5: 90[ ]+nop * + 80492d6: 90[ ]+nop * +# LE @ntpoff, global var defined in exec + 80492d7: 65 a1 68 ff ff ff[ ]+mov %gs:0xffffff68,%eax +# sg3 + 80492dd: 90[ ]+nop * + 80492de: 90[ ]+nop * + 80492df: 90[ ]+nop * + 80492e0: 90[ ]+nop * +# LE @ntpoff, local var + 80492e1: 65 8b 15 eb ff ff ff mov %gs:0xffffffeb,%edx +# bl3+3 + 80492e8: 90[ ]+nop * + 80492e9: 90[ ]+nop * + 80492ea: 90[ ]+nop * + 80492eb: 90[ ]+nop * +# LE @ntpoff, hidden var defined in exec + 80492ec: 65 8b 15 a9 ff ff ff mov %gs:0xffffffa9,%edx +# sh3+1 + 80492f3: 90[ ]+nop * + 80492f4: 90[ ]+nop * + 80492f5: 90[ ]+nop * + 80492f6: 90[ ]+nop * + 80492f7: 8b 5d fc[ ]+mov 0xfffffffc\(%ebp\),%ebx + 80492fa: c9[ ]+leave * + 80492fb: c3[ ]+ret * diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-i386/tlsbin.rd binutils-2.13.90.0.10/ld/testsuite/ld-i386/tlsbin.rd --- binutils-2.13.90.0.4/ld/testsuite/ld-i386/tlsbin.rd Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-i386/tlsbin.rd Fri Sep 27 08:33:09 2002 @@ -0,0 +1,167 @@ +#source: tlsbinpic.s +#source: tlsbin.s +#as: --32 +#ld: -melf_i386 tmpdir/libtlslib.so +#readelf: -Ssrl +#target: i?86-*-* + +There are 18 section headers, starting at offset 0x[0-9a-f]+: + +Section Headers: + \[Nr\] Name +Type +Addr +Off +Size +ES Flg Lk Inf Al + \[ 0\] +NULL +0+ 0+ 0+ 0+ +0 +0 +0 + \[ 1\] \.interp +.* + \[ 2\] \.hash +.* + \[ 3\] \.dynsym +.* + \[ 4\] \.dynstr +.* + \[ 5\] \.rel.dyn +.* + \[ 6\] \.rel.plt +.* + \[ 7\] \.plt +.* + \[ 8\] \.text +PROGBITS +0+8049000 .* + \[ 9\] \.data +.* + \[10\] .tdata +PROGBITS +0+804a000 [0-9a-f]+ 000060 00 WAT 0 0 1 + \[11\] .tbss +NOBITS +[0-9a-f]+ [0-9a-f]+ 000040 00 WAT 0 0 1 + \[12\] \.dynamic +DYNAMIC +0+804a060 .* + \[13\] \.got +PROGBITS +0+804a100 .* + \[14\] \.bss +.* + \[15\] \.shstrtab +.* + \[16\] \.symtab +.* + \[17\] \.strtab +.* +Key to Flags: +.* +.* +.* + +Elf file type is EXEC \(Executable file\) +Entry point 0x8049178 +There are 6 program headers, starting at offset [0-9]+ + +Program Headers: + Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align + PHDR.* + INTERP.* +.*Requesting program interpreter.* + LOAD.* + LOAD.* + DYNAMIC.* + TLS +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x0+60 0x0+a0 R +0x1 + + Section to Segment mapping: + Segment Sections... + 00 + + 01 +.interp * + 02 +.interp .hash .dynsym .dynstr .rel.dyn .rel.plt .plt .text * + 03 +.tdata .tbss .dynamic .got * + 04 +.tbss .dynamic * + 05 +.tdata .tbss * + +Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 9 entries: + Offset +Info +Type +Sym.Value +Sym. Name +0+804a110 0000010e R_386_TLS_TPOFF +0+ +sG3 +0+804a114 0000020e R_386_TLS_TPOFF +0+ +sG5 +0+804a118 0000040e R_386_TLS_TPOFF +0+ +sG7 +0+804a11c 00000525 R_386_TLS_TPOFF32 0+ +sG2 +0+804a120 00000625 R_386_TLS_TPOFF32 0+ +sG4 +0+804a124 0000060e R_386_TLS_TPOFF +0+ +sG4 +0+804a128 00000825 R_386_TLS_TPOFF32 0+ +sG6 +0+804a12c 00000925 R_386_TLS_TPOFF32 0+ +sG1 +0+804a130 00000d0e R_386_TLS_TPOFF +0+ +sG8 + +Relocation section '.rel.plt' at offset 0x30c contains 1 entries: + Offset +Info +Type +Sym.Value Sym. Name +0+804a10c 00000e07 R_386_JUMP_SLOT +[0-9a-f]+ +___tls_get_addr + +Symbol table '.dynsym' contains 15 entries: + +Num: +Value Size Type +Bind +Vis +Ndx Name + +0: 0+ +0 NOTYPE LOCAL DEFAULT UND * + +1: 0+ +0 TLS +GLOBAL DEFAULT UND sG3 + +2: 0+ +0 TLS +GLOBAL DEFAULT UND sG5 + +3: 0+804a060 +0 OBJECT GLOBAL DEFAULT ABS _DYNAMIC + +4: 0+ +0 TLS +GLOBAL DEFAULT UND sG7 + +5: 0+ +0 TLS +GLOBAL DEFAULT UND sG2 + +6: 0+ +0 TLS +GLOBAL DEFAULT UND sG4 + +7: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS __bss_start + +8: 0+ +0 TLS +GLOBAL DEFAULT UND sG6 + +9: 0+ +0 TLS +GLOBAL DEFAULT UND sG1 + +10: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _edata + +11: 0+804a100 +0 OBJECT GLOBAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ + +12: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _end + +13: 0+ +0 TLS +GLOBAL DEFAULT UND sG8 + +14: [0-9a-f]+ +0 FUNC +GLOBAL DEFAULT UND ___tls_get_addr + +Symbol table '.symtab' contains 74 entries: + +Num: +Value Size Type +Bind +Vis +Ndx Name + +0: 0+ +0 NOTYPE LOCAL DEFAULT UND * + +1: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +1 * + +2: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +2 * + +3: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +3 * + +4: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +4 * + +5: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +5 * + +6: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +6 * + +7: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +7 * + +8: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +8 * + +9: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +9 * + +10: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +10 * + +11: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +11 * + +12: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +12 * + +13: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +13 * + +14: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +14 * + +15: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +15 * + +16: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +16 * + +17: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +17 * + +18: 00000020 +0 TLS +LOCAL DEFAULT +10 sl1 + +19: 00000024 +0 TLS +LOCAL DEFAULT +10 sl2 + +20: 00000028 +0 TLS +LOCAL DEFAULT +10 sl3 + +21: 0000002c +0 TLS +LOCAL DEFAULT +10 sl4 + +22: 00000030 +0 TLS +LOCAL DEFAULT +10 sl5 + +23: 00000034 +0 TLS +LOCAL DEFAULT +10 sl6 + +24: 00000038 +0 TLS +LOCAL DEFAULT +10 sl7 + +25: 0000003c +0 TLS +LOCAL DEFAULT +10 sl8 + +26: 00000080 +0 TLS +LOCAL DEFAULT +11 bl1 + +27: 00000084 +0 TLS +LOCAL DEFAULT +11 bl2 + +28: 00000088 +0 TLS +LOCAL DEFAULT +11 bl3 + +29: 0000008c +0 TLS +LOCAL DEFAULT +11 bl4 + +30: 00000090 +0 TLS +LOCAL DEFAULT +11 bl5 + +31: 00000094 +0 TLS +LOCAL DEFAULT +11 bl6 + +32: 00000098 +0 TLS +LOCAL DEFAULT +11 bl7 + +33: 0000009c +0 TLS +LOCAL DEFAULT +11 bl8 + +34: 0+ +0 TLS +GLOBAL DEFAULT UND sG3 + +35: 0000001c +0 TLS +GLOBAL DEFAULT +10 sg8 + +36: 0000007c +0 TLS +GLOBAL DEFAULT +11 bg8 + +37: 00000074 +0 TLS +GLOBAL DEFAULT +11 bg6 + +38: 0+ +0 TLS +GLOBAL DEFAULT UND sG5 + +39: 00000068 +0 TLS +GLOBAL DEFAULT +11 bg3 + +40: 0+804a060 +0 OBJECT GLOBAL DEFAULT ABS _DYNAMIC + +41: 00000008 +0 TLS +GLOBAL DEFAULT +10 sg3 + +42: 0+ +0 TLS +GLOBAL DEFAULT UND sG7 + +43: 00000048 +0 TLS +GLOBAL HIDDEN +10 sh3 + +44: 0+ +0 TLS +GLOBAL DEFAULT UND sG2 + +45: 0000000c +0 TLS +GLOBAL DEFAULT +10 sg4 + +46: 0+ +0 TLS +GLOBAL DEFAULT UND sG4 + +47: 00000010 +0 TLS +GLOBAL DEFAULT +10 sg5 + +48: 00000070 +0 TLS +GLOBAL DEFAULT +11 bg5 + +49: 00000058 +0 TLS +GLOBAL HIDDEN +10 sh7 + +50: 0000005c +0 TLS +GLOBAL HIDDEN +10 sh8 + +51: 0+ +0 TLS +GLOBAL DEFAULT +10 sg1 + +52: 0+8049178 +0 FUNC +GLOBAL DEFAULT +8 _start + +53: 0000004c +0 TLS +GLOBAL HIDDEN +10 sh4 + +54: 00000078 +0 TLS +GLOBAL DEFAULT +11 bg7 + +55: 00000050 +0 TLS +GLOBAL HIDDEN +10 sh5 + +56: 0+804a134 +0 NOTYPE GLOBAL DEFAULT ABS __bss_start + +57: 0+ +0 TLS +GLOBAL DEFAULT UND sG6 + +58: 0+8049000 +0 FUNC +GLOBAL DEFAULT +8 fn2 + +59: 00000004 +0 TLS +GLOBAL DEFAULT +10 sg2 + +60: 0+ +0 TLS +GLOBAL DEFAULT UND sG1 + +61: 00000040 +0 TLS +GLOBAL HIDDEN +10 sh1 + +62: 00000014 +0 TLS +GLOBAL DEFAULT +10 sg6 + +63: 00000018 +0 TLS +GLOBAL DEFAULT +10 sg7 + +64: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _edata + +65: 0+804a100 +0 OBJECT GLOBAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ + +66: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _end + +67: 00000044 +0 TLS +GLOBAL HIDDEN +10 sh2 + +68: 00000054 +0 TLS +GLOBAL HIDDEN +10 sh6 + +69: 0+ +0 TLS +GLOBAL DEFAULT UND sG8 + +70: 00000064 +0 TLS +GLOBAL DEFAULT +11 bg2 + +71: 00000060 +0 TLS +GLOBAL DEFAULT +11 bg1 + +72: [0-9a-f]+ +0 FUNC +GLOBAL DEFAULT UND ___tls_get_addr + +73: 0000006c +0 TLS +GLOBAL DEFAULT +11 bg4 diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-i386/tlsbin.s binutils-2.13.90.0.10/ld/testsuite/ld-i386/tlsbin.s --- binutils-2.13.90.0.4/ld/testsuite/ld-i386/tlsbin.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-i386/tlsbin.s Fri Sep 27 08:33:09 2002 @@ -0,0 +1,165 @@ + .section ".tbss", "awT", @nobits + .globl bg1, bg2, bg3, bg4, bg5, bg6, bg7, bg8 +bg1: .space 4 +bg2: .space 4 +bg3: .space 4 +bg4: .space 4 +bg5: .space 4 +bg6: .space 4 +bg7: .space 4 +bg8: .space 4 +bl1: .space 4 +bl2: .space 4 +bl3: .space 4 +bl4: .space 4 +bl5: .space 4 +bl6: .space 4 +bl7: .space 4 +bl8: .space 4 + .text + .globl _start + .type _start,@function +_start: + pushl %ebp + movl %esp, %ebp + /* Set up .GOT pointer for non-pic @gottpoff sequences */ + call 1f +1: popl %ecx + addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ecx + nop;nop;nop;nop + + /* @gottpoff IE against global var */ + movl %gs:0, %edx + nop;nop + subl sG6@gottpoff(%ecx), %edx + nop;nop;nop;nop + + /* @indntpoff IE against global var */ + movl %gs:0, %eax + nop;nop + addl sG7@indntpoff, %eax + nop;nop;nop;nop + + /* @indntpoff direct %gs access IE against global var */ + movl sG8@indntpoff, %edx + nop;nop + movl %gs:(%edx), %eax + nop;nop;nop;nop + + /* @gottpoff IE -> LE against global var defined in exec */ + movl %gs:0, %edx + nop;nop + subl bg6@gottpoff(%ecx), %edx + nop;nop;nop;nop + + /* @indntpoff IE -> LE against global var defined in exec */ + movl %gs:0, %eax + nop;nop + addl bg7@indntpoff, %eax + nop;nop;nop;nop + + /* @indntpoff direct %gs access IE -> LE against global var defined + in exec */ + movl bg8@indntpoff, %edx + nop;nop + movl %gs:(%edx), %eax + nop;nop;nop;nop + + /* @gottpoff IE -> LE against local var */ + movl %gs:0, %edx + nop;nop + subl bl6@gottpoff(%ecx), %edx + nop;nop;nop;nop + + /* @indntpoff IE -> LE against local var */ + movl %gs:0, %eax + nop;nop + addl bl7@indntpoff, %eax + nop;nop;nop;nop + + /* @indntpoff direct %gs access IE -> LE against local var */ + movl bl8@indntpoff, %edx + nop;nop + movl %gs:(%edx), %eax + nop;nop;nop;nop + + /* @gottpoff IE -> LE against hidden but not local var */ + movl %gs:0, %edx + nop;nop + subl sh6@gottpoff(%ecx), %edx + nop;nop;nop;nop + + /* @indntpoff IE -> LE against hidden but not local var */ + movl %gs:0, %eax + nop;nop + addl sh7@indntpoff, %eax + nop;nop;nop;nop + + /* @indntpoff direct %gs access IE -> LE against hidden but not + local var */ + movl sh8@indntpoff, %edx + nop;nop + movl %gs:(%edx), %eax + nop;nop;nop;nop + + /* LE @tpoff, global var defined in exec */ + movl $sg1@tpoff, %edx + nop;nop + movl %gs:0, %eax + nop;nop + subl %edx, %eax + nop;nop;nop;nop + + /* LE @tpoff, local var */ + movl $-1+bl1@tpoff, %eax + nop;nop + movl %gs:0, %edx + nop;nop + subl %eax, %edx + nop;nop;nop;nop + + /* LE @tpoff, hidden var defined in exec */ + movl $sh1@tpoff-3, %eax + nop;nop + movl %gs:0, %edx + nop;nop + subl %eax, %edx + nop;nop;nop;nop + + /* LE @ntpoff, global var defined in exec */ + movl %gs:0, %eax + nop;nop + leal sg2@ntpoff(%eax), %edx + nop;nop;nop;nop + + /* LE @ntpoff, local var, non-canonical sequence */ + movl $2+bl2@ntpoff, %eax + nop;nop + movl %gs:0, %edx + nop;nop + addl %eax, %edx + nop;nop;nop;nop + + /* LE @ntpoff, hidden var defined in exec, non-canonical sequence */ + movl %gs:0, %edx + nop;nop + addl $sh2@ntpoff+1, %edx + nop;nop;nop;nop + + /* Direct %gs access */ + + /* LE @ntpoff, global var defined in exec */ + movl %gs:sg3@ntpoff, %eax + nop;nop;nop;nop + + /* LE @ntpoff, local var */ + movl %gs:bl3@ntpoff+3, %edx + nop;nop;nop;nop + + /* LE @ntpoff, hidden var defined in exec */ + movl %gs:1+sh3@ntpoff, %edx + nop;nop;nop;nop + + movl -4(%ebp), %ebx + leave + ret diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-i386/tlsbin.sd binutils-2.13.90.0.10/ld/testsuite/ld-i386/tlsbin.sd --- binutils-2.13.90.0.4/ld/testsuite/ld-i386/tlsbin.sd Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-i386/tlsbin.sd Fri Sep 27 08:33:09 2002 @@ -0,0 +1,14 @@ +#source: tlsbinpic.s +#source: tlsbin.s +#as: --32 +#ld: -melf_i386 tmpdir/libtlslib.so +#objdump: -sj.got +#target: i?86-*-* + +.*: file format elf32-i386 + +Contents of section \.got: + 804a100 [0-9a-f]+ 00000000 00000000 [0-9a-f]+ .* + 804a110 00000000 00000000 00000000 00000000 .* + 804a120 00000000 00000000 00000000 00000000 .* + 804a130 00000000 +.* diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-i386/tlsbin.td binutils-2.13.90.0.10/ld/testsuite/ld-i386/tlsbin.td --- binutils-2.13.90.0.4/ld/testsuite/ld-i386/tlsbin.td Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-i386/tlsbin.td Fri Sep 27 08:33:09 2002 @@ -0,0 +1,16 @@ +#source: tlsbinpic.s +#source: tlsbin.s +#as: --32 +#ld: -melf_i386 tmpdir/libtlslib.so +#objdump: -sj.tdata +#target: i?86-*-* + +.*: file format elf32-i386 + +Contents of section \.tdata: + 804a000 11000000 12000000 13000000 14000000 .* + 804a010 15000000 16000000 17000000 18000000 .* + 804a020 41000000 42000000 43000000 44000000 .* + 804a030 45000000 46000000 47000000 48000000 .* + 804a040 01010000 02010000 03010000 04010000 .* + 804a050 05010000 06010000 07010000 08010000 .* diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-i386/tlsbinpic.s binutils-2.13.90.0.10/ld/testsuite/ld-i386/tlsbinpic.s --- binutils-2.13.90.0.4/ld/testsuite/ld-i386/tlsbinpic.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-i386/tlsbinpic.s Wed Oct 2 10:17:20 2002 @@ -0,0 +1,168 @@ + /* Force .got aligned to 4K, so it very likely gets at 0x804a100 + (0x60 bytes .tdata and 0xa0 bytes .dynamic) */ + .data + .balign 4096 + .section ".tdata", "awT", @progbits + .globl sg1, sg2, sg3, sg4, sg5, sg6, sg7, sg8 + .globl sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8 + .hidden sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8 +sg1: .long 17 +sg2: .long 18 +sg3: .long 19 +sg4: .long 20 +sg5: .long 21 +sg6: .long 22 +sg7: .long 23 +sg8: .long 24 +sl1: .long 65 +sl2: .long 66 +sl3: .long 67 +sl4: .long 68 +sl5: .long 69 +sl6: .long 70 +sl7: .long 71 +sl8: .long 72 +sh1: .long 257 +sh2: .long 258 +sh3: .long 259 +sh4: .long 260 +sh5: .long 261 +sh6: .long 262 +sh7: .long 263 +sh8: .long 264 + /* Force .text aligned to 4K, so it very likely gets at 0x8049000. */ + .text + .balign 4096 + .globl fn2 + .type fn2,@function +fn2: + pushl %ebp + movl %esp, %ebp + pushl %ebx + pushl %eax + call 1f +1: popl %ebx + addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ebx + nop;nop;nop;nop + + /* GD -> IE because variable is not defined in executable */ + leal sG1@tlsgd(,%ebx,1), %eax + call ___tls_get_addr@plt + nop;nop;nop;nop + + /* GD -> IE because variable is not defined in executable where + the variable is referenced through @gottpoff too */ + leal sG2@tlsgd(,%ebx,1), %eax + call ___tls_get_addr@plt + nop;nop;nop;nop + + /* GD -> IE because variable is not defined in executable where + the variable is referenced through @gotntpoff too */ + leal sG3@tlsgd(,%ebx,1), %eax + call ___tls_get_addr@plt + nop;nop;nop;nop + + /* GD -> IE because variable is not defined in executable where + the variable is referenced through @gottpoff and @gotntpoff too */ + leal sG4@tlsgd(,%ebx,1), %eax + call ___tls_get_addr@plt + nop;nop;nop;nop + + /* GD -> LE with global variable defined in executable */ + leal sg1@tlsgd(,%ebx,1), %eax + call ___tls_get_addr@plt + nop;nop;nop;nop + + /* GD -> LE with local variable defined in executable */ + leal sl1@tlsgd(,%ebx,1), %eax + call ___tls_get_addr@plt + nop;nop;nop;nop + + /* GD -> LE with hidden variable defined in executable */ + leal sh1@tlsgd(,%ebx,1), %eax + call ___tls_get_addr@plt + nop;nop;nop;nop + + /* LD -> LE */ + leal sl1@tlsldm(%ebx), %eax + call ___tls_get_addr@PLT + nop;nop + leal sl1@dtpoff(%eax), %edx + nop;nop + leal sl2@dtpoff(%eax), %ecx + nop;nop;nop;nop + + /* LD -> LE against hidden variables */ + leal sh1@tlsldm(%ebx), %eax + call ___tls_get_addr@PLT + nop;nop + leal sh1@dtpoff(%eax), %edx + nop;nop + leal sh2@dtpoff(%eax), %ecx + nop;nop;nop;nop + + /* @gottpoff IE against global var */ + movl %gs:0, %ecx + nop;nop + subl sG2@gottpoff(%ebx), %ecx + nop;nop;nop;nop + + /* @gottpoff IE against global var */ + movl %gs:0, %eax + nop;nop + subl sG4@gottpoff(%ebx), %eax + nop;nop;nop;nop + + /* @gotntpoff IE against global var */ + movl %gs:0, %ecx + nop;nop + addl sG3@gotntpoff(%ebx), %ecx + nop;nop;nop;nop + + /* @gotntpoff IE against global var */ + movl %gs:0, %eax + nop;nop + addl sG4@gotntpoff(%ebx), %eax + nop;nop;nop;nop + + /* @gottpoff IE -> LE against global var defined in exec */ + movl %gs:0, %ecx + nop;nop + subl sg1@gottpoff(%ebx), %ecx + nop;nop;nop;nop + + /* @gotntpoff IE -> LE against local var */ + movl %gs:0, %ecx + nop;nop + addl sl1@gotntpoff(%ebx), %eax + nop;nop;nop;nop + + /* @gottpoff IE -> LE against hidden var */ + movl %gs:0, %ecx + nop;nop + subl sh1@gottpoff(%ebx), %ecx + nop;nop;nop;nop + + /* Direct access through %gs */ + + /* @gotntpoff IE against global var */ + movl sG5@gotntpoff(%ebx), %ecx + nop;nop + movl %gs:(%ecx), %edx + nop;nop;nop;nop + + /* @gotntpoff IE->LE against local var */ + movl sl5@gotntpoff(%ebx), %eax + nop;nop + movl %gs:(%eax), %edx + nop;nop;nop;nop + + /* @gotntpoff IE->LE against hidden var */ + movl sh5@gotntpoff(%ebx), %edx + nop;nop + movl %gs:(%edx), %edx + nop;nop;nop;nop + + movl -4(%ebp), %ebx + leave + ret diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-i386/tlsg.s binutils-2.13.90.0.10/ld/testsuite/ld-i386/tlsg.s --- binutils-2.13.90.0.4/ld/testsuite/ld-i386/tlsg.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-i386/tlsg.s Wed Oct 2 10:17:20 2002 @@ -0,0 +1,12 @@ + .section .tbss,"awT",@nobits + .align 4 + .skip 24 + .type a,@object + .size a,4 +a: + .zero 4 + .text + .globl _start +_start: + .section .debug_foobar + .long a@dtpoff diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-i386/tlsg.sd binutils-2.13.90.0.10/ld/testsuite/ld-i386/tlsg.sd --- binutils-2.13.90.0.4/ld/testsuite/ld-i386/tlsg.sd Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-i386/tlsg.sd Wed Oct 2 10:17:20 2002 @@ -0,0 +1,10 @@ +#source: tlsg.s +#as: --32 +#ld: -melf_i386 +#objdump: -sj.debug_foobar +#target: i?86-*-* + +.*: +file format elf32-i386 + +Contents of section .debug_foobar: + 0+ 18000000 +.* diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-i386/tlsindntpoff.dd binutils-2.13.90.0.10/ld/testsuite/ld-i386/tlsindntpoff.dd --- binutils-2.13.90.0.4/ld/testsuite/ld-i386/tlsindntpoff.dd Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-i386/tlsindntpoff.dd Wed Oct 2 10:17:20 2002 @@ -0,0 +1,16 @@ +#source: tlsindntpoff.s +#as: --32 +#ld: -melf_i386 +#objdump: -drj.text +#target: i?86-*-* + +.*: +file format elf32-i386 + +Disassembly of section .text: + +[0-9a-f]+000 <_start>: + [0-9a-f]+000: 39 d8[ ]+cmp %ebx,%eax + [0-9a-f]+002: 73 08[ ]+jae [0-9a-f]+00c <_start\+0xc> + [0-9a-f]+004: b8 fc ff ff ff[ ]+mov \$0xfffffffc,%eax + [0-9a-f]+009: 65 8b 00[ ]+mov %gs:\(%eax\),%eax + [0-9a-f]+00c: c3[ ]+ret * diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-i386/tlsindntpoff.s binutils-2.13.90.0.10/ld/testsuite/ld-i386/tlsindntpoff.s --- binutils-2.13.90.0.4/ld/testsuite/ld-i386/tlsindntpoff.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-i386/tlsindntpoff.s Wed Oct 2 10:17:20 2002 @@ -0,0 +1,19 @@ + /* Force .got aligned to 4K, so it very likely gets at 0x804a100 + (0x60 bytes .tdata and 0xa0 bytes .dynamic) */ + .data + .balign 4096 + .section ".tdata", "awT", @progbits + .globl foo +foo: .long 27 + + /* Force .text aligned to 4K, so it very likely gets at 0x8049000. */ + .text + .balign 4096 + .globl _start + .type _start,@function +_start: + cmp %ebx, %eax + jae 1f + movl foo@indntpoff, %eax + movl %gs:(%eax), %eax +1: ret diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-i386/tlslib.s binutils-2.13.90.0.10/ld/testsuite/ld-i386/tlslib.s --- binutils-2.13.90.0.4/ld/testsuite/ld-i386/tlslib.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-i386/tlslib.s Fri Sep 27 08:33:09 2002 @@ -0,0 +1,17 @@ + .section ".tdata", "awT", @progbits + .globl sG1, sG2, sG3, sG4, sG5, sG6, sG7, sG8 +sG1: .long 513 +sG2: .long 514 +sG3: .long 515 +sG4: .long 516 +sG5: .long 517 +sG6: .long 518 +sG7: .long 519 +sG8: .long 520 + + .text + /* Dummy. */ + .globl ___tls_get_addr + .type ___tls_get_addr,@function +___tls_get_addr: + ret diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-i386/tlsnopic.dd binutils-2.13.90.0.10/ld/testsuite/ld-i386/tlsnopic.dd --- binutils-2.13.90.0.4/ld/testsuite/ld-i386/tlsnopic.dd Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-i386/tlsnopic.dd Fri Sep 27 08:33:09 2002 @@ -0,0 +1,161 @@ +#source: tlsnopic1.s +#source: tlsnopic2.s +#as: --32 +#ld: -shared -melf_i386 +#objdump: -drj.text +#target: i?86-*-* + +.*: +file format elf32-i386 + +Disassembly of section .text: + +0+1000 : + 1000: 55[ ]+push %ebp + 1001: 89 e5[ ]+mov %esp,%ebp +# @indntpoff IE against global var + 1003: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax + 1009: 90[ ]+nop * + 100a: 90[ ]+nop * + 100b: 03 05 94 20 00 00[ ]+add 0x2094,%eax +# ->R_386_TLS_TPOFF sg1 + 1011: 90[ ]+nop * + 1012: 90[ ]+nop * + 1013: 90[ ]+nop * + 1014: 90[ ]+nop * +# @indntpoff direct %gs access IE against global var + 1015: 8b 15 98 20 00 00[ ]+mov 0x2098,%edx +# ->R_386_TLS_TPOFF sg2 + 101b: 90[ ]+nop * + 101c: 90[ ]+nop * + 101d: 65 8b 02[ ]+mov %gs:\(%edx\),%eax + 1020: 90[ ]+nop * + 1021: 90[ ]+nop * + 1022: 90[ ]+nop * + 1023: 90[ ]+nop * +# @indntpoff IE against hidden var + 1024: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax + 102a: 90[ ]+nop * + 102b: 90[ ]+nop * + 102c: 03 05 9c 20 00 00[ ]+add 0x209c,%eax +# ->R_386_TLS_TPOFF [0x14000000] + 1032: 90[ ]+nop * + 1033: 90[ ]+nop * + 1034: 90[ ]+nop * + 1035: 90[ ]+nop * +# @indntpoff direct %gs access IE against hidden var + 1036: 8b 15 a0 20 00 00[ ]+mov 0x20a0,%edx +# ->R_386_TLS_TPOFF [0x18000000] + 103c: 90[ ]+nop * + 103d: 90[ ]+nop * + 103e: 65 8b 02[ ]+mov %gs:\(%edx\),%eax + 1041: 90[ ]+nop * + 1042: 90[ ]+nop * + 1043: 90[ ]+nop * + 1044: 90[ ]+nop * +# @indntpoff IE against local var + 1045: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax + 104b: 90[ ]+nop * + 104c: 90[ ]+nop * + 104d: 03 05 8c 20 00 00[ ]+add 0x208c,%eax +# ->R_386_TLS_TPOFF [0x00000000] + 1053: 90[ ]+nop * + 1054: 90[ ]+nop * + 1055: 90[ ]+nop * + 1056: 90[ ]+nop * +# @indntpoff direct %gs access IE against local var + 1057: 8b 15 90 20 00 00[ ]+mov 0x2090,%edx +# ->R_386_TLS_TPOFF [0x04000000] + 105d: 90[ ]+nop * + 105e: 90[ ]+nop * + 105f: 65 8b 02[ ]+mov %gs:\(%edx\),%eax + 1062: 90[ ]+nop * + 1063: 90[ ]+nop * + 1064: 90[ ]+nop * + 1065: 90[ ]+nop * +# LE @tpoff, global var + 1066: ba fd ff ff ff[ ]+mov \$0xfffffffd,%edx +# R_386_TLS_TPOFF32 sg3 + 106b: 90[ ]+nop * + 106c: 90[ ]+nop * + 106d: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax + 1073: 90[ ]+nop * + 1074: 90[ ]+nop * + 1075: 29 d0[ ]+sub %edx,%eax + 1077: 90[ ]+nop * + 1078: 90[ ]+nop * + 1079: 90[ ]+nop * + 107a: 90[ ]+nop * +# LE @tpoff, local var + 107b: b8 f7 ff ff ff[ ]+mov \$0xfffffff7,%eax +# R_386_TLS_TPOFF32 + 1080: 90[ ]+nop * + 1081: 90[ ]+nop * + 1082: 65 8b 15 00 00 00 00 mov %gs:0x0,%edx + 1089: 90[ ]+nop * + 108a: 90[ ]+nop * + 108b: 29 c2[ ]+sub %eax,%edx + 108d: 90[ ]+nop * + 108e: 90[ ]+nop * + 108f: 90[ ]+nop * + 1090: 90[ ]+nop * +# LE @ntpoff, global var + 1091: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax + 1097: 90[ ]+nop * + 1098: 90[ ]+nop * + 1099: 8d 90 02 00 00 00[ ]+lea 0x2\(%eax\),%edx +# R_386_TLS_TPOFF sg4 + 109f: 90[ ]+nop * + 10a0: 90[ ]+nop * + 10a1: 90[ ]+nop * + 10a2: 90[ ]+nop * +# LE @ntpoff, hidden var, non-canonical sequence + 10a3: b8 1c 00 00 00[ ]+mov \$0x1c,%eax +# R_386_TLS_TPOFF + 10a8: 90[ ]+nop * + 10a9: 90[ ]+nop * + 10aa: 65 8b 15 00 00 00 00 mov %gs:0x0,%edx + 10b1: 90[ ]+nop * + 10b2: 90[ ]+nop * + 10b3: 01 c2[ ]+add %eax,%edx + 10b5: 90[ ]+nop * + 10b6: 90[ ]+nop * + 10b7: 90[ ]+nop * + 10b8: 90[ ]+nop * +# LE @ntpoff, local var, non-canonical sequence + 10b9: 65 8b 15 00 00 00 00 mov %gs:0x0,%edx + 10c0: 90[ ]+nop * + 10c1: 90[ ]+nop * + 10c2: 81 c2 0d 00 00 00[ ]+add \$0xd,%edx +# R_386_TLS_TPOFF + 10c8: 90[ ]+nop * + 10c9: 90[ ]+nop * + 10ca: 90[ ]+nop * + 10cb: 90[ ]+nop * +# Direct %gs access +# LE @ntpoff, global var + 10cc: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax +# R_386_TLS_TPOFF sg5 + 10d2: 90[ ]+nop * + 10d3: 90[ ]+nop * + 10d4: 90[ ]+nop * + 10d5: 90[ ]+nop * +# LE @ntpoff, local var + 10d6: 65 8b 15 13 00 00 00 mov %gs:0x13,%edx +# R_386_TLS_TPOFF + 10dd: 90[ ]+nop * + 10de: 90[ ]+nop * + 10df: 90[ ]+nop * + 10e0: 90[ ]+nop * +# LE @ntpoff, hidden var + 10e1: 65 8b 15 21 00 00 00 mov %gs:0x21,%edx +# R_386_TLS_TPOFF + 10e8: 90[ ]+nop * + 10e9: 90[ ]+nop * + 10ea: 90[ ]+nop * + 10eb: 90[ ]+nop * + 10ec: 8b 5d fc[ ]+mov 0xfffffffc\(%ebp\),%ebx + 10ef: c9[ ]+leave * + 10f0: c3[ ]+ret * + 10f1: 90[ ]+nop * + 10f2: 90[ ]+nop * + 10f3: 90[ ]+nop * diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-i386/tlsnopic.rd binutils-2.13.90.0.10/ld/testsuite/ld-i386/tlsnopic.rd --- binutils-2.13.90.0.4/ld/testsuite/ld-i386/tlsnopic.rd Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-i386/tlsnopic.rd Fri Sep 27 08:33:09 2002 @@ -0,0 +1,133 @@ +#source: tlsnopic1.s +#source: tlsnopic2.s +#as: --32 +#ld: -shared -melf_i386 +#readelf: -Ssrl +#target: i?86-*-* + +There are 14 section headers, starting at offset 0x[0-9a-f]+: + +Section Headers: + \[Nr\] Name +Type +Addr +Off +Size +ES Flg Lk Inf Al + \[ 0\] +NULL +0+ 0+ 0+ 0+ +0 +0 +0 + \[ 1\] \.hash +.* + \[ 2\] \.dynsym +.* + \[ 3\] \.dynstr +.* + \[ 4\] \.rel.dyn +.* + \[ 5\] \.text +PROGBITS +0+1000 .* + \[ 6\] \.data +.* + \[ 7\] .tbss +NOBITS +[0-9a-f]+ [0-9a-f]+ 000024 00 WAT 0 0 1 + \[ 8\] \.dynamic +DYNAMIC +0+2000 .* + \[ 9\] \.got +PROGBITS +0+2080 .* + \[10\] \.bss +.* + \[11\] \.shstrtab +.* + \[12\] \.symtab +.* + \[13\] \.strtab +.* +Key to Flags: +.* +.* +.* + +Elf file type is DYN \(Shared object file\) +Entry point 0x1000 +There are 4 program headers, starting at offset [0-9]+ + +Program Headers: + Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align + LOAD.* + LOAD.* + DYNAMIC.* + TLS +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x0+ 0x0+24 R +0x1 + + Section to Segment mapping: + Segment Sections... + 00 +.hash .dynsym .dynstr .rel.dyn .text * + 01 +.tbss .dynamic .got * + 02 +.tbss .dynamic * + 03 +.tbss * + +Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 20 entries: + Offset +Info +Type +Sym.Value +Sym. Name +0+100d 0+8 R_386_RELATIVE + +0+1017 0+8 R_386_RELATIVE + +0+102e 0+8 R_386_RELATIVE + +0+1038 0+8 R_386_RELATIVE + +0+104f 0+8 R_386_RELATIVE + +0+1059 0+8 R_386_RELATIVE + +0+1067 0+c25 R_386_TLS_TPOFF32 0+ sg3 +0+107c 0+25 R_386_TLS_TPOFF32 +0+10a4 0+e R_386_TLS_TPOFF + +0+10c4 0+e R_386_TLS_TPOFF + +0+10d9 0+e R_386_TLS_TPOFF + +0+10e4 0+e R_386_TLS_TPOFF + +0+208c 0+e R_386_TLS_TPOFF + +0+2090 0+e R_386_TLS_TPOFF + +0+209c 0+e R_386_TLS_TPOFF + +0+20a0 0+e R_386_TLS_TPOFF + +0+109b 0+d0e R_386_TLS_TPOFF 0+ sg4 +0+10ce 0+f0e R_386_TLS_TPOFF 0+ sg5 +0+2094 0+100e R_386_TLS_TPOFF 0+ sg1 +0+2098 0+120e R_386_TLS_TPOFF 0+ sg2 + + +Symbol table '.dynsym' contains 22 entries: + +Num: +Value Size Type +Bind +Vis +Ndx Name + +0: 0+ +0 NOTYPE LOCAL DEFAULT UND * + +1: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +1 * + +2: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +2 * + +3: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +3 * + +4: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +4 * + +5: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +5 * + +6: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +6 * + +7: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +7 * + +8: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +8 * + +9: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +9 * + +10: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +10 * + +11: [0-9a-f]+ +0 OBJECT GLOBAL DEFAULT ABS _DYNAMIC + +12: 0+ +0 NOTYPE GLOBAL DEFAULT UND sg3 + +13: 0+ +0 NOTYPE GLOBAL DEFAULT UND sg4 + +14: 0+1000 +0 FUNC +GLOBAL DEFAULT +5 fn3 + +15: 0+ +0 NOTYPE GLOBAL DEFAULT UND sg5 + +16: 0+ +0 NOTYPE GLOBAL DEFAULT UND sg1 + +17: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS __bss_start + +18: 0+ +0 NOTYPE GLOBAL DEFAULT UND sg2 + +19: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _edata + +20: 0+2080 +0 OBJECT GLOBAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ + +21: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _end + +Symbol table '.symtab' contains 34 entries: + +Num: +Value Size Type +Bind +Vis +Ndx Name + +0: 0+ +0 NOTYPE LOCAL DEFAULT UND * + +1: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +1 * + +2: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +2 * + +3: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +3 * + +4: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +4 * + +5: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +5 * + +6: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +6 * + +7: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +7 * + +8: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +8 * + +9: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +9 * + +10: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +10 * + +11: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +11 * + +12: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +12 * + +13: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +13 * + +14: 0+00 +0 TLS +LOCAL DEFAULT +7 bl1 + +15: 0+04 +0 TLS +LOCAL DEFAULT +7 bl2 + +16: 0+08 +0 TLS +LOCAL DEFAULT +7 bl3 + +17: 0+0c +0 TLS +LOCAL DEFAULT +7 bl4 + +18: 0+10 +0 TLS +LOCAL DEFAULT +7 bl5 + +19: 0+1c +0 TLS +LOCAL HIDDEN +7 sh3 + +20: 0+20 +0 TLS +LOCAL HIDDEN +7 sh4 + +21: 0+14 +0 TLS +LOCAL HIDDEN +7 sh1 + +22: 0+18 +0 TLS +LOCAL HIDDEN +7 sh2 + +23: [0-9a-f]+ +0 OBJECT GLOBAL DEFAULT ABS _DYNAMIC + +24: 0+ +0 NOTYPE GLOBAL DEFAULT UND sg3 + +25: 0+ +0 NOTYPE GLOBAL DEFAULT UND sg4 + +26: 0+1000 +0 FUNC +GLOBAL DEFAULT +5 fn3 + +27: 0+ +0 NOTYPE GLOBAL DEFAULT UND sg5 + +28: 0+ +0 NOTYPE GLOBAL DEFAULT UND sg1 + +29: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS __bss_start + +30: 0+ +0 NOTYPE GLOBAL DEFAULT UND sg2 + +31: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _edata + +32: 0+2080 +0 OBJECT GLOBAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ + +33: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _end diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-i386/tlsnopic.sd binutils-2.13.90.0.10/ld/testsuite/ld-i386/tlsnopic.sd --- binutils-2.13.90.0.4/ld/testsuite/ld-i386/tlsnopic.sd Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-i386/tlsnopic.sd Fri Sep 27 08:33:09 2002 @@ -0,0 +1,13 @@ +#source: tlsnopic1.s +#source: tlsnopic2.s +#as: --32 +#ld: -shared -melf_i386 +#objdump: -sj.got +#target: i?86-*-* + +.*: file format elf32-i386 + +Contents of section \.got: + 2080 [0-9a-f]+ 00000000 00000000 00000000 .* + 2090 04000000 00000000 00000000 14000000 .* + 20a0 18000000 +.* diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-i386/tlsnopic1.s binutils-2.13.90.0.10/ld/testsuite/ld-i386/tlsnopic1.s --- binutils-2.13.90.0.4/ld/testsuite/ld-i386/tlsnopic1.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-i386/tlsnopic1.s Fri Sep 27 08:33:09 2002 @@ -0,0 +1,107 @@ + .data + /* Align, so that .got is likely at address 0x2080. */ + .balign 4096 + .section ".tbss", "awT", @nobits +bl1: .space 4 +bl2: .space 4 +bl3: .space 4 +bl4: .space 4 +bl5: .space 4 + .text + /* Align, so that fn3 is likely at address 0x1000. */ + .balign 4096 + .globl fn3 + .type fn3,@function +fn3: + pushl %ebp + movl %esp, %ebp + + /* @indntpoff IE against global var */ + movl %gs:0, %eax + nop;nop + addl sg1@indntpoff, %eax + nop;nop;nop;nop + + /* @indntpoff direct %gs access IE against global var */ + movl sg2@indntpoff, %edx + nop;nop + movl %gs:(%edx), %eax + nop;nop;nop;nop + + /* @indntpoff IE against hidden var */ + movl %gs:0, %eax + nop;nop + addl sh1@indntpoff, %eax + nop;nop;nop;nop + + /* @indntpoff direct %gs access IE against hidden var */ + movl sh2@indntpoff, %edx + nop;nop + movl %gs:(%edx), %eax + nop;nop;nop;nop + + /* @indntpoff IE against local var */ + movl %gs:0, %eax + nop;nop + addl bl1@indntpoff, %eax + nop;nop;nop;nop + + /* @indntpoff direct %gs access IE against local var */ + movl bl2@indntpoff, %edx + nop;nop + movl %gs:(%edx), %eax + nop;nop;nop;nop + + /* LE @tpoff, global var */ + movl $-3+sg3@tpoff, %edx + nop;nop + movl %gs:0, %eax + nop;nop + subl %edx, %eax + nop;nop;nop;nop + + /* LE @tpoff, local var */ + movl $-1+bl3@tpoff, %eax + nop;nop + movl %gs:0, %edx + nop;nop + subl %eax, %edx + nop;nop;nop;nop + + /* LE @ntpoff, global var */ + movl %gs:0, %eax + nop;nop + leal 2+sg4@ntpoff(%eax), %edx + nop;nop;nop;nop + + /* LE @ntpoff, hidden var, non-canonical sequence */ + movl $sh3@ntpoff, %eax + nop;nop + movl %gs:0, %edx + nop;nop + addl %eax, %edx + nop;nop;nop;nop + + /* LE @ntpoff, local var, non-canonical sequence */ + movl %gs:0, %edx + nop;nop + addl $bl4@ntpoff+1, %edx + nop;nop;nop;nop + + /* Direct %gs access */ + + /* LE @ntpoff, global var */ + movl %gs:sg5@ntpoff, %eax + nop;nop;nop;nop + + /* LE @ntpoff, local var */ + movl %gs:bl5@ntpoff+3, %edx + nop;nop;nop;nop + + /* LE @ntpoff, hidden var */ + movl %gs:1+sh4@ntpoff, %edx + nop;nop;nop;nop + + movl -4(%ebp), %ebx + leave + ret diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-i386/tlsnopic2.s binutils-2.13.90.0.10/ld/testsuite/ld-i386/tlsnopic2.s --- binutils-2.13.90.0.4/ld/testsuite/ld-i386/tlsnopic2.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-i386/tlsnopic2.s Fri Sep 27 08:33:09 2002 @@ -0,0 +1,7 @@ + .section ".tbss", "awT", @nobits + .globl sh1, sh2, sh3, sh4 + .hidden sh1, sh2, sh3, sh4 +sh1: .space 4 +sh2: .space 4 +sh3: .space 4 +sh4: .space 4 diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-i386/tlspic.dd binutils-2.13.90.0.10/ld/testsuite/ld-i386/tlspic.dd --- binutils-2.13.90.0.4/ld/testsuite/ld-i386/tlspic.dd Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-i386/tlspic.dd Fri Sep 27 08:33:09 2002 @@ -0,0 +1,411 @@ +#source: tlspic1.s +#source: tlspic2.s +#as: --32 +#ld: -shared -melf_i386 +#objdump: -drj.text +#target: i?86-*-* + +.*: +file format elf32-i386 + +Disassembly of section .text: + +[0-9a-f]+ : + [0-9a-f]+: 55[ ]+push %ebp + [0-9a-f]+: 89 e5[ ]+mov %esp,%ebp + [0-9a-f]+: 53[ ]+push %ebx + [0-9a-f]+: 50[ ]+push %eax + [0-9a-f]+: e8 00 00 00 00[ ]+call [0-9a-f]+ + [0-9a-f]+: 5b[ ]+pop %ebx + [0-9a-f]+: 81 c3 [0-9a-f ]+[ ]+add \$0x[0-9a-f]+,%ebx + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * +# GD + [0-9a-f]+: 8d 04 1d 5c 00 00 00 lea 0x5c\(,%ebx,1\),%eax +# ->R_386_TLS_DTPMOD32 sg1 + [0-9a-f]+: e8 cf ff ff ff[ ]+call [0-9a-f]+ <.*0x[0-9a-f]+> +# ->R_386_JUMP_SLOT ___tls_get_addr + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * +# GD -> IE because variable is referenced through @gottpoff too + [0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax + [0-9a-f]+: 2b 83 78 00 00 00[ ]+sub 0x78\(%ebx\),%eax +# ->R_386_TLS_TPOFF32 sg2 + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * +# GD -> IE because variable is referenced through @gotntpoff too + [0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax + [0-9a-f]+: 03 83 3c 00 00 00[ ]+add 0x3c\(%ebx\),%eax +# ->R_386_TLS_TPOFF sg3 + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * +# GD -> IE because variable is referenced through @gottpoff and + [0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax + [0-9a-f]+: 2b 83 48 00 00 00[ ]+sub 0x48\(%ebx\),%eax +# ->R_386_TLS_TPOFF32 sg4 + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * +# GD against local variable + [0-9a-f]+: 8d 04 1d 10 00 00 00 lea 0x10\(,%ebx,1\),%eax +# ->R_386_TLS_DTPMOD32 [0x00000000 0x20000000] + [0-9a-f]+: e8 8f ff ff ff[ ]+call [0-9a-f]+ <.*0x[0-9a-f]+> +# ->R_386_JUMP_SLOT ___tls_get_addr + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * +# GD -> IE against local variable referenced through @gottpoff too + [0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax + [0-9a-f]+: 2b 83 18 00 00 00[ ]+sub 0x18\(%ebx\),%eax +# ->R_386_TLS_TPOFF32 [0xdcffffff] + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * +# GD -> IE against local variable referenced through @gotntpoff + [0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax + [0-9a-f]+: 03 83 1c 00 00 00[ ]+add 0x1c\(%ebx\),%eax +# ->R_386_TLS_TPOFF [0x28000000] + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * +# GD -> IE against local variable referenced through @gottpoff and + [0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax + [0-9a-f]+: 2b 83 20 00 00 00[ ]+sub 0x20\(%ebx\),%eax +# ->R_386_TLS_TPOFF32 [0xd4ffffff] + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * +# GD against hidden and local variable + [0-9a-f]+: 8d 04 1d 7c 00 00 00 lea 0x7c\(,%ebx,1\),%eax +# ->R_386_TLS_DTPMOD32 [0x00000000 0x40000000] + [0-9a-f]+: e8 4f ff ff ff[ ]+call [0-9a-f]+ <.*0x[0-9a-f]+> +# ->R_386_JUMP_SLOT ___tls_get_addr + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * +# GD -> IE against hidden and local variable referenced through @gottpoff too + [0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax + [0-9a-f]+: 2b 83 84 00 00 00[ ]+sub 0x84\(%ebx\),%eax +# ->R_386_TLS_TPOFF32 [0xbcffffff] + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * +# GD -> IE against hidden and local variable referenced through @gotntpoff too + [0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax + [0-9a-f]+: 03 83 40 00 00 00[ ]+add 0x40\(%ebx\),%eax +# ->R_386_TLS_TPOFF [0x48000000] + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * +# GD -> IE against hidden and local variable referenced through @gottpoff and @gotntpoff too + [0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax + [0-9a-f]+: 2b 83 64 00 00 00[ ]+sub 0x64\(%ebx\),%eax +# ->R_386_TLS_TPOFF32 [0xb4ffffff] + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * +# GD against hidden but not local variable + [0-9a-f]+: 8d 04 1d 34 00 00 00 lea 0x34\(,%ebx,1\),%eax +# ->R_386_TLS_DTPMOD32 [0x00000000 0x60000000] + [0-9a-f]+: e8 0f ff ff ff[ ]+call [0-9a-f]+ <.*0x[0-9a-f]+> +# ->R_386_JUMP_SLOT ___tls_get_addr + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * +# GD -> IE against hidden but not local variable referenced through + [0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax + [0-9a-f]+: 2b 83 44 00 00 00[ ]+sub 0x44\(%ebx\),%eax +# ->R_386_TLS_TPOFF32 [0x9cffffff] + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * +# GD -> IE against hidden but not local variable referenced through + [0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax + [0-9a-f]+: 03 83 6c 00 00 00[ ]+add 0x6c\(%ebx\),%eax +# ->R_386_TLS_TPOFF [0x68000000] + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * +# GD -> IE against hidden but not local variable referenced through + [0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax + [0-9a-f]+: 2b 83 54 00 00 00[ ]+sub 0x54\(%ebx\),%eax +# ->R_386_TLS_TPOFF32 [0x94ffffff] + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * +# LD + [0-9a-f]+: 8d 83 2c 00 00 00[ ]+lea 0x2c\(%ebx\),%eax +# ->R_386_TLS_DTPMOD32 [0x00000000 0x00000000] + [0-9a-f]+: e8 d0 fe ff ff[ ]+call [0-9a-f]+ <.*0x[0-9a-f]+> +# ->R_386_JUMP_SLOT ___tls_get_addr + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 8d 90 20 00 00 00[ ]+lea 0x20\(%eax\),%edx +# sl1 + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 8d 88 26 00 00 00[ ]+lea 0x26\(%eax\),%ecx +# sl2+2 + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * +# LD against hidden and local variables + [0-9a-f]+: 8d 83 2c 00 00 00[ ]+lea 0x2c\(%ebx\),%eax +# ->R_386_TLS_DTPMOD32 [0x00000000 0x00000000] + [0-9a-f]+: e8 b1 fe ff ff[ ]+call [0-9a-f]+ <.*0x[0-9a-f]+> +# ->R_386_JUMP_SLOT ___tls_get_addr + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 8d 90 40 00 00 00[ ]+lea 0x40\(%eax\),%edx +# sh1 + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 8d 88 47 00 00 00[ ]+lea 0x47\(%eax\),%ecx +# sh2+3 + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * +# LD against hidden but not local variables + [0-9a-f]+: 8d 83 2c 00 00 00[ ]+lea 0x2c\(%ebx\),%eax +# ->R_386_TLS_DTPMOD32 [0x00000000 0x00000000] + [0-9a-f]+: e8 92 fe ff ff[ ]+call [0-9a-f]+ <.*0x[0-9a-f]+> +# ->R_386_JUMP_SLOT ___tls_get_addr + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 8d 90 60 00 00 00[ ]+lea 0x60\(%eax\),%edx +# sH1 + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 8d 88 65 00 00 00[ ]+lea 0x65\(%eax\),%ecx +# sH2+1 + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * +# @gottpoff IE against global var + [0-9a-f]+: 65 8b 0d 00 00 00 00 mov %gs:0x0,%ecx + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 2b 8b 78 00 00 00[ ]+sub 0x78\(%ebx\),%ecx +# ->R_386_TLS_TPOFF32 sg2 + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * +# @gottpoff IE against global var + [0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 2b 83 48 00 00 00[ ]+sub 0x48\(%ebx\),%eax +# ->R_386_TLS_TPOFF32 sg4 + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * +# @gotntpoff IE against global var + [0-9a-f]+: 65 8b 0d 00 00 00 00 mov %gs:0x0,%ecx + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 03 8b 3c 00 00 00[ ]+add 0x3c\(%ebx\),%ecx +# ->R_386_TLS_TPOFF sg3 + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * +# @gotntpoff IE against global var + [0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 03 83 4c 00 00 00[ ]+add 0x4c\(%ebx\),%eax +# ->R_386_TLS_TPOFF sg4 + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * +# @gottpoff IE against local var + [0-9a-f]+: 65 8b 0d 00 00 00 00 mov %gs:0x0,%ecx + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 2b 8b 18 00 00 00[ ]+sub 0x18\(%ebx\),%ecx +# ->R_386_TLS_TPOFF32 [0xdcffffff] + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * +# @gottpoff IE against local var + [0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 2b 83 20 00 00 00[ ]+sub 0x20\(%ebx\),%eax +# ->R_386_TLS_TPOFF32 [0xd4ffffff] + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * +# @gotntpoff IE against local var + [0-9a-f]+: 65 8b 0d 00 00 00 00 mov %gs:0x0,%ecx + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 03 8b 1c 00 00 00[ ]+add 0x1c\(%ebx\),%ecx +# ->R_386_TLS_TPOFF [0x28000000] + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * +# @gotntpoff IE against local var + [0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 03 83 24 00 00 00[ ]+add 0x24\(%ebx\),%eax +# ->R_386_TLS_TPOFF [0x2c000000] + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * +# @gottpoff IE against hidden and local var + [0-9a-f]+: 65 8b 0d 00 00 00 00 mov %gs:0x0,%ecx + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 2b 8b 84 00 00 00[ ]+sub 0x84\(%ebx\),%ecx +# ->R_386_TLS_TPOFF32 [0xbcffffff] + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * +# @gottpoff IE against hidden and local var + [0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 2b 83 64 00 00 00[ ]+sub 0x64\(%ebx\),%eax +# ->R_386_TLS_TPOFF32 [0xb4ffffff] + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * +# @gotntpoff IE against hidden and local var + [0-9a-f]+: 65 8b 0d 00 00 00 00 mov %gs:0x0,%ecx + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 03 8b 40 00 00 00[ ]+add 0x40\(%ebx\),%ecx +# ->R_386_TLS_TPOFF [0x48000000] + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * +# @gotntpoff IE against hidden and local var + [0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 03 83 68 00 00 00[ ]+add 0x68\(%ebx\),%eax +# ->R_386_TLS_TPOFF [0x4c000000] + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * +# @gottpoff IE against hidden but not local var + [0-9a-f]+: 65 8b 0d 00 00 00 00 mov %gs:0x0,%ecx + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 2b 8b 44 00 00 00[ ]+sub 0x44\(%ebx\),%ecx +# ->R_386_TLS_TPOFF32 [0x9cffffff] + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * +# @gottpoff IE against hidden but not local var + [0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 2b 83 54 00 00 00[ ]+sub 0x54\(%ebx\),%eax +# ->R_386_TLS_TPOFF32 [0x94ffffff] + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * +# @gotntpoff IE against hidden but not local var + [0-9a-f]+: 65 8b 0d 00 00 00 00 mov %gs:0x0,%ecx + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 03 8b 6c 00 00 00[ ]+add 0x6c\(%ebx\),%ecx +# ->R_386_TLS_TPOFF [0x68000000] + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * +# @gotntpoff IE against hidden but not local var + [0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 03 83 58 00 00 00[ ]+add 0x58\(%ebx\),%eax +# ->R_386_TLS_TPOFF [0x6c000000] + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * +# Direct access through %gs +# @gotntpoff IE against global var + [0-9a-f]+: 8b 8b 50 00 00 00[ ]+mov 0x50\(%ebx\),%ecx +# ->R_386_TLS_TPOFF sg5 + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 65 8b 11[ ]+mov %gs:\(%ecx\),%edx + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * +# @gotntpoff IE against local var + [0-9a-f]+: 8b 83 28 00 00 00[ ]+mov 0x28\(%ebx\),%eax +# ->R_386_TLS_TPOFF [0x30000000] + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 65 8b 10[ ]+mov %gs:\(%eax\),%edx + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * +# @gotntpoff IE against hidden and local var + [0-9a-f]+: 8b 93 70 00 00 00[ ]+mov 0x70\(%ebx\),%edx +# ->R_386_TLS_TPOFF [0x50000000] + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 65 8b 12[ ]+mov %gs:\(%edx\),%edx + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * +# @gotntpoff IE against hidden but not local var + [0-9a-f]+: 8b 8b 74 00 00 00[ ]+mov 0x74\(%ebx\),%ecx +# ->R_386_TLS_TPOFF [0x70000000] + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 65 8b 11[ ]+mov %gs:\(%ecx\),%edx + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 8b 5d fc[ ]+mov 0xfffffffc\(%ebp\),%ebx + [0-9a-f]+: c9[ ]+leave * + [0-9a-f]+: c3[ ]+ret * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * + [0-9a-f]+: 90[ ]+nop * diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-i386/tlspic.rd binutils-2.13.90.0.10/ld/testsuite/ld-i386/tlspic.rd --- binutils-2.13.90.0.4/ld/testsuite/ld-i386/tlspic.rd Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-i386/tlspic.rd Fri Sep 27 08:33:09 2002 @@ -0,0 +1,174 @@ +#source: tlspic1.s +#source: tlspic2.s +#as: --32 +#ld: -shared -melf_i386 +#readelf: -Ssrl +#target: i?86-*-* + +There are [0-9]+ section headers, starting at offset 0x.*: + +Section Headers: + \[Nr\] Name +Type +Addr +Off +Size +ES Flg Lk Inf Al + \[ 0\] +NULL +0+ 0+ 0+ 0+ +0 +0 +0 + \[ 1\] \.hash +.* + \[ 2\] \.dynsym +.* + \[ 3\] \.dynstr +.* + \[ 4\] \.rel.dyn +.* + \[ 5\] \.rel.plt +.* + \[ 6\] \.plt +.* + \[ 7\] \.text +.* + \[ 8\] \.data +.* + \[ 9\] .tdata +PROGBITS +[0-9a-f]+ [0-9a-f]+ 000060 00 WAT 0 0 1 + \[10\] .tbss +NOBITS +[0-9aa-f]+ [0-9a-f]+ 000020 00 WAT 0 0 1 + \[11\] \.dynamic +.* + \[12\] \.got +.* + \[13\] \.bss +.* + \[14\] \.shstrtab +.* + \[15\] \.symtab +.* + \[16\] \.strtab +.* +Key to Flags: +.* +.* +.* + +Elf file type is DYN \(Shared object file\) +Entry point 0x[0-9a-f]+ +There are [0-9]+ program headers, starting at offset [0-9]+ + +Program Headers: + Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align + LOAD.* + LOAD.* + DYNAMIC.* + TLS +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x0+60 0x0+80 R +0x1 + + Section to Segment mapping: + Segment Sections... + 00 +.hash .dynsym .dynstr .rel.dyn .rel.plt .plt .text * + 01 +.tdata .tbss .dynamic .got * + 02 +.tbss .dynamic * + 03 +.tdata .tbss * + +Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 26 entries: + Offset +Info +Type +Sym.Value +Sym. Name +[0-9a-f]+ +0+23 R_386_TLS_DTPMOD3 +[0-9a-f]+ +0+25 R_386_TLS_TPOFF32 +[0-9a-f]+ +0+0e R_386_TLS_TPOFF * +[0-9a-f]+ +0+25 R_386_TLS_TPOFF32 +[0-9a-f]+ +0+0e R_386_TLS_TPOFF * +[0-9a-f]+ +0+0e R_386_TLS_TPOFF * +[0-9a-f]+ +0+23 R_386_TLS_DTPMOD3 +[0-9a-f]+ +0+23 R_386_TLS_DTPMOD3 +[0-9a-f]+ +0+0e R_386_TLS_TPOFF * +[0-9a-f]+ +0+25 R_386_TLS_TPOFF32 +[0-9a-f]+ +0+25 R_386_TLS_TPOFF32 +[0-9a-f]+ +0+0e R_386_TLS_TPOFF * +[0-9a-f]+ +0+25 R_386_TLS_TPOFF32 +[0-9a-f]+ +0+0e R_386_TLS_TPOFF * +[0-9a-f]+ +0+0e R_386_TLS_TPOFF * +[0-9a-f]+ +0+0e R_386_TLS_TPOFF * +[0-9a-f]+ +0+0e R_386_TLS_TPOFF * +[0-9a-f]+ +0+23 R_386_TLS_DTPMOD3 +[0-9a-f]+ +0+25 R_386_TLS_TPOFF32 +[0-9a-f]+ +0+100e R_386_TLS_TPOFF 0+8 sg3 +[0-9a-f]+ +0+1125 R_386_TLS_TPOFF32 0+c sg4 +[0-9a-f]+ +0+110e R_386_TLS_TPOFF 0+c sg4 +[0-9a-f]+ +0+120e R_386_TLS_TPOFF 0+10 sg5 +[0-9a-f]+ +0+1323 R_386_TLS_DTPMOD3 0+ sg1 +[0-9a-f]+ +0+1324 R_386_TLS_DTPOFF3 0+ sg1 +[0-9a-f]+ +0+1625 R_386_TLS_TPOFF32 0+4 sg2 + +Relocation section '.rel.plt' at offset 0x480 contains 1 entries: + Offset Info Type Sym.Value Sym. Name +[0-9a-f]+ 0+1c07 R_386_JUMP_SLOT 0+ ___tls_get_addr + +Symbol table '.dynsym' contains 29 entries: + +Num: + Value Size Type + Bind +Vis +Ndx Name + +0: 0+ +0 NOTYPE LOCAL DEFAULT UND * + +1: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +1 * + +2: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +2 * + +3: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +3 * + +4: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +4 * + +5: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +5 * + +6: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +6 * + +7: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +7 * + +8: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +8 * + +9: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +9 * + +10: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +10 * + +11: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +11 * + +12: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +12 * + +13: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +13 * + +14: 0+1c +0 TLS +GLOBAL DEFAULT +9 sg8 + +15: [0-9a-f]+ +0 OBJECT GLOBAL DEFAULT ABS _DYNAMIC + +16: 0+8 +0 TLS +GLOBAL DEFAULT +9 sg3 + +17: 0+c +0 TLS +GLOBAL DEFAULT +9 sg4 + +18: 0+10 +0 TLS +GLOBAL DEFAULT +9 sg5 + +19: 0+ +0 TLS +GLOBAL DEFAULT +9 sg1 + +20: [0-9a-f]+ +0 FUNC +GLOBAL DEFAULT +7 fn1 + +21: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS __bss_start + +22: 0+4 +0 TLS +GLOBAL DEFAULT +9 sg2 + +23: 0+14 +0 TLS +GLOBAL DEFAULT +9 sg6 + +24: 0+18 +0 TLS +GLOBAL DEFAULT +9 sg7 + +25: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _edata + +26: [0-9a-f]+ +0 OBJECT GLOBAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ + +27: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _end + +28: 0+ +0 NOTYPE GLOBAL DEFAULT UND ___tls_get_addr + +Symbol table '.symtab' contains 56 entries: + +Num: +Value Size Type +Bind +Vis +Ndx Name + +0: 0+ +0 NOTYPE LOCAL DEFAULT UND * + +1: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +1 * + +2: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +2 * + +3: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +3 * + +4: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +4 * + +5: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +5 * + +6: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +6 * + +7: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +7 * + +8: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +8 * + +9: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +9 * + +10: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +10 * + +11: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +11 * + +12: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +12 * + +13: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +13 * + +14: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +14 * + +15: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +15 * + +16: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +16 * + +17: 0+20 +0 TLS +LOCAL DEFAULT +9 sl1 + +18: 0+24 +0 TLS +LOCAL DEFAULT +9 sl2 + +19: 0+28 +0 TLS +LOCAL DEFAULT +9 sl3 + +20: 0+2c +0 TLS +LOCAL DEFAULT +9 sl4 + +21: 0+30 +0 TLS +LOCAL DEFAULT +9 sl5 + +22: 0+34 +0 TLS +LOCAL DEFAULT +9 sl6 + +23: 0+38 +0 TLS +LOCAL DEFAULT +9 sl7 + +24: 0+3c +0 TLS +LOCAL DEFAULT +9 sl8 + +25: 0+60 +0 TLS +LOCAL HIDDEN +10 sH1 + +26: 0+48 +0 TLS +LOCAL HIDDEN +9 sh3 + +27: 0+64 +0 TLS +LOCAL HIDDEN +10 sH2 + +28: 0+78 +0 TLS +LOCAL HIDDEN +10 sH7 + +29: 0+58 +0 TLS +LOCAL HIDDEN +9 sh7 + +30: 0+5c +0 TLS +LOCAL HIDDEN +9 sh8 + +31: 0+6c +0 TLS +LOCAL HIDDEN +10 sH4 + +32: 0+4c +0 TLS +LOCAL HIDDEN +9 sh4 + +33: 0+68 +0 TLS +LOCAL HIDDEN +10 sH3 + +34: 0+50 +0 TLS +LOCAL HIDDEN +9 sh5 + +35: 0+70 +0 TLS +LOCAL HIDDEN +10 sH5 + +36: 0+74 +0 TLS +LOCAL HIDDEN +10 sH6 + +37: 0+7c +0 TLS +LOCAL HIDDEN +10 sH8 + +38: 0+40 +0 TLS +LOCAL HIDDEN +9 sh1 + +39: 0+44 +0 TLS +LOCAL HIDDEN +9 sh2 + +40: 0+54 +0 TLS +LOCAL HIDDEN +9 sh6 + +41: 0+1c +0 TLS +GLOBAL DEFAULT +9 sg8 + +42: [0-9a-f]+ +0 OBJECT GLOBAL DEFAULT ABS _DYNAMIC + +43: 0+8 +0 TLS +GLOBAL DEFAULT +9 sg3 + +44: 0+c +0 TLS +GLOBAL DEFAULT +9 sg4 + +45: 0+10 +0 TLS +GLOBAL DEFAULT +9 sg5 + +46: 0+ +0 TLS +GLOBAL DEFAULT +9 sg1 + +47: [0-9a-f]+ +0 FUNC +GLOBAL DEFAULT +7 fn1 + +48: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS __bss_start + +49: 0+4 +0 TLS +GLOBAL DEFAULT +9 sg2 + +50: 0+14 +0 TLS +GLOBAL DEFAULT +9 sg6 + +51: 0+18 +0 TLS +GLOBAL DEFAULT +9 sg7 + +52: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _edata + +53: [0-9a-f]+ +0 OBJECT GLOBAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ + +54: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _end + +55: 0+ +0 NOTYPE GLOBAL DEFAULT UND ___tls_get_addr diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-i386/tlspic.sd binutils-2.13.90.0.10/ld/testsuite/ld-i386/tlspic.sd --- binutils-2.13.90.0.4/ld/testsuite/ld-i386/tlspic.sd Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-i386/tlspic.sd Fri Sep 27 08:33:09 2002 @@ -0,0 +1,19 @@ +#source: tlspic1.s +#source: tlspic2.s +#as: --32 +#ld: -shared -melf_i386 +#objdump: -sj.got +#target: i?86-*-* + +.*: file format elf32-i386 + +Contents of section \.got: + [0-9a-f]+ [0-9a-f]+ 00000000 00000000 [0-9a-f]+ .* + [0-9a-f]+ 00000000 20000000 dcffffff 28000000 .* + [0-9a-f]+ d4ffffff 2c000000 30000000 00000000 .* + [0-9a-f]+ 00000000 00000000 60000000 00000000 .* + [0-9a-f]+ 48000000 9cffffff 00000000 00000000 .* + [0-9a-f]+ 00000000 94ffffff 6c000000 00000000 .* + [0-9a-f]+ 00000000 b4ffffff 4c000000 68000000 .* + [0-9a-f]+ 50000000 70000000 00000000 00000000 .* + [0-9a-f]+ 40000000 bcffffff +.* diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-i386/tlspic.td binutils-2.13.90.0.10/ld/testsuite/ld-i386/tlspic.td --- binutils-2.13.90.0.4/ld/testsuite/ld-i386/tlspic.td Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-i386/tlspic.td Fri Sep 27 08:33:09 2002 @@ -0,0 +1,16 @@ +#source: tlspic1.s +#source: tlspic2.s +#as: --32 +#ld: -shared -melf_i386 +#objdump: -sj.tdata +#target: i?86-*-* + +.*: file format elf32-i386 + +Contents of section \.tdata: + [0-9a-f]+ 11000000 12000000 13000000 14000000 .* + [0-9a-f]+ 15000000 16000000 17000000 18000000 .* + [0-9a-f]+ 41000000 42000000 43000000 44000000 .* + [0-9a-f]+ 45000000 46000000 47000000 48000000 .* + [0-9a-f]+ 01010000 02010000 03010000 04010000 .* + [0-9a-f]+ 05010000 06010000 07010000 08010000 .* diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-i386/tlspic1.s binutils-2.13.90.0.10/ld/testsuite/ld-i386/tlspic1.s --- binutils-2.13.90.0.4/ld/testsuite/ld-i386/tlspic1.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-i386/tlspic1.s Fri Sep 27 08:33:09 2002 @@ -0,0 +1,282 @@ + .section ".tdata", "awT", @progbits + .globl sg1, sg2, sg3, sg4, sg5, sg6, sg7, sg8 + .globl sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8 + .hidden sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8 +sg1: .long 17 +sg2: .long 18 +sg3: .long 19 +sg4: .long 20 +sg5: .long 21 +sg6: .long 22 +sg7: .long 23 +sg8: .long 24 +sl1: .long 65 +sl2: .long 66 +sl3: .long 67 +sl4: .long 68 +sl5: .long 69 +sl6: .long 70 +sl7: .long 71 +sl8: .long 72 +sh1: .long 257 +sh2: .long 258 +sh3: .long 259 +sh4: .long 260 +sh5: .long 261 +sh6: .long 262 +sh7: .long 263 +sh8: .long 264 + .text + .globl fn1 + .type fn1,@function +fn1: + pushl %ebp + movl %esp, %ebp + pushl %ebx + pushl %eax + call 1f +1: popl %ebx + addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ebx + nop;nop;nop;nop + + /* GD */ + leal sg1@tlsgd(,%ebx,1), %eax + call ___tls_get_addr@plt + nop;nop;nop;nop + + /* GD -> IE because variable is referenced through @gottpoff too */ + leal sg2@tlsgd(,%ebx,1), %eax + call ___tls_get_addr@plt + nop;nop;nop;nop + + /* GD -> IE because variable is referenced through @gotntpoff too */ + leal sg3@tlsgd(,%ebx,1), %eax + call ___tls_get_addr@plt + nop;nop;nop;nop + + /* GD -> IE because variable is referenced through @gottpoff and + @gotntpoff too */ + leal sg4@tlsgd(,%ebx,1), %eax + call ___tls_get_addr@plt + nop;nop;nop;nop + + /* GD against local variable */ + leal sl1@tlsgd(,%ebx,1), %eax + call ___tls_get_addr@plt + nop;nop;nop;nop + + /* GD -> IE against local variable referenced through @gottpoff too */ + leal sl2@tlsgd(,%ebx,1), %eax + call ___tls_get_addr@plt + nop;nop;nop;nop + + /* GD -> IE against local variable referenced through @gotntpoff + too */ + leal sl3@tlsgd(,%ebx,1), %eax + call ___tls_get_addr@plt + nop;nop;nop;nop + + /* GD -> IE against local variable referenced through @gottpoff and + @gotntpoff too */ + leal sl4@tlsgd(,%ebx,1), %eax + call ___tls_get_addr@plt + nop;nop;nop;nop + + /* GD against hidden and local variable */ + leal sh1@tlsgd(,%ebx,1), %eax + call ___tls_get_addr@plt + nop;nop;nop;nop + + /* GD -> IE against hidden and local variable referenced through + @gottpoff too */ + leal sh2@tlsgd(,%ebx,1), %eax + call ___tls_get_addr@plt + nop;nop;nop;nop + + /* GD -> IE against hidden and local variable referenced through + @gotntpoff too */ + leal sh3@tlsgd(,%ebx,1), %eax + call ___tls_get_addr@plt + nop;nop;nop;nop + + /* GD -> IE against hidden and local variable referenced through + @gottpoff and @gotntpoff too */ + leal sh4@tlsgd(,%ebx,1), %eax + call ___tls_get_addr@plt + nop;nop;nop;nop + + /* GD against hidden but not local variable */ + leal sH1@tlsgd(,%ebx,1), %eax + call ___tls_get_addr@plt + nop;nop;nop;nop + + /* GD -> IE against hidden but not local variable referenced through + @gottpoff too */ + leal sH2@tlsgd(,%ebx,1), %eax + call ___tls_get_addr@plt + nop;nop;nop;nop + + /* GD -> IE against hidden but not local variable referenced through + @gotntpoff too */ + leal sH3@tlsgd(,%ebx,1), %eax + call ___tls_get_addr@plt + nop;nop;nop;nop + + /* GD -> IE against hidden but not local variable referenced through + @gottpoff and @gotntpoff too */ + leal sH4@tlsgd(,%ebx,1), %eax + call ___tls_get_addr@plt + nop;nop;nop;nop + + /* LD */ + leal sl1@tlsldm(%ebx), %eax + call ___tls_get_addr@PLT + nop;nop + leal sl1@dtpoff(%eax), %edx + nop;nop + leal 2+sl2@dtpoff(%eax), %ecx + nop;nop;nop;nop + + /* LD against hidden and local variables */ + leal sh1@tlsldm(%ebx), %eax + call ___tls_get_addr@PLT + nop;nop + leal sh1@dtpoff(%eax), %edx + nop;nop + leal sh2@dtpoff+3(%eax), %ecx + nop;nop;nop;nop + + /* LD against hidden but not local variables */ + leal sH1@tlsldm(%ebx), %eax + call ___tls_get_addr@PLT + nop;nop + leal sH1@dtpoff(%eax), %edx + nop;nop + leal sH2@dtpoff+1(%eax), %ecx + nop;nop + + /* @gottpoff IE against global var */ + movl %gs:0, %ecx + nop;nop + subl sg2@gottpoff(%ebx), %ecx + nop;nop;nop;nop + + /* @gottpoff IE against global var */ + movl %gs:0, %eax + nop;nop + subl sg4@gottpoff(%ebx), %eax + nop;nop;nop;nop + + /* @gotntpoff IE against global var */ + movl %gs:0, %ecx + nop;nop + addl sg3@gotntpoff(%ebx), %ecx + nop;nop;nop;nop + + /* @gotntpoff IE against global var */ + movl %gs:0, %eax + nop;nop + addl sg4@gotntpoff(%ebx), %eax + nop;nop;nop;nop + + /* @gottpoff IE against local var */ + movl %gs:0, %ecx + nop;nop + subl sl2@gottpoff(%ebx), %ecx + nop;nop;nop;nop + + /* @gottpoff IE against local var */ + movl %gs:0, %eax + nop;nop + subl sl4@gottpoff(%ebx), %eax + nop;nop;nop;nop + + /* @gotntpoff IE against local var */ + movl %gs:0, %ecx + nop;nop + addl sl3@gotntpoff(%ebx), %ecx + nop;nop;nop;nop + + /* @gotntpoff IE against local var */ + movl %gs:0, %eax + nop;nop + addl sl4@gotntpoff(%ebx), %eax + nop;nop;nop;nop + + /* @gottpoff IE against hidden and local var */ + movl %gs:0, %ecx + nop;nop + subl sh2@gottpoff(%ebx), %ecx + nop;nop;nop;nop + + /* @gottpoff IE against hidden and local var */ + movl %gs:0, %eax + nop;nop + subl sh4@gottpoff(%ebx), %eax + nop;nop;nop;nop + + /* @gotntpoff IE against hidden and local var */ + movl %gs:0, %ecx + nop;nop + addl sh3@gotntpoff(%ebx), %ecx + nop;nop;nop;nop + + /* @gotntpoff IE against hidden and local var */ + movl %gs:0, %eax + nop;nop + addl sh4@gotntpoff(%ebx), %eax + nop;nop;nop;nop + + /* @gottpoff IE against hidden but not local var */ + movl %gs:0, %ecx + nop;nop + subl sH2@gottpoff(%ebx), %ecx + nop;nop;nop;nop + + /* @gottpoff IE against hidden but not local var */ + movl %gs:0, %eax + nop;nop + subl sH4@gottpoff(%ebx), %eax + nop;nop;nop;nop + + /* @gotntpoff IE against hidden but not local var */ + movl %gs:0, %ecx + nop;nop + addl sH3@gotntpoff(%ebx), %ecx + nop;nop;nop;nop + + /* @gotntpoff IE against hidden but not local var */ + movl %gs:0, %eax + nop;nop + addl sH4@gotntpoff(%ebx), %eax + nop;nop;nop;nop + + /* Direct access through %gs */ + + /* @gotntpoff IE against global var */ + movl sg5@gotntpoff(%ebx), %ecx + nop;nop + movl %gs:(%ecx), %edx + nop;nop;nop;nop + + /* @gotntpoff IE against local var */ + movl sl5@gotntpoff(%ebx), %eax + nop;nop + movl %gs:(%eax), %edx + nop;nop;nop;nop + + /* @gotntpoff IE against hidden and local var */ + movl sh5@gotntpoff(%ebx), %edx + nop;nop + movl %gs:(%edx), %edx + nop;nop;nop;nop + + /* @gotntpoff IE against hidden but not local var */ + movl sH5@gotntpoff(%ebx), %ecx + nop;nop + movl %gs:(%ecx), %edx + nop;nop;nop;nop + + movl -4(%ebp), %ebx + leave + ret diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-i386/tlspic2.s binutils-2.13.90.0.10/ld/testsuite/ld-i386/tlspic2.s --- binutils-2.13.90.0.4/ld/testsuite/ld-i386/tlspic2.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-i386/tlspic2.s Fri Sep 27 08:33:09 2002 @@ -0,0 +1,11 @@ + .section ".tbss", "awT", @nobits + .globl sH1, sH2, sH3, sH4, sH5, sH6, sH7, sH8 + .hidden sH1, sH2, sH3, sH4, sH5, sH6, sH7, sH8 +sH1: .space 4 +sH2: .space 4 +sH3: .space 4 +sH4: .space 4 +sH5: .space 4 +sH6: .space 4 +sH7: .space 4 +sH8: .space 4 diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-mips-elf/branch-misc-1.d binutils-2.13.90.0.10/ld/testsuite/ld-mips-elf/branch-misc-1.d --- binutils-2.13.90.0.4/ld/testsuite/ld-mips-elf/branch-misc-1.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-mips-elf/branch-misc-1.d Mon Oct 7 23:08:00 2002 @@ -0,0 +1,30 @@ +#name: MIPS branch-misc-1 +#source: ../../../gas/testsuite/gas/mips/branch-misc-1.s +#objdump: --prefix-addresses -tdr --show-raw-insn +#ld: -Ttext 0x500000 -e 0x500000 -N + +.*: file format elf.*mips.* + +#... + +Disassembly of section \.text: + \.\.\. + \.\.\. + \.\.\. +0+50003c <[^>]*> 0411fff0 bal 0+500000 <[^>]*> +0+500040 <[^>]*> 00000000 nop +0+500044 <[^>]*> 0411fff3 bal 0+500014 <[^>]*> +0+500048 <[^>]*> 00000000 nop +0+50004c <[^>]*> 0411fff6 bal 0+500028 <[^>]*> +0+500050 <[^>]*> 00000000 nop +0+500054 <[^>]*> 0411000a bal 0+500080 <[^>]*> +0+500058 <[^>]*> 00000000 nop +0+50005c <[^>]*> 0411000d bal 0+500094 <[^>]*> +0+500060 <[^>]*> 00000000 nop +0+500064 <[^>]*> 04110010 bal 0+5000a8 <[^>]*> +0+500068 <[^>]*> 00000000 nop + \.\.\. + \.\.\. + \.\.\. + \.\.\. +#pass diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-mips-elf/branch-misc-2.d binutils-2.13.90.0.10/ld/testsuite/ld-mips-elf/branch-misc-2.d --- binutils-2.13.90.0.4/ld/testsuite/ld-mips-elf/branch-misc-2.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-mips-elf/branch-misc-2.d Mon Oct 7 23:08:00 2002 @@ -0,0 +1,30 @@ +#name: MIPS branch-misc-2 +#source: ../../../gas/testsuite/gas/mips/branch-misc-2.s +#objdump: --prefix-addresses -tdr --show-raw-insn +#ld: -Ttext 0x500000 -e 0x500000 -N + +.*: file format elf.*mips.* + +#... + +Disassembly of section \.text: + \.\.\. + \.\.\. + \.\.\. +0+50003c <[^>]*> 0411fff0 bal 0+500000 <[^>]*> +0+500040 <[^>]*> 00000000 nop +0+500044 <[^>]*> 0411fff3 bal 0+500014 <[^>]*> +0+500048 <[^>]*> 00000000 nop +0+50004c <[^>]*> 0411fff6 bal 0+500028 <[^>]*> +0+500050 <[^>]*> 00000000 nop +0+500054 <[^>]*> 0411000a bal 0+500080 <[^>]*> +0+500058 <[^>]*> 00000000 nop +0+50005c <[^>]*> 0411000d bal 0+500094 <[^>]*> +0+500060 <[^>]*> 00000000 nop +0+500064 <[^>]*> 04110010 bal 0+5000a8 <[^>]*> +0+500068 <[^>]*> 00000000 nop + \.\.\. + \.\.\. + \.\.\. + \.\.\. +#pass diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-mips-elf/mips-elf.exp binutils-2.13.90.0.10/ld/testsuite/ld-mips-elf/mips-elf.exp --- binutils-2.13.90.0.4/ld/testsuite/ld-mips-elf/mips-elf.exp Mon Jul 29 08:19:19 2002 +++ binutils-2.13.90.0.10/ld/testsuite/ld-mips-elf/mips-elf.exp Mon Oct 7 23:08:00 2002 @@ -18,9 +18,22 @@ if { [istarget mips*-*-*] } then { - # Run embedded-pic tests only if generic ELF. - if { [istarget mips*-*-elf] } { - # Check basic PC-relative HI/LO relocs. + set elf [expr [istarget mips*-*-elf] || [istarget mips*-*-linux*] || \ + [istarget mips*-*-netbsd]] + set embedded_elf [expr [istarget mips*-*-elf]] + + + if { $elf } { + # Check MIPS16 markings being passed through link. + run_dump_test "mips16-1" + + # MIPS branch offset final link checking. + run_dump_test "branch-misc-1" + run_dump_test "branch-misc-2" + } + + if { $embedded_elf } { + # Check basic Embedded-PIC PC-relative HI/LO relocs. run_dump_test "empic1-ln" run_dump_test "empic1-lp" run_dump_test "empic1-mn" @@ -28,7 +41,7 @@ if { [istarget mips*-*-*] } then { run_dump_test "empic1-sn" run_dump_test "empic1-sp" - # PC-relative HI/LO reloc edge-case regression tests. + # Embedded-PIC PC-relative HI/LO reloc edge-case regression tests. # As of 2001-12-26, the linker botches the fwd-0 and rev-1 tests. run_dump_test "empic2-fwd-0" run_dump_test "empic2-fwd-1" @@ -39,8 +52,6 @@ if { [istarget mips*-*-*] } then { run_dump_test "emrelocs-eb" run_dump_test "emrelocs-el" - run_dump_test "mips16-1" - run_dump_test "region1" } } diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-mmix/b-nosym.d binutils-2.13.90.0.10/ld/testsuite/ld-mmix/b-nosym.d --- binutils-2.13.90.0.4/ld/testsuite/ld-mmix/b-nosym.d Thu Mar 7 11:52:40 2002 +++ binutils-2.13.90.0.10/ld/testsuite/ld-mmix/b-nosym.d Fri Sep 27 08:33:09 2002 @@ -11,5 +11,8 @@ .*: file format mmo +SYMBOL TABLE: +no symbols + Contents of section \.text: 0000 e3fd0001 e3fd0004 .* diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-mmix/bpo-10.d binutils-2.13.90.0.10/ld/testsuite/ld-mmix/bpo-10.d --- binutils-2.13.90.0.4/ld/testsuite/ld-mmix/bpo-10.d Fri Mar 22 14:06:16 2002 +++ binutils-2.13.90.0.10/ld/testsuite/ld-mmix/bpo-10.d Fri Sep 27 08:33:09 2002 @@ -19,8 +19,6 @@ SYMBOL TABLE: 0+ l d \*ABS\* 0+ 0+ l d \*ABS\* 0+ 0+ l \.init 0+ _start -0+ g \*ABS\* 0+ -0+ g \*ABS\* 0+ 2000000000000000 g \*ABS\* 0+ __bss_start 2000000000000000 g \*ABS\* 0+ _edata 2000000000000000 g \*ABS\* 0+ _end diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-mmix/bpo-11.d binutils-2.13.90.0.10/ld/testsuite/ld-mmix/bpo-11.d --- binutils-2.13.90.0.4/ld/testsuite/ld-mmix/bpo-11.d Fri Mar 22 14:06:16 2002 +++ binutils-2.13.90.0.10/ld/testsuite/ld-mmix/bpo-11.d Fri Sep 27 08:33:09 2002 @@ -23,7 +23,6 @@ SYMBOL TABLE: 0+14 g \.text 0+ x 0+10 g \.text 0+ x2 2000000000000000 g \*ABS\* 0+ __bss_start -0+ g \*ABS\* 0+ 2000000000000000 g \*ABS\* 0+ _edata 2000000000000000 g \*ABS\* 0+ _end 0+10 g \.text 0+ _start\. diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-mmix/sec-7a.s binutils-2.13.90.0.10/ld/testsuite/ld-mmix/sec-7a.s --- binutils-2.13.90.0.4/ld/testsuite/ld-mmix/sec-7a.s Thu Mar 7 11:52:40 2002 +++ binutils-2.13.90.0.10/ld/testsuite/ld-mmix/sec-7a.s Fri Sep 27 08:33:09 2002 @@ -1,4 +1,4 @@ - .section .debug_info + .section .di .byte 42 .rept 32763 .byte 0 diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-mmix/sec-7b.s binutils-2.13.90.0.10/ld/testsuite/ld-mmix/sec-7b.s --- binutils-2.13.90.0.4/ld/testsuite/ld-mmix/sec-7b.s Thu Mar 7 11:52:40 2002 +++ binutils-2.13.90.0.10/ld/testsuite/ld-mmix/sec-7b.s Fri Sep 27 08:33:09 2002 @@ -1,4 +1,4 @@ - .section .debug_info + .section .di .byte 44 .rept 32764 .byte 0 diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-mmix/sec-7c.s binutils-2.13.90.0.10/ld/testsuite/ld-mmix/sec-7c.s --- binutils-2.13.90.0.4/ld/testsuite/ld-mmix/sec-7c.s Thu Mar 7 11:52:40 2002 +++ binutils-2.13.90.0.10/ld/testsuite/ld-mmix/sec-7c.s Fri Sep 27 08:33:09 2002 @@ -1,4 +1,4 @@ - .section .debug_info + .section .di .byte 46 .rept 32765 .byte 0 diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-mmix/sec-7d.s binutils-2.13.90.0.10/ld/testsuite/ld-mmix/sec-7d.s --- binutils-2.13.90.0.4/ld/testsuite/ld-mmix/sec-7d.s Thu Mar 7 11:52:40 2002 +++ binutils-2.13.90.0.10/ld/testsuite/ld-mmix/sec-7d.s Fri Sep 27 08:33:09 2002 @@ -1,4 +1,4 @@ - .section .debug_info + .section .di .byte 48 .rept 32766 .byte 0 diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-mmix/sec-7e.s binutils-2.13.90.0.10/ld/testsuite/ld-mmix/sec-7e.s --- binutils-2.13.90.0.4/ld/testsuite/ld-mmix/sec-7e.s Thu Mar 7 11:52:40 2002 +++ binutils-2.13.90.0.10/ld/testsuite/ld-mmix/sec-7e.s Fri Sep 27 08:33:09 2002 @@ -1,4 +1,4 @@ - .section .debug_info + .section .di .byte 50 .rept 32767 .byte 0 diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-mmix/sec-7m.d binutils-2.13.90.0.10/ld/testsuite/ld-mmix/sec-7m.d --- binutils-2.13.90.0.4/ld/testsuite/ld-mmix/sec-7m.d Thu Mar 7 11:52:40 2002 +++ binutils-2.13.90.0.10/ld/testsuite/ld-mmix/sec-7m.d Fri Sep 27 08:33:09 2002 @@ -20,11 +20,11 @@ Sections: Idx Name[ ]+Size[ ]+VMA[ ]+LMA[ ]+File off Algn 0 \.text[ ]+0+4 0+ 0+ 0+ 2\*\*2 [ ]+CONTENTS, ALLOC, LOAD, CODE - 1 \.debug_info 0+27ffb 0+ 0+ 0+ 2\*\*2 -[ ]+CONTENTS, READONLY, DEBUGGING + 1 \.di 0+27ffb 2000000000000000 2000000000000000 0+ 2\*\*2 +[ ]+CONTENTS, READONLY Contents of section \.text: 0000 e3fd0001[ ]+.* -Contents of section \.debug_info: +Contents of section \.di: 0000 2a000000 00000000 00000000 00000000 .* #... 7ff0 00000000 00000000 00000000 2b2c0000 .* diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-powerpc/powerpc.exp binutils-2.13.90.0.10/ld/testsuite/ld-powerpc/powerpc.exp --- binutils-2.13.90.0.4/ld/testsuite/ld-powerpc/powerpc.exp Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-powerpc/powerpc.exp Wed Oct 9 21:09:41 2002 @@ -0,0 +1,46 @@ +# Expect script for ld-powerpc tests +# Copyright (C) 2002 Free Software Foundation +# +# 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 +# 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. +# + +if { ![istarget "powerpc*-*-*"] } { + return +} + +# powerpc 32 bit ELF only at the moment. + +if { [istarget "*-*-macos*"] || [istarget "*-*-netware*"] + || [istarget "*-*-pe"] || [istarget "*-*-winnt*"] + || [istarget "*-*-cygwin*"] || [istarget "*-*-aix*"] + || [istarget "*-*-beos*"] || [istarget "powerpc64*-*-*"] } { + return +} + +# List contains test-items with 3 items followed by 2 lists: +# 0:name 1:ld options 2:assembler options +# 3:filenames of assembler files 4: action and options. 5: name of output file + +# Actions: +# objdump: Apply objdump options on result. Compare with regex (last arg). +# nm: Apply nm options on result. Compare with regex (last arg). +# readelf: Apply readelf options on result. Compare with regex (last arg). + +set ppcelftests { + {"Reloc section order" "-shared -z nocombreloc" "" {reloc.s} + {{objdump -hw reloc.d}} "reloc.so"} +} + +run_ld_link_tests $ppcelftests diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-powerpc/reloc.d binutils-2.13.90.0.10/ld/testsuite/ld-powerpc/reloc.d --- binutils-2.13.90.0.4/ld/testsuite/ld-powerpc/reloc.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-powerpc/reloc.d Wed Oct 9 21:09:41 2002 @@ -0,0 +1,16 @@ +# Test that orphan reloc sections are placed before .rela.plt even when +# .rela.plt is the only reloc section. Also tests that orphan non-alloc +# reloc sections go after alloc sections. + +#source: reloc.s +#ld: -shared -z nocombreloc +#objdump: -hw + +.*: +file format elf.* +#... +.*\.relaplatypus.* +#... +.*\.rela\.plt.* +#... +.*\.relaechidna.* +#pass diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-powerpc/reloc.s binutils-2.13.90.0.10/ld/testsuite/ld-powerpc/reloc.s --- binutils-2.13.90.0.4/ld/testsuite/ld-powerpc/reloc.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-powerpc/reloc.s Wed Oct 2 10:17:20 2002 @@ -0,0 +1,9 @@ + .section echidna + .long .text + + .section platypus,"ax" + .long .text + + .text + b _start@plt + nop diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-scripts/map-address.d binutils-2.13.90.0.10/ld/testsuite/ld-scripts/map-address.d --- binutils-2.13.90.0.4/ld/testsuite/ld-scripts/map-address.d Thu May 23 15:10:11 2002 +++ binutils-2.13.90.0.10/ld/testsuite/ld-scripts/map-address.d Fri Sep 27 08:33:09 2002 @@ -1,6 +1,6 @@ #... Linker script and memory map - +#... *0x0*010001 *\. = 0x10001 *0x0*010001 *foo = \. *0x0*010201 *\. = \(\. \+ 0x200\) diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-sh/sh64/cmpct1.sd binutils-2.13.90.0.10/ld/testsuite/ld-sh/sh64/cmpct1.sd --- binutils-2.13.90.0.4/ld/testsuite/ld-sh/sh64/cmpct1.sd Thu Mar 7 11:52:40 2002 +++ binutils-2.13.90.0.10/ld/testsuite/ld-sh/sh64/cmpct1.sd Mon Oct 7 23:08:00 2002 @@ -1,5 +1,5 @@ -tmpdir/linked: file format elf32-sh64 +.*: file format elf32-sh64 Contents of section \.text: 1000 c7000009 0009ea2a .* diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-sh/sh64/cmpct1.xd binutils-2.13.90.0.10/ld/testsuite/ld-sh/sh64/cmpct1.xd --- binutils-2.13.90.0.4/ld/testsuite/ld-sh/sh64/cmpct1.xd Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/ld/testsuite/ld-sh/sh64/cmpct1.xd Fri Sep 27 08:33:09 2002 @@ -43,7 +43,6 @@ SYMBOL TABLE: 0+ l d \*ABS\* 0+ 0+1004 l \.text 0+ next 0+100c l \.rodata 0+ here -0+ l \*ABS\* 0+ \*ABS\* 0+1098 g \.dtors 0+ ___dtors 0+1098 g \*ABS\* 0+ __bss_start 0+1098 g \.ctors 0+ ___ctors_end diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-sh/sh64/crange3-cmpct.rd binutils-2.13.90.0.10/ld/testsuite/ld-sh/sh64/crange3-cmpct.rd --- binutils-2.13.90.0.4/ld/testsuite/ld-sh/sh64/crange3-cmpct.rd Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/ld/testsuite/ld-sh/sh64/crange3-cmpct.rd Fri Sep 27 08:33:09 2002 @@ -32,14 +32,14 @@ Section Headers: \[ 8\] \.stack PROGBITS 00080000 000160 000000 00 W 0 0 1 \[ 9\] \.cranges LOUSER\+1 00000000 000160 00003c 00 W 0 0 1 \[10\] \.shstrtab STRTAB 00000000 00019c 000056 00 0 0 1 - \[11\] \.symtab SYMTAB 00000000 0003fc 0001c0 10 12 11 4 - \[12\] \.strtab STRTAB 00000000 0005bc 00007e 00 0 0 1 + \[11\] \.symtab SYMTAB 00000000 0003fc 0001b0 10 12 10 4 + \[12\] \.strtab STRTAB 00000000 0005ac 000078 00 0 0 1 Key to Flags: W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\) I \(info\), L \(link order\), G \(group\), x \(unknown\) O \(extra OS processing required\) o \(OS specific\), p \(processor specific\) -Symbol table '\.symtab' contains 28 entries: +Symbol table '\.symtab' contains 27 entries: Num: Value Size Type Bind Vis Ndx Name 0: 00000000 0 NOTYPE LOCAL DEFAULT UND 1: 00001000 0 SECTION LOCAL DEFAULT 1 @@ -57,18 +57,17 @@ Symbol table '\.symtab' contains 28 entr 13: 00001004 0 NOTYPE LOCAL DEFAULT 2 sec4 14: 000010a4 0 NOTYPE LOCAL DEFAULT 2 start2 15: 000010bc 0 NOTYPE LOCAL DEFAULT 2 sec3 - 16: 00000000 0 NOTYPE LOCAL DEFAULT ABS \*ABS\* - 17: 000010c4 0 NOTYPE GLOBAL DEFAULT 2 diversion - 18: 00001160 0 NOTYPE GLOBAL DEFAULT 5 ___dtors - 19: 00001160 0 NOTYPE GLOBAL DEFAULT ABS __bss_start - 20: 00001160 0 NOTYPE GLOBAL DEFAULT 4 ___ctors_end - 21: 000010a4 0 NOTYPE GLOBAL DEFAULT 2 diversion2 - 22: 00001160 0 NOTYPE GLOBAL DEFAULT 4 ___ctors - 23: 00001160 0 NOTYPE GLOBAL DEFAULT ABS _edata - 24: 00001160 0 NOTYPE GLOBAL DEFAULT ABS _end - 25: 00001000 0 NOTYPE GLOBAL DEFAULT 1 start - 26: 00080000 0 NOTYPE GLOBAL DEFAULT 8 _stack - 27: 00001160 0 NOTYPE GLOBAL DEFAULT 5 ___dtors_end + 16: 000010c4 0 NOTYPE GLOBAL DEFAULT 2 diversion + 17: 00001160 0 NOTYPE GLOBAL DEFAULT 5 ___dtors + 18: 00001160 0 NOTYPE GLOBAL DEFAULT ABS __bss_start + 19: 00001160 0 NOTYPE GLOBAL DEFAULT 4 ___ctors_end + 20: 000010a4 0 NOTYPE GLOBAL DEFAULT 2 diversion2 + 21: 00001160 0 NOTYPE GLOBAL DEFAULT 4 ___ctors + 22: 00001160 0 NOTYPE GLOBAL DEFAULT ABS _edata + 23: 00001160 0 NOTYPE GLOBAL DEFAULT ABS _end + 24: 00001000 0 NOTYPE GLOBAL DEFAULT 1 start + 25: 00080000 0 NOTYPE GLOBAL DEFAULT 8 _stack + 26: 00001160 0 NOTYPE GLOBAL DEFAULT 5 ___dtors_end Hex dump of section '\.text': 0x00001004 6ff0fff0 6ff0fff0 6ff0fff0 6ff0fff0 .* diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-sh/sh64/crange3-media.rd binutils-2.13.90.0.10/ld/testsuite/ld-sh/sh64/crange3-media.rd --- binutils-2.13.90.0.4/ld/testsuite/ld-sh/sh64/crange3-media.rd Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/ld/testsuite/ld-sh/sh64/crange3-media.rd Fri Sep 27 08:33:09 2002 @@ -32,14 +32,14 @@ Section Headers: \[ 8\] \.stack PROGBITS 00080000 000160 000000 00 W 0 0 1 \[ 9\] \.cranges LOUSER\+1 00000000 000160 00003c 00 W 0 0 1 \[10\] \.shstrtab STRTAB 00000000 00019c 000056 00 0 0 1 - \[11\] \.symtab SYMTAB 00000000 0003fc 0001c0 10 12 11 4 - \[12\] \.strtab STRTAB 00000000 0005bc 00007e 00 0 0 1 + \[11\] \.symtab SYMTAB 00000000 0003fc 0001b0 10 12 10 4 + \[12\] \.strtab STRTAB 00000000 0005ac 000078 00 0 0 1 Key to Flags: W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\) I \(info\), L \(link order\), G \(group\), x \(unknown\) O \(extra OS processing required\) o \(OS specific\), p \(processor specific\) -Symbol table '\.symtab' contains 28 entries: +Symbol table '\.symtab' contains 27 entries: Num: Value Size Type Bind Vis Ndx Name 0: 00000000 0 NOTYPE LOCAL DEFAULT UND 1: 00001000 0 SECTION LOCAL DEFAULT 1 @@ -57,18 +57,17 @@ Symbol table '\.symtab' contains 28 entr 13: 00001004 0 NOTYPE LOCAL DEFAULT 2 sec4 14: 000010a4 0 NOTYPE LOCAL DEFAULT 2 start2 15: 000010bc 0 NOTYPE LOCAL DEFAULT 2 sec3 - 16: 00000000 0 NOTYPE LOCAL DEFAULT ABS \*ABS\* - 17: 000010c4 0 NOTYPE GLOBAL DEFAULT 2 diversion - 18: 00001160 0 NOTYPE GLOBAL DEFAULT 5 ___dtors - 19: 00001160 0 NOTYPE GLOBAL DEFAULT ABS __bss_start - 20: 00001160 0 NOTYPE GLOBAL DEFAULT 4 ___ctors_end - 21: 000010a4 0 NOTYPE GLOBAL DEFAULT 2 diversion2 - 22: 00001160 0 NOTYPE GLOBAL DEFAULT 4 ___ctors - 23: 00001160 0 NOTYPE GLOBAL DEFAULT ABS _edata - 24: 00001160 0 NOTYPE GLOBAL DEFAULT ABS _end - 25: 00001000 0 NOTYPE GLOBAL DEFAULT 1 start - 26: 00080000 0 NOTYPE GLOBAL DEFAULT 8 _stack - 27: 00001160 0 NOTYPE GLOBAL DEFAULT 5 ___dtors_end + 16: 000010c4 0 NOTYPE GLOBAL DEFAULT 2 diversion + 17: 00001160 0 NOTYPE GLOBAL DEFAULT 5 ___dtors + 18: 00001160 0 NOTYPE GLOBAL DEFAULT ABS __bss_start + 19: 00001160 0 NOTYPE GLOBAL DEFAULT 4 ___ctors_end + 20: 000010a4 0 NOTYPE GLOBAL DEFAULT 2 diversion2 + 21: 00001160 0 NOTYPE GLOBAL DEFAULT 4 ___ctors + 22: 00001160 0 NOTYPE GLOBAL DEFAULT ABS _edata + 23: 00001160 0 NOTYPE GLOBAL DEFAULT ABS _end + 24: 00001000 0 NOTYPE GLOBAL DEFAULT 1 start + 25: 00080000 0 NOTYPE GLOBAL DEFAULT 8 _stack + 26: 00001160 0 NOTYPE GLOBAL DEFAULT 5 ___dtors_end Hex dump of section '\.text': 0x00001004 6ff0fff0 6ff0fff0 6ff0fff0 6ff0fff0 .* diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-sh/sh64/crange3.dd binutils-2.13.90.0.10/ld/testsuite/ld-sh/sh64/crange3.dd --- binutils-2.13.90.0.4/ld/testsuite/ld-sh/sh64/crange3.dd Thu Mar 7 11:52:40 2002 +++ binutils-2.13.90.0.10/ld/testsuite/ld-sh/sh64/crange3.dd Mon Oct 7 23:08:00 2002 @@ -1,5 +1,5 @@ -tmpdir/linked: file format elf32-sh64 +.*: file format elf32-sh64 Disassembly of section .init: diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-sh/sh64/crange3.rd binutils-2.13.90.0.10/ld/testsuite/ld-sh/sh64/crange3.rd --- binutils-2.13.90.0.4/ld/testsuite/ld-sh/sh64/crange3.rd Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/ld/testsuite/ld-sh/sh64/crange3.rd Fri Sep 27 08:33:09 2002 @@ -13,14 +13,14 @@ Section Headers: \[ 8\] \.stack PROGBITS 00080000 000160 000000 00 W 0 0 1 \[ 9\] \.cranges LOUSER\+1 00000000 000160 00003c 00 W 0 0 1 \[10\] \.shstrtab STRTAB 00000000 00019c 000056 00 0 0 1 - \[11\] \.symtab SYMTAB 00000000 0003fc 0001c0 10 12 11 4 - \[12\] \.strtab STRTAB 00000000 0005bc 00007e 00 0 0 1 + \[11\] \.symtab SYMTAB 00000000 0003fc 0001b0 10 12 10 4 + \[12\] \.strtab STRTAB 00000000 0005ac 000078 00 0 0 1 Key to Flags: W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\) I \(info\), L \(link order\), G \(group\), x \(unknown\) O \(extra OS processing required\) o \(OS specific\), p \(processor specific\) -Symbol table '\.symtab' contains 28 entries: +Symbol table '\.symtab' contains 27 entries: Num: Value Size Type Bind Vis Ndx Name 0: 00000000 0 NOTYPE LOCAL DEFAULT UND 1: 00001000 0 SECTION LOCAL DEFAULT 1 @@ -38,18 +38,17 @@ Symbol table '\.symtab' contains 28 entr 13: 00001004 0 NOTYPE LOCAL DEFAULT 2 sec4 14: 000010a4 0 NOTYPE LOCAL DEFAULT 2 start2 15: 000010bc 0 NOTYPE LOCAL DEFAULT 2 sec3 - 16: 00000000 0 NOTYPE LOCAL DEFAULT ABS \*ABS\* - 17: 000010c4 0 NOTYPE GLOBAL DEFAULT 2 diversion - 18: 00001160 0 NOTYPE GLOBAL DEFAULT 5 ___dtors - 19: 00001160 0 NOTYPE GLOBAL DEFAULT ABS __bss_start - 20: 00001160 0 NOTYPE GLOBAL DEFAULT 4 ___ctors_end - 21: 000010a4 0 NOTYPE GLOBAL DEFAULT 2 diversion2 - 22: 00001160 0 NOTYPE GLOBAL DEFAULT 4 ___ctors - 23: 00001160 0 NOTYPE GLOBAL DEFAULT ABS _edata - 24: 00001160 0 NOTYPE GLOBAL DEFAULT ABS _end - 25: 00001000 0 NOTYPE GLOBAL DEFAULT 1 start - 26: 00080000 0 NOTYPE GLOBAL DEFAULT 8 _stack - 27: 00001160 0 NOTYPE GLOBAL DEFAULT 5 ___dtors_end + 16: 000010c4 0 NOTYPE GLOBAL DEFAULT 2 diversion + 17: 00001160 0 NOTYPE GLOBAL DEFAULT 5 ___dtors + 18: 00001160 0 NOTYPE GLOBAL DEFAULT ABS __bss_start + 19: 00001160 0 NOTYPE GLOBAL DEFAULT 4 ___ctors_end + 20: 000010a4 0 NOTYPE GLOBAL DEFAULT 2 diversion2 + 21: 00001160 0 NOTYPE GLOBAL DEFAULT 4 ___ctors + 22: 00001160 0 NOTYPE GLOBAL DEFAULT ABS _edata + 23: 00001160 0 NOTYPE GLOBAL DEFAULT ABS _end + 24: 00001000 0 NOTYPE GLOBAL DEFAULT 1 start + 25: 00080000 0 NOTYPE GLOBAL DEFAULT 8 _stack + 26: 00001160 0 NOTYPE GLOBAL DEFAULT 5 ___dtors_end Hex dump of section '\.text': 0x00001004 6ff0fff0 6ff0fff0 6ff0fff0 6ff0fff0 .* diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-sh/sh64/dlsection-1.s binutils-2.13.90.0.10/ld/testsuite/ld-sh/sh64/dlsection-1.s --- binutils-2.13.90.0.4/ld/testsuite/ld-sh/sh64/dlsection-1.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-sh/sh64/dlsection-1.s Fri Sep 27 08:33:09 2002 @@ -0,0 +1,17 @@ +! Test gc-sections and datalabel references. +! +! Datalabel reference to symbol in section .text2 should +! prevent .text2 from being discarded. +! Section .spurious can be discarded. + .mode SHmedia + + .text + .global start + .global foo +start: .long datalabel foo + + .section .text2,"ax" +foo: .long 23 + + .section .spurious,"ax" + .long 17 diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-sh/sh64/dlsection.sd binutils-2.13.90.0.10/ld/testsuite/ld-sh/sh64/dlsection.sd --- binutils-2.13.90.0.4/ld/testsuite/ld-sh/sh64/dlsection.sd Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-sh/sh64/dlsection.sd Fri Sep 27 08:33:09 2002 @@ -0,0 +1,13 @@ + +.*: file format elf.*-sh64 + +Contents of section \.text: + 1000 00001004 .* +Contents of section \.text2: + 1004 00000017 .* +Contents of section \.data: +Contents of section \.ctors: +Contents of section \.dtors: +Contents of section \.sbss: +Contents of section \.bss: +Contents of section \.stack: diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-sh/sh64/gotplt.d binutils-2.13.90.0.10/ld/testsuite/ld-sh/sh64/gotplt.d --- binutils-2.13.90.0.4/ld/testsuite/ld-sh/sh64/gotplt.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-sh/sh64/gotplt.d Mon Oct 7 23:08:00 2002 @@ -0,0 +1,12 @@ +#source: gotplt.s +#as: --abi=32 --isa=SHmedia +#ld: -shared -mshelf32 --version-script=$srcdir/$subdir/gotplt.map +#readelf: -r +#target: sh64-*-elf + +# Make sure that gotplt relocations of forced local symbols +# use the GOT. + +Relocation section '\.rela\.dyn' at offset 0x3fc contains 1 entries: + Offset Info Type Sym\.Value Sym\. Name \+ Addend +0000052c 000000a5 R_SH_RELATIVE 00000408 diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-sh/sh64/gotplt.map binutils-2.13.90.0.10/ld/testsuite/ld-sh/sh64/gotplt.map --- binutils-2.13.90.0.4/ld/testsuite/ld-sh/sh64/gotplt.map Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-sh/sh64/gotplt.map Mon Oct 7 23:08:00 2002 @@ -0,0 +1,4 @@ +GLIBC_2.2 { + local: + xxx; +}; diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-sh/sh64/gotplt.s binutils-2.13.90.0.10/ld/testsuite/ld-sh/sh64/gotplt.s --- binutils-2.13.90.0.4/ld/testsuite/ld-sh/sh64/gotplt.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-sh/sh64/gotplt.s Mon Oct 7 23:08:00 2002 @@ -0,0 +1,8 @@ + .text + .global xxx +xxx: + ptabs r18, tr0 + blink tr0, r63 + .global yyy +yyy: + movi ((xxx@GOTPLT) & 65535), r1 diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-sh/sh64/init-cmpct.d binutils-2.13.90.0.10/ld/testsuite/ld-sh/sh64/init-cmpct.d --- binutils-2.13.90.0.4/ld/testsuite/ld-sh/sh64/init-cmpct.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-sh/sh64/init-cmpct.d Fri Sep 27 08:33:09 2002 @@ -0,0 +1,20 @@ +#source: init.s +#as: --abi=32 --isa=SHcompact +#ld: -shared -mshelf32 +#readelf: -d +#target: sh64-*-elf + +# Make sure that the lsb of DT_INIT and DT_FINI entries is not set +# when _init and _fini are SHcompact code. + +Dynamic segment at offset 0x358 contains 8 entries: + Tag Type Name/Value + 0x0000000c \(INIT\) 0x346 + 0x0000000d \(FINI\) 0x34e + 0x00000004 \(HASH\) 0x94 + 0x00000005 \(STRTAB\) 0x2d4 + 0x00000006 \(SYMTAB\) 0x144 + 0x0000000a \(STRSZ\) 114 \(bytes\) + 0x0000000b \(SYMENT\) 16 \(bytes\) + 0x00000000 \(NULL\) 0x0 + diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-sh/sh64/init-media.d binutils-2.13.90.0.10/ld/testsuite/ld-sh/sh64/init-media.d --- binutils-2.13.90.0.4/ld/testsuite/ld-sh/sh64/init-media.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-sh/sh64/init-media.d Fri Sep 27 08:33:09 2002 @@ -0,0 +1,19 @@ +#source: init.s +#as: --abi=32 --isa=SHmedia +#ld: -shared -mshelf32 +#readelf: -d +#target: sh64-*-elf + +# Make sure that the lsb of DT_INIT and DT_FINI entries is set +# when _init and _fini are SHmedia code. + +Dynamic segment at offset 0x368 contains 8 entries: + Tag Type Name/Value + 0x0000000c \(INIT\) 0x347 + 0x0000000d \(FINI\) 0x357 + 0x00000004 \(HASH\) 0x94 + 0x00000005 \(STRTAB\) 0x2d4 + 0x00000006 \(SYMTAB\) 0x144 + 0x0000000a \(STRSZ\) 114 \(bytes\) + 0x0000000b \(SYMENT\) 16 \(bytes\) + 0x00000000 \(NULL\) 0x0 diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-sh/sh64/init.s binutils-2.13.90.0.10/ld/testsuite/ld-sh/sh64/init.s --- binutils-2.13.90.0.4/ld/testsuite/ld-sh/sh64/init.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-sh/sh64/init.s Fri Sep 27 08:33:09 2002 @@ -0,0 +1,16 @@ + .section .text,"ax" + .global _init + .type _init,@function +_init: + nop + nop + nop + nop + + .global _fini + .type _fini,@function +_fini: + nop + nop + nop + nop diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-sh/sh64/init64.d binutils-2.13.90.0.10/ld/testsuite/ld-sh/sh64/init64.d --- binutils-2.13.90.0.4/ld/testsuite/ld-sh/sh64/init64.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-sh/sh64/init64.d Fri Sep 27 08:33:09 2002 @@ -0,0 +1,19 @@ +#source: init.s +#as: --abi=64 +#ld: -shared -mshelf64 +#readelf: -d +#target: sh64-*-elf + +# Make sure that the lsb of DT_INIT and DT_FINI entries is set +# when _init and _fini are SHmedia code. + +Dynamic segment at offset 0x488 contains 8 entries: + Tag Type Name/Value + 0x000000000000000c \(INIT\) 0x463 + 0x000000000000000d \(FINI\) 0x473 + 0x0000000000000004 \(HASH\) 0xe8 + 0x0000000000000005 \(STRTAB\) 0x3f0 + 0x0000000000000006 \(SYMTAB\) 0x198 + 0x000000000000000a \(STRSZ\) 114 \(bytes\) + 0x000000000000000b \(SYMENT\) 24 \(bytes\) + 0x0000000000000000 \(NULL\) 0x0 diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-sh/sh64/rd-sh64.exp binutils-2.13.90.0.10/ld/testsuite/ld-sh/sh64/rd-sh64.exp --- binutils-2.13.90.0.4/ld/testsuite/ld-sh/sh64/rd-sh64.exp Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-sh/sh64/rd-sh64.exp Fri Sep 27 08:33:09 2002 @@ -0,0 +1,30 @@ +# Expect script for run_dump_test based ld-sh/sh64 tests. +# Copyright 2002 Free Software Foundation, Inc. +# +# 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 +# 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. +# +# Written by Stephen Clarke (stephen.clarke@superh.com) +# + +if ![istarget sh64-*-*] { + return +} + +set rd_test_list [lsort [glob -nocomplain $srcdir/$subdir/*.d]] +foreach sh64test $rd_test_list { + # We need to strip the ".d", but can leave the dirname. + verbose [file rootname $sh64test] + run_dump_test [file rootname $sh64test] +} diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-sh/sh64/sh64.exp binutils-2.13.90.0.10/ld/testsuite/ld-sh/sh64/sh64.exp --- binutils-2.13.90.0.4/ld/testsuite/ld-sh/sh64/sh64.exp Wed Jul 17 11:38:30 2002 +++ binutils-2.13.90.0.10/ld/testsuite/ld-sh/sh64/sh64.exp Wed Oct 2 10:17:20 2002 @@ -23,18 +23,14 @@ if ![istarget sh64-*-*] { return } -# FIXME: This isn't set by testsuite/config/default.exp; make it. -if ![info exists readelf] then { - set readelf [findfile $base_dir/../binutils/readelf] -} - # List contains test-items with 3 items followed by 2 lists: # 0:name 1:ld options 2:assembler options -# 3:filenames of assembler files 4: action and options. +# 3:filenames of assembler files 4: action and options. 5: name of output file # Actions: # objdump: Apply objdump options on result. Compare with regex (last arg). # nm: Apply nm options on result. Compare with regex (last arg). +# readelf: Apply readelf options on result. Compare with regex (last arg). # Note that the contents dump is the same for "inter-file datalabel # references, 64-bit ABI" as for 32-bit ABI and ELF so we re-use it. @@ -42,317 +38,89 @@ if ![info exists readelf] then { set sh64tests { {"SH64 linking, 64-bit ABI" "-mshelf64" "--abi=64" {sh64-1.s sh64-2.s} - {{objdump -sr abi64.sd} {objdump -x abi64.xd}}} + {{objdump -sr abi64.sd} {objdump -x abi64.xd}} "abi64.bin" } {"SH64 linking, 64-bit ABI, -no-expand" "-mshelf64" "--abi=64 -no-expand" {sh64-1.s sh64-2.s} - {{objdump -sr abixx-noexp.sd}}} + {{objdump -sr abixx-noexp.sd}} "abi64-noexp.bin" } {"SH64 linking, 32-bit ABI" "-mshelf32" "--abi=32" {sh64-1.s sh64-2.s} - {{objdump -sr abi32.sd} {objdump -x abi32.xd}}} + {{objdump -sr abi32.sd} {objdump -x abi32.xd}} "abi32.bin" } {"SH64 linking, 32-bit ABI, -no-expand" "-mshelf32" "--abi=32 -no-expand" {sh64-1.s sh64-2.s} - {{objdump -sr abixx-noexp.sd}}} + {{objdump -sr abixx-noexp.sd}} "abi32-noexp.bin" } {"SH64 linking, single multi-ISA object" "-mshelf32" "--abi=32" {shmix-1.s} - {{objdump -sr mix1.sd} {objdump -x mix1.xd}}} + {{objdump -sr mix1.sd} {objdump -x mix1.xd}} "mix1.bin" } {"SH64 linking, single multi-ISA object, -no-expand" "-mshelf32" "--abi=32 -no-expand" {shmix-1.s} - {{objdump -sr mix1-noexp.sd}}} + {{objdump -sr mix1-noexp.sd}} "mix1-noexp.bin" } {"SH64 linking, two different-ISA objects" "-mshelf32" "--abi=32" {shmix-2.s shmix-3.s} - {{objdump -sr mix2.sd} {objdump -x mix2.xd}}} + {{objdump -sr mix2.sd} {objdump -x mix2.xd}} "mix2.bin" } {"SH64 linking, two different-ISA objects, -no-expand" "-mshelf32" "--abi=32 -no-expand" {shmix-2.s shmix-3.s} - {{objdump -sr mix2-noexp.sd}}} + {{objdump -sr mix2-noexp.sd}} "mix2-noexp.bin" } {"SH64 linking, single SHcompact" "-mshelf32" "--isa=SHcompact" {shcmp-1.s} - {{objdump -sr cmpct1.sd} {objdump -x cmpct1.xd}}} + {{objdump -sr cmpct1.sd} {objdump -x cmpct1.xd}} "cmpct1.bin" } {"SH64 inter-file datalabel references, 64-bit ABI" "-mshelf64" "--abi=64" {shdl-1.s shdl-2.s} - {{objdump -sr shdl64.sd} {objdump -x shdl64.xd}}} + {{objdump -sr shdl64.sd} {objdump -x shdl64.xd}} "shdl64.bin" } {"SH64 inter-file datalabel references, 32-bit ABI" "-mshelf32" "--abi=32" {shdl-1.s shdl-2.s} - {{objdump -sr shdl64.sd} {objdump -x shdl32.xd}}} + {{objdump -sr shdl64.sd} {objdump -x shdl32.xd}} "shdl32.bin" } + {"SH64 inter-file datalabel references and gc-sections, 32-bit ABI" "-mshelf32 --gc-sections" + "--abi=32" {dlsection-1.s } + {{objdump -sr dlsection.sd}} "dlsection32.bin" } + {"SH64 inter-file datalabel references and gc-sections, 64-bit ABI" "-mshelf64 --gc-sections" + "--abi=64" {dlsection-1.s } + {{objdump -sr dlsection.sd}} "dlsection64.bin" } {"SH64 simple partial linking, 32-bit ABI" "-mshelf32 -r" "--abi=32" {rel-1.s rel-2.s} - {{objdump -sx rel32.xd}}} + {{objdump -sx rel32.xd}} "rel32.bin" } {"SH64 simple partial linking, 64-bit ABI" "-mshelf64 -r" "--abi=64" {rel-1.s rel-2.s} - {{objdump -sx rel64.xd}}} + {{objdump -sx rel64.xd}} "rel64.bin" } {"SH64 partial linking with datalabel references, 32-bit ABI" "-mshelf32 -r" "--abi=32" {reldl-1.s reldl-2.s} - {{readelf {-s -r -x 1 -x 3} reldl32.rd}}} + {{readelf {-s -r -x 1 -x 3} reldl32.rd}} "reldl32.bin" } {"SH64 partial linking with datalabel references, 64-bit ABI" "-mshelf64 -r" "--abi=64" {reldl-1.s reldl-2.s} - {{readelf {-s -r -x 1 -x 3} reldl64.rd}}} + {{readelf {-s -r -x 1 -x 3} reldl64.rd}} "reldl64.bin" } {"Handling SH64 assembler-generated .cranges" "-mshelf32" "--abi=32" {crange-2a.s crange-1.s} - {{readelf {-S -s -r -x 1 -x 2 -x 9} crange1.rd}}} + {{readelf {-S -s -r -x 1 -x 2 -x 9} crange1.rd}} "crange1.bin" } {"Handling SH64 assembler-generated .cranges, partial linking" "-mshelf32 -r" "--abi=32" {crange-2a.s} - {{readelf {-S -s -r -x 2 -x 5} crangerel1.rd}}} + {{readelf {-S -s -r -x 2 -x 5} crangerel1.rd}} "crangerel1.bin" } {"Mixing SH64 assembler-generated with linker-generated .cranges" "-mshelf32" "--abi=32" {crange-2a.s crange-2b.s crange-1.s} - {{readelf {-S -s -r -x 2 -x 9} crange2.rd}}} + {{readelf {-S -s -r -x 2 -x 9} crange2.rd}} "crange2.bin" } {"Mixing SH64 assembler-generated with linker-generated .cranges, partial linking" "-mshelf32 -r" "--abi=32" {crange-2a.s crange-2c.s crange-2d.s crange-2e.s} - {{readelf {-S -s -r -x 2 -x 5} crangerel2.rd}}} + {{readelf {-S -s -r -x 2 -x 5} crangerel2.rd}} "crangerel2.bin" } {"Merge and use of SH64 .cranges, some not originally in order" "-mshelf32" "--abi=32" {crange-2e.s crange-2f.s crange-2g.s crange-2a.s crange-2d.s crange-2i.s crange-2h.s crange-1.s} - {{readelf {-S -s -x 2 -x 9} crange3.rd} {objdump -d crange3.dd}}} + {{readelf {-S -s -x 2 -x 9} crange3.rd} {objdump -d crange3.dd}} "crange3.bin" } {"Sorted SH64 .cranges, entry at SHcompact code" "-mshelf32 --entry diversion" "--abi=32" {crange-2e.s crange-2f.s crange-2g.s crange-2a.s crange-2d.s crange-2i.s crange-2h.s crange-1.s} - {{readelf {-h -S -s -x 2 -x 9} crange3-cmpct.rd}}} + {{readelf {-h -S -s -x 2 -x 9} crange3-cmpct.rd}} "crange3-cmpct.bin" } {"Sorted SH64 .cranges, entry at SHmedia code" "-mshelf32 --entry diversion2" "--abi=32" {crange-2e.s crange-2f.s crange-2g.s crange-2a.s crange-2d.s crange-2i.s crange-2h.s crange-1.s} - {{readelf {-h -S -s -x 2 -x 9} crange3-media.rd}}} + {{readelf {-h -S -s -x 2 -x 9} crange3-media.rd}} "crange3-media.bin" } {"SH64 Big Endianness" "-mshelf64 -Tendian.ld" "--abi=64" {endian.s} - {{objdump -s endian.sbd} {objdump -d endian.dbd}}} + {{objdump -s endian.sbd} {objdump -d endian.dbd}} "endianb.bin" } {"SH64 Little Endianness" "-mshlelf64 -Tendian.ld" "--abi=64 --little" {endian.s} - {{objdump -s endian.sld} {objdump -d endian.dld}}} - -} - -# FIXME: Generalize and move this to ld-lib.exp - -proc run_ld_link_tests { ldtests } { - global ld - global as - global nm - global objdump - global readelf - global srcdir - global subdir - global env - - set binfile "tmpdir/linked" - - foreach testitem $ldtests { - set testname [lindex $testitem 0] - set ld_options [lindex $testitem 1] - set as_options [lindex $testitem 2] - set as_files [lindex $testitem 3] - set actions [lindex $testitem 4] - set objfiles {} - set is_unresolved 0 - set failed 0 - -# verbose -log "Testname is $testname" -# verbose -log "ld_options is $ld_options" -# verbose -log "as_options is $as_options" -# verbose -log "as_files is $as_files" -# verbose -log "actions is $actions" - - # Assemble each file in the test. - foreach as_file $as_files { - set objfile "tmpdir/[file rootname $as_file].o" - lappend objfiles $objfile - - if ![ld_assemble $as "$as_options $srcdir/$subdir/$as_file" $objfile] { - set is_unresolved 1 - break - } - } - - # Catch assembler errors. - if { $is_unresolved != 0 } { - unresolved $testname - continue - } - - if ![ld_simple_link $ld $binfile "-L$srcdir/$subdir $ld_options $objfiles"] { - fail $testname - } else { - set failed 0 - foreach actionlist $actions { - set action [lindex $actionlist 0] - set progopts [lindex $actionlist 1] - - # There are actions where we run regexp_diff on the - # output, and there are other actions (presumably). - # Handling of the former look the same. - set dump_prog "" - switch -- $action { - objdump - { set dump_prog $objdump } - nm - { set dump_prog $nm } - readelf - { set dump_prog $readelf } - default - { - perror "Unrecognized action $action" - set is_unresolved 1 - break - } - } - - if { $dump_prog != "" } { - set dumpfile [lindex $actionlist 2] - set binary $dump_prog - - # Ensure consistent sorting of symbols - if {[info exists env(LC_ALL)]} { - set old_lc_all $env(LC_ALL) - } - set env(LC_ALL) "C" - set cmd "$binary $progopts $binfile > dump.out" - send_log "$cmd\n" - catch "exec $cmd" comp_output - if {[info exists old_lc_all]} { - set env(LC_ALL) $old_lc_all - } else { - unset env(LC_ALL) - } - set comp_output [prune_warnings $comp_output] - - if ![string match "" $comp_output] then { - send_log "$comp_output\n" - set failed 1 - break - } - - if { [regexp_diff "dump.out" "$srcdir/$subdir/$dumpfile"] } then { - verbose "output is [file_contents "dump.out"]" 2 - set failed 1 - break - } - } - } - - if { $failed != 0 } { - fail $testname - } else { if { $is_unresolved == 0 } { - pass $testname - } } - } - - # Catch action errors. - if { $is_unresolved != 0 } { - unresolved $testname - continue - } - } -} - -# FIXME: Move this to ld-lib.exp or higher up. - -# regexp_diff, based on simple_diff taken from ld test suite -# compares two files line-by-line -# file1 contains strings, file2 contains regexps and #-comments -# blank lines are ignored in either file -# returns non-zero if differences exist -# -proc regexp_diff { file_1 file_2 } { - - set eof -1 - set end_1 0 - set end_2 0 - set differences 0 - set diff_pass 0 - - if [file exists $file_1] then { - set file_a [open $file_1 r] - } else { - warning "$file_1 doesn't exist" - return 1 - } - - if [file exists $file_2] then { - set file_b [open $file_2 r] - } else { - fail "$file_2 doesn't exist" - close $file_a - return 1 - } - - verbose " Regexp-diff'ing: $file_1 $file_2" 2 - - while { 1 } { - set line_a "" - set line_b "" - while { [string length $line_a] == 0 } { - if { [gets $file_a line_a] == $eof } { - set end_1 1 - break - } - } - while { [string length $line_b] == 0 || [string match "#*" $line_b] } { - if [ string match "#pass" $line_b ] { - set end_2 1 - set diff_pass 1 - break - } elseif [ string match "#..." $line_b ] { - if { [gets $file_b line_b] == $eof } { - set end_2 1 - break - } - verbose "looking for \"^$line_b$\"" 3 - while { ![regexp "^$line_b$" "$line_a"] } { - verbose "skipping \"$line_a\"" 3 - if { [gets $file_a line_a] == $eof } { - set end_1 1 - break - } - } - break - } - if { [gets $file_b line_b] == $eof } { - set end_2 1 - break - } - } - - if { $diff_pass } { - break - } elseif { $end_1 && $end_2 } { - break - } elseif { $end_1 } { - send_log "extra regexps in $file_2 starting with \"^$line_b$\"\nEOF from $file_1\n" - verbose "extra regexps in $file_2 starting with \"^$line_b$\"\nEOF from $file_1" 3 - set differences 1 - break - } elseif { $end_2 } { - send_log "extra lines in $file_1 starting with \"^$line_a$\"\nEOF from $file_2\n" - verbose "extra lines in $file_1 starting with \"^$line_a$\"\nEOF from $file_2\n" 3 - set differences 1 - break - } else { - verbose "regexp \"^$line_b$\"\nline \"$line_a\"" 3 - if ![regexp "^$line_b$" "$line_a"] { - send_log "regexp_diff match failure\n" - send_log "regexp \"^$line_b$\"\nline \"$line_a\"\n" - set differences 1 - } - } - } - - if { $differences == 0 && !$diff_pass && [eof $file_a] != [eof $file_b] } { - send_log "$file_1 and $file_2 are different lengths\n" - verbose "$file_1 and $file_2 are different lengths" 3 - set differences 1 - } - - close $file_a - close $file_b - - return $differences -} - -proc file_contents { filename } { - set file [open $filename r] - set contents [read $file] - close $file - return $contents + {{objdump -s endian.sld} {objdump -d endian.dld}} "endinanl.bin" } } run_ld_link_tests $sh64tests diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-sh/sh64/shdl64.xd binutils-2.13.90.0.10/ld/testsuite/ld-sh/sh64/shdl64.xd --- binutils-2.13.90.0.4/ld/testsuite/ld-sh/sh64/shdl64.xd Thu Mar 7 11:52:40 2002 +++ binutils-2.13.90.0.10/ld/testsuite/ld-sh/sh64/shdl64.xd Fri Sep 27 08:33:09 2002 @@ -86,7 +86,7 @@ SYMBOL TABLE: 0+14e0 g \.data 0+ dbar_mixboth2 0+14ec g \.data 0+ dbaz 0+1524 g \.data 0+ dbaz_mix -0+155c g O \.dtors 0+ ___dtors +0+155c g \.dtors 0+ ___dtors 0+141c g \.data 0+ dfoo_mixboth2 0+119c g \.text 0+ 0x04 bazboth 0+13f0 g \.data 0+ dfoo_other @@ -95,28 +95,28 @@ SYMBOL TABLE: 0+1164 g \.text 0+ 0x04 barboth2 0+1168 g \.text 0+ 0x04 barwithout 0+14d8 g \.data 0+ dbar_mix2 -0+1560 g O \*ABS\* 0+ __bss_start +0+1560 g \*ABS\* 0+ __bss_start 0+1410 g \.data 0+ dfoo_mixboth 0+14c4 g \.data 0+ dbar_other 0+1180 g \.text 0+ 0x04 bar_mix2 0+14f4 g \.data 0+ dbazboth 0+1038 g \.text 0+ 0x04 foo_otherwithout 0+1190 g \.text 0+ 0x04 bar_mixwithout2 -0+155c g O \.ctors 0+ ___ctors_end +0+155c g \.ctors 0+ ___ctors_end 0+1064 g \.text 0+ 0x04 foo_mixwithout 0+116c g \.text 0+ 0x04 bar_other 0+13d0 g \.data 0+ dfooboth 0+1034 g \.text 0+ 0x04 foo_otherboth2 0+1400 g \.data 0+ dfoo_mix -0+155c g O \.ctors 0+ ___ctors +0+155c g \.ctors 0+ ___ctors 0+14d4 g \.data 0+ dbar_mix 0+100c g \.text 0+ 0x04 fooboth 0+1170 g \.text 0+ 0x04 bar_otherboth 0+14c0 g \.data 0+ dbarwithout 0+1004 g \.text 0+ 0x04 foo 0+102c g \.text 0+ 0x04 foo_other -0+1560 g O \*ABS\* 0+ _edata -0+1560 g O \*ABS\* 0+ _end +0+1560 g \*ABS\* 0+ _edata +0+1560 g \*ABS\* 0+ _end 0+1430 g \.data 0+ dfoo_mixwithout2 0+1058 g \.text 0+ 0x04 foo_mixboth2 0+11d4 g \.text 0+ 0x04 baz_mix2 @@ -125,12 +125,12 @@ SYMBOL TABLE: 0+14bc g \.data 0+ dbarboth2 0+118c g \.text 0+ 0x04 bar_mixwithout 0+115c g \.text 0+ 0x04 bar -0+80000 g O \.stack 0+ _stack +0+80000 g \.stack 0+ _stack 0+1520 g \.data 0+ dbaz_otherwithout 0+11f4 g \.text 0+ 0x04 baz_mixwithout 0+1160 g \.text 0+ 0x04 barboth 0+14b8 g \.data 0+ dbarboth 0+1188 g \.text 0+ 0x04 bar_mixboth2 -0+155c g O \.dtors 0+ ___dtors_end +0+155c g \.dtors 0+ ___dtors_end 0+151c g \.data 0+ dbaz_otherboth2 0+1500 g \.data 0+ dbazboth2 diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-undefined/undefined.exp binutils-2.13.90.0.10/ld/testsuite/ld-undefined/undefined.exp --- binutils-2.13.90.0.4/ld/testsuite/ld-undefined/undefined.exp Tue Jun 18 21:41:59 2002 +++ binutils-2.13.90.0.10/ld/testsuite/ld-undefined/undefined.exp Fri Sep 27 08:33:09 2002 @@ -79,7 +79,7 @@ setup_xfail "hppa*64*-*-*" setup_xfail "mn10300-*-elf" setup_xfail "sh-*-*" -set mf "tmpdir/undefined.o: In function `function':" +set mf "tmpdir/undefined.o* In function `function':" checkund $mf $testfn # COFF SH gets this test wrong--it reports line 10, because although diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-x86-64/tlsbin.dd binutils-2.13.90.0.10/ld/testsuite/ld-x86-64/tlsbin.dd --- binutils-2.13.90.0.4/ld/testsuite/ld-x86-64/tlsbin.dd Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-x86-64/tlsbin.dd Wed Oct 2 10:17:20 2002 @@ -0,0 +1,310 @@ +#source: tlsbinpic.s +#source: tlsbin.s +#as: --64 +#ld: -shared -melf_x86_64 +#objdump: -drj.text +#target: x86_64-*-* + +# PT_TLS layout is: +# Offset from Offset from Name +# TCB base TCB end +# 0x00 -0xa0 sg1..sg8 +# 0x20 -0x80 sl1..sl8 +# 0x40 -0x60 sh1..sh8 +# 0x60 -0x40 bg1..bg8 +# 0x80 -0x20 bl1..bl8 + +.*: +file format elf64-x86-64 + +Disassembly of section .text: + +0+401000 : + 401000: 55[ ]+push %rbp + 401001: 48 89 e5[ ]+mov %rsp,%rbp +# GD -> IE because variable is not defined in executable + 401004: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax + 40100b: 00 00 * + 40100d: 48 03 05 c4 11 10 00[ ]+add 1053124\(%rip\),%rax +# 5021d8 <_GLOBAL_OFFSET_TABLE_\+0x38> +# -> R_X86_64_TPOFF64 sG1 + 401014: 90[ ]+nop * + 401015: 90[ ]+nop * + 401016: 90[ ]+nop * + 401017: 90[ ]+nop * +# GD -> IE because variable is not defined in executable where +# the variable is referenced through IE too + 401018: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax + 40101f: 00 00 * + 401021: 48 03 05 a0 11 10 00[ ]+add 1053088\(%rip\),%rax +# 5021c8 <_GLOBAL_OFFSET_TABLE_\+0x28> +# -> R_X86_64_TPOFF64 sG2 + 401028: 90[ ]+nop * + 401029: 90[ ]+nop * + 40102a: 90[ ]+nop * + 40102b: 90[ ]+nop * +# GD -> LE with global variable defined in executable + 40102c: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax + 401033: 00 00 * + 401035: 48 8d 80 60 ff ff ff[ ]+lea 0xf+60\(%rax\),%rax +# sg1 + 40103c: 90[ ]+nop * + 40103d: 90[ ]+nop * + 40103e: 90[ ]+nop * + 40103f: 90[ ]+nop * +# GD -> LE with local variable defined in executable + 401040: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax + 401047: 00 00 * + 401049: 48 8d 80 80 ff ff ff[ ]+lea 0xf+80\(%rax\),%rax +# sl1 + 401050: 90[ ]+nop * + 401051: 90[ ]+nop * + 401052: 90[ ]+nop * + 401053: 90[ ]+nop * +# GD -> LE with hidden variable defined in executable + 401054: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax + 40105b: 00 00 * + 40105d: 48 8d 80 a0 ff ff ff[ ]+lea 0xf+a0\(%rax\),%rax +# sh1 + 401064: 90[ ]+nop * + 401065: 90[ ]+nop * + 401066: 90[ ]+nop * + 401067: 90[ ]+nop * +# LD -> LE + 401068: 66 66 66 64 48 8b 04[ ]+mov %fs:0x0,%rax + 40106f: 25 00 00 00 00 * + 401074: 90[ ]+nop * + 401075: 90[ ]+nop * + 401076: 48 8d 90 81 ff ff ff[ ]+lea 0xf+81\(%rax\),%rdx +# sl1+1 + 40107d: 90[ ]+nop * + 40107e: 90[ ]+nop * + 40107f: 4c 8d 88 86 ff ff ff[ ]+lea 0xf+86\(%rax\),%r9 +# sl2+2 + 401086: 90[ ]+nop * + 401087: 90[ ]+nop * + 401088: 90[ ]+nop * + 401089: 90[ ]+nop * +# LD -> LE against hidden variables + 40108a: 66 66 66 64 48 8b 04[ ]+mov %fs:0x0,%rax + 401091: 25 00 00 00 00 * + 401096: 90[ ]+nop * + 401097: 90[ ]+nop * + 401098: 48 8d 90 a0 ff ff ff[ ]+lea 0xf+a0\(%rax\),%rdx +# sh1 + 40109f: 90[ ]+nop * + 4010a0: 90[ ]+nop * + 4010a1: 48 8d 88 a7 ff ff ff[ ]+lea 0xf+a7\(%rax\),%rcx +# sh2+3 + 4010a8: 90[ ]+nop * + 4010a9: 90[ ]+nop * + 4010aa: 90[ ]+nop * + 4010ab: 90[ ]+nop * +# IE against global var + 4010ac: 64 4c 8b 0c 25 00 00[ ]+mov %fs:0x0,%r9 + 4010b3: 00 00 * + 4010b5: 90[ ]+nop * + 4010b6: 90[ ]+nop * + 4010b7: 4c 03 0d 0a 11 10 00[ ]+add 1052938\(%rip\),%r9 +# 5021c8 <_GLOBAL_OFFSET_TABLE_\+0x28> +# -> R_X86_64_TPOFF64 sG2 + 4010be: 90[ ]+nop * + 4010bf: 90[ ]+nop * + 4010c0: 90[ ]+nop * + 4010c1: 90[ ]+nop * +# IE -> LE against global var defined in exec + 4010c2: 64 4c 8b 14 25 00 00[ ]+mov %fs:0x0,%r10 + 4010c9: 00 00 * + 4010cb: 90[ ]+nop * + 4010cc: 90[ ]+nop * + 4010cd: 4d 8d 92 60 ff ff ff[ ]+lea 0xf+60\(%r10\),%r10 +# sg1 + 4010d4: 90[ ]+nop * + 4010d5: 90[ ]+nop * + 4010d6: 90[ ]+nop * + 4010d7: 90[ ]+nop * +# IE -> LE against local var + 4010d8: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax + 4010df: 00 00 * + 4010e1: 90[ ]+nop * + 4010e2: 90[ ]+nop * + 4010e3: 48 8d 80 80 ff ff ff[ ]+lea 0xf+80\(%rax\),%rax +# sl1 + 4010ea: 90[ ]+nop * + 4010eb: 90[ ]+nop * + 4010ec: 90[ ]+nop * + 4010ed: 90[ ]+nop * +# IE -> LE against hidden var + 4010ee: 64 48 8b 0c 25 00 00[ ]+mov %fs:0x0,%rcx + 4010f5: 00 00 * + 4010f7: 90[ ]+nop * + 4010f8: 90[ ]+nop * + 4010f9: 48 8d 89 a0 ff ff ff[ ]+lea 0xf+a0\(%rcx\),%rcx +# sh1 + 401100: 90[ ]+nop * + 401101: 90[ ]+nop * + 401102: 90[ ]+nop * + 401103: 90[ ]+nop * +# Direct access through %fs +# IE against global var + 401104: 48 8b 0d b5 10 10 00[ ]+mov 1052853\(%rip\),%rcx +# 5021c0 <_GLOBAL_OFFSET_TABLE_\+0x20> +# -> R_X86_64_TPOFF64 sG5 + 40110b: 90[ ]+nop * + 40110c: 90[ ]+nop * + 40110d: 64 48 8b 11[ ]+mov %fs:\(%rcx\),%rdx + 401111: 90[ ]+nop * + 401112: 90[ ]+nop * + 401113: 90[ ]+nop * + 401114: 90[ ]+nop * +# IE->LE against local var + 401115: 49 c7 c3 90 ff ff ff[ ]+mov \$0xf+90,%r11 +# sl5 + 40111c: 90[ ]+nop * + 40111d: 90[ ]+nop * + 40111e: 64 4d 8b 23[ ]+mov %fs:\(%r11\),%r12 + 401122: 90[ ]+nop * + 401123: 90[ ]+nop * + 401124: 90[ ]+nop * + 401125: 90[ ]+nop * +# IE->LE against hidden var + 401126: 48 c7 c2 b0 ff ff ff[ ]+mov \$0xf+b0,%rdx + 40112d: 90[ ]+nop * + 40112e: 90[ ]+nop * + 40112f: 64 48 8b 12[ ]+mov %fs:\(%rdx\),%rdx +# sh5 + 401133: 90[ ]+nop * + 401134: 90[ ]+nop * + 401135: 90[ ]+nop * + 401136: 90[ ]+nop * + 401137: c9[ ]+leaveq * + 401138: c3[ ]+retq * + 401139: 90[ ]+nop * + 40113a: 90[ ]+nop * + 40113b: 90[ ]+nop * + +0+40113c <_start>: + 40113c: 55[ ]+push %rbp + 40113d: 48 89 e5[ ]+mov %rsp,%rbp +# IE against global var + 401140: 64 4c 8b 1c 25 00 00[ ]+mov %fs:0x0,%r11 + 401147: 00 00 * + 401149: 90[ ]+nop * + 40114a: 90[ ]+nop * + 40114b: 4c 03 1d 7e 10 10 00[ ]+add 1052798\(%rip\),%r11 +# 5021d0 <_GLOBAL_OFFSET_TABLE_\+0x30> +# -> R_X86_64_TPOFF64 sG6 + 401152: 90[ ]+nop * + 401153: 90[ ]+nop * + 401154: 90[ ]+nop * + 401155: 90[ ]+nop * +# IE -> LE against global var defined in exec + 401156: 64 48 8b 14 25 00 00[ ]+mov %fs:0x0,%rdx + 40115d: 00 00 * + 40115f: 90[ ]+nop * + 401160: 90[ ]+nop * + 401161: 48 8d 92 d4 ff ff ff[ ]+lea 0xf+d4\(%rdx\),%rdx +# bg6 + 401168: 90[ ]+nop * + 401169: 90[ ]+nop * + 40116a: 90[ ]+nop * + 40116b: 90[ ]+nop * +# IE -> LE against local var + 40116c: 64 4c 8b 24 25 00 00[ ]+mov %fs:0x0,%r12 + 401173: 00 00 * + 401175: 90[ ]+nop * + 401176: 90[ ]+nop * + 401177: 49 81 c4 f4 ff ff ff[ ]+add \$0xf+f4,%r12 +# bl6 + 40117e: 90[ ]+nop * + 40117f: 90[ ]+nop * + 401180: 90[ ]+nop * + 401181: 90[ ]+nop * +# direct %fs access IE -> LE against local var + 401182: 48 c7 c2 fc ff ff ff[ ]+mov \$0xf+fc,%rdx +# bl8 + 401189: 90[ ]+nop * + 40118a: 90[ ]+nop * + 40118b: 64 48 8b 02[ ]+mov %fs:\(%rdx\),%rax + 40118f: 90[ ]+nop * + 401190: 90[ ]+nop * + 401191: 90[ ]+nop * + 401192: 90[ ]+nop * +# IE -> LE against hidden but not local var + 401193: 64 48 8b 14 25 00 00[ ]+mov %fs:0x0,%rdx + 40119a: 00 00 * + 40119c: 90[ ]+nop * + 40119d: 90[ ]+nop * + 40119e: 48 8d 92 b4 ff ff ff[ ]+lea 0xf+b4\(%rdx\),%rdx +# sh6 + 4011a5: 90[ ]+nop * + 4011a6: 90[ ]+nop * + 4011a7: 90[ ]+nop * + 4011a8: 90[ ]+nop * +# direct %fs access IE -> LE against hidden but not local var + 4011a9: 48 c7 c2 bc ff ff ff[ ]+mov \$0xf+bc,%rdx +# sh8 + 4011b0: 90[ ]+nop * + 4011b1: 90[ ]+nop * + 4011b2: 64 48 8b 02[ ]+mov %fs:\(%rdx\),%rax + 4011b6: 90[ ]+nop * + 4011b7: 90[ ]+nop * + 4011b8: 90[ ]+nop * + 4011b9: 90[ ]+nop * +# LE, global var defined in exec + 4011ba: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax + 4011c1: 00 00 * + 4011c3: 90[ ]+nop * + 4011c4: 90[ ]+nop * + 4011c5: 48 8d 90 64 ff ff ff[ ]+lea 0xf+64\(%rax\),%rdx +# sg2 + 4011cc: 90[ ]+nop * + 4011cd: 90[ ]+nop * + 4011ce: 90[ ]+nop * + 4011cf: 90[ ]+nop * +# LE, local var, non-canonical sequence + 4011d0: 49 c7 c1 e6 ff ff ff[ ]+mov \$0xf+e6,%r9 +# bl2+2 + 4011d7: 90[ ]+nop * + 4011d8: 90[ ]+nop * + 4011d9: 64 48 8b 14 25 00 00[ ]+mov %fs:0x0,%rdx + 4011e0: 00 00 * + 4011e2: 90[ ]+nop * + 4011e3: 90[ ]+nop * + 4011e4: 4c 01 ca[ ]+add %r9,%rdx + 4011e7: 90[ ]+nop * + 4011e8: 90[ ]+nop * + 4011e9: 90[ ]+nop * + 4011ea: 90[ ]+nop * +# LE, hidden var defined in exec, non-canonical sequence + 4011eb: 64 48 8b 14 25 00 00[ ]+mov %fs:0x0,%rdx + 4011f2: 00 00 * + 4011f4: 90[ ]+nop * + 4011f5: 90[ ]+nop * + 4011f6: 48 81 c2 a5 ff ff ff[ ]+add \$0xf+a5,%rdx +# sh2+1 + 4011fd: 90[ ]+nop * + 4011fe: 90[ ]+nop * + 4011ff: 90[ ]+nop * + 401200: 90[ ]+nop * +# Direct %fs access +# LE, global var defined in exec + 401201: 64 48 8b 04 25 68 ff[ ]+mov %fs:0xf+68,%rax + 401208: ff ff * +# sg3 + 40120a: 90[ ]+nop * + 40120b: 90[ ]+nop * + 40120c: 90[ ]+nop * + 40120d: 90[ ]+nop * +# LE, local var + 40120e: 64 4c 8b 14 25 eb ff[ ]+mov %fs:0xf+eb,%r10 + 401215: ff ff * +# bl3+3 + 401217: 90[ ]+nop * + 401218: 90[ ]+nop * + 401219: 90[ ]+nop * + 40121a: 90[ ]+nop * +# LE, hidden var defined in exec + 40121b: 64 48 8b 14 25 a9 ff[ ]+mov %fs:0xf+a9,%rdx + 401222: ff ff * +# sh3+1 + 401224: 90[ ]+nop * + 401225: 90[ ]+nop * + 401226: 90[ ]+nop * + 401227: 90[ ]+nop * + 401228: c9[ ]+leaveq * + 401229: c3[ ]+retq * diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-x86-64/tlsbin.rd binutils-2.13.90.0.10/ld/testsuite/ld-x86-64/tlsbin.rd --- binutils-2.13.90.0.4/ld/testsuite/ld-x86-64/tlsbin.rd Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-x86-64/tlsbin.rd Wed Oct 2 10:17:20 2002 @@ -0,0 +1,154 @@ +#source: tlsbinpic.s +#source: tlsbin.s +#as: --64 +#ld: -shared -melf_x86_64 +#readelf: -WSsrl +#target: x86_64-*-* + +There are 18 section headers, starting at offset 0x[0-9a-f]+: + +Section Headers: + \[Nr\] Name +Type +Address +Off +Size +ES Flg Lk Inf Al + \[ 0\] +NULL +0+ 0+ 0+ 00 +0 +0 +0 + \[ 1\] .interp +.* + \[ 2\] .hash +.* + \[ 3\] .dynsym +.* + \[ 4\] .dynstr +.* + \[ 5\] .rela.dyn +.* + \[ 6\] .rela.plt +.* + \[ 7\] .plt +.* + \[ 8\] .text +PROGBITS +0+401000 0+1000 0+22a 00 +AX +0 +0 +4096 + \[ 9\] .data +.* + \[10\] .tdata +PROGBITS +0+502000 0+2000 0+60 00 WAT +0 +0 +1 + \[11\] .tbss +NOBITS +0+502060 0+2060 0+40 00 WAT +0 +0 +1 + \[12\] .dynamic +DYNAMIC +0+502060 0+2060 0+140 10 +WA +4 +0 +8 + \[13\] .got +PROGBITS +0+5021a0 0+21a0 0+40 08 +WA +0 +0 +8 + \[14\] .bss +.* + \[15\] .shstrtab +.* + \[16\] .symtab +.* + \[17\] .strtab +.* +Key to Flags: +.* +.* +.* + +Elf file type is EXEC \(Executable file\) +Entry point 0x40113c +There are 6 program headers, starting at offset [0-9]+ + +Program Headers: + Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align + PHDR +0x0+40 0x0+400040 0x0+400040 0x0+150 0x0+150 R E 0x8 + INTERP +0x0+190 0x0+400190 0x0+400190 0x0+f 0x0+f R +0x1 +.*Requesting program interpreter.* + LOAD +0x0+ 0x0+400000 0x0+400000 0x0+122a 0x0+122a R E 0x100000 + LOAD +0x0+2000 0x0+502000 0x0+502000 0x0+1e0 0x0+1e0 RW 0x100000 + DYNAMIC +0x0+2060 0x0+502060 0x0+502060 0x0+140 0x0+140 RW 0x8 + TLS +0x0+2000 0x0+502000 0x0+502000 0x0+60 0x0+a0 R +0x1 + + Section to Segment mapping: + Segment Sections... + 00 * + 01 +.interp * + 02 +.interp .hash .dynsym .dynstr .rela.dyn .rela.plt .plt .text * + 03 +.tdata .tbss .dynamic .got * + 04 +.tbss .dynamic * + 05 +.tdata .tbss * + +Relocation section '.rela.dyn' at offset 0x358 contains 4 entries: + +Offset +Info +Type +Symbol's Value Symbol's Name \+ Addend +0+5021c0 0+100000012 R_X86_64_TPOFF64 +0+ sG5 \+ 0 +0+5021c8 0+300000012 R_X86_64_TPOFF64 +0+ sG2 \+ 0 +0+5021d0 0+600000012 R_X86_64_TPOFF64 +0+ sG6 \+ 0 +0+5021d8 0+700000012 R_X86_64_TPOFF64 +0+ sG1 \+ 0 + +Relocation section '.rela.plt' at offset 0x3b8 contains 1 entries: + +Offset +Info +Type +Symbol's Value Symbol's Name \+ Addend +0+[0-9a-f]+ 0+400000007 R_X86_64_JUMP_SLOT +0+[0-9a-f]+ __tls_get_addr \+ 0 + +Symbol table '.dynsym' contains 11 entries: + +Num: +Value +Size Type +Bind +Vis +Ndx Name + +0: 0+ +0 NOTYPE LOCAL DEFAULT UND * + +1: 0+ +0 TLS +GLOBAL DEFAULT UND sG5 + +2: 0+502060 +0 OBJECT GLOBAL DEFAULT ABS _DYNAMIC + +3: 0+ +0 TLS +GLOBAL DEFAULT UND sG2 + +4: 0+[0-9a-f]+ +0 FUNC +GLOBAL DEFAULT UND __tls_get_addr + +5: 0+[0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS __bss_start + +6: 0+ +0 TLS +GLOBAL DEFAULT UND sG6 + +7: 0+ +0 TLS +GLOBAL DEFAULT UND sG1 + +8: 0+[0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _edata + +9: 0+5021a0 +0 OBJECT GLOBAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ + +10: 0+[0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _end + +Symbol table '.symtab' contains 70 entries: + +Num: +Value +Size Type +Bind +Vis +Ndx Name + +0: 0+ +0 NOTYPE LOCAL DEFAULT UND * + +1: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +1 * + +2: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +2 * + +3: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +3 * + +4: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +4 * + +5: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +5 * + +6: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +6 * + +7: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +7 * + +8: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +8 * + +9: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +9 * + +10: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +10 * + +11: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +11 * + +12: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +12 * + +13: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +13 * + +14: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +14 * + +15: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +15 * + +16: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +16 * + +17: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +17 * + +18: 0+20 +0 TLS +LOCAL DEFAULT +10 sl1 + +19: 0+24 +0 TLS +LOCAL DEFAULT +10 sl2 + +20: 0+28 +0 TLS +LOCAL DEFAULT +10 sl3 + +21: 0+2c +0 TLS +LOCAL DEFAULT +10 sl4 + +22: 0+30 +0 TLS +LOCAL DEFAULT +10 sl5 + +23: 0+34 +0 TLS +LOCAL DEFAULT +10 sl6 + +24: 0+38 +0 TLS +LOCAL DEFAULT +10 sl7 + +25: 0+3c +0 TLS +LOCAL DEFAULT +10 sl8 + +26: 0+80 +0 TLS +LOCAL DEFAULT +11 bl1 + +27: 0+84 +0 TLS +LOCAL DEFAULT +11 bl2 + +28: 0+88 +0 TLS +LOCAL DEFAULT +11 bl3 + +29: 0+8c +0 TLS +LOCAL DEFAULT +11 bl4 + +30: 0+90 +0 TLS +LOCAL DEFAULT +11 bl5 + +31: 0+94 +0 TLS +LOCAL DEFAULT +11 bl6 + +32: 0+98 +0 TLS +LOCAL DEFAULT +11 bl7 + +33: 0+9c +0 TLS +LOCAL DEFAULT +11 bl8 + +34: 0+1c +0 TLS +GLOBAL DEFAULT +10 sg8 + +35: 0+7c +0 TLS +GLOBAL DEFAULT +11 bg8 + +36: 0+74 +0 TLS +GLOBAL DEFAULT +11 bg6 + +37: 0+ +0 TLS +GLOBAL DEFAULT UND sG5 + +38: 0+68 +0 TLS +GLOBAL DEFAULT +11 bg3 + +39: 0+502060 +0 OBJECT GLOBAL DEFAULT ABS _DYNAMIC + +40: 0+8 +0 TLS +GLOBAL DEFAULT +10 sg3 + +41: 0+48 +0 TLS +GLOBAL HIDDEN +10 sh3 + +42: 0+ +0 TLS +GLOBAL DEFAULT UND sG2 + +43: 0+c +0 TLS +GLOBAL DEFAULT +10 sg4 + +44: 0+10 +0 TLS +GLOBAL DEFAULT +10 sg5 + +45: 0+70 +0 TLS +GLOBAL DEFAULT +11 bg5 + +46: [0-9a-f]+ +0 FUNC +GLOBAL DEFAULT UND __tls_get_addr + +47: 0+58 +0 TLS +GLOBAL HIDDEN +10 sh7 + +48: 0+5c +0 TLS +GLOBAL HIDDEN +10 sh8 + +49: 0+ +0 TLS +GLOBAL DEFAULT +10 sg1 + +50: 0+40113c +0 FUNC +GLOBAL DEFAULT +8 _start + +51: 0+4c +0 TLS +GLOBAL HIDDEN +10 sh4 + +52: 0+78 +0 TLS +GLOBAL DEFAULT +11 bg7 + +53: 0+50 +0 TLS +GLOBAL HIDDEN +10 sh5 + +54: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS __bss_start + +55: 0+ +0 TLS +GLOBAL DEFAULT UND sG6 + +56: 0+401000 +0 FUNC +GLOBAL DEFAULT +8 fn2 + +57: 0+4 +0 TLS +GLOBAL DEFAULT +10 sg2 + +58: 0+ +0 TLS +GLOBAL DEFAULT UND sG1 + +59: 0+40 +0 TLS +GLOBAL HIDDEN +10 sh1 + +60: 0+14 +0 TLS +GLOBAL DEFAULT +10 sg6 + +61: 0+18 +0 TLS +GLOBAL DEFAULT +10 sg7 + +62: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _edata + +63: 0+5021a0 +0 OBJECT GLOBAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ + +64: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _end + +65: 0+44 +0 TLS +GLOBAL HIDDEN +10 sh2 + +66: 0+54 +0 TLS +GLOBAL HIDDEN +10 sh6 + +67: 0+64 +0 TLS +GLOBAL DEFAULT +11 bg2 + +68: 0+60 +0 TLS +GLOBAL DEFAULT +11 bg1 + +69: 0+6c +0 TLS +GLOBAL DEFAULT +11 bg4 diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-x86-64/tlsbin.s binutils-2.13.90.0.10/ld/testsuite/ld-x86-64/tlsbin.s --- binutils-2.13.90.0.4/ld/testsuite/ld-x86-64/tlsbin.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-x86-64/tlsbin.s Wed Oct 2 10:17:20 2002 @@ -0,0 +1,97 @@ + .section ".tbss", "awT", @nobits + .globl bg1, bg2, bg3, bg4, bg5, bg6, bg7, bg8 +bg1: .space 4 +bg2: .space 4 +bg3: .space 4 +bg4: .space 4 +bg5: .space 4 +bg6: .space 4 +bg7: .space 4 +bg8: .space 4 +bl1: .space 4 +bl2: .space 4 +bl3: .space 4 +bl4: .space 4 +bl5: .space 4 +bl6: .space 4 +bl7: .space 4 +bl8: .space 4 + .text + .globl _start + .type _start,@function +_start: + pushq %rbp + movq %rsp, %rbp + + /* IE against global var */ + movq %fs:0, %r11 + nop;nop + addq sG6@gottpoff(%rip), %r11 + nop;nop;nop;nop + + /* IE -> LE against global var defined in exec */ + movq %fs:0, %rdx + nop;nop + addq bg6@gottpoff(%rip), %rdx + nop;nop;nop;nop + + /* IE -> LE against local var */ + movq %fs:0, %r12 + nop;nop + addq bl6@gottpoff(%rip), %r12 + nop;nop;nop;nop + + /* direct %fs access IE -> LE against local var */ + movq bl8@gottpoff(%rip), %rdx + nop;nop + movq %fs:(%rdx), %rax + nop;nop;nop;nop + + /* IE -> LE against hidden but not local var */ + movq %fs:0, %rdx + nop;nop + addq sh6@gottpoff(%rip), %rdx + nop;nop;nop;nop + + /* direct %fs access IE -> LE against hidden but not local var */ + movq sh8@gottpoff(%rip), %rdx + nop;nop + movq %fs:(%rdx), %rax + nop;nop;nop;nop + + /* LE, global var defined in exec */ + movq %fs:0, %rax + nop;nop + leaq sg2@tpoff(%rax), %rdx + nop;nop;nop;nop + + /* LE, local var, non-canonical sequence */ + movq $2+bl2@tpoff, %r9 + nop;nop + movq %fs:0, %rdx + nop;nop + addq %r9, %rdx + nop;nop;nop;nop + + /* LE, hidden var defined in exec, non-canonical sequence */ + movq %fs:0, %rdx + nop;nop + addq $sh2@tpoff+1, %rdx + nop;nop;nop;nop + + /* Direct %fs access */ + + /* LE, global var defined in exec */ + movq %fs:sg3@tpoff, %rax + nop;nop;nop;nop + + /* LE, local var */ + movq %fs:bl3@tpoff+3, %r10 + nop;nop;nop;nop + + /* LE, hidden var defined in exec */ + movq %fs:1+sh3@tpoff, %rdx + nop;nop;nop;nop + + leave + ret diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-x86-64/tlsbin.sd binutils-2.13.90.0.10/ld/testsuite/ld-x86-64/tlsbin.sd --- binutils-2.13.90.0.4/ld/testsuite/ld-x86-64/tlsbin.sd Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-x86-64/tlsbin.sd Wed Oct 2 10:17:20 2002 @@ -0,0 +1,14 @@ +#source: tlsbinpic.s +#source: tlsbin.s +#as: --64 +#ld: -shared -melf_x86_64 +#objdump: -sj.got +#target: x86_64-*-* + +.*: +file format elf64-x86-64 + +Contents of section .got: + 5021a0 [0-9a-f]+ [0-9a-f]+ 00000000 00000000 .* + 5021b0 00000000 00000000 [0-9a-f]+ [0-9a-f]+ .* + 5021c0 00000000 00000000 00000000 00000000 .* + 5021d0 00000000 00000000 00000000 00000000 .* diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-x86-64/tlsbin.td binutils-2.13.90.0.10/ld/testsuite/ld-x86-64/tlsbin.td --- binutils-2.13.90.0.4/ld/testsuite/ld-x86-64/tlsbin.td Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-x86-64/tlsbin.td Wed Oct 2 10:17:20 2002 @@ -0,0 +1,16 @@ +#source: tlsbinpic.s +#source: tlsbin.s +#as: --64 +#ld: -shared -melf_x86_64 +#objdump: -sj.tdata +#target: x86_64-*-* + +.*: +file format elf64-x86-64 + +Contents of section .tdata: + 502000 11000000 12000000 13000000 14000000 .* + 502010 15000000 16000000 17000000 18000000 .* + 502020 41000000 42000000 43000000 44000000 .* + 502030 45000000 46000000 47000000 48000000 .* + 502040 01010000 02010000 03010000 04010000 .* + 502050 05010000 06010000 07010000 08010000 .* diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-x86-64/tlsbinpic.s binutils-2.13.90.0.10/ld/testsuite/ld-x86-64/tlsbinpic.s --- binutils-2.13.90.0.4/ld/testsuite/ld-x86-64/tlsbinpic.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-x86-64/tlsbinpic.s Wed Oct 2 10:17:20 2002 @@ -0,0 +1,146 @@ + /* Force .data aligned to 4K, so that .got very likely gets at + 0x5021a0 (0x60 bytes .tdata and 0x140 bytes .dynamic) */ + .data + .balign 4096 + .section ".tdata", "awT", @progbits + .globl sg1, sg2, sg3, sg4, sg5, sg6, sg7, sg8 + .globl sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8 + .hidden sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8 +sg1: .long 17 +sg2: .long 18 +sg3: .long 19 +sg4: .long 20 +sg5: .long 21 +sg6: .long 22 +sg7: .long 23 +sg8: .long 24 +sl1: .long 65 +sl2: .long 66 +sl3: .long 67 +sl4: .long 68 +sl5: .long 69 +sl6: .long 70 +sl7: .long 71 +sl8: .long 72 +sh1: .long 257 +sh2: .long 258 +sh3: .long 259 +sh4: .long 260 +sh5: .long 261 +sh6: .long 262 +sh7: .long 263 +sh8: .long 264 + /* Force .text aligned to 4K, so it very likely gets at 0x401000. */ + .text + .balign 4096 + .globl fn2 + .type fn2,@function +fn2: + pushq %rbp + movq %rsp, %rbp + + /* GD -> IE because variable is not defined in executable */ + .byte 0x66 + leaq sG1@tlsgd(%rip), %rdi + .word 0x6666 + rex64 + call __tls_get_addr@plt + nop;nop;nop;nop + + /* GD -> IE because variable is not defined in executable where + the variable is referenced through IE too */ + .byte 0x66 + leaq sG2@tlsgd(%rip), %rdi + .word 0x6666 + rex64 + call __tls_get_addr@plt + nop;nop;nop;nop + + /* GD -> LE with global variable defined in executable */ + .byte 0x66 + leaq sg1@tlsgd(%rip), %rdi + .word 0x6666 + rex64 + call __tls_get_addr@plt + nop;nop;nop;nop + + /* GD -> LE with local variable defined in executable */ + .byte 0x66 + leaq sl1@tlsgd(%rip), %rdi + .word 0x6666 + rex64 + call __tls_get_addr@plt + nop;nop;nop;nop + + /* GD -> LE with hidden variable defined in executable */ + .byte 0x66 + leaq sh1@tlsgd(%rip), %rdi + .word 0x6666 + rex64 + call __tls_get_addr@plt + nop;nop;nop;nop + + /* LD -> LE */ + leaq sl1@tlsld(%rip), %rdi + call __tls_get_addr@plt + nop;nop + leaq 1+sl1@dtpoff(%rax), %rdx + nop;nop + leaq sl2@dtpoff+2(%rax), %r9 + nop;nop;nop;nop + + /* LD -> LE against hidden variables */ + leaq sh1@tlsld(%rip), %rdi + call __tls_get_addr@plt + nop;nop + leaq sh1@dtpoff(%rax), %rdx + nop;nop + leaq 3+sh2@dtpoff(%rax), %rcx + nop;nop;nop;nop + + /* IE against global var */ + movq %fs:0, %r9 + nop;nop + addq sG2@gottpoff(%rip), %r9 + nop;nop;nop;nop + + /* IE -> LE against global var defined in exec */ + movq %fs:0, %r10 + nop;nop + addq sg1@gottpoff(%rip), %r10 + nop;nop;nop;nop + + /* IE -> LE against local var */ + movq %fs:0, %rax + nop;nop + addq sl1@gottpoff(%rip), %rax + nop;nop;nop;nop + + /* IE -> LE against hidden var */ + movq %fs:0, %rcx + nop;nop + addq sh1@gottpoff(%rip), %rcx + nop;nop;nop;nop + + /* Direct access through %fs */ + + /* IE against global var */ + movq sG5@gottpoff(%rip), %rcx + nop;nop + movq %fs:(%rcx), %rdx + nop;nop;nop;nop + + /* IE->LE against local var */ + movq sl5@gottpoff(%rip), %r11 + nop;nop + movq %fs:(%r11), %r12 + nop;nop;nop;nop + + /* IE->LE against hidden var */ + movq sh5@gottpoff(%rip), %rdx + nop;nop + movq %fs:(%rdx), %rdx + nop;nop;nop;nop + + leave + ret diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-x86-64/tlsg.s binutils-2.13.90.0.10/ld/testsuite/ld-x86-64/tlsg.s --- binutils-2.13.90.0.4/ld/testsuite/ld-x86-64/tlsg.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-x86-64/tlsg.s Wed Oct 2 10:17:20 2002 @@ -0,0 +1,12 @@ + .section .tbss,"awT",@nobits + .align 4 + .skip 24 + .type a,@object + .size a,4 +a: + .zero 4 + .text + .globl _start +_start: + .section .debug_foobar + .long a@dtpoff, 0 diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-x86-64/tlsg.sd binutils-2.13.90.0.10/ld/testsuite/ld-x86-64/tlsg.sd --- binutils-2.13.90.0.4/ld/testsuite/ld-x86-64/tlsg.sd Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-x86-64/tlsg.sd Wed Oct 2 10:17:20 2002 @@ -0,0 +1,10 @@ +#source: tlsg.s +#as: --64 +#ld: -melf_x86_64 +#objdump: -sj.debug_foobar +#target: x86_64-*-* + +.*: +file format elf64-x86-64 + +Contents of section .debug_foobar: + 0+ 18000000 0+ +.* diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-x86-64/tlslib.s binutils-2.13.90.0.10/ld/testsuite/ld-x86-64/tlslib.s --- binutils-2.13.90.0.4/ld/testsuite/ld-x86-64/tlslib.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-x86-64/tlslib.s Wed Oct 2 10:17:20 2002 @@ -0,0 +1,18 @@ + .section ".tdata", "awT", @progbits + .globl sG1, sG2, sG3, sG4, sG5, sG6, sG7, sG8 +sG1: .long 513 +sG2: .long 514 +sG3: .long 515 +sG4: .long 516 +sG5: .long 517 +sG6: .long 518 +sG7: .long 519 +sG8: .long 520 + + .text + /* Dummy. */ + .globl __tls_get_addr + .type __tls_get_addr,@function +__tls_get_addr: + movq %rdi, %rax + ret diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-x86-64/tlspic.dd binutils-2.13.90.0.10/ld/testsuite/ld-x86-64/tlspic.dd --- binutils-2.13.90.0.4/ld/testsuite/ld-x86-64/tlspic.dd Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-x86-64/tlspic.dd Wed Oct 2 10:17:20 2002 @@ -0,0 +1,234 @@ +#source: tlspic1.s +#source: tlspic2.s +#as: --64 +#ld: -shared -melf_x86_64 +#objdump: -drj.text +#target: x86_64-*-* + +.*: +file format elf64-x86-64 + +Disassembly of section .text: + +0+1000 : + +1000: 55[ ]+push %rbp + +1001: 48 89 e5[ ]+mov %rsp,%rbp + +1004: 90[ ]+nop * + +1005: 90[ ]+nop * + +1006: 90[ ]+nop * + +1007: 90[ ]+nop * +# GD + +1008: 66 48 8d 3d f0 11 10[ ]+lea 1053168\(%rip\),%rdi +# 102200 <_GLOBAL_OFFSET_TABLE_\+0x70> + +100f: 00 * +# -> R_X86_64_DTPMOD64 sg1 + +1010: 66[ ]+data16 + +1011: 66[ ]+data16 + +1012: 48 e8 68 f6 ff ff[ ]+rex64 callq [0-9a-f]+ <.*> +# -> R_X86_64_JUMP_SLOT __tls_get_addr + +1018: 90[ ]+nop * + +1019: 90[ ]+nop * + +101a: 90[ ]+nop * + +101b: 90[ ]+nop * +# GD -> IE because variable is referenced through IE too + +101c: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax + +1023: 00 00 * + +1025: 48 03 05 f4 11 10 00[ ]+add 1053172\(%rip\),%rax +# 102220 <_GLOBAL_OFFSET_TABLE_\+0x90> +# -> R_X86_64_TPOFF64 sg2 + +102c: 90[ ]+nop * + +102d: 90[ ]+nop * + +102e: 90[ ]+nop * + +102f: 90[ ]+nop * +# GD against local variable + +1030: 66 48 8d 3d 78 11 10[ ]+lea 1053048\(%rip\),%rdi +# 1021b0 <_GLOBAL_OFFSET_TABLE_\+0x20> + +1037: 00 * +# -> R_X86_64_DTPMOD64 [0 0x2000000000000000] + +1038: 66[ ]+data16 + +1039: 66[ ]+data16 + +103a: 48 e8 40 f6 ff ff[ ]+rex64 callq [0-9a-f]+ <.*> +# -> R_X86_64_JUMP_SLOT __tls_get_addr + +1040: 90[ ]+nop * + +1041: 90[ ]+nop * + +1042: 90[ ]+nop * + +1043: 90[ ]+nop * +# GD -> IE against local variable referenced through IE too + +1044: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax + +104b: 00 00 * + +104d: 48 03 05 6c 11 10 00[ ]+add 1053036\(%rip\),%rax +# 1021c0 <_GLOBAL_OFFSET_TABLE_\+0x30> +# -> R_X86_64_TPOFF64 *ABS*+0x24 + +1054: 90[ ]+nop * + +1055: 90[ ]+nop * + +1056: 90[ ]+nop * + +1057: 90[ ]+nop * +# GD against hidden and local variable + +1058: 66 48 8d 3d c8 11 10[ ]+lea 1053128\(%rip\),%rdi +# 102228 <_GLOBAL_OFFSET_TABLE_\+0x98> + +105f: 00 * +# -> R_X86_64_DTPMOD64 [0 0x4000000000000000] + +1060: 66[ ]+data16 + +1061: 66[ ]+data16 + +1062: 48 e8 18 f6 ff ff[ ]+rex64 callq [0-9a-f]+ <.*> +# -> R_X86_64_JUMP_SLOT __tls_get_addr + +1068: 90[ ]+nop * + +1069: 90[ ]+nop * + +106a: 90[ ]+nop * + +106b: 90[ ]+nop * +# GD -> IE against hidden and local variable referenced through IE too + +106c: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax + +1073: 00 00 * + +1075: 48 03 05 bc 11 10 00[ ]+add 1053116\(%rip\),%rax +# 102238 <_GLOBAL_OFFSET_TABLE_\+0xa8> +# -> R_X86_64_TPOFF64 *ABS*+0x44 + +107c: 90[ ]+nop * + +107d: 90[ ]+nop * + +107e: 90[ ]+nop * + +107f: 90[ ]+nop * +# GD against hidden but not local variable + +1080: 66 48 8d 3d 58 11 10[ ]+lea 1053016\(%rip\),%rdi +# 1021e0 <_GLOBAL_OFFSET_TABLE_\+0x50> + +1087: 00 * +# -> R_X86_64_DTPMOD64 [0 0x6000000000000000] + +1088: 66[ ]+data16 + +1089: 66[ ]+data16 + +108a: 48 e8 f0 f5 ff ff[ ]+rex64 callq [0-9a-f]+ <.*> +# -> R_X86_64_JUMP_SLOT __tls_get_addr + +1090: 90[ ]+nop * + +1091: 90[ ]+nop * + +1092: 90[ ]+nop * + +1093: 90[ ]+nop * +# GD -> IE against hidden but not local variable referenced through IE too + +1094: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax + +109b: 00 00 * + +109d: 48 03 05 4c 11 10 00[ ]+add 1053004\(%rip\),%rax +# 1021f0 <_GLOBAL_OFFSET_TABLE_\+0x60> +# -> R_X86_64_TPOFF64 *ABS*+0x64 + +10a4: 90[ ]+nop * + +10a5: 90[ ]+nop * + +10a6: 90[ ]+nop * + +10a7: 90[ ]+nop * +# LD + +10a8: 48 8d 3d 21 11 10 00[ ]+lea 1052961\(%rip\),%rdi +# 1021d0 <_GLOBAL_OFFSET_TABLE_\+0x40> +# -> R_X86_64_DTPMOD64 [0 0x000000000000000] + +10af: e8 cc f5 ff ff[ ]+callq [0-9a-f]+ <.*> +# -> R_X86_64_JUMP_SLOT __tls_get_addr + +10b4: 90[ ]+nop * + +10b5: 90[ ]+nop * + +10b6: 48 8d 90 20 00 00 00[ ]+lea 0x20\(%rax\),%rdx + +10bd: 90[ ]+nop * + +10be: 90[ ]+nop * + +10bf: 4c 8d 88 26 00 00 00[ ]+lea 0x26\(%rax\),%r9 + +10c6: 90[ ]+nop * + +10c7: 90[ ]+nop * + +10c8: 90[ ]+nop * + +10c9: 90[ ]+nop * +# LD against hidden and local variables + +10ca: 48 8d 3d ff 10 10 00[ ]+lea 1052927\(%rip\),%rdi +# 1021d0 <_GLOBAL_OFFSET_TABLE_\+0x40> +# -> R_X86_64_DTPMOD64 [0 0x000000000000000] + +10d1: e8 aa f5 ff ff[ ]+callq [0-9a-f]+ <.*> +# -> R_X86_64_JUMP_SLOT __tls_get_addr + +10d6: 90[ ]+nop * + +10d7: 90[ ]+nop * + +10d8: 48 8d 90 40 00 00 00[ ]+lea 0x40\(%rax\),%rdx + +10df: 90[ ]+nop * + +10e0: 90[ ]+nop * + +10e1: 48 8d 88 47 00 00 00[ ]+lea 0x47\(%rax\),%rcx + +10e8: 90[ ]+nop * + +10e9: 90[ ]+nop * + +10ea: 90[ ]+nop * + +10eb: 90[ ]+nop * +# LD against hidden but not local variables + +10ec: 48 8d 3d dd 10 10 00[ ]+lea 1052893\(%rip\),%rdi +# 1021d0 <_GLOBAL_OFFSET_TABLE_\+0x40> +# -> R_X86_64_DTPMOD64 [0 0x000000000000000] + +10f3: e8 88 f5 ff ff[ ]+callq [0-9a-f]+ <.*> +# -> R_X86_64_JUMP_SLOT __tls_get_addr + +10f8: 90[ ]+nop * + +10f9: 90[ ]+nop * + +10fa: 4c 8d a0 60 00 00 00[ ]+lea 0x60\(%rax\),%r12 + +1101: 90[ ]+nop * + +1102: 90[ ]+nop * + +1103: 48 8d 88 65 00 00 00[ ]+lea 0x65\(%rax\),%rcx + +110a: 90[ ]+nop * + +110b: 90[ ]+nop * +# IE against global var + +110c: 64 48 8b 0c 25 00 00[ ]+mov %fs:0x0,%rcx + +1113: 00 00 * + +1115: 90[ ]+nop * + +1116: 90[ ]+nop * + +1117: 48 03 0d 02 11 10 00[ ]+add 1052930\(%rip\),%rcx +# 102220 <_GLOBAL_OFFSET_TABLE_\+0x90> +# -> R_X86_64_TPOFF64 sg2 + +111e: 90[ ]+nop * + +111f: 90[ ]+nop * + +1120: 90[ ]+nop * + +1121: 90[ ]+nop * +# IE against local var + +1122: 64 4c 8b 34 25 00 00[ ]+mov %fs:0x0,%r14 + +1129: 00 00 * + +112b: 90[ ]+nop * + +112c: 90[ ]+nop * + +112d: 4c 03 35 8c 10 10 00[ ]+add 1052812\(%rip\),%r14 +# 1021c0 <_GLOBAL_OFFSET_TABLE_\+0x30> +# -> R_X86_64_TPOFF64 *ABS*+0x24 + +1134: 90[ ]+nop * + +1135: 90[ ]+nop * + +1136: 90[ ]+nop * + +1137: 90[ ]+nop * +# IE against hidden and local var + +1138: 64 48 8b 0c 25 00 00[ ]+mov %fs:0x0,%rcx + +113f: 00 00 * + +1141: 90[ ]+nop * + +1142: 90[ ]+nop * + +1143: 48 03 0d ee 10 10 00[ ]+add 1052910\(%rip\),%rcx +# 102238 <_GLOBAL_OFFSET_TABLE_\+0xa8> +# -> R_X86_64_TPOFF64 *ABS*+0x44 + +114a: 90[ ]+nop * + +114b: 90[ ]+nop * + +114c: 90[ ]+nop * + +114d: 90[ ]+nop * +# IE against hidden but not local var + +114e: 64 48 8b 0c 25 00 00[ ]+mov %fs:0x0,%rcx + +1155: 00 00 * + +1157: 90[ ]+nop * + +1158: 90[ ]+nop * + +1159: 48 03 0d 90 10 10 00[ ]+add 1052816\(%rip\),%rcx +# 1021f0 <_GLOBAL_OFFSET_TABLE_\+0x60> +# -> R_X86_64_TPOFF64 *ABS*+0x64 + +1160: 90[ ]+nop * + +1161: 90[ ]+nop * + +1162: 90[ ]+nop * + +1163: 90[ ]+nop * +# Direct access through %fs +# IE against global var + +1164: 48 8b 0d 8d 10 10 00[ ]+mov 1052813\(%rip\),%rcx +# 1021f8 <_GLOBAL_OFFSET_TABLE_\+0x68> +# -> R_X86_64_TPOFF64 sg5 + +116b: 90[ ]+nop * + +116c: 90[ ]+nop * + +116d: 64 48 8b 11[ ]+mov %fs:\(%rcx\),%rdx + +1171: 90[ ]+nop * + +1172: 90[ ]+nop * + +1173: 90[ ]+nop * + +1174: 90[ ]+nop * +# IE against local var + +1175: 4c 8b 15 4c 10 10 00[ ]+mov 1052748\(%rip\),%r10 +# 1021c8 <_GLOBAL_OFFSET_TABLE_\+0x38> +# -> R_X86_64_TPOFF64 *ABS*+0x30 + +117c: 90[ ]+nop * + +117d: 90[ ]+nop * + +117e: 64 4d 8b 22[ ]+mov %fs:\(%r10\),%r12 + +1182: 90[ ]+nop * + +1183: 90[ ]+nop * + +1184: 90[ ]+nop * + +1185: 90[ ]+nop * +# IE against hidden and local var + +1186: 48 8b 15 83 10 10 00[ ]+mov 1052803\(%rip\),%rdx +# 102210 <_GLOBAL_OFFSET_TABLE_\+0x80> +# -> R_X86_64_TPOFF64 *ABS*+0x50 + +118d: 90[ ]+nop * + +118e: 90[ ]+nop * + +118f: 64 48 8b 12[ ]+mov %fs:\(%rdx\),%rdx + +1193: 90[ ]+nop * + +1194: 90[ ]+nop * + +1195: 90[ ]+nop * + +1196: 90[ ]+nop * +# IE against hidden but not local var + +1197: 48 8b 0d 7a 10 10 00[ ]+mov 1052794\(%rip\),%rcx +# 102218 <_GLOBAL_OFFSET_TABLE_\+0x88> +# -> R_X86_64_TPOFF64 *ABS*+0x70 + +119e: 90[ ]+nop * + +119f: 90[ ]+nop * + +11a0: 64 48 8b 11[ ]+mov %fs:\(%rcx\),%rdx + +11a4: 90[ ]+nop * + +11a5: 90[ ]+nop * + +11a6: 90[ ]+nop * + +11a7: 90[ ]+nop * + +11a8: c9[ ]+leaveq * + +11a9: c3[ ]+retq * + +11aa: 90[ ]+nop * + +11ab: 90[ ]+nop * diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-x86-64/tlspic.rd binutils-2.13.90.0.10/ld/testsuite/ld-x86-64/tlspic.rd --- binutils-2.13.90.0.4/ld/testsuite/ld-x86-64/tlspic.rd Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-x86-64/tlspic.rd Wed Oct 2 10:17:20 2002 @@ -0,0 +1,162 @@ +#source: tlspic1.s +#source: tlspic2.s +#as: --64 +#ld: -shared -melf_x86_64 +#readelf: -WSsrl +#target: x86_64-*-* + +There are 17 section headers, starting at offset 0x[0-9a-f]+: + +Section Headers: + \[Nr\] Name +Type +Address +Off +Size +ES Flg Lk Inf Al + \[ 0\] +NULL +0+ 0+ 0+ 00 +0 +0 +0 + \[ 1\] .hash +.* + \[ 2\] .dynsym +.* + \[ 3\] .dynstr +.* + \[ 4\] .rela.dyn +.* + \[ 5\] .rela.plt +.* + \[ 6\] .plt +.* + \[ 7\] .text +PROGBITS +0+1000 0+1000 0+1ac 00 +AX +0 +0 4096 + \[ 8\] .data +.* + \[ 9\] .tdata +PROGBITS +0+102000 0+2000 0+60 00 WAT +0 +0 +1 + \[10\] .tbss +NOBITS +0+102060 0+2060 0+20 00 WAT +0 +0 +1 + \[11\] .dynamic +DYNAMIC +0+102060 0+2060 0+130 10 +WA +3 +0 +8 + \[12\] .got +PROGBITS +0+102190 0+2190 0+b0 08 +WA +0 +0 +8 + \[13\] .bss +.* + \[14\] .shstrtab +.* + \[15\] .symtab +.* + \[16\] .strtab +.* +Key to Flags: +.* +.* +.* + +Elf file type is DYN \(Shared object file\) +Entry point 0x1000 +There are 4 program headers, starting at offset [0-9]+ + +Program Headers: + Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align + LOAD +0x0+ 0x0+ 0x0+ 0x[0-9a-f]+ 0x[0-9a-f]+ R E 0x100000 + LOAD +0x0+2000 0x0+102000 0x0+102000 0x0+240 0x0+240 RW +0x100000 + DYNAMIC +0x0+2060 0x0+102060 0x0+102060 0x0+130 0x0+130 RW +0x8 + TLS +0x0+2000 0x0+102000 0x0+102000 0x0+60 0x0+80 R +0x1 + + Section to Segment mapping: + Segment Sections... + 00 +.hash .dynsym .dynstr .rela.dyn .rela.plt .plt .text * + 01 +.tdata .tbss .dynamic .got * + 02 +.tbss .dynamic * + 03 +.tdata .tbss * + +Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 14 entries: + +Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend +0+1021b0 0+10 R_X86_64_DTPMOD64 +0+ +0+1021c0 0+12 R_X86_64_TPOFF64 +0+24 +0+1021c8 0+12 R_X86_64_TPOFF64 +0+30 +0+1021d0 0+10 R_X86_64_DTPMOD64 +0+ +0+1021e0 0+10 R_X86_64_DTPMOD64 +0+ +0+1021f0 0+12 R_X86_64_TPOFF64 +0+64 +0+102210 0+12 R_X86_64_TPOFF64 +0+50 +0+102218 0+12 R_X86_64_TPOFF64 +0+70 +0+102228 0+10 R_X86_64_DTPMOD64 +0+ +0+102238 0+12 R_X86_64_TPOFF64 +0+44 +0+1021f8 0+1200000012 R_X86_64_TPOFF64 +0+10 sg5 \+ 0 +0+102200 0+1400000010 R_X86_64_DTPMOD64 +0+ sg1 \+ 0 +0+102208 0+1400000011 R_X86_64_DTPOFF64 +0+ sg1 \+ 0 +0+102220 0+1700000012 R_X86_64_TPOFF64 +0+4 sg2 \+ 0 + +Relocation section '.rela.plt' at offset 0x658 contains 1 entries: + +Offset +Info +Type +Symbol's Value Symbol's Name \+ Addend +0+[0-9a-f]+ 0+1300000007 R_X86_64_JUMP_SLOT +0+ __tls_get_addr \+ 0 + +Symbol table '.dynsym' contains 29 entries: + +Num: +Value +Size Type +Bind +Vis +Ndx Name + +0: 0+ +0 NOTYPE LOCAL DEFAULT UND * + +1: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +1 * + +2: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +2 * + +3: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +3 * + +4: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +4 * + +5: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +5 * + +6: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +6 * + +7: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +7 * + +8: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +8 * + +9: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +9 * + +10: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +10 * + +11: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +11 * + +12: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +12 * + +13: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +13 * + +14: 0+1c +0 TLS +GLOBAL DEFAULT +9 sg8 + +15: 0+102060 +0 OBJECT GLOBAL DEFAULT ABS _DYNAMIC + +16: 0+8 +0 TLS +GLOBAL DEFAULT +9 sg3 + +17: 0+c +0 TLS +GLOBAL DEFAULT +9 sg4 + +18: 0+10 +0 TLS +GLOBAL DEFAULT +9 sg5 + +19: 0+ +0 NOTYPE GLOBAL DEFAULT UND __tls_get_addr + +20: 0+ +0 TLS +GLOBAL DEFAULT +9 sg1 + +21: 0+1000 +0 FUNC +GLOBAL DEFAULT +7 fn1 + +22: 0+102240 +0 NOTYPE GLOBAL DEFAULT ABS __bss_start + +23: 0+4 +0 TLS +GLOBAL DEFAULT +9 sg2 + +24: 0+14 +0 TLS +GLOBAL DEFAULT +9 sg6 + +25: 0+18 +0 TLS +GLOBAL DEFAULT +9 sg7 + +26: 0+102240 +0 NOTYPE GLOBAL DEFAULT ABS _edata + +27: 0+102190 +0 OBJECT GLOBAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ + +28: 0+102240 +0 NOTYPE GLOBAL DEFAULT ABS _end + +Symbol table '.symtab' contains 56 entries: + +Num: +Value +Size Type +Bind +Vis +Ndx Name + +0: 0+ +0 NOTYPE LOCAL DEFAULT UND * + +1: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +1 * + +2: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +2 * + +3: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +3 * + +4: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +4 * + +5: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +5 * + +6: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +6 * + +7: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +7 * + +8: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +8 * + +9: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +9 * + +10: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +10 * + +11: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +11 * + +12: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +12 * + +13: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +13 * + +14: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +14 * + +15: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +15 * + +16: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +16 * + +17: 0+20 +0 TLS +LOCAL DEFAULT +9 sl1 + +18: 0+24 +0 TLS +LOCAL DEFAULT +9 sl2 + +19: 0+28 +0 TLS +LOCAL DEFAULT +9 sl3 + +20: 0+2c +0 TLS +LOCAL DEFAULT +9 sl4 + +21: 0+30 +0 TLS +LOCAL DEFAULT +9 sl5 + +22: 0+34 +0 TLS +LOCAL DEFAULT +9 sl6 + +23: 0+38 +0 TLS +LOCAL DEFAULT +9 sl7 + +24: 0+3c +0 TLS +LOCAL DEFAULT +9 sl8 + +25: 0+60 +0 TLS +LOCAL HIDDEN +10 sH1 + +26: 0+48 +0 TLS +LOCAL HIDDEN +9 sh3 + +27: 0+64 +0 TLS +LOCAL HIDDEN +10 sH2 + +28: 0+78 +0 TLS +LOCAL HIDDEN +10 sH7 + +29: 0+58 +0 TLS +LOCAL HIDDEN +9 sh7 + +30: 0+5c +0 TLS +LOCAL HIDDEN +9 sh8 + +31: 0+6c +0 TLS +LOCAL HIDDEN +10 sH4 + +32: 0+4c +0 TLS +LOCAL HIDDEN +9 sh4 + +33: 0+68 +0 TLS +LOCAL HIDDEN +10 sH3 + +34: 0+50 +0 TLS +LOCAL HIDDEN +9 sh5 + +35: 0+70 +0 TLS +LOCAL HIDDEN +10 sH5 + +36: 0+74 +0 TLS +LOCAL HIDDEN +10 sH6 + +37: 0+7c +0 TLS +LOCAL HIDDEN +10 sH8 + +38: 0+40 +0 TLS +LOCAL HIDDEN +9 sh1 + +39: 0+44 +0 TLS +LOCAL HIDDEN +9 sh2 + +40: 0+54 +0 TLS +LOCAL HIDDEN +9 sh6 + +41: 0+1c +0 TLS +GLOBAL DEFAULT +9 sg8 + +42: 0+102060 +0 OBJECT GLOBAL DEFAULT ABS _DYNAMIC + +43: 0+8 +0 TLS +GLOBAL DEFAULT +9 sg3 + +44: 0+c +0 TLS +GLOBAL DEFAULT +9 sg4 + +45: 0+10 +0 TLS +GLOBAL DEFAULT +9 sg5 + +46: 0+ +0 NOTYPE GLOBAL DEFAULT UND __tls_get_addr + +47: 0+ +0 TLS +GLOBAL DEFAULT +9 sg1 + +48: 0+1000 +0 FUNC +GLOBAL DEFAULT +7 fn1 + +49: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS __bss_start + +50: 0+4 +0 TLS +GLOBAL DEFAULT +9 sg2 + +51: 0+14 +0 TLS +GLOBAL DEFAULT +9 sg6 + +52: 0+18 +0 TLS +GLOBAL DEFAULT +9 sg7 + +53: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _edata + +54: 0+102190 +0 OBJECT GLOBAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ + +55: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _end diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-x86-64/tlspic.sd binutils-2.13.90.0.10/ld/testsuite/ld-x86-64/tlspic.sd --- binutils-2.13.90.0.4/ld/testsuite/ld-x86-64/tlspic.sd Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-x86-64/tlspic.sd Wed Oct 2 10:17:20 2002 @@ -0,0 +1,21 @@ +#source: tlspic1.s +#source: tlspic2.s +#as: --64 +#ld: -shared -melf_x86_64 +#objdump: -sj.got +#target: x86_64-*-* + +.*: +file format elf64-x86-64 + +Contents of section .got: + 102190 [0-9a-f]+ [0-9a-f]+ 00000000 00000000 .* + 1021a0 00000000 00000000 [0-9a-f]+ [0-9a-f]+ .* + 1021b0 00000000 00000000 20000000 00000000 .* + 1021c0 00000000 00000000 00000000 00000000 .* + 1021d0 00000000 00000000 00000000 00000000 .* + 1021e0 00000000 00000000 60000000 00000000 .* + 1021f0 00000000 00000000 00000000 00000000 .* + 102200 00000000 00000000 00000000 00000000 .* + 102210 00000000 00000000 00000000 00000000 .* + 102220 00000000 00000000 00000000 00000000 .* + 102230 40000000 00000000 00000000 00000000 .* diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-x86-64/tlspic.td binutils-2.13.90.0.10/ld/testsuite/ld-x86-64/tlspic.td --- binutils-2.13.90.0.4/ld/testsuite/ld-x86-64/tlspic.td Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-x86-64/tlspic.td Wed Oct 2 10:17:20 2002 @@ -0,0 +1,16 @@ +#source: tlspic1.s +#source: tlspic2.s +#as: --64 +#ld: -shared -melf_x86_64 +#objdump: -sj.tdata +#target: x86_64-*-* + +.*: +file format elf64-x86-64 + +Contents of section .tdata: + 102000 11000000 12000000 13000000 14000000 .* + 102010 15000000 16000000 17000000 18000000 .* + 102020 41000000 42000000 43000000 44000000 .* + 102030 45000000 46000000 47000000 48000000 .* + 102040 01010000 02010000 03010000 04010000 .* + 102050 05010000 06010000 07010000 08010000 .* diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-x86-64/tlspic1.s binutils-2.13.90.0.10/ld/testsuite/ld-x86-64/tlspic1.s --- binutils-2.13.90.0.4/ld/testsuite/ld-x86-64/tlspic1.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-x86-64/tlspic1.s Wed Oct 2 10:17:20 2002 @@ -0,0 +1,187 @@ + /* Force .data aligned to 4K, so .got very likely gets at 0x102190 + (0x60 bytes .tdata and 0x130 bytes .dynamic) */ + .data + .balign 4096 + .section ".tdata", "awT", @progbits + .globl sg1, sg2, sg3, sg4, sg5, sg6, sg7, sg8 + .globl sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8 + .hidden sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8 +sg1: .long 17 +sg2: .long 18 +sg3: .long 19 +sg4: .long 20 +sg5: .long 21 +sg6: .long 22 +sg7: .long 23 +sg8: .long 24 +sl1: .long 65 +sl2: .long 66 +sl3: .long 67 +sl4: .long 68 +sl5: .long 69 +sl6: .long 70 +sl7: .long 71 +sl8: .long 72 +sh1: .long 257 +sh2: .long 258 +sh3: .long 259 +sh4: .long 260 +sh5: .long 261 +sh6: .long 262 +sh7: .long 263 +sh8: .long 264 + /* Force .text aligned to 4K, so it very likely gets at 0x1000. */ + .text + .balign 4096 + .globl fn1 + .type fn1,@function +fn1: + pushq %rbp + movq %rsp, %rbp + nop;nop;nop;nop + + /* GD */ + .byte 0x66 + leaq sg1@tlsgd(%rip), %rdi + .word 0x6666 + rex64 + call __tls_get_addr@plt + nop;nop;nop;nop + + /* GD -> IE because variable is referenced through IE too */ + .byte 0x66 + leaq sg2@tlsgd(%rip), %rdi + .word 0x6666 + rex64 + call __tls_get_addr@plt + nop;nop;nop;nop + + /* GD against local variable */ + .byte 0x66 + leaq sl1@tlsgd(%rip), %rdi + .word 0x6666 + rex64 + call __tls_get_addr@plt + nop;nop;nop;nop + + /* GD -> IE against local variable referenced through IE too */ + .byte 0x66 + leaq sl2@tlsgd(%rip), %rdi + .word 0x6666 + rex64 + call __tls_get_addr@plt + nop;nop;nop;nop + + /* GD against hidden and local variable */ + .byte 0x66 + leaq sh1@tlsgd(%rip), %rdi + .word 0x6666 + rex64 + call __tls_get_addr@plt + nop;nop;nop;nop + + /* GD -> IE against hidden and local variable referenced through + IE too */ + .byte 0x66 + leaq sh2@tlsgd(%rip), %rdi + .word 0x6666 + rex64 + call __tls_get_addr@plt + nop;nop;nop;nop + + /* GD against hidden but not local variable */ + .byte 0x66 + leaq sH1@tlsgd(%rip), %rdi + .word 0x6666 + rex64 + call __tls_get_addr@plt + nop;nop;nop;nop + + /* GD -> IE against hidden but not local variable referenced through + IE too */ + .byte 0x66 + leaq sH2@tlsgd(%rip), %rdi + .word 0x6666 + rex64 + call __tls_get_addr@plt + nop;nop;nop;nop + + /* LD */ + leaq sl1@tlsld(%rip), %rdi + call __tls_get_addr@plt + nop;nop + leaq sl1@dtpoff(%rax), %rdx + nop;nop + leaq 2+sl2@dtpoff(%rax), %r9 + nop;nop;nop;nop + + /* LD against hidden and local variables */ + leaq sh1@tlsld(%rip), %rdi + call __tls_get_addr@plt + nop;nop + leaq sh1@dtpoff(%rax), %rdx + nop;nop + leaq sh2@dtpoff+3(%rax), %rcx + nop;nop;nop;nop + + /* LD against hidden but not local variables */ + leaq sH1@tlsld(%rip), %rdi + call __tls_get_addr@plt + nop;nop + leaq sH1@dtpoff(%rax), %r12 + nop;nop + leaq sH2@dtpoff+1(%rax), %rcx + nop;nop + + /* IE against global var */ + movq %fs:0, %rcx + nop;nop + addq sg2@gottpoff(%rip), %rcx + nop;nop;nop;nop + + /* IE against local var */ + movq %fs:0, %r14 + nop;nop + addq sl2@gottpoff(%rip), %r14 + nop;nop;nop;nop + + /* IE against hidden and local var */ + movq %fs:0, %rcx + nop;nop + addq sh2@gottpoff(%rip), %rcx + nop;nop;nop;nop + + /* IE against hidden but not local var */ + movq %fs:0, %rcx + nop;nop + addq sH2@gottpoff(%rip), %rcx + nop;nop;nop;nop + + /* Direct access through %fs */ + + /* IE against global var */ + movq sg5@gottpoff(%rip), %rcx + nop;nop + movq %fs:(%rcx), %rdx + nop;nop;nop;nop + + /* IE against local var */ + movq sl5@gottpoff(%rip), %r10 + nop;nop + movq %fs:(%r10), %r12 + nop;nop;nop;nop + + /* IE against hidden and local var */ + movq sh5@gottpoff(%rip), %rdx + nop;nop + movq %fs:(%rdx), %rdx + nop;nop;nop;nop + + /* IE against hidden but not local var */ + movq sH5@gottpoff(%rip), %rcx + nop;nop + movq %fs:(%rcx), %rdx + nop;nop;nop;nop + + leave + ret diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-x86-64/tlspic2.s binutils-2.13.90.0.10/ld/testsuite/ld-x86-64/tlspic2.s --- binutils-2.13.90.0.4/ld/testsuite/ld-x86-64/tlspic2.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-x86-64/tlspic2.s Wed Oct 2 10:17:20 2002 @@ -0,0 +1,11 @@ + .section ".tbss", "awT", @nobits + .globl sH1, sH2, sH3, sH4, sH5, sH6, sH7, sH8 + .hidden sH1, sH2, sH3, sH4, sH5, sH6, sH7, sH8 +sH1: .space 4 +sH2: .space 4 +sH3: .space 4 +sH4: .space 4 +sH5: .space 4 +sH6: .space 4 +sH7: .space 4 +sH8: .space 4 diff -uprN binutils-2.13.90.0.4/ld/testsuite/ld-x86-64/x86-64.exp binutils-2.13.90.0.10/ld/testsuite/ld-x86-64/x86-64.exp --- binutils-2.13.90.0.4/ld/testsuite/ld-x86-64/x86-64.exp Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/ld/testsuite/ld-x86-64/x86-64.exp Wed Oct 2 10:17:20 2002 @@ -0,0 +1,54 @@ +# Expect script for ld-x86_64 tests +# Copyright (C) 2002 Free Software Foundation +# +# 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 +# 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. +# + +# Test x86_64 linking; all types of relocs. This tests the assembler and +# tools like objdump as well as the linker. + +if { !([istarget "x86_64-*-elf*"] + || [istarget "x86_64-*-linux*"]) } { + return +} + +# List contains test-items with 3 items followed by 2 lists: +# 0:name 1:ld options 2:assembler options +# 3:filenames of assembler files 4: action and options. 5: name of output file + +# Actions: +# objdump: Apply objdump options on result. Compare with regex (last arg). +# nm: Apply nm options on result. Compare with regex (last arg). +# readelf: Apply readelf options on result. Compare with regex (last arg). + +set x86_64tests { + {"TLS -fpic -shared transitions" "-shared -melf_x86_64" + "--64" {tlspic1.s tlspic2.s} + {{readelf -WSsrl tlspic.rd} {objdump -drj.text tlspic.dd} + {objdump -sj.got tlspic.sd} {objdump -sj.tdata tlspic.td}} + "libtlspic.so"} + {"Helper shared library" "-shared -melf_x86_64" + "--64" {tlslib.s} {} "libtlslib.so"} + {"TLS -fpic and -fno-pic exec transitions" + "-melf_x86_64 tmpdir/libtlslib.so" "--64" {tlsbinpic.s tlsbin.s} + {{readelf -WSsrl tlsbin.rd} {objdump -drj.text tlsbin.dd} + {objdump -sj.got tlsbin.sd} {objdump -sj.tdata tlsbin.td}} + "tlsbin"} + {"TLS in debug sections" "-melf_x86_64" + "--64" {tlsg.s} + {{objdump -sj.debug_foobar tlsg.sd}} "tlsg"} +} + +run_ld_link_tests $x86_64tests diff -uprN binutils-2.13.90.0.4/ld/testsuite/lib/ld-lib.exp binutils-2.13.90.0.10/ld/testsuite/lib/ld-lib.exp --- binutils-2.13.90.0.4/ld/testsuite/lib/ld-lib.exp Wed Jul 17 11:38:30 2002 +++ binutils-2.13.90.0.10/ld/testsuite/lib/ld-lib.exp Wed Oct 2 10:17:20 2002 @@ -961,6 +961,136 @@ proc file_contents { filename } { return $contents } +# List contains test-items with 3 items followed by 2 lists: +# 0:name 1:ld options 2:assembler options +# 3:filenames of assembler files 4: action and options. 5: name of output file + +# Actions: +# objdump: Apply objdump options on result. Compare with regex (last arg). +# nm: Apply nm options on result. Compare with regex (last arg). +# readelf: Apply readelf options on result. Compare with regex (last arg). + +proc run_ld_link_tests { ldtests } { + global ld + global as + global nm + global objdump + global READELF + global srcdir + global subdir + global env + + foreach testitem $ldtests { + set testname [lindex $testitem 0] + set ld_options [lindex $testitem 1] + set as_options [lindex $testitem 2] + set as_files [lindex $testitem 3] + set actions [lindex $testitem 4] + set binfile tmpdir/[lindex $testitem 5] + set objfiles {} + set is_unresolved 0 + set failed 0 + +# verbose -log "Testname is $testname" +# verbose -log "ld_options is $ld_options" +# verbose -log "as_options is $as_options" +# verbose -log "as_files is $as_files" +# verbose -log "actions is $actions" +# verbose -log "binfile is $binfile" + + # Assemble each file in the test. + foreach as_file $as_files { + set objfile "tmpdir/[file rootname $as_file].o" + lappend objfiles $objfile + + if ![ld_assemble $as "$as_options $srcdir/$subdir/$as_file" $objfile] { + set is_unresolved 1 + break + } + } + + # Catch assembler errors. + if { $is_unresolved != 0 } { + unresolved $testname + continue + } + + if ![ld_simple_link $ld $binfile "-L$srcdir/$subdir $ld_options $objfiles"] { + fail $testname + } else { + set failed 0 + foreach actionlist $actions { + set action [lindex $actionlist 0] + set progopts [lindex $actionlist 1] + + # There are actions where we run regexp_diff on the + # output, and there are other actions (presumably). + # Handling of the former look the same. + set dump_prog "" + switch -- $action { + objdump + { set dump_prog $objdump } + nm + { set dump_prog $nm } + readelf + { set dump_prog $READELF } + default + { + perror "Unrecognized action $action" + set is_unresolved 1 + break + } + } + + if { $dump_prog != "" } { + set dumpfile [lindex $actionlist 2] + set binary $dump_prog + + # Ensure consistent sorting of symbols + if {[info exists env(LC_ALL)]} { + set old_lc_all $env(LC_ALL) + } + set env(LC_ALL) "C" + set cmd "$binary $progopts $binfile > dump.out" + send_log "$cmd\n" + catch "exec $cmd" comp_output + if {[info exists old_lc_all]} { + set env(LC_ALL) $old_lc_all + } else { + unset env(LC_ALL) + } + set comp_output [prune_warnings $comp_output] + + if ![string match "" $comp_output] then { + send_log "$comp_output\n" + set failed 1 + break + } + + if { [regexp_diff "dump.out" "$srcdir/$subdir/$dumpfile"] } then { + verbose "output is [file_contents "dump.out"]" 2 + set failed 1 + break + } + } + } + + if { $failed != 0 } { + fail $testname + } else { if { $is_unresolved == 0 } { + pass $testname + } } + } + + # Catch action errors. + if { $is_unresolved != 0 } { + unresolved $testname + continue + } + } +} + + proc verbose_eval { expr { level 1 } } { global verbose if $verbose>$level then { eval verbose "$expr" $level } diff -uprN binutils-2.13.90.0.4/libiberty/ChangeLog binutils-2.13.90.0.10/libiberty/ChangeLog --- binutils-2.13.90.0.4/libiberty/ChangeLog Thu Aug 8 22:49:56 2002 +++ binutils-2.13.90.0.10/libiberty/ChangeLog Mon Oct 7 23:08:00 2002 @@ -1,3 +1,52 @@ +2002-10-06 Andreas Jaeger + + * libiberty/cplus-dem.c (ada_demangle): Get rid of unneeded + variable and of strict-aliasing warning. + (grow_vect): Use char as first parameter. + +2002-09-22 Kaveh R. Ghazi + + * Makefile.in (all): Fix multilib parallel build. + +2002-09-19 John David Anglin + + * cp-demangle.c (demangling_new): Cast 0 to enum. + (demangle_char): Cast return of strdup to char *. + (is_gnu_v3_mangled_ctor): Cast 0 to enum. + (is_gnu_v3_mangled_dtor): Likewise. + * cplus-dem.c (grow_vect): Cast return of xrealloc to void *. + (work_stuff_copy_to_from): Cast return of xmalloc to char **. + * fibheap.c (fibnode_new): Cast return of xcalloc to fibnode_t. + * md5.c (md5_process_bytes): Cast results back to const void *. + (md5_process_block): Add cast to const md5_uint32 *. + * regex.c (re_compile_fastmap): Cast enum to UCHAR_T. + * safe-ctype.c (L, XL, U, XU, D, P, _, C, Z, M, V, T, S): Add cast to + unsigned short. + * splay-tree.c (splay_tree_xmalloc_allocate): Cast return of xmalloc + to void *. + * vasprintf.c (int_vasprintf): Cast return of malloc to char *. + +2002-09-19 Nick Clifton + + * README: Update email addresses for bugs and patches. + +2002-09-10 Mike Stump + + * splay-tree.c (splay_tree_successor): Fix comments. + +2002-09-11 Zack Weinberg + + * cplus-dem.c: Code under #ifdef MAIN moved to gcc/cp/cxxfilt.c. + * testsuite/Makefile.in: Adjust for test-demangle. + * testsuite/regress-demangle: Deleted. + * testsuite/test-demangle.c: New file. + * testsuite/demangle-expected: Change \$ to $ throughout, now that + this file is not being read by a shell script. + +2002-09-05 Roger Sayle + + * regex.c: Only use "#pragma alloca" on AIX when not using gcc. + 2002-08-07 DJ Delorie * regex.c (re_error_msgid): Just use a simple array of strings. diff -uprN binutils-2.13.90.0.4/libiberty/Makefile.in binutils-2.13.90.0.10/libiberty/Makefile.in --- binutils-2.13.90.0.4/libiberty/Makefile.in Wed Jul 17 11:38:30 2002 +++ binutils-2.13.90.0.10/libiberty/Makefile.in Fri Sep 27 08:33:09 2002 @@ -106,7 +106,7 @@ SUBDIRS = testsuite # FIXME: add @BUILD_INFO@ once we're sure it works for everyone. all: stamp-picdir $(TARGETLIB) needed-list required-list all-subdir - @$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=all + @: $(MAKE) ; exec $(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=all .PHONY: check installcheck check: check-subdir diff -uprN binutils-2.13.90.0.4/libiberty/README binutils-2.13.90.0.10/libiberty/README --- binutils-2.13.90.0.4/libiberty/README Thu Jun 3 11:02:11 1999 +++ binutils-2.13.90.0.10/libiberty/README Fri Sep 27 08:33:09 2002 @@ -15,7 +15,8 @@ The library must be configured from the try to run configure in this directory. Follow the configuration instructions in ../README. -Please report bugs and fixes to "bug-gnu-utils@prep.ai.mit.edu". Thank you. +Please report bugs to "gcc-bugs@gcc.gnu.org" and send fixes to +"gcc-patches@gcc.gnu.org". Thank you. ADDING A NEW FILE ================= diff -uprN binutils-2.13.90.0.4/libiberty/cp-demangle.c binutils-2.13.90.0.10/libiberty/cp-demangle.c --- binutils-2.13.90.0.4/libiberty/cp-demangle.c Wed Jul 17 11:38:30 2002 +++ binutils-2.13.90.0.10/libiberty/cp-demangle.c Fri Sep 27 08:33:09 2002 @@ -835,8 +835,8 @@ demangling_new (name, style) return NULL; } dm->style = style; - dm->is_constructor = 0; - dm->is_destructor = 0; + dm->is_constructor = (enum gnu_v3_ctor_kinds) 0; + dm->is_destructor = (enum gnu_v3_dtor_kinds) 0; return dm; } @@ -974,7 +974,7 @@ demangle_char (dm, c) else { if (error_message == NULL) - error_message = strdup ("Expected ?"); + error_message = (char *) strdup ("Expected ?"); error_message[9] = c; return error_message; } @@ -3974,7 +3974,7 @@ is_gnu_v3_mangled_ctor (name) return result; } else - return 0; + return (enum gnu_v3_ctor_kinds) 0; } @@ -3996,7 +3996,7 @@ is_gnu_v3_mangled_dtor (name) return result; } else - return 0; + return (enum gnu_v3_dtor_kinds) 0; } #endif /* IN_GLIBCPP_V3 */ diff -uprN binutils-2.13.90.0.4/libiberty/cplus-dem.c binutils-2.13.90.0.10/libiberty/cplus-dem.c --- binutils-2.13.90.0.4/libiberty/cplus-dem.c Thu Aug 1 17:49:32 2002 +++ binutils-2.13.90.0.10/libiberty/cplus-dem.c Mon Oct 7 23:08:00 2002 @@ -548,7 +548,7 @@ recursively_demangle PARAMS ((struct wor int)); static void -grow_vect PARAMS ((void **, size_t *, size_t, int)); +grow_vect PARAMS ((char **, size_t *, size_t, int)); /* Translate count to integer, consuming tokens in the process. Conversion terminates on the first non-digit character. @@ -971,7 +971,7 @@ cplus_demangle_with_style (mangled, styl static void grow_vect (old_vect, size, min_size, element_size) - void **old_vect; + char **old_vect; size_t *size; size_t min_size; int element_size; @@ -981,7 +981,7 @@ grow_vect (old_vect, size, min_size, ele *size *= 2; if (*size < min_size) *size = min_size; - *old_vect = xrealloc (*old_vect, *size * element_size); + *old_vect = (void *) xrealloc (*old_vect, *size * element_size); } } @@ -1004,8 +1004,7 @@ ada_demangle (mangled, option) char *demangled = NULL; int at_start_name; int changed; - char *demangling_buffer = NULL; - size_t demangling_buffer_size = 0; + size_t demangled_size = 0; changed = 0; @@ -1033,10 +1032,9 @@ ada_demangle (mangled, option) } /* Make demangled big enough for possible expansion by operator name. */ - grow_vect ((void **) &(demangling_buffer), - &demangling_buffer_size, 2 * len0 + 1, + grow_vect (&demangled, + &demangled_size, 2 * len0 + 1, sizeof (char)); - demangled = demangling_buffer; if (ISDIGIT ((unsigned char) mangled[len0 - 1])) { for (i = len0 - 2; i >= 0 && ISDIGIT ((unsigned char) mangled[i]); i -= 1) @@ -1086,10 +1084,10 @@ ada_demangle (mangled, option) return demangled; Suppress: - grow_vect ((void **) &(demangling_buffer), - &demangling_buffer_size, strlen (mangled) + 3, + grow_vect (&demangled, + &demangled_size, strlen (mangled) + 3, sizeof (char)); - demangled = demangling_buffer; + if (mangled[0] == '<') strcpy (demangled, mangled); else @@ -1426,7 +1424,7 @@ work_stuff_copy_to_from (to, from) if (from->ntmpl_args) to->tmpl_argvec - = xmalloc (from->ntmpl_args * sizeof (to->tmpl_argvec[0])); + = (char **) xmalloc (from->ntmpl_args * sizeof (to->tmpl_argvec[0])); for (i = 0; i < from->ntmpl_args; i++) { @@ -5140,321 +5138,3 @@ get_demangler_list () return demangler_list; } - -/* To generate a standalone demangler program for testing purposes, - just compile and link this file with -DMAIN and libiberty.a. When - run, it demangles each command line arg, or each stdin string, and - prints the result on stdout. */ - -#ifdef MAIN - -#include "getopt.h" - -static const char *program_name; -static const char *program_version = VERSION; - -static void demangle_it PARAMS ((char *)); -static void usage PARAMS ((FILE *, int)) ATTRIBUTE_NORETURN; -static void fatal PARAMS ((const char *)) ATTRIBUTE_NORETURN; - -static void -demangle_it (mangled_name) - char *mangled_name; -{ - char *result; - - /* For command line args, also try to demangle type encodings. */ - libiberty_demanglers [current_demangling_style].demangling_options - |= DMGL_TYPES; - result = demangle_symbol (mangled_name); - if (result == NULL) - { - printf ("%s\n", mangled_name); - } - else - { - printf ("%s\n", result); - free (result); - } -} - -static void -usage (stream, status) - FILE *stream; - int status; -{ - fprintf (stream, "\ -Usage: %s [-_] [-n] [--strip-underscores] [--no-strip-underscores] \n", - program_name); - - fprintf (stream, "\ - [-s %s]\n", get_demangler_list ()); - - fprintf (stream, "\ - [--format %s]\n", get_demangler_list ()); - - fprintf (stream, "\ - [--help] [--version] [arg...]\n"); - exit (status); -} - -#define MBUF_SIZE 32767 -char mbuffer[MBUF_SIZE]; - -/* Defined in the automatically-generated underscore.c. */ -extern int prepends_underscore; - -int strip_underscore = 0; - -static const struct option long_options[] = { - {"strip-underscores", no_argument, 0, '_'}, - {"format", required_argument, 0, 's'}, - {"demangler", required_argument, 0, 'd'}, - {"help", no_argument, 0, 'h'}, - {"no-strip-underscores", no_argument, 0, 'n'}, - {"version", no_argument, 0, 'v'}, - {0, no_argument, 0, 0} -}; - -/* More 'friendly' abort that prints the line and file. - config.h can #define abort fancy_abort if you like that sort of thing. */ - -void -fancy_abort () -{ - fatal ("Internal gcc abort."); -} - - -static const char * -standard_symbol_characters PARAMS ((void)); - -static const char * -hp_symbol_characters PARAMS ((void)); - -static const char * -gnu_v3_symbol_characters PARAMS ((void)); - -/* Return the string of non-alnum characters that may occur - as a valid symbol component, in the standard assembler symbol - syntax. */ - -static const char * -standard_symbol_characters () -{ - return "_$."; -} - - -/* Return the string of non-alnum characters that may occur - as a valid symbol name component in an HP object file. - - Note that, since HP's compiler generates object code straight from - C++ source, without going through an assembler, its mangled - identifiers can use all sorts of characters that no assembler would - tolerate, so the alphabet this function creates is a little odd. - Here are some sample mangled identifiers offered by HP: - - typeid*__XT24AddressIndExpClassMember_ - [Vftptr]key:__dt__32OrdinaryCompareIndExpClassMemberFv - __ct__Q2_9Elf64_Dyn18{unnamed.union.#1}Fv - - This still seems really weird to me, since nowhere else in this - file is there anything to recognize curly brackets, parens, etc. - I've talked with Srikanth , and he assures me - this is right, but I still strongly suspect that there's a - misunderstanding here. - - If we decide it's better for c++filt to use HP's assembler syntax - to scrape identifiers out of its input, here's the definition of - the symbol name syntax from the HP assembler manual: - - Symbols are composed of uppercase and lowercase letters, decimal - digits, dollar symbol, period (.), ampersand (&), pound sign(#) and - underscore (_). A symbol can begin with a letter, digit underscore or - dollar sign. If a symbol begins with a digit, it must contain a - non-digit character. - - So have fun. */ -static const char * -hp_symbol_characters () -{ - return "_$.<>#,*&[]:(){}"; -} - - -/* Return the string of non-alnum characters that may occur - as a valid symbol component in the GNU C++ V3 ABI mangling - scheme. */ - -static const char * -gnu_v3_symbol_characters () -{ - return "_$."; -} - - -extern int main PARAMS ((int, char **)); - -int -main (argc, argv) - int argc; - char **argv; -{ - char *result; - int c; - const char *valid_symbols; - const char *demangler = NULL; - const char *options = NULL; - - program_name = argv[0]; - - strip_underscore = prepends_underscore; - - while ((c = getopt_long (argc, argv, "_ns:d:", long_options, (int *) 0)) != EOF) - { - switch (c) - { - case '?': - usage (stderr, 1); - break; - case 'h': - usage (stdout, 0); - case 'n': - strip_underscore = 0; - break; - case 'v': - printf ("GNU %s (C++ demangler), version %s\n", program_name, program_version); - return (0); - case '_': - strip_underscore = 1; - break; - case 'd': - demangler = optarg; - break; - case 's': - current_demangling_style - = cplus_demangle_name_to_style (optarg); - if (current_demangling_style == unknown_demangling) - { - fprintf (stderr, "%s: unknown demangling style `%s'\n", - program_name, optarg); - return (1); - } - break; - } - } - - init_demangler (NULL, options, demangler); - - if (optind < argc) - { - for ( ; optind < argc; optind++) - { - demangle_it (argv[optind]); - } - } - else - { - switch (current_demangling_style) - { - case gnu_demangling: - case lucid_demangling: - case arm_demangling: - case java_demangling: - case edg_demangling: - case gnat_demangling: - case auto_demangling: - case compaq_demangling: - valid_symbols = standard_symbol_characters (); - break; - case hp_demangling: - valid_symbols = hp_symbol_characters (); - break; - case gnu_v3_demangling: - valid_symbols = gnu_v3_symbol_characters (); - break; - default: - /* Folks should explicitly indicate the appropriate alphabet for - each demangling. Providing a default would allow the - question to go unconsidered. */ - abort (); - } - - for (;;) - { - int i = 0; - c = getchar (); - /* Try to read a label. */ - while (c != EOF && (ISALNUM (c) || strchr (valid_symbols, c))) - { - if (i >= MBUF_SIZE-1) - break; - mbuffer[i++] = c; - c = getchar (); - } - if (i > 0) - { - int skip_first = 0; - - if (mbuffer[0] == '.' || mbuffer[0] == '$') - ++skip_first; - if (strip_underscore && mbuffer[skip_first] == '_') - ++skip_first; - - if (skip_first > i) - skip_first = i; - - mbuffer[i] = 0; - result = demangle_symbol (mbuffer + skip_first); - if (result) - { - if (mbuffer[0] == '.') - putc ('.', stdout); - fputs (result, stdout); - free (result); - } - else - fputs (mbuffer, stdout); - - fflush (stdout); - } - if (c == EOF) - break; - putchar (c); - fflush (stdout); - } - } - - return (0); -} - -static void -fatal (str) - const char *str; -{ - fprintf (stderr, "%s: %s\n", program_name, str); - exit (1); -} - -PTR -xmalloc (size) - size_t size; -{ - register PTR value = (PTR) malloc (size); - if (value == 0) - fatal ("virtual memory exhausted"); - return value; -} - -PTR -xrealloc (ptr, size) - PTR ptr; - size_t size; -{ - register PTR value = (PTR) realloc (ptr, size); - if (value == 0) - fatal ("virtual memory exhausted"); - return value; -} -#endif /* main */ diff -uprN binutils-2.13.90.0.4/libiberty/fibheap.c binutils-2.13.90.0.10/libiberty/fibheap.c --- binutils-2.13.90.0.4/libiberty/fibheap.c Mon Aug 27 11:44:52 2001 +++ binutils-2.13.90.0.10/libiberty/fibheap.c Fri Sep 27 08:33:09 2002 @@ -66,7 +66,7 @@ fibnode_new () { fibnode_t node; - node = xcalloc (1, sizeof *node); + node = (fibnode_t) xcalloc (1, sizeof *node); node->left = node; node->right = node; diff -uprN binutils-2.13.90.0.4/libiberty/md5.c binutils-2.13.90.0.10/libiberty/md5.c --- binutils-2.13.90.0.4/libiberty/md5.c Sat May 12 00:05:47 2001 +++ binutils-2.13.90.0.10/libiberty/md5.c Fri Sep 27 08:33:09 2002 @@ -229,7 +229,7 @@ md5_process_bytes (buffer, len, ctx) ctx->buflen = (left_over + add) & 63; } - buffer = (const char *) buffer + add; + buffer = (const void *) ((const char *) buffer + add); len -= add; } @@ -237,7 +237,7 @@ md5_process_bytes (buffer, len, ctx) if (len > 64) { md5_process_block (buffer, len & ~63, ctx); - buffer = (const char *) buffer + (len & ~63); + buffer = (const void *) ((const char *) buffer + (len & ~63)); len &= 63; } @@ -269,7 +269,7 @@ md5_process_block (buffer, len, ctx) struct md5_ctx *ctx; { md5_uint32 correct_words[16]; - const md5_uint32 *words = buffer; + const md5_uint32 *words = (const md5_uint32 *) buffer; size_t nwords = len / sizeof (md5_uint32); const md5_uint32 *endp = words + nwords; md5_uint32 A = ctx->A; diff -uprN binutils-2.13.90.0.4/libiberty/regex.c binutils-2.13.90.0.10/libiberty/regex.c --- binutils-2.13.90.0.4/libiberty/regex.c Thu Aug 8 22:49:56 2002 +++ binutils-2.13.90.0.10/libiberty/regex.c Fri Sep 27 08:33:09 2002 @@ -25,7 +25,7 @@ routines with an "x" prefix so they do not collide with the native regex routines or with other components regex routines. */ /* AIX requires this to be the first thing in the file. */ -#if defined _AIX && !defined REGEX_MALLOC +#if defined _AIX && !defined __GNUC__ && !defined REGEX_MALLOC #pragma alloca #endif @@ -4648,7 +4648,7 @@ PREFIX(re_compile_fastmap) (bufp) while (1) { - if (p == pend || *p == succeed) + if (p == pend || *p == (UCHAR_T) succeed) { /* We have reached the (effective) end of pattern. */ if (!FAIL_STACK_EMPTY ()) diff -uprN binutils-2.13.90.0.4/libiberty/safe-ctype.c binutils-2.13.90.0.10/libiberty/safe-ctype.c --- binutils-2.13.90.0.4/libiberty/safe-ctype.c Thu Dec 21 16:34:58 2000 +++ binutils-2.13.90.0.10/libiberty/safe-ctype.c Fri Sep 27 08:33:09 2002 @@ -48,20 +48,20 @@ Boston, MA 02111-1307, USA. */ #define xd _sch_isxdigit /* Masks. */ -#define L lo|is |pr /* lower case letter */ -#define XL lo|is|xd|pr /* lowercase hex digit */ -#define U up|is |pr /* upper case letter */ -#define XU up|is|xd|pr /* uppercase hex digit */ -#define D di |xd|pr /* decimal digit */ -#define P pn |pr /* punctuation */ -#define _ pn|is |pr /* underscore */ +#define L (const unsigned short) (lo|is |pr) /* lower case letter */ +#define XL (const unsigned short) (lo|is|xd|pr) /* lowercase hex digit */ +#define U (const unsigned short) (up|is |pr) /* upper case letter */ +#define XU (const unsigned short) (up|is|xd|pr) /* uppercase hex digit */ +#define D (const unsigned short) (di |xd|pr) /* decimal digit */ +#define P (const unsigned short) (pn |pr) /* punctuation */ +#define _ (const unsigned short) (pn|is |pr) /* underscore */ -#define C cn /* control character */ -#define Z nv |cn /* NUL */ -#define M nv|sp |cn /* cursor movement: \f \v */ -#define V vs|sp |cn /* vertical space: \r \n */ -#define T nv|sp|bl|cn /* tab */ -#define S nv|sp|bl|pr /* space */ +#define C (const unsigned short) ( cn) /* control character */ +#define Z (const unsigned short) (nv |cn) /* NUL */ +#define M (const unsigned short) (nv|sp |cn) /* cursor movement: \f \v */ +#define V (const unsigned short) (vs|sp |cn) /* vertical space: \r \n */ +#define T (const unsigned short) (nv|sp|bl|cn) /* tab */ +#define S (const unsigned short) (nv|sp|bl|pr) /* space */ /* Are we ASCII? */ #if '\n' == 0x0A && ' ' == 0x20 && '0' == 0x30 \ diff -uprN binutils-2.13.90.0.4/libiberty/splay-tree.c binutils-2.13.90.0.10/libiberty/splay-tree.c --- binutils-2.13.90.0.4/libiberty/splay-tree.c Thu Mar 7 11:52:40 2002 +++ binutils-2.13.90.0.10/libiberty/splay-tree.c Fri Sep 27 08:33:09 2002 @@ -234,7 +234,7 @@ splay_tree_xmalloc_allocate (size, data) int size; void *data ATTRIBUTE_UNUSED; { - return xmalloc (size); + return (void *) xmalloc (size); } static void @@ -482,7 +482,7 @@ splay_tree_predecessor (sp, key) } /* Return the immediate successor KEY, or NULL if there is no - predecessor. KEY need not be present in the tree. */ + successor. KEY need not be present in the tree. */ splay_tree_node splay_tree_successor (sp, key) @@ -492,7 +492,7 @@ splay_tree_successor (sp, key) int comparison; splay_tree_node node; - /* If the tree is empty, there is certainly no predecessor. */ + /* If the tree is empty, there is certainly no successor. */ if (!sp->root) return NULL; diff -uprN binutils-2.13.90.0.4/libiberty/testsuite/Makefile.in binutils-2.13.90.0.10/libiberty/testsuite/Makefile.in --- binutils-2.13.90.0.4/libiberty/testsuite/Makefile.in Fri Feb 25 16:36:51 2000 +++ binutils-2.13.90.0.10/libiberty/testsuite/Makefile.in Fri Sep 27 08:33:09 2002 @@ -1,6 +1,6 @@ # # Makefile -# Copyright (C) 1999 +# Copyright (C) 1999, 2002 # Free Software Foundation # # This file is part of the libiberty library. @@ -45,31 +45,25 @@ all: check: @CHECK@ # Run some tests of the demangler. -check-cplus-dem: test-filter $(srcdir)/demangle-expected - $(SHELL) $(srcdir)/regress-demangle $(srcdir)/demangle-expected +check-cplus-dem: test-demangle $(srcdir)/demangle-expected + ./test-demangle < $(srcdir)/demangle-expected -# Note that we just hard-code prepends_underscore to 0. This doesn't -# matter since any particular test can override the default if need -# be. TEST_COMPILE = $(CC) @DEFS@ $(LIBCFLAGS) -I.. -I$(INCDIR) $(HDEFINES) -test-filter: $(srcdir)/../cplus-dem.c - echo 'int prepends_underscore = 0;' > test-us.c - $(TEST_COMPILE) -o test-filter -DMAIN -DVERSION='"none"' @DEFS@ \ - $(srcdir)/../cplus-dem.c test-us.c -L.. -liberty $(LOADLIBES) - +test-demangle: $(srcdir)/test-demangle.c + $(TEST_COMPILE) -o test-demangle \ + $(srcdir)/test-demangle.c ../libiberty.a $(LOADLIBES) # Standard (either GNU or Cygnus) rules we don't use. info install-info clean-info dvi install etags tags installcheck: # The standard clean rules. mostlyclean: - rm -f test-us.c test-filter + rm -f test-demangle clean: mostlyclean distclean: clean rm -f Makefile maintainer-clean realclean: distclean - Makefile: $(srcdir)/Makefile.in ../config.status CONFIG_FILES=testsuite/Makefile CONFIG_HEADERS= \ cd .. && $(SHELL) ./config.status diff -uprN binutils-2.13.90.0.4/libiberty/testsuite/demangle-expected binutils-2.13.90.0.10/libiberty/testsuite/demangle-expected --- binutils-2.13.90.0.4/libiberty/testsuite/demangle-expected Wed Jul 17 11:38:30 2002 +++ binutils-2.13.90.0.10/libiberty/testsuite/demangle-expected Fri Sep 27 08:33:09 2002 @@ -127,31 +127,31 @@ VOrder__9ivTSolverUiRP12ivInteractorT2 ivTSolver::VOrder(unsigned int, ivInteractor *&, ivInteractor *&) # --format=gnu -_10PageButton\$__both +_10PageButton$__both PageButton::__both # --format=gnu -_3RNG\$singleMantissa +_3RNG$singleMantissa RNG::singleMantissa # --format=gnu -_5IComp\$_release +_5IComp$_release IComp::_release # --format=gnu -_\$_10BitmapComp +_$_10BitmapComp BitmapComp::~BitmapComp(void) # --format=gnu -_\$_9__io_defs +_$_9__io_defs __io_defs::~__io_defs(void) # --format=gnu -_\$_Q23foo3bar +_$_Q23foo3bar foo::bar::~bar(void) # --format=gnu -_\$_Q33foo3bar4bell +_$_Q33foo3bar4bell foo::bar::bell::~bell(void) # --format=gnu @@ -435,11 +435,11 @@ _vt.foo.bar foo::bar virtual table # --format=gnu -_vt\$foo +_vt$foo foo virtual table # --format=gnu -_vt\$foo\$bar +_vt$foo$bar foo::bar virtual table # --format=gnu @@ -647,11 +647,11 @@ zero__8osMemoryPvUi osMemory::zero(void *, unsigned int) # --format=gnu -_2T4\$N +_2T4$N T4::N # --format=gnu -_Q22T42t1\$N +_Q22T42t1$N T4::t1::N # --format=gnu @@ -727,11 +727,11 @@ __t6vector1Zii vector::vector(int) # --format=gnu -_\$_t6vector1Zdi +_$_t6vector1Zdi vector::~vector(int) # --format=gnu -_\$_t6vector1Zii +_$_t6vector1Zii vector::~vector(int) # --format=gnu @@ -827,11 +827,11 @@ next__Ct4List1Z10VHDLEntityRQ2t4List1Z10 List::next(List::Pix &) const # --format=gnu -_GLOBAL_\$D\$set +_GLOBAL_$D$set global destructors keyed to set # --format=gnu -_GLOBAL_\$I\$set +_GLOBAL_$I$set global constructors keyed to set # --format=gnu @@ -875,7 +875,7 @@ __t8BDDHookV1ZPcRCPc BDDHookV::BDDHookV(char *const &) # --format=gnu -_vt\$t8BDDHookV1ZPc +_vt$t8BDDHookV1ZPc BDDHookV virtual table # --format=gnu @@ -2564,7 +2564,7 @@ _27_GLOBAL_.N.__12burst_app_ct.app_insta {anonymous}::app_instance # --format=gnu -_26_GLOBAL_\$N\$_tmp_n.iilg4Gya\$app_instance +_26_GLOBAL_$N$_tmp_n.iilg4Gya$app_instance {anonymous}::app_instance # --format=java diff -uprN binutils-2.13.90.0.4/libiberty/testsuite/regress-demangle binutils-2.13.90.0.10/libiberty/testsuite/regress-demangle --- binutils-2.13.90.0.4/libiberty/testsuite/regress-demangle Sun Feb 3 11:22:33 2002 +++ binutils-2.13.90.0.10/libiberty/testsuite/regress-demangle Wed Dec 31 16:00:00 1969 @@ -1,30 +0,0 @@ -#! /bin/sh - -# Run a regression test for the demangler. -# Usage: regress-demangle TEST-FILE - -failures=0 -count=0 -sed -e '/^#/ d' "$1" | ( - while read type; do - read mangled - read demangled - - x="`./test-filter $type $mangled`" - count=`expr $count + 1` - if test "x$x" != "x$demangled"; then - failures=`expr $failures + 1` - echo "FAIL: $type $mangled" - echo " result: $x" - echo " expected: $demangled" - fi - done - - if test $failures -eq 0; then - echo "All $count tests passed" - else - echo "$failures of $count tests failed" - fi - - test $failures -eq 0 -) diff -uprN binutils-2.13.90.0.4/libiberty/testsuite/test-demangle.c binutils-2.13.90.0.10/libiberty/testsuite/test-demangle.c --- binutils-2.13.90.0.4/libiberty/testsuite/test-demangle.c Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/libiberty/testsuite/test-demangle.c Fri Sep 27 08:33:09 2002 @@ -0,0 +1,175 @@ +/* Demangler test program, + Copyright (C) 2002 Free Software Foundation, Inc. + Written by Zack Weinberg +#include "libiberty.h" +#include "demangle.h" + +struct line +{ + size_t alloced; + char *data; +}; + +static unsigned int lineno; + +/* Safely read a single line of arbitrary length from standard input. */ + +#define LINELEN 80 + +static void +getline(buf) + struct line *buf; +{ + char *data = buf->data; + size_t alloc = buf->alloced; + size_t count = 0; + int c; + + if (data == 0) + { + data = xmalloc (LINELEN); + alloc = LINELEN; + } + + /* Skip comment lines. */ + while ((c = getchar()) == '#') + { + while ((c = getchar()) != EOF && c != '\n'); + lineno++; + } + + /* c is the first character on the line, and it's not a comment + line: copy this line into the buffer and return. */ + while (c != EOF && c != '\n') + { + if (count >= alloc) + { + alloc *= 2; + data = xrealloc (data, alloc); + } + data[count++] = c; + c = getchar(); + } + lineno++; + data[count] = '\0'; + + buf->data = data; + buf->alloced = alloc; +} + +/* The tester operates on a data file consisting of triples of lines: + format switch + input to be demangled + expected output + + The format switch is expected to be either the empty string, a + line of the form --format=, or just by itself. */ + +#define FORMATS "--format=" +#define FORMATL (sizeof FORMATS - 1) + +int +main(argc, argv) + int argc; + char **argv; +{ + enum demangling_styles style; + struct line format; + struct line input; + struct line expect; + char *fstyle; + char *result; + int failures = 0; + int tests = 0; + + if (argc > 1) + { + fprintf (stderr, "usage: %s < test-set\n", argv[0]); + return 2; + } + + format.data = 0; + input.data = 0; + expect.data = 0; + + for (;;) + { + getline (&format); + if (feof (stdin)) + break; + + getline (&input); + getline (&expect); + + tests++; + + fstyle = format.data; + if (!strncmp (fstyle, FORMATS, FORMATL)) + fstyle += FORMATL; + + if (fstyle[0] == '\0') + style = auto_demangling; + else + style = cplus_demangle_name_to_style (fstyle); + + if (style == unknown_demangling) + { + printf ("FAIL at line %d: unknown demangling style %s\n", + lineno, fstyle); + failures++; + continue; + } + + cplus_demangle_set_style (style); + + result = cplus_demangle (input.data, + DMGL_PARAMS|DMGL_ANSI|DMGL_VERBOSE|DMGL_TYPES); + + if (result + ? strcmp (result, expect.data) + : strcmp (input.data, expect.data)) + { + printf ("\ +FAIL at line %d, style %s:\n\ +in: %s\n\ +out: %s\n\ +exp: %s\n", + lineno, fstyle, + input.data, + result, + expect.data); + failures++; + } + free (result); + } + + free (format.data); + free (input.data); + free (expect.data); + + printf ("%s: %d tests, %d failures\n", argv[0], tests, failures); + return failures ? 1 : 0; +} diff -uprN binutils-2.13.90.0.4/libiberty/vasprintf.c binutils-2.13.90.0.10/libiberty/vasprintf.c --- binutils-2.13.90.0.4/libiberty/vasprintf.c Fri Oct 19 23:57:49 2001 +++ binutils-2.13.90.0.10/libiberty/vasprintf.c Fri Sep 27 08:33:09 2002 @@ -138,7 +138,7 @@ int_vasprintf (result, format, args) #ifdef TEST global_total_width = total_width; #endif - *result = malloc (total_width); + *result = (char *) malloc (total_width); if (*result != NULL) return vsprintf (*result, format, *args); else diff -uprN binutils-2.13.90.0.4/mips/ChangeLog binutils-2.13.90.0.10/mips/ChangeLog --- binutils-2.13.90.0.4/mips/ChangeLog Thu Aug 8 22:49:56 2002 +++ binutils-2.13.90.0.10/mips/ChangeLog Wed Oct 2 10:17:20 2002 @@ -1,3 +1,7 @@ +2002-09-30 H.J. Lu + + * binutils-mips-isa.patch: Updated. + 2002-08-02 H.J. Lu * binutils-mips-isa.patch: Allow -mipsN to override -march if diff -uprN binutils-2.13.90.0.4/mips/binutils-mips-isa.patch binutils-2.13.90.0.10/mips/binutils-mips-isa.patch --- binutils-2.13.90.0.4/mips/binutils-mips-isa.patch Thu Aug 8 22:49:56 2002 +++ binutils-2.13.90.0.10/mips/binutils-mips-isa.patch Wed Oct 2 10:17:20 2002 @@ -1,3 +1,7 @@ +2002-09-30 H.J. Lu + + * elfxx-mips.c (_bfd_mips_elf_final_write_processing): Updated. + 2002-08-03 H.J. Lu * config/tc-mips.c (mips_after_parse_args): Check if -march is @@ -37,8 +41,8 @@ * mips.h (bfd_mips_elf_set_isa): New prototype. ---- binutils/bfd/elfxx-mips.c.mips Fri Aug 2 22:14:15 2002 -+++ binutils/bfd/elfxx-mips.c Fri Aug 2 22:14:25 2002 +--- binutils/bfd/elfxx-mips.c.mips Mon Sep 30 09:19:32 2002 ++++ binutils/bfd/elfxx-mips.c Mon Sep 30 09:53:24 2002 @@ -33,6 +33,7 @@ Foundation, Inc., 59 Temple Place - Suit #include "elf-bfd.h" #include "elfxx-mips.h" @@ -47,7 +51,7 @@ /* Get the ECOFF swapping routines. */ #include "coff/sym.h" -@@ -5882,6 +5883,55 @@ _bfd_mips_elf_finish_dynamic_sections (o +@@ -5896,6 +5897,55 @@ _bfd_mips_elf_finish_dynamic_sections (o return true; } @@ -103,7 +107,7 @@ /* The final processing done just before writing out a MIPS ELF object file. This gets the MIPS architecture right based on the machine number. This is used by both the 32-bit and the 64-bit ABI. */ -@@ -5891,75 +5941,92 @@ _bfd_mips_elf_final_write_processing (ab +@@ -5905,87 +5955,107 @@ _bfd_mips_elf_final_write_processing (ab bfd *abfd; boolean linker ATTRIBUTE_UNUSED; { @@ -161,12 +165,30 @@ + cpu = E_MIPS_MACH_4111; break; + case bfd_mach_mips4120: +- val = E_MIPS_ARCH_3 | E_MIPS_MACH_4120; ++ isa = E_MIPS_ARCH_3; ++ cpu = E_MIPS_MACH_4120; + break; + case bfd_mach_mips4650: - val = E_MIPS_ARCH_3 | E_MIPS_MACH_4650; + isa = E_MIPS_ARCH_3; + cpu = E_MIPS_MACH_4650; break; + case bfd_mach_mips5400: +- val = E_MIPS_ARCH_4 | E_MIPS_MACH_5400; ++ isa = E_MIPS_ARCH_4; ++ cpu = E_MIPS_MACH_5400; + break; + + case bfd_mach_mips5500: +- val = E_MIPS_ARCH_4 | E_MIPS_MACH_5500; ++ isa = E_MIPS_ARCH_4; ++ cpu = E_MIPS_MACH_5500; + break; + case bfd_mach_mips5000: case bfd_mach_mips8000: case bfd_mach_mips10000: diff -uprN binutils-2.13.90.0.4/opcodes/ChangeLog binutils-2.13.90.0.10/opcodes/ChangeLog --- binutils-2.13.90.0.4/opcodes/ChangeLog Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/opcodes/ChangeLog Wed Oct 2 10:17:20 2002 @@ -1,3 +1,219 @@ +2002-09-30 Gavin Romig-Koch + Ken Raeburn + Aldy Hernandez + Eric Christopher + Richard Sandiford + + * mips-dis.c (print_insn_arg): Handle '[', ']', 'e' and '%'. + (mips_isa_type): Handle bfd_mach_mips4120, bfd_mach_mips5400 + and bfd_mach_mips5500. + * mips-opc.c (V1): Include INSN_4111 and INSN_4120. + (N411, N412, N5, N54, N55): New convenience defines. + (mips_builtin_opcodes): Add vr4120, vr5400 and vr5500 opcodes. + Change dmadd16 and madd16 from V1 to N411. + +2002-09-26 Thiemo Seufer + + * mips-dis.c (print_insn_mips): Always allow disassembly of + 32-bit jalx opcode. + +2002-09-24 Nick Clifton + + * po/de.po: Updated German translation. + +2002-09-21 Alan Modra + + * Makefile.am: Run "make dep-am". + * Makefile.in: Regenerate. + * po/POTFILES.in: Regenerate. + +2002-09-20 Nick Clifton + + * ppc-opc.c (CRFD, CRFS): Add PPC_OPERAND_CR flag so that cr + register names are accepted. + +2002-09-17 Svein E. Seldal + + * tic4x-dis.c: Add function declarations and ATTRIBUTE_UNUSED. + Convert functions to K&R format. + +2002-09-13 Nick Clifton + + * ppc-opc.c (MFDEC2): Include Book-E. + (PPCCHLK64): New opcode mask. + (evsubw, evsubiw, evmr, evnot, isellt, iselgt, iseleq, mfpid, + mfcsrr0, mfcsrr1, mfdear, mfesr, mfivpr, mfusprg0, mftbl, + mftbu, mfpir, mfdbsr, mfdbcr0, mfdbcr1, mfdbcr2, mfiac1, + mfiac2, mfiac3, mfiac4, mfdac1, mfdac2, mfdvc1, mfdvc2, mftsr, + mftcr, mfivor0, mfivor1, mfivor2, mfivor3, mfivor4, mfivor5, + mfivor6, mfivor7, mfivor8, mfivor9, mfivor10, mfivor11, + mfivor12, mfivor13, mfivor14, mfivor15, mfbbear, mfmcsrr0, + mfmcsrr1, mfmcsr, mtpid, mtdecar, mtcsrr0, mtcsrr1, mtdear, + mtesr, mtivpr, mtusprg0, mtsprg4, mtsprg5, mtsprg6, mtsprg7, + mtdbsr, mtdbcr0, mtdbcr1, mtdbcr2, mtiac1, mtiac2, mtiac3, + mtiac4, mtdac1, mtdac2, mtdvc1, mtdvc2, mttsr, mttcr, mtivor0, + mtivor1, mtivor2, mtivor3, mtivor4, mtivor5, mtivor6, mtivor7, + mtivor8, mtivor9, mtivor10, mtivor11, mtivor12, mtivor13, + mtivor14, mtivor15, mtbbear, mtmcsrr0, mtmcsrr1, mtmcsr): New + Book-E instructions. + (evfsneg): Fix opcode value. + (dcbtstlse, dcbtlse, icblce, dcblce, icbtsle): Use PPCCHLK64 + mask. + (mcrxr64, tlbivaxe, tlbsxe, tlbsxe.): Restrict to 64-bit + Book-E. + (extsw): Restrict to 64-bit PPC instruction sets. + (extsw.): Does not exist in 64-bit Book-E. + (powerpc_macro): Remove mftbl, mftbu and mftb Book-E macros as + they are no longer needed. + +2002-09-12 Gary Hade + + * ppc-dis.c (powerpc_dialect): Add missing PPC_OPCODE_CLASSIC. + +2002-09-11 Nick Clifton + + * po/da.po: Updated Danish translation file. + +2002-09-04 Nick Clifton + + * ppc-opc.c (extsw, extsw.): Do not allow for the BookE32. + +2002-09-04 Nick Clifton + + * disassemble.c (disassembler_usage): Add invocation of + print_ppc_disassembler_options. + * ppc-dis.c (print_ppc_disassembler_options): New function. + +2002-09-04 Nick Clifton + + * ppc-opc.c: The BookE implementations of the TLBWE and TLBRE + instructions do not take any arguments. + +2002-09-02 Nick Clifton + + * v850-opc.c: Remove redundant references to V850EA architecture. + +2002-09-02 Alan Modra + + * arc-opc.c: Include bfd.h. + (arc_get_opcode_mach): Subtract off base bfd_mach value. + +2002-08-30 Alan Modra + + * v850-dis.c (disassemble): Remove bfd_mach_v850ea case. + + * mips-dis.c (_print_insn_mips): Don't use hard-coded mach constants. + +2002-08-28 Svein E. Seldal + + * configure.in: Added bfd_tic4x_arch. + * configure: Regenerate. + * Makefile.am: Added tic4x-dis.o target. + * Makefile.in: Regenerate. + +2002-08-28 Michael Hayes + + * disassemble.c: Added tic4x target and c4x + disassembler routine. + * tic4x-dis.c: New file. + +2002-08-16 Christian Groessler + + * z8k-dis.c (unparse_instr): case CLASS_BA: Designate hex + values as those. + * z8kgen.c (opt): Fix definition of "in rd,imm16" opcode. + * z8k-opc.h: Regenerated with new z8kgen.c. + +2002-08-19 Elena Zannoni + + From matthew green + + * ppc-dis.c (powerpc_dialect): Support `-m500', `-m500x2' and + `-mefs'. Turn off AltiVec for E500 and efs. + (print_insn_powerpc): Don't print an AltiVec instruction if the + dialect is not efs. + + * ppc-opc.c (insert_pmrn, extract_pmrn, insert_ev2, extract_ev2, + insert_ev4, extract_ev4, insert_ev8, extract_ev8): New functions + for extracting pmrn/evld/evstd/etc operands. + (CRB, CRFD, CRFS, DC, RD): New instruction fields. + (CT): Make this equal to RD + 1. + (PMRN): New operand. + (RA): Update. + (EVUIMM, EVUIMM_2, EVUIMM_4, EVUIMM_8): New operands. + (WS): Update. + (EVSEL, EVSEL_MASK): New instruction form and mask for EVSEL. + (ISEL, ISEL_MASK): New instruction form and mask for ISEL. + (XISEL, XISEL_MASK): New instruction form and mask for ISEL. + (CTX, CTX_MASK): New instruction form and mask for context cache + instructions. + (UCTX, UCTX_MASK): New instruction form and mask for user context + cache instructions. + (XC, XC_MASK, XUC, XUC_MASK): New instruction forms. + (CLASSIC): New define. + (PPCESPE): New define. + (PPCISEL, , PPCBRLK, PPCPMR, PPCCHLK, PPCRFMI): New + defines for integer select, cache control, branch + locking, power management, cache locking and machine check + APU instructions, respectively. + (efsabs, efsnabs, efsneg, efsadd, efssub, efsmul, + efsdiv, efscmpgt, efscmplt, efscmpeq, efststgt, efststlt, + efststeq, efscfui, efsctuiz, efscfsi, efscfuf, efscfsf, + efsctui, efsctsi, efsctsiz, efsctuf, efsctsf, + evaddw, evaddiw, evsubfw, evsubifw, evabs, evneg, evextsb, + evextsh, evrndw, evcntlzw, evcntlsw, brinc, evand, evandc, evor, + evorc, evxor, eveqv, evnand, evnor, evrlw, evrlwi, evslw, evslwi, + evsrws, evsrwu, evsrwis, evsrwiu, evsplati, evsplatfi, evmergehi, + evmergelo, evmergehilo, evmergelohi, evcmpgts, evcmpgtu, evcmplts, + evcmpltu, evcmpeq, evsel, evldd, evlddx, evldw, evldwx, evldh, + evldhx, evlwhe, evlwhex, evlwhou, evlwhoux, evlwhos, evlwhosx, + evlwwsplat, evlwwsplatx, evlwhsplat, evlwhsplatx, evlhhesplat, + evlhhesplatx, evlhousplat, evlhousplatx, evlhossplat, evlhossplatx, + evstdd, evstddx, evstdw, evstdwx, evstdh, evstdhx, evstwwe, + evstwwex, evstwwo, evstwwox, evstwhe, evstwhex, evstwho, evstwhox, + evfsabs, evfsnabs, evfsneg, evfsadd, evfssub, evfsmul, evfsdiv, + evfscmpgt, evfscmplt, evfscmpeq, evfststgt, evfststlt, evfststeq, + evfscfui, evfsctuiz, evfscfsi, evfscfuf, evfscfsf, evfsctui, + evfsctsi, evfsctsiz, evfsctuf, evfsctsf, evsabs, evsnabs, evsneg, + evsadd, evssub, evsmul, evsdiv, evscmpgt, evsgmplt, evsgmpeq, + evststgt, evststlt, evststeq, evscfui, evscfsi, evscfuf, evscfsf, + evsctui, evsctuiz, evsctsi, evsctsiz, evsctuf, evsctsf, evmhossf, + evmhossfa, evmhosmf, evmhosmfa, evmhosmi, evmhosmia, evmhoumi, + evmhoumia, evmhessf, evmhessfa, evmhesmf, evmhesmfa, evmhesmi, + evmhesmia, evmheumi, evmheumia, evmhossfaaw, evmhossiaaw, + evmhosmfaaw, evmhosmiaaw, evmhousiaaw, evmhoumiaaw, evmhessfaaw, + evmhessiaaw, evmhesmfaaw, evmhesmiaaw, evmheusiaaw, evmheumiaaw, + evmhossfanw, evmhossianw, evmhosmfanw, evmhosmianw, evmhousianw, + evmhoumianw, evmhessfanw, evmhessianw, evmhesmfanw, evmhesmianw, + evmheusianw, evmheumianw, evmhogsmfaa, evmhogsmiaa, evmhogumiaa, + evmhegsmfaa, evmhegsmiaa, evmhegumiaa, evmhogsmfan, evmhogsmian, + evmhogumian, evmhegsmfan, evmhegsmian, evmhegumian, evmwhssf, + evmwhssfa, evmwhssfaa, evmwhssmaa, evmwhsmfaa, evmwhsmiaa, + evmwhusiaa, evmwhumiaa, evmwhssfan, evmwhssian, evmwhsmfan, + evmwhsmian, evmwhusian, evmwhumian, evmwhgssfaa, evmwhgsmfaa, + evmwhgsmiaa, evmwhgumiaa, evmwhgssfan, evmwhgsmfan, evmwhgsmian, + evmwhgumian, evmwhsmf, evmwhsmfa, evmshsmi, evmshsmia, evmshumi, + evmshumia, evmmlssf, evmmlssfa, evmwlsmf, evmwlsmfa, evmwlumi, + evmwlumia, evmwlssfaaw, evmwlssiaaw, evmwlsmfaaw, evmwlsmiaaw, + evmwlusiaaw, evmwlumiaaw, evmwissfanw, evmwissianw, evmwlsmfanw, + evmwlsmianw, evmwlusianw, evmwlumianw, evmwssf, evmwssfa, + evmwsmf, evmwsmfa, evmwsmi, evmwsmia, evmwumi, evmwumia, + evmwssfaa, evmwsmfaa, evmwsmiaa, evmwumiaa, evmwssfan, evmwsmfan, + evmwsmian, evmwumian, evaddssiaaw, evaddsmiaaw, evaddusiaaw, + evaddumiaaw, evsubfssiaaw, evsubfsmiaaw, evsubfusiaaw, + evsubfumiaaw, evmra, evdivws, evdivws): New e500x2 Core Complex + instructions. + (rfmci): New machine check APU instruction. + (isel): New integer select APU instructino. + (icbtls, icbtlse, icblc, icblce, dcbtls, dcbtlse, dcbtstls, + dcbtstlse, dcblc, dcblce): New cache control APU instructions. + (mtspefscr, mfspefscr): New instructions. + (mfpmr, mtpmr): New performance monitor APU instructions. + (savecontext): New context cache APU instructions. + (bblels, bbelr): New branch locking APU instructions. + (bblels, bbelr): New instructions. + (mftbl, mftbu, mftb): Set as CLASSIC instructions. Add BOOKE alias. + 2002-08-13 Stephane Carrez * m68hc11-opc.c: Update call operand to accept the page definition. @@ -127,9 +343,9 @@ * mips-opc.c: Clean up a few whitespace issues, and sort a few entries understanding that 'x' follows 'w' in the alphabet. - + 2002-05-31 Chris G. Demetriou - Ed Satterthwaite + Ed Satterthwaite * mips-opc.c: Add support for SB-1 MDMX subset and extensions. @@ -140,11 +356,11 @@ * po/POTFILES.in: Regenerate. 2002-05-30 Chris G. Demetriou - Ed Satterthwaite + Ed Satterthwaite * mips-dis.c (print_insn_arg): Add support for 'O', 'Q', 'X', 'Y', and 'Z' formats, for MDMX. - (mips_isa_type): Add MDMX instructions to the ISA + (mips_isa_type): Add MDMX instructions to the ISA bit mask for bfd_mach_mipsisa64. * mips-opc.c: Add support for MDMX instructions. (MX): New definition. @@ -154,7 +370,7 @@ 2002-05-30 Diego Novillo * d10v-opc.c (d10v_opcodes): `btsti' does not modify its - arguments. + arguments. 2002-05-28 Kuang Hwa Lin @@ -249,7 +465,7 @@ 2002-05-07 Graydon Hoare - * cgen-dis.in: (print_insn_@arch@): Cache list of opened CPUs rather + * cgen-dis.in: (print_insn_@arch@): Cache list of opened CPUs rather than just most-recently-opened. 2002-05-01 Alan Modra @@ -334,7 +550,7 @@ 2002-03-16 Nick Clifton * Makefile.am: Tidy up sh64 rules. - * Makefile.in: Regenerate. + * Makefile.in: Regenerate. 2002-03-15 Chris G. Demetriou @@ -452,9 +668,9 @@ 2002-02-12 Graydon Hoare * cgen-asm.in (parse_insn_normal): Change call from - @arch@_cgen_parse_operand to cd->parse_operand, to + @arch@_cgen_parse_operand to cd->parse_operand, to facilitate CGEN_ASM_INIT_HOOK doing useful work. - + 2002-02-11 Alexandre Oliva * sparc-dis.c (print_insn_sparc): Make sure 0xFFFFFFFF is not @@ -943,7 +1159,7 @@ * cgen-asm.in: Include safe-ctype.h in preference to ctype.h. Fix formatting. Use ISSPACE instead of isspace and TOLOWER instead of tolower. - (@arch@_cgen_build_insn_regex): Remove duplication of syntax + (@arch@_cgen_build_insn_regex): Remove duplication of syntax string elements in constructed regular expression. * fr30-asm.c: Regenerate. * fr30-desc.c: Regenerate. @@ -1010,7 +1226,7 @@ * sh-opc.h: Fix encoding of least significant nibble of the DSP single data transfer instructions. - * sh-dis.c (print_insn_shx): Fix decoding of As opcode in DSP + * sh-dis.c (print_insn_shx): Fix decoding of As opcode in DSP instructions. 2001-10-08 Nick Clifton @@ -1019,30 +1235,30 @@ C files. * cgen-dis.in: The same. * cgen-ibld.in: The same. - * fr30-asm.c: Regenerate. - * fr30-desc.c: Regenerate. - * fr30-dis.c: Regenerate. - * fr30-ibld.c: Regenerate. - * fr30-opc.c: Regenerate. - * m32r-asm.c: Regenerate. - * m32r-desc.c: Regenerate. - * m32r-dis.c: Regenerate. - * m32r-ibld.c: Regenerate. - * m32r-opc.c: Regenerate. - * m32r-opinst.c Regenerate. - * openrisc-asm.c: Regenerate. - * openrisc-desc.c: Regenerate. - * openrisc-dis.c: Regenerate. - * openrisc-ibld.c: Regenerate. - * openrisc-opc.c: Regenerate. - * openrisc-opc.h: Regenerate. + * fr30-asm.c: Regenerate. + * fr30-desc.c: Regenerate. + * fr30-dis.c: Regenerate. + * fr30-ibld.c: Regenerate. + * fr30-opc.c: Regenerate. + * m32r-asm.c: Regenerate. + * m32r-desc.c: Regenerate. + * m32r-dis.c: Regenerate. + * m32r-ibld.c: Regenerate. + * m32r-opc.c: Regenerate. + * m32r-opinst.c Regenerate. + * openrisc-asm.c: Regenerate. + * openrisc-desc.c: Regenerate. + * openrisc-dis.c: Regenerate. + * openrisc-ibld.c: Regenerate. + * openrisc-opc.c: Regenerate. + * openrisc-opc.h: Regenerate. * Makefile.in: Regenerate. * po/POTFILES.in: Regenerate. * po/opcodes.pot: Regenerate. 2001-10-08 Aldy Hernandez - * arm-opc.h (arm_opcodes): Add cirrus insns. + * arm-opc.h (arm_opcodes): Add cirrus insns. * arm-dis.c (print_insn_arm): Add 'I' case. @@ -1059,9 +1275,9 @@ 2001-09-30 John Healy - * cgen-ibld.in (insert_1): Switched bfd_get_bits and bfd_set_bits - calls to cgen_get_insn_value and cgen_put_insn_value calls. - (extract_1): Switched bfd_get_bits call to cgen_get_insn_value call. + * cgen-ibld.in (insert_1): Switched bfd_get_bits and bfd_set_bits + calls to cgen_get_insn_value and cgen_put_insn_value calls. + (extract_1): Switched bfd_get_bits call to cgen_get_insn_value call. 2001-09-30 Hans-Peter Nilsson @@ -1365,10 +1581,10 @@ 2001-07-12 Jeff Johnston - * cgen-asm.in: Include "xregex.h" always to enable the libiberty - regex support. - (@arch@_cgen_build_insn_regex): New routine from Graydon. - (@arch@_cgen_assemble_insn): Add Graydon's code to use regex + * cgen-asm.in: Include "xregex.h" always to enable the libiberty + regex support. + (@arch@_cgen_build_insn_regex): New routine from Graydon. + (@arch@_cgen_assemble_insn): Add Graydon's code to use regex to verify if it is worth parsing the insn as insn "x". Also update error message when insn is not a recognized format of the insn vs when the insn is completely unrecognized. @@ -1497,10 +1713,10 @@ 2001-06-06 Christian Groessler - * z8k-dis.c: Fix formatting. - (unpack_instr): Remove unused cases in switch statement. Add - safety abort() in default case. - (unparse_instr): Add safety abort() in default case. + * z8k-dis.c: Fix formatting. + (unpack_instr): Remove unused cases in switch statement. Add + safety abort() in default case. + (unparse_instr): Add safety abort() in default case. 2001-06-06 Peter Jakubek @@ -1622,21 +1838,21 @@ 2001-04-27 Johan Rydberg - * Makefile.am: Add OpenRISC target. - * Makefile.in: Regenerated. + * Makefile.am: Add OpenRISC target. + * Makefile.in: Regenerated. - * disassemble.c (disassembler): Recognize the OpenRISC disassembly. + * disassemble.c (disassembler): Recognize the OpenRISC disassembly. - * configure.in (bfd_openrisc_arch): Add target. - * configure: Regenerated. + * configure.in (bfd_openrisc_arch): Add target. + * configure: Regenerated. - * openrisc-asm.c: New file. - * openrisc-desc.c: Likewise. - * openrisc-desc.h: Likewise. - * openrisc-dis.c: Likewise. - * openrisc-ibld.c: Likewise. - * openrisc-opc.c: Likewise. - * openrisc-opc.h: Likewise. + * openrisc-asm.c: New file. + * openrisc-desc.c: Likewise. + * openrisc-desc.h: Likewise. + * openrisc-dis.c: Likewise. + * openrisc-ibld.c: Likewise. + * openrisc-opc.c: Likewise. + * openrisc-opc.h: Likewise. 2001-04-24 Christian Groessler @@ -1690,8 +1906,8 @@ 2001-03-20 Patrick Macdonald - * cgen-dis.in (print_insn_@arch@): Add support for target machine - determination via CGEN_COMPUTE_MACH. + * cgen-dis.in (print_insn_@arch@): Add support for target machine + determination via CGEN_COMPUTE_MACH. * fr30-desc.c: Regenerate. * fr30-dis.c: Regenerate. * fr30-opc.h: Regenerate. @@ -1725,8 +1941,8 @@ 2001-03-06 Nick Clifton * arm-dis.c (print_insn_thumb): Compute destination address - of BLX(1) instruction by taking bit 1 from PC and not from bit - 0 of the offset. + of BLX(1) instruction by taking bit 1 from PC and not from bit + 0 of the offset. 2001-03-06 Igor Shevlyakov @@ -1789,11 +2005,11 @@ 2001-02-18 lars brinkhoff - * Makefile.am: Add PDP-11 target. - * configure.in: Likewise. - * disassemble.c: Likewise. - * pdp11-dis.c: New file. - * pdp11-opc.c: New file. + * Makefile.am: Add PDP-11 target. + * configure.in: Likewise. + * disassemble.c: Likewise. + * pdp11-dis.c: New file. + * pdp11-opc.c: New file. 2001-02-14 Jim Wilson @@ -1808,7 +2024,7 @@ 2001-02-11 Maciej W. Rozycki - * mips-dis.c (print_insn_arg): Use top four bits of the address of + * mips-dis.c (print_insn_arg): Use top four bits of the address of the following instruction not of the jump itself for the jump target. (print_mips16_insn_arg): Likewise. @@ -2013,28 +2229,28 @@ 2000-12-03 Chris Demetriou cgd@sibyte.com - * mips-opc.c (mips_builtin_opcodes): Use the WR_HILO, RD_HILO, - MOD_HILO, and MOD_LO macros. + * mips-opc.c (mips_builtin_opcodes): Use the WR_HILO, RD_HILO, + MOD_HILO, and MOD_LO macros. - * mips-opc.c (M1, M2): Delete. - (mips_builtin_opcodes): Remove all uses of M1. + * mips-opc.c (M1, M2): Delete. + (mips_builtin_opcodes): Remove all uses of M1. - * mips-opc.c (mips_builtin_opcodes): Make the dmfc2 and dmtc2 - instructions take "G" format second operands and use the - correct flags. - There are mfc3 and mtc3 opcodes, so add dmfc3 and dmtc3 opcodes to + * mips-opc.c (mips_builtin_opcodes): Make the dmfc2 and dmtc2 + instructions take "G" format second operands and use the + correct flags. + There are mfc3 and mtc3 opcodes, so add dmfc3 and dmtc3 opcodes to match. - Delete "sel" code operands from mfc1 and mtc1. - Add MIPS64 opcode changes (dclo, dclz), and "sel" code variants + Delete "sel" code operands from mfc1 and mtc1. + Add MIPS64 opcode changes (dclo, dclz), and "sel" code variants for dm[ft]c[023]. 2000-12-03 Ed Satterthwaite ehs@sibyte.com and - Chris Demetriou cgd@sibyte.com + Chris Demetriou cgd@sibyte.com - * mips-opc.c (mips_builtin_opcodes): Finish additions - for MIPS32 support, and clean up existing entries for - aesthetics, consistency with the MIPS32 ISA, and - with consistency the rest of the table. + * mips-opc.c (mips_builtin_opcodes): Finish additions + for MIPS32 support, and clean up existing entries for + aesthetics, consistency with the MIPS32 ISA, and + with consistency the rest of the table. 2000-12-01 Nick Clifton @@ -2043,32 +2259,32 @@ 2000-12-01 Chris Demetriou - mips-dis.c (print_insn_arg): Handle new 'U' and 'J' argument - specifiers. Update 'B' for new constant names, and remove - 'm'. - mips-opc.c (mips_builtin_opcodes): Place "pref" and "ssnop" - near the top of the array, so they are disassembled properly. - Enable "ssnop" for MIPS32. Add "break" variant with 20 bit - code for MIPS32. Update "clo" and "clz" to use 'U' operand - specifier. Add 'H' format specifier variants for "mfc1," - "mfc2," "mfc3," "mtc1," "mtc2," and "mtc3" for MIPS32. Update - MIPS32 "sdbbp" to use 'B' operand specifier. Add MIPS32 - "wait" variant which uses 'J' operand specifier. - - * mips-dis.c (set_mips_isa_type): Update to use - CPU_UNKNOWN and ISA_* constants. Add bfd_mach_mips32 case. - Replace bfd_mach_mips4K with bfd_mach_mips32_4k case. - * mips-opc.c (I32): New constant for instructions added in - MIPS32. - (P4): Delete. - (mips_builtin_opcodes) Replace all uses of P4 with I32. - - * mips-dis.c (set_mips_isa_type): Add cases for - bfd_mach_mips5 and bfd_mach_mips64. - * mips-opc.c (I64): New definitions. + mips-dis.c (print_insn_arg): Handle new 'U' and 'J' argument + specifiers. Update 'B' for new constant names, and remove + 'm'. + mips-opc.c (mips_builtin_opcodes): Place "pref" and "ssnop" + near the top of the array, so they are disassembled properly. + Enable "ssnop" for MIPS32. Add "break" variant with 20 bit + code for MIPS32. Update "clo" and "clz" to use 'U' operand + specifier. Add 'H' format specifier variants for "mfc1," + "mfc2," "mfc3," "mtc1," "mtc2," and "mtc3" for MIPS32. Update + MIPS32 "sdbbp" to use 'B' operand specifier. Add MIPS32 + "wait" variant which uses 'J' operand specifier. + + * mips-dis.c (set_mips_isa_type): Update to use + CPU_UNKNOWN and ISA_* constants. Add bfd_mach_mips32 case. + Replace bfd_mach_mips4K with bfd_mach_mips32_4k case. + * mips-opc.c (I32): New constant for instructions added in + MIPS32. + (P4): Delete. + (mips_builtin_opcodes) Replace all uses of P4 with I32. + + * mips-dis.c (set_mips_isa_type): Add cases for + bfd_mach_mips5 and bfd_mach_mips64. + * mips-opc.c (I64): New definitions. - * mips-dis.c (set_mips_isa_type): Add case for - bfd_mach_mips_sb1. + * mips-dis.c (set_mips_isa_type): Add case for + bfd_mach_mips_sb1. 2000-11-28 Hans-Peter Nilsson @@ -2182,8 +2398,8 @@ 2000-09-07 Catherine Moore - * d30v-opc.c (d30v_format_tab): Use format Ra for - modinc and moddec. + * d30v-opc.c (d30v_format_tab): Use format Ra for + modinc and moddec. 2000-09-06 Alexandre Oliva diff -uprN binutils-2.13.90.0.4/opcodes/Makefile.am binutils-2.13.90.0.10/opcodes/Makefile.am --- binutils-2.13.90.0.4/opcodes/Makefile.am Mon Jul 29 08:19:19 2002 +++ binutils-2.13.90.0.10/opcodes/Makefile.am Fri Sep 27 08:33:09 2002 @@ -140,6 +140,7 @@ CFILES = \ sparc-dis.c \ sparc-opc.c \ tic30-dis.c \ + tic4x-dis.c \ tic54x-dis.c \ tic54x-opc.c \ tic80-dis.c \ @@ -243,6 +244,7 @@ ALL_MACHINES = \ sparc-dis.lo \ sparc-opc.lo \ tic30-dis.lo \ + tic4x-dis.lo \ tic54x-dis.lo \ tic54x-opc.lo \ tic80-dis.lo \ @@ -475,7 +477,7 @@ arc-dis.lo: arc-dis.c $(INCDIR)/ansidecl $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/arc.h \ $(INCDIR)/elf/reloc-macros.h opintl.h arc-dis.h arc-ext.h arc-opc.lo: arc-opc.c sysdep.h config.h $(INCDIR)/ansidecl.h \ - $(INCDIR)/opcode/arc.h + $(BFD_H) $(INCDIR)/symcat.h $(INCDIR)/opcode/arc.h arc-ext.lo: arc-ext.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(BFD_H) $(INCDIR)/symcat.h arc-ext.h $(INCDIR)/libiberty.h arm-dis.lo: arm-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \ @@ -721,6 +723,8 @@ sparc-opc.lo: sparc-opc.c sysdep.h confi $(INCDIR)/opcode/sparc.h tic30-dis.lo: tic30-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h $(INCDIR)/opcode/tic30.h +tic4x-dis.lo: tic4x-dis.c $(INCDIR)/libiberty.h $(INCDIR)/ansidecl.h \ + $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h $(INCDIR)/opcode/tic4x.h tic54x-dis.lo: tic54x-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h $(INCDIR)/opcode/tic54x.h \ $(INCDIR)/coff/tic54x.h $(INCDIR)/coff/ti.h diff -uprN binutils-2.13.90.0.4/opcodes/Makefile.in binutils-2.13.90.0.10/opcodes/Makefile.in --- binutils-2.13.90.0.4/opcodes/Makefile.in Mon Jul 29 08:19:19 2002 +++ binutils-2.13.90.0.10/opcodes/Makefile.in Fri Sep 27 08:33:09 2002 @@ -251,6 +251,7 @@ CFILES = \ sparc-dis.c \ sparc-opc.c \ tic30-dis.c \ + tic4x-dis.c \ tic54x-dis.c \ tic54x-opc.c \ tic80-dis.c \ @@ -355,6 +356,7 @@ ALL_MACHINES = \ sparc-dis.lo \ sparc-opc.lo \ tic30-dis.lo \ + tic4x-dis.lo \ tic54x-dis.lo \ tic54x-opc.lo \ tic80-dis.lo \ @@ -971,7 +973,7 @@ arc-dis.lo: arc-dis.c $(INCDIR)/ansidecl $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/arc.h \ $(INCDIR)/elf/reloc-macros.h opintl.h arc-dis.h arc-ext.h arc-opc.lo: arc-opc.c sysdep.h config.h $(INCDIR)/ansidecl.h \ - $(INCDIR)/opcode/arc.h + $(BFD_H) $(INCDIR)/symcat.h $(INCDIR)/opcode/arc.h arc-ext.lo: arc-ext.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(BFD_H) $(INCDIR)/symcat.h arc-ext.h $(INCDIR)/libiberty.h arm-dis.lo: arm-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \ @@ -1217,6 +1219,8 @@ sparc-opc.lo: sparc-opc.c sysdep.h confi $(INCDIR)/opcode/sparc.h tic30-dis.lo: tic30-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h $(INCDIR)/opcode/tic30.h +tic4x-dis.lo: tic4x-dis.c $(INCDIR)/libiberty.h $(INCDIR)/ansidecl.h \ + $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h $(INCDIR)/opcode/tic4x.h tic54x-dis.lo: tic54x-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h $(INCDIR)/opcode/tic54x.h \ $(INCDIR)/coff/tic54x.h $(INCDIR)/coff/ti.h diff -uprN binutils-2.13.90.0.4/opcodes/arc-opc.c binutils-2.13.90.0.10/opcodes/arc-opc.c --- binutils-2.13.90.0.4/opcodes/arc-opc.c Mon Oct 1 15:25:26 2001 +++ binutils-2.13.90.0.10/opcodes/arc-opc.c Fri Sep 27 08:33:09 2002 @@ -20,6 +20,7 @@ #include "sysdep.h" #include #include "ansidecl.h" +#include "bfd.h" #include "opcode/arc.h" #define INSERT_FN(fn) \ @@ -513,7 +514,7 @@ arc_get_opcode_mach (bfd_mach, big_p) ARC_MACH_7, ARC_MACH_8 }; - return mach_type_map[bfd_mach] | (big_p ? ARC_MACH_BIG : 0); + return mach_type_map[bfd_mach - bfd_mach_arc_5] | (big_p ? ARC_MACH_BIG : 0); } /* Initialize any tables that need it. diff -uprN binutils-2.13.90.0.4/opcodes/configure binutils-2.13.90.0.10/opcodes/configure --- binutils-2.13.90.0.4/opcodes/configure Mon Jul 29 08:19:19 2002 +++ binutils-2.13.90.0.10/opcodes/configure Fri Sep 27 08:33:09 2002 @@ -4648,6 +4648,7 @@ if test x${all_targets} = xfalse ; then bfd_sparc_arch) ta="$ta sparc-dis.lo sparc-opc.lo" ;; bfd_tahoe_arch) ;; bfd_tic30_arch) ta="$ta tic30-dis.lo" ;; + bfd_tic4x_arch) ta="$ta tic4x-dis.lo" ;; bfd_tic54x_arch) ta="$ta tic54x-dis.lo tic54x-opc.lo" ;; bfd_tic80_arch) ta="$ta tic80-dis.lo tic80-opc.lo" ;; bfd_v850_arch) ta="$ta v850-opc.lo v850-dis.lo" ;; diff -uprN binutils-2.13.90.0.4/opcodes/configure.in binutils-2.13.90.0.10/opcodes/configure.in --- binutils-2.13.90.0.4/opcodes/configure.in Mon Jul 29 08:19:19 2002 +++ binutils-2.13.90.0.10/opcodes/configure.in Fri Sep 27 08:33:09 2002 @@ -229,6 +229,7 @@ if test x${all_targets} = xfalse ; then bfd_sparc_arch) ta="$ta sparc-dis.lo sparc-opc.lo" ;; bfd_tahoe_arch) ;; bfd_tic30_arch) ta="$ta tic30-dis.lo" ;; + bfd_tic4x_arch) ta="$ta tic4x-dis.lo" ;; bfd_tic54x_arch) ta="$ta tic54x-dis.lo tic54x-opc.lo" ;; bfd_tic80_arch) ta="$ta tic80-dis.lo tic80-opc.lo" ;; bfd_v850_arch) ta="$ta v850-opc.lo v850-dis.lo" ;; diff -uprN binutils-2.13.90.0.4/opcodes/disassemble.c binutils-2.13.90.0.10/opcodes/disassemble.c --- binutils-2.13.90.0.4/opcodes/disassemble.c Mon Jul 29 08:19:19 2002 +++ binutils-2.13.90.0.10/opcodes/disassemble.c Fri Sep 27 08:33:09 2002 @@ -60,6 +60,7 @@ Foundation, Inc., 59 Temple Place - Suit #define ARCH_sh #define ARCH_sparc #define ARCH_tic30 +#define ARCH_tic4x #define ARCH_tic54x #define ARCH_tic80 #define ARCH_v850 @@ -305,6 +306,11 @@ disassembler (abfd) disassemble = print_insn_tic30; break; #endif +#ifdef ARCH_tic4x + case bfd_arch_tic4x: + disassemble = print_insn_tic4x; + break; +#endif #ifdef ARCH_tic54x case bfd_arch_tic54x: disassemble = print_insn_tic54x; @@ -361,6 +367,9 @@ disassembler_usage (stream) #ifdef ARCH_arm print_arm_disassembler_options (stream); #endif +#ifdef ARCH_powerpc + print_ppc_disassembler_options (stream); +#endif return; } diff -uprN binutils-2.13.90.0.4/opcodes/mips-dis.c binutils-2.13.90.0.10/opcodes/mips-dis.c --- binutils-2.13.90.0.4/opcodes/mips-dis.c Wed Jul 17 11:38:30 2002 +++ binutils-2.13.90.0.10/opcodes/mips-dis.c Wed Oct 2 10:17:20 2002 @@ -110,6 +110,8 @@ print_insn_arg (d, l, pc, info) case ',': case '(': case ')': + case '[': + case ']': (*info->fprintf_func) (info->stream, "%c", *d); break; @@ -279,6 +281,16 @@ print_insn_arg (d, l, pc, info) (l >> OP_SH_PERFREG) & OP_MASK_PERFREG); break; + case 'e': + (*info->fprintf_func) (info->stream, "%d", + (l >> OP_SH_VECBYTE) & OP_MASK_VECBYTE); + break; + + case '%': + (*info->fprintf_func) (info->stream, "%d", + (l >> OP_SH_VECALIGN) & OP_MASK_VECALIGN); + break; + case 'H': (*info->fprintf_func) (info->stream, "%d", (l >> OP_SH_SEL) & OP_MASK_SEL); @@ -374,6 +386,10 @@ mips_isa_type (mach, isa, cputype) *cputype = CPU_R4111; *isa = ISA_MIPS3; break; + case bfd_mach_mips4120: + *cputype = CPU_VR4120; + *isa = ISA_MIPS3; + break; case bfd_mach_mips4300: *cputype = CPU_R4300; *isa = ISA_MIPS3; @@ -394,6 +410,14 @@ mips_isa_type (mach, isa, cputype) *cputype = CPU_R5000; *isa = ISA_MIPS4; break; + case bfd_mach_mips5400: + *cputype = CPU_VR5400; + *isa = ISA_MIPS4; + break; + case bfd_mach_mips5500: + *cputype = CPU_VR5500; + *isa = ISA_MIPS4; + break; case bfd_mach_mips6000: *cputype = CPU_R6000; *isa = ISA_MIPS2; @@ -526,7 +550,9 @@ print_insn_mips (memaddr, word, info) { register const char *d; - if (! OPCODE_IS_MEMBER (op, mips_isa, target_processor)) + /* We always allow to disassemble the jalx instruction. */ + if (! OPCODE_IS_MEMBER (op, mips_isa, target_processor) + && strcmp (op->name, "jalx")) continue; /* Figure out instruction type and branch delay information. */ @@ -595,7 +621,7 @@ _print_insn_mips (memaddr, info, endiann #endif #if SYMTAB_AVAILABLE - if (info->mach == 16 + if (info->mach == bfd_mach_mips16 || (info->flavour == bfd_target_elf_flavour && info->symbols != NULL && ((*(elf_symbol_type **) info->symbols)->internal_elf_sym.st_other diff -uprN binutils-2.13.90.0.4/opcodes/mips-opc.c binutils-2.13.90.0.10/opcodes/mips-opc.c --- binutils-2.13.90.0.4/opcodes/mips-opc.c Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.10/opcodes/mips-opc.c Wed Oct 2 10:17:20 2002 @@ -97,10 +97,15 @@ Software Foundation, 59 Temple Place - S #define P3 INSN_4650 #define L1 INSN_4010 -#define V1 INSN_4100 +#define V1 (INSN_4100 | INSN_4111 | INSN_4120) #define T3 INSN_3900 #define M1 INSN_10000 #define SB1 INSN_SB1 +#define N411 INSN_4111 +#define N412 INSN_4120 +#define N5 (INSN_5400 | INSN_5500) +#define N54 INSN_5400 +#define N55 INSN_5500 #define G1 (T3 \ ) @@ -133,7 +138,7 @@ const struct mips_opcode mips_builtin_op {"pref", "k,o(b)", 0xcc000000, 0xfc000000, RD_b, I4|I32|G3 }, {"prefx", "h,t(b)", 0x4c00000f, 0xfc0007ff, RD_b|RD_t, I4 }, {"nop", "", 0x00000000, 0xffffffff, 0, I1 }, -{"ssnop", "", 0x00000040, 0xffffffff, 0, I32 }, +{"ssnop", "", 0x00000040, 0xffffffff, 0, I32|N55 }, {"li", "t,j", 0x24000000, 0xffe00000, WR_t, I1 }, /* addiu */ {"li", "t,i", 0x34000000, 0xffe00000, WR_t, I1 }, /* ori */ {"li", "t,I", 0, (int) M_LI, INSN_MACRO, I1 }, @@ -154,6 +159,9 @@ const struct mips_opcode mips_builtin_op {"add.s", "D,V,T", 0x46000000, 0xffe0003f, WR_D|RD_S|RD_T|FP_S, I1 }, {"add.d", "D,V,T", 0x46200000, 0xffe0003f, WR_D|RD_S|RD_T|FP_D, I1 }, {"add.ob", "X,Y,Q", 0x7800000b, 0xfc20003f, WR_D|RD_S|RD_T|FP_D, MX|SB1 }, +{"add.ob", "D,S,T", 0x4ac0000b, 0xffe0003f, WR_D|RD_S|RD_T, N54 }, +{"add.ob", "D,S,T[e]", 0x4800000b, 0xfe20003f, WR_D|RD_S|RD_T, N54 }, +{"add.ob", "D,S,k", 0x4bc0000b, 0xffe0003f, WR_D|RD_S|RD_T, N54 }, {"add.ps", "D,V,T", 0x46c00000, 0xffe0003f, WR_D|RD_S|RD_T|FP_D, I5 }, {"add.qh", "X,Y,Q", 0x7820000b, 0xfc20003f, WR_D|RD_S|RD_T|FP_D, MX }, {"adda.ob", "Y,Q", 0x78000037, 0xfc2007ff, WR_MACC|RD_S|RD_T|FP_D, MX|SB1 }, @@ -166,6 +174,7 @@ const struct mips_opcode mips_builtin_op {"addu", "d,v,t", 0x00000021, 0xfc0007ff, WR_d|RD_s|RD_t, I1 }, {"addu", "t,r,I", 0, (int) M_ADDU_I, INSN_MACRO, I1 }, {"alni.ob", "X,Y,Z,O", 0x78000018, 0xff00003f, WR_D|RD_S|RD_T|FP_D, MX|SB1 }, +{"alni.ob", "D,S,T,%", 0x48000018, 0xff00003f, WR_D|RD_S|RD_T, N54 }, {"alni.qh", "X,Y,Z,O", 0x7800001a, 0xff00003f, WR_D|RD_S|RD_T|FP_D, MX }, {"alnv.ps", "D,V,T,s", 0x4c00001e, 0xfc00003f, WR_D|RD_S|RD_T|FP_D, I5 }, {"alnv.ob", "X,Y,Z,s", 0x78000019, 0xfc00003f, WR_D|RD_S|RD_T|RD_s|FP_D, MX|SB1 }, @@ -173,6 +182,9 @@ const struct mips_opcode mips_builtin_op {"and", "d,v,t", 0x00000024, 0xfc0007ff, WR_d|RD_s|RD_t, I1 }, {"and", "t,r,I", 0, (int) M_AND_I, INSN_MACRO, I1 }, {"and.ob", "X,Y,Q", 0x7800000c, 0xfc20003f, WR_D|RD_S|RD_T|FP_D, MX|SB1 }, +{"and.ob", "D,S,T", 0x4ac0000c, 0xffe0003f, WR_D|RD_S|RD_T, N54 }, +{"and.ob", "D,S,T[e]", 0x4800000c, 0xfe20003f, WR_D|RD_S|RD_T, N54 }, +{"and.ob", "D,S,k", 0x4bc0000c, 0xffe0003f, WR_D|RD_S|RD_T, N54 }, {"and.qh", "X,Y,Q", 0x7820000c, 0xfc20003f, WR_D|RD_S|RD_T|FP_D, MX }, {"andi", "t,r,i", 0x30000000, 0xfc000000, WR_t|RD_s, I1 }, /* b is at the top of the table. */ @@ -278,6 +290,9 @@ const struct mips_opcode mips_builtin_op {"c.eq.s", "S,T", 0x46000032, 0xffe007ff, RD_S|RD_T|WR_CC|FP_S, I1 }, {"c.eq.s", "M,S,T", 0x46000032, 0xffe000ff, RD_S|RD_T|WR_CC|FP_S, I4|I32 }, {"c.eq.ob", "Y,Q", 0x78000001, 0xfc2007ff, WR_CC|RD_S|RD_T|FP_D, MX|SB1 }, +{"c.eq.ob", "S,T", 0x4ac00001, 0xffe007ff, WR_CC|RD_S|RD_T, N54 }, +{"c.eq.ob", "S,T[e]", 0x48000001, 0xfe2007ff, WR_CC|RD_S|RD_T, N54 }, +{"c.eq.ob", "S,k", 0x4bc00001, 0xffe007ff, WR_CC|RD_S|RD_T, N54 }, {"c.eq.ps", "S,T", 0x46c00032, 0xffe007ff, RD_S|RD_T|WR_CC|FP_D, I5 }, {"c.eq.ps", "M,S,T", 0x46c00032, 0xffe000ff, RD_S|RD_T|WR_CC|FP_D, I5 }, {"c.eq.qh", "Y,Q", 0x78200001, 0xfc2007ff, WR_CC|RD_S|RD_T|FP_D, MX }, @@ -340,6 +355,9 @@ const struct mips_opcode mips_builtin_op {"c.lt.s", "S,T", 0x4600003c, 0xffe007ff, RD_S|RD_T|WR_CC|FP_S, I1 }, {"c.lt.s", "M,S,T", 0x4600003c, 0xffe000ff, RD_S|RD_T|WR_CC|FP_S, I4|I32 }, {"c.lt.ob", "Y,Q", 0x78000004, 0xfc2007ff, WR_CC|RD_S|RD_T|FP_D, MX|SB1 }, +{"c.lt.ob", "S,T", 0x4ac00004, 0xffe007ff, WR_CC|RD_S|RD_T, N54 }, +{"c.lt.ob", "S,T[e]", 0x48000004, 0xfe2007ff, WR_CC|RD_S|RD_T, N54 }, +{"c.lt.ob", "S,k", 0x4bc00004, 0xffe007ff, WR_CC|RD_S|RD_T, N54 }, {"c.lt.ps", "S,T", 0x46c0003c, 0xffe007ff, RD_S|RD_T|WR_CC|FP_D, I5 }, {"c.lt.ps", "M,S,T", 0x46c0003c, 0xffe000ff, RD_S|RD_T|WR_CC|FP_D, I5 }, {"c.lt.qh", "Y,Q", 0x78200004, 0xfc2007ff, WR_CC|RD_S|RD_T|FP_D, MX }, @@ -354,6 +372,9 @@ const struct mips_opcode mips_builtin_op {"c.le.s", "S,T", 0x4600003e, 0xffe007ff, RD_S|RD_T|WR_CC|FP_S, I1 }, {"c.le.s", "M,S,T", 0x4600003e, 0xffe000ff, RD_S|RD_T|WR_CC|FP_S, I4|I32 }, {"c.le.ob", "Y,Q", 0x78000005, 0xfc2007ff, WR_CC|RD_S|RD_T|FP_D, MX|SB1 }, +{"c.le.ob", "S,T", 0x4ac00005, 0xffe007ff, WR_CC|RD_S|RD_T, N54 }, +{"c.le.ob", "S,T[e]", 0x48000005, 0xfe2007ff, WR_CC|RD_S|RD_T, N54 }, +{"c.le.ob", "S,k", 0x4bc00005, 0xffe007ff, WR_CC|RD_S|RD_T, N54 }, {"c.le.ps", "S,T", 0x46c0003e, 0xffe007ff, RD_S|RD_T|WR_CC|FP_D, I5 }, {"c.le.ps", "M,S,T", 0x46c0003e, 0xffe000ff, RD_S|RD_T|WR_CC|FP_D, I5 }, {"c.le.qh", "Y,Q", 0x78200005, 0xfc2007ff, WR_CC|RD_S|RD_T|FP_D, MX }, @@ -421,8 +442,8 @@ const struct mips_opcode mips_builtin_op {"cfc1", "t,S", 0x44400000, 0xffe007ff, LCD|WR_t|RD_C1|FP_S, I1 }, {"cfc2", "t,G", 0x48400000, 0xffe007ff, LCD|WR_t|RD_C2, I1 }, {"cfc3", "t,G", 0x4c400000, 0xffe007ff, LCD|WR_t|RD_C3, I1 }, -{"clo", "U,s", 0x70000021, 0xfc0007ff, WR_d|WR_t|RD_s, I32 }, -{"clz", "U,s", 0x70000020, 0xfc0007ff, WR_d|WR_t|RD_s, I32 }, +{"clo", "U,s", 0x70000021, 0xfc0007ff, WR_d|WR_t|RD_s, I32|N55 }, +{"clz", "U,s", 0x70000020, 0xfc0007ff, WR_d|WR_t|RD_s, I32|N55 }, {"ctc0", "t,G", 0x40c00000, 0xffe007ff, COD|RD_t|WR_CC, I1 }, {"ctc1", "t,G", 0x44c00000, 0xffe007ff, COD|RD_t|WR_CC|FP_S, I1 }, {"ctc1", "t,S", 0x44c00000, 0xffe007ff, COD|RD_t|WR_CC|FP_S, I1 }, @@ -450,8 +471,9 @@ const struct mips_opcode mips_builtin_op {"daddiu", "t,r,j", 0x64000000, 0xfc000000, WR_t|RD_s, I3 }, {"daddu", "d,v,t", 0x0000002d, 0xfc0007ff, WR_d|RD_s|RD_t, I3 }, {"daddu", "t,r,I", 0, (int) M_DADDU_I, INSN_MACRO, I3 }, -{"dclo", "U,s", 0x70000025, 0xfc0007ff, RD_s|WR_d|WR_t, I64 }, -{"dclz", "U,s", 0x70000024, 0xfc0007ff, RD_s|WR_d|WR_t, I64 }, +{"dbreak", "", 0x7000003f, 0xffffffff, 0, N5 }, +{"dclo", "U,s", 0x70000025, 0xfc0007ff, RD_s|WR_d|WR_t, I64|N55 }, +{"dclz", "U,s", 0x70000024, 0xfc0007ff, RD_s|WR_d|WR_t, I64|N55 }, /* dctr and dctw are used on the r5000. */ {"dctr", "o(b)", 0xbc050000, 0xfc1f0000, RD_b, I3 }, {"dctw", "o(b)", 0xbc090000, 0xfc1f0000, RD_b, I3 }, @@ -484,8 +506,15 @@ const struct mips_opcode mips_builtin_op {"dli", "t,j", 0x24000000, 0xffe00000, WR_t, I3 }, /* addiu */ {"dli", "t,i", 0x34000000, 0xffe00000, WR_t, I3 }, /* ori */ {"dli", "t,I", 0, (int) M_DLI, INSN_MACRO, I3 }, - -{"dmadd16", "s,t", 0x00000029, 0xfc00ffff, RD_s|RD_t|MOD_LO, V1 }, +{"dmacc", "d,s,t", 0x00000029, 0xfc0007ff, RD_s|RD_t|WR_LO|WR_d, N412 }, +{"dmacchi", "d,s,t", 0x00000229, 0xfc0007ff, RD_s|RD_t|WR_LO|WR_d, N412 }, +{"dmacchis", "d,s,t", 0x00000629, 0xfc0007ff, RD_s|RD_t|WR_LO|WR_d, N412 }, +{"dmacchiu", "d,s,t", 0x00000269, 0xfc0007ff, RD_s|RD_t|WR_LO|WR_d, N412 }, +{"dmacchius", "d,s,t", 0x00000669, 0xfc0007ff, RD_s|RD_t|WR_LO|WR_d, N412 }, +{"dmaccs", "d,s,t", 0x00000429, 0xfc0007ff, RD_s|RD_t|WR_LO|WR_d, N412 }, +{"dmaccu", "d,s,t", 0x00000069, 0xfc0007ff, RD_s|RD_t|WR_LO|WR_d, N412 }, +{"dmaccus", "d,s,t", 0x00000469, 0xfc0007ff, RD_s|RD_t|WR_LO|WR_d, N412 }, +{"dmadd16", "s,t", 0x00000029, 0xfc00ffff, RD_s|RD_t|MOD_LO, N411 }, {"dmfc0", "t,G", 0x40200000, 0xffe007ff, LCD|WR_t|RD_C0, I3 }, {"dmfc0", "t,G,H", 0x40200000, 0xffe007f8, LCD|WR_t|RD_C0, I64 }, {"dmtc0", "t,G", 0x40a00000, 0xffe007ff, COD|RD_t|WR_C0|WR_CC, I3 }, @@ -518,8 +547,14 @@ const struct mips_opcode mips_builtin_op {"dremu", "z,s,t", 0x0000001f, 0xfc00ffff, RD_s|RD_t|WR_HILO, I3 }, {"dremu", "d,v,t", 3, (int) M_DREMU_3, INSN_MACRO, I3 }, {"dremu", "d,v,I", 3, (int) M_DREMU_3I, INSN_MACRO, I3 }, +{"dret", "", 0x7000003e, 0xffffffff, 0, N5 }, {"drol", "d,v,t", 0, (int) M_DROL, INSN_MACRO, I3 }, {"drol", "d,v,I", 0, (int) M_DROL_I, INSN_MACRO, I3 }, +{"drorv", "d,t,s", 0x00000056, 0xfc0007ff, RD_t|RD_s|WR_d, N5 }, +{"dror32", "d,w,<", 0x0020003e, 0xffe0003f, WR_d|RD_t, N5 }, +{"dror", "d,w,s", 0x00000056, 0xfc0007ff, RD_t|RD_s|WR_d, N5 }, /* drorv */ +{"dror", "d,w,>", 0x0020003e, 0xffe0003f, WR_d|RD_t, N5 }, +{"dror", "d,w,<", 0x0020003a, 0xffe0003f, WR_d|RD_t, N5 }, {"dror", "d,v,t", 0, (int) M_DROR, INSN_MACRO, I3 }, {"dror", "d,v,I", 0, (int) M_DROR_I, INSN_MACRO, I3 }, {"dsllv", "d,t,s", 0x00000014, 0xfc0007ff, WR_d|RD_t|RD_s, I3 }, @@ -609,7 +644,7 @@ const struct mips_opcode mips_builtin_op {"lld", "t,o(b)", 0xd0000000, 0xfc000000, LDD|RD_b|WR_t, I3 }, {"lld", "t,A(b)", 0, (int) M_LLD_AB, INSN_MACRO, I3 }, {"lui", "t,u", 0x3c000000, 0xffe00000, WR_t, I1 }, -{"luxc1", "D,t(b)", 0x4c000005, 0xfc00f83f, LDD|WR_D|RD_t|RD_b, I5 }, +{"luxc1", "D,t(b)", 0x4c000005, 0xfc00f83f, LDD|WR_D|RD_t|RD_b, I5|N55 }, {"lw", "t,o(b)", 0x8c000000, 0xfc000000, LDD|RD_b|WR_t, I1 }, {"lw", "t,A(b)", 0, (int) M_LW_AB, INSN_MACRO, I1 }, {"lwc0", "E,o(b)", 0xc0000000, 0xfc000000, CLD|RD_b|WR_CC, I1 }, @@ -635,24 +670,39 @@ const struct mips_opcode mips_builtin_op {"lwu", "t,o(b)", 0x9c000000, 0xfc000000, LDD|RD_b|WR_t, I3 }, {"lwu", "t,A(b)", 0, (int) M_LWU_AB, INSN_MACRO, I3 }, {"lwxc1", "D,t(b)", 0x4c000000, 0xfc00f83f, LDD|WR_D|RD_t|RD_b, I4 }, +{"macc", "d,s,t", 0x00000028, 0xfc0007ff, RD_s|RD_t|WR_HILO|WR_d, N412 }, +{"macc", "d,s,t", 0x00000158, 0xfc0007ff, RD_s|RD_t|WR_HILO|WR_d, N5 }, +{"maccs", "d,s,t", 0x00000428, 0xfc0007ff, RD_s|RD_t|WR_HILO|WR_d, N412 }, +{"macchi", "d,s,t", 0x00000228, 0xfc0007ff, RD_s|RD_t|WR_HILO|WR_d, N412 }, +{"macchi", "d,s,t", 0x00000358, 0xfc0007ff, RD_s|RD_t|WR_HILO|WR_d, N5 }, +{"macchis", "d,s,t", 0x00000628, 0xfc0007ff, RD_s|RD_t|WR_HILO|WR_d, N412 }, +{"macchiu", "d,s,t", 0x00000268, 0xfc0007ff, RD_s|RD_t|WR_HILO|WR_d, N412 }, +{"macchiu", "d,s,t", 0x00000359, 0xfc0007ff, RD_s|RD_t|WR_HILO|WR_d, N5 }, +{"macchius","d,s,t", 0x00000668, 0xfc0007ff, RD_s|RD_t|WR_HILO|WR_d, N412 }, +{"maccu", "d,s,t", 0x00000068, 0xfc0007ff, RD_s|RD_t|WR_HILO|WR_d, N412 }, +{"maccu", "d,s,t", 0x00000159, 0xfc0007ff, RD_s|RD_t|WR_HILO|WR_d, N5 }, +{"maccus", "d,s,t", 0x00000468, 0xfc0007ff, RD_s|RD_t|WR_HILO|WR_d, N412 }, {"mad", "s,t", 0x70000000, 0xfc00ffff, RD_s|RD_t|MOD_HILO, P3 }, {"madu", "s,t", 0x70000001, 0xfc00ffff, RD_s|RD_t|MOD_HILO, P3 }, {"madd.d", "D,R,S,T", 0x4c000021, 0xfc00003f, RD_R|RD_S|RD_T|WR_D|FP_D, I4 }, {"madd.s", "D,R,S,T", 0x4c000020, 0xfc00003f, RD_R|RD_S|RD_T|WR_D|FP_S, I4 }, {"madd.ps", "D,R,S,T", 0x4c000026, 0xfc00003f, RD_R|RD_S|RD_T|WR_D|FP_D, I5 }, {"madd", "s,t", 0x0000001c, 0xfc00ffff, RD_s|RD_t|WR_HILO, L1 }, -{"madd", "s,t", 0x70000000, 0xfc00ffff, RD_s|RD_t|MOD_HILO, I32}, +{"madd", "s,t", 0x70000000, 0xfc00ffff, RD_s|RD_t|MOD_HILO, I32|N55}, {"madd", "s,t", 0x70000000, 0xfc00ffff, RD_s|RD_t|WR_HILO|IS_M, G1 }, {"madd", "d,s,t", 0x70000000, 0xfc0007ff, RD_s|RD_t|WR_HILO|WR_d|IS_M, G1 }, {"maddu", "s,t", 0x0000001d, 0xfc00ffff, RD_s|RD_t|WR_HILO, L1 }, -{"maddu", "s,t", 0x70000001, 0xfc00ffff, RD_s|RD_t|MOD_HILO, I32}, +{"maddu", "s,t", 0x70000001, 0xfc00ffff, RD_s|RD_t|MOD_HILO, I32|N55}, {"maddu", "s,t", 0x70000001, 0xfc00ffff, RD_s|RD_t|WR_HILO|IS_M, G1 }, {"maddu", "d,s,t", 0x70000001, 0xfc0007ff, RD_s|RD_t|WR_HILO|WR_d|IS_M, G1 }, -{"madd16", "s,t", 0x00000028, 0xfc00ffff, RD_s|RD_t|MOD_HILO, V1 }, +{"madd16", "s,t", 0x00000028, 0xfc00ffff, RD_s|RD_t|MOD_HILO, N411 }, {"max.ob", "X,Y,Q", 0x78000007, 0xfc20003f, WR_D|RD_S|RD_T|FP_D, MX|SB1 }, +{"max.ob", "D,S,T", 0x4ac00007, 0xffe0003f, WR_D|RD_S|RD_T, N54 }, +{"max.ob", "D,S,T[e]", 0x48000007, 0xfe20003f, WR_D|RD_S|RD_T, N54 }, +{"max.ob", "D,S,k", 0x4bc00007, 0xffe0003f, WR_D|RD_S|RD_T, N54 }, {"max.qh", "X,Y,Q", 0x78200007, 0xfc20003f, WR_D|RD_S|RD_T|FP_D, MX }, -{"mfpc", "t,P", 0x4000c801, 0xffe0ffc1, LCD|WR_t|RD_C0, M1 }, -{"mfps", "t,P", 0x4000c800, 0xffe0ffc1, LCD|WR_t|RD_C0, M1 }, +{"mfpc", "t,P", 0x4000c801, 0xffe0ffc1, LCD|WR_t|RD_C0, M1|N5 }, +{"mfps", "t,P", 0x4000c800, 0xffe0ffc1, LCD|WR_t|RD_C0, M1|N5 }, {"mfc0", "t,G", 0x40000000, 0xffe007ff, LCD|WR_t|RD_C0, I1 }, {"mfc0", "t,G,H", 0x40000000, 0xffe007f8, LCD|WR_t|RD_C0, I32 }, {"mfc1", "t,S", 0x44000000, 0xffe007ff, LCD|WR_t|RD_S|FP_S, I1 }, @@ -661,9 +711,13 @@ const struct mips_opcode mips_builtin_op {"mfc2", "t,G,H", 0x48000000, 0xffe007f8, LCD|WR_t|RD_C2, I32 }, {"mfc3", "t,G", 0x4c000000, 0xffe007ff, LCD|WR_t|RD_C3, I1 }, {"mfc3", "t,G,H", 0x4c000000, 0xffe007f8, LCD|WR_t|RD_C3, I32 }, +{"mfdr", "t,G", 0x7000003d, 0xffe007ff, LCD|WR_t|RD_C0, N5 }, {"mfhi", "d", 0x00000010, 0xffff07ff, WR_d|RD_HI, I1 }, {"mflo", "d", 0x00000012, 0xffff07ff, WR_d|RD_LO, I1 }, {"min.ob", "X,Y,Q", 0x78000006, 0xfc20003f, WR_D|RD_S|RD_T|FP_D, MX|SB1 }, +{"min.ob", "D,S,T", 0x4ac00006, 0xffe0003f, WR_D|RD_S|RD_T, N54 }, +{"min.ob", "D,S,T[e]", 0x48000006, 0xfe20003f, WR_D|RD_S|RD_T, N54 }, +{"min.ob", "D,S,k", 0x4bc00006, 0xffe0003f, WR_D|RD_S|RD_T, N54 }, {"min.qh", "X,Y,Q", 0x78200006, 0xfc20003f, WR_D|RD_S|RD_T|FP_D, MX }, {"mov.d", "D,S", 0x46200006, 0xffff003f, WR_D|RD_S|FP_D, I1 }, {"mov.s", "D,S", 0x46000006, 0xffff003f, WR_D|RD_S|FP_S, I1 }, @@ -694,17 +748,21 @@ const struct mips_opcode mips_builtin_op {"movz.l", "X,Y,t", 0x46a00012, 0xffe0003f, WR_D|RD_S|RD_t|FP_D, MX|SB1 }, {"movz.s", "D,S,t", 0x46000012, 0xffe0003f, WR_D|RD_S|RD_t|FP_S, I4|I32 }, {"movz.ps", "D,S,t", 0x46c00012, 0xffe0003f, WR_D|RD_S|RD_t|FP_D, I5 }, +{"msac", "d,s,t", 0x000001d8, 0xfc0007ff, RD_s|RD_t|WR_HILO|WR_d, N5 }, +{"msacu", "d,s,t", 0x000001d9, 0xfc0007ff, RD_s|RD_t|WR_HILO|WR_d, N5 }, +{"msachi", "d,s,t", 0x000003d8, 0xfc0007ff, RD_s|RD_t|WR_HILO|WR_d, N5 }, +{"msachiu", "d,s,t", 0x000003d9, 0xfc0007ff, RD_s|RD_t|WR_HILO|WR_d, N5 }, /* move is at the top of the table. */ {"msgn.qh", "X,Y,Q", 0x78200000, 0xfc20003f, WR_D|RD_S|RD_T|FP_D, MX }, {"msub.d", "D,R,S,T", 0x4c000029, 0xfc00003f, RD_R|RD_S|RD_T|WR_D|FP_D, I4 }, {"msub.s", "D,R,S,T", 0x4c000028, 0xfc00003f, RD_R|RD_S|RD_T|WR_D|FP_S, I4 }, {"msub.ps", "D,R,S,T", 0x4c00002e, 0xfc00003f, RD_R|RD_S|RD_T|WR_D|FP_D, I5 }, {"msub", "s,t", 0x0000001e, 0xfc00ffff, RD_s|RD_t|WR_HILO, L1 }, -{"msub", "s,t", 0x70000004, 0xfc00ffff, RD_s|RD_t|MOD_HILO, I32 }, +{"msub", "s,t", 0x70000004, 0xfc00ffff, RD_s|RD_t|MOD_HILO, I32|N55 }, {"msubu", "s,t", 0x0000001f, 0xfc00ffff, RD_s|RD_t|WR_HILO, L1 }, -{"msubu", "s,t", 0x70000005, 0xfc00ffff, RD_s|RD_t|MOD_HILO, I32 }, -{"mtpc", "t,P", 0x4080c801, 0xffe0ffc1, COD|RD_t|WR_C0, M1 }, -{"mtps", "t,P", 0x4080c800, 0xffe0ffc1, COD|RD_t|WR_C0, M1 }, +{"msubu", "s,t", 0x70000005, 0xfc00ffff, RD_s|RD_t|MOD_HILO, I32|N55 }, +{"mtpc", "t,P", 0x4080c801, 0xffe0ffc1, COD|RD_t|WR_C0, M1|N5 }, +{"mtps", "t,P", 0x4080c800, 0xffe0ffc1, COD|RD_t|WR_C0, M1|N5 }, {"mtc0", "t,G", 0x40800000, 0xffe007ff, COD|RD_t|WR_C0|WR_CC, I1 }, {"mtc0", "t,G,H", 0x40800000, 0xffe007f8, COD|RD_t|WR_C0|WR_CC, I32 }, {"mtc1", "t,S", 0x44800000, 0xffe007ff, COD|RD_t|WR_S|FP_S, I1 }, @@ -713,33 +771,57 @@ const struct mips_opcode mips_builtin_op {"mtc2", "t,G,H", 0x48800000, 0xffe007f8, COD|RD_t|WR_C2|WR_CC, I32 }, {"mtc3", "t,G", 0x4c800000, 0xffe007ff, COD|RD_t|WR_C3|WR_CC, I1 }, {"mtc3", "t,G,H", 0x4c800000, 0xffe007f8, COD|RD_t|WR_C3|WR_CC, I32 }, +{"mtdr", "t,G", 0x7080003d, 0xffe007ff, COD|RD_t|WR_C0, N5 }, {"mthi", "s", 0x00000011, 0xfc1fffff, RD_s|WR_HI, I1 }, {"mtlo", "s", 0x00000013, 0xfc1fffff, RD_s|WR_LO, I1 }, {"mul.d", "D,V,T", 0x46200002, 0xffe0003f, WR_D|RD_S|RD_T|FP_D, I1 }, {"mul.s", "D,V,T", 0x46000002, 0xffe0003f, WR_D|RD_S|RD_T|FP_S, I1 }, {"mul.ob", "X,Y,Q", 0x78000030, 0xfc20003f, WR_D|RD_S|RD_T|FP_D, MX|SB1 }, +{"mul.ob", "D,S,T", 0x4ac00030, 0xffe0003f, WR_D|RD_S|RD_T, N54 }, +{"mul.ob", "D,S,T[e]", 0x48000030, 0xfe20003f, WR_D|RD_S|RD_T, N54 }, +{"mul.ob", "D,S,k", 0x4bc00030, 0xffe0003f, WR_D|RD_S|RD_T, N54 }, {"mul.ps", "D,V,T", 0x46c00002, 0xffe0003f, WR_D|RD_S|RD_T|FP_D, I5 }, {"mul.qh", "X,Y,Q", 0x78200030, 0xfc20003f, WR_D|RD_S|RD_T|FP_D, MX }, -{"mul", "d,v,t", 0x70000002, 0xfc0007ff, WR_d|RD_s|RD_t|WR_HILO, I32|P3 }, +{"mul", "d,v,t", 0x70000002, 0xfc0007ff, WR_d|RD_s|RD_t|WR_HILO, I32|P3|N55}, +{"mul", "d,s,t", 0x00000058, 0xfc0007ff, RD_s|RD_t|WR_HILO|WR_d, N54 }, {"mul", "d,v,t", 0, (int) M_MUL, INSN_MACRO, I1 }, {"mul", "d,v,I", 0, (int) M_MUL_I, INSN_MACRO, I1 }, {"mula.ob", "Y,Q", 0x78000033, 0xfc2007ff, WR_MACC|RD_S|RD_T|FP_D, MX|SB1 }, +{"mula.ob", "S,T", 0x4ac00033, 0xffe007ff, WR_CC|RD_S|RD_T, N54 }, +{"mula.ob", "S,T[e]", 0x48000033, 0xfe2007ff, WR_CC|RD_S|RD_T, N54 }, +{"mula.ob", "S,k", 0x4bc00033, 0xffe007ff, WR_CC|RD_S|RD_T, N54 }, {"mula.qh", "Y,Q", 0x78200033, 0xfc2007ff, WR_MACC|RD_S|RD_T|FP_D, MX }, +{"mulhi", "d,s,t", 0x00000258, 0xfc0007ff, RD_s|RD_t|WR_HILO|WR_d, N5 }, +{"mulhiu", "d,s,t", 0x00000259, 0xfc0007ff, RD_s|RD_t|WR_HILO|WR_d, N5 }, {"mull.ob", "Y,Q", 0x78000433, 0xfc2007ff, WR_MACC|RD_S|RD_T|FP_D, MX|SB1 }, +{"mull.ob", "S,T", 0x4ac00433, 0xffe007ff, WR_CC|RD_S|RD_T, N54 }, +{"mull.ob", "S,T[e]", 0x48000433, 0xfe2007ff, WR_CC|RD_S|RD_T, N54 }, +{"mull.ob", "S,k", 0x4bc00433, 0xffe007ff, WR_CC|RD_S|RD_T, N54 }, {"mull.qh", "Y,Q", 0x78200433, 0xfc2007ff, WR_MACC|RD_S|RD_T|FP_D, MX }, {"mulo", "d,v,t", 0, (int) M_MULO, INSN_MACRO, I1 }, {"mulo", "d,v,I", 0, (int) M_MULO_I, INSN_MACRO, I1 }, {"mulou", "d,v,t", 0, (int) M_MULOU, INSN_MACRO, I1 }, {"mulou", "d,v,I", 0, (int) M_MULOU_I, INSN_MACRO, I1 }, {"mulr.ps", "D,S,T", 0x46c0001a, 0xffe0003f, WR_D|RD_S|RD_T|FP_D, M3D }, +{"muls", "d,s,t", 0x000000d8, 0xfc0007ff, RD_s|RD_t|WR_HILO|WR_d, N5 }, +{"mulsu", "d,s,t", 0x000000d9, 0xfc0007ff, RD_s|RD_t|WR_HILO|WR_d, N5 }, +{"mulshi", "d,s,t", 0x000002d8, 0xfc0007ff, RD_s|RD_t|WR_HILO|WR_d, N5 }, +{"mulshiu", "d,s,t", 0x000002d9, 0xfc0007ff, RD_s|RD_t|WR_HILO|WR_d, N5 }, {"muls.ob", "Y,Q", 0x78000032, 0xfc2007ff, WR_MACC|RD_S|RD_T|FP_D, MX|SB1 }, +{"muls.ob", "S,T", 0x4ac00032, 0xffe007ff, WR_CC|RD_S|RD_T, N54 }, +{"muls.ob", "S,T[e]", 0x48000032, 0xfe2007ff, WR_CC|RD_S|RD_T, N54 }, +{"muls.ob", "S,k", 0x4bc00032, 0xffe007ff, WR_CC|RD_S|RD_T, N54 }, {"muls.qh", "Y,Q", 0x78200032, 0xfc2007ff, WR_MACC|RD_S|RD_T|FP_D, MX }, {"mulsl.ob", "Y,Q", 0x78000432, 0xfc2007ff, WR_MACC|RD_S|RD_T|FP_D, MX|SB1 }, +{"mulsl.ob", "S,T", 0x4ac00432, 0xffe007ff, WR_CC|RD_S|RD_T, N54 }, +{"mulsl.ob", "S,T[e]", 0x48000432, 0xfe2007ff, WR_CC|RD_S|RD_T, N54 }, +{"mulsl.ob", "S,k", 0x4bc00432, 0xffe007ff, WR_CC|RD_S|RD_T, N54 }, {"mulsl.qh", "Y,Q", 0x78200432, 0xfc2007ff, WR_MACC|RD_S|RD_T|FP_D, MX }, {"mult", "s,t", 0x00000018, 0xfc00ffff, RD_s|RD_t|WR_HILO|IS_M, I1 }, {"mult", "d,s,t", 0x00000018, 0xfc0007ff, RD_s|RD_t|WR_HILO|WR_d|IS_M, G1 }, {"multu", "s,t", 0x00000019, 0xfc00ffff, RD_s|RD_t|WR_HILO|IS_M, I1 }, {"multu", "d,s,t", 0x00000019, 0xfc0007ff, RD_s|RD_t|WR_HILO|WR_d|IS_M, G1 }, +{"mulu", "d,s,t", 0x00000059, 0xfc0007ff, RD_s|RD_t|WR_HILO|WR_d, N5 }, {"neg", "d,w", 0x00000022, 0xffe007ff, WR_d|RD_t, I1 }, /* sub 0 */ {"negu", "d,w", 0x00000023, 0xffe007ff, WR_d|RD_t, I1 }, /* subu 0 */ {"neg.d", "D,V", 0x46200007, 0xffff003f, WR_D|RD_S|FP_D, I1 }, @@ -755,19 +837,31 @@ const struct mips_opcode mips_builtin_op {"nor", "d,v,t", 0x00000027, 0xfc0007ff, WR_d|RD_s|RD_t, I1 }, {"nor", "t,r,I", 0, (int) M_NOR_I, INSN_MACRO, I1 }, {"nor.ob", "X,Y,Q", 0x7800000f, 0xfc20003f, WR_D|RD_S|RD_T|FP_D, MX|SB1 }, +{"nor.ob", "D,S,T", 0x4ac0000f, 0xffe0003f, WR_D|RD_S|RD_T, N54 }, +{"nor.ob", "D,S,T[e]", 0x4800000f, 0xfe20003f, WR_D|RD_S|RD_T, N54 }, +{"nor.ob", "D,S,k", 0x4bc0000f, 0xffe0003f, WR_D|RD_S|RD_T, N54 }, {"nor.qh", "X,Y,Q", 0x7820000f, 0xfc20003f, WR_D|RD_S|RD_T|FP_D, MX }, {"not", "d,v", 0x00000027, 0xfc1f07ff, WR_d|RD_s|RD_t, I1 },/*nor d,s,0*/ {"or", "d,v,t", 0x00000025, 0xfc0007ff, WR_d|RD_s|RD_t, I1 }, {"or", "t,r,I", 0, (int) M_OR_I, INSN_MACRO, I1 }, {"or.ob", "X,Y,Q", 0x7800000e, 0xfc20003f, WR_D|RD_S|RD_T|FP_D, MX|SB1 }, +{"or.ob", "D,S,T", 0x4ac0000e, 0xffe0003f, WR_D|RD_S|RD_T, N54 }, +{"or.ob", "D,S,T[e]", 0x4800000e, 0xfe20003f, WR_D|RD_S|RD_T, N54 }, +{"or.ob", "D,S,k", 0x4bc0000e, 0xffe0003f, WR_D|RD_S|RD_T, N54 }, {"or.qh", "X,Y,Q", 0x7820000e, 0xfc20003f, WR_D|RD_S|RD_T|FP_D, MX }, {"ori", "t,r,i", 0x34000000, 0xfc000000, WR_t|RD_s, I1 }, {"pabsdiff.ob", "X,Y,Q",0x78000009, 0xfc20003f, WR_D|RD_S|RD_T|FP_D, SB1 }, {"pabsdiffc.ob", "Y,Q", 0x78000035, 0xfc2007ff, WR_MACC|RD_S|RD_T|FP_D, SB1 }, {"pavg.ob", "X,Y,Q", 0x78000008, 0xfc20003f, WR_D|RD_S|RD_T|FP_D, SB1 }, {"pickf.ob", "X,Y,Q", 0x78000002, 0xfc20003f, WR_D|RD_S|RD_T|FP_D, MX|SB1 }, +{"pickf.ob", "D,S,T", 0x4ac00002, 0xffe0003f, WR_D|RD_S|RD_T, N54 }, +{"pickf.ob", "D,S,T[e]",0x48000002, 0xfe20003f, WR_D|RD_S|RD_T, N54 }, +{"pickf.ob", "D,S,k", 0x4bc00002, 0xffe0003f, WR_D|RD_S|RD_T, N54 }, {"pickf.qh", "X,Y,Q", 0x78200002, 0xfc20003f, WR_D|RD_S|RD_T|FP_D, MX }, {"pickt.ob", "X,Y,Q", 0x78000003, 0xfc20003f, WR_D|RD_S|RD_T|FP_D, MX|SB1 }, +{"pickt.ob", "D,S,T", 0x4ac00003, 0xffe0003f, WR_D|RD_S|RD_T, N54 }, +{"pickt.ob", "D,S,T[e]",0x48000003, 0xfe20003f, WR_D|RD_S|RD_T, N54 }, +{"pickt.ob", "D,S,k", 0x4bc00003, 0xffe0003f, WR_D|RD_S|RD_T, N54 }, {"pickt.qh", "X,Y,Q", 0x78200003, 0xfc20003f, WR_D|RD_S|RD_T|FP_D, MX }, {"pll.ps", "D,V,T", 0x46c0002c, 0xffe0003f, WR_D|RD_S|RD_T|FP_D, I5 }, {"plu.ps", "D,V,T", 0x46c0002d, 0xffe0003f, WR_D|RD_S|RD_T|FP_D, I5 }, @@ -775,10 +869,13 @@ const struct mips_opcode mips_builtin_op {"pul.ps", "D,V,T", 0x46c0002e, 0xffe0003f, WR_D|RD_S|RD_T|FP_D, I5 }, {"puu.ps", "D,V,T", 0x46c0002f, 0xffe0003f, WR_D|RD_S|RD_T|FP_D, I5 }, {"rach.ob", "X", 0x7a00003f, 0xfffff83f, WR_D|RD_MACC|FP_D, MX|SB1 }, +{"rach.ob", "D", 0x4a00003f, 0xfffff83f, WR_D, N54 }, {"rach.qh", "X", 0x7a20003f, 0xfffff83f, WR_D|RD_MACC|FP_D, MX }, {"racl.ob", "X", 0x7800003f, 0xfffff83f, WR_D|RD_MACC|FP_D, MX|SB1 }, +{"racl.ob", "D", 0x4800003f, 0xfffff83f, WR_D, N54 }, {"racl.qh", "X", 0x7820003f, 0xfffff83f, WR_D|RD_MACC|FP_D, MX }, {"racm.ob", "X", 0x7900003f, 0xfffff83f, WR_D|RD_MACC|FP_D, MX|SB1 }, +{"racm.ob", "D", 0x4900003f, 0xfffff83f, WR_D, N54 }, {"racm.qh", "X", 0x7920003f, 0xfffff83f, WR_D|RD_MACC|FP_D, MX }, {"recip.d", "D,S", 0x46200015, 0xffff003f, WR_D|RD_S|FP_D, I4 }, {"recip.ps","D,S", 0x46c00015, 0xffff003f, WR_D|RD_S|FP_D, SB1 }, @@ -804,6 +901,9 @@ const struct mips_opcode mips_builtin_op {"rneu.qh", "X,Q", 0x78200022, 0xfc20f83f, WR_D|RD_MACC|RD_T|FP_D, MX }, {"rol", "d,v,t", 0, (int) M_ROL, INSN_MACRO, I1 }, {"rol", "d,v,I", 0, (int) M_ROL_I, INSN_MACRO, I1 }, +{"rorv", "d,t,s", 0x00000046, 0xfc0007ff, RD_t|RD_s|WR_d, N5 }, +{"ror", "d,w,s", 0x00000046, 0xfc0007ff, RD_t|RD_s|WR_d, N5 }, /* rorv */ +{"ror", "d,w,<", 0x00200002, 0xffe0003f, WR_d|RD_t, N5 }, {"ror", "d,v,t", 0, (int) M_ROR, INSN_MACRO, I1 }, {"ror", "d,v,I", 0, (int) M_ROR_I, INSN_MACRO, I1 }, {"round.l.d", "D,S", 0x46200008, 0xffff003f, WR_D|RD_S|FP_D, I3 }, @@ -821,6 +921,7 @@ const struct mips_opcode mips_builtin_op {"rsqrt2.s", "D,S,T", 0x4600001f, 0xffe0003f, WR_D|RD_S|RD_T|FP_S, M3D }, {"rzs.qh", "X,Q", 0x78200024, 0xfc20f83f, WR_D|RD_MACC|RD_T|FP_D, MX }, {"rzu.ob", "X,Q", 0x78000020, 0xfc20f83f, WR_D|RD_MACC|RD_T|FP_D, MX|SB1 }, +{"rzu.ob", "D,k", 0x4bc00020, 0xffe0f83f, WR_D|RD_S|RD_T, N54 }, {"rzu.qh", "X,Q", 0x78200020, 0xfc20f83f, WR_D|RD_MACC|RD_T|FP_D, MX }, {"sb", "t,o(b)", 0xa0000000, 0xfc000000, SM|RD_t|RD_b, I1 }, {"sb", "t,A(b)", 0, (int) M_SB_AB, INSN_MACRO, I1 }, @@ -868,11 +969,15 @@ const struct mips_opcode mips_builtin_op {"sh", "t,A(b)", 0, (int) M_SH_AB, INSN_MACRO, I1 }, {"shfl.bfla.qh", "X,Y,Z", 0x7a20001f, 0xffe0003f, WR_D|RD_S|RD_T|FP_D, MX }, {"shfl.mixh.ob", "X,Y,Z", 0x7980001f, 0xffe0003f, WR_D|RD_S|RD_T|FP_D, MX|SB1 }, +{"shfl.mixh.ob", "D,S,T", 0x4980001f, 0xffe0003f, WR_D|RD_S|RD_T, N54 }, {"shfl.mixh.qh", "X,Y,Z", 0x7820001f, 0xffe0003f, WR_D|RD_S|RD_T|FP_D, MX }, {"shfl.mixl.ob", "X,Y,Z", 0x79c0001f, 0xffe0003f, WR_D|RD_S|RD_T|FP_D, MX|SB1 }, +{"shfl.mixl.ob", "D,S,T", 0x49c0001f, 0xffe0003f, WR_D|RD_S|RD_T, N54 }, {"shfl.mixl.qh", "X,Y,Z", 0x78a0001f, 0xffe0003f, WR_D|RD_S|RD_T|FP_D, MX }, {"shfl.pach.ob", "X,Y,Z", 0x7900001f, 0xffe0003f, WR_D|RD_S|RD_T|FP_D, MX|SB1 }, +{"shfl.pach.ob", "D,S,T", 0x4900001f, 0xffe0003f, WR_D|RD_S|RD_T, N54 }, {"shfl.pach.qh", "X,Y,Z", 0x7920001f, 0xffe0003f, WR_D|RD_S|RD_T|FP_D, MX }, +{"shfl.pacl.ob", "D,S,T", 0x4940001f, 0xffe0003f, WR_D|RD_S|RD_T, N54 }, {"shfl.repa.qh", "X,Y,Z", 0x7b20001f, 0xffe0003f, WR_D|RD_S|RD_T|FP_D, MX }, {"shfl.repb.qh", "X,Y,Z", 0x7ba0001f, 0xffe0003f, WR_D|RD_S|RD_T|FP_D, MX }, {"shfl.upsl.ob", "X,Y,Z", 0x78c0001f, 0xffe0003f, WR_D|RD_S|RD_T|FP_D, MX|SB1 }, @@ -884,6 +989,8 @@ const struct mips_opcode mips_builtin_op {"sll", "d,w,s", 0x00000004, 0xfc0007ff, WR_d|RD_t|RD_s, I1 }, /* sllv */ {"sll", "d,w,<", 0x00000000, 0xffe0003f, WR_d|RD_t, I1 }, {"sll.ob", "X,Y,Q", 0x78000010, 0xfc20003f, WR_D|RD_S|RD_T|FP_D, MX|SB1 }, +{"sll.ob", "D,S,T[e]", 0x48000010, 0xfe20003f, WR_D|RD_S|RD_T, N54 }, +{"sll.ob", "D,S,k", 0x4bc00010, 0xffe0003f, WR_D|RD_S|RD_T, N54 }, {"sll.qh", "X,Y,Q", 0x78200010, 0xfc20003f, WR_D|RD_S|RD_T|FP_D, MX }, {"slt", "d,v,t", 0x0000002a, 0xfc0007ff, WR_d|RD_s|RD_t, I1 }, {"slt", "d,v,I", 0, (int) M_SLT_I, INSN_MACRO, I1 }, @@ -904,6 +1011,8 @@ const struct mips_opcode mips_builtin_op {"srl", "d,w,s", 0x00000006, 0xfc0007ff, WR_d|RD_t|RD_s, I1 }, /* srlv */ {"srl", "d,w,<", 0x00000002, 0xffe0003f, WR_d|RD_t, I1 }, {"srl.ob", "X,Y,Q", 0x78000012, 0xfc20003f, WR_D|RD_S|RD_T|FP_D, MX|SB1 }, +{"srl.ob", "D,S,T[e]", 0x48000012, 0xfe20003f, WR_D|RD_S|RD_T, N54 }, +{"srl.ob", "D,S,k", 0x4bc00012, 0xffe0003f, WR_D|RD_S|RD_T, N54 }, {"srl.qh", "X,Y,Q", 0x78200012, 0xfc20003f, WR_D|RD_S|RD_T|FP_D, MX }, /* ssnop is at the start of the table. */ {"standby", "", 0x42000021, 0xffffffff, 0, V1 }, @@ -912,6 +1021,9 @@ const struct mips_opcode mips_builtin_op {"sub.d", "D,V,T", 0x46200001, 0xffe0003f, WR_D|RD_S|RD_T|FP_D, I1 }, {"sub.s", "D,V,T", 0x46000001, 0xffe0003f, WR_D|RD_S|RD_T|FP_S, I1 }, {"sub.ob", "X,Y,Q", 0x7800000a, 0xfc20003f, WR_D|RD_S|RD_T|FP_D, MX|SB1 }, +{"sub.ob", "D,S,T", 0x4ac0000a, 0xffe0003f, WR_D|RD_S|RD_T, N54 }, +{"sub.ob", "D,S,T[e]", 0x4800000a, 0xfe20003f, WR_D|RD_S|RD_T, N54 }, +{"sub.ob", "D,S,k", 0x4bc0000a, 0xffe0003f, WR_D|RD_S|RD_T, N54 }, {"sub.ps", "D,V,T", 0x46c00001, 0xffe0003f, WR_D|RD_S|RD_T|FP_D, I5 }, {"sub.qh", "X,Y,Q", 0x7820000a, 0xfc20003f, WR_D|RD_S|RD_T|FP_D, MX }, {"suba.ob", "Y,Q", 0x78000036, 0xfc2007ff, WR_MACC|RD_S|RD_T|FP_D, MX|SB1 }, @@ -921,7 +1033,7 @@ const struct mips_opcode mips_builtin_op {"subu", "d,v,t", 0x00000023, 0xfc0007ff, WR_d|RD_s|RD_t, I1 }, {"subu", "d,v,I", 0, (int) M_SUBU_I, INSN_MACRO, I1 }, {"suspend", "", 0x42000022, 0xffffffff, 0, V1 }, -{"suxc1", "S,t(b)", 0x4c00000d, 0xfc0007ff, SM|RD_S|RD_t|RD_b, I5 }, +{"suxc1", "S,t(b)", 0x4c00000d, 0xfc0007ff, SM|RD_S|RD_t|RD_b, I5|N55 }, {"sw", "t,o(b)", 0xac000000, 0xfc000000, SM|RD_t|RD_b, I1 }, {"sw", "t,A(b)", 0, (int) M_SW_AB, INSN_MACRO, I1 }, {"swc0", "E,o(b)", 0xe0000000, 0xfc000000, SM|RD_C0|RD_b, I1 }, @@ -1007,16 +1119,21 @@ const struct mips_opcode mips_builtin_op {"usw", "t,o(b)", 0, (int) M_USW, INSN_MACRO, I1 }, {"usw", "t,A(b)", 0, (int) M_USW_A, INSN_MACRO, I1 }, {"wach.ob", "Y", 0x7a00003e, 0xffff07ff, WR_MACC|RD_S|FP_D, MX|SB1 }, +{"wach.ob", "S", 0x4a00003e, 0xffff07ff, RD_S, N54 }, {"wach.qh", "Y", 0x7a20003e, 0xffff07ff, WR_MACC|RD_S|FP_D, MX }, {"wacl.ob", "Y,Z", 0x7800003e, 0xffe007ff, WR_MACC|RD_S|RD_T|FP_D, MX|SB1 }, +{"wacl.ob", "S,T", 0x4800003e, 0xffe007ff, RD_S|RD_T, N54 }, {"wacl.qh", "Y,Z", 0x7820003e, 0xffe007ff, WR_MACC|RD_S|RD_T|FP_D, MX }, {"wait", "", 0x42000020, 0xffffffff, TRAP, I3|I32 }, -{"wait", "J", 0x42000020, 0xfe00003f, TRAP, I32 }, +{"wait", "J", 0x42000020, 0xfe00003f, TRAP, I32|N55 }, {"waiti", "", 0x42000020, 0xffffffff, TRAP, L1 }, {"wb", "o(b)", 0xbc040000, 0xfc1f0000, SM|RD_b, L1 }, {"xor", "d,v,t", 0x00000026, 0xfc0007ff, WR_d|RD_s|RD_t, I1 }, {"xor", "t,r,I", 0, (int) M_XOR_I, INSN_MACRO, I1 }, {"xor.ob", "X,Y,Q", 0x7800000d, 0xfc20003f, WR_D|RD_S|RD_T|FP_D, MX|SB1 }, +{"xor.ob", "D,S,T", 0x4ac0000d, 0xffe0003f, WR_D|RD_S|RD_T, N54 }, +{"xor.ob", "D,S,T[e]", 0x4800000d, 0xfe20003f, WR_D|RD_S|RD_T, N54 }, +{"xor.ob", "D,S,k", 0x4bc0000d, 0xffe0003f, WR_D|RD_S|RD_T, N54 }, {"xor.qh", "X,Y,Q", 0x7820000d, 0xfc20003f, WR_D|RD_S|RD_T|FP_D, MX }, {"xori", "t,r,i", 0x38000000, 0xfc000000, WR_t|RD_s, I1 }, diff -uprN binutils-2.13.90.0.4/opcodes/po/POTFILES.in binutils-2.13.90.0.10/opcodes/po/POTFILES.in --- binutils-2.13.90.0.4/opcodes/po/POTFILES.in Mon Jul 29 08:19:19 2002 +++ binutils-2.13.90.0.10/opcodes/po/POTFILES.in Fri Sep 27 08:33:09 2002 @@ -113,6 +113,7 @@ sparc-dis.c sparc-opc.c sysdep.h tic30-dis.c +tic4x-dis.c tic54x-dis.c tic54x-opc.c tic80-dis.c diff -uprN binutils-2.13.90.0.4/opcodes/po/da.po binutils-2.13.90.0.10/opcodes/po/da.po --- binutils-2.13.90.0.4/opcodes/po/da.po Thu Mar 7 11:52:40 2002 +++ binutils-2.13.90.0.10/opcodes/po/da.po Fri Sep 27 08:33:09 2002 @@ -5,9 +5,9 @@ # msgid "" msgstr "" -"Project-Id-Version: opcodes 2.12-pre020121\n" -"POT-Creation-Date: 2002-01-17 13:58+0000\n" -"PO-Revision-Date: 2002-02-12 19:35+0200\n" +"Project-Id-Version: opcodes 2.12.91\n" +"POT-Creation-Date: 2002-07-23 15:55-0400\n" +"PO-Revision-Date: 2002-09-07 19:35+0200\n" "Last-Translator: Keld Simonsen \n" "Language-Team: Danish \n" "MIME-Version: 1.0\n" @@ -26,21 +26,21 @@ msgstr "hopperådet ligger på skæv adress msgid "Illegal limm reference in last instruction!\n" msgstr "Ugyldig limm-reference i sidste instruktion!\n" -#: arm-dis.c:509 +#: arm-dis.c:507 msgid "" msgstr "" -#: arm-dis.c:1019 +#: arm-dis.c:1010 #, c-format msgid "Unrecognised register name set: %s\n" msgstr "Ukendt registernavn er angivet: %s\n" -#: arm-dis.c:1026 +#: arm-dis.c:1017 #, c-format msgid "Unrecognised disassembler option: %s\n" msgstr "Ukendt disassembleralternativ: %s\n" -#: arm-dis.c:1198 +#: arm-dis.c:1191 msgid "" "\n" "The following ARM specific disassembler options are supported for use with\n" @@ -63,7 +63,8 @@ msgstr "Intern fejl i disassembleren" msgid "unknown constraint `%c'" msgstr "ukendt begrænsning \"%c\"" -#: cgen-asm.c:346 fr30-ibld.c:195 m32r-ibld.c:195 openrisc-ibld.c:195 +#: cgen-asm.c:346 fr30-ibld.c:195 frv-ibld.c:195 m32r-ibld.c:195 +#: openrisc-ibld.c:195 xstormy16-ibld.c:195 #, c-format msgid "operand out of range (%ld not between %ld and %ld)" msgstr "operanden er uden for intervallet (%ld er ikke mellem %ld og %ld)" @@ -89,106 +90,126 @@ msgstr "Ukendt fejl %d\n" msgid "Address 0x%x is out of bounds.\n" msgstr "Adressen 0x%x ligger uden for tilladte grænser.\n" -#: fr30-asm.c:324 m32r-asm.c:326 openrisc-asm.c:245 +#: fr30-asm.c:323 frv-asm.c:595 m32r-asm.c:325 openrisc-asm.c:244 +#: xstormy16-asm.c:231 #, c-format msgid "Unrecognized field %d while parsing.\n" msgstr "Ukendt felt %d ved tolkning.\n" -#: fr30-asm.c:374 m32r-asm.c:376 openrisc-asm.c:295 +#: fr30-asm.c:373 frv-asm.c:645 m32r-asm.c:375 openrisc-asm.c:294 +#: xstormy16-asm.c:281 msgid "missing mnemonic in syntax string" msgstr "Mangler mnemonic i syntaksstreng" #. We couldn't parse it. -#: fr30-asm.c:510 fr30-asm.c:514 fr30-asm.c:601 fr30-asm.c:703 m32r-asm.c:512 -#: m32r-asm.c:516 m32r-asm.c:603 m32r-asm.c:705 openrisc-asm.c:431 -#: openrisc-asm.c:435 openrisc-asm.c:522 openrisc-asm.c:624 +#: fr30-asm.c:509 fr30-asm.c:513 fr30-asm.c:600 fr30-asm.c:702 frv-asm.c:781 +#: frv-asm.c:785 frv-asm.c:872 frv-asm.c:974 m32r-asm.c:511 m32r-asm.c:515 +#: m32r-asm.c:602 m32r-asm.c:704 openrisc-asm.c:430 openrisc-asm.c:434 +#: openrisc-asm.c:521 openrisc-asm.c:623 xstormy16-asm.c:417 +#: xstormy16-asm.c:421 xstormy16-asm.c:508 xstormy16-asm.c:610 msgid "unrecognized instruction" msgstr "ukendt instruktion" -#: fr30-asm.c:557 m32r-asm.c:559 openrisc-asm.c:478 +#: fr30-asm.c:556 frv-asm.c:828 m32r-asm.c:558 openrisc-asm.c:477 +#: xstormy16-asm.c:464 #, c-format msgid "syntax error (expected char `%c', found `%c')" msgstr "syntaksfejl (tegnet \"%c\" forventedes, fandt \"%c\")" -#: fr30-asm.c:567 m32r-asm.c:569 openrisc-asm.c:488 +#: fr30-asm.c:566 frv-asm.c:838 m32r-asm.c:568 openrisc-asm.c:487 +#: xstormy16-asm.c:474 #, c-format msgid "syntax error (expected char `%c', found end of instruction)" msgstr "syntaksfejl (tegnet \"%c\" forventedes, fandt slut på instruktion)" -#: fr30-asm.c:595 m32r-asm.c:597 openrisc-asm.c:516 +#: fr30-asm.c:594 frv-asm.c:866 m32r-asm.c:596 openrisc-asm.c:515 +#: xstormy16-asm.c:502 msgid "junk at end of line" msgstr "snavs ved slutning på linjen" -#: fr30-asm.c:702 m32r-asm.c:704 openrisc-asm.c:623 +#: fr30-asm.c:701 frv-asm.c:973 m32r-asm.c:703 openrisc-asm.c:622 +#: xstormy16-asm.c:609 msgid "unrecognized form of instruction" msgstr "ukendt form af instruktion" -#: fr30-asm.c:714 m32r-asm.c:716 openrisc-asm.c:635 +#: fr30-asm.c:713 frv-asm.c:985 m32r-asm.c:715 openrisc-asm.c:634 +#: xstormy16-asm.c:621 #, c-format msgid "bad instruction `%.50s...'" msgstr "fejlagtig instruktion \"%.50s...\"" -#: fr30-asm.c:717 m32r-asm.c:719 openrisc-asm.c:638 +#: fr30-asm.c:716 frv-asm.c:988 m32r-asm.c:718 openrisc-asm.c:637 +#: xstormy16-asm.c:624 #, c-format msgid "bad instruction `%.50s'" msgstr "fejlagtig instruktion \"%.50s\"" #. Default text to print if an instruction isn't recognized. -#: fr30-dis.c:39 m32r-dis.c:39 mmix-dis.c:282 openrisc-dis.c:39 +#: fr30-dis.c:39 frv-dis.c:39 m32r-dis.c:39 mmix-dis.c:282 openrisc-dis.c:39 +#: xstormy16-dis.c:39 msgid "*unknown*" msgstr "*ukendt*" -#: fr30-dis.c:319 m32r-dis.c:250 openrisc-dis.c:137 +#: fr30-dis.c:318 frv-dis.c:360 m32r-dis.c:249 openrisc-dis.c:136 +#: xstormy16-dis.c:169 #, c-format msgid "Unrecognized field %d while printing insn.\n" msgstr "Ukendt felt %d ved udskrift af instruktion.\n" -#: fr30-ibld.c:166 m32r-ibld.c:166 openrisc-ibld.c:166 +#: fr30-ibld.c:166 frv-ibld.c:166 m32r-ibld.c:166 openrisc-ibld.c:166 +#: xstormy16-ibld.c:166 #, c-format msgid "operand out of range (%ld not between %ld and %lu)" msgstr "operanden er uden for intervallet (%ld er ikke mellem %ld og %lu)" -#: fr30-ibld.c:179 m32r-ibld.c:179 openrisc-ibld.c:179 +#: fr30-ibld.c:179 frv-ibld.c:179 m32r-ibld.c:179 openrisc-ibld.c:179 +#: xstormy16-ibld.c:179 #, c-format msgid "operand out of range (%lu not between 0 and %lu)" msgstr "operanden uden for intervallet (%lu ikke mellem 0 og %lu)" -#: fr30-ibld.c:731 m32r-ibld.c:660 openrisc-ibld.c:634 +#: fr30-ibld.c:730 frv-ibld.c:820 m32r-ibld.c:659 openrisc-ibld.c:633 +#: xstormy16-ibld.c:678 #, c-format msgid "Unrecognized field %d while building insn.\n" msgstr "Ukendt felt %d ved konstruktion af instruktion.\n" -#: fr30-ibld.c:939 m32r-ibld.c:794 openrisc-ibld.c:737 +#: fr30-ibld.c:937 frv-ibld.c:1103 m32r-ibld.c:792 openrisc-ibld.c:735 +#: xstormy16-ibld.c:826 #, c-format msgid "Unrecognized field %d while decoding insn.\n" msgstr "Ukendt felt %d ved afkodning af instruktion.\n" -#: fr30-ibld.c:1088 m32r-ibld.c:904 openrisc-ibld.c:817 +#: fr30-ibld.c:1086 frv-ibld.c:1348 m32r-ibld.c:902 openrisc-ibld.c:815 +#: xstormy16-ibld.c:939 #, c-format msgid "Unrecognized field %d while getting int operand.\n" msgstr "Ukendt felt %d ved hentning af heltalsoperand.\n" -#: fr30-ibld.c:1217 m32r-ibld.c:994 openrisc-ibld.c:877 +#: fr30-ibld.c:1215 frv-ibld.c:1573 m32r-ibld.c:992 openrisc-ibld.c:875 +#: xstormy16-ibld.c:1032 #, c-format msgid "Unrecognized field %d while getting vma operand.\n" msgstr "Ukendt felt %d ved hentning af vma-operand.\n" -#: fr30-ibld.c:1351 m32r-ibld.c:1092 openrisc-ibld.c:946 +#: fr30-ibld.c:1349 frv-ibld.c:1807 m32r-ibld.c:1090 openrisc-ibld.c:944 +#: xstormy16-ibld.c:1134 #, c-format msgid "Unrecognized field %d while setting int operand.\n" msgstr "Ukendt felt %d ved indstilling af heltalsoperand.\n" -#: fr30-ibld.c:1473 m32r-ibld.c:1178 openrisc-ibld.c:1003 +#: fr30-ibld.c:1471 frv-ibld.c:2029 m32r-ibld.c:1176 openrisc-ibld.c:1001 +#: xstormy16-ibld.c:1224 #, c-format msgid "Unrecognized field %d while setting vma operand.\n" msgstr "Ukendt felt %d ved indstilling af vma-operand.\n" -#: h8300-dis.c:384 +#: h8300-dis.c:385 #, c-format msgid "Hmmmm %x" msgstr "Hmmmm %x" -#: h8300-dis.c:395 +#: h8300-dis.c:396 #, c-format msgid "Don't understand %x \n" msgstr "Forstår ikke %x \n" @@ -238,12 +259,12 @@ msgstr "" msgid "# " msgstr "# " -#: mips-dis.c:290 +#: mips-dis.c:337 #, c-format msgid "# internal error, undefined modifier(%c)" msgstr "# intern fejl, ukendt modifikator(%c)" -#: mips-dis.c:1154 +#: mips-dis.c:1209 #, c-format msgid "# internal disassembler error, unrecognised modifier (%c)" msgstr "# intern disassembler-fejl, ukendt modifikator (%c)" @@ -277,62 +298,62 @@ msgstr "*ukendt operandstype: %d*" msgid "$" msgstr "$" -#: ppc-opc.c:765 ppc-opc.c:798 +#: ppc-opc.c:777 ppc-opc.c:810 msgid "invalid conditional option" msgstr "ugyldigt betinget flag" -#: ppc-opc.c:800 +#: ppc-opc.c:812 msgid "attempt to set y bit when using + or - modifier" msgstr "forsøg på at sætte y-bitten når modifikatoren + eller - blev brugt" -#: ppc-opc.c:832 ppc-opc.c:884 +#: ppc-opc.c:844 ppc-opc.c:896 msgid "offset not a multiple of 4" msgstr "afsæt ikke et produkt af 4" -#: ppc-opc.c:857 +#: ppc-opc.c:869 msgid "offset not between -2048 and 2047" msgstr "afsæt ikke mellem -2048 og 2047" -#: ppc-opc.c:882 +#: ppc-opc.c:894 msgid "offset not between -8192 and 8191" msgstr "afsæt ikke mellem -8192 og 8191" -#: ppc-opc.c:910 +#: ppc-opc.c:922 msgid "ignoring least significant bits in branch offset" msgstr "ignorerer mindste betydende bit i afsæt for betinget hop" -#: ppc-opc.c:944 ppc-opc.c:981 +#: ppc-opc.c:956 ppc-opc.c:993 msgid "illegal bitmask" msgstr "ugyldig bitmaske" -#: ppc-opc.c:1054 +#: ppc-opc.c:1066 msgid "value out of range" msgstr "værdien er uden for intervallet" -#: ppc-opc.c:1130 +#: ppc-opc.c:1142 msgid "index register in load range" msgstr "indeksregistret er i indlæsningsintervallet" -#: ppc-opc.c:1146 +#: ppc-opc.c:1158 msgid "invalid register operand when updating" msgstr "ugyldig registeroperand ved opdatering" #. Mark as non-valid instruction -#: sparc-dis.c:749 +#: sparc-dis.c:750 msgid "unknown" msgstr "ukendt" -#: sparc-dis.c:824 +#: sparc-dis.c:825 #, c-format msgid "Internal error: bad sparc-opcode.h: \"%s\", %#.8lx, %#.8lx\n" msgstr "Intern fejl: dårlig sparc-opcode.h: \"%s\", %#.8lx, %#.8lx\n" -#: sparc-dis.c:835 +#: sparc-dis.c:836 #, c-format msgid "Internal error: bad sparc-opcode.h: \"%s\", %#.8lx, %#.8lx\n" msgstr "Intern fejl: dårlig sparc-opcode.h: \"%s\", %#.8lx, %#.8lx\n" -#: sparc-dis.c:884 +#: sparc-dis.c:885 #, c-format msgid "Internal error: bad sparc-opcode.h: \"%s\" == \"%s\"\n" msgstr "Intern fejl: dårlig sparc-opcode.h: \"%s\" == \"%s\"\n" @@ -396,5 +417,33 @@ msgstr "umiddelbar værdi er ikke indenfo msgid "immediate value must be even" msgstr "umiddelbar værdi skal være lige" +#: xstormy16-asm.c:74 +msgid "Bad register in preincrement" +msgstr "Forkert register i præinkrement" + +#: xstormy16-asm.c:79 +msgid "Bad register in postincrement" +msgstr "Forkert register i postinkrement" + +#: xstormy16-asm.c:81 +msgid "Bad register name" +msgstr "Forkert registernavn" + +#: xstormy16-asm.c:85 +msgid "Label conflicts with register name" +msgstr "Etikette konflikter med registernavn" + +#: xstormy16-asm.c:89 +msgid "Label conflicts with `Rx'" +msgstr "Etikette konflikter med 'Rx'" + +#: xstormy16-asm.c:91 +msgid "Bad immediate expression" +msgstr "Forkert umiddelbart udtryk" + +#: xstormy16-asm.c:120 +msgid "Small operand was not an immediate number" +msgstr "Lille operand var ikke et umiddelbart tal" + #~ msgid "unrecognized keyword/register name" #~ msgstr "ukendt navn på nøgleord/register" diff -uprN binutils-2.13.90.0.4/opcodes/po/de.po binutils-2.13.90.0.10/opcodes/po/de.po --- binutils-2.13.90.0.4/opcodes/po/de.po Thu Mar 7 11:52:40 2002 +++ binutils-2.13.90.0.10/opcodes/po/de.po Fri Sep 27 08:33:09 2002 @@ -4,9 +4,9 @@ # msgid "" msgstr "" -"Project-Id-Version: opcodes 2.12-pre020121\n" -"POT-Creation-Date: 2002-01-17 13:58+0000\n" -"PO-Revision-Date: 2002-02-24 13:59+0100\n" +"Project-Id-Version: opcodes 2.12.91\n" +"POT-Creation-Date: 2002-07-23 15:55-0400\n" +"PO-Revision-Date: 2002-09-24 07:13+0200\n" "Last-Translator: Martin v. Löwis \n" "Language-Team: German \n" "MIME-Version: 1.0\n" @@ -25,21 +25,21 @@ msgstr "Sprunghinweis ist nicht ausgeric msgid "Illegal limm reference in last instruction!\n" msgstr "Ungültige limm-Referenz in der letzten Anweisung!\n" -#: arm-dis.c:509 +#: arm-dis.c:507 msgid "" msgstr "" -#: arm-dis.c:1019 +#: arm-dis.c:1010 #, c-format msgid "Unrecognised register name set: %s\n" msgstr "Unbekannte Registernamensmenge: %s\n" -#: arm-dis.c:1026 +#: arm-dis.c:1017 #, c-format msgid "Unrecognised disassembler option: %s\n" msgstr "Unbekannte Disassembler-Option: %s\n" -#: arm-dis.c:1198 +#: arm-dis.c:1191 msgid "" "\n" "The following ARM specific disassembler options are supported for use with\n" @@ -59,7 +59,8 @@ msgstr "Interner Disassemblerfehler." msgid "unknown constraint `%c'" msgstr "" -#: cgen-asm.c:346 fr30-ibld.c:195 m32r-ibld.c:195 openrisc-ibld.c:195 +#: cgen-asm.c:346 fr30-ibld.c:195 frv-ibld.c:195 m32r-ibld.c:195 +#: openrisc-ibld.c:195 xstormy16-ibld.c:195 #, c-format msgid "operand out of range (%ld not between %ld and %ld)" msgstr "" @@ -85,104 +86,126 @@ msgstr "Unbekannter Fehler %d\n" msgid "Address 0x%x is out of bounds.\n" msgstr "" -#: fr30-asm.c:324 m32r-asm.c:326 openrisc-asm.c:245 +#: fr30-asm.c:323 frv-asm.c:595 m32r-asm.c:325 openrisc-asm.c:244 +#: xstormy16-asm.c:231 #, c-format msgid "Unrecognized field %d while parsing.\n" msgstr "" -#: fr30-asm.c:374 m32r-asm.c:376 openrisc-asm.c:295 +#: fr30-asm.c:373 frv-asm.c:645 m32r-asm.c:375 openrisc-asm.c:294 +#: xstormy16-asm.c:281 msgid "missing mnemonic in syntax string" msgstr "" #. We couldn't parse it. -#: fr30-asm.c:510 fr30-asm.c:514 fr30-asm.c:601 fr30-asm.c:703 m32r-asm.c:512 m32r-asm.c:516 m32r-asm.c:603 m32r-asm.c:705 openrisc-asm.c:431 openrisc-asm.c:435 openrisc-asm.c:522 openrisc-asm.c:624 +#: fr30-asm.c:509 fr30-asm.c:513 fr30-asm.c:600 fr30-asm.c:702 frv-asm.c:781 +#: frv-asm.c:785 frv-asm.c:872 frv-asm.c:974 m32r-asm.c:511 m32r-asm.c:515 +#: m32r-asm.c:602 m32r-asm.c:704 openrisc-asm.c:430 openrisc-asm.c:434 +#: openrisc-asm.c:521 openrisc-asm.c:623 xstormy16-asm.c:417 +#: xstormy16-asm.c:421 xstormy16-asm.c:508 xstormy16-asm.c:610 msgid "unrecognized instruction" msgstr "" -#: fr30-asm.c:557 m32r-asm.c:559 openrisc-asm.c:478 +#: fr30-asm.c:556 frv-asm.c:828 m32r-asm.c:558 openrisc-asm.c:477 +#: xstormy16-asm.c:464 #, c-format msgid "syntax error (expected char `%c', found `%c')" msgstr "Syntaxfehler (erwartetes Zeichen »%c«, gefunden »%c«)" -#: fr30-asm.c:567 m32r-asm.c:569 openrisc-asm.c:488 +#: fr30-asm.c:566 frv-asm.c:838 m32r-asm.c:568 openrisc-asm.c:487 +#: xstormy16-asm.c:474 #, c-format msgid "syntax error (expected char `%c', found end of instruction)" msgstr "" -#: fr30-asm.c:595 m32r-asm.c:597 openrisc-asm.c:516 +#: fr30-asm.c:594 frv-asm.c:866 m32r-asm.c:596 openrisc-asm.c:515 +#: xstormy16-asm.c:502 msgid "junk at end of line" msgstr "" -#: fr30-asm.c:702 m32r-asm.c:704 openrisc-asm.c:623 +#: fr30-asm.c:701 frv-asm.c:973 m32r-asm.c:703 openrisc-asm.c:622 +#: xstormy16-asm.c:609 msgid "unrecognized form of instruction" msgstr "" -#: fr30-asm.c:714 m32r-asm.c:716 openrisc-asm.c:635 +#: fr30-asm.c:713 frv-asm.c:985 m32r-asm.c:715 openrisc-asm.c:634 +#: xstormy16-asm.c:621 #, c-format msgid "bad instruction `%.50s...'" msgstr "" -#: fr30-asm.c:717 m32r-asm.c:719 openrisc-asm.c:638 +#: fr30-asm.c:716 frv-asm.c:988 m32r-asm.c:718 openrisc-asm.c:637 +#: xstormy16-asm.c:624 #, c-format msgid "bad instruction `%.50s'" msgstr "" #. Default text to print if an instruction isn't recognized. -#: fr30-dis.c:39 m32r-dis.c:39 mmix-dis.c:282 openrisc-dis.c:39 +#: fr30-dis.c:39 frv-dis.c:39 m32r-dis.c:39 mmix-dis.c:282 openrisc-dis.c:39 +#: xstormy16-dis.c:39 msgid "*unknown*" msgstr "" -#: fr30-dis.c:319 m32r-dis.c:250 openrisc-dis.c:137 +#: fr30-dis.c:318 frv-dis.c:360 m32r-dis.c:249 openrisc-dis.c:136 +#: xstormy16-dis.c:169 #, c-format msgid "Unrecognized field %d while printing insn.\n" msgstr "" -#: fr30-ibld.c:166 m32r-ibld.c:166 openrisc-ibld.c:166 +#: fr30-ibld.c:166 frv-ibld.c:166 m32r-ibld.c:166 openrisc-ibld.c:166 +#: xstormy16-ibld.c:166 #, c-format msgid "operand out of range (%ld not between %ld and %lu)" msgstr "" -#: fr30-ibld.c:179 m32r-ibld.c:179 openrisc-ibld.c:179 +#: fr30-ibld.c:179 frv-ibld.c:179 m32r-ibld.c:179 openrisc-ibld.c:179 +#: xstormy16-ibld.c:179 #, c-format msgid "operand out of range (%lu not between 0 and %lu)" msgstr "" -#: fr30-ibld.c:731 m32r-ibld.c:660 openrisc-ibld.c:634 +#: fr30-ibld.c:730 frv-ibld.c:820 m32r-ibld.c:659 openrisc-ibld.c:633 +#: xstormy16-ibld.c:678 #, c-format msgid "Unrecognized field %d while building insn.\n" msgstr "" -#: fr30-ibld.c:939 m32r-ibld.c:794 openrisc-ibld.c:737 +#: fr30-ibld.c:937 frv-ibld.c:1103 m32r-ibld.c:792 openrisc-ibld.c:735 +#: xstormy16-ibld.c:826 #, c-format msgid "Unrecognized field %d while decoding insn.\n" msgstr "" -#: fr30-ibld.c:1088 m32r-ibld.c:904 openrisc-ibld.c:817 +#: fr30-ibld.c:1086 frv-ibld.c:1348 m32r-ibld.c:902 openrisc-ibld.c:815 +#: xstormy16-ibld.c:939 #, c-format msgid "Unrecognized field %d while getting int operand.\n" msgstr "" -#: fr30-ibld.c:1217 m32r-ibld.c:994 openrisc-ibld.c:877 +#: fr30-ibld.c:1215 frv-ibld.c:1573 m32r-ibld.c:992 openrisc-ibld.c:875 +#: xstormy16-ibld.c:1032 #, c-format msgid "Unrecognized field %d while getting vma operand.\n" msgstr "" -#: fr30-ibld.c:1351 m32r-ibld.c:1092 openrisc-ibld.c:946 +#: fr30-ibld.c:1349 frv-ibld.c:1807 m32r-ibld.c:1090 openrisc-ibld.c:944 +#: xstormy16-ibld.c:1134 #, c-format msgid "Unrecognized field %d while setting int operand.\n" msgstr "" -#: fr30-ibld.c:1473 m32r-ibld.c:1178 openrisc-ibld.c:1003 +#: fr30-ibld.c:1471 frv-ibld.c:2029 m32r-ibld.c:1176 openrisc-ibld.c:1001 +#: xstormy16-ibld.c:1224 #, c-format msgid "Unrecognized field %d while setting vma operand.\n" msgstr "" -#: h8300-dis.c:384 +#: h8300-dis.c:385 #, c-format msgid "Hmmmm %x" msgstr "" -#: h8300-dis.c:395 +#: h8300-dis.c:396 #, c-format msgid "Don't understand %x \n" msgstr "" @@ -232,12 +255,12 @@ msgstr "" msgid "# " msgstr "" -#: mips-dis.c:290 +#: mips-dis.c:337 #, c-format msgid "# internal error, undefined modifier(%c)" msgstr "" -#: mips-dis.c:1154 +#: mips-dis.c:1209 #, c-format msgid "# internal disassembler error, unrecognised modifier (%c)" msgstr "" @@ -271,62 +294,62 @@ msgstr "" msgid "$" msgstr "" -#: ppc-opc.c:765 ppc-opc.c:798 +#: ppc-opc.c:777 ppc-opc.c:810 msgid "invalid conditional option" msgstr "" -#: ppc-opc.c:800 +#: ppc-opc.c:812 msgid "attempt to set y bit when using + or - modifier" msgstr "" -#: ppc-opc.c:832 ppc-opc.c:884 +#: ppc-opc.c:844 ppc-opc.c:896 msgid "offset not a multiple of 4" msgstr "" -#: ppc-opc.c:857 +#: ppc-opc.c:869 msgid "offset not between -2048 and 2047" msgstr "" -#: ppc-opc.c:882 +#: ppc-opc.c:894 msgid "offset not between -8192 and 8191" msgstr "" -#: ppc-opc.c:910 +#: ppc-opc.c:922 msgid "ignoring least significant bits in branch offset" msgstr "" -#: ppc-opc.c:944 ppc-opc.c:981 +#: ppc-opc.c:956 ppc-opc.c:993 msgid "illegal bitmask" msgstr "" -#: ppc-opc.c:1054 +#: ppc-opc.c:1066 msgid "value out of range" msgstr "" -#: ppc-opc.c:1130 +#: ppc-opc.c:1142 msgid "index register in load range" msgstr "" -#: ppc-opc.c:1146 +#: ppc-opc.c:1158 msgid "invalid register operand when updating" msgstr "" #. Mark as non-valid instruction -#: sparc-dis.c:749 +#: sparc-dis.c:750 msgid "unknown" msgstr "" -#: sparc-dis.c:824 +#: sparc-dis.c:825 #, c-format msgid "Internal error: bad sparc-opcode.h: \"%s\", %#.8lx, %#.8lx\n" msgstr "" -#: sparc-dis.c:835 +#: sparc-dis.c:836 #, c-format msgid "Internal error: bad sparc-opcode.h: \"%s\", %#.8lx, %#.8lx\n" msgstr "" -#: sparc-dis.c:884 +#: sparc-dis.c:885 #, c-format msgid "Internal error: bad sparc-opcode.h: \"%s\" == \"%s\"\n" msgstr "" @@ -389,3 +412,31 @@ msgstr "" #: v850-opc.c:375 msgid "immediate value must be even" msgstr "Der Direktoperand muss gerade sein." + +#: xstormy16-asm.c:74 +msgid "Bad register in preincrement" +msgstr "" + +#: xstormy16-asm.c:79 +msgid "Bad register in postincrement" +msgstr "" + +#: xstormy16-asm.c:81 +msgid "Bad register name" +msgstr "Falscher Registername." + +#: xstormy16-asm.c:85 +msgid "Label conflicts with register name" +msgstr "" + +#: xstormy16-asm.c:89 +msgid "Label conflicts with `Rx'" +msgstr "" + +#: xstormy16-asm.c:91 +msgid "Bad immediate expression" +msgstr "" + +#: xstormy16-asm.c:120 +msgid "Small operand was not an immediate number" +msgstr "" diff -uprN binutils-2.13.90.0.4/opcodes/ppc-dis.c binutils-2.13.90.0.10/opcodes/ppc-dis.c --- binutils-2.13.90.0.4/opcodes/ppc-dis.c Thu Mar 7 11:52:40 2002 +++ binutils-2.13.90.0.10/opcodes/ppc-dis.c Fri Sep 27 08:33:09 2002 @@ -53,7 +53,30 @@ powerpc_dialect(info) || strcmp (info->disassembler_options, "booke64") == 0)) dialect |= PPC_OPCODE_BOOKE | PPC_OPCODE_BOOKE64; else - dialect |= PPC_OPCODE_403 | PPC_OPCODE_601; + if ((info->mach == bfd_mach_ppc_e500) + || (info->disassembler_options + && ( strcmp (info->disassembler_options, "e500") == 0 + || strcmp (info->disassembler_options, "e500x2") == 0))) + { + dialect |= PPC_OPCODE_BOOKE + | PPC_OPCODE_SPE | PPC_OPCODE_ISEL + | PPC_OPCODE_EFS | PPC_OPCODE_BRLOCK + | PPC_OPCODE_PMR | PPC_OPCODE_CACHELCK + | PPC_OPCODE_RFMCI; + /* efs* and AltiVec conflict. */ + dialect &= ~PPC_OPCODE_ALTIVEC; + } + else + if (info->disassembler_options + && (strcmp (info->disassembler_options, "efs") == 0)) + { + dialect |= PPC_OPCODE_EFS; + /* efs* and AltiVec conflict. */ + dialect &= ~PPC_OPCODE_ALTIVEC; + } + else + dialect |= (PPC_OPCODE_403 | PPC_OPCODE_601 | PPC_OPCODE_CLASSIC + | PPC_OPCODE_COMMON); if (info->disassembler_options && strcmp (info->disassembler_options, "power4") == 0) @@ -153,6 +176,9 @@ print_insn_powerpc (memaddr, info, bigen || (opcode->flags & dialect) == 0) continue; + if ((dialect & PPC_OPCODE_EFS) && (opcode->flags & PPC_OPCODE_ALTIVEC)) + continue; + /* Make two passes over the operands. First see if any of them have extraction functions, and, if they do, make sure the instruction is valid. */ @@ -271,3 +297,18 @@ print_insn_powerpc (memaddr, info, bigen return 4; } + +void +print_ppc_disassembler_options (FILE * stream) +{ + fprintf (stream, "\n\ +The following PPC specific disassembler options are supported for use with\n\ +the -M switch:\n"); + + fprintf (stream, " booke|booke32|booke64 Disassemble the BookE instructions\n"); + fprintf (stream, " e500|e500x2 Disassemble the e500 instructions\n"); + fprintf (stream, " efs Disassemble the EFS instructions\n"); + fprintf (stream, " power4 Disassemble the Power4 instructions\n"); + fprintf (stream, " 32 Do not disassemble 64-bit instructions\n"); + fprintf (stream, " 64 Allow disassembly of 64-bit instructions\n"); +} diff -uprN binutils-2.13.90.0.4/opcodes/ppc-opc.c binutils-2.13.90.0.10/opcodes/ppc-opc.c --- binutils-2.13.90.0.4/opcodes/ppc-opc.c Thu May 23 15:10:11 2002 +++ binutils-2.13.90.0.10/opcodes/ppc-opc.c Fri Sep 27 08:33:09 2002 @@ -100,6 +100,10 @@ static unsigned long insert_nsi PARAMS ((unsigned long, long, int, const char **)); static long extract_nsi PARAMS ((unsigned long, int, int *)); +static unsigned long insert_pmrn + PARAMS ((unsigned long, long, int, const char **)); +static long extract_pmrn + PARAMS ((unsigned long, int, int *)); static unsigned long insert_ral PARAMS ((unsigned long, long, int, const char **)); static unsigned long insert_ram @@ -122,6 +126,18 @@ static unsigned long insert_tbr PARAMS ((unsigned long, long, int, const char **)); static long extract_tbr PARAMS ((unsigned long, int, int *)); +static unsigned long insert_ev2 + PARAMS ((unsigned long, long, int, const char **)); +static long extract_ev2 + PARAMS ((unsigned long, int, int *)); +static unsigned long insert_ev4 + PARAMS ((unsigned long, long, int, const char **)); +static long extract_ev4 + PARAMS ((unsigned long, int, int *)); +static unsigned long insert_ev8 + PARAMS ((unsigned long, long, int, const char **)); +static long extract_ev8 + PARAMS ((unsigned long, int, int *)); /* The operands table. @@ -235,8 +251,21 @@ const struct powerpc_operand powerpc_ope #define CR BT + 1 { 3, 18, 0, 0, PPC_OPERAND_CR | PPC_OPERAND_OPTIONAL }, + /* The CRB field in an X form instruction. */ +#define CRB CR + 1 + { 5, 6, 0, 0, 0 }, + + /* The CRFD field in an X form instruction. */ +#define CRFD CRB + 1 + { 3, 23, 0, 0, PPC_OPERAND_CR }, + + /* The CRFS field in an X form instruction. */ +#define CRFS CRFD + 1 + { 3, 0, 0, 0, PPC_OPERAND_CR }, + /* The CT field in an X form instruction. */ -#define CT CR + 1 +#define CT CRFS + 1 +#define RD CT { 5, 21, 0, 0, PPC_OPERAND_OPTIONAL }, /* The D field in a D form instruction. This is a displacement off @@ -365,8 +394,12 @@ const struct powerpc_operand powerpc_ope { 16, 0, insert_nsi, extract_nsi, PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED }, + /* The PMRN field in an X form instruction. */ +#define PMRN NSI + 1 + { 16, 0, insert_pmrn, extract_pmrn, PPC_OPERAND_GPR }, + /* The RA field in an D, DS, X, XO, M, or MDS form instruction. */ -#define RA NSI + 1 +#define RA PMRN + 1 #define RA_MASK (0x1f << 16) { 5, 16, 0, 0, PPC_OPERAND_GPR }, @@ -505,8 +538,24 @@ const struct powerpc_operand powerpc_ope #define SHB UIMM + 1 { 4, 6, 0, 0, 0 }, + /* The other UIMM field in a EVX form instruction. */ +#define EVUIMM SHB + 1 + { 5, 11, 0, 0, 0 }, + + /* The other UIMM field in a half word EVX form instruction. */ +#define EVUIMM_2 EVUIMM + 1 + { 5, 11, insert_ev2, extract_ev2, PPC_OPERAND_PARENS }, + + /* The other UIMM field in a word EVX form instruction. */ +#define EVUIMM_4 EVUIMM_2 + 1 + { 5, 11, insert_ev4, extract_ev4, PPC_OPERAND_PARENS }, + + /* The other UIMM field in a double EVX form instruction. */ +#define EVUIMM_8 EVUIMM_4 + 1 + { 8, 11, insert_ev8, extract_ev8, PPC_OPERAND_PARENS }, + /* The WS field. */ -#define WS SHB + 1 +#define WS EVUIMM_8 + 1 #define WS_MASK (0x7 << 11) { 3, 11, 0, 0, 0 }, @@ -829,6 +878,75 @@ extract_boe (insn, dialect, invalid) return value & 0x1e; } +static unsigned long +insert_ev2 (insn, value, dialect, errmsg) + unsigned long insn; + long value; + int dialect ATTRIBUTE_UNUSED; + const char ** errmsg ATTRIBUTE_UNUSED; +{ + if ((value & 1) != 0 && errmsg != NULL) + *errmsg = _("offset not a multiple of 2"); + if ((value > 62) != 0 && errmsg != NULL) + *errmsg = _("offset greater than 62"); + return insn | ((value & 0xf8) << 8); +} + +static long +extract_ev2 (insn, dialect, invalid) + unsigned long insn; + int dialect ATTRIBUTE_UNUSED; + int * invalid ATTRIBUTE_UNUSED; +{ + return (insn >> 8) & 0xf8; +} + +static unsigned long +insert_ev4 (insn, value, dialect, errmsg) + unsigned long insn; + long value; + int dialect ATTRIBUTE_UNUSED; + const char ** errmsg ATTRIBUTE_UNUSED; +{ + if ((value & 3) != 0 && errmsg != NULL) + *errmsg = _("offset not a multiple of 4"); + if ((value > 124) != 0 && errmsg != NULL) + *errmsg = _("offset greater than 124"); + return insn | ((value & 0xf8) << 8); +} + +static long +extract_ev4 (insn, dialect, invalid) + unsigned long insn; + int dialect ATTRIBUTE_UNUSED; + int * invalid ATTRIBUTE_UNUSED; +{ + return (insn >> 8) & 0xf8; +} + +static unsigned long +insert_ev8 (insn, value, dialect, errmsg) + unsigned long insn; + long value; + int dialect ATTRIBUTE_UNUSED; + const char ** errmsg ATTRIBUTE_UNUSED; +{ + if ((value & 7) != 0 && errmsg != NULL) + *errmsg = _("offset not a multiple of 8"); + if ((value > 248) != 0 && errmsg != NULL) + *errmsg = _("offset greater than 248"); + return insn | ((value & 0xf8) << 8); +} + +static long +extract_ev8 (insn, dialect, invalid) + unsigned long insn; + int dialect ATTRIBUTE_UNUSED; + int * invalid ATTRIBUTE_UNUSED; +{ + return (insn >> 8) & 0xf8; +} + /* The DS field in a DS form instruction. This is like D, but the lower two bits are forced to zero. */ @@ -1111,6 +1229,28 @@ extract_nsi (insn, dialect, invalid) return - (((insn & 0xffff) ^ 0x8000) - 0x8000); } +/* The PMRN field in a X form instruction. + This has 5+5 bits switched around. */ + +static unsigned long +insert_pmrn (insn, value, dialect, errmsg) + unsigned long insn; + long value; + int dialect ATTRIBUTE_UNUSED; + const char **errmsg ATTRIBUTE_UNUSED; +{ + return insn | ((value & 0x1f) << 16) | ((value & 0x3e) << 11); +} + +static long +extract_pmrn (insn, dialect, invalid) + unsigned long insn; + int dialect ATTRIBUTE_UNUSED; + int *invalid ATTRIBUTE_UNUSED; +{ + return ((insn >> 16) & 0x1f) | ((insn >> 11) & 0x3e); +} + /* The RA field in a D or X form instruction which is an updating load, which means that the RA field may not be zero and may not equal the RT field. */ @@ -1332,6 +1472,14 @@ extract_tbr (insn, dialect, invalid) #define BBOYBI_MASK (BBOYCB_MASK | BI_MASK) #define BBOATBI_MASK (BBOAT2CB_MASK | BI_MASK) +/* An Context form instruction. */ +#define CTX(op, xop) (OP (op) | (((unsigned long)(xop)) & 0x7)) +#define CTX_MASK CTX(0x3f, 0x7) + +/* An User Context form instruction. */ +#define UCTX(op, xop) (OP (op) | (((unsigned long)(xop)) & 0x1f)) +#define UCTX_MASK UCTX(0x3f, 0x1f) + /* The main opcode mask with the RA field clear. */ #define DRA_MASK (OP_MASK | RA_MASK) @@ -1343,6 +1491,10 @@ extract_tbr (insn, dialect, invalid) #define DEO(op, xop) (OP (op) | ((xop) & 0xf)) #define DE_MASK DEO (0x3e, 0xf) +/* An EVSEL form instruction. */ +#define EVSEL(op, xop) (OP (op) | (((unsigned long)(xop)) & 0xff) << 3) +#define EVSEL_MASK EVSEL(0x3f, 0xff) + /* An M form instruction. */ #define M(op, rc) (OP (op) | ((rc) & 1)) #define M_MASK M (0x3f, 1) @@ -1457,6 +1609,10 @@ extract_tbr (insn, dialect, invalid) #define XFL(op, xop, rc) (OP (op) | ((((unsigned long)(xop)) & 0x3ff) << 1) | (((unsigned long)(rc)) & 1)) #define XFL_MASK (XFL (0x3f, 0x3ff, 1) | (((unsigned long)1) << 25) | (((unsigned long)1) << 16)) +/* An X form isel instruction. */ +#define XISEL(op, xop) (OP (op) | ((((unsigned long)(xop)) & 0x1f) << 1)) +#define XISEL_MASK XISEL(0x3f, 0x1f) + /* An XL form instruction with the LK field set to 0. */ #define XL(op, xop) (OP (op) | ((((unsigned long)(xop)) & 0x3ff) << 1)) @@ -1528,6 +1684,10 @@ extract_tbr (insn, dialect, invalid) /* An X form instruction with everything filled in except the E field. */ #define XE_MASK (0xffff7fff) +/* An X form user context instruction. */ +#define XUC(op, xop) (OP (op) | (((unsigned long)(xop)) & 0x1f)) +#define XUC_MASK XUC(0x3f, 0x1f) + /* The BO encodings used in extended conditional branch mnemonics. */ #define BODNZF (0x0) #define BODNZFP (0x1) @@ -1606,9 +1766,18 @@ extract_tbr (insn, dialect, invalid) #define M601 PPC_OPCODE_POWER | PPC_OPCODE_601 | PPC_OPCODE_ANY #define PWRCOM PPC_OPCODE_POWER | PPC_OPCODE_601 | PPC_OPCODE_COMMON | PPC_OPCODE_ANY #define MFDEC1 PPC_OPCODE_POWER -#define MFDEC2 PPC_OPCODE_PPC | PPC_OPCODE_601 +#define MFDEC2 PPC_OPCODE_PPC | PPC_OPCODE_601 | PPC_OPCODE_BOOKE #define BOOKE PPC_OPCODE_BOOKE #define BOOKE64 PPC_OPCODE_BOOKE64 +#define CLASSIC PPC_OPCODE_CLASSIC +#define PPCSPE PPC_OPCODE_SPE +#define PPCISEL PPC_OPCODE_ISEL +#define PPCEFS PPC_OPCODE_EFS +#define PPCBRLK PPC_OPCODE_BRLOCK +#define PPCPMR PPC_OPCODE_PMR +#define PPCCHLK PPC_OPCODE_CACHELCK +#define PPCCHLK64 PPC_OPCODE_CACHELCK | PPC_OPCODE_BOOKE64 +#define PPCRFMCI PPC_OPCODE_RFMCI /* The opcode table. @@ -1918,6 +2087,310 @@ const struct powerpc_opcode powerpc_opco { "vupklsh", VX(4, 718), VX_MASK, PPCVEC, { VD, VB } }, { "vxor", VX(4, 1220), VX_MASK, PPCVEC, { VD, VA, VB } }, +{ "evaddw", VX(4, 512), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evaddiw", VX(4, 514), VX_MASK, PPCSPE, { RD, RB, UIMM } }, +{ "evsubfw", VX(4, 516), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evsubw", VX(4, 516), VX_MASK, PPCSPE, { RD, RB, RA } }, +{ "evsubifw", VX(4, 518), VX_MASK, PPCSPE, { RD, UIMM, RB } }, +{ "evsubiw", VX(4, 518), VX_MASK, PPCSPE, { RD, RB, UIMM } }, +{ "evabs", VX(4, 520), VX_MASK, PPCSPE, { RD, RA } }, +{ "evneg", VX(4, 521), VX_MASK, PPCSPE, { RD, RA } }, +{ "evextsb", VX(4, 522), VX_MASK, PPCSPE, { RD, RA } }, +{ "evextsh", VX(4, 523), VX_MASK, PPCSPE, { RD, RA } }, +{ "evrndw", VX(4, 524), VX_MASK, PPCSPE, { RD, RA } }, +{ "evcntlzw", VX(4, 525), VX_MASK, PPCSPE, { RD, RA } }, +{ "evcntlsw", VX(4, 526), VX_MASK, PPCSPE, { RD, RA } }, + +{ "brinc", VX(4, 527), VX_MASK, PPCSPE, { RD, RA, RB } }, + +{ "evand", VX(4, 529), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evandc", VX(4, 530), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmr", VX(4, 535), VX_MASK, PPCSPE, { RS, RA, BBA } }, +{ "evor", VX(4, 535), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evorc", VX(4, 539), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evxor", VX(4, 534), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "eveqv", VX(4, 537), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evnand", VX(4, 542), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evnot", VX(4, 536), VX_MASK, PPCSPE, { RS, RA, BBA } }, +{ "evnor", VX(4, 536), VX_MASK, PPCSPE, { RD, RA, RB } }, + +{ "evrlw", VX(4, 552), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evrlwi", VX(4, 554), VX_MASK, PPCSPE, { RD, RA, EVUIMM } }, +{ "evslw", VX(4, 548), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evslwi", VX(4, 550), VX_MASK, PPCSPE, { RD, RA, EVUIMM } }, +{ "evsrws", VX(4, 545), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evsrwu", VX(4, 544), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evsrwis", VX(4, 547), VX_MASK, PPCSPE, { RD, RA, EVUIMM } }, +{ "evsrwiu", VX(4, 546), VX_MASK, PPCSPE, { RD, RA, EVUIMM } }, +{ "evsplati", VX(4, 553), VX_MASK, PPCSPE, { RD, SIMM } }, +{ "evsplatfi", VX(4, 555), VX_MASK, PPCSPE, { RD, SIMM } }, +{ "evmergehi", VX(4, 556), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmergelo", VX(4, 557), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmergehilo",VX(4,558), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmergelohi",VX(4,559), VX_MASK, PPCSPE, { RD, RA, RB } }, + +{ "evcmpgts", VX(4, 561), VX_MASK, PPCSPE, { CRFD, RA, RB } }, +{ "evcmpgtu", VX(4, 560), VX_MASK, PPCSPE, { CRFD, RA, RB } }, +{ "evcmplts", VX(4, 563), VX_MASK, PPCSPE, { CRFD, RA, RB } }, +{ "evcmpltu", VX(4, 562), VX_MASK, PPCSPE, { CRFD, RA, RB } }, +{ "evcmpeq", VX(4, 564), VX_MASK, PPCSPE, { CRFD, RA, RB } }, +{ "evsel", EVSEL(4,79),EVSEL_MASK, PPCSPE, { RD, RA, RB, CRFS } }, + +{ "evldd", VX(4, 769), VX_MASK, PPCSPE, { RS, EVUIMM_8, RA } }, +{ "evlddx", VX(4, 768), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evldw", VX(4, 771), VX_MASK, PPCSPE, { RS, EVUIMM_8, RA } }, +{ "evldwx", VX(4, 770), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evldh", VX(4, 773), VX_MASK, PPCSPE, { RS, EVUIMM_8, RA } }, +{ "evldhx", VX(4, 772), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evlwhe", VX(4, 785), VX_MASK, PPCSPE, { RS, EVUIMM_4, RA } }, +{ "evlwhex", VX(4, 784), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evlwhou", VX(4, 789), VX_MASK, PPCSPE, { RS, EVUIMM_4, RA } }, +{ "evlwhoux", VX(4, 788), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evlwhos", VX(4, 791), VX_MASK, PPCSPE, { RS, EVUIMM_4, RA } }, +{ "evlwhosx", VX(4, 790), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evlwwsplat",VX(4, 793), VX_MASK, PPCSPE, { RS, EVUIMM_4, RA } }, +{ "evlwwsplatx",VX(4, 792), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evlwhsplat",VX(4, 797), VX_MASK, PPCSPE, { RS, EVUIMM_4, RA } }, +{ "evlwhsplatx",VX(4, 796), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evlhhesplat",VX(4, 777), VX_MASK, PPCSPE, { RS, EVUIMM_2, RA } }, +{ "evlhhesplatx",VX(4, 776), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evlhhousplat",VX(4, 781), VX_MASK, PPCSPE, { RS, EVUIMM_2, RA } }, +{ "evlhhousplatx",VX(4, 780), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evlhhossplat",VX(4, 783), VX_MASK, PPCSPE, { RS, EVUIMM_2, RA } }, +{ "evlhhossplatx",VX(4, 782), VX_MASK, PPCSPE, { RS, RA, RB } }, + +{ "evstdd", VX(4, 801), VX_MASK, PPCSPE, { RS, EVUIMM_8, RA } }, +{ "evstddx", VX(4, 800), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evstdw", VX(4, 803), VX_MASK, PPCSPE, { RS, EVUIMM_8, RA } }, +{ "evstdwx", VX(4, 802), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evstdh", VX(4, 805), VX_MASK, PPCSPE, { RS, EVUIMM_8, RA } }, +{ "evstdhx", VX(4, 804), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evstwwe", VX(4, 825), VX_MASK, PPCSPE, { RS, EVUIMM_4, RA } }, +{ "evstwwex", VX(4, 824), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evstwwo", VX(4, 829), VX_MASK, PPCSPE, { RS, EVUIMM_4, RA } }, +{ "evstwwox", VX(4, 828), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evstwhe", VX(4, 817), VX_MASK, PPCSPE, { RS, EVUIMM_4, RA } }, +{ "evstwhex", VX(4, 816), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evstwho", VX(4, 821), VX_MASK, PPCSPE, { RS, EVUIMM_4, RA } }, +{ "evstwhox", VX(4, 820), VX_MASK, PPCSPE, { RS, RA, RB } }, + +{ "evfsabs", VX(4, 644), VX_MASK, PPCSPE, { RD, RA } }, +{ "evfsnabs", VX(4, 645), VX_MASK, PPCSPE, { RD, RA } }, +{ "evfsneg", VX(4, 646), VX_MASK, PPCSPE, { RD, RA } }, +{ "evfsadd", VX(4, 640), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evfssub", VX(4, 641), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evfsmul", VX(4, 648), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evfsdiv", VX(4, 649), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evfscmpgt", VX(4, 652), VX_MASK, PPCSPE, { CRFD, RA, RB } }, +{ "evfscmplt", VX(4, 653), VX_MASK, PPCSPE, { CRFD, RA, RB } }, +{ "evfscmpeq", VX(4, 654), VX_MASK, PPCSPE, { CRFD, RA, RB } }, +{ "evfststgt", VX(4, 668), VX_MASK, PPCSPE, { CRFD, RA, RB } }, +{ "evfststlt", VX(4, 669), VX_MASK, PPCSPE, { CRFD, RA, RB } }, +{ "evfststeq", VX(4, 670), VX_MASK, PPCSPE, { CRFD, RA, RB } }, +{ "evfscfui", VX(4, 656), VX_MASK, PPCSPE, { RD, RB } }, +{ "evfsctuiz", VX(4, 664), VX_MASK, PPCSPE, { RD, RB } }, +{ "evfscfsi", VX(4, 657), VX_MASK, PPCSPE, { RD, RB } }, +{ "evfscfuf", VX(4, 658), VX_MASK, PPCSPE, { RD, RB } }, +{ "evfscfsf", VX(4, 659), VX_MASK, PPCSPE, { RD, RB } }, +{ "evfsctui", VX(4, 660), VX_MASK, PPCSPE, { RD, RB } }, +{ "evfsctsi", VX(4, 661), VX_MASK, PPCSPE, { RD, RB } }, +{ "evfsctsiz", VX(4, 666), VX_MASK, PPCSPE, { RD, RB } }, +{ "evfsctuf", VX(4, 662), VX_MASK, PPCSPE, { RD, RB } }, +{ "evfsctsf", VX(4, 663), VX_MASK, PPCSPE, { RD, RB } }, + +{ "efsabs", VX(4, 708), VX_MASK, PPCEFS, { RD, RA } }, +{ "efsnabs", VX(4, 709), VX_MASK, PPCEFS, { RD, RA } }, +{ "efsneg", VX(4, 710), VX_MASK, PPCEFS, { RD, RA } }, +{ "efsadd", VX(4, 704), VX_MASK, PPCEFS, { RD, RA, RB } }, +{ "efssub", VX(4, 705), VX_MASK, PPCEFS, { RD, RA, RB } }, +{ "efsmul", VX(4, 712), VX_MASK, PPCEFS, { RD, RA, RB } }, +{ "efsdiv", VX(4, 713), VX_MASK, PPCEFS, { RD, RA, RB } }, +{ "efscmpgt", VX(4, 716), VX_MASK, PPCEFS, { CRFD, RA, RB } }, +{ "efscmplt", VX(4, 717), VX_MASK, PPCEFS, { CRFD, RA, RB } }, +{ "efscmpeq", VX(4, 718), VX_MASK, PPCEFS, { CRFD, RA, RB } }, +{ "efststgt", VX(4, 732), VX_MASK, PPCEFS, { CRFD, RA, RB } }, +{ "efststlt", VX(4, 733), VX_MASK, PPCEFS, { CRFD, RA, RB } }, +{ "efststeq", VX(4, 734), VX_MASK, PPCEFS, { CRFD, RA, RB } }, +{ "efscfui", VX(4, 720), VX_MASK, PPCEFS, { RD, RB } }, +{ "efsctuiz", VX(4, 728), VX_MASK, PPCEFS, { RD, RB } }, +{ "efscfsi", VX(4, 721), VX_MASK, PPCEFS, { RD, RB } }, +{ "efscfuf", VX(4, 722), VX_MASK, PPCEFS, { RD, RB } }, +{ "efscfsf", VX(4, 723), VX_MASK, PPCEFS, { RD, RB } }, +{ "efsctui", VX(4, 724), VX_MASK, PPCEFS, { RD, RB } }, +{ "efsctsi", VX(4, 725), VX_MASK, PPCEFS, { RD, RB } }, +{ "efsctsiz", VX(4, 730), VX_MASK, PPCEFS, { RD, RB } }, +{ "efsctuf", VX(4, 726), VX_MASK, PPCEFS, { RD, RB } }, +{ "efsctsf", VX(4, 727), VX_MASK, PPCEFS, { RD, RB } }, + +{ "evsabs", VX(4, 708), VX_MASK, PPCSPE, { RD, RA } }, +{ "evsnabs", VX(4, 709), VX_MASK, PPCSPE, { RD, RA } }, +{ "evsneg", VX(4, 710), VX_MASK, PPCSPE, { RD, RA } }, +{ "evsadd", VX(4, 704), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evssub", VX(4, 705), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evsmul", VX(4, 712), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evsdiv", VX(4, 713), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evscmpgt", VX(4, 716), VX_MASK, PPCSPE, { CRFD, RA, RB } }, +{ "evsgmplt", VX(4, 717), VX_MASK, PPCSPE, { CRFD, RA, RB } }, +{ "evsgmpeq", VX(4, 718), VX_MASK, PPCSPE, { CRFD, RA, RB } }, +{ "evststgt", VX(4, 732), VX_MASK, PPCSPE, { CRFD, RA, RB } }, +{ "evststlt", VX(4, 733), VX_MASK, PPCSPE, { CRFD, RA, RB } }, +{ "evststeq", VX(4, 734), VX_MASK, PPCSPE, { CRFD, RA, RB } }, +{ "evscfui", VX(4, 720), VX_MASK, PPCSPE, { RD, RB } }, +{ "evscfsi", VX(4, 721), VX_MASK, PPCSPE, { RD, RB } }, +{ "evscfuf", VX(4, 722), VX_MASK, PPCSPE, { RD, RB } }, +{ "evscfsf", VX(4, 723), VX_MASK, PPCSPE, { RD, RB } }, +{ "evsctui", VX(4, 724), VX_MASK, PPCSPE, { RD, RB } }, +{ "evsctuiz", VX(4, 728), VX_MASK, PPCSPE, { RD, RB } }, +{ "evsctsi", VX(4, 725), VX_MASK, PPCSPE, { RD, RB } }, +{ "evsctsiz", VX(4, 730), VX_MASK, PPCSPE, { RD, RB } }, +{ "evsctuf", VX(4, 726), VX_MASK, PPCSPE, { RD, RB } }, +{ "evsctsf", VX(4, 727), VX_MASK, PPCSPE, { RD, RB } }, + +{ "evmhossf", VX(4, 1031), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmhossfa", VX(4, 1063), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmhosmf", VX(4, 1039), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmhosmfa", VX(4, 1071), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmhosmi", VX(4, 1037), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmhosmia", VX(4, 1069), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmhoumi", VX(4, 1036), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmhoumia", VX(4, 1068), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmhessf", VX(4, 1027), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmhessfa", VX(4, 1059), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmhesmf", VX(4, 1035), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmhesmfa", VX(4, 1067), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmhesmi", VX(4, 1033), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmhesmia", VX(4, 1065), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmheumi", VX(4, 1032), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmheumia", VX(4, 1064), VX_MASK, PPCSPE, { RD, RA, RB } }, + +{ "evmhossfaaw",VX(4, 1287), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmhossiaaw",VX(4, 1285), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmhosmfaaw",VX(4, 1295), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmhosmiaaw",VX(4, 1293), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmhousiaaw",VX(4, 1284), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmhoumiaaw",VX(4, 1292), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmhessfaaw",VX(4, 1283), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmhessiaaw",VX(4, 1281), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmhesmfaaw",VX(4, 1291), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmhesmiaaw",VX(4, 1289), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmheusiaaw",VX(4, 1280), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmheumiaaw",VX(4, 1288), VX_MASK, PPCSPE, { RD, RA, RB } }, + +{ "evmhossfanw",VX(4, 1415), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmhossianw",VX(4, 1413), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmhosmfanw",VX(4, 1423), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmhosmianw",VX(4, 1421), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmhousianw",VX(4, 1412), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmhoumianw",VX(4, 1420), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmhessfanw",VX(4, 1411), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmhessianw",VX(4, 1409), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmhesmfanw",VX(4, 1419), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmhesmianw",VX(4, 1417), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmheusianw",VX(4, 1408), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmheumianw",VX(4, 1416), VX_MASK, PPCSPE, { RD, RA, RB } }, + +{ "evmhogsmfaa",VX(4, 1327), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmhogsmiaa",VX(4, 1325), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmhogumiaa",VX(4, 1324), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmhegsmfaa",VX(4, 1323), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmhegsmiaa",VX(4, 1321), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmhegumiaa",VX(4, 1320), VX_MASK, PPCSPE, { RD, RA, RB } }, + +{ "evmhogsmfan",VX(4, 1455), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmhogsmian",VX(4, 1453), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmhogumian",VX(4, 1452), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmhegsmfan",VX(4, 1451), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmhegsmian",VX(4, 1449), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmhegumian",VX(4, 1448), VX_MASK, PPCSPE, { RD, RA, RB } }, + +{ "evmwhssf", VX(4, 1095), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwhssfa", VX(4, 1127), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwhsmf", VX(4, 1103), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwhsmfa", VX(4, 1135), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwhsmi", VX(4, 1101), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwhsmia", VX(4, 1133), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwhumi", VX(4, 1100), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwhumia", VX(4, 1132), VX_MASK, PPCSPE, { RD, RA, RB } }, + +{ "evmwlssf", VX(4, 1091), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwlssfa", VX(4, 1123), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwlsmf", VX(4, 1099), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwlsmfa", VX(4, 1131), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwlumi", VX(4, 1096), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwlumia", VX(4, 1128), VX_MASK, PPCSPE, { RD, RA, RB } }, + +{ "evmwhssfaa",VX(4, 1351), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwhssmaa",VX(4, 1349), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwhsmfaa",VX(4, 1359), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwhsmiaa",VX(4, 1357), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwhusiaa",VX(4, 1348), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwhumiaa",VX(4, 1356), VX_MASK, PPCSPE, { RD, RA, RB } }, + +{ "evmwlssfaaw",VX(4, 1347), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwlssiaaw",VX(4, 1345), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwlsmfaaw",VX(4, 1355), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwlsmiaaw",VX(4, 1353), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwlusiaaw",VX(4, 1344), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwlumiaaw",VX(4, 1352), VX_MASK, PPCSPE, { RD, RA, RB } }, + +{ "evmwhssfan",VX(4, 1479), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwhssian",VX(4, 1477), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwhsmfan",VX(4, 1487), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwhsmian",VX(4, 1485), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwhusian",VX(4, 1476), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwhumian",VX(4, 1484), VX_MASK, PPCSPE, { RD, RA, RB } }, + +{ "evmwlssfanw",VX(4, 1475), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwlssianw",VX(4, 1473), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwlsmfanw",VX(4, 1483), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwlsmianw",VX(4, 1481), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwlusianw",VX(4, 1472), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwlumianw",VX(4, 1480), VX_MASK, PPCSPE, { RD, RA, RB } }, + +{ "evmwhgssfaa",VX(4, 1383), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwhgsmfaa",VX(4, 1391), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwhgsmiaa",VX(4, 1381), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwhgumiaa",VX(4, 1380), VX_MASK, PPCSPE, { RD, RA, RB } }, + +{ "evmwhgssfan",VX(4, 1511), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwhgsmfan",VX(4, 1519), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwhgsmian",VX(4, 1509), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwhgumian",VX(4, 1508), VX_MASK, PPCSPE, { RD, RA, RB } }, + +{ "evmwssf", VX(4, 1107), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwssfa", VX(4, 1139), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwsmf", VX(4, 1115), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwsmfa", VX(4, 1147), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwsmi", VX(4, 1113), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwsmia", VX(4, 1145), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwumi", VX(4, 1112), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwumia", VX(4, 1144), VX_MASK, PPCSPE, { RD, RA, RB } }, + +{ "evmwssfaa", VX(4, 1363), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwsmfaa", VX(4, 1371), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwsmiaa", VX(4, 1369), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwumiaa", VX(4, 1368), VX_MASK, PPCSPE, { RD, RA, RB } }, + +{ "evmwssfan", VX(4, 1491), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwsmfan", VX(4, 1499), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwsmian", VX(4, 1497), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evmwumian", VX(4, 1496), VX_MASK, PPCSPE, { RD, RA, RB } }, + +{ "evaddssiaaw",VX(4, 1217), VX_MASK, PPCSPE, { RD, RA } }, +{ "evaddsmiaaw",VX(4, 1225), VX_MASK, PPCSPE, { RD, RA } }, +{ "evaddusiaaw",VX(4, 1216), VX_MASK, PPCSPE, { RD, RA } }, +{ "evaddumiaaw",VX(4, 1224), VX_MASK, PPCSPE, { RD, RA } }, + +{ "evsubfssiaaw",VX(4, 1219), VX_MASK, PPCSPE, { RD, RA } }, +{ "evsubfsmiaaw",VX(4, 1227), VX_MASK, PPCSPE, { RD, RA } }, +{ "evsubfusiaaw",VX(4, 1218), VX_MASK, PPCSPE, { RD, RA } }, +{ "evsubfumiaaw",VX(4, 1226), VX_MASK, PPCSPE, { RD, RA } }, + +{ "evmra", VX(4, 1220), VX_MASK, PPCSPE, { RD, RA } }, + +{ "evdivws", VX(4, 1222), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evdivwu", VX(4, 1223), VX_MASK, PPCSPE, { RD, RA, RB } }, + { "mulli", OP(7), OP_MASK, PPCCOM, { RT, RA, SI } }, { "muli", OP(7), OP_MASK, PWRCOM, { RT, RA, SI } }, @@ -2467,6 +2940,8 @@ const struct powerpc_opcode powerpc_opco { "crnot", XL(19,33), XL_MASK, PPCCOM, { BT, BA, BBA } }, { "crnor", XL(19,33), XL_MASK, COM, { BT, BA, BB } }, +{ "rfmci", X(19,38), 0xffffffff, PPCRFMCI, { 0 } }, + { "rfi", XL(19,50), 0xffffffff, COM, { 0 } }, { "rfci", XL(19,51), 0xffffffff, PPC403, { 0 } }, @@ -2785,6 +3260,11 @@ const struct powerpc_opcode powerpc_opco { "mulhwu", XO(31,11,0,0), XO_MASK, PPC, { RT, RA, RB } }, { "mulhwu.", XO(31,11,0,1), XO_MASK, PPC, { RT, RA, RB } }, +{ "isellt", X(31,15), X_MASK, PPCISEL, { RT, RA, RB } }, +{ "iselgt", X(31,47), X_MASK, PPCISEL, { RT, RA, RB } }, +{ "iseleq", X(31,79), X_MASK, PPCISEL, { RT, RA, RB } }, +{ "isel", XISEL(31,15), XISEL_MASK, PPCISEL, { RT, RA, RB, CRB } }, + { "mfcr", X(31,19), XRARB_MASK, COM, { RT } }, { "lwarx", X(31,20), X_MASK, PPC, { RT, RA, RB } }, @@ -2914,6 +3394,8 @@ const struct powerpc_opcode powerpc_opco { "wrtee", X(31,131), XRARB_MASK, PPC403, { RS } }, { "wrtee", X(31,131), XRARB_MASK, BOOKE, { RS } }, +{ "dcbtstls",X(31,134), X_MASK, PPCCHLK, { CT, RA, RB }}, + { "subfe", XO(31,136,0,0), XO_MASK, PPCCOM, { RT, RA, RB } }, { "sfe", XO(31,136,0,0), XO_MASK, PWRCOM, { RT, RA, RB } }, { "subfe.", XO(31,136,0,1), XO_MASK, PPCCOM, { RT, RA, RB } }, @@ -2932,6 +3414,8 @@ const struct powerpc_opcode powerpc_opco { "addeo.", XO(31,138,1,1), XO_MASK, PPCCOM, { RT, RA, RB } }, { "aeo.", XO(31,138,1,1), XO_MASK, PWRCOM, { RT, RA, RB } }, +{ "dcbtstlse",X(31,142),X_MASK, PPCCHLK64, { CT, RA, RB }}, + { "mtcr", XFXM(31,144,0xff), XFXFXM_MASK|FXM_MASK, COM, { RS }}, { "mtcrf", X(31,144), XFXFXM_MASK, COM, { FXM, RS } }, @@ -2957,6 +3441,9 @@ const struct powerpc_opcode powerpc_opco { "wrteei", X(31,163), XE_MASK, PPC403, { E } }, { "wrteei", X(31,163), XE_MASK, BOOKE, { E } }, +{ "dcbtls", X(31,166), X_MASK, PPCCHLK, { CT, RA, RB }}, +{ "dcbtlse", X(31,174), X_MASK, PPCCHLK64, { CT, RA, RB }}, + { "mtmsrd", X(31,178), XRLARB_MASK, PPC64, { RS, MTMSRD_L } }, { "stdux", X(31,181), X_MASK, PPC64, { RS, RAS, RB } }, @@ -3001,6 +3488,8 @@ const struct powerpc_opcode powerpc_opco { "stbxe", X(31,223), X_MASK, BOOKE64, { RS, RA, RB } }, +{ "icblc", X(31,230), X_MASK, PPCCHLK, { CT, RA, RB }}, + { "subfme", XO(31,232,0,0), XORB_MASK, PPCCOM, { RT, RA } }, { "sfme", XO(31,232,0,0), XORB_MASK, PWRCOM, { RT, RA } }, { "subfme.", XO(31,232,0,1), XORB_MASK, PPCCOM, { RT, RA } }, @@ -3033,6 +3522,7 @@ const struct powerpc_opcode powerpc_opco { "mullwo.", XO(31,235,1,1), XO_MASK, PPCCOM, { RT, RA, RB } }, { "mulso.", XO(31,235,1,1), XO_MASK, PWRCOM, { RT, RA, RB } }, +{ "icblce", X(31,238), X_MASK, PPCCHLK64, { CT, RA, RB }}, { "mtsrin", X(31,242), XRA_MASK, PPC32, { RS, RB } }, { "mtsri", X(31,242), XRA_MASK, POWER32, { RS, RB } }, @@ -3095,19 +3585,19 @@ const struct powerpc_opcode powerpc_opco { "lhzuxe", X(31,319), X_MASK, BOOKE64, { RT, RAL, RB } }, -{ "mfexisr", XSPR(31,323,64), XSPR_MASK, PPC403, { RT } }, -{ "mfexier", XSPR(31,323,66), XSPR_MASK, PPC403, { RT } }, -{ "mfbr0", XSPR(31,323,128), XSPR_MASK, PPC403, { RT } }, -{ "mfbr1", XSPR(31,323,129), XSPR_MASK, PPC403, { RT } }, -{ "mfbr2", XSPR(31,323,130), XSPR_MASK, PPC403, { RT } }, -{ "mfbr3", XSPR(31,323,131), XSPR_MASK, PPC403, { RT } }, -{ "mfbr4", XSPR(31,323,132), XSPR_MASK, PPC403, { RT } }, -{ "mfbr5", XSPR(31,323,133), XSPR_MASK, PPC403, { RT } }, -{ "mfbr6", XSPR(31,323,134), XSPR_MASK, PPC403, { RT } }, -{ "mfbr7", XSPR(31,323,135), XSPR_MASK, PPC403, { RT } }, -{ "mfbear", XSPR(31,323,144), XSPR_MASK, PPC403, { RT } }, -{ "mfbesr", XSPR(31,323,145), XSPR_MASK, PPC403, { RT } }, -{ "mfiocr", XSPR(31,323,160), XSPR_MASK, PPC403, { RT } }, +{ "mfexisr", XSPR(31,323,64), XSPR_MASK, PPC403, { RT } }, +{ "mfexier", XSPR(31,323,66), XSPR_MASK, PPC403, { RT } }, +{ "mfbr0", XSPR(31,323,128), XSPR_MASK, PPC403, { RT } }, +{ "mfbr1", XSPR(31,323,129), XSPR_MASK, PPC403, { RT } }, +{ "mfbr2", XSPR(31,323,130), XSPR_MASK, PPC403, { RT } }, +{ "mfbr3", XSPR(31,323,131), XSPR_MASK, PPC403, { RT } }, +{ "mfbr4", XSPR(31,323,132), XSPR_MASK, PPC403, { RT } }, +{ "mfbr5", XSPR(31,323,133), XSPR_MASK, PPC403, { RT } }, +{ "mfbr6", XSPR(31,323,134), XSPR_MASK, PPC403, { RT } }, +{ "mfbr7", XSPR(31,323,135), XSPR_MASK, PPC403, { RT } }, +{ "mfbear", XSPR(31,323,144), XSPR_MASK, PPC403, { RT } }, +{ "mfbesr", XSPR(31,323,145), XSPR_MASK, PPC403, { RT } }, +{ "mfiocr", XSPR(31,323,160), XSPR_MASK, PPC403, { RT } }, { "mfdmacr0", XSPR(31,323,192), XSPR_MASK, PPC403, { RT } }, { "mfdmact0", XSPR(31,323,193), XSPR_MASK, PPC403, { RT } }, { "mfdmada0", XSPR(31,323,194), XSPR_MASK, PPC403, { RT } }, @@ -3128,102 +3618,148 @@ const struct powerpc_opcode powerpc_opco { "mfdmada3", XSPR(31,323,218), XSPR_MASK, PPC403, { RT } }, { "mfdmasa3", XSPR(31,323,219), XSPR_MASK, PPC403, { RT } }, { "mfdmacc3", XSPR(31,323,220), XSPR_MASK, PPC403, { RT } }, -{ "mfdmasr", XSPR(31,323,224), XSPR_MASK, PPC403, { RT } }, -{ "mfdcr", X(31,323), X_MASK, PPC403, { RT, SPR } }, -{ "mfdcr", X(31,323), X_MASK, BOOKE, { RT, SPR } }, +{ "mfdmasr", XSPR(31,323,224), XSPR_MASK, PPC403, { RT } }, +{ "mfdcr", X(31,323), X_MASK, PPC403, { RT, SPR } }, +{ "mfdcr", X(31,323), X_MASK, BOOKE, { RT, SPR } }, { "div", XO(31,331,0,0), XO_MASK, M601, { RT, RA, RB } }, { "div.", XO(31,331,0,1), XO_MASK, M601, { RT, RA, RB } }, { "divo", XO(31,331,1,0), XO_MASK, M601, { RT, RA, RB } }, { "divo.", XO(31,331,1,1), XO_MASK, M601, { RT, RA, RB } }, -{ "mfmq", XSPR(31,339,0), XSPR_MASK, M601, { RT } }, -{ "mfxer", XSPR(31,339,1), XSPR_MASK, COM, { RT } }, -{ "mfrtcu", XSPR(31,339,4), XSPR_MASK, COM, { RT } }, -{ "mfrtcl", XSPR(31,339,5), XSPR_MASK, COM, { RT } }, -{ "mfdec", XSPR(31,339,6), XSPR_MASK, MFDEC1, { RT } }, -{ "mflr", XSPR(31,339,8), XSPR_MASK, COM, { RT } }, -{ "mfctr", XSPR(31,339,9), XSPR_MASK, COM, { RT } }, -{ "mftid", XSPR(31,339,17), XSPR_MASK, POWER, { RT } }, -{ "mfdsisr", XSPR(31,339,18), XSPR_MASK, COM, { RT } }, -{ "mfdar", XSPR(31,339,19), XSPR_MASK, COM, { RT } }, -{ "mfdec", XSPR(31,339,22), XSPR_MASK, MFDEC2, { RT } }, -{ "mfsdr0", XSPR(31,339,24), XSPR_MASK, POWER, { RT } }, -{ "mfsdr1", XSPR(31,339,25), XSPR_MASK, COM, { RT } }, -{ "mfsrr0", XSPR(31,339,26), XSPR_MASK, COM, { RT } }, -{ "mfsrr1", XSPR(31,339,27), XSPR_MASK, COM, { RT } }, -{ "mfcmpa", XSPR(31,339,144), XSPR_MASK, PPC860, { RT } }, -{ "mfcmpb", XSPR(31,339,145), XSPR_MASK, PPC860, { RT } }, -{ "mfcmpc", XSPR(31,339,146), XSPR_MASK, PPC860, { RT } }, -{ "mfcmpd", XSPR(31,339,147), XSPR_MASK, PPC860, { RT } }, -{ "mficr", XSPR(31,339,148), XSPR_MASK, PPC860, { RT } }, -{ "mfder", XSPR(31,339,149), XSPR_MASK, PPC860, { RT } }, -{ "mfcounta", XSPR(31,339,150), XSPR_MASK, PPC860, { RT } }, -{ "mfcountb", XSPR(31,339,151), XSPR_MASK, PPC860, { RT } }, -{ "mfcmpe", XSPR(31,339,152), XSPR_MASK, PPC860, { RT } }, -{ "mfcmpf", XSPR(31,339,153), XSPR_MASK, PPC860, { RT } }, -{ "mfcmpg", XSPR(31,339,154), XSPR_MASK, PPC860, { RT } }, -{ "mfcmph", XSPR(31,339,155), XSPR_MASK, PPC860, { RT } }, -{ "mflctrl1", XSPR(31,339,156), XSPR_MASK, PPC860, { RT } }, -{ "mflctrl2", XSPR(31,339,157), XSPR_MASK, PPC860, { RT } }, -{ "mfictrl", XSPR(31,339,158), XSPR_MASK, PPC860, { RT } }, -{ "mfbar", XSPR(31,339,159), XSPR_MASK, PPC860, { RT } }, -{ "mfvrsave", XSPR(31,339,256), XSPR_MASK, PPCVEC, { RT } }, -{ "mfsprg4", XSPR(31,339,260), XSPR_MASK, PPC405, { RT } }, -{ "mfsprg5", XSPR(31,339,261), XSPR_MASK, PPC405, { RT } }, -{ "mfsprg6", XSPR(31,339,262), XSPR_MASK, PPC405, { RT } }, -{ "mfsprg7", XSPR(31,339,263), XSPR_MASK, PPC405, { RT } }, -{ "mfsprg", XSPR(31,339,272), XSPRG_MASK, PPC, { RT, SPRG } }, -{ "mfsprg0", XSPR(31,339,272), XSPR_MASK, PPC, { RT } }, -{ "mfsprg1", XSPR(31,339,273), XSPR_MASK, PPC, { RT } }, -{ "mfsprg2", XSPR(31,339,274), XSPR_MASK, PPC, { RT } }, -{ "mfsprg3", XSPR(31,339,275), XSPR_MASK, PPC, { RT } }, -{ "mfasr", XSPR(31,339,280), XSPR_MASK, PPC64, { RT } }, -{ "mfear", XSPR(31,339,282), XSPR_MASK, PPC, { RT } }, -{ "mfpvr", XSPR(31,339,287), XSPR_MASK, PPC, { RT } }, -{ "mfibatu", XSPR(31,339,528), XSPRBAT_MASK, PPC, { RT, SPRBAT } }, -{ "mfibatl", XSPR(31,339,529), XSPRBAT_MASK, PPC, { RT, SPRBAT } }, -{ "mfdbatu", XSPR(31,339,536), XSPRBAT_MASK, PPC, { RT, SPRBAT } }, -{ "mfdbatl", XSPR(31,339,537), XSPRBAT_MASK, PPC, { RT, SPRBAT } }, -{ "mfic_cst", XSPR(31,339,560), XSPR_MASK, PPC860, { RT } }, -{ "mfic_adr", XSPR(31,339,561), XSPR_MASK, PPC860, { RT } }, -{ "mfic_dat", XSPR(31,339,562), XSPR_MASK, PPC860, { RT } }, -{ "mfdc_cst", XSPR(31,339,568), XSPR_MASK, PPC860, { RT } }, -{ "mfdc_adr", XSPR(31,339,569), XSPR_MASK, PPC860, { RT } }, -{ "mfdc_dat", XSPR(31,339,570), XSPR_MASK, PPC860, { RT } }, -{ "mfdpdr", XSPR(31,339,630), XSPR_MASK, PPC860, { RT } }, -{ "mfdpir", XSPR(31,339,631), XSPR_MASK, PPC860, { RT } }, -{ "mfimmr", XSPR(31,339,638), XSPR_MASK, PPC860, { RT } }, -{ "mfmi_ctr", XSPR(31,339,784), XSPR_MASK, PPC860, { RT } }, -{ "mfmi_ap", XSPR(31,339,786), XSPR_MASK, PPC860, { RT } }, -{ "mfmi_epn", XSPR(31,339,787), XSPR_MASK, PPC860, { RT } }, -{ "mfmi_twc", XSPR(31,339,789), XSPR_MASK, PPC860, { RT } }, -{ "mfmi_rpn", XSPR(31,339,790), XSPR_MASK, PPC860, { RT } }, -{ "mfmd_ctr", XSPR(31,339,792), XSPR_MASK, PPC860, { RT } }, -{ "mfm_casid",XSPR(31,339,793), XSPR_MASK, PPC860, { RT } }, -{ "mfmd_ap", XSPR(31,339,794), XSPR_MASK, PPC860, { RT } }, -{ "mfmd_epn", XSPR(31,339,795), XSPR_MASK, PPC860, { RT } }, -{ "mfmd_twb", XSPR(31,339,796), XSPR_MASK, PPC860, { RT } }, -{ "mfmd_twc", XSPR(31,339,797), XSPR_MASK, PPC860, { RT } }, -{ "mfmd_rpn", XSPR(31,339,798), XSPR_MASK, PPC860, { RT } }, -{ "mfm_tw", XSPR(31,339,799), XSPR_MASK, PPC860, { RT } }, -{ "mfmi_dbcam",XSPR(31,339,816), XSPR_MASK, PPC860, { RT } }, -{ "mfmi_dbram0",XSPR(31,339,817), XSPR_MASK, PPC860, { RT } }, -{ "mfmi_dbram1",XSPR(31,339,818), XSPR_MASK, PPC860, { RT } }, -{ "mfmd_dbcam", XSPR(31,339,824), XSPR_MASK, PPC860, { RT } }, -{ "mfmd_dbram0",XSPR(31,339,825), XSPR_MASK, PPC860, { RT } }, -{ "mfmd_dbram1",XSPR(31,339,826), XSPR_MASK, PPC860, { RT } }, -{ "mfzpr", XSPR(31,339,944), XSPR_MASK, PPC403, { RT } }, -{ "mfpid", XSPR(31,339,945), XSPR_MASK, PPC403, { RT } }, -{ "mfccr0", XSPR(31,339,947), XSPR_MASK, PPC405, { RT } }, -{ "mficdbdr", XSPR(31,339,979), XSPR_MASK, PPC403, { RT } }, -{ "mfummcr0", XSPR(31,339,936), XSPR_MASK, PPC750, { RT } }, -{ "mfupmc1", XSPR(31,339,937), XSPR_MASK, PPC750, { RT } }, -{ "mfupmc2", XSPR(31,339,938), XSPR_MASK, PPC750, { RT } }, -{ "mfusia", XSPR(31,339,939), XSPR_MASK, PPC750, { RT } }, -{ "mfummcr1", XSPR(31,339,940), XSPR_MASK, PPC750, { RT } }, -{ "mfupmc3", XSPR(31,339,941), XSPR_MASK, PPC750, { RT } }, -{ "mfupmc4", XSPR(31,339,942), XSPR_MASK, PPC750, { RT } }, +{ "mfpmr", X(31,334), X_MASK, PPCPMR, { RT, PMRN }}, + +{ "mfmq", XSPR(31,339,0), XSPR_MASK, M601, { RT } }, +{ "mfxer", XSPR(31,339,1), XSPR_MASK, COM, { RT } }, +{ "mfrtcu", XSPR(31,339,4), XSPR_MASK, COM, { RT } }, +{ "mfrtcl", XSPR(31,339,5), XSPR_MASK, COM, { RT } }, +{ "mfdec", XSPR(31,339,6), XSPR_MASK, MFDEC1, { RT } }, +{ "mflr", XSPR(31,339,8), XSPR_MASK, COM, { RT } }, +{ "mfctr", XSPR(31,339,9), XSPR_MASK, COM, { RT } }, +{ "mftid", XSPR(31,339,17), XSPR_MASK, POWER, { RT } }, +{ "mfdsisr", XSPR(31,339,18), XSPR_MASK, COM, { RT } }, +{ "mfdar", XSPR(31,339,19), XSPR_MASK, COM, { RT } }, +{ "mfdec", XSPR(31,339,22), XSPR_MASK, MFDEC2, { RT } }, +{ "mfsdr0", XSPR(31,339,24), XSPR_MASK, POWER, { RT } }, +{ "mfsdr1", XSPR(31,339,25), XSPR_MASK, COM, { RT } }, +{ "mfsrr0", XSPR(31,339,26), XSPR_MASK, COM, { RT } }, +{ "mfsrr1", XSPR(31,339,27), XSPR_MASK, COM, { RT } }, +{ "mfpid", XSPR(31,339,48), XSPR_MASK, BOOKE, { RT } }, +{ "mfcsrr0", XSPR(31,339,58), XSPR_MASK, BOOKE, { RT } }, +{ "mfcsrr1", XSPR(31,339,59), XSPR_MASK, BOOKE, { RT } }, +{ "mfdear", XSPR(31,339,61), XSPR_MASK, BOOKE, { RT } }, +{ "mfesr", XSPR(31,339,62), XSPR_MASK, BOOKE, { RT } }, +{ "mfivpr", XSPR(31,339,63), XSPR_MASK, BOOKE, { RT } }, +{ "mfcmpa", XSPR(31,339,144), XSPR_MASK, PPC860, { RT } }, +{ "mfcmpb", XSPR(31,339,145), XSPR_MASK, PPC860, { RT } }, +{ "mfcmpc", XSPR(31,339,146), XSPR_MASK, PPC860, { RT } }, +{ "mfcmpd", XSPR(31,339,147), XSPR_MASK, PPC860, { RT } }, +{ "mficr", XSPR(31,339,148), XSPR_MASK, PPC860, { RT } }, +{ "mfder", XSPR(31,339,149), XSPR_MASK, PPC860, { RT } }, +{ "mfcounta", XSPR(31,339,150), XSPR_MASK, PPC860, { RT } }, +{ "mfcountb", XSPR(31,339,151), XSPR_MASK, PPC860, { RT } }, +{ "mfcmpe", XSPR(31,339,152), XSPR_MASK, PPC860, { RT } }, +{ "mfcmpf", XSPR(31,339,153), XSPR_MASK, PPC860, { RT } }, +{ "mfcmpg", XSPR(31,339,154), XSPR_MASK, PPC860, { RT } }, +{ "mfcmph", XSPR(31,339,155), XSPR_MASK, PPC860, { RT } }, +{ "mflctrl1", XSPR(31,339,156), XSPR_MASK, PPC860, { RT } }, +{ "mflctrl2", XSPR(31,339,157), XSPR_MASK, PPC860, { RT } }, +{ "mfictrl", XSPR(31,339,158), XSPR_MASK, PPC860, { RT } }, +{ "mfbar", XSPR(31,339,159), XSPR_MASK, PPC860, { RT } }, +{ "mfvrsave", XSPR(31,339,256), XSPR_MASK, PPCVEC, { RT } }, +{ "mfusprg0", XSPR(31,339,256), XSPR_MASK, BOOKE, { RT } }, +{ "mfsprg4", XSPR(31,339,260), XSPR_MASK, PPC405, { RT } }, +{ "mfsprg5", XSPR(31,339,261), XSPR_MASK, PPC405, { RT } }, +{ "mfsprg6", XSPR(31,339,262), XSPR_MASK, PPC405, { RT } }, +{ "mfsprg7", XSPR(31,339,263), XSPR_MASK, PPC405, { RT } }, +{ "mftbl", XSPR(31,339,268), XSPR_MASK, BOOKE, { RT } }, +{ "mftbu", XSPR(31,339,269), XSPR_MASK, BOOKE, { RT } }, +{ "mfsprg", XSPR(31,339,272), XSPRG_MASK, PPC, { RT, SPRG } }, +{ "mfsprg0", XSPR(31,339,272), XSPR_MASK, PPC, { RT } }, +{ "mfsprg1", XSPR(31,339,273), XSPR_MASK, PPC, { RT } }, +{ "mfsprg2", XSPR(31,339,274), XSPR_MASK, PPC, { RT } }, +{ "mfsprg3", XSPR(31,339,275), XSPR_MASK, PPC, { RT } }, +{ "mfasr", XSPR(31,339,280), XSPR_MASK, PPC64, { RT } }, +{ "mfear", XSPR(31,339,282), XSPR_MASK, PPC, { RT } }, +{ "mfpir", XSPR(31,339,286), XSPR_MASK, BOOKE, { RT } }, +{ "mfpvr", XSPR(31,339,287), XSPR_MASK, PPC, { RT } }, +{ "mfdbsr", XSPR(31,339,304), XSPR_MASK, BOOKE, { RT } }, +{ "mfdbcr0", XSPR(31,339,308), XSPR_MASK, BOOKE, { RT } }, +{ "mfdbcr1", XSPR(31,339,309), XSPR_MASK, BOOKE, { RT } }, +{ "mfdbcr2", XSPR(31,339,310), XSPR_MASK, BOOKE, { RT } }, +{ "mfiac1", XSPR(31,339,312), XSPR_MASK, BOOKE, { RT } }, +{ "mfiac2", XSPR(31,339,313), XSPR_MASK, BOOKE, { RT } }, +{ "mfiac3", XSPR(31,339,314), XSPR_MASK, BOOKE, { RT } }, +{ "mfiac4", XSPR(31,339,315), XSPR_MASK, BOOKE, { RT } }, +{ "mfdac1", XSPR(31,339,316), XSPR_MASK, BOOKE, { RT } }, +{ "mfdac2", XSPR(31,339,317), XSPR_MASK, BOOKE, { RT } }, +{ "mfdvc1", XSPR(31,339,318), XSPR_MASK, BOOKE, { RT } }, +{ "mfdvc2", XSPR(31,339,319), XSPR_MASK, BOOKE, { RT } }, +{ "mftsr", XSPR(31,339,336), XSPR_MASK, BOOKE, { RT } }, +{ "mftcr", XSPR(31,339,340), XSPR_MASK, BOOKE, { RT } }, +{ "mfivor0", XSPR(31,339,400), XSPR_MASK, BOOKE, { RT } }, +{ "mfivor1", XSPR(31,339,401), XSPR_MASK, BOOKE, { RT } }, +{ "mfivor2", XSPR(31,339,402), XSPR_MASK, BOOKE, { RT } }, +{ "mfivor3", XSPR(31,339,403), XSPR_MASK, BOOKE, { RT } }, +{ "mfivor4", XSPR(31,339,404), XSPR_MASK, BOOKE, { RT } }, +{ "mfivor5", XSPR(31,339,405), XSPR_MASK, BOOKE, { RT } }, +{ "mfivor6", XSPR(31,339,406), XSPR_MASK, BOOKE, { RT } }, +{ "mfivor7", XSPR(31,339,407), XSPR_MASK, BOOKE, { RT } }, +{ "mfivor8", XSPR(31,339,408), XSPR_MASK, BOOKE, { RT } }, +{ "mfivor9", XSPR(31,339,409), XSPR_MASK, BOOKE, { RT } }, +{ "mfivor10", XSPR(31,339,410), XSPR_MASK, BOOKE, { RT } }, +{ "mfivor11", XSPR(31,339,411), XSPR_MASK, BOOKE, { RT } }, +{ "mfivor12", XSPR(31,339,412), XSPR_MASK, BOOKE, { RT } }, +{ "mfivor13", XSPR(31,339,413), XSPR_MASK, BOOKE, { RT } }, +{ "mfivor14", XSPR(31,339,414), XSPR_MASK, BOOKE, { RT } }, +{ "mfivor15", XSPR(31,339,415), XSPR_MASK, BOOKE, { RT } }, +{ "mfspefscr", XSPR(31,339,512), XSPR_MASK, PPCSPE, { RT } }, +{ "mfbbear", XSPR(31,339,513), XSPR_MASK, PPCBRLK, { RT } }, +{ "mfibatu", XSPR(31,339,528), XSPRBAT_MASK, PPC, { RT, SPRBAT } }, +{ "mfibatl", XSPR(31,339,529), XSPRBAT_MASK, PPC, { RT, SPRBAT } }, +{ "mfdbatu", XSPR(31,339,536), XSPRBAT_MASK, PPC, { RT, SPRBAT } }, +{ "mfdbatl", XSPR(31,339,537), XSPRBAT_MASK, PPC, { RT, SPRBAT } }, +{ "mfic_cst", XSPR(31,339,560), XSPR_MASK, PPC860, { RT } }, +{ "mfic_adr", XSPR(31,339,561), XSPR_MASK, PPC860, { RT } }, +{ "mfic_dat", XSPR(31,339,562), XSPR_MASK, PPC860, { RT } }, +{ "mfdc_cst", XSPR(31,339,568), XSPR_MASK, PPC860, { RT } }, +{ "mfdc_adr", XSPR(31,339,569), XSPR_MASK, PPC860, { RT } }, +{ "mfdc_dat", XSPR(31,339,570), XSPR_MASK, PPC860, { RT } }, +{ "mfmcsrr0", XSPR(31,339,570), XSPR_MASK, PPCRFMCI, { RT } }, +{ "mfmcsrr1", XSPR(31,339,571), XSPR_MASK, PPCRFMCI, { RT } }, +{ "mfmcsr", XSPR(31,339,572), XSPR_MASK, PPCRFMCI, { RT } }, +{ "mfdpdr", XSPR(31,339,630), XSPR_MASK, PPC860, { RT } }, +{ "mfdpir", XSPR(31,339,631), XSPR_MASK, PPC860, { RT } }, +{ "mfimmr", XSPR(31,339,638), XSPR_MASK, PPC860, { RT } }, +{ "mfmi_ctr", XSPR(31,339,784), XSPR_MASK, PPC860, { RT } }, +{ "mfmi_ap", XSPR(31,339,786), XSPR_MASK, PPC860, { RT } }, +{ "mfmi_epn", XSPR(31,339,787), XSPR_MASK, PPC860, { RT } }, +{ "mfmi_twc", XSPR(31,339,789), XSPR_MASK, PPC860, { RT } }, +{ "mfmi_rpn", XSPR(31,339,790), XSPR_MASK, PPC860, { RT } }, +{ "mfmd_ctr", XSPR(31,339,792), XSPR_MASK, PPC860, { RT } }, +{ "mfm_casid", XSPR(31,339,793), XSPR_MASK, PPC860, { RT } }, +{ "mfmd_ap", XSPR(31,339,794), XSPR_MASK, PPC860, { RT } }, +{ "mfmd_epn", XSPR(31,339,795), XSPR_MASK, PPC860, { RT } }, +{ "mfmd_twb", XSPR(31,339,796), XSPR_MASK, PPC860, { RT } }, +{ "mfmd_twc", XSPR(31,339,797), XSPR_MASK, PPC860, { RT } }, +{ "mfmd_rpn", XSPR(31,339,798), XSPR_MASK, PPC860, { RT } }, +{ "mfm_tw", XSPR(31,339,799), XSPR_MASK, PPC860, { RT } }, +{ "mfmi_dbcam", XSPR(31,339,816), XSPR_MASK, PPC860, { RT } }, +{ "mfmi_dbram0",XSPR(31,339,817), XSPR_MASK, PPC860, { RT } }, +{ "mfmi_dbram1",XSPR(31,339,818), XSPR_MASK, PPC860, { RT } }, +{ "mfmd_dbcam", XSPR(31,339,824), XSPR_MASK, PPC860, { RT } }, +{ "mfmd_dbram0",XSPR(31,339,825), XSPR_MASK, PPC860, { RT } }, +{ "mfmd_dbram1",XSPR(31,339,826), XSPR_MASK, PPC860, { RT } }, +{ "mfummcr0", XSPR(31,339,936), XSPR_MASK, PPC750, { RT } }, +{ "mfupmc1", XSPR(31,339,937), XSPR_MASK, PPC750, { RT } }, +{ "mfupmc2", XSPR(31,339,938), XSPR_MASK, PPC750, { RT } }, +{ "mfusia", XSPR(31,339,939), XSPR_MASK, PPC750, { RT } }, +{ "mfummcr1", XSPR(31,339,940), XSPR_MASK, PPC750, { RT } }, +{ "mfupmc3", XSPR(31,339,941), XSPR_MASK, PPC750, { RT } }, +{ "mfupmc4", XSPR(31,339,942), XSPR_MASK, PPC750, { RT } }, +{ "mfzpr", XSPR(31,339,944), XSPR_MASK, PPC403, { RT } }, +{ "mfpid", XSPR(31,339,945), XSPR_MASK, PPC403, { RT } }, +{ "mfccr0", XSPR(31,339,947), XSPR_MASK, PPC405, { RT } }, { "mfiac3", XSPR(31,339,948), XSPR_MASK, PPC405, { RT } }, { "mfiac4", XSPR(31,339,949), XSPR_MASK, PPC405, { RT } }, { "mfdvc1", XSPR(31,339,950), XSPR_MASK, PPC405, { RT } }, @@ -3240,35 +3776,36 @@ const struct powerpc_opcode powerpc_opco { "mfpmc3", XSPR(31,339,957), XSPR_MASK, PPC750, { RT } }, { "mfdbcr1", XSPR(31,339,957), XSPR_MASK, PPC405, { RT } }, { "mfpmc4", XSPR(31,339,958), XSPR_MASK, PPC750, { RT } }, -{ "mfesr", XSPR(31,339,980), XSPR_MASK, PPC403, { RT } }, -{ "mfdear", XSPR(31,339,981), XSPR_MASK, PPC403, { RT } }, -{ "mfevpr", XSPR(31,339,982), XSPR_MASK, PPC403, { RT } }, -{ "mfcdbcr", XSPR(31,339,983), XSPR_MASK, PPC403, { RT } }, -{ "mftsr", XSPR(31,339,984), XSPR_MASK, PPC403, { RT } }, -{ "mftcr", XSPR(31,339,986), XSPR_MASK, PPC403, { RT } }, -{ "mfpit", XSPR(31,339,987), XSPR_MASK, PPC403, { RT } }, -{ "mftbhi", XSPR(31,339,988), XSPR_MASK, PPC403, { RT } }, -{ "mftblo", XSPR(31,339,989), XSPR_MASK, PPC403, { RT } }, -{ "mfsrr2", XSPR(31,339,990), XSPR_MASK, PPC403, { RT } }, -{ "mfsrr3", XSPR(31,339,991), XSPR_MASK, PPC403, { RT } }, -{ "mfdbsr", XSPR(31,339,1008), XSPR_MASK, PPC403, { RT } }, -{ "mfdbcr0", XSPR(31,339,1010), XSPR_MASK, PPC405, { RT } }, -{ "mfiac1", XSPR(31,339,1012), XSPR_MASK, PPC403, { RT } }, -{ "mfiac2", XSPR(31,339,1013), XSPR_MASK, PPC403, { RT } }, -{ "mfdac1", XSPR(31,339,1014), XSPR_MASK, PPC403, { RT } }, -{ "mfdac2", XSPR(31,339,1015), XSPR_MASK, PPC403, { RT } }, -{ "mfdccr", XSPR(31,339,1018), XSPR_MASK, PPC403, { RT } }, -{ "mficcr", XSPR(31,339,1019), XSPR_MASK, PPC403, { RT } }, -{ "mfpbl1", XSPR(31,339,1020), XSPR_MASK, PPC403, { RT } }, -{ "mfpbu1", XSPR(31,339,1021), XSPR_MASK, PPC403, { RT } }, -{ "mfpbl2", XSPR(31,339,1022), XSPR_MASK, PPC403, { RT } }, -{ "mfpbu2", XSPR(31,339,1023), XSPR_MASK, PPC403, { RT } }, -{ "mfl2cr", XSPR(31,339,1017), XSPR_MASK, PPC750, { RT } }, -{ "mfictc", XSPR(31,339,1019), XSPR_MASK, PPC750, { RT } }, -{ "mfthrm1", XSPR(31,339,1020), XSPR_MASK, PPC750, { RT } }, -{ "mfthrm2", XSPR(31,339,1021), XSPR_MASK, PPC750, { RT } }, -{ "mfthrm3", XSPR(31,339,1022), XSPR_MASK, PPC750, { RT } }, -{ "mfspr", X(31,339), X_MASK, COM, { RT, SPR } }, +{ "mficdbdr", XSPR(31,339,979), XSPR_MASK, PPC403, { RT } }, +{ "mfesr", XSPR(31,339,980), XSPR_MASK, PPC403, { RT } }, +{ "mfdear", XSPR(31,339,981), XSPR_MASK, PPC403, { RT } }, +{ "mfevpr", XSPR(31,339,982), XSPR_MASK, PPC403, { RT } }, +{ "mfcdbcr", XSPR(31,339,983), XSPR_MASK, PPC403, { RT } }, +{ "mftsr", XSPR(31,339,984), XSPR_MASK, PPC403, { RT } }, +{ "mftcr", XSPR(31,339,986), XSPR_MASK, PPC403, { RT } }, +{ "mfpit", XSPR(31,339,987), XSPR_MASK, PPC403, { RT } }, +{ "mftbhi", XSPR(31,339,988), XSPR_MASK, PPC403, { RT } }, +{ "mftblo", XSPR(31,339,989), XSPR_MASK, PPC403, { RT } }, +{ "mfsrr2", XSPR(31,339,990), XSPR_MASK, PPC403, { RT } }, +{ "mfsrr3", XSPR(31,339,991), XSPR_MASK, PPC403, { RT } }, +{ "mfdbsr", XSPR(31,339,1008), XSPR_MASK, PPC403, { RT } }, +{ "mfdbcr0", XSPR(31,339,1010), XSPR_MASK, PPC405, { RT } }, +{ "mfiac1", XSPR(31,339,1012), XSPR_MASK, PPC403, { RT } }, +{ "mfiac2", XSPR(31,339,1013), XSPR_MASK, PPC403, { RT } }, +{ "mfdac1", XSPR(31,339,1014), XSPR_MASK, PPC403, { RT } }, +{ "mfdac2", XSPR(31,339,1015), XSPR_MASK, PPC403, { RT } }, +{ "mfl2cr", XSPR(31,339,1017), XSPR_MASK, PPC750, { RT } }, +{ "mfdccr", XSPR(31,339,1018), XSPR_MASK, PPC403, { RT } }, +{ "mficcr", XSPR(31,339,1019), XSPR_MASK, PPC403, { RT } }, +{ "mfictc", XSPR(31,339,1019), XSPR_MASK, PPC750, { RT } }, +{ "mfpbl1", XSPR(31,339,1020), XSPR_MASK, PPC403, { RT } }, +{ "mfthrm1", XSPR(31,339,1020), XSPR_MASK, PPC750, { RT } }, +{ "mfpbu1", XSPR(31,339,1021), XSPR_MASK, PPC403, { RT } }, +{ "mfthrm2", XSPR(31,339,1021), XSPR_MASK, PPC750, { RT } }, +{ "mfpbl2", XSPR(31,339,1022), XSPR_MASK, PPC403, { RT } }, +{ "mfthrm3", XSPR(31,339,1022), XSPR_MASK, PPC750, { RT } }, +{ "mfpbu2", XSPR(31,339,1023), XSPR_MASK, PPC403, { RT } }, +{ "mfspr", X(31,339), X_MASK, COM, { RT, SPR } }, { "lwax", X(31,341), X_MASK, PPC64, { RT, RA, RB } }, @@ -3296,9 +3833,10 @@ const struct powerpc_opcode powerpc_opco { "tlbia", X(31,370), 0xffffffff, PPC, { 0 } }, -{ "mftbl", XSPR(31,371,268), XSPR_MASK, PPC, { RT } }, -{ "mftbu", XSPR(31,371,269), XSPR_MASK, PPC, { RT } }, -{ "mftb", X(31,371), X_MASK, PPC, { RT, TBR } }, +{ "mftbl", XSPR(31,371,268), XSPR_MASK, CLASSIC, { RT } }, +{ "mftbu", XSPR(31,371,269), XSPR_MASK, CLASSIC, { RT } }, +{ "mftb", X(31,371), X_MASK, BOOKE, { RT, TBR } }, +{ "mftb", X(31,371), X_MASK, CLASSIC, { RT, TBR } }, { "lwaux", X(31,373), X_MASK, PPC64, { RT, RAL, RB } }, @@ -3308,12 +3846,16 @@ const struct powerpc_opcode powerpc_opco { "mtdcrx", X(31,387), X_MASK, BOOKE, { RA, RS } }, +{ "dcblc", X(31,390), X_MASK, PPCCHLK, { CT, RA, RB }}, + { "subfe64", XO(31,392,0,0), XO_MASK, BOOKE64, { RT, RA, RB } }, { "subfe64o",XO(31,392,1,0), XO_MASK, BOOKE64, { RT, RA, RB } }, { "adde64", XO(31,394,0,0), XO_MASK, BOOKE64, { RT, RA, RB } }, { "adde64o", XO(31,394,1,0), XO_MASK, BOOKE64, { RT, RA, RB } }, +{ "dcblce", X(31,398), X_MASK, PPCCHLK64, { CT, RA, RB }}, + { "slbmte", X(31,402), XRA_MASK, PPC64, { RS, RB } }, { "sthx", X(31,407), X_MASK, COM, { RS, RA, RB } }, @@ -3347,19 +3889,19 @@ const struct powerpc_opcode powerpc_opco { "mr.", XRC(31,444,1), X_MASK, COM, { RA, RS, RBS } }, { "or.", XRC(31,444,1), X_MASK, COM, { RA, RS, RB } }, -{ "mtexisr", XSPR(31,451,64), XSPR_MASK, PPC403, { RT } }, -{ "mtexier", XSPR(31,451,66), XSPR_MASK, PPC403, { RT } }, -{ "mtbr0", XSPR(31,451,128), XSPR_MASK, PPC403, { RT } }, -{ "mtbr1", XSPR(31,451,129), XSPR_MASK, PPC403, { RT } }, -{ "mtbr2", XSPR(31,451,130), XSPR_MASK, PPC403, { RT } }, -{ "mtbr3", XSPR(31,451,131), XSPR_MASK, PPC403, { RT } }, -{ "mtbr4", XSPR(31,451,132), XSPR_MASK, PPC403, { RT } }, -{ "mtbr5", XSPR(31,451,133), XSPR_MASK, PPC403, { RT } }, -{ "mtbr6", XSPR(31,451,134), XSPR_MASK, PPC403, { RT } }, -{ "mtbr7", XSPR(31,451,135), XSPR_MASK, PPC403, { RT } }, -{ "mtbear", XSPR(31,451,144), XSPR_MASK, PPC403, { RT } }, -{ "mtbesr", XSPR(31,451,145), XSPR_MASK, PPC403, { RT } }, -{ "mtiocr", XSPR(31,451,160), XSPR_MASK, PPC403, { RT } }, +{ "mtexisr", XSPR(31,451,64), XSPR_MASK, PPC403, { RT } }, +{ "mtexier", XSPR(31,451,66), XSPR_MASK, PPC403, { RT } }, +{ "mtbr0", XSPR(31,451,128), XSPR_MASK, PPC403, { RT } }, +{ "mtbr1", XSPR(31,451,129), XSPR_MASK, PPC403, { RT } }, +{ "mtbr2", XSPR(31,451,130), XSPR_MASK, PPC403, { RT } }, +{ "mtbr3", XSPR(31,451,131), XSPR_MASK, PPC403, { RT } }, +{ "mtbr4", XSPR(31,451,132), XSPR_MASK, PPC403, { RT } }, +{ "mtbr5", XSPR(31,451,133), XSPR_MASK, PPC403, { RT } }, +{ "mtbr6", XSPR(31,451,134), XSPR_MASK, PPC403, { RT } }, +{ "mtbr7", XSPR(31,451,135), XSPR_MASK, PPC403, { RT } }, +{ "mtbear", XSPR(31,451,144), XSPR_MASK, PPC403, { RT } }, +{ "mtbesr", XSPR(31,451,145), XSPR_MASK, PPC403, { RT } }, +{ "mtiocr", XSPR(31,451,160), XSPR_MASK, PPC403, { RT } }, { "mtdmacr0", XSPR(31,451,192), XSPR_MASK, PPC403, { RT } }, { "mtdmact0", XSPR(31,451,193), XSPR_MASK, PPC403, { RT } }, { "mtdmada0", XSPR(31,451,194), XSPR_MASK, PPC403, { RT } }, @@ -3380,9 +3922,9 @@ const struct powerpc_opcode powerpc_opco { "mtdmada3", XSPR(31,451,218), XSPR_MASK, PPC403, { RT } }, { "mtdmasa3", XSPR(31,451,219), XSPR_MASK, PPC403, { RT } }, { "mtdmacc3", XSPR(31,451,220), XSPR_MASK, PPC403, { RT } }, -{ "mtdmasr", XSPR(31,451,224), XSPR_MASK, PPC403, { RT } }, -{ "mtdcr", X(31,451), X_MASK, PPC403, { SPR, RS } }, -{ "mtdcr", X(31,451), X_MASK, BOOKE, { SPR, RS } }, +{ "mtdmasr", XSPR(31,451,224), XSPR_MASK, PPC403, { RT } }, +{ "mtdcr", X(31,451), X_MASK, PPC403, { SPR, RS } }, +{ "mtdcr", X(31,451), X_MASK, BOOKE, { SPR, RS } }, { "subfze64",XO(31,456,0,0), XORB_MASK, BOOKE64, { RT, RA } }, { "subfze64o",XO(31,456,1,0), XORB_MASK, BOOKE64, { RT, RA } }, @@ -3400,110 +3942,157 @@ const struct powerpc_opcode powerpc_opco { "divwuo", XO(31,459,1,0), XO_MASK, PPC, { RT, RA, RB } }, { "divwuo.", XO(31,459,1,1), XO_MASK, PPC, { RT, RA, RB } }, -{ "mtmq", XSPR(31,467,0), XSPR_MASK, M601, { RS } }, -{ "mtxer", XSPR(31,467,1), XSPR_MASK, COM, { RS } }, -{ "mtlr", XSPR(31,467,8), XSPR_MASK, COM, { RS } }, -{ "mtctr", XSPR(31,467,9), XSPR_MASK, COM, { RS } }, -{ "mttid", XSPR(31,467,17), XSPR_MASK, POWER, { RS } }, -{ "mtdsisr", XSPR(31,467,18), XSPR_MASK, COM, { RS } }, -{ "mtdar", XSPR(31,467,19), XSPR_MASK, COM, { RS } }, -{ "mtrtcu", XSPR(31,467,20), XSPR_MASK, COM, { RS } }, -{ "mtrtcl", XSPR(31,467,21), XSPR_MASK, COM, { RS } }, -{ "mtdec", XSPR(31,467,22), XSPR_MASK, COM, { RS } }, -{ "mtsdr0", XSPR(31,467,24), XSPR_MASK, POWER, { RS } }, -{ "mtsdr1", XSPR(31,467,25), XSPR_MASK, COM, { RS } }, -{ "mtsrr0", XSPR(31,467,26), XSPR_MASK, COM, { RS } }, -{ "mtsrr1", XSPR(31,467,27), XSPR_MASK, COM, { RS } }, -{ "mtcmpa", XSPR(31,467,144), XSPR_MASK, PPC860, { RT } }, -{ "mtcmpb", XSPR(31,467,145), XSPR_MASK, PPC860, { RT } }, -{ "mtcmpc", XSPR(31,467,146), XSPR_MASK, PPC860, { RT } }, -{ "mtcmpd", XSPR(31,467,147), XSPR_MASK, PPC860, { RT } }, -{ "mticr", XSPR(31,467,148), XSPR_MASK, PPC860, { RT } }, -{ "mtder", XSPR(31,467,149), XSPR_MASK, PPC860, { RT } }, -{ "mtcounta", XSPR(31,467,150), XSPR_MASK, PPC860, { RT } }, -{ "mtcountb", XSPR(31,467,151), XSPR_MASK, PPC860, { RT } }, -{ "mtcmpe", XSPR(31,467,152), XSPR_MASK, PPC860, { RT } }, -{ "mtcmpf", XSPR(31,467,153), XSPR_MASK, PPC860, { RT } }, -{ "mtcmpg", XSPR(31,467,154), XSPR_MASK, PPC860, { RT } }, -{ "mtcmph", XSPR(31,467,155), XSPR_MASK, PPC860, { RT } }, -{ "mtlctrl1", XSPR(31,467,156), XSPR_MASK, PPC860, { RT } }, -{ "mtlctrl2", XSPR(31,467,157), XSPR_MASK, PPC860, { RT } }, -{ "mtictrl", XSPR(31,467,158), XSPR_MASK, PPC860, { RT } }, -{ "mtbar", XSPR(31,467,159), XSPR_MASK, PPC860, { RT } }, -{ "mtvrsave",XSPR(31,467,256), XSPR_MASK, PPCVEC, { RT } }, -{ "mtsprg", XSPR(31,467,272), XSPRG_MASK, PPC, { SPRG, RS } }, -{ "mtsprg0", XSPR(31,467,272), XSPR_MASK, PPC, { RT } }, -{ "mtsprg1", XSPR(31,467,273), XSPR_MASK, PPC, { RT } }, -{ "mtsprg2", XSPR(31,467,274), XSPR_MASK, PPC, { RT } }, -{ "mtsprg3", XSPR(31,467,275), XSPR_MASK, PPC, { RT } }, -{ "mtsprg4", XSPR(31,467,276), XSPR_MASK, PPC405, { RT } }, -{ "mtsprg5", XSPR(31,467,277), XSPR_MASK, PPC405, { RT } }, -{ "mtsprg6", XSPR(31,467,278), XSPR_MASK, PPC405, { RT } }, -{ "mtsprg7", XSPR(31,467,279), XSPR_MASK, PPC405, { RT } }, -{ "mtasr", XSPR(31,467,280), XSPR_MASK, PPC64, { RS } }, -{ "mtear", XSPR(31,467,282), XSPR_MASK, PPC, { RS } }, -{ "mttbl", XSPR(31,467,284), XSPR_MASK, PPC, { RS } }, -{ "mttbu", XSPR(31,467,285), XSPR_MASK, PPC, { RS } }, -{ "mtibatu", XSPR(31,467,528), XSPRBAT_MASK, PPC, { SPRBAT, RS } }, -{ "mtibatl", XSPR(31,467,529), XSPRBAT_MASK, PPC, { SPRBAT, RS } }, -{ "mtdbatu", XSPR(31,467,536), XSPRBAT_MASK, PPC, { SPRBAT, RS } }, -{ "mtdbatl", XSPR(31,467,537), XSPRBAT_MASK, PPC, { SPRBAT, RS } }, -{ "mtzpr", XSPR(31,467,944), XSPR_MASK, PPC403, { RT } }, -{ "mtpid", XSPR(31,467,945), XSPR_MASK, PPC403, { RT } }, -{ "mtccr0", XSPR(31,467,947), XSPR_MASK, PPC405, { RT } }, -{ "mtiac3", XSPR(31,467,948), XSPR_MASK, PPC405, { RT } }, -{ "mtiac4", XSPR(31,467,949), XSPR_MASK, PPC405, { RT } }, -{ "mtdvc1", XSPR(31,467,950), XSPR_MASK, PPC405, { RT } }, -{ "mtdvc2", XSPR(31,467,951), XSPR_MASK, PPC405, { RT } }, -{ "mtsgr", XSPR(31,467,953), XSPR_MASK, PPC403, { RT } }, -{ "mtdcwr", XSPR(31,467,954), XSPR_MASK, PPC403, { RT } }, -{ "mtsler", XSPR(31,467,955), XSPR_MASK, PPC405, { RT } }, -{ "mtsu0r", XSPR(31,467,956), XSPR_MASK, PPC405, { RT } }, -{ "mtdbcr1", XSPR(31,467,957), XSPR_MASK, PPC405, { RT } }, -{ "mticdbdr",XSPR(31,467,979), XSPR_MASK, PPC403, { RT } }, -{ "mtesr", XSPR(31,467,980), XSPR_MASK, PPC403, { RT } }, -{ "mtdear", XSPR(31,467,981), XSPR_MASK, PPC403, { RT } }, -{ "mtevpr", XSPR(31,467,982), XSPR_MASK, PPC403, { RT } }, -{ "mtcdbcr", XSPR(31,467,983), XSPR_MASK, PPC403, { RT } }, -{ "mttsr", XSPR(31,467,984), XSPR_MASK, PPC403, { RT } }, -{ "mttcr", XSPR(31,467,986), XSPR_MASK, PPC403, { RT } }, -{ "mtpit", XSPR(31,467,987), XSPR_MASK, PPC403, { RT } }, -{ "mttbhi", XSPR(31,467,988), XSPR_MASK, PPC403, { RT } }, -{ "mttblo", XSPR(31,467,989), XSPR_MASK, PPC403, { RT } }, -{ "mtsrr2", XSPR(31,467,990), XSPR_MASK, PPC403, { RT } }, -{ "mtsrr3", XSPR(31,467,991), XSPR_MASK, PPC403, { RT } }, -{ "mtdbsr", XSPR(31,467,1008), XSPR_MASK, PPC403, { RT } }, -{ "mtdbcr0", XSPR(31,467,1010), XSPR_MASK, PPC405, { RT } }, -{ "mtiac1", XSPR(31,467,1012), XSPR_MASK, PPC403, { RT } }, -{ "mtiac2", XSPR(31,467,1013), XSPR_MASK, PPC403, { RT } }, -{ "mtdac1", XSPR(31,467,1014), XSPR_MASK, PPC403, { RT } }, -{ "mtdac2", XSPR(31,467,1015), XSPR_MASK, PPC403, { RT } }, -{ "mtdccr", XSPR(31,467,1018), XSPR_MASK, PPC403, { RT } }, -{ "mticcr", XSPR(31,467,1019), XSPR_MASK, PPC403, { RT } }, -{ "mtpbl1", XSPR(31,467,1020), XSPR_MASK, PPC403, { RT } }, -{ "mtpbu1", XSPR(31,467,1021), XSPR_MASK, PPC403, { RT } }, -{ "mtpbl2", XSPR(31,467,1022), XSPR_MASK, PPC403, { RT } }, -{ "mtpbu2", XSPR(31,467,1023), XSPR_MASK, PPC403, { RT } }, -{ "mtummcr0", XSPR(31,467,936), XSPR_MASK, PPC750, { RT } }, -{ "mtupmc1", XSPR(31,467,937), XSPR_MASK, PPC750, { RT } }, -{ "mtupmc2", XSPR(31,467,938), XSPR_MASK, PPC750, { RT } }, -{ "mtusia", XSPR(31,467,939), XSPR_MASK, PPC750, { RT } }, -{ "mtummcr1", XSPR(31,467,940), XSPR_MASK, PPC750, { RT } }, -{ "mtupmc3", XSPR(31,467,941), XSPR_MASK, PPC750, { RT } }, -{ "mtupmc4", XSPR(31,467,942), XSPR_MASK, PPC750, { RT } }, -{ "mtmmcr0", XSPR(31,467,952), XSPR_MASK, PPC750, { RT } }, -{ "mtpmc1", XSPR(31,467,953), XSPR_MASK, PPC750, { RT } }, -{ "mtpmc2", XSPR(31,467,954), XSPR_MASK, PPC750, { RT } }, -{ "mtsia", XSPR(31,467,955), XSPR_MASK, PPC750, { RT } }, -{ "mtmmcr1", XSPR(31,467,956), XSPR_MASK, PPC750, { RT } }, -{ "mtpmc3", XSPR(31,467,957), XSPR_MASK, PPC750, { RT } }, -{ "mtpmc4", XSPR(31,467,958), XSPR_MASK, PPC750, { RT } }, -{ "mtl2cr", XSPR(31,467,1017), XSPR_MASK, PPC750, { RT } }, -{ "mtictc", XSPR(31,467,1019), XSPR_MASK, PPC750, { RT } }, -{ "mtthrm1", XSPR(31,467,1020), XSPR_MASK, PPC750, { RT } }, -{ "mtthrm2", XSPR(31,467,1021), XSPR_MASK, PPC750, { RT } }, -{ "mtthrm3", XSPR(31,467,1022), XSPR_MASK, PPC750, { RT } }, -{ "mtspr", X(31,467), X_MASK, COM, { SPR, RS } }, +{ "mtmq", XSPR(31,467,0), XSPR_MASK, M601, { RS } }, +{ "mtxer", XSPR(31,467,1), XSPR_MASK, COM, { RS } }, +{ "mtlr", XSPR(31,467,8), XSPR_MASK, COM, { RS } }, +{ "mtctr", XSPR(31,467,9), XSPR_MASK, COM, { RS } }, +{ "mttid", XSPR(31,467,17), XSPR_MASK, POWER, { RS } }, +{ "mtdsisr", XSPR(31,467,18), XSPR_MASK, COM, { RS } }, +{ "mtdar", XSPR(31,467,19), XSPR_MASK, COM, { RS } }, +{ "mtrtcu", XSPR(31,467,20), XSPR_MASK, COM, { RS } }, +{ "mtrtcl", XSPR(31,467,21), XSPR_MASK, COM, { RS } }, +{ "mtdec", XSPR(31,467,22), XSPR_MASK, COM, { RS } }, +{ "mtsdr0", XSPR(31,467,24), XSPR_MASK, POWER, { RS } }, +{ "mtsdr1", XSPR(31,467,25), XSPR_MASK, COM, { RS } }, +{ "mtsrr0", XSPR(31,467,26), XSPR_MASK, COM, { RS } }, +{ "mtsrr1", XSPR(31,467,27), XSPR_MASK, COM, { RS } }, +{ "mtpid", XSPR(31,467,48), XSPR_MASK, BOOKE, { RS } }, +{ "mtdecar", XSPR(31,467,54), XSPR_MASK, BOOKE, { RS } }, +{ "mtcsrr0", XSPR(31,467,58), XSPR_MASK, BOOKE, { RS } }, +{ "mtcsrr1", XSPR(31,467,59), XSPR_MASK, BOOKE, { RS } }, +{ "mtdear", XSPR(31,467,61), XSPR_MASK, BOOKE, { RS } }, +{ "mtesr", XSPR(31,467,62), XSPR_MASK, BOOKE, { RS } }, +{ "mtivpr", XSPR(31,467,63), XSPR_MASK, BOOKE, { RS } }, +{ "mtcmpa", XSPR(31,467,144), XSPR_MASK, PPC860, { RT } }, +{ "mtcmpb", XSPR(31,467,145), XSPR_MASK, PPC860, { RT } }, +{ "mtcmpc", XSPR(31,467,146), XSPR_MASK, PPC860, { RT } }, +{ "mtcmpd", XSPR(31,467,147), XSPR_MASK, PPC860, { RT } }, +{ "mticr", XSPR(31,467,148), XSPR_MASK, PPC860, { RT } }, +{ "mtder", XSPR(31,467,149), XSPR_MASK, PPC860, { RT } }, +{ "mtcounta", XSPR(31,467,150), XSPR_MASK, PPC860, { RT } }, +{ "mtcountb", XSPR(31,467,151), XSPR_MASK, PPC860, { RT } }, +{ "mtcmpe", XSPR(31,467,152), XSPR_MASK, PPC860, { RT } }, +{ "mtcmpf", XSPR(31,467,153), XSPR_MASK, PPC860, { RT } }, +{ "mtcmpg", XSPR(31,467,154), XSPR_MASK, PPC860, { RT } }, +{ "mtcmph", XSPR(31,467,155), XSPR_MASK, PPC860, { RT } }, +{ "mtlctrl1", XSPR(31,467,156), XSPR_MASK, PPC860, { RT } }, +{ "mtlctrl2", XSPR(31,467,157), XSPR_MASK, PPC860, { RT } }, +{ "mtictrl", XSPR(31,467,158), XSPR_MASK, PPC860, { RT } }, +{ "mtbar", XSPR(31,467,159), XSPR_MASK, PPC860, { RT } }, +{ "mtvrsave", XSPR(31,467,256), XSPR_MASK, PPCVEC, { RT } }, +{ "mtusprg0", XSPR(31,467,256), XSPR_MASK, BOOKE, { RS } }, +{ "mtsprg", XSPR(31,467,272), XSPRG_MASK,PPC, { SPRG, RS } }, +{ "mtsprg0", XSPR(31,467,272), XSPR_MASK, PPC, { RT } }, +{ "mtsprg1", XSPR(31,467,273), XSPR_MASK, PPC, { RT } }, +{ "mtsprg2", XSPR(31,467,274), XSPR_MASK, PPC, { RT } }, +{ "mtsprg3", XSPR(31,467,275), XSPR_MASK, PPC, { RT } }, +{ "mtsprg4", XSPR(31,467,276), XSPR_MASK, PPC405, { RT } }, +{ "mtsprg4", XSPR(31,467,276), XSPR_MASK, BOOKE, { RS } }, +{ "mtsprg5", XSPR(31,467,277), XSPR_MASK, PPC405, { RT } }, +{ "mtsprg5", XSPR(31,467,277), XSPR_MASK, BOOKE, { RS } }, +{ "mtsprg6", XSPR(31,467,278), XSPR_MASK, PPC405, { RT } }, +{ "mtsprg6", XSPR(31,467,278), XSPR_MASK, BOOKE, { RS } }, +{ "mtsprg7", XSPR(31,467,279), XSPR_MASK, PPC405, { RT } }, +{ "mtsprg7", XSPR(31,467,279), XSPR_MASK, BOOKE, { RS } }, +{ "mtasr", XSPR(31,467,280), XSPR_MASK, PPC64, { RS } }, +{ "mtear", XSPR(31,467,282), XSPR_MASK, PPC, { RS } }, +{ "mttbl", XSPR(31,467,284), XSPR_MASK, PPC, { RS } }, +{ "mttbu", XSPR(31,467,285), XSPR_MASK, PPC, { RS } }, +{ "mtdbsr", XSPR(31,467,304), XSPR_MASK, BOOKE, { RS } }, +{ "mtdbcr0", XSPR(31,467,308), XSPR_MASK, BOOKE, { RS } }, +{ "mtdbcr1", XSPR(31,467,309), XSPR_MASK, BOOKE, { RS } }, +{ "mtdbcr2", XSPR(31,467,310), XSPR_MASK, BOOKE, { RS } }, +{ "mtiac1", XSPR(31,467,312), XSPR_MASK, BOOKE, { RS } }, +{ "mtiac2", XSPR(31,467,313), XSPR_MASK, BOOKE, { RS } }, +{ "mtiac3", XSPR(31,467,314), XSPR_MASK, BOOKE, { RS } }, +{ "mtiac4", XSPR(31,467,315), XSPR_MASK, BOOKE, { RS } }, +{ "mtdac1", XSPR(31,467,316), XSPR_MASK, BOOKE, { RS } }, +{ "mtdac2", XSPR(31,467,317), XSPR_MASK, BOOKE, { RS } }, +{ "mtdvc1", XSPR(31,467,318), XSPR_MASK, BOOKE, { RS } }, +{ "mtdvc2", XSPR(31,467,319), XSPR_MASK, BOOKE, { RS } }, +{ "mttsr", XSPR(31,467,336), XSPR_MASK, BOOKE, { RS } }, +{ "mttcr", XSPR(31,467,340), XSPR_MASK, BOOKE, { RS } }, +{ "mtivor0", XSPR(31,467,400), XSPR_MASK, BOOKE, { RS } }, +{ "mtivor1", XSPR(31,467,401), XSPR_MASK, BOOKE, { RS } }, +{ "mtivor2", XSPR(31,467,402), XSPR_MASK, BOOKE, { RS } }, +{ "mtivor3", XSPR(31,467,403), XSPR_MASK, BOOKE, { RS } }, +{ "mtivor4", XSPR(31,467,404), XSPR_MASK, BOOKE, { RS } }, +{ "mtivor5", XSPR(31,467,405), XSPR_MASK, BOOKE, { RS } }, +{ "mtivor6", XSPR(31,467,406), XSPR_MASK, BOOKE, { RS } }, +{ "mtivor7", XSPR(31,467,407), XSPR_MASK, BOOKE, { RS } }, +{ "mtivor8", XSPR(31,467,408), XSPR_MASK, BOOKE, { RS } }, +{ "mtivor9", XSPR(31,467,409), XSPR_MASK, BOOKE, { RS } }, +{ "mtivor10", XSPR(31,467,410), XSPR_MASK, BOOKE, { RS } }, +{ "mtivor11", XSPR(31,467,411), XSPR_MASK, BOOKE, { RS } }, +{ "mtivor12", XSPR(31,467,412), XSPR_MASK, BOOKE, { RS } }, +{ "mtivor13", XSPR(31,467,413), XSPR_MASK, BOOKE, { RS } }, +{ "mtivor14", XSPR(31,467,414), XSPR_MASK, BOOKE, { RS } }, +{ "mtivor15", XSPR(31,467,415), XSPR_MASK, BOOKE, { RS } }, +{ "mtspefscr", XSPR(31,467,512), XSPR_MASK, PPCSPE, { RT } }, +{ "mtbbear", XSPR(31,467,513), XSPR_MASK, PPCBRLK, { RS } }, +{ "mtibatu", XSPR(31,467,528), XSPRBAT_MASK, PPC, { SPRBAT, RS } }, +{ "mtibatl", XSPR(31,467,529), XSPRBAT_MASK, PPC, { SPRBAT, RS } }, +{ "mtdbatu", XSPR(31,467,536), XSPRBAT_MASK, PPC, { SPRBAT, RS } }, +{ "mtdbatl", XSPR(31,467,537), XSPRBAT_MASK, PPC, { SPRBAT, RS } }, +{ "mtmcsrr0", XSPR(31,467,570), XSPR_MASK, PPCRFMCI, { RS } }, +{ "mtmcsrr1", XSPR(31,467,571), XSPR_MASK, PPCRFMCI, { RS } }, +{ "mtmcsr", XSPR(31,467,572), XSPR_MASK, PPCRFMCI, { RS } }, +{ "mtummcr0", XSPR(31,467,936), XSPR_MASK, PPC750, { RT } }, +{ "mtupmc1", XSPR(31,467,937), XSPR_MASK, PPC750, { RT } }, +{ "mtupmc2", XSPR(31,467,938), XSPR_MASK, PPC750, { RT } }, +{ "mtusia", XSPR(31,467,939), XSPR_MASK, PPC750, { RT } }, +{ "mtummcr1", XSPR(31,467,940), XSPR_MASK, PPC750, { RT } }, +{ "mtupmc3", XSPR(31,467,941), XSPR_MASK, PPC750, { RT } }, +{ "mtupmc4", XSPR(31,467,942), XSPR_MASK, PPC750, { RT } }, +{ "mtzpr", XSPR(31,467,944), XSPR_MASK, PPC403, { RT } }, +{ "mtpid", XSPR(31,467,945), XSPR_MASK, PPC403, { RT } }, +{ "mtccr0", XSPR(31,467,947), XSPR_MASK, PPC405, { RT } }, +{ "mtiac3", XSPR(31,467,948), XSPR_MASK, PPC405, { RT } }, +{ "mtiac4", XSPR(31,467,949), XSPR_MASK, PPC405, { RT } }, +{ "mtdvc1", XSPR(31,467,950), XSPR_MASK, PPC405, { RT } }, +{ "mtdvc2", XSPR(31,467,951), XSPR_MASK, PPC405, { RT } }, +{ "mtmmcr0", XSPR(31,467,952), XSPR_MASK, PPC750, { RT } }, +{ "mtsgr", XSPR(31,467,953), XSPR_MASK, PPC403, { RT } }, +{ "mtpmc1", XSPR(31,467,953), XSPR_MASK, PPC750, { RT } }, +{ "mtdcwr", XSPR(31,467,954), XSPR_MASK, PPC403, { RT } }, +{ "mtpmc2", XSPR(31,467,954), XSPR_MASK, PPC750, { RT } }, +{ "mtsler", XSPR(31,467,955), XSPR_MASK, PPC405, { RT } }, +{ "mtsia", XSPR(31,467,955), XSPR_MASK, PPC750, { RT } }, +{ "mtsu0r", XSPR(31,467,956), XSPR_MASK, PPC405, { RT } }, +{ "mtmmcr1", XSPR(31,467,956), XSPR_MASK, PPC750, { RT } }, +{ "mtdbcr1", XSPR(31,467,957), XSPR_MASK, PPC405, { RT } }, +{ "mtpmc3", XSPR(31,467,957), XSPR_MASK, PPC750, { RT } }, +{ "mtpmc4", XSPR(31,467,958), XSPR_MASK, PPC750, { RT } }, +{ "mticdbdr", XSPR(31,467,979), XSPR_MASK, PPC403, { RT } }, +{ "mtesr", XSPR(31,467,980), XSPR_MASK, PPC403, { RT } }, +{ "mtdear", XSPR(31,467,981), XSPR_MASK, PPC403, { RT } }, +{ "mtevpr", XSPR(31,467,982), XSPR_MASK, PPC403, { RT } }, +{ "mtcdbcr", XSPR(31,467,983), XSPR_MASK, PPC403, { RT } }, +{ "mttsr", XSPR(31,467,984), XSPR_MASK, PPC403, { RT } }, +{ "mttcr", XSPR(31,467,986), XSPR_MASK, PPC403, { RT } }, +{ "mtpit", XSPR(31,467,987), XSPR_MASK, PPC403, { RT } }, +{ "mttbhi", XSPR(31,467,988), XSPR_MASK, PPC403, { RT } }, +{ "mttblo", XSPR(31,467,989), XSPR_MASK, PPC403, { RT } }, +{ "mtsrr2", XSPR(31,467,990), XSPR_MASK, PPC403, { RT } }, +{ "mtsrr3", XSPR(31,467,991), XSPR_MASK, PPC403, { RT } }, +{ "mtdbsr", XSPR(31,467,1008), XSPR_MASK, PPC403, { RT } }, +{ "mtdbcr0", XSPR(31,467,1010), XSPR_MASK, PPC405, { RT } }, +{ "mtiac1", XSPR(31,467,1012), XSPR_MASK, PPC403, { RT } }, +{ "mtiac2", XSPR(31,467,1013), XSPR_MASK, PPC403, { RT } }, +{ "mtdac1", XSPR(31,467,1014), XSPR_MASK, PPC403, { RT } }, +{ "mtdac2", XSPR(31,467,1015), XSPR_MASK, PPC403, { RT } }, +{ "mtl2cr", XSPR(31,467,1017), XSPR_MASK, PPC750, { RT } }, +{ "mtdccr", XSPR(31,467,1018), XSPR_MASK, PPC403, { RT } }, +{ "mticcr", XSPR(31,467,1019), XSPR_MASK, PPC403, { RT } }, +{ "mtictc", XSPR(31,467,1019), XSPR_MASK, PPC750, { RT } }, +{ "mtpbl1", XSPR(31,467,1020), XSPR_MASK, PPC403, { RT } }, +{ "mtthrm1", XSPR(31,467,1020), XSPR_MASK, PPC750, { RT } }, +{ "mtpbu1", XSPR(31,467,1021), XSPR_MASK, PPC403, { RT } }, +{ "mtthrm2", XSPR(31,467,1021), XSPR_MASK, PPC750, { RT } }, +{ "mtpbl2", XSPR(31,467,1022), XSPR_MASK, PPC403, { RT } }, +{ "mtthrm3", XSPR(31,467,1022), XSPR_MASK, PPC750, { RT } }, +{ "mtpbu2", XSPR(31,467,1023), XSPR_MASK, PPC403, { RT } }, +{ "mtspr", X(31,467), X_MASK, COM, { SPR, RS } }, { "dcbi", X(31,470), XRT_MASK, PPC, { RA, RB } }, @@ -3514,6 +4103,10 @@ const struct powerpc_opcode powerpc_opco { "dcread", X(31,486), X_MASK, PPC403, { RT, RA, RB }}, +{ "mtpmr", X(31,462), X_MASK, PPCPMR, { PMRN, RS }}, + +{ "icbtls", X(31,486), X_MASK, PPCCHLK, { CT, RA, RB }}, + { "nabs", XO(31,488,0,0), XORB_MASK, M601, { RT, RA } }, { "subfme64",XO(31,488,0,0), XORB_MASK, BOOKE64, { RT, RA } }, { "nabs.", XO(31,488,0,1), XORB_MASK, M601, { RT, RA } }, @@ -3534,6 +4127,8 @@ const struct powerpc_opcode powerpc_opco { "divwo", XO(31,491,1,0), XO_MASK, PPC, { RT, RA, RB } }, { "divwo.", XO(31,491,1,1), XO_MASK, PPC, { RT, RA, RB } }, +{ "icbtlse", X(31,494), X_MASK, PPCCHLK64, { CT, RA, RB }}, + { "slbia", X(31,498), 0xffffffff, PPC64, { 0 } }, { "cli", X(31,502), XRB_MASK, POWER, { RT, RA } }, @@ -3542,7 +4137,8 @@ const struct powerpc_opcode powerpc_opco { "mcrxr", X(31,512), XRARB_MASK|(3<<21), COM, { BF } }, -{ "mcrxr64", X(31,544), XRARB_MASK|(3<<21), BOOKE, { BF } }, +{ "bblels", X(31,518), X_MASK, PPCBRLK, { 0 }}, +{ "mcrxr64", X(31,544), XRARB_MASK|(3<<21), BOOKE64, { BF } }, { "clcs", X(31,531), XRB_MASK, M601, { RT, RA } }, @@ -3572,6 +4168,7 @@ const struct powerpc_opcode powerpc_opco { "lfsxe", X(31,543), X_MASK, BOOKE64, { FRT, RA, RB } }, +{ "bbelr", X(31,550), X_MASK, PPCBRLK, { 0 }}, { "tlbsync", X(31,566), 0xffffffff, PPC, { 0 } }, { "lfsux", X(31,567), X_MASK, COM, { FRT, RAS, RB } }, @@ -3654,7 +4251,7 @@ const struct powerpc_opcode powerpc_opco { "stfduxe", X(31,767), X_MASK, BOOKE64, { FRS, RAS, RB } }, { "tlbivax", X(31,786), XRT_MASK, BOOKE, { RA, RB } }, -{ "tlbivaxe",X(31,787), XRT_MASK, BOOKE, { RA, RB } }, +{ "tlbivaxe",X(31,787), XRT_MASK, BOOKE64, { RA, RB } }, { "lhbrx", X(31,790), X_MASK, COM, { RT, RA, RB } }, @@ -3691,8 +4288,8 @@ const struct powerpc_opcode powerpc_opco { "tlbsx", XRC(31,914,0), X_MASK, BOOKE, { RA, RB } }, { "tlbsx.", XRC(31,914,1), X_MASK, BOOKE, { RA, RB } }, -{ "tlbsxe", XRC(31,915,0), X_MASK, BOOKE, { RA, RB } }, -{ "tlbsxe.", XRC(31,915,1), X_MASK, BOOKE, { RA, RB } }, +{ "tlbsxe", XRC(31,915,0), X_MASK, BOOKE64, { RA, RB } }, +{ "tlbsxe.", XRC(31,915,1), X_MASK, BOOKE64, { RA, RB } }, { "slbmfee", X(31,915), XRA_MASK, PPC64, { RT, RB } }, @@ -3713,7 +4310,7 @@ const struct powerpc_opcode powerpc_opco { "stdxe", X(31,927), X_MASK, BOOKE64, { RS, RA, RB } }, -{ "tlbre", X(31,946), X_MASK, BOOKE, { RT, RA, WS } }, +{ "tlbre", X(31,946), X_MASK, BOOKE, { 0 } }, { "tlbrehi", XTLB(31,946,0), XTLB_MASK, PPC403, { RT, RA } }, { "tlbrelo", XTLB(31,946,1), XTLB_MASK, PPC403, { RT, RA } }, @@ -3728,20 +4325,20 @@ const struct powerpc_opcode powerpc_opco { "iccci", X(31,966), XRT_MASK, PPC403, { RA, RB } }, +{ "tlbwe", X(31,978), X_MASK, BOOKE, { 0 } }, + { "tlbld", X(31,978), XRTRA_MASK, PPC, { RB } }, { "tlbwehi", XTLB(31,978,0), XTLB_MASK, PPC403, { RT, RA } }, { "tlbwelo", XTLB(31,978,1), XTLB_MASK, PPC403, { RT, RA } }, { "tlbwe", X(31,978), X_MASK, PPC403, { RS, RA, SH } }, -{ "tlbwe", X(31,978), X_MASK, BOOKE, { RT, RA, WS } }, - { "icbi", X(31,982), XRT_MASK, PPC, { RA, RB } }, { "stfiwx", X(31,983), X_MASK, PPC, { FRS, RA, RB } }, -{ "extsw", XRC(31,986,0), XRB_MASK, PPC, { RA, RS } }, -{ "extsw.", XRC(31,986,1), XRB_MASK, PPC, { RA, RS } }, +{ "extsw", XRC(31,986,0), XRB_MASK, PPC64 | BOOKE64,{ RA, RS } }, +{ "extsw.", XRC(31,986,1), XRB_MASK, PPC64, { RA, RS } }, { "icread", X(31,998), XRT_MASK, PPC403, { RA, RB } }, @@ -4059,7 +4656,6 @@ const struct powerpc_macro powerpc_macro { "clrrwi.", 3, PPCCOM, "rlwinm. %0,%1,0,0,31-(%2)" }, { "clrlslwi",4, PPCCOM, "rlwinm %0,%1,%3,(%2)-(%3),31-(%3)" }, { "clrlslwi.",4, PPCCOM, "rlwinm. %0,%1,%3,(%2)-(%3),31-(%3)" }, - }; const int powerpc_num_macros = diff -uprN binutils-2.13.90.0.4/opcodes/tic4x-dis.c binutils-2.13.90.0.10/opcodes/tic4x-dis.c --- binutils-2.13.90.0.4/opcodes/tic4x-dis.c Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/opcodes/tic4x-dis.c Fri Sep 27 08:33:09 2002 @@ -0,0 +1,726 @@ +/* Print instructions for the Texas TMS320C[34]X, for GDB and GNU Binutils. + + Copyright 2002 Free Software Foundation, Inc. + + Contributed by Michael P. Hayes (m.hayes@elec.canterbury.ac.nz) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#include +#include "libiberty.h" +#include "dis-asm.h" +#include "opcode/tic4x.h" + +#define C4X_DEBUG 0 + +#define C4X_HASH_SIZE 11 /* 11 and above should give unique entries. */ + +typedef enum + { + IMMED_SINT, + IMMED_SUINT, + IMMED_SFLOAT, + IMMED_INT, + IMMED_UINT, + IMMED_FLOAT + } +immed_t; + +typedef enum + { + INDIRECT_SHORT, + INDIRECT_LONG, + INDIRECT_C4X + } +indirect_t; + +static int c4x_version = 0; +static int c4x_dp = 0; + +static int c4x_pc_offset + PARAMS ((unsigned int)); +static int c4x_print_char + PARAMS ((struct disassemble_info *, char)); +static int c4x_print_str + PARAMS ((struct disassemble_info *, char *)); +static int c4x_print_register + PARAMS ((struct disassemble_info *, unsigned long)); +static int c4x_print_addr + PARAMS ((struct disassemble_info *, unsigned long)); +static int c4x_print_relative + PARAMS ((struct disassemble_info *, unsigned long, long, unsigned long)); +void c4x_print_ftoa + PARAMS ((unsigned int, FILE *, fprintf_ftype)); +static int c4x_print_direct + PARAMS ((struct disassemble_info *, unsigned long)); +static int c4x_print_immed + PARAMS ((struct disassemble_info *, immed_t, unsigned long)); +static int c4x_print_cond + PARAMS ((struct disassemble_info *, unsigned int)); +static int c4x_print_indirect + PARAMS ((struct disassemble_info *, indirect_t, unsigned long)); +static int c4x_print_op + PARAMS ((struct disassemble_info *, unsigned long, c4x_inst_t *, unsigned long)); +static void c4x_hash_opcode + PARAMS ((c4x_inst_t **, const c4x_inst_t *)); +static int c4x_disassemble + PARAMS ((unsigned long, unsigned long, struct disassemble_info *)); +int print_insn_tic4x + PARAMS ((bfd_vma, struct disassemble_info *)); + + +static int +c4x_pc_offset (op) + unsigned int op; +{ + /* Determine the PC offset for a C[34]x instruction. + This could be simplified using some boolean algebra + but at the expense of readability. */ + switch (op >> 24) + { + case 0x60: /* br */ + case 0x62: /* call (C4x) */ + case 0x64: /* rptb (C4x) */ + return 1; + case 0x61: /* brd */ + case 0x63: /* laj */ + case 0x65: /* rptbd (C4x) */ + return 3; + case 0x66: /* swi */ + case 0x67: + return 0; + default: + break; + } + + switch ((op & 0xffe00000) >> 20) + { + case 0x6a0: /* bB */ + case 0x720: /* callB */ + case 0x740: /* trapB */ + return 1; + + case 0x6a2: /* bBd */ + case 0x6a6: /* bBat */ + case 0x6aa: /* bBaf */ + case 0x722: /* lajB */ + case 0x748: /* latB */ + case 0x798: /* rptbd */ + return 3; + + default: + break; + } + + switch ((op & 0xfe200000) >> 20) + { + case 0x6e0: /* dbB */ + return 1; + + case 0x6e2: /* dbBd */ + return 3; + + default: + break; + } + + return 0; +} + +static int +c4x_print_char (info, ch) + struct disassemble_info * info; + char ch; +{ + if (info != NULL) + (*info->fprintf_func) (info->stream, "%c", ch); + return 1; +} + +static int +c4x_print_str (info, str) + struct disassemble_info *info; + char *str; +{ + if (info != NULL) + (*info->fprintf_func) (info->stream, "%s", str); + return 1; +} + +static int +c4x_print_register (info, regno) + struct disassemble_info *info; + unsigned long regno; +{ + static c4x_register_t **registertable = NULL; + unsigned int i; + + if (registertable == NULL) + { + registertable = (c4x_register_t **) + xmalloc (sizeof (c4x_register_t *) * REG_TABLE_SIZE); + for (i = 0; i < c3x_num_registers; i++) + registertable[c3x_registers[i].regno] = (void *)&c3x_registers[i]; + if (IS_CPU_C4X (c4x_version)) + { + /* Add C4x additional registers, overwriting + any C3x registers if necessary. */ + for (i = 0; i < c4x_num_registers; i++) + registertable[c4x_registers[i].regno] = (void *)&c4x_registers[i]; + } + } + if ((int) regno > (IS_CPU_C4X (c4x_version) ? C4X_REG_MAX : C3X_REG_MAX)) + return 0; + if (info != NULL) + (*info->fprintf_func) (info->stream, "%s", registertable[regno]->name); + return 1; +} + +static int +c4x_print_addr (info, addr) + struct disassemble_info *info; + unsigned long addr; +{ + if (info != NULL) + (*info->print_address_func)(addr, info); + return 1; +} + +static int +c4x_print_relative (info, pc, offset, opcode) + struct disassemble_info *info; + unsigned long pc; + long offset; + unsigned long opcode; +{ + return c4x_print_addr (info, pc + offset + c4x_pc_offset (opcode)); +} + +static int +c4x_print_direct (info, arg) + struct disassemble_info *info; + unsigned long arg; +{ + if (info != NULL) + { + (*info->fprintf_func) (info->stream, "@"); + c4x_print_addr (info, arg + (c4x_dp << 16)); + } + return 1; +} + +/* FIXME: make the floating point stuff not rely on host + floating point arithmetic. */ +void +c4x_print_ftoa (val, stream, pfunc) + unsigned int val; + FILE *stream; + fprintf_ftype pfunc; +{ + int e; + int s; + int f; + double num = 0.0; + + e = EXTRS (val, 31, 24); /* exponent */ + if (e != -128) + { + s = EXTRU (val, 23, 23); /* sign bit */ + f = EXTRU (val, 22, 0); /* mantissa */ + if (s) + f += -2 * (1 << 23); + else + f += (1 << 23); + num = f / (double)(1 << 23); + num = ldexp (num, e); + } + (*pfunc)(stream, "%.9g", num); +} + +static int +c4x_print_immed (info, type, arg) + struct disassemble_info *info; + immed_t type; + unsigned long arg; +{ + int s; + int f; + int e; + double num = 0.0; + + if (info == NULL) + return 1; + switch (type) + { + case IMMED_SINT: + case IMMED_INT: + (*info->fprintf_func) (info->stream, "%d", (long)arg); + break; + + case IMMED_SUINT: + case IMMED_UINT: + (*info->fprintf_func) (info->stream, "%u", arg); + break; + + case IMMED_SFLOAT: + e = EXTRS (arg, 15, 12); + if (e != -8) + { + s = EXTRU (arg, 11, 11); + f = EXTRU (arg, 10, 0); + if (s) + f += -2 * (1 << 11); + else + f += (1 << 11); + num = f / (double)(1 << 11); + num = ldexp (num, e); + } + (*info->fprintf_func) (info->stream, "%f", num); + break; + case IMMED_FLOAT: + e = EXTRS (arg, 31, 24); + if (e != -128) + { + s = EXTRU (arg, 23, 23); + f = EXTRU (arg, 22, 0); + if (s) + f += -2 * (1 << 23); + else + f += (1 << 23); + num = f / (double)(1 << 23); + num = ldexp (num, e); + } + (*info->fprintf_func) (info->stream, "%f", num); + break; + } + return 1; +} + +static int +c4x_print_cond (info, cond) + struct disassemble_info *info; + unsigned int cond; +{ + static c4x_cond_t **condtable = NULL; + unsigned int i; + + if (condtable == NULL) + { + condtable = (c4x_cond_t **)xmalloc (sizeof (c4x_cond_t *) * 32); + for (i = 0; i < num_conds; i++) + condtable[c4x_conds[i].cond] = (void *)&c4x_conds[i]; + } + if (cond > 31 || condtable[cond] == NULL) + return 0; + if (info != NULL) + (*info->fprintf_func) (info->stream, "%s", condtable[cond]->name); + return 1; +} + +static int +c4x_print_indirect (info, type, arg) + struct disassemble_info *info; + indirect_t type; + unsigned long arg; +{ + unsigned int aregno; + unsigned int modn; + unsigned int disp; + char *a; + + aregno = 0; + modn = 0; + disp = 1; + switch(type) + { + case INDIRECT_C4X: /* *+ARn(disp) */ + disp = EXTRU (arg, 7, 3); + aregno = EXTRU (arg, 2, 0) + REG_AR0; + modn = 0; + break; + case INDIRECT_SHORT: + disp = 1; + aregno = EXTRU (arg, 2, 0) + REG_AR0; + modn = EXTRU (arg, 7, 3); + break; + case INDIRECT_LONG: + disp = EXTRU (arg, 7, 0); + aregno = EXTRU (arg, 10, 8) + REG_AR0; + modn = EXTRU (arg, 15, 11); + if (modn > 7 && disp != 0) + return 0; + break; + default: + abort (); + } + if (modn > C3X_MODN_MAX) + return 0; + a = c4x_indirects[modn].name; + while (*a) + { + switch (*a) + { + case 'a': + c4x_print_register (info, aregno); + break; + case 'd': + c4x_print_immed (info, IMMED_UINT, disp); + break; + case 'y': + c4x_print_str (info, "ir0"); + break; + case 'z': + c4x_print_str (info, "ir1"); + break; + default: + c4x_print_char (info, *a); + break; + } + a++; + } + return 1; +} + +static int +c4x_print_op (info, instruction, p, pc) + struct disassemble_info *info; + unsigned long instruction; + c4x_inst_t *p; + unsigned long pc; +{ + int val; + char *s; + char *parallel = NULL; + + /* Print instruction name. */ + s = p->name; + while (*s && parallel == NULL) + { + switch (*s) + { + case 'B': + if (! c4x_print_cond (info, EXTRU (instruction, 20, 16))) + return 0; + break; + case 'C': + if (! c4x_print_cond (info, EXTRU (instruction, 27, 23))) + return 0; + break; + case '_': + parallel = s + 1; /* Skip past `_' in name */ + break; + default: + c4x_print_char (info, *s); + break; + } + s++; + } + + /* Print arguments. */ + s = p->args; + if (*s) + c4x_print_char (info, ' '); + + while (*s) + { + switch (*s) + { + case '*': /* indirect 0--15 */ + if (! c4x_print_indirect (info, INDIRECT_LONG, + EXTRU (instruction, 15, 0))) + return 0; + break; + + case '#': /* only used for ldp, ldpk */ + c4x_print_immed (info, IMMED_UINT, EXTRU (instruction, 15, 0)); + break; + + case '@': /* direct 0--15 */ + c4x_print_direct (info, EXTRU (instruction, 15, 0)); + break; + + case 'A': /* address register 24--22 */ + if (! c4x_print_register (info, EXTRU (instruction, 24, 22) + + REG_AR0)) + return 0; + break; + + case 'B': /* 24-bit unsigned int immediate br(d)/call/rptb + address 0--23. */ + if (IS_CPU_C4X (c4x_version)) + c4x_print_relative (info, pc, EXTRS (instruction, 23, 0), + p->opcode); + else + c4x_print_addr (info, EXTRU (instruction, 23, 0)); + break; + + case 'C': /* indirect (short C4x) 0--7 */ + if (! IS_CPU_C4X (c4x_version)) + return 0; + if (! c4x_print_indirect (info, INDIRECT_C4X, + EXTRU (instruction, 7, 0))) + return 0; + break; + + case 'D': + /* Cockup if get here... */ + break; + + case 'E': /* register 0--7 */ + if (! c4x_print_register (info, EXTRU (instruction, 7, 0))) + return 0; + break; + + case 'F': /* 16-bit float immediate 0--15 */ + c4x_print_immed (info, IMMED_SFLOAT, + EXTRU (instruction, 15, 0)); + break; + + case 'I': /* indirect (short) 0--7 */ + if (! c4x_print_indirect (info, INDIRECT_SHORT, + EXTRU (instruction, 7, 0))) + return 0; + break; + + case 'J': /* indirect (short) 8--15 */ + if (! c4x_print_indirect (info, INDIRECT_SHORT, + EXTRU (instruction, 15, 8))) + return 0; + break; + + case 'G': /* register 8--15 */ + if (! c4x_print_register (info, EXTRU (instruction, 15, 8))) + return 0; + break; + + case 'H': /* register 16--18 */ + if (! c4x_print_register (info, EXTRU (instruction, 18, 16))) + return 0; + break; + + case 'K': /* register 19--21 */ + if (! c4x_print_register (info, EXTRU (instruction, 21, 19))) + return 0; + break; + + case 'L': /* register 22--24 */ + if (! c4x_print_register (info, EXTRU (instruction, 24, 22))) + return 0; + break; + + case 'M': /* register 22--22 */ + c4x_print_register (info, EXTRU (instruction, 22, 22) + REG_R2); + break; + + case 'N': /* register 23--23 */ + c4x_print_register (info, EXTRU (instruction, 22, 22) + REG_R0); + break; + + case 'O': /* indirect (short C4x) 8--15 */ + if (! IS_CPU_C4X (c4x_version)) + return 0; + if (! c4x_print_indirect (info, INDIRECT_C4X, + EXTRU (instruction, 15, 8))) + return 0; + break; + + case 'P': /* displacement 0--15 (used by Bcond and BcondD) */ + c4x_print_relative (info, pc, EXTRS (instruction, 15, 0), + p->opcode); + break; + + case 'Q': /* register 0--15 */ + if (! c4x_print_register (info, EXTRU (instruction, 15, 0))) + return 0; + break; + + case 'R': /* register 16--20 */ + if (! c4x_print_register (info, EXTRU (instruction, 20, 16))) + return 0; + break; + + case 'S': /* 16-bit signed immediate 0--15 */ + c4x_print_immed (info, IMMED_SINT, + EXTRS (instruction, 15, 0)); + break; + + case 'T': /* 5-bit signed immediate 16--20 (C4x stik) */ + if (! IS_CPU_C4X (c4x_version)) + return 0; + if (! c4x_print_immed (info, IMMED_SUINT, + EXTRU (instruction, 20, 16))) + return 0; + break; + + case 'U': /* 16-bit unsigned int immediate 0--15 */ + c4x_print_immed (info, IMMED_SUINT, EXTRU (instruction, 15, 0)); + break; + + case 'V': /* 5/9-bit unsigned vector 0--4/8 */ + c4x_print_immed (info, IMMED_SUINT, + IS_CPU_C4X (c4x_version) ? + EXTRU (instruction, 8, 0) : + EXTRU (instruction, 4, 0) & ~0x20); + break; + + case 'W': /* 8-bit signed immediate 0--7 */ + if (! IS_CPU_C4X (c4x_version)) + return 0; + c4x_print_immed (info, IMMED_SINT, EXTRS (instruction, 7, 0)); + break; + + case 'X': /* expansion register 4--0 */ + val = EXTRU (instruction, 4, 0) + REG_IVTP; + if (val < REG_IVTP || val > REG_TVTP) + return 0; + if (! c4x_print_register (info, val)) + return 0; + break; + + case 'Y': /* address register 16--20 */ + val = EXTRU (instruction, 20, 16); + if (val < REG_AR0 || val > REG_SP) + return 0; + if (! c4x_print_register (info, val)) + return 0; + break; + + case 'Z': /* expansion register 16--20 */ + val = EXTRU (instruction, 20, 16) + REG_IVTP; + if (val < REG_IVTP || val > REG_TVTP) + return 0; + if (! c4x_print_register (info, val)) + return 0; + break; + + case '|': /* Parallel instruction */ + c4x_print_str (info, " || "); + c4x_print_str (info, parallel); + c4x_print_char (info, ' '); + break; + + case ';': + c4x_print_char (info, ','); + break; + + default: + c4x_print_char (info, *s); + break; + } + s++; + } + return 1; +} + +static void +c4x_hash_opcode (optable, inst) + c4x_inst_t **optable; + const c4x_inst_t *inst; +{ + int j; + int opcode = inst->opcode >> (32 - C4X_HASH_SIZE); + int opmask = inst->opmask >> (32 - C4X_HASH_SIZE); + + /* Use a C4X_HASH_SIZE bit index as a hash index. We should + have unique entries so there's no point having a linked list + for each entry? */ + for (j = opcode; j < opmask; j++) + if ((j & opmask) == opcode) + { +#if C4X_DEBUG + /* We should only have collisions for synonyms like + ldp for ldi. */ + if (optable[j] != NULL) + printf("Collision at index %d, %s and %s\n", + j, optable[j]->name, inst->name); +#endif + optable[j] = (void *)inst; + } +} + +/* Disassemble the instruction in 'instruction'. + 'pc' should be the address of this instruction, it will + be used to print the target address if this is a relative jump or call + the disassembled instruction is written to 'info'. + The function returns the length of this instruction in words. */ + +static int +c4x_disassemble (pc, instruction, info) + unsigned long pc; + unsigned long instruction; + struct disassemble_info *info; +{ + static c4x_inst_t **optable = NULL; + c4x_inst_t *p; + int i; + + c4x_version = info->mach; + + if (optable == NULL) + { + optable = (c4x_inst_t **) + xcalloc (sizeof (c4x_inst_t *), (1 << C4X_HASH_SIZE)); + /* Install opcodes in reverse order so that preferred + forms overwrite synonyms. */ + for (i = c3x_num_insts - 1; i >= 0; i--) + c4x_hash_opcode (optable, &c3x_insts[i]); + if (IS_CPU_C4X (c4x_version)) + { + for (i = c4x_num_insts - 1; i >= 0; i--) + c4x_hash_opcode (optable, &c4x_insts[i]); + } + } + + /* See if we can pick up any loading of the DP register... */ + if ((instruction >> 16) == 0x5070 || (instruction >> 16) == 0x1f70) + c4x_dp = EXTRU (instruction, 15, 0); + + p = optable[instruction >> (32 - C4X_HASH_SIZE)]; + if (p != NULL && ((instruction & p->opmask) == p->opcode) + && c4x_print_op (NULL, instruction, p, pc)) + c4x_print_op (info, instruction, p, pc); + else + (*info->fprintf_func) (info->stream, "%08x", instruction); + + /* Return size of insn in words. */ + return 1; +} + +/* The entry point from objdump and gdb. */ +int +print_insn_tic4x (memaddr, info) + bfd_vma memaddr; + struct disassemble_info *info; +{ + int status; + unsigned long pc; + unsigned long op; + bfd_byte buffer[4]; + + status = (*info->read_memory_func) (memaddr, buffer, 4, info); + if (status != 0) + { + (*info->memory_error_func) (status, memaddr, info); + return -1; + } + + pc = memaddr; + op = bfd_getl32 (buffer); + info->bytes_per_line = 4; + info->bytes_per_chunk = 4; + info->octets_per_byte = 4; + info->display_endian = BFD_ENDIAN_LITTLE; + return c4x_disassemble (pc, op, info) * 4; +} diff -uprN binutils-2.13.90.0.4/opcodes/v850-dis.c binutils-2.13.90.0.10/opcodes/v850-dis.c --- binutils-2.13.90.0.4/opcodes/v850-dis.c Mon Aug 27 11:44:52 2001 +++ binutils-2.13.90.0.10/opcodes/v850-dis.c Fri Sep 27 08:33:09 2002 @@ -77,10 +77,6 @@ disassemble (memaddr, info, insn) case bfd_mach_v850e: target_processor = PROCESSOR_V850E; break; - - case bfd_mach_v850ea: - target_processor = PROCESSOR_V850EA; - break; } /* Find the opcode. */ diff -uprN binutils-2.13.90.0.4/opcodes/v850-opc.c binutils-2.13.90.0.10/opcodes/v850-opc.c --- binutils-2.13.90.0.4/opcodes/v850-opc.c Mon Oct 1 15:25:26 2001 +++ binutils-2.13.90.0.10/opcodes/v850-opc.c Fri Sep 27 08:33:09 2002 @@ -608,17 +608,13 @@ const struct v850_opcode v850_opcodes[] { "jmp", one (0x0060), one (0xffe0), {R1}, 1, PROCESSOR_ALL }, /* load/store instructions */ -{ "sld.bu", one (0x0300), one (0x0780), {D7, EP, R2_NOTR0}, 1, PROCESSOR_V850EA }, { "sld.bu", one (0x0060), one (0x07f0), {D4, EP, R2_NOTR0}, 1, PROCESSOR_V850E }, -{ "sld.hu", one (0x0400), one (0x0780), {D8_7, EP, R2_NOTR0}, 1, PROCESSOR_V850EA }, { "sld.hu", one (0x0070), one (0x07f0), {D5_4, EP, R2_NOTR0}, 1, PROCESSOR_V850E }, -{ "sld.b", one (0x0060), one (0x07f0), {D4, EP, R2}, 1, PROCESSOR_V850EA }, { "sld.b", one (0x0300), one (0x0780), {D7, EP, R2}, 1, PROCESSOR_V850E }, { "sld.b", one (0x0300), one (0x0780), {D7, EP, R2}, 1, PROCESSOR_V850 }, -{ "sld.h", one (0x0070), one (0x07f0), {D5_4, EP, R2}, 1, PROCESSOR_V850EA }, { "sld.h", one (0x0400), one (0x0780), {D8_7, EP, R2}, 1, PROCESSOR_V850E }, { "sld.h", one (0x0400), one (0x0780), {D8_7, EP, R2}, 1, PROCESSOR_V850 }, { "sld.w", one (0x0500), one (0x0781), {D8_6, EP, R2}, 1, PROCESSOR_ALL }, @@ -626,10 +622,6 @@ const struct v850_opcode v850_opcodes[] { "sst.h", one (0x0480), one (0x0780), {R2, D8_7, EP}, 2, PROCESSOR_ALL }, { "sst.w", one (0x0501), one (0x0781), {R2, D8_6, EP}, 2, PROCESSOR_ALL }, -{ "pushml", two (0x07e0, 0x0001), two (0xfff0, 0x0007), {LIST18_L}, 0, PROCESSOR_V850EA }, -{ "pushmh", two (0x07e0, 0x0003), two (0xfff0, 0x0007), {LIST18_H}, 0, PROCESSOR_V850EA }, -{ "popml", two (0x07f0, 0x0001), two (0xfff0, 0x0007), {LIST18_L}, 0, PROCESSOR_V850EA }, -{ "popmh", two (0x07f0, 0x0003), two (0xfff0, 0x0007), {LIST18_H}, 0, PROCESSOR_V850EA }, { "prepare", two (0x0780, 0x0003), two (0xffc0, 0x001f), {LIST12, IMM5, SP}, 0, PROCESSOR_NOT_V850 }, { "prepare", two (0x0780, 0x000b), two (0xffc0, 0x001f), {LIST12, IMM5, IMM16}, 0, PROCESSOR_NOT_V850 }, { "prepare", two (0x0780, 0x0013), two (0xffc0, 0x001f), {LIST12, IMM5, IMM16}, 0, PROCESSOR_NOT_V850 }, @@ -677,15 +669,6 @@ const struct v850_opcode v850_opcodes[] { "divh", two (0x07e0, 0x0280), two (0x07e0, 0x07ff), {R1, R2, R3}, 0, PROCESSOR_NOT_V850 }, { "divh", OP (0x02), OP_MASK, {R1, R2_NOTR0}, 0, PROCESSOR_ALL }, -{ "divhn", two (0x07e0, 0x0280), two (0x07e0, 0x07c3), {I5DIV, R1, R2, R3}, 0, PROCESSOR_V850EA }, -{ "divhun", two (0x07e0, 0x0282), two (0x07e0, 0x07c3), {I5DIV, R1, R2, R3}, 0, PROCESSOR_V850EA }, -{ "divn", two (0x07e0, 0x02c0), two (0x07e0, 0x07c3), {I5DIV, R1, R2, R3}, 0, PROCESSOR_V850EA }, -{ "divun", two (0x07e0, 0x02c2), two (0x07e0, 0x07c3), {I5DIV, R1, R2, R3}, 0, PROCESSOR_V850EA }, -{ "sdivhn", two (0x07e0, 0x0180), two (0x07e0, 0x07c3), {I5DIV, R1, R2, R3}, 0, PROCESSOR_V850EA }, -{ "sdivhun", two (0x07e0, 0x0182), two (0x07e0, 0x07c3), {I5DIV, R1, R2, R3}, 0, PROCESSOR_V850EA }, -{ "sdivn", two (0x07e0, 0x01c0), two (0x07e0, 0x07c3), {I5DIV, R1, R2, R3}, 0, PROCESSOR_V850EA }, -{ "sdivun", two (0x07e0, 0x01c2), two (0x07e0, 0x07c3), {I5DIV, R1, R2, R3}, 0, PROCESSOR_V850EA }, - { "nop", one (0x00), one (0xffff), {0}, 0, PROCESSOR_ALL }, { "mov", OP (0x10), OP_MASK, {I5, R2_NOTR0}, 0, PROCESSOR_ALL }, { "mov", one (0x0620), one (0xffe0), {IMM32, R1_NOTR0}, 0, PROCESSOR_NOT_V850 }, diff -uprN binutils-2.13.90.0.4/opcodes/z8k-dis.c binutils-2.13.90.0.10/opcodes/z8k-dis.c --- binutils-2.13.90.0.4/opcodes/z8k-dis.c Thu May 23 15:10:11 2002 +++ binutils-2.13.90.0.10/opcodes/z8k-dis.c Fri Sep 27 08:33:09 2002 @@ -515,10 +515,10 @@ unparse_instr (instr_data, is_segmented) break; case CLASS_BA: if (is_segmented) - sprintf (tmp_str, "rr%ld(#%lx)", instr_data->arg_reg[datum_value], + sprintf (tmp_str, "rr%ld(#0x%lx)", instr_data->arg_reg[datum_value], instr_data->immediate); else - sprintf (tmp_str, "r%ld(#%lx)", instr_data->arg_reg[datum_value], + sprintf (tmp_str, "r%ld(#0x%lx)", instr_data->arg_reg[datum_value], instr_data->immediate); strcat (out_str, tmp_str); break; diff -uprN binutils-2.13.90.0.4/opcodes/z8k-opc.h binutils-2.13.90.0.10/opcodes/z8k-opc.h --- binutils-2.13.90.0.4/opcodes/z8k-opc.h Thu May 23 15:10:11 2002 +++ binutils-2.13.90.0.10/opcodes/z8k-opc.h Fri Sep 27 08:33:09 2002 @@ -1621,14 +1621,14 @@ opcode_entry_type z8k_table[] = { {CLASS_BIT+3,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,135}, -/* 0011 1101 dddd 0100 imm16 *** in rd,imm16 */ +/* 0011 1011 dddd 0100 imm16 *** in rd,imm16 */ { #ifdef NICENAMES "in rd,imm16",16,12, 0x00, #endif "in",OPC_in,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM16),}, - {CLASS_BIT+3,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_BIT+4,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,136}, + {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RD),CLASS_BIT+4,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,136}, /* 0011 1100 ssN0 dddd *** inb rbd,@rs */ diff -uprN binutils-2.13.90.0.4/opcodes/z8kgen.c binutils-2.13.90.0.10/opcodes/z8kgen.c --- binutils-2.13.90.0.4/opcodes/z8kgen.c Thu May 23 15:10:11 2002 +++ binutils-2.13.90.0.10/opcodes/z8kgen.c Fri Sep 27 08:33:09 2002 @@ -209,8 +209,8 @@ struct op opt[] = "------", 8, 16, "0111 1010 0000 0000", "halt", 0, "------", 10, 16, "0011 1101 ssN0 dddd", "in rd,@rs", 0, - "------", 12, 16, "0011 1101 dddd 0100 imm16", "in rd,imm16", 0, "------", 12, 8, "0011 1100 ssN0 dddd", "inb rbd,@rs", 0, + "------", 12, 16, "0011 1011 dddd 0100 imm16", "in rd,imm16", 0, "------", 10, 8, "0011 1010 dddd 0100 imm16", "inb rbd,imm16", 0, "-ZSV--", 11, 16, "0010 1001 ddN0 imm4m1", "inc @rd,imm4m1", 0, "-ZSV--", 14, 16, "0110 1001 ddN0 imm4m1 address_dst", "inc address_dst(rd),imm4m1", 0, diff -uprN binutils-2.13.90.0.4/src-release binutils-2.13.90.0.10/src-release --- binutils-2.13.90.0.4/src-release Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.10/src-release Wed Oct 2 10:17:19 2002 @@ -0,0 +1,326 @@ +# Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, +# 1999, 2000, 2001, 2002 Free Software Foundation +# +# 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 +# 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 Makefile contains release scripts for gdb, binutils, and other +# packages which live in src. It used to be part of the top level Makefile, +# but that turned out to be very messy and hard to maintain. + +# This stuff really ought to be cleaned up and turned into something other +# than a Makefile. As it is it's heavily recursive. + +# This is the name of this script (!). Needed due to horrible recursion. +SELF = src-release + +SHELL = /bin/sh + +BZIPPROG = bzip2 +MD5PROG = md5sum + +# pwd command to use. Allow user to override default by setting PWDCMD in +# the environment to account for automounters. The make variable must not +# be called PWDCMD, otherwise the value set here is passed to make +# subprocesses and overrides the setting from the user's environment. +PWD = $${PWDCMD-pwd} + +# +# Support for building net releases + +# Files in devo used in any net release. +# ChangeLog omitted because it may refer to files which are not in this +# distribution (perhaps it would be better to include it anyway). +DEVO_SUPPORT= README Makefile.in configure configure.in \ + config.guess config.if config.sub config move-if-change \ + mpw-README mpw-build.in mpw-config.in mpw-configure mpw-install \ + COPYING COPYING.LIB install-sh config-ml.in symlink-tree \ + mkinstalldirs ltconfig ltmain.sh missing ylwrap \ + libtool.m4 gettext.m4 ltcf-c.sh ltcf-cxx.sh ltcf-gcj.sh + +# Files in devo/etc used in any net release. +# ChangeLog omitted because it may refer to files which are not in this +# distribution (perhaps it would be better to include it anyway). +ETC_SUPPORT= Makefile.in configure configure.in standards.texi \ + make-stds.texi standards.info* configure.texi configure.info* \ + configbuild.* configdev.* + + +# When you use `make setup-dirs' or `make taz' you should always redefine +# this macro. +SUPPORT_FILES = list-of-support-files-for-tool-in-question + +# NOTE: No double quotes in the below. It is used within shell script +# as VER="$(VER)" +VER = ` if grep 'AM_INIT_AUTOMAKE.*BFD_VERSION' $(TOOL)/configure.in >/dev/null 2>&1; then \ + sed < bfd/configure.in -n 's/AM_INIT_AUTOMAKE[^,]*, *\([^)]*\))/\1/p'; \ + elif grep AM_INIT_AUTOMAKE $(TOOL)/configure.in >/dev/null 2>&1; then \ + sed < $(TOOL)/configure.in -n 's/AM_INIT_AUTOMAKE[^,]*, *\([^)]*\))/\1/p'; \ + elif test -f $(TOOL)/version.in; then \ + head -1 $(TOOL)/version.in; \ + elif grep VERSION $(TOOL)/Makefile.in > /dev/null 2>&1; then \ + sed < $(TOOL)/Makefile.in -n 's/^VERSION *= *//p'; \ + else \ + echo VERSION; \ + fi` +PACKAGE = $(TOOL) + +.PHONY: taz +taz: $(DEVO_SUPPORT) $(SUPPORT_FILES) texinfo/texinfo.tex + $(MAKE) -f $(SELF) do-proto-toplev \ + TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \ + MD5PROG="$(MD5PROG)" \ + SUPPORT_FILES="$(SUPPORT_FILES)" + $(MAKE) -f $(SELF) do-md5sum \ + TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \ + MD5PROG="$(MD5PROG)" \ + SUPPORT_FILES="$(SUPPORT_FILES)" + $(MAKE) -f $(SELF) do-tar \ + TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \ + MD5PROG="$(MD5PROG)" \ + SUPPORT_FILES="$(SUPPORT_FILES)" + $(MAKE) -f $(SELF) do-bz2 \ + TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \ + MD5PROG="$(MD5PROG)" \ + SUPPORT_FILES="$(SUPPORT_FILES)" + +.PHONY: gdb-tar +gdb-tar: $(DEVO_SUPPORT) $(SUPPORT_FILES) texinfo/texinfo.tex + $(MAKE) -f $(SELF) do-proto-toplev \ + TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \ + MD5PROG="$(MD5PROG)" \ + SUPPORT_FILES="$(SUPPORT_FILES)" + $(MAKE) -f $(SELF) do-md5sum \ + TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \ + MD5PROG="$(MD5PROG)" \ + SUPPORT_FILES="$(SUPPORT_FILES)" + $(MAKE) -f $(SELF) do-djunpack \ + TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \ + MD5PROG="$(MD5PROG)" \ + SUPPORT_FILES="$(SUPPORT_FILES)" + $(MAKE) -f $(SELF) do-tar \ + TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \ + MD5PROG="$(MD5PROG)" \ + SUPPORT_FILES="$(SUPPORT_FILES)" + +.PHONY: gdb-taz +gdb-taz: gdb-tar $(DEVO_SUPPORT) $(SUPPORT_FILES) texinfo/texinfo.tex + $(MAKE) -f $(SELF) gdb-tar \ + TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \ + MD5PROG="$(MD5PROG)" \ + SUPPORT_FILES="$(SUPPORT_FILES)" + $(MAKE) -f $(SELF) do-bz2 \ + TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \ + MD5PROG="$(MD5PROG)" \ + SUPPORT_FILES="$(SUPPORT_FILES)" + +.PHONY: do-proto-toplev +do-proto-toplev: $(DEVO_SUPPORT) $(SUPPORT_FILES) texinfo/texinfo.tex + echo "==> Making $(PACKAGE)-$(VER)/" + # Take out texinfo from a few places. + sed -e '/^all\.normal: /s/\all-texinfo //' \ + -e '/^ install-texinfo /d' \ + tmp + mv -f tmp Makefile.in + # + ./configure sun4 + $(MAKE) configure-target \ + ALL_GCC="" ALL_GCC_C="" ALL_GCC_CXX="" \ + CC_FOR_TARGET="$(CC)" CXX_FOR_TARGET="$(CXX)" + # Make links, and run "make diststuff" or "make info" when needed. + rm -rf proto-toplev ; mkdir proto-toplev + set -e ; dirs="$(TOOL) $(DEVO_SUPPORT) $(SUPPORT_FILES)" ; \ + for d in $$dirs ; do \ + if [ -d $$d ]; then \ + if [ ! -f $$d/Makefile ] ; then true ; \ + elif grep '^diststuff:' $$d/Makefile >/dev/null ; then \ + (cd $$d ; $(MAKE) diststuff ) || exit 1 ; \ + elif grep '^info:' $$d/Makefile >/dev/null ; then \ + (cd $$d ; $(MAKE) info ) || exit 1 ; \ + fi ; \ + if [ -d $$d/proto-$$d.dir ]; then \ + ln -s ../$$d/proto-$$d.dir proto-toplev/$$d ; \ + else \ + ln -s ../$$d proto-toplev/$$d ; \ + fi ; \ + else ln -s ../$$d proto-toplev/$$d ; fi ; \ + done + cd etc && $(MAKE) info + $(MAKE) distclean + # + mkdir proto-toplev/etc + (cd proto-toplev/etc; \ + for i in $(ETC_SUPPORT); do \ + ln -s ../../etc/$$i . ; \ + done) + # + # Take out texinfo from configurable dirs + rm proto-toplev/configure.in + sed -e '/^host_tools=/s/texinfo //' \ + proto-toplev/configure.in + # + mkdir proto-toplev/texinfo + ln -s ../../texinfo/texinfo.tex proto-toplev/texinfo/ + if test -r texinfo/util/tex3patch ; then \ + mkdir proto-toplev/texinfo/util && \ + ln -s ../../../texinfo/util/tex3patch proto-toplev/texinfo/util ; \ + 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) + +.PHONY: do-tar +do-tar: + echo "==> Making $(PACKAGE)-$(VER).tar" + -rm -f $(PACKAGE)-$(VER).tar + find $(PACKAGE)-$(VER) -follow -name CVS -prune -o -type f -print \ + | tar cTfh - $(PACKAGE)-$(VER).tar + +.PHONY: do-bz2 +do-bz2: + echo "==> Bzipping $(PACKAGE)-$(VER).tar.bz2" + -rm -f $(PACKAGE)-$(VER).tar.bz2 + $(BZIPPROG) -v -9 $(PACKAGE)-$(VER).tar + +.PHONY: do-md5sum +do-md5sum: + echo "==> Adding md5 checksum to top-level directory" + cd proto-toplev && find * -follow -name CVS -prune -o -type f -print \ + | xargs $(MD5PROG) > ../md5.sum + mv md5.sum proto-toplev + +.PHONY: do-djunpack +do-djunpack: + echo "==> Adding updated djunpack.bat to top-level directory" + echo - 's /gdb-[0-9\.]*/gdb-'"$(VER)"'/' + sed < djunpack.bat > djunpack.new \ + -e 's/gdb-[0-9][0-9\.]*/gdb-'"$(VER)"'/' + mv djunpack.new djunpack.bat + -rm -f proto-toplev/djunpack.bat + ln -s ../djunpack.bat proto-toplev/djunpack.bat + +TEXINFO_SUPPORT= texinfo/texinfo.tex +DIST_SUPPORT= $(DEVO_SUPPORT) $(TEXINFO_SUPPORT) + +.PHONY: gas.tar.bz2 +GAS_SUPPORT_DIRS= bfd include libiberty opcodes intl setup.com makefile.vms mkdep +gas.tar.bz2: $(DIST_SUPPORT) $(GAS_SUPPORT_DIRS) gas + $(MAKE) -f $(SELF) taz TOOL=gas \ + MD5PROG="$(MD5PROG)" \ + SUPPORT_FILES="$(GAS_SUPPORT_DIRS)" + +# The FSF "binutils" release includes gprof and ld. +.PHONY: binutils.tar.bz2 +BINUTILS_SUPPORT_DIRS= bfd gas include libiberty opcodes ld gprof intl setup.com makefile.vms mkdep cpu +binutils.tar.bz2: $(DIST_SUPPORT) $(BINUTILS_SUPPORT_DIRS) binutils + $(MAKE) -f $(SELF) taz TOOL=binutils \ + MD5PROG="$(MD5PROG)" \ + SUPPORT_FILES="$(BINUTILS_SUPPORT_DIRS)" + +.PHONY: gas+binutils.tar.bz2 +GASB_SUPPORT_DIRS= $(GAS_SUPPORT_DIRS) binutils ld gprof +gas+binutils.tar.bz2: $(DIST_SUPPORT) $(GASB_SUPPORT_DIRS) gas + $(MAKE) -f $(SELF) taz TOOL=gas \ + MD5PROG="$(MD5PROG)" \ + SUPPORT_FILES="$(GASB_SUPPORT_DIRS)" + +GNATS_SUPPORT_DIRS=include libiberty send-pr +gnats.tar.bz2: $(DIST_SUPPORT) $(GNATS_SUPPORT_DIRS) gnats + $(MAKE) -f $(SELF) taz TOOL=gnats \ + MD5PROG="$(MD5PROG)" \ + SUPPORT_FILES="$(GNATS_SUPPORT_DIRS)" + +.PHONY: gdb.tar.bz2 +GDB_SUPPORT_DIRS= bfd include libiberty mmalloc opcodes readline sim utils intl +gdb.tar.bz2: $(DIST_SUPPORT) $(GDB_SUPPORT_DIRS) gdb + $(MAKE) -f $(SELF) gdb-taz TOOL=gdb \ + MD5PROG="$(MD5PROG)" \ + SUPPORT_FILES="$(GDB_SUPPORT_DIRS)" +.PHONY: gdb.tar +gdb.tar: $(DIST_SUPPORT) $(GDB_SUPPORT_DIRS) gdb + $(MAKE) -f $(SELF) gdb-tar TOOL=gdb \ + MD5PROG="$(MD5PROG)" \ + SUPPORT_FILES="$(GDB_SUPPORT_DIRS)" + +DEJAGNU_SUPPORT_DIRS= tcl expect libiberty +.PHONY: dejagnu.tar.bz2 +dejagnu.tar.bz2: $(DIST_SUPPORT) $(DEJAGNU_SUPPORT_DIRS) dejagnu + $(MAKE) -f $(SELF) taz TOOL=dejagnu \ + MD5PROG="$(MD5PROG)" \ + SUPPORT_FILES="$(DEJAGNU_SUPPORT_DIRS)" + +.PHONY: gdb+dejagnu.tar.bz2 +GDBD_SUPPORT_DIRS= $(GDB_SUPPORT_DIRS) tcl expect dejagnu +gdb+dejagnu.tar.bz2: $(DIST_SUPPORT) $(GDBD_SUPPORT_DIRS) gdb + $(MAKE) -f $(SELF) gdb-taz TOOL=gdb PACKAGE=gdb+dejagnu \ + MD5PROG="$(MD5PROG)" \ + SUPPORT_FILES="$(GDBD_SUPPORT_DIRS)" +.PHONY: gdb+dejagnu.tar +gdb+dejagnu.tar: $(DIST_SUPPORT) $(GDBD_SUPPORT_DIRS) gdb + $(MAKE) -f $(SELF) gdb-tar TOOL=gdb PACKAGE=gdb+dejagnu \ + MD5PROG="$(MD5PROG)" \ + SUPPORT_FILES="$(GDBD_SUPPORT_DIRS)" + +.PHONY: insight.tar.bz2 +INSIGHT_SUPPORT_DIRS= $(GDB_SUPPORT_DIRS) tcl tk itcl tix libgui +insight.tar.bz2: $(DIST_SUPPORT) $(GDB_SUPPORT_DIRS) gdb + $(MAKE) -f $(SELF) gdb-taz TOOL=gdb PACKAGE=insight \ + MD5PROG="$(MD5PROG)" \ + SUPPORT_FILES="$(INSIGHT_SUPPORT_DIRS)" +.PHONY: insight.tar +insight.tar: $(DIST_SUPPORT) $(GDB_SUPPORT_DIRS) gdb + $(MAKE) -f $(SELF) gdb-tar TOOL=gdb PACKAGE=insight \ + MD5PROG="$(MD5PROG)" \ + SUPPORT_FILES="$(INSIGHT_SUPPORT_DIRS)" + +.PHONY: insight+dejagnu.tar.bz2 +INSIGHTD_SUPPORT_DIRS= $(INSIGHT_SUPPORT_DIRS) expect dejagnu +insight+dejagnu.tar.bz2: $(DIST_SUPPORT) $(INSIGHTD_SUPPORT_DIRS) gdb + $(MAKE) -f $(SELF) gdb-taz TOOL=gdb PACKAGE="insight+dejagnu" \ + MD5PROG="$(MD5PROG)" \ + SUPPORT_FILES="$(INSIGHTD_SUPPORT_DIRS)" +.PHONY: insight+dejagnu.tar +insight+dejagnu.tar: $(DIST_SUPPORT) $(INSIGHTD_SUPPORT_DIRS) gdb + $(MAKE) -f $(SELF) gdb-tar TOOL=gdb PACKAGE="insight+dejagnu" \ + MD5PROG="$(MD5PROG)" \ + SUPPORT_FILES="$(INSIGHTD_SUPPORT_DIRS)" + +.PHONY: newlib.tar.bz2 +NEWLIB_SUPPORT_DIRS=libgloss +# taz configures for the sun4 target which won't configure newlib. +# We need newlib configured so that the .info files are made. +# Unfortunately, it is not enough to just configure newlib separately: +# taz will build the .info files but since SUBDIRS won't contain newlib, +# distclean won't be run (leaving Makefile, config.status, and the tmp files +# used in building the .info files, eg: *.def, *.ref). +# The problem isn't solvable however without a lot of extra work because +# target libraries are built in subdir $(target_alias) which gets nuked during +# the make distclean. For now punt on the issue of shipping newlib info files +# with newlib net releases and wait for a day when some native target (sun4?) +# supports newlib (if only minimally). +newlib.tar.bz2: $(DIST_SUPPORT) $(NEWLIB_SUPPORT_DIRS) newlib + $(MAKE) -f $(SELF) taz TOOL=newlib \ + MD5PROG="$(MD5PROG)" \ + SUPPORT_FILES="$(NEWLIB_SUPPORT_DIRS)" \ + DEVO_SUPPORT="$(DEVO_SUPPORT) COPYING.NEWLIB" newlib + +.NOEXPORT: +MAKEOVERRIDES= diff -uprN binutils-2.13.90.0.4/texinfo/texinfo.tex binutils-2.13.90.0.10/texinfo/texinfo.tex --- binutils-2.13.90.0.4/texinfo/texinfo.tex Thu Mar 7 11:52:40 2002 +++ binutils-2.13.90.0.10/texinfo/texinfo.tex Fri Sep 27 08:33:09 2002 @@ -3,7 +3,7 @@ % Load plain if necessary, i.e., if running under initex. \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi % -\def\texinfoversion{2002-02-14.08} +\def\texinfoversion{2002-06-04.06} % % Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, % 2000, 01, 02 Free Software Foundation, Inc. @@ -53,7 +53,7 @@ % texindex foo.?? % tex foo.texi % tex foo.texi -% dvips foo.dvi -o # or whatever, to process the dvi file; this makes foo.ps. +% dvips foo.dvi -o # or whatever; this makes foo.ps. % The extra TeX runs get the cross-reference information correct. % Sometimes one run after texindex suffices, and sometimes you need more % than two; texi2dvi does it as many times as necessary. @@ -846,8 +846,7 @@ where each line of input produces a line % @math gets a chance to work. This could perhaps be fixed, but for now % at least we can have real math in the main text, where it's needed most. % -% -\let\implicitmath = $ +\let\implicitmath = $%$ font-lock fix % % One complication: _ usually means subscripts, but it could also mean % an actual _ character, as in @math{@var{some_variable} + 1}. So make @@ -857,10 +856,22 @@ where each line of input produces a line {\catcode95 = \active % 95 = _ \gdef\mathunderscore{% \catcode95=\active - \def_{\ifnum\fam=\slfam\_\else\sb\fi}% + \def_{\ifnum\fam=\slfam \_\else\sb\fi}% }} % -\def\math{\tex\mathcode`\_="8000\mathunderscore \implicitmath\finishmath} +% Another complication: we want \\ (and @\) to output a \ character. +% FYI, plain.tex uses \\ as a temporary control sequence (why?), but +% this is not advertised and we don't care. Texinfo does not +% otherwise define @\. +% +% The \mathchar is class=0=ordinary, family=7=ttfam, position=5C=\. +\def\mathbackslash{\ifnum\fam=\ttfam \mathchar"075C \else\backslash \fi} +% +\def\math{% + \tex + \mathcode`\_="8000 \mathunderscore + \let\\ = \mathbackslash + \implicitmath\finishmath} \def\finishmath#1{#1\implicitmath\Etex} % @bullet and @minus need the same treatment as @math, just above. @@ -987,11 +998,11 @@ where each line of input produces a line \let\appendixentry = \chapentry \def\unnumbchapentry ##1##2{} \def\secentry ##1##2##3##4{\advancenumber{chap##2}} - \def\unnumbsecentry ##1##2{} + \def\unnumbsecentry ##1##2##3{\advancenumber{chap##2}} \def\subsecentry ##1##2##3##4##5{\advancenumber{sec##2.##3}} - \def\unnumbsubsecentry ##1##2{} + \def\unnumbsubsecentry ##1##2##3##4{\advancenumber{sec##2.##3}} \def\subsubsecentry ##1##2##3##4##5##6{\advancenumber{subsec##2.##3.##4}} - \def\unnumbsubsubsecentry ##1##2{} + \def\unnumbsubsubsecentry ##1##2##3##4##5{\advancenumber{subsec##2.##3.##4}} \input \jobname.toc \def\chapentry ##1##2##3{% \pdfoutline goto name{\pdfmkpgn{##3}}count-\expnumber{chap##2}{##1}} @@ -1000,16 +1011,16 @@ where each line of input produces a line \pdfoutline goto name{\pdfmkpgn{##2}}{##1}} \def\secentry ##1##2##3##4{% \pdfoutline goto name{\pdfmkpgn{##4}}count-\expnumber{sec##2.##3}{##1}} - \def\unnumbsecentry ##1##2{% - \pdfoutline goto name{\pdfmkpgn{##2}}{##1}} + \def\unnumbsecentry ##1##2##3{% + \pdfoutline goto name{\pdfmkpgn{##3}}{##1}} \def\subsecentry ##1##2##3##4##5{% \pdfoutline goto name{\pdfmkpgn{##5}}count-\expnumber{subsec##2.##3.##4}{##1}} - \def\unnumbsubsecentry ##1##2{% - \pdfoutline goto name{\pdfmkpgn{##2}}{##1}} + \def\unnumbsubsecentry ##1##2##3##4{% + \pdfoutline goto name{\pdfmkpgn{##4}}{##1}} \def\subsubsecentry ##1##2##3##4##5##6{% \pdfoutline goto name{\pdfmkpgn{##6}}{##1}} - \def\unnumbsubsubsecentry ##1##2{% - \pdfoutline goto name{\pdfmkpgn{##2}}{##1}} + \def\unnumbsubsubsecentry ##1##2##3##4##5{% + \pdfoutline goto name{\pdfmkpgn{##5}}{##1}} \input \jobname.toc \endgroup\fi }} @@ -1431,11 +1442,19 @@ where each line of input produces a line \def\realdash{-} \def\codedash{-\discretionary{}{}{}} -\def\codeunder{\ifusingtt{\normalunderscore\discretionary{}{}{}}{\_}} +\def\codeunder{% + % this is all so @math{@code{var_name}+1} can work. In math mode, _ + % is "active" (mathcode"8000) and \normalunderscore (or \char95, etc.) + % will therefore expand the active definition of _, which is us + % (inside @code that is), therefore an endless loop. + \ifusingtt{\ifmmode + \mathchar"075F % class 0=ordinary, family 7=ttfam, pos 0x5F=_. + \else\normalunderscore \fi + \discretionary{}{}{}}% + {\_}% +} \def\codex #1{\tclose{#1}\endgroup} -%\let\exp=\tclose %Was temporary - % @kbd is like @code, except that if the argument is just one @key command, % then @kbd has no effect. @@ -1637,8 +1656,6 @@ where each line of input produces a line \global\let\contents = \relax \global\let\shortcontents = \relax \fi - % - \ifpdf \pdfmakepagedesttrue \fi } \def\finishtitlepage{% @@ -2396,20 +2413,19 @@ width0pt\relax} \fi \let\item = \relax } -% Ignore @ignore ... @end ignore. +% Ignore @ignore, @ifhtml, @ifinfo, @ifplaintext, @ifnottex, @html, @menu, +% @direntry, and @documentdescription. % \def\ignore{\doignore{ignore}} - -% Also ignore @ifinfo, @ifhtml, @ifnottex, @html, @menu, -% @documentdescription, and @direntry text. -% -\def\ifinfo{\doignore{ifinfo}} \def\ifhtml{\doignore{ifhtml}} +\def\ifinfo{\doignore{ifinfo}} +\def\ifplaintext{\doignore{ifplaintext}} \def\ifnottex{\doignore{ifnottex}} \def\html{\doignore{html}} \def\menu{\doignore{menu}} -\def\documentdescription{\doignore{documentdescription}} \def\direntry{\doignore{direntry}} +\def\documentdescription{\doignore{documentdescription}} +\def\documentdescriptionword{documentdescription} % @dircategory CATEGORY -- specify a category of the dir file % which this file should belong to. Ignore this in TeX. @@ -2436,14 +2452,21 @@ width0pt\relax} \fi % We must not have @c interpreted as a control sequence. \catcode`\@ = 12 % - % Make the letter c a comment character so that the rest of the line - % will be ignored. This way, the document can have (for example) - % @c @end ifinfo - % and the @end ifinfo will be properly ignored. - % (We've just changed @ to catcode 12.) - \catcode`\c = 14 + \def\ignoreword{#1}% + \ifx\ignoreword\documentdescriptionword + % The c kludge breaks documentdescription, since + % `documentdescription' contains a `c'. Means not everything will + % be ignored inside @documentdescription, but oh well... + \else + % Make the letter c a comment character so that the rest of the line + % will be ignored. This way, the document can have (for example) + % @c @end ifinfo + % and the @end ifinfo will be properly ignored. + % (We've just changed @ to catcode 12.) + \catcode`\c = 14 + \fi % - % And now expand that command. + % And now expand the command defined above. \doignoretext } @@ -2634,19 +2657,21 @@ width0pt\relax} \fi \def\ifclearfail{\nestedignore{ifclear}} \defineunmatchedend{ifclear} -% @iftex, @ifnothtml, @ifnotinfo always succeed; we read the text -% following, through the first @end iftex (etc.). Make `@end iftex' -% (etc.) valid only after an @iftex. +% @iftex, @ifnothtml, @ifnotinfo, @ifnotplaintext always succeed; we +% read the text following, through the first @end iftex (etc.). Make +% `@end iftex' (etc.) valid only after an @iftex. % \def\iftex{\conditionalsucceed{iftex}} \def\ifnothtml{\conditionalsucceed{ifnothtml}} \def\ifnotinfo{\conditionalsucceed{ifnotinfo}} +\def\ifnotplaintext{\conditionalsucceed{ifnotplaintext}} \defineunmatchedend{iftex} \defineunmatchedend{ifnothtml} \defineunmatchedend{ifnotinfo} +\defineunmatchedend{ifnotplaintext} -% We can't just want to start a group at @iftex (for example) and end it -% at @end iftex, since then @set commands inside the conditional have no +% We can't just want to start a group at @iftex (etc.) and end it at +% @end iftex, since then @set commands inside the conditional have no % effect (they'd get reverted at the end of the group). So we must % define \Eiftex to redefine itself to be its previous value. (We can't % just define it to fail again with an ``unmatched end'' error, since @@ -2861,7 +2886,7 @@ width0pt\relax} \fi % If an index command is used in an @example environment, any spaces % therein should become regular spaces in the raw index file, not the -% expansion of \tie (\\leavevmode \penalty \@M \ ). +% expansion of \tie (\leavevmode \penalty \@M \ ). {\obeyspaces \gdef\unsepspaces{\obeyspaces\let =\space}} @@ -3613,7 +3638,8 @@ width0pt\relax} \fi \def\unnumberedseczzz #1{% \plainsecheading {#1}\gdef\thissection{#1}% \toks0 = {#1}% -\edef\temp{\noexpand\writetocentry{\realbackslash unnumbsecentry{\the\toks0}}}% +\edef\temp{\noexpand\writetocentry{\realbackslash unnumbsecentry% + {\the\toks0}{\the\chapno}}}% \temp \unnumbnoderef \nobreak @@ -3652,7 +3678,7 @@ width0pt\relax} \fi \plainsubsecheading {#1}\gdef\thissection{#1}% \toks0 = {#1}% \edef\temp{\noexpand\writetocentry{\realbackslash unnumbsubsecentry% - {\the\toks0}}}% + {\the\toks0}{\the\chapno}{\the\secno}}}% \temp \unnumbnoderef \nobreak @@ -3693,7 +3719,7 @@ width0pt\relax} \fi \plainsubsubsecheading {#1}\gdef\thissection{#1}% \toks0 = {#1}% \edef\temp{\noexpand\writetocentry{\realbackslash unnumbsubsubsecentry% - {\the\toks0}}}% + {\the\toks0}{\the\chapno}{\the\secno}{\the\subsecno}}}% \temp \unnumbnoderef \nobreak @@ -3905,7 +3931,7 @@ width0pt\relax} \fi % argument, which will end up as the last argument to the \...entry macro. % % We open the .toc file here instead of at @setfilename or any other -% given time so that @contents can be put in the document anywhere. +% fixed time so that @contents can be put in the document anywhere. % \newif\iftocfileopened \def\writetocentry#1{% @@ -3914,6 +3940,14 @@ width0pt\relax} \fi \global\tocfileopenedtrue \fi \iflinks \write\tocfile{#1{\folio}}\fi + % + % Tell \shipout to create a page destination if we're doing pdf, which + % will be the target of the links in the table of contents. We can't + % just do it on every page because the title pages are numbered 1 and + % 2 (the page numbers aren't printed), and so are the first two pages + % of the document. Thus, we'd have two destinations named `1', and + % two named `2'. + \ifpdf \pdfmakepagedesttrue \fi } \newskip\contentsrightmargin \contentsrightmargin=1in @@ -3978,11 +4012,11 @@ width0pt\relax} \fi \hyphenpenalty = 10000 \advance\baselineskip by 1pt % Open it up a little. \def\secentry ##1##2##3##4{} - \def\unnumbsecentry ##1##2{} + \def\unnumbsecentry ##1##2##3{} \def\subsecentry ##1##2##3##4##5{} - \def\unnumbsubsecentry ##1##2{} + \def\unnumbsubsecentry ##1##2##3##4{} \def\subsubsecentry ##1##2##3##4##5##6{} - \def\unnumbsubsubsecentry ##1##2{} + \def\unnumbsubsubsecentry ##1##2##3##4##5{} \openin 1 \jobname.toc \ifeof 1 \else \closein 1 @@ -4044,16 +4078,16 @@ width0pt\relax} \fi % Sections. \def\secentry#1#2#3#4{\dosecentry{#2.#3\labelspace#1}{#4}} -\def\unnumbsecentry#1#2{\dosecentry{#1}{#2}} +\def\unnumbsecentry#1#2#3{\dosecentry{#1}{#3}} % Subsections. \def\subsecentry#1#2#3#4#5{\dosubsecentry{#2.#3.#4\labelspace#1}{#5}} -\def\unnumbsubsecentry#1#2{\dosubsecentry{#1}{#2}} +\def\unnumbsubsecentry#1#2#3#4{\dosubsecentry{#1}{#4}} % And subsubsections. \def\subsubsecentry#1#2#3#4#5#6{% \dosubsubsecentry{#2.#3.#4.#5\labelspace#1}{#6}} -\def\unnumbsubsubsecentry#1#2{\dosubsubsecentry{#1}{#2}} +\def\unnumbsubsubsecentry#1#2#3#4#5{\dosubsubsecentry{#1}{#5}} % This parameter controls the indentation of the various levels. \newdimen\tocindent \tocindent = 3pc @@ -4114,36 +4148,27 @@ width0pt\relax} \fi \message{environments,} % @foo ... @end foo. +% @point{}, @result{}, @expansion{}, @print{}, @equiv{}. +% % Since these characters are used in examples, it should be an even number of % \tt widths. Each \tt character is 1en, so two makes it 1em. -% Furthermore, these definitions must come after we define our fonts. -\newbox\dblarrowbox \newbox\longdblarrowbox -\newbox\pushcharbox \newbox\bullbox -\newbox\equivbox \newbox\errorbox - -%{\tentt -%\global\setbox\dblarrowbox = \hbox to 1em{\hfil$\Rightarrow$\hfil} -%\global\setbox\longdblarrowbox = \hbox to 1em{\hfil$\mapsto$\hfil} -%\global\setbox\pushcharbox = \hbox to 1em{\hfil$\dashv$\hfil} -%\global\setbox\equivbox = \hbox to 1em{\hfil$\ptexequiv$\hfil} -% Adapted from the manmac format (p.420 of TeXbook) -%\global\setbox\bullbox = \hbox to 1em{\kern.15em\vrule height .75ex width .85ex -% depth .1ex\hfil} -%} - -% @point{}, @result{}, @expansion{}, @print{}, @equiv{}. +% \def\point{$\star$} \def\result{\leavevmode\raise.15ex\hbox to 1em{\hfil$\Rightarrow$\hfil}} \def\expansion{\leavevmode\raise.1ex\hbox to 1em{\hfil$\mapsto$\hfil}} \def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}} \def\equiv{\leavevmode\lower.1ex\hbox to 1em{\hfil$\ptexequiv$\hfil}} +% The @error{} command. % Adapted from the TeXbook's \boxit. +% +\newbox\errorbox +% {\tentt \global\dimen0 = 3em}% Width of the box. \dimen2 = .55pt % Thickness of rules % The text. (`r' is open on the right, `e' somewhat less so on the left.) \setbox0 = \hbox{\kern-.75pt \tensf error\kern-1.5pt} - +% \global\setbox\errorbox=\hbox to \dimen0{\hfil \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right. \advance\hsize by -2\dimen2 % Rules. @@ -4154,8 +4179,7 @@ width0pt\relax} \fi \kern3pt\vrule width\dimen2}% Space to right. \hrule height\dimen2} \hfil} - -% The @error{} command. +% \def\error{\leavevmode\lower.7ex\copy\errorbox} % @tex ... @end tex escapes into raw Tex temporarily. @@ -4195,9 +4219,9 @@ width0pt\relax} \fi \def\@{@}% \let\Etex=\endgroup} -% Define @lisp ... @endlisp. +% Define @lisp ... @end lisp. % @lisp does a \begingroup so it can rebind things, -% including the definition of @endlisp (which normally is erroneous). +% including the definition of @end lisp (which normally is erroneous). % Amount to narrow the margins by for @lisp. \newskip\lispnarrowing \lispnarrowing=0.4in @@ -4595,6 +4619,21 @@ width0pt\relax} \fi \endgroup\nonfillfinish\endgroup } +% @copying ... @end copying. +% Save the text away for @insertcopying later. +% +\newbox\copyingbox +% +\def\copying{\begingroup + \parindent = 0pt % looks wrong on title page + \def\Ecopying{\egroup\endgroup}% + \global\setbox\copyingbox = \vbox\bgroup +} + +% @insertcopying. +% +\def\insertcopying{\unvcopy\copyingbox} + \message{defuns,} % @defun etc. @@ -4691,56 +4730,60 @@ width0pt\relax} \fi {\df #1}\enskip % Generate function name } -% Actually process the body of a definition -% #1 should be the terminating control sequence, such as \Edefun. -% #2 should be the "another name" control sequence, such as \defunx. -% #3 should be the control sequence that actually processes the header, -% such as \defunheader. - -\def\defparsebody #1#2#3{\begingroup\inENV% Environment for definitionbody -\medbreak % -% Define the end token that this defining construct specifies -% so that it will exit this group. -\def#1{\endgraf\endgroup\medbreak}% -\def#2{\begingroup\obeylines\activeparens\spacesplit#3}% -\parindent=0in -\advance\leftskip by \defbodyindent -\exdentamount=\defbodyindent -\begingroup % -\catcode 61=\active % 61 is `=' -\obeylines\activeparens\spacesplit#3} - +% Common pieces to start any @def... % #1 is the \E... control sequence to end the definition (which we define). -% #2 is the \...x control sequence for consecutive fns (which we define). -% #3 is the control sequence to call to resume processing. +% #2 is the \...x control sequence (which our caller defines). +% #3 is the control sequence to process the header, such as \defunheader. +% +\def\parsebodycommon#1#2#3{% + \begingroup\inENV + % If there are two @def commands in a row, we'll have a \nobreak, + % which is there to keep the function description together with its + % header. But if there's nothing but headers, we want to allow a + % break after all. + \ifnum\lastpenalty = 10000 \penalty0 \fi + \medbreak + % + % Define the \E... end token that this defining construct specifies + % so that it will exit this group. + \def#1{\endgraf\endgroup\medbreak}% + % + \parindent=0in + \advance\leftskip by \defbodyindent + \exdentamount=\defbodyindent +} + +% Process body of @defun, @deffn, @defmac, etc. +% +\def\defparsebody#1#2#3{% + \parsebodycommon{#1}{#2}{#3}% + \def#2{\begingroup\obeylines\activeparens\spacesplit#3}% + \catcode61=\active % 61 is `=' + \begingroup\obeylines\activeparens + \spacesplit#3% +} + +% #1, #2, #3 are the common arguments (see \defparsebody). % #4, delimited by the space, is the class name. % -\def\defmethparsebody#1#2#3#4 {\begingroup\inENV % -\medbreak % -% Define the end token that this defining construct specifies -% so that it will exit this group. -\def#1{\endgraf\endgroup\medbreak}% -\def#2##1 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}}}% -\parindent=0in -\advance\leftskip by \defbodyindent -\exdentamount=\defbodyindent -\begingroup\obeylines\activeparens\spacesplit{#3{#4}}} +\def\defmethparsebody#1#2#3#4 {% + \parsebodycommon{#1}{#2}{#3}% + \def#2##1 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}}}% + \begingroup\obeylines\activeparens + \spacesplit{#3{#4}}% +} % Used for @deftypemethod and @deftypeivar. -% #1 is the \E... control sequence to end the definition (which we define). -% #2 is the \...x control sequence for consecutive fns (which we define). -% #3 is the control sequence to call to resume processing. +% #1, #2, #3 are the common arguments (see \defparsebody). % #4, delimited by a space, is the class name. % #5 is the method's return type. % -\def\deftypemethparsebody#1#2#3#4 #5 {\begingroup\inENV - \medbreak - \def#1{\endgraf\endgroup\medbreak}% +\def\deftypemethparsebody#1#2#3#4 #5 {% + \parsebodycommon{#1}{#2}{#3}% \def#2##1 ##2 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}{##2}}}% - \parindent=0in - \advance\leftskip by \defbodyindent - \exdentamount=\defbodyindent - \begingroup\obeylines\activeparens\spacesplit{#3{#4}{#5}}} + \begingroup\obeylines\activeparens + \spacesplit{#3{#4}{#5}}% +} % Used for @deftypeop. The change from \deftypemethparsebody is an % extra argument at the beginning which is the `category', instead of it @@ -4749,64 +4792,49 @@ width0pt\relax} \fi % input at hand. Thus also need a control sequence (passed as #5) for % the \E... definition to assign the category name to. % -\def\deftypeopparsebody#1#2#3#4#5 #6 {\begingroup\inENV - \medbreak - \def#1{\endgraf\endgroup\medbreak}% +\def\deftypeopparsebody#1#2#3#4#5 #6 {% + \parsebodycommon{#1}{#2}{#3}% \def#2##1 ##2 ##3 {% \def#4{##1}% \begingroup\obeylines\activeparens\spacesplit{#3{##2}{##3}}}% - \parindent=0in - \advance\leftskip by \defbodyindent - \exdentamount=\defbodyindent - \begingroup\obeylines\activeparens\spacesplit{#3{#5}{#6}}} + \begingroup\obeylines\activeparens + \spacesplit{#3{#5}{#6}}% +} -\def\defopparsebody #1#2#3#4#5 {\begingroup\inENV % -\medbreak % -% Define the end token that this defining construct specifies -% so that it will exit this group. -\def#1{\endgraf\endgroup\medbreak}% -\def#2##1 ##2 {\def#4{##1}% -\begingroup\obeylines\activeparens\spacesplit{#3{##2}}}% -\parindent=0in -\advance\leftskip by \defbodyindent -\exdentamount=\defbodyindent -\begingroup\obeylines\activeparens\spacesplit{#3{#5}}} +% For @defop. +\def\defopparsebody #1#2#3#4#5 {% + \parsebodycommon{#1}{#2}{#3}% + \def#2##1 ##2 {\def#4{##1}% + \begingroup\obeylines\activeparens\spacesplit{#3{##2}}}% + \begingroup\obeylines\activeparens + \spacesplit{#3{#5}}% +} % These parsing functions are similar to the preceding ones % except that they do not make parens into active characters. % These are used for "variables" since they have no arguments. - -\def\defvarparsebody #1#2#3{\begingroup\inENV% Environment for definitionbody -\medbreak % -% Define the end token that this defining construct specifies -% so that it will exit this group. -\def#1{\endgraf\endgroup\medbreak}% -\def#2{\begingroup\obeylines\spacesplit#3}% -\parindent=0in -\advance\leftskip by \defbodyindent -\exdentamount=\defbodyindent -\begingroup % -\catcode 61=\active % -\obeylines\spacesplit#3} - -% This is used for \def{tp,vr}parsebody. It could probably be used for -% some of the others, too, with some judicious conditionals. % -\def\parsebodycommon#1#2#3{% - \begingroup\inENV % - \medbreak % - % Define the end token that this defining construct specifies - % so that it will exit this group. - \def#1{\endgraf\endgroup\medbreak}% - \def#2##1 {\begingroup\obeylines\spacesplit{#3{##1}}}% - \parindent=0in - \advance\leftskip by \defbodyindent - \exdentamount=\defbodyindent +\def\defvarparsebody #1#2#3{% + \parsebodycommon{#1}{#2}{#3}% + \def#2{\begingroup\obeylines\spacesplit#3}% + \catcode61=\active % \begingroup\obeylines + \spacesplit#3% +} + +% @defopvar. +\def\defopvarparsebody #1#2#3#4#5 {% + \parsebodycommon{#1}{#2}{#3}% + \def#2##1 ##2 {\def#4{##1}% + \begingroup\obeylines\spacesplit{#3{##2}}}% + \begingroup\obeylines + \spacesplit{#3{#5}}% } \def\defvrparsebody#1#2#3#4 {% \parsebodycommon{#1}{#2}{#3}% + \def#2##1 {\begingroup\obeylines\spacesplit{#3{##1}}}% + \begingroup\obeylines \spacesplit{#3{#4}}% } @@ -4821,6 +4849,8 @@ width0pt\relax} \fi % \def\deftpparsebody #1#2#3#4 {% \parsebodycommon{#1}{#2}{#3}% + \def#2##1 {\begingroup\obeylines\spacesplit{#3{##1}}}% + \begingroup\obeylines \spacesplit{\parsetpheaderline{#3{#4}}}\empty } @@ -4837,33 +4867,19 @@ width0pt\relax} \fi #1{\removeemptybraces#2\relax}{#3}% }% -\def\defopvarparsebody #1#2#3#4#5 {\begingroup\inENV % -\medbreak % -% Define the end token that this defining construct specifies -% so that it will exit this group. -\def#1{\endgraf\endgroup\medbreak}% -\def#2##1 ##2 {\def#4{##1}% -\begingroup\obeylines\spacesplit{#3{##2}}}% -\parindent=0in -\advance\leftskip by \defbodyindent -\exdentamount=\defbodyindent -\begingroup\obeylines\spacesplit{#3{#5}}} - % Split up #2 at the first space token. % call #1 with two arguments: % the first is all of #2 before the space token, % the second is all of #2 after that space token. % If #2 contains no space token, all of it is passed as the first arg % and the second is passed as empty. - +% {\obeylines \gdef\spacesplit#1#2^^M{\endgroup\spacesplitfoo{#1}#2 \relax\spacesplitfoo}% \long\gdef\spacesplitfoo#1#2 #3#4\spacesplitfoo{% \ifx\relax #3% #1{#2}{}\else #1{#2}{#3#4}\fi}} -% So much for the things common to all kinds of definitions. - % Define @defun. % First, define the processing that is wanted for arguments of \defun @@ -5273,7 +5289,7 @@ width0pt\relax} \fi \message{Warning: redefining \the\macname}% \else \expandafter\ifx\csname \the\macname\endcsname \relax - \else \errmessage{The name \the\macname\space is reserved}\fi + \else \errmessage{Macro name \the\macname\space already defined}\fi \global\cslet{macsave.\the\macname}{\the\macname}% \global\expandafter\let\csname ismacro.\the\macname\endcsname=1% % Add the macroname to \macrolist @@ -6173,7 +6189,7 @@ should work if nowhere else does.} \def\normalless{<} \def\normalgreater{>} \def\normalplus{+} -\def\normaldollar{$} +\def\normaldollar{$}%$ font-lock fix % This macro is used to make a character print one way in ttfont % where it can probably just be output, and another way in other fonts, @@ -6222,7 +6238,7 @@ should work if nowhere else does.} \catcode`\+=\active \def+{{\tt \char 43}} \catcode`\$=\active -\def${\ifusingit{{\sl\$}}\normaldollar} +\def${\ifusingit{{\sl\$}}\normaldollar}%$ font-lock fix %\catcode 27=\active %\def^^[{$\diamondsuit$} @@ -6267,7 +6283,7 @@ should work if nowhere else does.} @let<=@normalless @let>=@normalgreater @let+=@normalplus -@let$=@normaldollar} +@let$=@normaldollar}%$ font-lock fix @def@normalturnoffactive{@let"=@normaldoublequote @let\=@normalbackslash @@ -6278,7 +6294,7 @@ should work if nowhere else does.} @let<=@normalless @let>=@normalgreater @let+=@normalplus -@let$=@normaldollar} +@let$=@normaldollar}%$ font-lock fix % Make _ and + \other characters, temporarily. % This is canceled by @fixbackslash.