diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/COPYING.NEWLIB binutils-2.14.90.0.5/COPYING.NEWLIB --- binutils-2.14.90.0.4.1/COPYING.NEWLIB 2003-01-21 10:21:32.000000000 -0800 +++ binutils-2.14.90.0.5/COPYING.NEWLIB 2003-07-23 08:08:07.000000000 -0700 @@ -542,7 +542,7 @@ duplicated in all such forms. This file is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -(21) Free Software Foundation LGPL License (i[3456]86-*-linux* targets only) +(21) Free Software Foundation LGPL License (*-linux* targets only) Copyright (C) 1990-1999, 2000, 2001 Free Software Foundation, Inc. @@ -621,7 +621,30 @@ of the software without specific, writte Hewlett-Packard Company makes no representations about the suitability of this software for any purpose. -(25) Red Hat Incorporated +(25) Henry Spencer (only *-linux targets) + +Copyright 1992, 1993, 1994 Henry Spencer. All rights reserved. +This software is not subject to any license of the American Telephone +and Telegraph Company or of the Regents of the University of California. + +Permission is granted to anyone to use this software for any purpose on +any computer system, and to alter it and redistribute it, subject +to the following restrictions: + +1. The author is not responsible for the consequences of use of this + software, no matter how awful, even if they arise from flaws in it. + +2. The origin of this software must not be misrepresented, either by + explicit claim or by omission. Since few users ever read sources, + credits must appear in the documentation. + +3. Altered versions must be plainly marked as such, and must not be + misrepresented as being the original software. Since few users + ever read sources, credits must appear in the documentation. + +4. This notice may not be removed or altered. + +(26) Red Hat Incorporated Unless otherwise stated in each remaining newlib file, the remaining files in the newlib subdirectory default to the following copyright. diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/ChangeLog binutils-2.14.90.0.5/ChangeLog --- binutils-2.14.90.0.4.1/ChangeLog 2003-05-23 07:18:52.000000000 -0700 +++ binutils-2.14.90.0.5/ChangeLog 2003-07-23 08:08:07.000000000 -0700 @@ -1,3 +1,157 @@ +2003-07-16 Nathanael Nerode + + * config.if: Remove unused libc_interface determination. + +2003-07-14 Nathanael Nerode + + * Makefile.in: Regenerate, correctly this time. + +2003-07-13 Nathanael Nerode + + * Makefile.tpl: Set INSTALL and friends using autoconf. Remove + unused INSTALL_PROGRAM_ARGS. + * configure.in: Use AC_PROG_INSTALL. + * Makefile.in: Regenerate. + * configure: Regenerate. + +2003-07-10 Alexandre Oliva + + * configure: Rebuilt. + 2001-09-26 Alexandre Oliva + * configure.in (noconfigdirs) [am33_2.0-*-linux*]: Don't build + newlib nor libgloss. + Wed May 9 10:07:19 2001 Alexandre Oliva + * configure.in (am33_2.0-*-linux*): Added. + +2003-07-09 Bob Wilson + + * configure.in: Add ${libgcj} to noconfigdirs for xtensa-*-* targets. + * configure: Regenerate. + +2003-07-06 H.J. Lu + + * config-ml.in: Replace PWD with PWD_COMMAND. + * Makefile.tpl: Likewise. + * Makefile.in: Regenerated. + +2003-06-27 Nathanael Nerode + + * configure.in: Clean up config-lang.in handling. Delete + useless assignment to "subdirs". + * configure: Regenerate. + +2003-06-26 Nathanael Nerode + + * configure.in: Rename 'target_libs' to 'target_libraries'. + Remove useless reference to 'target_libs'. + * configure: Regenerate. + +2003-06-23 Keith Seitz + + * Makefile.tpl: Add maybe-configure-itcl to configure-gdb. + * Makefile.in: Regenerate. + +2003-06-23 Nathanael Nerode + + * Makefile.def: Introduce flags_to_pass. + * Makefile.tpl: Generate BASE_FLAGS_TO_PASS using it. + * Makefile.in: Regenerate. + +2003-06-23 Hans-Peter Nilsson + + * configure.in (noconfigdirs) : Disable target-newlib + and target-libgloss. + : Disable gdb. + : Disable libf2c and ${libgcj}. + * configure: Regenerate. + +2003-06-17 Benjamin Kosnik + + * configure.in: Update testsuite_flags to new location. + * configure. Regenerate. + +2003-06-18 Nathanael Nerode + + * Makefile.tpl: Remove BUILD_CC stuff. + * Makefile.in: Regenerate. + +2003-06-14 H.J. Lu + + * config.guess: Update to 2003-06-12 version. + * config.sub: Update to 2003-06-13 version. + +2003-06-12 Thiemo Seufer + + * MAINTAINERS: Add myself as MIPS co-maintainer. + +2003-06-12 H.J. Lu + + * config.guess: Update to 2003-06-06 version. + * config.sub: Update to 2003-06-06 version. + +2003-06-11 Rainer Orth + + * configure.in: Don't pass --with-stabs for mips*-sgi-irix6*o32. + * configure. Regenerate. + +2003-06-10 Nathanael Nerode + + * configure.in: Disable serial configure by default. + * configure: Regenerate. + * Makefile.tpl: Abolish .NOTPARALLEL. + * Makefile.in: Regenerate. + + * Makefile.tpl: Replace {build,host,target}_canonical by + {build,host,target}. + * Makefile.in: Regenerate. + + * Makefile.tpl: Fix stupid pasto. + * Makefile.in: Regenerate. + +2003-06-09 Nathanael Nerode + + * Makefile.tpl: Remove bogus conditional. + * Makefile.in: Regenerate. + +2003-06-03 Nathanael Nerode + + * Makefile.tpl: Make 'recursive targets' using autogen rather + than shell loop. Remove duplicate 'clean' targets and false + comments. + * Makefile.def: Add systematic dependencies to 'recursive' targets. + Add systematic method of specifying missing targets in subdirs. + Add copyright boilerplate. + * Makefile.in: Regenerate. + * configure.in: Add 'recursive targets' to maybe list. + * configure: Regenerate. + + * Makefile.tpl: Rename [+target+] to [+make_target+]. + * Makefile.def: Rename 'target' to 'make_target'. + +2003-05-30 Nick Clifton + + * README-maintainer-mode: Update URL for locating blessed config + tools. + +2003-05-29 Robert Millan + + * ltconfig: Import this patch and modify for use with current + version of ltconfig: + + 2003-05-21 Bruno Haible + + * libtool.m4 (AC_LIBTOOL_SYS_DYNAMIC_LINKER): Add support for + GNU/FreeBSD. + +2003-05-28 DJ Delorie + + * Makefile.tpl: Make maybe-check-gcc .PHONY. + * Makefile.in: Regenerate. + +2003-05-28 Jeff Johnston + + * COPYING.NEWLIB: Add license info for newlib/libc/sys/linux/stdlib. + 2003-05-21 DJ Delorie * Makefile.tpl (configure-target-libiberty): Depend only on gcc, not diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/Makefile.def binutils-2.14.90.0.5/Makefile.def --- binutils-2.14.90.0.4.1/Makefile.def 2003-03-19 09:19:12.000000000 -0800 +++ binutils-2.14.90.0.5/Makefile.def 2003-07-23 08:08:23.000000000 -0700 @@ -1,7 +1,31 @@ #! /usr/bin/autogen AutoGen definitions Makefile.tpl; +// Makefile.in is generated from Makefile.tpl by 'autogen Makefile.def'. +// This file was originally written by Nathanael Nerode. +// +// Copyright 2002, 2003 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. + + +// "missing" indicates that that module doesn't supply +// that recursive target in its Makefile. + build_modules= { module= libiberty; }; +build_modules= { module= demangler; no_install=true; }; host_modules= { module= ash; }; host_modules= { module= autoconf; }; @@ -14,6 +38,7 @@ host_modules= { module= bison; no_check_ host_modules= { module= byacc; no_check_cross= true; }; host_modules= { module= bzip2; }; host_modules= { module= dejagnu; }; +host_modules= { module= demangler; no_install=true; }; host_modules= { module= diff; }; host_modules= { module= dosutils; no_check= true; }; host_modules= { module= etc; }; @@ -31,7 +56,8 @@ host_modules= { module= gzip; }; host_modules= { module= hello; }; host_modules= { module= indent; }; host_modules= { module= intl; }; -host_modules= { module= tcl; }; +host_modules= { module= tcl; + missing=mostlyclean; }; host_modules= { module= itcl; }; host_modules= { module= ld; }; host_modules= { module= libgui; }; @@ -65,17 +91,26 @@ host_modules= { module= expect; with_x=t host_modules= { module= guile; with_x=true; }; host_modules= { module= tk; with_x=true; }; host_modules= { module= tix; with_x=true; }; -host_modules= { module= libtermcap; no_check=true; no_clean=true; }; +host_modules= { module= libtermcap; no_check=true; + missing=mostlyclean; + missing=clean; + missing=distclean; + missing=maintainer-clean; }; host_modules= { module= utils; no_check=true; }; target_modules = { module= libstdc++-v3; raw_cxx=true; }; 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= libtermcap; no_check=true; + missing=mostlyclean; + missing=clean; + missing=distclean; + missing=maintainer-clean; }; target_modules = { module= winsup; }; target_modules = { module= libgloss; no_check=true; }; target_modules = { module= libiberty; }; +target_modules = { module= demangler; no_install=true; }; target_modules = { module= gperf; }; target_modules = { module= examples; no_check=true; no_install=true; }; target_modules = { module= libffi; }; @@ -85,14 +120,93 @@ target_modules = { module= boehm-gc; }; target_modules = { module= qthreads; }; target_modules = { module= rda; }; -// These are (some of) the targets to be done in each subdirectory. +// These are (some of) the make targets to be done in each subdirectory. // Not all; these are the ones which don't have special options. -recursive_targets = { target= clean; }; -recursive_targets = { target= distclean; }; -recursive_targets = { target= dvi; }; -recursive_targets = { target= info; }; -recursive_targets = { target= install-info; }; -recursive_targets = { target= installcheck; }; -recursive_targets = { target= mostlyclean; }; -recursive_targets = { target= maintainer-clean; }; -recursive_targets = { target= TAGS; }; +// "depend" indicates that a target depends on another target uniformly +// for each subdirectory. There can be several such lines per target. +recursive_targets = { make_target= info; + depend=configure; }; +recursive_targets = { make_target= dvi; + depend=configure; }; +recursive_targets = { make_target= TAGS; + depend=configure; }; +recursive_targets = { make_target= install-info; + depend=configure; + depend=info; }; +recursive_targets = { make_target= installcheck; + depend=configure; }; +recursive_targets = { make_target= mostlyclean; }; +recursive_targets = { make_target= clean; }; +recursive_targets = { make_target= distclean; }; +recursive_targets = { make_target= maintainer-clean; }; + +// Flags which need to be passed down. + +// Directories etc. +flags_to_pass = { flag= DESTDIR ; }; +flags_to_pass = { flag= RPATH_ENVVAR ; }; +flags_to_pass = { flag= TARGET_SUBDIR ; }; +flags_to_pass = { flag= bindir ; }; +flags_to_pass = { flag= datadir ; }; +flags_to_pass = { flag= exec_prefix ; }; +flags_to_pass = { flag= includedir ; }; +flags_to_pass = { flag= infodir ; }; +flags_to_pass = { flag= libdir ; }; +flags_to_pass = { flag= libexecdir ; }; +flags_to_pass = { flag= lispdir ; }; +flags_to_pass = { flag= libstdcxx_incdir ; }; +flags_to_pass = { flag= libsubdir ; }; +flags_to_pass = { flag= localstatedir ; }; +flags_to_pass = { flag= mandir ; }; +flags_to_pass = { flag= oldincludedir ; }; +flags_to_pass = { flag= prefix ; }; +flags_to_pass = { flag= sbindir ; }; +flags_to_pass = { flag= sharedstatedir ; }; +flags_to_pass = { flag= sysconfdir ; }; +flags_to_pass = { flag= tooldir ; }; +flags_to_pass = { flag= build_tooldir ; }; +flags_to_pass = { flag= gxx_include_dir ; }; +flags_to_pass = { flag= gcc_version ; }; +flags_to_pass = { flag= gcc_version_trigger ; }; +flags_to_pass = { flag= target_alias ; }; + +// Build tools +flags_to_pass = { flag= BISON ; }; +flags_to_pass = { flag= CC_FOR_BUILD ; }; +flags_to_pass = { flag= CXX_FOR_BUILD ; }; +flags_to_pass = { flag= EXPECT ; }; +flags_to_pass = { flag= INSTALL ; }; +flags_to_pass = { flag= INSTALL_DATA ; }; +flags_to_pass = { flag= INSTALL_PROGRAM ; }; +flags_to_pass = { flag= INSTALL_SCRIPT ; }; +flags_to_pass = { flag= LEX ; }; +flags_to_pass = { flag= M4 ; }; +flags_to_pass = { flag= MAKE ; }; +flags_to_pass = { flag= RUNTEST ; }; +flags_to_pass = { flag= RUNTESTFLAGS ; }; +flags_to_pass = { flag= SHELL ; }; +flags_to_pass = { flag= YACC ; }; + +// Host tools +flags_to_pass = { flag= AR_FLAGS ; }; +flags_to_pass = { flag= CFLAGS ; }; +flags_to_pass = { flag= CXXFLAGS ; }; +flags_to_pass = { flag= LDFLAGS ; }; +flags_to_pass = { flag= LIBCFLAGS ; }; +flags_to_pass = { flag= LIBCXXFLAGS ; }; + +// Target tools +flags_to_pass = { flag= AR_FOR_TARGET ; }; +flags_to_pass = { flag= AS_FOR_TARGET ; }; +flags_to_pass = { flag= CC_FOR_TARGET ; }; +flags_to_pass = { flag= CFLAGS_FOR_TARGET ; }; +flags_to_pass = { flag= CXX_FOR_TARGET ; }; +flags_to_pass = { flag= CXXFLAGS_FOR_TARGET ; }; +flags_to_pass = { flag= DLLTOOL_FOR_TARGET ; }; +flags_to_pass = { flag= GCJ_FOR_TARGET ; }; +flags_to_pass = { flag= LD_FOR_TARGET ; }; +flags_to_pass = { flag= LIBCFLAGS_FOR_TARGET ; }; +flags_to_pass = { flag= LIBCXXFLAGS_FOR_TARGET ; }; +flags_to_pass = { flag= NM_FOR_TARGET ; }; +flags_to_pass = { flag= RANLIB_FOR_TARGET ; }; +flags_to_pass = { flag= WINDRES_FOR_TARGET ; }; diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/Makefile.in binutils-2.14.90.0.5/Makefile.in --- binutils-2.14.90.0.4.1/Makefile.in 2003-05-23 07:18:52.000000000 -0700 +++ binutils-2.14.90.0.5/Makefile.in 2003-07-23 08:08:24.000000000 -0700 @@ -26,20 +26,11 @@ VPATH=@srcdir@ build_alias=@build_alias@ -build_cpu=@build_cpu@ -build_vendor=@build_vendor@ -build_os=@build_os@ -build_canonical=@build_cpu@-@build_vendor@-@build_os@ +build=@build@ host_alias=@host_alias@ -host_cpu=@host_cpu@ -host_vendor=@host_vendor@ -host_os=@host_os@ -host_canonical=@host_cpu@-@host_vendor@-@host_os@ +host=@host@ target_alias=@target_alias@ -target_cpu=@target_cpu@ -target_vendor=@target_vendor@ -target_os=@target_os@ -target_canonical=@target_cpu@-@target_vendor@-@target_os@ +target=@target@ program_transform_name = @program_transform_name@ @@ -70,14 +61,10 @@ man7dir = $(mandir)/man7 man8dir = $(mandir)/man8 man9dir = $(mandir)/man9 -# 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 = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_DATA = @INSTALL_DATA@ # ------------------------------------------------- # Miscellaneous non-standard autoconf-set variables @@ -116,7 +103,7 @@ REALLY_SET_LIB_PATH = \ $(RPATH_ENVVAR)=`echo "$(HOST_LIB_PATH):$(TARGET_LIB_PATH):$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR); # This is the list of directories to be built for the build system. -BUILD_CONFIGDIRS = libiberty +BUILD_CONFIGDIRS = libiberty demangler # Build programs are put under this directory. BUILD_SUBDIR = @build_subdir@ # This is set by the configure script to the arguments to use when configuring @@ -148,7 +135,9 @@ SHELL = @config_shell@ # 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} +# Don't use PWD since it is a common shell environment variable and we +# don't want to corrupt it. +PWD_COMMAND = $${PWDCMD-pwd} # compilers to use to create programs which must be run in the build # environment. @@ -159,7 +148,6 @@ CXX_FOR_BUILD = $(CXX) # Special variables passed down in EXTRA_GCC_FLAGS. They are defined # here so that they can be overridden by Makefile fragments. -BUILD_CC = $(CC_FOR_BUILD) BUILD_PREFIX = @BUILD_PREFIX@ BUILD_PREFIX_1 = @BUILD_PREFIX_1@ @@ -263,7 +251,7 @@ USUAL_AR_FOR_TARGET = ` \ if [ -f $$r/binutils/ar ] ; then \ echo $$r/binutils/ar ; \ else \ - if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ + if [ '$(host)' = '$(target)' ] ; then \ echo $(AR); \ else \ echo ar | sed '$(program_transform_name)' ; \ @@ -277,7 +265,7 @@ USUAL_AS_FOR_TARGET = ` \ elif [ -f $$r/gcc/xgcc ]; then \ $(CC_FOR_TARGET) -print-prog-name=as ; \ else \ - if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ + if [ '$(host)' = '$(target)' ] ; then \ echo $(AS); \ else \ echo as | sed '$(program_transform_name)' ; \ @@ -310,7 +298,7 @@ USUAL_DLLTOOL_FOR_TARGET = ` \ if [ -f $$r/binutils/dlltool ] ; then \ echo $$r/binutils/dlltool ; \ else \ - if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ + if [ '$(host)' = '$(target)' ] ; then \ echo $(DLLTOOL); \ else \ echo dlltool | sed '$(program_transform_name)' ; \ @@ -326,7 +314,7 @@ USUAL_LD_FOR_TARGET = ` \ elif [ -f $$r/gcc/xgcc ]; then \ $(CC_FOR_TARGET) -print-prog-name=ld ; \ else \ - if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ + if [ '$(host)' = '$(target)' ] ; then \ echo $(LD); \ else \ echo ld | sed '$(program_transform_name)' ; \ @@ -342,7 +330,7 @@ USUAL_NM_FOR_TARGET = ` \ elif [ -f $$r/gcc/xgcc ]; then \ $(CC_FOR_TARGET) -print-prog-name=nm ; \ else \ - if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ + if [ '$(host)' = '$(target)' ] ; then \ echo $(NM); \ else \ echo nm | sed '$(program_transform_name)' ; \ @@ -354,7 +342,7 @@ USUAL_RANLIB_FOR_TARGET = ` \ if [ -f $$r/binutils/ranlib ] ; then \ echo $$r/binutils/ranlib ; \ else \ - if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ + if [ '$(host)' = '$(target)' ] ; then \ if [ x'$(RANLIB)' != x ]; then \ echo $(RANLIB); \ else \ @@ -370,7 +358,7 @@ USUAL_WINDRES_FOR_TARGET = ` \ if [ -f $$r/binutils/windres ] ; then \ echo $$r/binutils/windres ; \ else \ - if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ + if [ '$(host)' = '$(target)' ] ; then \ echo $(WINDRES); \ else \ echo windres | sed '$(program_transform_name)' ; \ @@ -396,47 +384,10 @@ all: all.normal ### # 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)" \ "DESTDIR=$(DESTDIR)" \ - "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)" \ @@ -459,7 +410,43 @@ BASE_FLAGS_TO_PASS = \ "gxx_include_dir=$(gxx_include_dir)" \ "gcc_version=$(gcc_version)" \ "gcc_version_trigger=$(gcc_version_trigger)" \ - "target_alias=$(target_alias)" + "target_alias=$(target_alias)" \ + "BISON=$(BISON)" \ + "CC_FOR_BUILD=$(CC_FOR_BUILD)" \ + "CXX_FOR_BUILD=$(CXX_FOR_BUILD)" \ + "EXPECT=$(EXPECT)" \ + "INSTALL=$(INSTALL)" \ + "INSTALL_DATA=$(INSTALL_DATA)" \ + "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \ + "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \ + "LEX=$(LEX)" \ + "M4=$(M4)" \ + "MAKE=$(MAKE)" \ + "RUNTEST=$(RUNTEST)" \ + "RUNTESTFLAGS=$(RUNTESTFLAGS)" \ + "SHELL=$(SHELL)" \ + "YACC=$(YACC)" \ + "AR_FLAGS=$(AR_FLAGS)" \ + "CFLAGS=$(CFLAGS)" \ + "CXXFLAGS=$(CXXFLAGS)" \ + "LDFLAGS=$(LDFLAGS)" \ + "LIBCFLAGS=$(LIBCFLAGS)" \ + "LIBCXXFLAGS=$(LIBCXXFLAGS)" \ + "AR_FOR_TARGET=$(AR_FOR_TARGET)" \ + "AS_FOR_TARGET=$(AS_FOR_TARGET)" \ + "CC_FOR_TARGET=$(CC_FOR_TARGET)" \ + "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \ + "CXX_FOR_TARGET=$(CXX_FOR_TARGET)" \ + "CXXFLAGS_FOR_TARGET=$(CXXFLAGS_FOR_TARGET)" \ + "DLLTOOL_FOR_TARGET=$(DLLTOOL_FOR_TARGET)" \ + "GCJ_FOR_TARGET=$(GCJ_FOR_TARGET)" \ + "LD_FOR_TARGET=$(LD_FOR_TARGET)" \ + "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \ + "LIBCXXFLAGS_FOR_TARGET=$(LIBCXXFLAGS_FOR_TARGET)" \ + "NM_FOR_TARGET=$(NM_FOR_TARGET)" \ + "RANLIB_FOR_TARGET=$(RANLIB_FOR_TARGET)" \ + "WINDRES_FOR_TARGET=$(WINDRES_FOR_TARGET)" \ + "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" # For any flags above that may contain shell code that varies from one # target library to another. When doing recursive invocations of the @@ -472,7 +459,6 @@ RECURSE_FLAGS = \ # 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)' \ @@ -501,7 +487,6 @@ X11_FLAGS_TO_PASS = \ # 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)' \ @@ -523,7 +508,7 @@ TARGET_FLAGS_TO_PASS = $(BASE_FLAGS_TO_P # 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 +# The BUILD_* variables are a special case, which are used for the gcc # cross-building scheme. EXTRA_GCC_FLAGS = \ 'AR=$(AR)' \ @@ -531,7 +516,6 @@ EXTRA_GCC_FLAGS = \ 'CC=$(CC)' \ 'CXX=$(CXX)' \ 'DLLTOOL=$$(DLLTOOL_FOR_TARGET)' \ - 'BUILD_CC=$(CC_FOR_BUILD)' \ 'BUILD_PREFIX=$(BUILD_PREFIX)' \ 'BUILD_PREFIX_1=$(BUILD_PREFIX_1)' \ 'NM=$(NM)' \ @@ -564,6 +548,7 @@ configure-host: maybe-configure-gcc \ maybe-configure-byacc \ maybe-configure-bzip2 \ maybe-configure-dejagnu \ + maybe-configure-demangler \ maybe-configure-diff \ maybe-configure-dosutils \ maybe-configure-etc \ @@ -627,6 +612,7 @@ configure-target: \ maybe-configure-target-winsup \ maybe-configure-target-libgloss \ maybe-configure-target-libiberty \ + maybe-configure-target-demangler \ maybe-configure-target-gperf \ maybe-configure-target-examples \ maybe-configure-target-libffi \ @@ -636,93 +622,6 @@ configure-target: \ maybe-configure-target-qthreads \ maybe-configure-target-rda -# This is a list of the targets for which we can do a clean-{target}. -CLEAN_MODULES = \ - clean-ash \ - clean-autoconf \ - clean-automake \ - clean-bash \ - clean-bfd \ - clean-opcodes \ - clean-binutils \ - clean-bison \ - clean-byacc \ - clean-bzip2 \ - clean-dejagnu \ - clean-diff \ - clean-dosutils \ - clean-etc \ - clean-fastjar \ - clean-fileutils \ - clean-findutils \ - clean-find \ - clean-flex \ - clean-gas \ - clean-gawk \ - clean-gettext \ - clean-gnuserv \ - clean-gprof \ - clean-gzip \ - clean-hello \ - clean-indent \ - clean-intl \ - clean-tcl \ - clean-itcl \ - clean-ld \ - clean-libgui \ - clean-libiberty \ - clean-libtool \ - clean-m4 \ - clean-make \ - clean-mmalloc \ - clean-patch \ - clean-perl \ - clean-prms \ - clean-rcs \ - clean-readline \ - clean-release \ - clean-recode \ - clean-sed \ - clean-send-pr \ - clean-shellutils \ - clean-sid \ - clean-sim \ - clean-tar \ - clean-texinfo \ - clean-textutils \ - clean-time \ - clean-uudecode \ - clean-wdiff \ - clean-zip \ - clean-zlib \ - clean-utils - -# All of the target modules that can be cleaned -CLEAN_TARGET_MODULES = \ - clean-target-libstdc++-v3 \ - clean-target-newlib \ - clean-target-libf2c \ - clean-target-libobjc \ - clean-target-winsup \ - clean-target-libgloss \ - clean-target-libiberty \ - clean-target-gperf \ - clean-target-examples \ - clean-target-libffi \ - clean-target-libjava \ - clean-target-zlib \ - clean-target-boehm-gc \ - clean-target-qthreads \ - clean-target-rda - -# All of the x11 modules that can be cleaned -CLEAN_X11_MODULES = \ - clean-gdb \ - clean-expect \ - clean-guile \ - clean-tk \ - clean-tix - # The target built for a native build. .PHONY: all.normal all.normal: @all_build_modules@ all-host all-target @@ -740,6 +639,7 @@ all-host: maybe-all-gcc \ maybe-all-byacc \ maybe-all-bzip2 \ maybe-all-dejagnu \ + maybe-all-demangler \ maybe-all-diff \ maybe-all-dosutils \ maybe-all-etc \ @@ -803,6 +703,7 @@ all-target: \ maybe-all-target-winsup \ maybe-all-target-libgloss \ maybe-all-target-libiberty \ + maybe-all-target-demangler \ maybe-all-target-gperf \ maybe-all-target-examples \ maybe-all-target-libffi \ @@ -812,436 +713,16932 @@ all-target: \ maybe-all-target-qthreads \ maybe-all-target-rda -# 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 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). + +.PHONY: do-info +do-info: info-host info-target + +.PHONY: info-host +info-host: maybe-info-gcc \ + maybe-info-ash \ + maybe-info-autoconf \ + maybe-info-automake \ + maybe-info-bash \ + maybe-info-bfd \ + maybe-info-opcodes \ + maybe-info-binutils \ + maybe-info-bison \ + maybe-info-byacc \ + maybe-info-bzip2 \ + maybe-info-dejagnu \ + maybe-info-demangler \ + maybe-info-diff \ + maybe-info-dosutils \ + maybe-info-etc \ + maybe-info-fastjar \ + maybe-info-fileutils \ + maybe-info-findutils \ + maybe-info-find \ + maybe-info-flex \ + maybe-info-gas \ + maybe-info-gawk \ + maybe-info-gettext \ + maybe-info-gnuserv \ + maybe-info-gprof \ + maybe-info-gzip \ + maybe-info-hello \ + maybe-info-indent \ + maybe-info-intl \ + maybe-info-tcl \ + maybe-info-itcl \ + maybe-info-ld \ + maybe-info-libgui \ + maybe-info-libiberty \ + maybe-info-libtool \ + maybe-info-m4 \ + maybe-info-make \ + maybe-info-mmalloc \ + maybe-info-patch \ + maybe-info-perl \ + maybe-info-prms \ + maybe-info-rcs \ + maybe-info-readline \ + maybe-info-release \ + maybe-info-recode \ + maybe-info-sed \ + maybe-info-send-pr \ + maybe-info-shellutils \ + maybe-info-sid \ + maybe-info-sim \ + maybe-info-tar \ + maybe-info-texinfo \ + maybe-info-textutils \ + maybe-info-time \ + maybe-info-uudecode \ + maybe-info-wdiff \ + maybe-info-zip \ + maybe-info-zlib \ + maybe-info-gdb \ + maybe-info-expect \ + maybe-info-guile \ + maybe-info-tk \ + maybe-info-tix \ + maybe-info-libtermcap \ + maybe-info-utils + +.PHONY: info-target +info-target: \ + maybe-info-target-libstdc++-v3 \ + maybe-info-target-newlib \ + maybe-info-target-libf2c \ + maybe-info-target-libobjc \ + maybe-info-target-libtermcap \ + maybe-info-target-winsup \ + maybe-info-target-libgloss \ + maybe-info-target-libiberty \ + maybe-info-target-demangler \ + maybe-info-target-gperf \ + maybe-info-target-examples \ + maybe-info-target-libffi \ + maybe-info-target-libjava \ + maybe-info-target-zlib \ + maybe-info-target-boehm-gc \ + maybe-info-target-qthreads \ + maybe-info-target-rda + +# GCC, the eternal special case +.PHONY: maybe-info-gcc info-gcc +maybe-info-gcc: +info-gcc: \ + configure-gcc + @[ -f ./gcc/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_GCC_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in gcc" ; \ + (cd gcc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + +# Host modules. + +.PHONY: maybe-info-ash info-ash +maybe-info-ash: + +info-ash: \ + configure-ash + @[ -f ./ash/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in ash" ; \ + (cd ash && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-autoconf info-autoconf +maybe-info-autoconf: + +info-autoconf: \ + configure-autoconf + @[ -f ./autoconf/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in autoconf" ; \ + (cd autoconf && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-automake info-automake +maybe-info-automake: + +info-automake: \ + configure-automake + @[ -f ./automake/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in automake" ; \ + (cd automake && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-bash info-bash +maybe-info-bash: + +info-bash: \ + configure-bash + @[ -f ./bash/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in bash" ; \ + (cd bash && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-bfd info-bfd +maybe-info-bfd: + +info-bfd: \ + configure-bfd + @[ -f ./bfd/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in bfd" ; \ + (cd bfd && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-opcodes info-opcodes +maybe-info-opcodes: + +info-opcodes: \ + configure-opcodes + @[ -f ./opcodes/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in opcodes" ; \ + (cd opcodes && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-binutils info-binutils +maybe-info-binutils: + +info-binutils: \ + configure-binutils + @[ -f ./binutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in binutils" ; \ + (cd binutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-bison info-bison +maybe-info-bison: + +info-bison: \ + configure-bison + @[ -f ./bison/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in bison" ; \ + (cd bison && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-byacc info-byacc +maybe-info-byacc: + +info-byacc: \ + configure-byacc + @[ -f ./byacc/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in byacc" ; \ + (cd byacc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-bzip2 info-bzip2 +maybe-info-bzip2: + +info-bzip2: \ + configure-bzip2 + @[ -f ./bzip2/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in bzip2" ; \ + (cd bzip2 && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-dejagnu info-dejagnu +maybe-info-dejagnu: + +info-dejagnu: \ + configure-dejagnu + @[ -f ./dejagnu/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in dejagnu" ; \ + (cd dejagnu && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-demangler info-demangler +maybe-info-demangler: + +info-demangler: \ + configure-demangler + @[ -f ./demangler/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in demangler" ; \ + (cd demangler && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-diff info-diff +maybe-info-diff: + +info-diff: \ + configure-diff + @[ -f ./diff/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in diff" ; \ + (cd diff && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-dosutils info-dosutils +maybe-info-dosutils: + +info-dosutils: \ + configure-dosutils + @[ -f ./dosutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in dosutils" ; \ + (cd dosutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-etc info-etc +maybe-info-etc: + +info-etc: \ + configure-etc + @[ -f ./etc/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in etc" ; \ + (cd etc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-fastjar info-fastjar +maybe-info-fastjar: + +info-fastjar: \ + configure-fastjar + @[ -f ./fastjar/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in fastjar" ; \ + (cd fastjar && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-fileutils info-fileutils +maybe-info-fileutils: + +info-fileutils: \ + configure-fileutils + @[ -f ./fileutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in fileutils" ; \ + (cd fileutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-findutils info-findutils +maybe-info-findutils: + +info-findutils: \ + configure-findutils + @[ -f ./findutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in findutils" ; \ + (cd findutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-find info-find +maybe-info-find: + +info-find: \ + configure-find + @[ -f ./find/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in find" ; \ + (cd find && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-flex info-flex +maybe-info-flex: + +info-flex: \ + configure-flex + @[ -f ./flex/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in flex" ; \ + (cd flex && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-gas info-gas +maybe-info-gas: + +info-gas: \ + configure-gas + @[ -f ./gas/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in gas" ; \ + (cd gas && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-gawk info-gawk +maybe-info-gawk: + +info-gawk: \ + configure-gawk + @[ -f ./gawk/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in gawk" ; \ + (cd gawk && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-gettext info-gettext +maybe-info-gettext: + +info-gettext: \ + configure-gettext + @[ -f ./gettext/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in gettext" ; \ + (cd gettext && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-gnuserv info-gnuserv +maybe-info-gnuserv: + +info-gnuserv: \ + configure-gnuserv + @[ -f ./gnuserv/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in gnuserv" ; \ + (cd gnuserv && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-gprof info-gprof +maybe-info-gprof: + +info-gprof: \ + configure-gprof + @[ -f ./gprof/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in gprof" ; \ + (cd gprof && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-gzip info-gzip +maybe-info-gzip: + +info-gzip: \ + configure-gzip + @[ -f ./gzip/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in gzip" ; \ + (cd gzip && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-hello info-hello +maybe-info-hello: + +info-hello: \ + configure-hello + @[ -f ./hello/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in hello" ; \ + (cd hello && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-indent info-indent +maybe-info-indent: + +info-indent: \ + configure-indent + @[ -f ./indent/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in indent" ; \ + (cd indent && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-intl info-intl +maybe-info-intl: + +info-intl: \ + configure-intl + @[ -f ./intl/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in intl" ; \ + (cd intl && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-tcl info-tcl +maybe-info-tcl: + +info-tcl: \ + configure-tcl + @[ -f ./tcl/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in tcl" ; \ + (cd tcl && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-itcl info-itcl +maybe-info-itcl: + +info-itcl: \ + configure-itcl + @[ -f ./itcl/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in itcl" ; \ + (cd itcl && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-ld info-ld +maybe-info-ld: + +info-ld: \ + configure-ld + @[ -f ./ld/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in ld" ; \ + (cd ld && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-libgui info-libgui +maybe-info-libgui: + +info-libgui: \ + configure-libgui + @[ -f ./libgui/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in libgui" ; \ + (cd libgui && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-libiberty info-libiberty +maybe-info-libiberty: + +info-libiberty: \ + configure-libiberty + @[ -f ./libiberty/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in libiberty" ; \ + (cd libiberty && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-libtool info-libtool +maybe-info-libtool: + +info-libtool: \ + configure-libtool + @[ -f ./libtool/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in libtool" ; \ + (cd libtool && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-m4 info-m4 +maybe-info-m4: + +info-m4: \ + configure-m4 + @[ -f ./m4/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in m4" ; \ + (cd m4 && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-make info-make +maybe-info-make: + +info-make: \ + configure-make + @[ -f ./make/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in make" ; \ + (cd make && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-mmalloc info-mmalloc +maybe-info-mmalloc: + +info-mmalloc: \ + configure-mmalloc + @[ -f ./mmalloc/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in mmalloc" ; \ + (cd mmalloc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-patch info-patch +maybe-info-patch: + +info-patch: \ + configure-patch + @[ -f ./patch/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in patch" ; \ + (cd patch && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-perl info-perl +maybe-info-perl: + +info-perl: \ + configure-perl + @[ -f ./perl/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in perl" ; \ + (cd perl && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-prms info-prms +maybe-info-prms: + +info-prms: \ + configure-prms + @[ -f ./prms/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in prms" ; \ + (cd prms && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-rcs info-rcs +maybe-info-rcs: + +info-rcs: \ + configure-rcs + @[ -f ./rcs/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in rcs" ; \ + (cd rcs && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-readline info-readline +maybe-info-readline: + +info-readline: \ + configure-readline + @[ -f ./readline/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in readline" ; \ + (cd readline && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-release info-release +maybe-info-release: + +info-release: \ + configure-release + @[ -f ./release/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in release" ; \ + (cd release && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-recode info-recode +maybe-info-recode: + +info-recode: \ + configure-recode + @[ -f ./recode/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in recode" ; \ + (cd recode && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-sed info-sed +maybe-info-sed: + +info-sed: \ + configure-sed + @[ -f ./sed/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in sed" ; \ + (cd sed && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-send-pr info-send-pr +maybe-info-send-pr: + +info-send-pr: \ + configure-send-pr + @[ -f ./send-pr/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in send-pr" ; \ + (cd send-pr && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-shellutils info-shellutils +maybe-info-shellutils: + +info-shellutils: \ + configure-shellutils + @[ -f ./shellutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in shellutils" ; \ + (cd shellutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-sid info-sid +maybe-info-sid: + +info-sid: \ + configure-sid + @[ -f ./sid/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in sid" ; \ + (cd sid && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-sim info-sim +maybe-info-sim: + +info-sim: \ + configure-sim + @[ -f ./sim/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in sim" ; \ + (cd sim && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-tar info-tar +maybe-info-tar: + +info-tar: \ + configure-tar + @[ -f ./tar/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in tar" ; \ + (cd tar && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-texinfo info-texinfo +maybe-info-texinfo: + +info-texinfo: \ + configure-texinfo + @[ -f ./texinfo/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in texinfo" ; \ + (cd texinfo && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-textutils info-textutils +maybe-info-textutils: + +info-textutils: \ + configure-textutils + @[ -f ./textutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in textutils" ; \ + (cd textutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-time info-time +maybe-info-time: + +info-time: \ + configure-time + @[ -f ./time/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in time" ; \ + (cd time && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-uudecode info-uudecode +maybe-info-uudecode: + +info-uudecode: \ + configure-uudecode + @[ -f ./uudecode/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in uudecode" ; \ + (cd uudecode && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-wdiff info-wdiff +maybe-info-wdiff: + +info-wdiff: \ + configure-wdiff + @[ -f ./wdiff/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in wdiff" ; \ + (cd wdiff && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-zip info-zip +maybe-info-zip: + +info-zip: \ + configure-zip + @[ -f ./zip/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in zip" ; \ + (cd zip && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-zlib info-zlib +maybe-info-zlib: + +info-zlib: \ + configure-zlib + @[ -f ./zlib/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in zlib" ; \ + (cd zlib && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-gdb info-gdb +maybe-info-gdb: + +info-gdb: \ + configure-gdb + @[ -f ./gdb/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in gdb" ; \ + (cd gdb && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-expect info-expect +maybe-info-expect: + +info-expect: \ + configure-expect + @[ -f ./expect/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in expect" ; \ + (cd expect && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-guile info-guile +maybe-info-guile: + +info-guile: \ + configure-guile + @[ -f ./guile/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in guile" ; \ + (cd guile && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-tk info-tk +maybe-info-tk: + +info-tk: \ + configure-tk + @[ -f ./tk/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in tk" ; \ + (cd tk && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-tix info-tix +maybe-info-tix: + +info-tix: \ + configure-tix + @[ -f ./tix/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in tix" ; \ + (cd tix && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-libtermcap info-libtermcap +maybe-info-libtermcap: + +info-libtermcap: \ + configure-libtermcap + @[ -f ./libtermcap/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in libtermcap" ; \ + (cd libtermcap && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-utils info-utils +maybe-info-utils: + +info-utils: \ + configure-utils + @[ -f ./utils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in utils" ; \ + (cd utils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + + +# Target modules. + +.PHONY: maybe-info-target-libstdc++-v3 info-target-libstdc++-v3 +maybe-info-target-libstdc++-v3: + +info-target-libstdc++-v3: \ + configure-target-libstdc++-v3 + @[ -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing info in $(TARGET_SUBDIR)/libstdc++-v3" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libstdc++-v3 && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-target-newlib info-target-newlib +maybe-info-target-newlib: + +info-target-newlib: \ + configure-target-newlib + @[ -f $(TARGET_SUBDIR)/newlib/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing info in $(TARGET_SUBDIR)/newlib" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/newlib && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-target-libf2c info-target-libf2c +maybe-info-target-libf2c: + +info-target-libf2c: \ + configure-target-libf2c + @[ -f $(TARGET_SUBDIR)/libf2c/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing info in $(TARGET_SUBDIR)/libf2c" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libf2c && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-target-libobjc info-target-libobjc +maybe-info-target-libobjc: + +info-target-libobjc: \ + configure-target-libobjc + @[ -f $(TARGET_SUBDIR)/libobjc/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing info in $(TARGET_SUBDIR)/libobjc" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libobjc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-target-libtermcap info-target-libtermcap +maybe-info-target-libtermcap: + +info-target-libtermcap: \ + configure-target-libtermcap + @[ -f $(TARGET_SUBDIR)/libtermcap/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing info in $(TARGET_SUBDIR)/libtermcap" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libtermcap && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-target-winsup info-target-winsup +maybe-info-target-winsup: + +info-target-winsup: \ + configure-target-winsup + @[ -f $(TARGET_SUBDIR)/winsup/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing info in $(TARGET_SUBDIR)/winsup" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/winsup && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-target-libgloss info-target-libgloss +maybe-info-target-libgloss: + +info-target-libgloss: \ + configure-target-libgloss + @[ -f $(TARGET_SUBDIR)/libgloss/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing info in $(TARGET_SUBDIR)/libgloss" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libgloss && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-target-libiberty info-target-libiberty +maybe-info-target-libiberty: + +info-target-libiberty: \ + configure-target-libiberty + @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing info in $(TARGET_SUBDIR)/libiberty" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libiberty && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-target-demangler info-target-demangler +maybe-info-target-demangler: + +info-target-demangler: \ + configure-target-demangler + @[ -f $(TARGET_SUBDIR)/demangler/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing info in $(TARGET_SUBDIR)/demangler" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/demangler && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-target-gperf info-target-gperf +maybe-info-target-gperf: + +info-target-gperf: \ + configure-target-gperf + @[ -f $(TARGET_SUBDIR)/gperf/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing info in $(TARGET_SUBDIR)/gperf" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/gperf && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-target-examples info-target-examples +maybe-info-target-examples: + +info-target-examples: \ + configure-target-examples + @[ -f $(TARGET_SUBDIR)/examples/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing info in $(TARGET_SUBDIR)/examples" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/examples && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-target-libffi info-target-libffi +maybe-info-target-libffi: + +info-target-libffi: \ + configure-target-libffi + @[ -f $(TARGET_SUBDIR)/libffi/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing info in $(TARGET_SUBDIR)/libffi" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libffi && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-target-libjava info-target-libjava +maybe-info-target-libjava: + +info-target-libjava: \ + configure-target-libjava + @[ -f $(TARGET_SUBDIR)/libjava/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing info in $(TARGET_SUBDIR)/libjava" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libjava && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-target-zlib info-target-zlib +maybe-info-target-zlib: + +info-target-zlib: \ + configure-target-zlib + @[ -f $(TARGET_SUBDIR)/zlib/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing info in $(TARGET_SUBDIR)/zlib" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/zlib && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-target-boehm-gc info-target-boehm-gc +maybe-info-target-boehm-gc: + +info-target-boehm-gc: \ + configure-target-boehm-gc + @[ -f $(TARGET_SUBDIR)/boehm-gc/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing info in $(TARGET_SUBDIR)/boehm-gc" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/boehm-gc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-target-qthreads info-target-qthreads +maybe-info-target-qthreads: + +info-target-qthreads: \ + configure-target-qthreads + @[ -f $(TARGET_SUBDIR)/qthreads/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing info in $(TARGET_SUBDIR)/qthreads" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/qthreads && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + +.PHONY: maybe-info-target-rda info-target-rda +maybe-info-target-rda: + +info-target-rda: \ + configure-target-rda + @[ -f $(TARGET_SUBDIR)/rda/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing info in $(TARGET_SUBDIR)/rda" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/rda && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1 + + + +.PHONY: do-dvi +do-dvi: dvi-host dvi-target + +.PHONY: dvi-host +dvi-host: maybe-dvi-gcc \ + maybe-dvi-ash \ + maybe-dvi-autoconf \ + maybe-dvi-automake \ + maybe-dvi-bash \ + maybe-dvi-bfd \ + maybe-dvi-opcodes \ + maybe-dvi-binutils \ + maybe-dvi-bison \ + maybe-dvi-byacc \ + maybe-dvi-bzip2 \ + maybe-dvi-dejagnu \ + maybe-dvi-demangler \ + maybe-dvi-diff \ + maybe-dvi-dosutils \ + maybe-dvi-etc \ + maybe-dvi-fastjar \ + maybe-dvi-fileutils \ + maybe-dvi-findutils \ + maybe-dvi-find \ + maybe-dvi-flex \ + maybe-dvi-gas \ + maybe-dvi-gawk \ + maybe-dvi-gettext \ + maybe-dvi-gnuserv \ + maybe-dvi-gprof \ + maybe-dvi-gzip \ + maybe-dvi-hello \ + maybe-dvi-indent \ + maybe-dvi-intl \ + maybe-dvi-tcl \ + maybe-dvi-itcl \ + maybe-dvi-ld \ + maybe-dvi-libgui \ + maybe-dvi-libiberty \ + maybe-dvi-libtool \ + maybe-dvi-m4 \ + maybe-dvi-make \ + maybe-dvi-mmalloc \ + maybe-dvi-patch \ + maybe-dvi-perl \ + maybe-dvi-prms \ + maybe-dvi-rcs \ + maybe-dvi-readline \ + maybe-dvi-release \ + maybe-dvi-recode \ + maybe-dvi-sed \ + maybe-dvi-send-pr \ + maybe-dvi-shellutils \ + maybe-dvi-sid \ + maybe-dvi-sim \ + maybe-dvi-tar \ + maybe-dvi-texinfo \ + maybe-dvi-textutils \ + maybe-dvi-time \ + maybe-dvi-uudecode \ + maybe-dvi-wdiff \ + maybe-dvi-zip \ + maybe-dvi-zlib \ + maybe-dvi-gdb \ + maybe-dvi-expect \ + maybe-dvi-guile \ + maybe-dvi-tk \ + maybe-dvi-tix \ + maybe-dvi-libtermcap \ + maybe-dvi-utils + +.PHONY: dvi-target +dvi-target: \ + maybe-dvi-target-libstdc++-v3 \ + maybe-dvi-target-newlib \ + maybe-dvi-target-libf2c \ + maybe-dvi-target-libobjc \ + maybe-dvi-target-libtermcap \ + maybe-dvi-target-winsup \ + maybe-dvi-target-libgloss \ + maybe-dvi-target-libiberty \ + maybe-dvi-target-demangler \ + maybe-dvi-target-gperf \ + maybe-dvi-target-examples \ + maybe-dvi-target-libffi \ + maybe-dvi-target-libjava \ + maybe-dvi-target-zlib \ + maybe-dvi-target-boehm-gc \ + maybe-dvi-target-qthreads \ + maybe-dvi-target-rda + +# GCC, the eternal special case +.PHONY: maybe-dvi-gcc dvi-gcc +maybe-dvi-gcc: +dvi-gcc: \ + configure-gcc + @[ -f ./gcc/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_GCC_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in gcc" ; \ + (cd gcc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + +# Host modules. + +.PHONY: maybe-dvi-ash dvi-ash +maybe-dvi-ash: + +dvi-ash: \ + configure-ash + @[ -f ./ash/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in ash" ; \ + (cd ash && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-autoconf dvi-autoconf +maybe-dvi-autoconf: + +dvi-autoconf: \ + configure-autoconf + @[ -f ./autoconf/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in autoconf" ; \ + (cd autoconf && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-automake dvi-automake +maybe-dvi-automake: + +dvi-automake: \ + configure-automake + @[ -f ./automake/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in automake" ; \ + (cd automake && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-bash dvi-bash +maybe-dvi-bash: + +dvi-bash: \ + configure-bash + @[ -f ./bash/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in bash" ; \ + (cd bash && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-bfd dvi-bfd +maybe-dvi-bfd: + +dvi-bfd: \ + configure-bfd + @[ -f ./bfd/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in bfd" ; \ + (cd bfd && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-opcodes dvi-opcodes +maybe-dvi-opcodes: + +dvi-opcodes: \ + configure-opcodes + @[ -f ./opcodes/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in opcodes" ; \ + (cd opcodes && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-binutils dvi-binutils +maybe-dvi-binutils: + +dvi-binutils: \ + configure-binutils + @[ -f ./binutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in binutils" ; \ + (cd binutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-bison dvi-bison +maybe-dvi-bison: + +dvi-bison: \ + configure-bison + @[ -f ./bison/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in bison" ; \ + (cd bison && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-byacc dvi-byacc +maybe-dvi-byacc: + +dvi-byacc: \ + configure-byacc + @[ -f ./byacc/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in byacc" ; \ + (cd byacc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-bzip2 dvi-bzip2 +maybe-dvi-bzip2: + +dvi-bzip2: \ + configure-bzip2 + @[ -f ./bzip2/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in bzip2" ; \ + (cd bzip2 && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-dejagnu dvi-dejagnu +maybe-dvi-dejagnu: + +dvi-dejagnu: \ + configure-dejagnu + @[ -f ./dejagnu/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in dejagnu" ; \ + (cd dejagnu && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-demangler dvi-demangler +maybe-dvi-demangler: + +dvi-demangler: \ + configure-demangler + @[ -f ./demangler/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in demangler" ; \ + (cd demangler && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-diff dvi-diff +maybe-dvi-diff: + +dvi-diff: \ + configure-diff + @[ -f ./diff/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in diff" ; \ + (cd diff && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-dosutils dvi-dosutils +maybe-dvi-dosutils: + +dvi-dosutils: \ + configure-dosutils + @[ -f ./dosutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in dosutils" ; \ + (cd dosutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-etc dvi-etc +maybe-dvi-etc: + +dvi-etc: \ + configure-etc + @[ -f ./etc/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in etc" ; \ + (cd etc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-fastjar dvi-fastjar +maybe-dvi-fastjar: + +dvi-fastjar: \ + configure-fastjar + @[ -f ./fastjar/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in fastjar" ; \ + (cd fastjar && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-fileutils dvi-fileutils +maybe-dvi-fileutils: + +dvi-fileutils: \ + configure-fileutils + @[ -f ./fileutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in fileutils" ; \ + (cd fileutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-findutils dvi-findutils +maybe-dvi-findutils: + +dvi-findutils: \ + configure-findutils + @[ -f ./findutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in findutils" ; \ + (cd findutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-find dvi-find +maybe-dvi-find: + +dvi-find: \ + configure-find + @[ -f ./find/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in find" ; \ + (cd find && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-flex dvi-flex +maybe-dvi-flex: + +dvi-flex: \ + configure-flex + @[ -f ./flex/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in flex" ; \ + (cd flex && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-gas dvi-gas +maybe-dvi-gas: + +dvi-gas: \ + configure-gas + @[ -f ./gas/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in gas" ; \ + (cd gas && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-gawk dvi-gawk +maybe-dvi-gawk: + +dvi-gawk: \ + configure-gawk + @[ -f ./gawk/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in gawk" ; \ + (cd gawk && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-gettext dvi-gettext +maybe-dvi-gettext: + +dvi-gettext: \ + configure-gettext + @[ -f ./gettext/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in gettext" ; \ + (cd gettext && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-gnuserv dvi-gnuserv +maybe-dvi-gnuserv: + +dvi-gnuserv: \ + configure-gnuserv + @[ -f ./gnuserv/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in gnuserv" ; \ + (cd gnuserv && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-gprof dvi-gprof +maybe-dvi-gprof: + +dvi-gprof: \ + configure-gprof + @[ -f ./gprof/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in gprof" ; \ + (cd gprof && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-gzip dvi-gzip +maybe-dvi-gzip: + +dvi-gzip: \ + configure-gzip + @[ -f ./gzip/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in gzip" ; \ + (cd gzip && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-hello dvi-hello +maybe-dvi-hello: + +dvi-hello: \ + configure-hello + @[ -f ./hello/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in hello" ; \ + (cd hello && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-indent dvi-indent +maybe-dvi-indent: + +dvi-indent: \ + configure-indent + @[ -f ./indent/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in indent" ; \ + (cd indent && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-intl dvi-intl +maybe-dvi-intl: + +dvi-intl: \ + configure-intl + @[ -f ./intl/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in intl" ; \ + (cd intl && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-tcl dvi-tcl +maybe-dvi-tcl: + +dvi-tcl: \ + configure-tcl + @[ -f ./tcl/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in tcl" ; \ + (cd tcl && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-itcl dvi-itcl +maybe-dvi-itcl: + +dvi-itcl: \ + configure-itcl + @[ -f ./itcl/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in itcl" ; \ + (cd itcl && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-ld dvi-ld +maybe-dvi-ld: + +dvi-ld: \ + configure-ld + @[ -f ./ld/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in ld" ; \ + (cd ld && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-libgui dvi-libgui +maybe-dvi-libgui: + +dvi-libgui: \ + configure-libgui + @[ -f ./libgui/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in libgui" ; \ + (cd libgui && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-libiberty dvi-libiberty +maybe-dvi-libiberty: + +dvi-libiberty: \ + configure-libiberty + @[ -f ./libiberty/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in libiberty" ; \ + (cd libiberty && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-libtool dvi-libtool +maybe-dvi-libtool: + +dvi-libtool: \ + configure-libtool + @[ -f ./libtool/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in libtool" ; \ + (cd libtool && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-m4 dvi-m4 +maybe-dvi-m4: + +dvi-m4: \ + configure-m4 + @[ -f ./m4/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in m4" ; \ + (cd m4 && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-make dvi-make +maybe-dvi-make: + +dvi-make: \ + configure-make + @[ -f ./make/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in make" ; \ + (cd make && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-mmalloc dvi-mmalloc +maybe-dvi-mmalloc: + +dvi-mmalloc: \ + configure-mmalloc + @[ -f ./mmalloc/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in mmalloc" ; \ + (cd mmalloc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-patch dvi-patch +maybe-dvi-patch: + +dvi-patch: \ + configure-patch + @[ -f ./patch/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in patch" ; \ + (cd patch && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-perl dvi-perl +maybe-dvi-perl: + +dvi-perl: \ + configure-perl + @[ -f ./perl/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in perl" ; \ + (cd perl && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-prms dvi-prms +maybe-dvi-prms: + +dvi-prms: \ + configure-prms + @[ -f ./prms/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in prms" ; \ + (cd prms && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-rcs dvi-rcs +maybe-dvi-rcs: + +dvi-rcs: \ + configure-rcs + @[ -f ./rcs/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in rcs" ; \ + (cd rcs && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-readline dvi-readline +maybe-dvi-readline: + +dvi-readline: \ + configure-readline + @[ -f ./readline/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in readline" ; \ + (cd readline && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-release dvi-release +maybe-dvi-release: + +dvi-release: \ + configure-release + @[ -f ./release/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in release" ; \ + (cd release && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-recode dvi-recode +maybe-dvi-recode: + +dvi-recode: \ + configure-recode + @[ -f ./recode/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in recode" ; \ + (cd recode && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-sed dvi-sed +maybe-dvi-sed: + +dvi-sed: \ + configure-sed + @[ -f ./sed/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in sed" ; \ + (cd sed && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-send-pr dvi-send-pr +maybe-dvi-send-pr: + +dvi-send-pr: \ + configure-send-pr + @[ -f ./send-pr/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in send-pr" ; \ + (cd send-pr && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-shellutils dvi-shellutils +maybe-dvi-shellutils: + +dvi-shellutils: \ + configure-shellutils + @[ -f ./shellutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in shellutils" ; \ + (cd shellutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-sid dvi-sid +maybe-dvi-sid: + +dvi-sid: \ + configure-sid + @[ -f ./sid/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in sid" ; \ + (cd sid && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-sim dvi-sim +maybe-dvi-sim: + +dvi-sim: \ + configure-sim + @[ -f ./sim/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in sim" ; \ + (cd sim && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-tar dvi-tar +maybe-dvi-tar: + +dvi-tar: \ + configure-tar + @[ -f ./tar/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in tar" ; \ + (cd tar && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-texinfo dvi-texinfo +maybe-dvi-texinfo: + +dvi-texinfo: \ + configure-texinfo + @[ -f ./texinfo/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in texinfo" ; \ + (cd texinfo && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-textutils dvi-textutils +maybe-dvi-textutils: + +dvi-textutils: \ + configure-textutils + @[ -f ./textutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in textutils" ; \ + (cd textutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-time dvi-time +maybe-dvi-time: + +dvi-time: \ + configure-time + @[ -f ./time/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in time" ; \ + (cd time && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-uudecode dvi-uudecode +maybe-dvi-uudecode: + +dvi-uudecode: \ + configure-uudecode + @[ -f ./uudecode/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in uudecode" ; \ + (cd uudecode && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-wdiff dvi-wdiff +maybe-dvi-wdiff: + +dvi-wdiff: \ + configure-wdiff + @[ -f ./wdiff/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in wdiff" ; \ + (cd wdiff && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-zip dvi-zip +maybe-dvi-zip: + +dvi-zip: \ + configure-zip + @[ -f ./zip/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in zip" ; \ + (cd zip && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-zlib dvi-zlib +maybe-dvi-zlib: + +dvi-zlib: \ + configure-zlib + @[ -f ./zlib/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in zlib" ; \ + (cd zlib && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-gdb dvi-gdb +maybe-dvi-gdb: + +dvi-gdb: \ + configure-gdb + @[ -f ./gdb/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in gdb" ; \ + (cd gdb && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-expect dvi-expect +maybe-dvi-expect: + +dvi-expect: \ + configure-expect + @[ -f ./expect/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in expect" ; \ + (cd expect && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-guile dvi-guile +maybe-dvi-guile: + +dvi-guile: \ + configure-guile + @[ -f ./guile/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in guile" ; \ + (cd guile && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-tk dvi-tk +maybe-dvi-tk: + +dvi-tk: \ + configure-tk + @[ -f ./tk/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in tk" ; \ + (cd tk && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-tix dvi-tix +maybe-dvi-tix: + +dvi-tix: \ + configure-tix + @[ -f ./tix/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in tix" ; \ + (cd tix && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-libtermcap dvi-libtermcap +maybe-dvi-libtermcap: + +dvi-libtermcap: \ + configure-libtermcap + @[ -f ./libtermcap/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in libtermcap" ; \ + (cd libtermcap && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-utils dvi-utils +maybe-dvi-utils: + +dvi-utils: \ + configure-utils + @[ -f ./utils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in utils" ; \ + (cd utils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + + +# Target modules. + +.PHONY: maybe-dvi-target-libstdc++-v3 dvi-target-libstdc++-v3 +maybe-dvi-target-libstdc++-v3: + +dvi-target-libstdc++-v3: \ + configure-target-libstdc++-v3 + @[ -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing dvi in $(TARGET_SUBDIR)/libstdc++-v3" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libstdc++-v3 && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-target-newlib dvi-target-newlib +maybe-dvi-target-newlib: + +dvi-target-newlib: \ + configure-target-newlib + @[ -f $(TARGET_SUBDIR)/newlib/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing dvi in $(TARGET_SUBDIR)/newlib" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/newlib && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-target-libf2c dvi-target-libf2c +maybe-dvi-target-libf2c: + +dvi-target-libf2c: \ + configure-target-libf2c + @[ -f $(TARGET_SUBDIR)/libf2c/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing dvi in $(TARGET_SUBDIR)/libf2c" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libf2c && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-target-libobjc dvi-target-libobjc +maybe-dvi-target-libobjc: + +dvi-target-libobjc: \ + configure-target-libobjc + @[ -f $(TARGET_SUBDIR)/libobjc/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing dvi in $(TARGET_SUBDIR)/libobjc" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libobjc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-target-libtermcap dvi-target-libtermcap +maybe-dvi-target-libtermcap: + +dvi-target-libtermcap: \ + configure-target-libtermcap + @[ -f $(TARGET_SUBDIR)/libtermcap/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing dvi in $(TARGET_SUBDIR)/libtermcap" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libtermcap && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-target-winsup dvi-target-winsup +maybe-dvi-target-winsup: + +dvi-target-winsup: \ + configure-target-winsup + @[ -f $(TARGET_SUBDIR)/winsup/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing dvi in $(TARGET_SUBDIR)/winsup" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/winsup && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-target-libgloss dvi-target-libgloss +maybe-dvi-target-libgloss: + +dvi-target-libgloss: \ + configure-target-libgloss + @[ -f $(TARGET_SUBDIR)/libgloss/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing dvi in $(TARGET_SUBDIR)/libgloss" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libgloss && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-target-libiberty dvi-target-libiberty +maybe-dvi-target-libiberty: + +dvi-target-libiberty: \ + configure-target-libiberty + @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing dvi in $(TARGET_SUBDIR)/libiberty" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libiberty && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-target-demangler dvi-target-demangler +maybe-dvi-target-demangler: + +dvi-target-demangler: \ + configure-target-demangler + @[ -f $(TARGET_SUBDIR)/demangler/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing dvi in $(TARGET_SUBDIR)/demangler" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/demangler && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-target-gperf dvi-target-gperf +maybe-dvi-target-gperf: + +dvi-target-gperf: \ + configure-target-gperf + @[ -f $(TARGET_SUBDIR)/gperf/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing dvi in $(TARGET_SUBDIR)/gperf" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/gperf && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-target-examples dvi-target-examples +maybe-dvi-target-examples: + +dvi-target-examples: \ + configure-target-examples + @[ -f $(TARGET_SUBDIR)/examples/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing dvi in $(TARGET_SUBDIR)/examples" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/examples && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-target-libffi dvi-target-libffi +maybe-dvi-target-libffi: + +dvi-target-libffi: \ + configure-target-libffi + @[ -f $(TARGET_SUBDIR)/libffi/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing dvi in $(TARGET_SUBDIR)/libffi" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libffi && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-target-libjava dvi-target-libjava +maybe-dvi-target-libjava: + +dvi-target-libjava: \ + configure-target-libjava + @[ -f $(TARGET_SUBDIR)/libjava/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing dvi in $(TARGET_SUBDIR)/libjava" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libjava && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-target-zlib dvi-target-zlib +maybe-dvi-target-zlib: + +dvi-target-zlib: \ + configure-target-zlib + @[ -f $(TARGET_SUBDIR)/zlib/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing dvi in $(TARGET_SUBDIR)/zlib" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/zlib && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-target-boehm-gc dvi-target-boehm-gc +maybe-dvi-target-boehm-gc: + +dvi-target-boehm-gc: \ + configure-target-boehm-gc + @[ -f $(TARGET_SUBDIR)/boehm-gc/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing dvi in $(TARGET_SUBDIR)/boehm-gc" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/boehm-gc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-target-qthreads dvi-target-qthreads +maybe-dvi-target-qthreads: + +dvi-target-qthreads: \ + configure-target-qthreads + @[ -f $(TARGET_SUBDIR)/qthreads/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing dvi in $(TARGET_SUBDIR)/qthreads" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/qthreads && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + +.PHONY: maybe-dvi-target-rda dvi-target-rda +maybe-dvi-target-rda: + +dvi-target-rda: \ + configure-target-rda + @[ -f $(TARGET_SUBDIR)/rda/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing dvi in $(TARGET_SUBDIR)/rda" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/rda && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1 + + + +.PHONY: do-TAGS +do-TAGS: TAGS-host TAGS-target + +.PHONY: TAGS-host +TAGS-host: maybe-TAGS-gcc \ + maybe-TAGS-ash \ + maybe-TAGS-autoconf \ + maybe-TAGS-automake \ + maybe-TAGS-bash \ + maybe-TAGS-bfd \ + maybe-TAGS-opcodes \ + maybe-TAGS-binutils \ + maybe-TAGS-bison \ + maybe-TAGS-byacc \ + maybe-TAGS-bzip2 \ + maybe-TAGS-dejagnu \ + maybe-TAGS-demangler \ + maybe-TAGS-diff \ + maybe-TAGS-dosutils \ + maybe-TAGS-etc \ + maybe-TAGS-fastjar \ + maybe-TAGS-fileutils \ + maybe-TAGS-findutils \ + maybe-TAGS-find \ + maybe-TAGS-flex \ + maybe-TAGS-gas \ + maybe-TAGS-gawk \ + maybe-TAGS-gettext \ + maybe-TAGS-gnuserv \ + maybe-TAGS-gprof \ + maybe-TAGS-gzip \ + maybe-TAGS-hello \ + maybe-TAGS-indent \ + maybe-TAGS-intl \ + maybe-TAGS-tcl \ + maybe-TAGS-itcl \ + maybe-TAGS-ld \ + maybe-TAGS-libgui \ + maybe-TAGS-libiberty \ + maybe-TAGS-libtool \ + maybe-TAGS-m4 \ + maybe-TAGS-make \ + maybe-TAGS-mmalloc \ + maybe-TAGS-patch \ + maybe-TAGS-perl \ + maybe-TAGS-prms \ + maybe-TAGS-rcs \ + maybe-TAGS-readline \ + maybe-TAGS-release \ + maybe-TAGS-recode \ + maybe-TAGS-sed \ + maybe-TAGS-send-pr \ + maybe-TAGS-shellutils \ + maybe-TAGS-sid \ + maybe-TAGS-sim \ + maybe-TAGS-tar \ + maybe-TAGS-texinfo \ + maybe-TAGS-textutils \ + maybe-TAGS-time \ + maybe-TAGS-uudecode \ + maybe-TAGS-wdiff \ + maybe-TAGS-zip \ + maybe-TAGS-zlib \ + maybe-TAGS-gdb \ + maybe-TAGS-expect \ + maybe-TAGS-guile \ + maybe-TAGS-tk \ + maybe-TAGS-tix \ + maybe-TAGS-libtermcap \ + maybe-TAGS-utils + +.PHONY: TAGS-target +TAGS-target: \ + maybe-TAGS-target-libstdc++-v3 \ + maybe-TAGS-target-newlib \ + maybe-TAGS-target-libf2c \ + maybe-TAGS-target-libobjc \ + maybe-TAGS-target-libtermcap \ + maybe-TAGS-target-winsup \ + maybe-TAGS-target-libgloss \ + maybe-TAGS-target-libiberty \ + maybe-TAGS-target-demangler \ + maybe-TAGS-target-gperf \ + maybe-TAGS-target-examples \ + maybe-TAGS-target-libffi \ + maybe-TAGS-target-libjava \ + maybe-TAGS-target-zlib \ + maybe-TAGS-target-boehm-gc \ + maybe-TAGS-target-qthreads \ + maybe-TAGS-target-rda + +# GCC, the eternal special case +.PHONY: maybe-TAGS-gcc TAGS-gcc +maybe-TAGS-gcc: +TAGS-gcc: \ + configure-gcc + @[ -f ./gcc/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_GCC_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in gcc" ; \ + (cd gcc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + +# Host modules. + +.PHONY: maybe-TAGS-ash TAGS-ash +maybe-TAGS-ash: + +TAGS-ash: \ + configure-ash + @[ -f ./ash/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in ash" ; \ + (cd ash && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-autoconf TAGS-autoconf +maybe-TAGS-autoconf: + +TAGS-autoconf: \ + configure-autoconf + @[ -f ./autoconf/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in autoconf" ; \ + (cd autoconf && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-automake TAGS-automake +maybe-TAGS-automake: + +TAGS-automake: \ + configure-automake + @[ -f ./automake/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in automake" ; \ + (cd automake && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-bash TAGS-bash +maybe-TAGS-bash: + +TAGS-bash: \ + configure-bash + @[ -f ./bash/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in bash" ; \ + (cd bash && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-bfd TAGS-bfd +maybe-TAGS-bfd: + +TAGS-bfd: \ + configure-bfd + @[ -f ./bfd/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in bfd" ; \ + (cd bfd && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-opcodes TAGS-opcodes +maybe-TAGS-opcodes: + +TAGS-opcodes: \ + configure-opcodes + @[ -f ./opcodes/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in opcodes" ; \ + (cd opcodes && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-binutils TAGS-binutils +maybe-TAGS-binutils: + +TAGS-binutils: \ + configure-binutils + @[ -f ./binutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in binutils" ; \ + (cd binutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-bison TAGS-bison +maybe-TAGS-bison: + +TAGS-bison: \ + configure-bison + @[ -f ./bison/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in bison" ; \ + (cd bison && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-byacc TAGS-byacc +maybe-TAGS-byacc: + +TAGS-byacc: \ + configure-byacc + @[ -f ./byacc/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in byacc" ; \ + (cd byacc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-bzip2 TAGS-bzip2 +maybe-TAGS-bzip2: + +TAGS-bzip2: \ + configure-bzip2 + @[ -f ./bzip2/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in bzip2" ; \ + (cd bzip2 && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-dejagnu TAGS-dejagnu +maybe-TAGS-dejagnu: + +TAGS-dejagnu: \ + configure-dejagnu + @[ -f ./dejagnu/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in dejagnu" ; \ + (cd dejagnu && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-demangler TAGS-demangler +maybe-TAGS-demangler: + +TAGS-demangler: \ + configure-demangler + @[ -f ./demangler/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in demangler" ; \ + (cd demangler && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-diff TAGS-diff +maybe-TAGS-diff: + +TAGS-diff: \ + configure-diff + @[ -f ./diff/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in diff" ; \ + (cd diff && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-dosutils TAGS-dosutils +maybe-TAGS-dosutils: + +TAGS-dosutils: \ + configure-dosutils + @[ -f ./dosutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in dosutils" ; \ + (cd dosutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-etc TAGS-etc +maybe-TAGS-etc: + +TAGS-etc: \ + configure-etc + @[ -f ./etc/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in etc" ; \ + (cd etc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-fastjar TAGS-fastjar +maybe-TAGS-fastjar: + +TAGS-fastjar: \ + configure-fastjar + @[ -f ./fastjar/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in fastjar" ; \ + (cd fastjar && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-fileutils TAGS-fileutils +maybe-TAGS-fileutils: + +TAGS-fileutils: \ + configure-fileutils + @[ -f ./fileutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in fileutils" ; \ + (cd fileutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-findutils TAGS-findutils +maybe-TAGS-findutils: + +TAGS-findutils: \ + configure-findutils + @[ -f ./findutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in findutils" ; \ + (cd findutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-find TAGS-find +maybe-TAGS-find: + +TAGS-find: \ + configure-find + @[ -f ./find/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in find" ; \ + (cd find && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-flex TAGS-flex +maybe-TAGS-flex: + +TAGS-flex: \ + configure-flex + @[ -f ./flex/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in flex" ; \ + (cd flex && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-gas TAGS-gas +maybe-TAGS-gas: + +TAGS-gas: \ + configure-gas + @[ -f ./gas/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in gas" ; \ + (cd gas && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-gawk TAGS-gawk +maybe-TAGS-gawk: + +TAGS-gawk: \ + configure-gawk + @[ -f ./gawk/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in gawk" ; \ + (cd gawk && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-gettext TAGS-gettext +maybe-TAGS-gettext: + +TAGS-gettext: \ + configure-gettext + @[ -f ./gettext/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in gettext" ; \ + (cd gettext && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-gnuserv TAGS-gnuserv +maybe-TAGS-gnuserv: + +TAGS-gnuserv: \ + configure-gnuserv + @[ -f ./gnuserv/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in gnuserv" ; \ + (cd gnuserv && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-gprof TAGS-gprof +maybe-TAGS-gprof: + +TAGS-gprof: \ + configure-gprof + @[ -f ./gprof/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in gprof" ; \ + (cd gprof && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-gzip TAGS-gzip +maybe-TAGS-gzip: + +TAGS-gzip: \ + configure-gzip + @[ -f ./gzip/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in gzip" ; \ + (cd gzip && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-hello TAGS-hello +maybe-TAGS-hello: + +TAGS-hello: \ + configure-hello + @[ -f ./hello/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in hello" ; \ + (cd hello && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-indent TAGS-indent +maybe-TAGS-indent: + +TAGS-indent: \ + configure-indent + @[ -f ./indent/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in indent" ; \ + (cd indent && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-intl TAGS-intl +maybe-TAGS-intl: + +TAGS-intl: \ + configure-intl + @[ -f ./intl/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in intl" ; \ + (cd intl && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-tcl TAGS-tcl +maybe-TAGS-tcl: + +TAGS-tcl: \ + configure-tcl + @[ -f ./tcl/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in tcl" ; \ + (cd tcl && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-itcl TAGS-itcl +maybe-TAGS-itcl: + +TAGS-itcl: \ + configure-itcl + @[ -f ./itcl/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in itcl" ; \ + (cd itcl && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-ld TAGS-ld +maybe-TAGS-ld: + +TAGS-ld: \ + configure-ld + @[ -f ./ld/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in ld" ; \ + (cd ld && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-libgui TAGS-libgui +maybe-TAGS-libgui: + +TAGS-libgui: \ + configure-libgui + @[ -f ./libgui/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in libgui" ; \ + (cd libgui && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-libiberty TAGS-libiberty +maybe-TAGS-libiberty: + +TAGS-libiberty: \ + configure-libiberty + @[ -f ./libiberty/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in libiberty" ; \ + (cd libiberty && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-libtool TAGS-libtool +maybe-TAGS-libtool: + +TAGS-libtool: \ + configure-libtool + @[ -f ./libtool/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in libtool" ; \ + (cd libtool && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-m4 TAGS-m4 +maybe-TAGS-m4: + +TAGS-m4: \ + configure-m4 + @[ -f ./m4/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in m4" ; \ + (cd m4 && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-make TAGS-make +maybe-TAGS-make: + +TAGS-make: \ + configure-make + @[ -f ./make/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in make" ; \ + (cd make && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-mmalloc TAGS-mmalloc +maybe-TAGS-mmalloc: + +TAGS-mmalloc: \ + configure-mmalloc + @[ -f ./mmalloc/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in mmalloc" ; \ + (cd mmalloc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-patch TAGS-patch +maybe-TAGS-patch: + +TAGS-patch: \ + configure-patch + @[ -f ./patch/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in patch" ; \ + (cd patch && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-perl TAGS-perl +maybe-TAGS-perl: + +TAGS-perl: \ + configure-perl + @[ -f ./perl/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in perl" ; \ + (cd perl && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-prms TAGS-prms +maybe-TAGS-prms: + +TAGS-prms: \ + configure-prms + @[ -f ./prms/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in prms" ; \ + (cd prms && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-rcs TAGS-rcs +maybe-TAGS-rcs: + +TAGS-rcs: \ + configure-rcs + @[ -f ./rcs/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in rcs" ; \ + (cd rcs && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-readline TAGS-readline +maybe-TAGS-readline: + +TAGS-readline: \ + configure-readline + @[ -f ./readline/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in readline" ; \ + (cd readline && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-release TAGS-release +maybe-TAGS-release: + +TAGS-release: \ + configure-release + @[ -f ./release/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in release" ; \ + (cd release && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-recode TAGS-recode +maybe-TAGS-recode: + +TAGS-recode: \ + configure-recode + @[ -f ./recode/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in recode" ; \ + (cd recode && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-sed TAGS-sed +maybe-TAGS-sed: + +TAGS-sed: \ + configure-sed + @[ -f ./sed/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in sed" ; \ + (cd sed && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-send-pr TAGS-send-pr +maybe-TAGS-send-pr: + +TAGS-send-pr: \ + configure-send-pr + @[ -f ./send-pr/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in send-pr" ; \ + (cd send-pr && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-shellutils TAGS-shellutils +maybe-TAGS-shellutils: + +TAGS-shellutils: \ + configure-shellutils + @[ -f ./shellutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in shellutils" ; \ + (cd shellutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-sid TAGS-sid +maybe-TAGS-sid: + +TAGS-sid: \ + configure-sid + @[ -f ./sid/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in sid" ; \ + (cd sid && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-sim TAGS-sim +maybe-TAGS-sim: + +TAGS-sim: \ + configure-sim + @[ -f ./sim/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in sim" ; \ + (cd sim && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-tar TAGS-tar +maybe-TAGS-tar: + +TAGS-tar: \ + configure-tar + @[ -f ./tar/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in tar" ; \ + (cd tar && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-texinfo TAGS-texinfo +maybe-TAGS-texinfo: + +TAGS-texinfo: \ + configure-texinfo + @[ -f ./texinfo/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in texinfo" ; \ + (cd texinfo && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-textutils TAGS-textutils +maybe-TAGS-textutils: + +TAGS-textutils: \ + configure-textutils + @[ -f ./textutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in textutils" ; \ + (cd textutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-time TAGS-time +maybe-TAGS-time: + +TAGS-time: \ + configure-time + @[ -f ./time/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in time" ; \ + (cd time && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-uudecode TAGS-uudecode +maybe-TAGS-uudecode: + +TAGS-uudecode: \ + configure-uudecode + @[ -f ./uudecode/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in uudecode" ; \ + (cd uudecode && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-wdiff TAGS-wdiff +maybe-TAGS-wdiff: + +TAGS-wdiff: \ + configure-wdiff + @[ -f ./wdiff/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in wdiff" ; \ + (cd wdiff && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-zip TAGS-zip +maybe-TAGS-zip: + +TAGS-zip: \ + configure-zip + @[ -f ./zip/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in zip" ; \ + (cd zip && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-zlib TAGS-zlib +maybe-TAGS-zlib: + +TAGS-zlib: \ + configure-zlib + @[ -f ./zlib/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in zlib" ; \ + (cd zlib && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-gdb TAGS-gdb +maybe-TAGS-gdb: + +TAGS-gdb: \ + configure-gdb + @[ -f ./gdb/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in gdb" ; \ + (cd gdb && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-expect TAGS-expect +maybe-TAGS-expect: + +TAGS-expect: \ + configure-expect + @[ -f ./expect/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in expect" ; \ + (cd expect && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-guile TAGS-guile +maybe-TAGS-guile: + +TAGS-guile: \ + configure-guile + @[ -f ./guile/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in guile" ; \ + (cd guile && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-tk TAGS-tk +maybe-TAGS-tk: + +TAGS-tk: \ + configure-tk + @[ -f ./tk/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in tk" ; \ + (cd tk && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-tix TAGS-tix +maybe-TAGS-tix: + +TAGS-tix: \ + configure-tix + @[ -f ./tix/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in tix" ; \ + (cd tix && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-libtermcap TAGS-libtermcap +maybe-TAGS-libtermcap: + +TAGS-libtermcap: \ + configure-libtermcap + @[ -f ./libtermcap/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in libtermcap" ; \ + (cd libtermcap && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-utils TAGS-utils +maybe-TAGS-utils: + +TAGS-utils: \ + configure-utils + @[ -f ./utils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in utils" ; \ + (cd utils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + + +# Target modules. + +.PHONY: maybe-TAGS-target-libstdc++-v3 TAGS-target-libstdc++-v3 +maybe-TAGS-target-libstdc++-v3: + +TAGS-target-libstdc++-v3: \ + configure-target-libstdc++-v3 + @[ -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing TAGS in $(TARGET_SUBDIR)/libstdc++-v3" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libstdc++-v3 && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-target-newlib TAGS-target-newlib +maybe-TAGS-target-newlib: + +TAGS-target-newlib: \ + configure-target-newlib + @[ -f $(TARGET_SUBDIR)/newlib/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing TAGS in $(TARGET_SUBDIR)/newlib" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/newlib && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-target-libf2c TAGS-target-libf2c +maybe-TAGS-target-libf2c: + +TAGS-target-libf2c: \ + configure-target-libf2c + @[ -f $(TARGET_SUBDIR)/libf2c/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing TAGS in $(TARGET_SUBDIR)/libf2c" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libf2c && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-target-libobjc TAGS-target-libobjc +maybe-TAGS-target-libobjc: + +TAGS-target-libobjc: \ + configure-target-libobjc + @[ -f $(TARGET_SUBDIR)/libobjc/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing TAGS in $(TARGET_SUBDIR)/libobjc" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libobjc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-target-libtermcap TAGS-target-libtermcap +maybe-TAGS-target-libtermcap: + +TAGS-target-libtermcap: \ + configure-target-libtermcap + @[ -f $(TARGET_SUBDIR)/libtermcap/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing TAGS in $(TARGET_SUBDIR)/libtermcap" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libtermcap && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-target-winsup TAGS-target-winsup +maybe-TAGS-target-winsup: + +TAGS-target-winsup: \ + configure-target-winsup + @[ -f $(TARGET_SUBDIR)/winsup/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing TAGS in $(TARGET_SUBDIR)/winsup" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/winsup && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-target-libgloss TAGS-target-libgloss +maybe-TAGS-target-libgloss: + +TAGS-target-libgloss: \ + configure-target-libgloss + @[ -f $(TARGET_SUBDIR)/libgloss/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing TAGS in $(TARGET_SUBDIR)/libgloss" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libgloss && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-target-libiberty TAGS-target-libiberty +maybe-TAGS-target-libiberty: + +TAGS-target-libiberty: \ + configure-target-libiberty + @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing TAGS in $(TARGET_SUBDIR)/libiberty" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libiberty && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-target-demangler TAGS-target-demangler +maybe-TAGS-target-demangler: + +TAGS-target-demangler: \ + configure-target-demangler + @[ -f $(TARGET_SUBDIR)/demangler/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing TAGS in $(TARGET_SUBDIR)/demangler" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/demangler && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-target-gperf TAGS-target-gperf +maybe-TAGS-target-gperf: + +TAGS-target-gperf: \ + configure-target-gperf + @[ -f $(TARGET_SUBDIR)/gperf/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing TAGS in $(TARGET_SUBDIR)/gperf" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/gperf && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-target-examples TAGS-target-examples +maybe-TAGS-target-examples: + +TAGS-target-examples: \ + configure-target-examples + @[ -f $(TARGET_SUBDIR)/examples/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing TAGS in $(TARGET_SUBDIR)/examples" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/examples && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-target-libffi TAGS-target-libffi +maybe-TAGS-target-libffi: + +TAGS-target-libffi: \ + configure-target-libffi + @[ -f $(TARGET_SUBDIR)/libffi/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing TAGS in $(TARGET_SUBDIR)/libffi" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libffi && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-target-libjava TAGS-target-libjava +maybe-TAGS-target-libjava: + +TAGS-target-libjava: \ + configure-target-libjava + @[ -f $(TARGET_SUBDIR)/libjava/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing TAGS in $(TARGET_SUBDIR)/libjava" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libjava && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-target-zlib TAGS-target-zlib +maybe-TAGS-target-zlib: + +TAGS-target-zlib: \ + configure-target-zlib + @[ -f $(TARGET_SUBDIR)/zlib/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing TAGS in $(TARGET_SUBDIR)/zlib" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/zlib && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-target-boehm-gc TAGS-target-boehm-gc +maybe-TAGS-target-boehm-gc: + +TAGS-target-boehm-gc: \ + configure-target-boehm-gc + @[ -f $(TARGET_SUBDIR)/boehm-gc/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing TAGS in $(TARGET_SUBDIR)/boehm-gc" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/boehm-gc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-target-qthreads TAGS-target-qthreads +maybe-TAGS-target-qthreads: + +TAGS-target-qthreads: \ + configure-target-qthreads + @[ -f $(TARGET_SUBDIR)/qthreads/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing TAGS in $(TARGET_SUBDIR)/qthreads" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/qthreads && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + +.PHONY: maybe-TAGS-target-rda TAGS-target-rda +maybe-TAGS-target-rda: + +TAGS-target-rda: \ + configure-target-rda + @[ -f $(TARGET_SUBDIR)/rda/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing TAGS in $(TARGET_SUBDIR)/rda" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/rda && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1 + + + +.PHONY: do-install-info +do-install-info: install-info-host install-info-target + +.PHONY: install-info-host +install-info-host: maybe-install-info-gcc \ + maybe-install-info-ash \ + maybe-install-info-autoconf \ + maybe-install-info-automake \ + maybe-install-info-bash \ + maybe-install-info-bfd \ + maybe-install-info-opcodes \ + maybe-install-info-binutils \ + maybe-install-info-bison \ + maybe-install-info-byacc \ + maybe-install-info-bzip2 \ + maybe-install-info-dejagnu \ + maybe-install-info-demangler \ + maybe-install-info-diff \ + maybe-install-info-dosutils \ + maybe-install-info-etc \ + maybe-install-info-fastjar \ + maybe-install-info-fileutils \ + maybe-install-info-findutils \ + maybe-install-info-find \ + maybe-install-info-flex \ + maybe-install-info-gas \ + maybe-install-info-gawk \ + maybe-install-info-gettext \ + maybe-install-info-gnuserv \ + maybe-install-info-gprof \ + maybe-install-info-gzip \ + maybe-install-info-hello \ + maybe-install-info-indent \ + maybe-install-info-intl \ + maybe-install-info-tcl \ + maybe-install-info-itcl \ + maybe-install-info-ld \ + maybe-install-info-libgui \ + maybe-install-info-libiberty \ + maybe-install-info-libtool \ + maybe-install-info-m4 \ + maybe-install-info-make \ + maybe-install-info-mmalloc \ + maybe-install-info-patch \ + maybe-install-info-perl \ + maybe-install-info-prms \ + maybe-install-info-rcs \ + maybe-install-info-readline \ + maybe-install-info-release \ + maybe-install-info-recode \ + maybe-install-info-sed \ + maybe-install-info-send-pr \ + maybe-install-info-shellutils \ + maybe-install-info-sid \ + maybe-install-info-sim \ + maybe-install-info-tar \ + maybe-install-info-texinfo \ + maybe-install-info-textutils \ + maybe-install-info-time \ + maybe-install-info-uudecode \ + maybe-install-info-wdiff \ + maybe-install-info-zip \ + maybe-install-info-zlib \ + maybe-install-info-gdb \ + maybe-install-info-expect \ + maybe-install-info-guile \ + maybe-install-info-tk \ + maybe-install-info-tix \ + maybe-install-info-libtermcap \ + maybe-install-info-utils + +.PHONY: install-info-target +install-info-target: \ + maybe-install-info-target-libstdc++-v3 \ + maybe-install-info-target-newlib \ + maybe-install-info-target-libf2c \ + maybe-install-info-target-libobjc \ + maybe-install-info-target-libtermcap \ + maybe-install-info-target-winsup \ + maybe-install-info-target-libgloss \ + maybe-install-info-target-libiberty \ + maybe-install-info-target-demangler \ + maybe-install-info-target-gperf \ + maybe-install-info-target-examples \ + maybe-install-info-target-libffi \ + maybe-install-info-target-libjava \ + maybe-install-info-target-zlib \ + maybe-install-info-target-boehm-gc \ + maybe-install-info-target-qthreads \ + maybe-install-info-target-rda + +# GCC, the eternal special case +.PHONY: maybe-install-info-gcc install-info-gcc +maybe-install-info-gcc: +install-info-gcc: \ + configure-gcc \ + info-gcc + @[ -f ./gcc/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_GCC_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in gcc" ; \ + (cd gcc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + +# Host modules. + +.PHONY: maybe-install-info-ash install-info-ash +maybe-install-info-ash: + +install-info-ash: \ + configure-ash \ + info-ash + @[ -f ./ash/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in ash" ; \ + (cd ash && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-autoconf install-info-autoconf +maybe-install-info-autoconf: + +install-info-autoconf: \ + configure-autoconf \ + info-autoconf + @[ -f ./autoconf/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in autoconf" ; \ + (cd autoconf && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-automake install-info-automake +maybe-install-info-automake: + +install-info-automake: \ + configure-automake \ + info-automake + @[ -f ./automake/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in automake" ; \ + (cd automake && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-bash install-info-bash +maybe-install-info-bash: + +install-info-bash: \ + configure-bash \ + info-bash + @[ -f ./bash/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in bash" ; \ + (cd bash && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-bfd install-info-bfd +maybe-install-info-bfd: + +install-info-bfd: \ + configure-bfd \ + info-bfd + @[ -f ./bfd/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in bfd" ; \ + (cd bfd && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-opcodes install-info-opcodes +maybe-install-info-opcodes: + +install-info-opcodes: \ + configure-opcodes \ + info-opcodes + @[ -f ./opcodes/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in opcodes" ; \ + (cd opcodes && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-binutils install-info-binutils +maybe-install-info-binutils: + +install-info-binutils: \ + configure-binutils \ + info-binutils + @[ -f ./binutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in binutils" ; \ + (cd binutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-bison install-info-bison +maybe-install-info-bison: + +install-info-bison: \ + configure-bison \ + info-bison + @[ -f ./bison/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in bison" ; \ + (cd bison && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-byacc install-info-byacc +maybe-install-info-byacc: + +install-info-byacc: \ + configure-byacc \ + info-byacc + @[ -f ./byacc/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in byacc" ; \ + (cd byacc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-bzip2 install-info-bzip2 +maybe-install-info-bzip2: + +install-info-bzip2: \ + configure-bzip2 \ + info-bzip2 + @[ -f ./bzip2/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in bzip2" ; \ + (cd bzip2 && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-dejagnu install-info-dejagnu +maybe-install-info-dejagnu: + +install-info-dejagnu: \ + configure-dejagnu \ + info-dejagnu + @[ -f ./dejagnu/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in dejagnu" ; \ + (cd dejagnu && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-demangler install-info-demangler +maybe-install-info-demangler: + +install-info-demangler: \ + configure-demangler \ + info-demangler + @[ -f ./demangler/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in demangler" ; \ + (cd demangler && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-diff install-info-diff +maybe-install-info-diff: + +install-info-diff: \ + configure-diff \ + info-diff + @[ -f ./diff/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in diff" ; \ + (cd diff && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-dosutils install-info-dosutils +maybe-install-info-dosutils: + +install-info-dosutils: \ + configure-dosutils \ + info-dosutils + @[ -f ./dosutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in dosutils" ; \ + (cd dosutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-etc install-info-etc +maybe-install-info-etc: + +install-info-etc: \ + configure-etc \ + info-etc + @[ -f ./etc/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in etc" ; \ + (cd etc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-fastjar install-info-fastjar +maybe-install-info-fastjar: + +install-info-fastjar: \ + configure-fastjar \ + info-fastjar + @[ -f ./fastjar/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in fastjar" ; \ + (cd fastjar && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-fileutils install-info-fileutils +maybe-install-info-fileutils: + +install-info-fileutils: \ + configure-fileutils \ + info-fileutils + @[ -f ./fileutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in fileutils" ; \ + (cd fileutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-findutils install-info-findutils +maybe-install-info-findutils: + +install-info-findutils: \ + configure-findutils \ + info-findutils + @[ -f ./findutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in findutils" ; \ + (cd findutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-find install-info-find +maybe-install-info-find: + +install-info-find: \ + configure-find \ + info-find + @[ -f ./find/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in find" ; \ + (cd find && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-flex install-info-flex +maybe-install-info-flex: + +install-info-flex: \ + configure-flex \ + info-flex + @[ -f ./flex/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in flex" ; \ + (cd flex && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-gas install-info-gas +maybe-install-info-gas: + +install-info-gas: \ + configure-gas \ + info-gas + @[ -f ./gas/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in gas" ; \ + (cd gas && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-gawk install-info-gawk +maybe-install-info-gawk: + +install-info-gawk: \ + configure-gawk \ + info-gawk + @[ -f ./gawk/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in gawk" ; \ + (cd gawk && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-gettext install-info-gettext +maybe-install-info-gettext: + +install-info-gettext: \ + configure-gettext \ + info-gettext + @[ -f ./gettext/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in gettext" ; \ + (cd gettext && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-gnuserv install-info-gnuserv +maybe-install-info-gnuserv: + +install-info-gnuserv: \ + configure-gnuserv \ + info-gnuserv + @[ -f ./gnuserv/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in gnuserv" ; \ + (cd gnuserv && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-gprof install-info-gprof +maybe-install-info-gprof: + +install-info-gprof: \ + configure-gprof \ + info-gprof + @[ -f ./gprof/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in gprof" ; \ + (cd gprof && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-gzip install-info-gzip +maybe-install-info-gzip: + +install-info-gzip: \ + configure-gzip \ + info-gzip + @[ -f ./gzip/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in gzip" ; \ + (cd gzip && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-hello install-info-hello +maybe-install-info-hello: + +install-info-hello: \ + configure-hello \ + info-hello + @[ -f ./hello/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in hello" ; \ + (cd hello && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-indent install-info-indent +maybe-install-info-indent: + +install-info-indent: \ + configure-indent \ + info-indent + @[ -f ./indent/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in indent" ; \ + (cd indent && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-intl install-info-intl +maybe-install-info-intl: + +install-info-intl: \ + configure-intl \ + info-intl + @[ -f ./intl/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in intl" ; \ + (cd intl && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-tcl install-info-tcl +maybe-install-info-tcl: + +install-info-tcl: \ + configure-tcl \ + info-tcl + @[ -f ./tcl/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in tcl" ; \ + (cd tcl && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-itcl install-info-itcl +maybe-install-info-itcl: + +install-info-itcl: \ + configure-itcl \ + info-itcl + @[ -f ./itcl/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in itcl" ; \ + (cd itcl && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-ld install-info-ld +maybe-install-info-ld: + +install-info-ld: \ + configure-ld \ + info-ld + @[ -f ./ld/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in ld" ; \ + (cd ld && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-libgui install-info-libgui +maybe-install-info-libgui: + +install-info-libgui: \ + configure-libgui \ + info-libgui + @[ -f ./libgui/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in libgui" ; \ + (cd libgui && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-libiberty install-info-libiberty +maybe-install-info-libiberty: + +install-info-libiberty: \ + configure-libiberty \ + info-libiberty + @[ -f ./libiberty/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in libiberty" ; \ + (cd libiberty && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-libtool install-info-libtool +maybe-install-info-libtool: + +install-info-libtool: \ + configure-libtool \ + info-libtool + @[ -f ./libtool/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in libtool" ; \ + (cd libtool && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-m4 install-info-m4 +maybe-install-info-m4: + +install-info-m4: \ + configure-m4 \ + info-m4 + @[ -f ./m4/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in m4" ; \ + (cd m4 && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-make install-info-make +maybe-install-info-make: + +install-info-make: \ + configure-make \ + info-make + @[ -f ./make/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in make" ; \ + (cd make && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-mmalloc install-info-mmalloc +maybe-install-info-mmalloc: + +install-info-mmalloc: \ + configure-mmalloc \ + info-mmalloc + @[ -f ./mmalloc/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in mmalloc" ; \ + (cd mmalloc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-patch install-info-patch +maybe-install-info-patch: + +install-info-patch: \ + configure-patch \ + info-patch + @[ -f ./patch/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in patch" ; \ + (cd patch && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-perl install-info-perl +maybe-install-info-perl: + +install-info-perl: \ + configure-perl \ + info-perl + @[ -f ./perl/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in perl" ; \ + (cd perl && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-prms install-info-prms +maybe-install-info-prms: + +install-info-prms: \ + configure-prms \ + info-prms + @[ -f ./prms/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in prms" ; \ + (cd prms && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-rcs install-info-rcs +maybe-install-info-rcs: + +install-info-rcs: \ + configure-rcs \ + info-rcs + @[ -f ./rcs/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in rcs" ; \ + (cd rcs && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-readline install-info-readline +maybe-install-info-readline: + +install-info-readline: \ + configure-readline \ + info-readline + @[ -f ./readline/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in readline" ; \ + (cd readline && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-release install-info-release +maybe-install-info-release: + +install-info-release: \ + configure-release \ + info-release + @[ -f ./release/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in release" ; \ + (cd release && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-recode install-info-recode +maybe-install-info-recode: + +install-info-recode: \ + configure-recode \ + info-recode + @[ -f ./recode/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in recode" ; \ + (cd recode && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-sed install-info-sed +maybe-install-info-sed: + +install-info-sed: \ + configure-sed \ + info-sed + @[ -f ./sed/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in sed" ; \ + (cd sed && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-send-pr install-info-send-pr +maybe-install-info-send-pr: + +install-info-send-pr: \ + configure-send-pr \ + info-send-pr + @[ -f ./send-pr/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in send-pr" ; \ + (cd send-pr && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-shellutils install-info-shellutils +maybe-install-info-shellutils: + +install-info-shellutils: \ + configure-shellutils \ + info-shellutils + @[ -f ./shellutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in shellutils" ; \ + (cd shellutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-sid install-info-sid +maybe-install-info-sid: + +install-info-sid: \ + configure-sid \ + info-sid + @[ -f ./sid/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in sid" ; \ + (cd sid && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-sim install-info-sim +maybe-install-info-sim: + +install-info-sim: \ + configure-sim \ + info-sim + @[ -f ./sim/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in sim" ; \ + (cd sim && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-tar install-info-tar +maybe-install-info-tar: + +install-info-tar: \ + configure-tar \ + info-tar + @[ -f ./tar/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in tar" ; \ + (cd tar && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-texinfo install-info-texinfo +maybe-install-info-texinfo: + +install-info-texinfo: \ + configure-texinfo \ + info-texinfo + @[ -f ./texinfo/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in texinfo" ; \ + (cd texinfo && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-textutils install-info-textutils +maybe-install-info-textutils: + +install-info-textutils: \ + configure-textutils \ + info-textutils + @[ -f ./textutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in textutils" ; \ + (cd textutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-time install-info-time +maybe-install-info-time: + +install-info-time: \ + configure-time \ + info-time + @[ -f ./time/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in time" ; \ + (cd time && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-uudecode install-info-uudecode +maybe-install-info-uudecode: + +install-info-uudecode: \ + configure-uudecode \ + info-uudecode + @[ -f ./uudecode/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in uudecode" ; \ + (cd uudecode && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-wdiff install-info-wdiff +maybe-install-info-wdiff: + +install-info-wdiff: \ + configure-wdiff \ + info-wdiff + @[ -f ./wdiff/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in wdiff" ; \ + (cd wdiff && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-zip install-info-zip +maybe-install-info-zip: + +install-info-zip: \ + configure-zip \ + info-zip + @[ -f ./zip/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in zip" ; \ + (cd zip && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-zlib install-info-zlib +maybe-install-info-zlib: + +install-info-zlib: \ + configure-zlib \ + info-zlib + @[ -f ./zlib/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in zlib" ; \ + (cd zlib && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-gdb install-info-gdb +maybe-install-info-gdb: + +install-info-gdb: \ + configure-gdb \ + info-gdb + @[ -f ./gdb/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in gdb" ; \ + (cd gdb && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-expect install-info-expect +maybe-install-info-expect: + +install-info-expect: \ + configure-expect \ + info-expect + @[ -f ./expect/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in expect" ; \ + (cd expect && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-guile install-info-guile +maybe-install-info-guile: + +install-info-guile: \ + configure-guile \ + info-guile + @[ -f ./guile/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in guile" ; \ + (cd guile && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-tk install-info-tk +maybe-install-info-tk: + +install-info-tk: \ + configure-tk \ + info-tk + @[ -f ./tk/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in tk" ; \ + (cd tk && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-tix install-info-tix +maybe-install-info-tix: + +install-info-tix: \ + configure-tix \ + info-tix + @[ -f ./tix/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in tix" ; \ + (cd tix && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-libtermcap install-info-libtermcap +maybe-install-info-libtermcap: + +install-info-libtermcap: \ + configure-libtermcap \ + info-libtermcap + @[ -f ./libtermcap/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in libtermcap" ; \ + (cd libtermcap && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-utils install-info-utils +maybe-install-info-utils: + +install-info-utils: \ + configure-utils \ + info-utils + @[ -f ./utils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in utils" ; \ + (cd utils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + + +# Target modules. + +.PHONY: maybe-install-info-target-libstdc++-v3 install-info-target-libstdc++-v3 +maybe-install-info-target-libstdc++-v3: + +install-info-target-libstdc++-v3: \ + configure-target-libstdc++-v3 \ + info-target-libstdc++-v3 + @[ -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing install-info in $(TARGET_SUBDIR)/libstdc++-v3" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libstdc++-v3 && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-target-newlib install-info-target-newlib +maybe-install-info-target-newlib: + +install-info-target-newlib: \ + configure-target-newlib \ + info-target-newlib + @[ -f $(TARGET_SUBDIR)/newlib/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing install-info in $(TARGET_SUBDIR)/newlib" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/newlib && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-target-libf2c install-info-target-libf2c +maybe-install-info-target-libf2c: + +install-info-target-libf2c: \ + configure-target-libf2c \ + info-target-libf2c + @[ -f $(TARGET_SUBDIR)/libf2c/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing install-info in $(TARGET_SUBDIR)/libf2c" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libf2c && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-target-libobjc install-info-target-libobjc +maybe-install-info-target-libobjc: + +install-info-target-libobjc: \ + configure-target-libobjc \ + info-target-libobjc + @[ -f $(TARGET_SUBDIR)/libobjc/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing install-info in $(TARGET_SUBDIR)/libobjc" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libobjc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-target-libtermcap install-info-target-libtermcap +maybe-install-info-target-libtermcap: + +install-info-target-libtermcap: \ + configure-target-libtermcap \ + info-target-libtermcap + @[ -f $(TARGET_SUBDIR)/libtermcap/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing install-info in $(TARGET_SUBDIR)/libtermcap" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libtermcap && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-target-winsup install-info-target-winsup +maybe-install-info-target-winsup: + +install-info-target-winsup: \ + configure-target-winsup \ + info-target-winsup + @[ -f $(TARGET_SUBDIR)/winsup/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing install-info in $(TARGET_SUBDIR)/winsup" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/winsup && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-target-libgloss install-info-target-libgloss +maybe-install-info-target-libgloss: + +install-info-target-libgloss: \ + configure-target-libgloss \ + info-target-libgloss + @[ -f $(TARGET_SUBDIR)/libgloss/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing install-info in $(TARGET_SUBDIR)/libgloss" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libgloss && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-target-libiberty install-info-target-libiberty +maybe-install-info-target-libiberty: + +install-info-target-libiberty: \ + configure-target-libiberty \ + info-target-libiberty + @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing install-info in $(TARGET_SUBDIR)/libiberty" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libiberty && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-target-demangler install-info-target-demangler +maybe-install-info-target-demangler: + +install-info-target-demangler: \ + configure-target-demangler \ + info-target-demangler + @[ -f $(TARGET_SUBDIR)/demangler/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing install-info in $(TARGET_SUBDIR)/demangler" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/demangler && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-target-gperf install-info-target-gperf +maybe-install-info-target-gperf: + +install-info-target-gperf: \ + configure-target-gperf \ + info-target-gperf + @[ -f $(TARGET_SUBDIR)/gperf/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing install-info in $(TARGET_SUBDIR)/gperf" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/gperf && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-target-examples install-info-target-examples +maybe-install-info-target-examples: + +install-info-target-examples: \ + configure-target-examples \ + info-target-examples + @[ -f $(TARGET_SUBDIR)/examples/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing install-info in $(TARGET_SUBDIR)/examples" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/examples && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-target-libffi install-info-target-libffi +maybe-install-info-target-libffi: + +install-info-target-libffi: \ + configure-target-libffi \ + info-target-libffi + @[ -f $(TARGET_SUBDIR)/libffi/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing install-info in $(TARGET_SUBDIR)/libffi" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libffi && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-target-libjava install-info-target-libjava +maybe-install-info-target-libjava: + +install-info-target-libjava: \ + configure-target-libjava \ + info-target-libjava + @[ -f $(TARGET_SUBDIR)/libjava/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing install-info in $(TARGET_SUBDIR)/libjava" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libjava && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-target-zlib install-info-target-zlib +maybe-install-info-target-zlib: + +install-info-target-zlib: \ + configure-target-zlib \ + info-target-zlib + @[ -f $(TARGET_SUBDIR)/zlib/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing install-info in $(TARGET_SUBDIR)/zlib" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/zlib && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-target-boehm-gc install-info-target-boehm-gc +maybe-install-info-target-boehm-gc: + +install-info-target-boehm-gc: \ + configure-target-boehm-gc \ + info-target-boehm-gc + @[ -f $(TARGET_SUBDIR)/boehm-gc/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing install-info in $(TARGET_SUBDIR)/boehm-gc" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/boehm-gc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-target-qthreads install-info-target-qthreads +maybe-install-info-target-qthreads: + +install-info-target-qthreads: \ + configure-target-qthreads \ + info-target-qthreads + @[ -f $(TARGET_SUBDIR)/qthreads/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing install-info in $(TARGET_SUBDIR)/qthreads" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/qthreads && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + +.PHONY: maybe-install-info-target-rda install-info-target-rda +maybe-install-info-target-rda: + +install-info-target-rda: \ + configure-target-rda \ + info-target-rda + @[ -f $(TARGET_SUBDIR)/rda/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing install-info in $(TARGET_SUBDIR)/rda" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/rda && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1 + + + +.PHONY: do-installcheck +do-installcheck: installcheck-host installcheck-target + +.PHONY: installcheck-host +installcheck-host: maybe-installcheck-gcc \ + maybe-installcheck-ash \ + maybe-installcheck-autoconf \ + maybe-installcheck-automake \ + maybe-installcheck-bash \ + maybe-installcheck-bfd \ + maybe-installcheck-opcodes \ + maybe-installcheck-binutils \ + maybe-installcheck-bison \ + maybe-installcheck-byacc \ + maybe-installcheck-bzip2 \ + maybe-installcheck-dejagnu \ + maybe-installcheck-demangler \ + maybe-installcheck-diff \ + maybe-installcheck-dosutils \ + maybe-installcheck-etc \ + maybe-installcheck-fastjar \ + maybe-installcheck-fileutils \ + maybe-installcheck-findutils \ + maybe-installcheck-find \ + maybe-installcheck-flex \ + maybe-installcheck-gas \ + maybe-installcheck-gawk \ + maybe-installcheck-gettext \ + maybe-installcheck-gnuserv \ + maybe-installcheck-gprof \ + maybe-installcheck-gzip \ + maybe-installcheck-hello \ + maybe-installcheck-indent \ + maybe-installcheck-intl \ + maybe-installcheck-tcl \ + maybe-installcheck-itcl \ + maybe-installcheck-ld \ + maybe-installcheck-libgui \ + maybe-installcheck-libiberty \ + maybe-installcheck-libtool \ + maybe-installcheck-m4 \ + maybe-installcheck-make \ + maybe-installcheck-mmalloc \ + maybe-installcheck-patch \ + maybe-installcheck-perl \ + maybe-installcheck-prms \ + maybe-installcheck-rcs \ + maybe-installcheck-readline \ + maybe-installcheck-release \ + maybe-installcheck-recode \ + maybe-installcheck-sed \ + maybe-installcheck-send-pr \ + maybe-installcheck-shellutils \ + maybe-installcheck-sid \ + maybe-installcheck-sim \ + maybe-installcheck-tar \ + maybe-installcheck-texinfo \ + maybe-installcheck-textutils \ + maybe-installcheck-time \ + maybe-installcheck-uudecode \ + maybe-installcheck-wdiff \ + maybe-installcheck-zip \ + maybe-installcheck-zlib \ + maybe-installcheck-gdb \ + maybe-installcheck-expect \ + maybe-installcheck-guile \ + maybe-installcheck-tk \ + maybe-installcheck-tix \ + maybe-installcheck-libtermcap \ + maybe-installcheck-utils + +.PHONY: installcheck-target +installcheck-target: \ + maybe-installcheck-target-libstdc++-v3 \ + maybe-installcheck-target-newlib \ + maybe-installcheck-target-libf2c \ + maybe-installcheck-target-libobjc \ + maybe-installcheck-target-libtermcap \ + maybe-installcheck-target-winsup \ + maybe-installcheck-target-libgloss \ + maybe-installcheck-target-libiberty \ + maybe-installcheck-target-demangler \ + maybe-installcheck-target-gperf \ + maybe-installcheck-target-examples \ + maybe-installcheck-target-libffi \ + maybe-installcheck-target-libjava \ + maybe-installcheck-target-zlib \ + maybe-installcheck-target-boehm-gc \ + maybe-installcheck-target-qthreads \ + maybe-installcheck-target-rda + +# GCC, the eternal special case +.PHONY: maybe-installcheck-gcc installcheck-gcc +maybe-installcheck-gcc: +installcheck-gcc: \ + configure-gcc + @[ -f ./gcc/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_GCC_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in gcc" ; \ + (cd gcc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + +# Host modules. + +.PHONY: maybe-installcheck-ash installcheck-ash +maybe-installcheck-ash: + +installcheck-ash: \ + configure-ash + @[ -f ./ash/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in ash" ; \ + (cd ash && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-autoconf installcheck-autoconf +maybe-installcheck-autoconf: + +installcheck-autoconf: \ + configure-autoconf + @[ -f ./autoconf/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in autoconf" ; \ + (cd autoconf && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-automake installcheck-automake +maybe-installcheck-automake: + +installcheck-automake: \ + configure-automake + @[ -f ./automake/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in automake" ; \ + (cd automake && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-bash installcheck-bash +maybe-installcheck-bash: + +installcheck-bash: \ + configure-bash + @[ -f ./bash/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in bash" ; \ + (cd bash && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-bfd installcheck-bfd +maybe-installcheck-bfd: + +installcheck-bfd: \ + configure-bfd + @[ -f ./bfd/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in bfd" ; \ + (cd bfd && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-opcodes installcheck-opcodes +maybe-installcheck-opcodes: + +installcheck-opcodes: \ + configure-opcodes + @[ -f ./opcodes/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in opcodes" ; \ + (cd opcodes && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-binutils installcheck-binutils +maybe-installcheck-binutils: + +installcheck-binutils: \ + configure-binutils + @[ -f ./binutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in binutils" ; \ + (cd binutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-bison installcheck-bison +maybe-installcheck-bison: + +installcheck-bison: \ + configure-bison + @[ -f ./bison/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in bison" ; \ + (cd bison && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-byacc installcheck-byacc +maybe-installcheck-byacc: + +installcheck-byacc: \ + configure-byacc + @[ -f ./byacc/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in byacc" ; \ + (cd byacc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-bzip2 installcheck-bzip2 +maybe-installcheck-bzip2: + +installcheck-bzip2: \ + configure-bzip2 + @[ -f ./bzip2/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in bzip2" ; \ + (cd bzip2 && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-dejagnu installcheck-dejagnu +maybe-installcheck-dejagnu: + +installcheck-dejagnu: \ + configure-dejagnu + @[ -f ./dejagnu/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in dejagnu" ; \ + (cd dejagnu && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-demangler installcheck-demangler +maybe-installcheck-demangler: + +installcheck-demangler: \ + configure-demangler + @[ -f ./demangler/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in demangler" ; \ + (cd demangler && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-diff installcheck-diff +maybe-installcheck-diff: + +installcheck-diff: \ + configure-diff + @[ -f ./diff/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in diff" ; \ + (cd diff && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-dosutils installcheck-dosutils +maybe-installcheck-dosutils: + +installcheck-dosutils: \ + configure-dosutils + @[ -f ./dosutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in dosutils" ; \ + (cd dosutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-etc installcheck-etc +maybe-installcheck-etc: + +installcheck-etc: \ + configure-etc + @[ -f ./etc/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in etc" ; \ + (cd etc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-fastjar installcheck-fastjar +maybe-installcheck-fastjar: + +installcheck-fastjar: \ + configure-fastjar + @[ -f ./fastjar/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in fastjar" ; \ + (cd fastjar && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-fileutils installcheck-fileutils +maybe-installcheck-fileutils: + +installcheck-fileutils: \ + configure-fileutils + @[ -f ./fileutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in fileutils" ; \ + (cd fileutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-findutils installcheck-findutils +maybe-installcheck-findutils: + +installcheck-findutils: \ + configure-findutils + @[ -f ./findutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in findutils" ; \ + (cd findutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-find installcheck-find +maybe-installcheck-find: + +installcheck-find: \ + configure-find + @[ -f ./find/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in find" ; \ + (cd find && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-flex installcheck-flex +maybe-installcheck-flex: + +installcheck-flex: \ + configure-flex + @[ -f ./flex/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in flex" ; \ + (cd flex && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-gas installcheck-gas +maybe-installcheck-gas: + +installcheck-gas: \ + configure-gas + @[ -f ./gas/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in gas" ; \ + (cd gas && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-gawk installcheck-gawk +maybe-installcheck-gawk: + +installcheck-gawk: \ + configure-gawk + @[ -f ./gawk/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in gawk" ; \ + (cd gawk && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-gettext installcheck-gettext +maybe-installcheck-gettext: + +installcheck-gettext: \ + configure-gettext + @[ -f ./gettext/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in gettext" ; \ + (cd gettext && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-gnuserv installcheck-gnuserv +maybe-installcheck-gnuserv: + +installcheck-gnuserv: \ + configure-gnuserv + @[ -f ./gnuserv/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in gnuserv" ; \ + (cd gnuserv && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-gprof installcheck-gprof +maybe-installcheck-gprof: + +installcheck-gprof: \ + configure-gprof + @[ -f ./gprof/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in gprof" ; \ + (cd gprof && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-gzip installcheck-gzip +maybe-installcheck-gzip: + +installcheck-gzip: \ + configure-gzip + @[ -f ./gzip/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in gzip" ; \ + (cd gzip && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-hello installcheck-hello +maybe-installcheck-hello: + +installcheck-hello: \ + configure-hello + @[ -f ./hello/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in hello" ; \ + (cd hello && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-indent installcheck-indent +maybe-installcheck-indent: + +installcheck-indent: \ + configure-indent + @[ -f ./indent/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in indent" ; \ + (cd indent && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-intl installcheck-intl +maybe-installcheck-intl: + +installcheck-intl: \ + configure-intl + @[ -f ./intl/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in intl" ; \ + (cd intl && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-tcl installcheck-tcl +maybe-installcheck-tcl: + +installcheck-tcl: \ + configure-tcl + @[ -f ./tcl/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in tcl" ; \ + (cd tcl && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-itcl installcheck-itcl +maybe-installcheck-itcl: + +installcheck-itcl: \ + configure-itcl + @[ -f ./itcl/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in itcl" ; \ + (cd itcl && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-ld installcheck-ld +maybe-installcheck-ld: + +installcheck-ld: \ + configure-ld + @[ -f ./ld/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in ld" ; \ + (cd ld && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-libgui installcheck-libgui +maybe-installcheck-libgui: + +installcheck-libgui: \ + configure-libgui + @[ -f ./libgui/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in libgui" ; \ + (cd libgui && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-libiberty installcheck-libiberty +maybe-installcheck-libiberty: + +installcheck-libiberty: \ + configure-libiberty + @[ -f ./libiberty/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in libiberty" ; \ + (cd libiberty && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-libtool installcheck-libtool +maybe-installcheck-libtool: + +installcheck-libtool: \ + configure-libtool + @[ -f ./libtool/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in libtool" ; \ + (cd libtool && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-m4 installcheck-m4 +maybe-installcheck-m4: + +installcheck-m4: \ + configure-m4 + @[ -f ./m4/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in m4" ; \ + (cd m4 && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-make installcheck-make +maybe-installcheck-make: + +installcheck-make: \ + configure-make + @[ -f ./make/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in make" ; \ + (cd make && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-mmalloc installcheck-mmalloc +maybe-installcheck-mmalloc: + +installcheck-mmalloc: \ + configure-mmalloc + @[ -f ./mmalloc/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in mmalloc" ; \ + (cd mmalloc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-patch installcheck-patch +maybe-installcheck-patch: + +installcheck-patch: \ + configure-patch + @[ -f ./patch/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in patch" ; \ + (cd patch && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-perl installcheck-perl +maybe-installcheck-perl: + +installcheck-perl: \ + configure-perl + @[ -f ./perl/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in perl" ; \ + (cd perl && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-prms installcheck-prms +maybe-installcheck-prms: + +installcheck-prms: \ + configure-prms + @[ -f ./prms/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in prms" ; \ + (cd prms && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-rcs installcheck-rcs +maybe-installcheck-rcs: + +installcheck-rcs: \ + configure-rcs + @[ -f ./rcs/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in rcs" ; \ + (cd rcs && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-readline installcheck-readline +maybe-installcheck-readline: + +installcheck-readline: \ + configure-readline + @[ -f ./readline/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in readline" ; \ + (cd readline && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-release installcheck-release +maybe-installcheck-release: + +installcheck-release: \ + configure-release + @[ -f ./release/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in release" ; \ + (cd release && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-recode installcheck-recode +maybe-installcheck-recode: + +installcheck-recode: \ + configure-recode + @[ -f ./recode/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in recode" ; \ + (cd recode && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-sed installcheck-sed +maybe-installcheck-sed: + +installcheck-sed: \ + configure-sed + @[ -f ./sed/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in sed" ; \ + (cd sed && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-send-pr installcheck-send-pr +maybe-installcheck-send-pr: + +installcheck-send-pr: \ + configure-send-pr + @[ -f ./send-pr/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in send-pr" ; \ + (cd send-pr && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-shellutils installcheck-shellutils +maybe-installcheck-shellutils: + +installcheck-shellutils: \ + configure-shellutils + @[ -f ./shellutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in shellutils" ; \ + (cd shellutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-sid installcheck-sid +maybe-installcheck-sid: + +installcheck-sid: \ + configure-sid + @[ -f ./sid/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in sid" ; \ + (cd sid && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-sim installcheck-sim +maybe-installcheck-sim: + +installcheck-sim: \ + configure-sim + @[ -f ./sim/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in sim" ; \ + (cd sim && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-tar installcheck-tar +maybe-installcheck-tar: + +installcheck-tar: \ + configure-tar + @[ -f ./tar/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in tar" ; \ + (cd tar && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-texinfo installcheck-texinfo +maybe-installcheck-texinfo: + +installcheck-texinfo: \ + configure-texinfo + @[ -f ./texinfo/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in texinfo" ; \ + (cd texinfo && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-textutils installcheck-textutils +maybe-installcheck-textutils: + +installcheck-textutils: \ + configure-textutils + @[ -f ./textutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in textutils" ; \ + (cd textutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-time installcheck-time +maybe-installcheck-time: + +installcheck-time: \ + configure-time + @[ -f ./time/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in time" ; \ + (cd time && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-uudecode installcheck-uudecode +maybe-installcheck-uudecode: + +installcheck-uudecode: \ + configure-uudecode + @[ -f ./uudecode/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in uudecode" ; \ + (cd uudecode && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-wdiff installcheck-wdiff +maybe-installcheck-wdiff: + +installcheck-wdiff: \ + configure-wdiff + @[ -f ./wdiff/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in wdiff" ; \ + (cd wdiff && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-zip installcheck-zip +maybe-installcheck-zip: + +installcheck-zip: \ + configure-zip + @[ -f ./zip/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in zip" ; \ + (cd zip && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-zlib installcheck-zlib +maybe-installcheck-zlib: + +installcheck-zlib: \ + configure-zlib + @[ -f ./zlib/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in zlib" ; \ + (cd zlib && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-gdb installcheck-gdb +maybe-installcheck-gdb: + +installcheck-gdb: \ + configure-gdb + @[ -f ./gdb/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in gdb" ; \ + (cd gdb && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-expect installcheck-expect +maybe-installcheck-expect: + +installcheck-expect: \ + configure-expect + @[ -f ./expect/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in expect" ; \ + (cd expect && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-guile installcheck-guile +maybe-installcheck-guile: + +installcheck-guile: \ + configure-guile + @[ -f ./guile/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in guile" ; \ + (cd guile && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-tk installcheck-tk +maybe-installcheck-tk: + +installcheck-tk: \ + configure-tk + @[ -f ./tk/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in tk" ; \ + (cd tk && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-tix installcheck-tix +maybe-installcheck-tix: + +installcheck-tix: \ + configure-tix + @[ -f ./tix/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in tix" ; \ + (cd tix && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-libtermcap installcheck-libtermcap +maybe-installcheck-libtermcap: + +installcheck-libtermcap: \ + configure-libtermcap + @[ -f ./libtermcap/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in libtermcap" ; \ + (cd libtermcap && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-utils installcheck-utils +maybe-installcheck-utils: + +installcheck-utils: \ + configure-utils + @[ -f ./utils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in utils" ; \ + (cd utils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + + +# Target modules. + +.PHONY: maybe-installcheck-target-libstdc++-v3 installcheck-target-libstdc++-v3 +maybe-installcheck-target-libstdc++-v3: + +installcheck-target-libstdc++-v3: \ + configure-target-libstdc++-v3 + @[ -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing installcheck in $(TARGET_SUBDIR)/libstdc++-v3" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libstdc++-v3 && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-target-newlib installcheck-target-newlib +maybe-installcheck-target-newlib: + +installcheck-target-newlib: \ + configure-target-newlib + @[ -f $(TARGET_SUBDIR)/newlib/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing installcheck in $(TARGET_SUBDIR)/newlib" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/newlib && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-target-libf2c installcheck-target-libf2c +maybe-installcheck-target-libf2c: + +installcheck-target-libf2c: \ + configure-target-libf2c + @[ -f $(TARGET_SUBDIR)/libf2c/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing installcheck in $(TARGET_SUBDIR)/libf2c" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libf2c && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-target-libobjc installcheck-target-libobjc +maybe-installcheck-target-libobjc: + +installcheck-target-libobjc: \ + configure-target-libobjc + @[ -f $(TARGET_SUBDIR)/libobjc/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing installcheck in $(TARGET_SUBDIR)/libobjc" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libobjc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-target-libtermcap installcheck-target-libtermcap +maybe-installcheck-target-libtermcap: + +installcheck-target-libtermcap: \ + configure-target-libtermcap + @[ -f $(TARGET_SUBDIR)/libtermcap/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing installcheck in $(TARGET_SUBDIR)/libtermcap" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libtermcap && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-target-winsup installcheck-target-winsup +maybe-installcheck-target-winsup: + +installcheck-target-winsup: \ + configure-target-winsup + @[ -f $(TARGET_SUBDIR)/winsup/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing installcheck in $(TARGET_SUBDIR)/winsup" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/winsup && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-target-libgloss installcheck-target-libgloss +maybe-installcheck-target-libgloss: + +installcheck-target-libgloss: \ + configure-target-libgloss + @[ -f $(TARGET_SUBDIR)/libgloss/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing installcheck in $(TARGET_SUBDIR)/libgloss" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libgloss && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-target-libiberty installcheck-target-libiberty +maybe-installcheck-target-libiberty: + +installcheck-target-libiberty: \ + configure-target-libiberty + @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing installcheck in $(TARGET_SUBDIR)/libiberty" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libiberty && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-target-demangler installcheck-target-demangler +maybe-installcheck-target-demangler: + +installcheck-target-demangler: \ + configure-target-demangler + @[ -f $(TARGET_SUBDIR)/demangler/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing installcheck in $(TARGET_SUBDIR)/demangler" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/demangler && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-target-gperf installcheck-target-gperf +maybe-installcheck-target-gperf: + +installcheck-target-gperf: \ + configure-target-gperf + @[ -f $(TARGET_SUBDIR)/gperf/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing installcheck in $(TARGET_SUBDIR)/gperf" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/gperf && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-target-examples installcheck-target-examples +maybe-installcheck-target-examples: + +installcheck-target-examples: \ + configure-target-examples + @[ -f $(TARGET_SUBDIR)/examples/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing installcheck in $(TARGET_SUBDIR)/examples" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/examples && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-target-libffi installcheck-target-libffi +maybe-installcheck-target-libffi: + +installcheck-target-libffi: \ + configure-target-libffi + @[ -f $(TARGET_SUBDIR)/libffi/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing installcheck in $(TARGET_SUBDIR)/libffi" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libffi && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-target-libjava installcheck-target-libjava +maybe-installcheck-target-libjava: + +installcheck-target-libjava: \ + configure-target-libjava + @[ -f $(TARGET_SUBDIR)/libjava/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing installcheck in $(TARGET_SUBDIR)/libjava" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libjava && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-target-zlib installcheck-target-zlib +maybe-installcheck-target-zlib: + +installcheck-target-zlib: \ + configure-target-zlib + @[ -f $(TARGET_SUBDIR)/zlib/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing installcheck in $(TARGET_SUBDIR)/zlib" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/zlib && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-target-boehm-gc installcheck-target-boehm-gc +maybe-installcheck-target-boehm-gc: + +installcheck-target-boehm-gc: \ + configure-target-boehm-gc + @[ -f $(TARGET_SUBDIR)/boehm-gc/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing installcheck in $(TARGET_SUBDIR)/boehm-gc" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/boehm-gc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-target-qthreads installcheck-target-qthreads +maybe-installcheck-target-qthreads: + +installcheck-target-qthreads: \ + configure-target-qthreads + @[ -f $(TARGET_SUBDIR)/qthreads/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing installcheck in $(TARGET_SUBDIR)/qthreads" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/qthreads && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + +.PHONY: maybe-installcheck-target-rda installcheck-target-rda +maybe-installcheck-target-rda: + +installcheck-target-rda: \ + configure-target-rda + @[ -f $(TARGET_SUBDIR)/rda/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing installcheck in $(TARGET_SUBDIR)/rda" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/rda && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1 + + + +.PHONY: do-mostlyclean +do-mostlyclean: mostlyclean-host mostlyclean-target + +.PHONY: mostlyclean-host +mostlyclean-host: maybe-mostlyclean-gcc \ + maybe-mostlyclean-ash \ + maybe-mostlyclean-autoconf \ + maybe-mostlyclean-automake \ + maybe-mostlyclean-bash \ + maybe-mostlyclean-bfd \ + maybe-mostlyclean-opcodes \ + maybe-mostlyclean-binutils \ + maybe-mostlyclean-bison \ + maybe-mostlyclean-byacc \ + maybe-mostlyclean-bzip2 \ + maybe-mostlyclean-dejagnu \ + maybe-mostlyclean-demangler \ + maybe-mostlyclean-diff \ + maybe-mostlyclean-dosutils \ + maybe-mostlyclean-etc \ + maybe-mostlyclean-fastjar \ + maybe-mostlyclean-fileutils \ + maybe-mostlyclean-findutils \ + maybe-mostlyclean-find \ + maybe-mostlyclean-flex \ + maybe-mostlyclean-gas \ + maybe-mostlyclean-gawk \ + maybe-mostlyclean-gettext \ + maybe-mostlyclean-gnuserv \ + maybe-mostlyclean-gprof \ + maybe-mostlyclean-gzip \ + maybe-mostlyclean-hello \ + maybe-mostlyclean-indent \ + maybe-mostlyclean-intl \ + maybe-mostlyclean-tcl \ + maybe-mostlyclean-itcl \ + maybe-mostlyclean-ld \ + maybe-mostlyclean-libgui \ + maybe-mostlyclean-libiberty \ + maybe-mostlyclean-libtool \ + maybe-mostlyclean-m4 \ + maybe-mostlyclean-make \ + maybe-mostlyclean-mmalloc \ + maybe-mostlyclean-patch \ + maybe-mostlyclean-perl \ + maybe-mostlyclean-prms \ + maybe-mostlyclean-rcs \ + maybe-mostlyclean-readline \ + maybe-mostlyclean-release \ + maybe-mostlyclean-recode \ + maybe-mostlyclean-sed \ + maybe-mostlyclean-send-pr \ + maybe-mostlyclean-shellutils \ + maybe-mostlyclean-sid \ + maybe-mostlyclean-sim \ + maybe-mostlyclean-tar \ + maybe-mostlyclean-texinfo \ + maybe-mostlyclean-textutils \ + maybe-mostlyclean-time \ + maybe-mostlyclean-uudecode \ + maybe-mostlyclean-wdiff \ + maybe-mostlyclean-zip \ + maybe-mostlyclean-zlib \ + maybe-mostlyclean-gdb \ + maybe-mostlyclean-expect \ + maybe-mostlyclean-guile \ + maybe-mostlyclean-tk \ + maybe-mostlyclean-tix \ + maybe-mostlyclean-libtermcap \ + maybe-mostlyclean-utils + +.PHONY: mostlyclean-target +mostlyclean-target: \ + maybe-mostlyclean-target-libstdc++-v3 \ + maybe-mostlyclean-target-newlib \ + maybe-mostlyclean-target-libf2c \ + maybe-mostlyclean-target-libobjc \ + maybe-mostlyclean-target-libtermcap \ + maybe-mostlyclean-target-winsup \ + maybe-mostlyclean-target-libgloss \ + maybe-mostlyclean-target-libiberty \ + maybe-mostlyclean-target-demangler \ + maybe-mostlyclean-target-gperf \ + maybe-mostlyclean-target-examples \ + maybe-mostlyclean-target-libffi \ + maybe-mostlyclean-target-libjava \ + maybe-mostlyclean-target-zlib \ + maybe-mostlyclean-target-boehm-gc \ + maybe-mostlyclean-target-qthreads \ + maybe-mostlyclean-target-rda + +# GCC, the eternal special case +.PHONY: maybe-mostlyclean-gcc mostlyclean-gcc +maybe-mostlyclean-gcc: +mostlyclean-gcc: + @[ -f ./gcc/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_GCC_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in gcc" ; \ + (cd gcc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + +# Host modules. + +.PHONY: maybe-mostlyclean-ash mostlyclean-ash +maybe-mostlyclean-ash: + +mostlyclean-ash: + @[ -f ./ash/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in ash" ; \ + (cd ash && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-autoconf mostlyclean-autoconf +maybe-mostlyclean-autoconf: + +mostlyclean-autoconf: + @[ -f ./autoconf/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in autoconf" ; \ + (cd autoconf && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-automake mostlyclean-automake +maybe-mostlyclean-automake: + +mostlyclean-automake: + @[ -f ./automake/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in automake" ; \ + (cd automake && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-bash mostlyclean-bash +maybe-mostlyclean-bash: + +mostlyclean-bash: + @[ -f ./bash/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in bash" ; \ + (cd bash && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-bfd mostlyclean-bfd +maybe-mostlyclean-bfd: + +mostlyclean-bfd: + @[ -f ./bfd/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in bfd" ; \ + (cd bfd && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-opcodes mostlyclean-opcodes +maybe-mostlyclean-opcodes: + +mostlyclean-opcodes: + @[ -f ./opcodes/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in opcodes" ; \ + (cd opcodes && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-binutils mostlyclean-binutils +maybe-mostlyclean-binutils: + +mostlyclean-binutils: + @[ -f ./binutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in binutils" ; \ + (cd binutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-bison mostlyclean-bison +maybe-mostlyclean-bison: + +mostlyclean-bison: + @[ -f ./bison/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in bison" ; \ + (cd bison && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-byacc mostlyclean-byacc +maybe-mostlyclean-byacc: + +mostlyclean-byacc: + @[ -f ./byacc/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in byacc" ; \ + (cd byacc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-bzip2 mostlyclean-bzip2 +maybe-mostlyclean-bzip2: + +mostlyclean-bzip2: + @[ -f ./bzip2/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in bzip2" ; \ + (cd bzip2 && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-dejagnu mostlyclean-dejagnu +maybe-mostlyclean-dejagnu: + +mostlyclean-dejagnu: + @[ -f ./dejagnu/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in dejagnu" ; \ + (cd dejagnu && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-demangler mostlyclean-demangler +maybe-mostlyclean-demangler: + +mostlyclean-demangler: + @[ -f ./demangler/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in demangler" ; \ + (cd demangler && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-diff mostlyclean-diff +maybe-mostlyclean-diff: + +mostlyclean-diff: + @[ -f ./diff/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in diff" ; \ + (cd diff && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-dosutils mostlyclean-dosutils +maybe-mostlyclean-dosutils: + +mostlyclean-dosutils: + @[ -f ./dosutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in dosutils" ; \ + (cd dosutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-etc mostlyclean-etc +maybe-mostlyclean-etc: + +mostlyclean-etc: + @[ -f ./etc/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in etc" ; \ + (cd etc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-fastjar mostlyclean-fastjar +maybe-mostlyclean-fastjar: + +mostlyclean-fastjar: + @[ -f ./fastjar/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in fastjar" ; \ + (cd fastjar && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-fileutils mostlyclean-fileutils +maybe-mostlyclean-fileutils: + +mostlyclean-fileutils: + @[ -f ./fileutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in fileutils" ; \ + (cd fileutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-findutils mostlyclean-findutils +maybe-mostlyclean-findutils: + +mostlyclean-findutils: + @[ -f ./findutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in findutils" ; \ + (cd findutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-find mostlyclean-find +maybe-mostlyclean-find: + +mostlyclean-find: + @[ -f ./find/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in find" ; \ + (cd find && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-flex mostlyclean-flex +maybe-mostlyclean-flex: + +mostlyclean-flex: + @[ -f ./flex/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in flex" ; \ + (cd flex && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-gas mostlyclean-gas +maybe-mostlyclean-gas: + +mostlyclean-gas: + @[ -f ./gas/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in gas" ; \ + (cd gas && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-gawk mostlyclean-gawk +maybe-mostlyclean-gawk: + +mostlyclean-gawk: + @[ -f ./gawk/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in gawk" ; \ + (cd gawk && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-gettext mostlyclean-gettext +maybe-mostlyclean-gettext: + +mostlyclean-gettext: + @[ -f ./gettext/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in gettext" ; \ + (cd gettext && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-gnuserv mostlyclean-gnuserv +maybe-mostlyclean-gnuserv: + +mostlyclean-gnuserv: + @[ -f ./gnuserv/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in gnuserv" ; \ + (cd gnuserv && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-gprof mostlyclean-gprof +maybe-mostlyclean-gprof: + +mostlyclean-gprof: + @[ -f ./gprof/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in gprof" ; \ + (cd gprof && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-gzip mostlyclean-gzip +maybe-mostlyclean-gzip: + +mostlyclean-gzip: + @[ -f ./gzip/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in gzip" ; \ + (cd gzip && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-hello mostlyclean-hello +maybe-mostlyclean-hello: + +mostlyclean-hello: + @[ -f ./hello/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in hello" ; \ + (cd hello && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-indent mostlyclean-indent +maybe-mostlyclean-indent: + +mostlyclean-indent: + @[ -f ./indent/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in indent" ; \ + (cd indent && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-intl mostlyclean-intl +maybe-mostlyclean-intl: + +mostlyclean-intl: + @[ -f ./intl/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in intl" ; \ + (cd intl && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-tcl mostlyclean-tcl +maybe-mostlyclean-tcl: + +# tcl doesn't support mostlyclean. +mostlyclean-tcl: + + +.PHONY: maybe-mostlyclean-itcl mostlyclean-itcl +maybe-mostlyclean-itcl: + +mostlyclean-itcl: + @[ -f ./itcl/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in itcl" ; \ + (cd itcl && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-ld mostlyclean-ld +maybe-mostlyclean-ld: + +mostlyclean-ld: + @[ -f ./ld/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in ld" ; \ + (cd ld && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-libgui mostlyclean-libgui +maybe-mostlyclean-libgui: + +mostlyclean-libgui: + @[ -f ./libgui/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in libgui" ; \ + (cd libgui && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-libiberty mostlyclean-libiberty +maybe-mostlyclean-libiberty: + +mostlyclean-libiberty: + @[ -f ./libiberty/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in libiberty" ; \ + (cd libiberty && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-libtool mostlyclean-libtool +maybe-mostlyclean-libtool: + +mostlyclean-libtool: + @[ -f ./libtool/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in libtool" ; \ + (cd libtool && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-m4 mostlyclean-m4 +maybe-mostlyclean-m4: + +mostlyclean-m4: + @[ -f ./m4/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in m4" ; \ + (cd m4 && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-make mostlyclean-make +maybe-mostlyclean-make: + +mostlyclean-make: + @[ -f ./make/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in make" ; \ + (cd make && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-mmalloc mostlyclean-mmalloc +maybe-mostlyclean-mmalloc: + +mostlyclean-mmalloc: + @[ -f ./mmalloc/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in mmalloc" ; \ + (cd mmalloc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-patch mostlyclean-patch +maybe-mostlyclean-patch: + +mostlyclean-patch: + @[ -f ./patch/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in patch" ; \ + (cd patch && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-perl mostlyclean-perl +maybe-mostlyclean-perl: + +mostlyclean-perl: + @[ -f ./perl/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in perl" ; \ + (cd perl && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-prms mostlyclean-prms +maybe-mostlyclean-prms: + +mostlyclean-prms: + @[ -f ./prms/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in prms" ; \ + (cd prms && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-rcs mostlyclean-rcs +maybe-mostlyclean-rcs: + +mostlyclean-rcs: + @[ -f ./rcs/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in rcs" ; \ + (cd rcs && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-readline mostlyclean-readline +maybe-mostlyclean-readline: + +mostlyclean-readline: + @[ -f ./readline/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in readline" ; \ + (cd readline && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-release mostlyclean-release +maybe-mostlyclean-release: + +mostlyclean-release: + @[ -f ./release/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in release" ; \ + (cd release && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-recode mostlyclean-recode +maybe-mostlyclean-recode: + +mostlyclean-recode: + @[ -f ./recode/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in recode" ; \ + (cd recode && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-sed mostlyclean-sed +maybe-mostlyclean-sed: + +mostlyclean-sed: + @[ -f ./sed/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in sed" ; \ + (cd sed && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-send-pr mostlyclean-send-pr +maybe-mostlyclean-send-pr: + +mostlyclean-send-pr: + @[ -f ./send-pr/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in send-pr" ; \ + (cd send-pr && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-shellutils mostlyclean-shellutils +maybe-mostlyclean-shellutils: + +mostlyclean-shellutils: + @[ -f ./shellutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in shellutils" ; \ + (cd shellutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-sid mostlyclean-sid +maybe-mostlyclean-sid: + +mostlyclean-sid: + @[ -f ./sid/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in sid" ; \ + (cd sid && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-sim mostlyclean-sim +maybe-mostlyclean-sim: + +mostlyclean-sim: + @[ -f ./sim/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in sim" ; \ + (cd sim && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-tar mostlyclean-tar +maybe-mostlyclean-tar: + +mostlyclean-tar: + @[ -f ./tar/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in tar" ; \ + (cd tar && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-texinfo mostlyclean-texinfo +maybe-mostlyclean-texinfo: + +mostlyclean-texinfo: + @[ -f ./texinfo/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in texinfo" ; \ + (cd texinfo && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-textutils mostlyclean-textutils +maybe-mostlyclean-textutils: + +mostlyclean-textutils: + @[ -f ./textutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in textutils" ; \ + (cd textutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-time mostlyclean-time +maybe-mostlyclean-time: + +mostlyclean-time: + @[ -f ./time/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in time" ; \ + (cd time && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-uudecode mostlyclean-uudecode +maybe-mostlyclean-uudecode: + +mostlyclean-uudecode: + @[ -f ./uudecode/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in uudecode" ; \ + (cd uudecode && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-wdiff mostlyclean-wdiff +maybe-mostlyclean-wdiff: + +mostlyclean-wdiff: + @[ -f ./wdiff/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in wdiff" ; \ + (cd wdiff && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-zip mostlyclean-zip +maybe-mostlyclean-zip: + +mostlyclean-zip: + @[ -f ./zip/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in zip" ; \ + (cd zip && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-zlib mostlyclean-zlib +maybe-mostlyclean-zlib: + +mostlyclean-zlib: + @[ -f ./zlib/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in zlib" ; \ + (cd zlib && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-gdb mostlyclean-gdb +maybe-mostlyclean-gdb: + +mostlyclean-gdb: + @[ -f ./gdb/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in gdb" ; \ + (cd gdb && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-expect mostlyclean-expect +maybe-mostlyclean-expect: + +mostlyclean-expect: + @[ -f ./expect/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in expect" ; \ + (cd expect && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-guile mostlyclean-guile +maybe-mostlyclean-guile: + +mostlyclean-guile: + @[ -f ./guile/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in guile" ; \ + (cd guile && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-tk mostlyclean-tk +maybe-mostlyclean-tk: + +mostlyclean-tk: + @[ -f ./tk/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in tk" ; \ + (cd tk && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-tix mostlyclean-tix +maybe-mostlyclean-tix: + +mostlyclean-tix: + @[ -f ./tix/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in tix" ; \ + (cd tix && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-libtermcap mostlyclean-libtermcap +maybe-mostlyclean-libtermcap: + +# libtermcap doesn't support mostlyclean. +mostlyclean-libtermcap: + + +.PHONY: maybe-mostlyclean-utils mostlyclean-utils +maybe-mostlyclean-utils: + +mostlyclean-utils: + @[ -f ./utils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in utils" ; \ + (cd utils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + + +# Target modules. + +.PHONY: maybe-mostlyclean-target-libstdc++-v3 mostlyclean-target-libstdc++-v3 +maybe-mostlyclean-target-libstdc++-v3: + +mostlyclean-target-libstdc++-v3: + @[ -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing mostlyclean in $(TARGET_SUBDIR)/libstdc++-v3" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libstdc++-v3 && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-target-newlib mostlyclean-target-newlib +maybe-mostlyclean-target-newlib: + +mostlyclean-target-newlib: + @[ -f $(TARGET_SUBDIR)/newlib/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing mostlyclean in $(TARGET_SUBDIR)/newlib" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/newlib && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-target-libf2c mostlyclean-target-libf2c +maybe-mostlyclean-target-libf2c: + +mostlyclean-target-libf2c: + @[ -f $(TARGET_SUBDIR)/libf2c/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing mostlyclean in $(TARGET_SUBDIR)/libf2c" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libf2c && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-target-libobjc mostlyclean-target-libobjc +maybe-mostlyclean-target-libobjc: + +mostlyclean-target-libobjc: + @[ -f $(TARGET_SUBDIR)/libobjc/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing mostlyclean in $(TARGET_SUBDIR)/libobjc" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libobjc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-target-libtermcap mostlyclean-target-libtermcap +maybe-mostlyclean-target-libtermcap: + +# libtermcap doesn't support mostlyclean. +mostlyclean-target-libtermcap: + + +.PHONY: maybe-mostlyclean-target-winsup mostlyclean-target-winsup +maybe-mostlyclean-target-winsup: + +mostlyclean-target-winsup: + @[ -f $(TARGET_SUBDIR)/winsup/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing mostlyclean in $(TARGET_SUBDIR)/winsup" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/winsup && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-target-libgloss mostlyclean-target-libgloss +maybe-mostlyclean-target-libgloss: + +mostlyclean-target-libgloss: + @[ -f $(TARGET_SUBDIR)/libgloss/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing mostlyclean in $(TARGET_SUBDIR)/libgloss" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libgloss && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-target-libiberty mostlyclean-target-libiberty +maybe-mostlyclean-target-libiberty: + +mostlyclean-target-libiberty: + @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing mostlyclean in $(TARGET_SUBDIR)/libiberty" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libiberty && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-target-demangler mostlyclean-target-demangler +maybe-mostlyclean-target-demangler: + +mostlyclean-target-demangler: + @[ -f $(TARGET_SUBDIR)/demangler/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing mostlyclean in $(TARGET_SUBDIR)/demangler" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/demangler && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-target-gperf mostlyclean-target-gperf +maybe-mostlyclean-target-gperf: + +mostlyclean-target-gperf: + @[ -f $(TARGET_SUBDIR)/gperf/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing mostlyclean in $(TARGET_SUBDIR)/gperf" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/gperf && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-target-examples mostlyclean-target-examples +maybe-mostlyclean-target-examples: + +mostlyclean-target-examples: + @[ -f $(TARGET_SUBDIR)/examples/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing mostlyclean in $(TARGET_SUBDIR)/examples" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/examples && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-target-libffi mostlyclean-target-libffi +maybe-mostlyclean-target-libffi: + +mostlyclean-target-libffi: + @[ -f $(TARGET_SUBDIR)/libffi/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing mostlyclean in $(TARGET_SUBDIR)/libffi" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libffi && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-target-libjava mostlyclean-target-libjava +maybe-mostlyclean-target-libjava: + +mostlyclean-target-libjava: + @[ -f $(TARGET_SUBDIR)/libjava/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing mostlyclean in $(TARGET_SUBDIR)/libjava" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libjava && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-target-zlib mostlyclean-target-zlib +maybe-mostlyclean-target-zlib: + +mostlyclean-target-zlib: + @[ -f $(TARGET_SUBDIR)/zlib/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing mostlyclean in $(TARGET_SUBDIR)/zlib" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/zlib && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-target-boehm-gc mostlyclean-target-boehm-gc +maybe-mostlyclean-target-boehm-gc: + +mostlyclean-target-boehm-gc: + @[ -f $(TARGET_SUBDIR)/boehm-gc/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing mostlyclean in $(TARGET_SUBDIR)/boehm-gc" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/boehm-gc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-target-qthreads mostlyclean-target-qthreads +maybe-mostlyclean-target-qthreads: + +mostlyclean-target-qthreads: + @[ -f $(TARGET_SUBDIR)/qthreads/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing mostlyclean in $(TARGET_SUBDIR)/qthreads" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/qthreads && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + +.PHONY: maybe-mostlyclean-target-rda mostlyclean-target-rda +maybe-mostlyclean-target-rda: + +mostlyclean-target-rda: + @[ -f $(TARGET_SUBDIR)/rda/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing mostlyclean in $(TARGET_SUBDIR)/rda" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/rda && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1 + + + +.PHONY: do-clean +do-clean: clean-host clean-target + +.PHONY: clean-host +clean-host: maybe-clean-gcc \ + maybe-clean-ash \ + maybe-clean-autoconf \ + maybe-clean-automake \ + maybe-clean-bash \ + maybe-clean-bfd \ + maybe-clean-opcodes \ + maybe-clean-binutils \ + maybe-clean-bison \ + maybe-clean-byacc \ + maybe-clean-bzip2 \ + maybe-clean-dejagnu \ + maybe-clean-demangler \ + maybe-clean-diff \ + maybe-clean-dosutils \ + maybe-clean-etc \ + maybe-clean-fastjar \ + maybe-clean-fileutils \ + maybe-clean-findutils \ + maybe-clean-find \ + maybe-clean-flex \ + maybe-clean-gas \ + maybe-clean-gawk \ + maybe-clean-gettext \ + maybe-clean-gnuserv \ + maybe-clean-gprof \ + maybe-clean-gzip \ + maybe-clean-hello \ + maybe-clean-indent \ + maybe-clean-intl \ + maybe-clean-tcl \ + maybe-clean-itcl \ + maybe-clean-ld \ + maybe-clean-libgui \ + maybe-clean-libiberty \ + maybe-clean-libtool \ + maybe-clean-m4 \ + maybe-clean-make \ + maybe-clean-mmalloc \ + maybe-clean-patch \ + maybe-clean-perl \ + maybe-clean-prms \ + maybe-clean-rcs \ + maybe-clean-readline \ + maybe-clean-release \ + maybe-clean-recode \ + maybe-clean-sed \ + maybe-clean-send-pr \ + maybe-clean-shellutils \ + maybe-clean-sid \ + maybe-clean-sim \ + maybe-clean-tar \ + maybe-clean-texinfo \ + maybe-clean-textutils \ + maybe-clean-time \ + maybe-clean-uudecode \ + maybe-clean-wdiff \ + maybe-clean-zip \ + maybe-clean-zlib \ + maybe-clean-gdb \ + maybe-clean-expect \ + maybe-clean-guile \ + maybe-clean-tk \ + maybe-clean-tix \ + maybe-clean-libtermcap \ + maybe-clean-utils + +.PHONY: clean-target +clean-target: \ + maybe-clean-target-libstdc++-v3 \ + maybe-clean-target-newlib \ + maybe-clean-target-libf2c \ + maybe-clean-target-libobjc \ + maybe-clean-target-libtermcap \ + maybe-clean-target-winsup \ + maybe-clean-target-libgloss \ + maybe-clean-target-libiberty \ + maybe-clean-target-demangler \ + maybe-clean-target-gperf \ + maybe-clean-target-examples \ + maybe-clean-target-libffi \ + maybe-clean-target-libjava \ + maybe-clean-target-zlib \ + maybe-clean-target-boehm-gc \ + maybe-clean-target-qthreads \ + maybe-clean-target-rda + +# GCC, the eternal special case +.PHONY: maybe-clean-gcc clean-gcc +maybe-clean-gcc: +clean-gcc: + @[ -f ./gcc/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_GCC_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in gcc" ; \ + (cd gcc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + +# Host modules. + +.PHONY: maybe-clean-ash clean-ash +maybe-clean-ash: + +clean-ash: + @[ -f ./ash/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in ash" ; \ + (cd ash && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-autoconf clean-autoconf +maybe-clean-autoconf: + +clean-autoconf: + @[ -f ./autoconf/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in autoconf" ; \ + (cd autoconf && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-automake clean-automake +maybe-clean-automake: + +clean-automake: + @[ -f ./automake/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in automake" ; \ + (cd automake && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-bash clean-bash +maybe-clean-bash: + +clean-bash: + @[ -f ./bash/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in bash" ; \ + (cd bash && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-bfd clean-bfd +maybe-clean-bfd: + +clean-bfd: + @[ -f ./bfd/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in bfd" ; \ + (cd bfd && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-opcodes clean-opcodes +maybe-clean-opcodes: + +clean-opcodes: + @[ -f ./opcodes/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in opcodes" ; \ + (cd opcodes && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-binutils clean-binutils +maybe-clean-binutils: + +clean-binutils: + @[ -f ./binutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in binutils" ; \ + (cd binutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-bison clean-bison +maybe-clean-bison: + +clean-bison: + @[ -f ./bison/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in bison" ; \ + (cd bison && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-byacc clean-byacc +maybe-clean-byacc: + +clean-byacc: + @[ -f ./byacc/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in byacc" ; \ + (cd byacc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-bzip2 clean-bzip2 +maybe-clean-bzip2: + +clean-bzip2: + @[ -f ./bzip2/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in bzip2" ; \ + (cd bzip2 && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-dejagnu clean-dejagnu +maybe-clean-dejagnu: + +clean-dejagnu: + @[ -f ./dejagnu/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in dejagnu" ; \ + (cd dejagnu && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-demangler clean-demangler +maybe-clean-demangler: + +clean-demangler: + @[ -f ./demangler/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in demangler" ; \ + (cd demangler && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-diff clean-diff +maybe-clean-diff: + +clean-diff: + @[ -f ./diff/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in diff" ; \ + (cd diff && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-dosutils clean-dosutils +maybe-clean-dosutils: + +clean-dosutils: + @[ -f ./dosutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in dosutils" ; \ + (cd dosutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-etc clean-etc +maybe-clean-etc: + +clean-etc: + @[ -f ./etc/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in etc" ; \ + (cd etc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-fastjar clean-fastjar +maybe-clean-fastjar: + +clean-fastjar: + @[ -f ./fastjar/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in fastjar" ; \ + (cd fastjar && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-fileutils clean-fileutils +maybe-clean-fileutils: + +clean-fileutils: + @[ -f ./fileutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in fileutils" ; \ + (cd fileutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-findutils clean-findutils +maybe-clean-findutils: + +clean-findutils: + @[ -f ./findutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in findutils" ; \ + (cd findutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-find clean-find +maybe-clean-find: + +clean-find: + @[ -f ./find/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in find" ; \ + (cd find && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-flex clean-flex +maybe-clean-flex: + +clean-flex: + @[ -f ./flex/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in flex" ; \ + (cd flex && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-gas clean-gas +maybe-clean-gas: + +clean-gas: + @[ -f ./gas/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in gas" ; \ + (cd gas && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-gawk clean-gawk +maybe-clean-gawk: + +clean-gawk: + @[ -f ./gawk/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in gawk" ; \ + (cd gawk && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-gettext clean-gettext +maybe-clean-gettext: + +clean-gettext: + @[ -f ./gettext/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in gettext" ; \ + (cd gettext && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-gnuserv clean-gnuserv +maybe-clean-gnuserv: + +clean-gnuserv: + @[ -f ./gnuserv/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in gnuserv" ; \ + (cd gnuserv && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-gprof clean-gprof +maybe-clean-gprof: + +clean-gprof: + @[ -f ./gprof/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in gprof" ; \ + (cd gprof && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-gzip clean-gzip +maybe-clean-gzip: + +clean-gzip: + @[ -f ./gzip/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in gzip" ; \ + (cd gzip && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-hello clean-hello +maybe-clean-hello: + +clean-hello: + @[ -f ./hello/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in hello" ; \ + (cd hello && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-indent clean-indent +maybe-clean-indent: + +clean-indent: + @[ -f ./indent/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in indent" ; \ + (cd indent && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-intl clean-intl +maybe-clean-intl: + +clean-intl: + @[ -f ./intl/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in intl" ; \ + (cd intl && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-tcl clean-tcl +maybe-clean-tcl: + +clean-tcl: + @[ -f ./tcl/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in tcl" ; \ + (cd tcl && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-itcl clean-itcl +maybe-clean-itcl: + +clean-itcl: + @[ -f ./itcl/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in itcl" ; \ + (cd itcl && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-ld clean-ld +maybe-clean-ld: + +clean-ld: + @[ -f ./ld/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in ld" ; \ + (cd ld && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-libgui clean-libgui +maybe-clean-libgui: + +clean-libgui: + @[ -f ./libgui/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in libgui" ; \ + (cd libgui && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-libiberty clean-libiberty +maybe-clean-libiberty: + +clean-libiberty: + @[ -f ./libiberty/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in libiberty" ; \ + (cd libiberty && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-libtool clean-libtool +maybe-clean-libtool: + +clean-libtool: + @[ -f ./libtool/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in libtool" ; \ + (cd libtool && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-m4 clean-m4 +maybe-clean-m4: + +clean-m4: + @[ -f ./m4/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in m4" ; \ + (cd m4 && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-make clean-make +maybe-clean-make: + +clean-make: + @[ -f ./make/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in make" ; \ + (cd make && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-mmalloc clean-mmalloc +maybe-clean-mmalloc: + +clean-mmalloc: + @[ -f ./mmalloc/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in mmalloc" ; \ + (cd mmalloc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-patch clean-patch +maybe-clean-patch: + +clean-patch: + @[ -f ./patch/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in patch" ; \ + (cd patch && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-perl clean-perl +maybe-clean-perl: + +clean-perl: + @[ -f ./perl/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in perl" ; \ + (cd perl && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-prms clean-prms +maybe-clean-prms: + +clean-prms: + @[ -f ./prms/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in prms" ; \ + (cd prms && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-rcs clean-rcs +maybe-clean-rcs: + +clean-rcs: + @[ -f ./rcs/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in rcs" ; \ + (cd rcs && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-readline clean-readline +maybe-clean-readline: + +clean-readline: + @[ -f ./readline/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in readline" ; \ + (cd readline && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-release clean-release +maybe-clean-release: + +clean-release: + @[ -f ./release/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in release" ; \ + (cd release && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-recode clean-recode +maybe-clean-recode: + +clean-recode: + @[ -f ./recode/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in recode" ; \ + (cd recode && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-sed clean-sed +maybe-clean-sed: + +clean-sed: + @[ -f ./sed/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in sed" ; \ + (cd sed && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-send-pr clean-send-pr +maybe-clean-send-pr: + +clean-send-pr: + @[ -f ./send-pr/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in send-pr" ; \ + (cd send-pr && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-shellutils clean-shellutils +maybe-clean-shellutils: + +clean-shellutils: + @[ -f ./shellutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in shellutils" ; \ + (cd shellutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-sid clean-sid +maybe-clean-sid: + +clean-sid: + @[ -f ./sid/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in sid" ; \ + (cd sid && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-sim clean-sim +maybe-clean-sim: + +clean-sim: + @[ -f ./sim/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in sim" ; \ + (cd sim && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-tar clean-tar +maybe-clean-tar: + +clean-tar: + @[ -f ./tar/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in tar" ; \ + (cd tar && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-texinfo clean-texinfo +maybe-clean-texinfo: + +clean-texinfo: + @[ -f ./texinfo/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in texinfo" ; \ + (cd texinfo && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-textutils clean-textutils +maybe-clean-textutils: + +clean-textutils: + @[ -f ./textutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in textutils" ; \ + (cd textutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-time clean-time +maybe-clean-time: + +clean-time: + @[ -f ./time/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in time" ; \ + (cd time && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-uudecode clean-uudecode +maybe-clean-uudecode: + +clean-uudecode: + @[ -f ./uudecode/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in uudecode" ; \ + (cd uudecode && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-wdiff clean-wdiff +maybe-clean-wdiff: + +clean-wdiff: + @[ -f ./wdiff/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in wdiff" ; \ + (cd wdiff && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-zip clean-zip +maybe-clean-zip: + +clean-zip: + @[ -f ./zip/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in zip" ; \ + (cd zip && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-zlib clean-zlib +maybe-clean-zlib: + +clean-zlib: + @[ -f ./zlib/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in zlib" ; \ + (cd zlib && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-gdb clean-gdb +maybe-clean-gdb: + +clean-gdb: + @[ -f ./gdb/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in gdb" ; \ + (cd gdb && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-expect clean-expect +maybe-clean-expect: + +clean-expect: + @[ -f ./expect/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in expect" ; \ + (cd expect && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-guile clean-guile +maybe-clean-guile: + +clean-guile: + @[ -f ./guile/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in guile" ; \ + (cd guile && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-tk clean-tk +maybe-clean-tk: + +clean-tk: + @[ -f ./tk/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in tk" ; \ + (cd tk && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-tix clean-tix +maybe-clean-tix: + +clean-tix: + @[ -f ./tix/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in tix" ; \ + (cd tix && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-libtermcap clean-libtermcap +maybe-clean-libtermcap: + +# libtermcap doesn't support clean. +clean-libtermcap: + + +.PHONY: maybe-clean-utils clean-utils +maybe-clean-utils: + +clean-utils: + @[ -f ./utils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in utils" ; \ + (cd utils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + + +# Target modules. + +.PHONY: maybe-clean-target-libstdc++-v3 clean-target-libstdc++-v3 +maybe-clean-target-libstdc++-v3: + +clean-target-libstdc++-v3: + @[ -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing clean in $(TARGET_SUBDIR)/libstdc++-v3" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libstdc++-v3 && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-target-newlib clean-target-newlib +maybe-clean-target-newlib: + +clean-target-newlib: + @[ -f $(TARGET_SUBDIR)/newlib/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing clean in $(TARGET_SUBDIR)/newlib" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/newlib && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-target-libf2c clean-target-libf2c +maybe-clean-target-libf2c: + +clean-target-libf2c: + @[ -f $(TARGET_SUBDIR)/libf2c/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing clean in $(TARGET_SUBDIR)/libf2c" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libf2c && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-target-libobjc clean-target-libobjc +maybe-clean-target-libobjc: + +clean-target-libobjc: + @[ -f $(TARGET_SUBDIR)/libobjc/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing clean in $(TARGET_SUBDIR)/libobjc" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libobjc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-target-libtermcap clean-target-libtermcap +maybe-clean-target-libtermcap: + +# libtermcap doesn't support clean. +clean-target-libtermcap: + + +.PHONY: maybe-clean-target-winsup clean-target-winsup +maybe-clean-target-winsup: + +clean-target-winsup: + @[ -f $(TARGET_SUBDIR)/winsup/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing clean in $(TARGET_SUBDIR)/winsup" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/winsup && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-target-libgloss clean-target-libgloss +maybe-clean-target-libgloss: + +clean-target-libgloss: + @[ -f $(TARGET_SUBDIR)/libgloss/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing clean in $(TARGET_SUBDIR)/libgloss" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libgloss && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-target-libiberty clean-target-libiberty +maybe-clean-target-libiberty: + +clean-target-libiberty: + @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing clean in $(TARGET_SUBDIR)/libiberty" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libiberty && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-target-demangler clean-target-demangler +maybe-clean-target-demangler: + +clean-target-demangler: + @[ -f $(TARGET_SUBDIR)/demangler/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing clean in $(TARGET_SUBDIR)/demangler" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/demangler && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-target-gperf clean-target-gperf +maybe-clean-target-gperf: + +clean-target-gperf: + @[ -f $(TARGET_SUBDIR)/gperf/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing clean in $(TARGET_SUBDIR)/gperf" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/gperf && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-target-examples clean-target-examples +maybe-clean-target-examples: + +clean-target-examples: + @[ -f $(TARGET_SUBDIR)/examples/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing clean in $(TARGET_SUBDIR)/examples" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/examples && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-target-libffi clean-target-libffi +maybe-clean-target-libffi: + +clean-target-libffi: + @[ -f $(TARGET_SUBDIR)/libffi/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing clean in $(TARGET_SUBDIR)/libffi" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libffi && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-target-libjava clean-target-libjava +maybe-clean-target-libjava: + +clean-target-libjava: + @[ -f $(TARGET_SUBDIR)/libjava/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing clean in $(TARGET_SUBDIR)/libjava" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libjava && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-target-zlib clean-target-zlib +maybe-clean-target-zlib: + +clean-target-zlib: + @[ -f $(TARGET_SUBDIR)/zlib/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing clean in $(TARGET_SUBDIR)/zlib" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/zlib && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-target-boehm-gc clean-target-boehm-gc +maybe-clean-target-boehm-gc: + +clean-target-boehm-gc: + @[ -f $(TARGET_SUBDIR)/boehm-gc/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing clean in $(TARGET_SUBDIR)/boehm-gc" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/boehm-gc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-target-qthreads clean-target-qthreads +maybe-clean-target-qthreads: + +clean-target-qthreads: + @[ -f $(TARGET_SUBDIR)/qthreads/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing clean in $(TARGET_SUBDIR)/qthreads" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/qthreads && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + +.PHONY: maybe-clean-target-rda clean-target-rda +maybe-clean-target-rda: + +clean-target-rda: + @[ -f $(TARGET_SUBDIR)/rda/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing clean in $(TARGET_SUBDIR)/rda" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/rda && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + clean) \ + || exit 1 + + + +.PHONY: do-distclean +do-distclean: distclean-host distclean-target + +.PHONY: distclean-host +distclean-host: maybe-distclean-gcc \ + maybe-distclean-ash \ + maybe-distclean-autoconf \ + maybe-distclean-automake \ + maybe-distclean-bash \ + maybe-distclean-bfd \ + maybe-distclean-opcodes \ + maybe-distclean-binutils \ + maybe-distclean-bison \ + maybe-distclean-byacc \ + maybe-distclean-bzip2 \ + maybe-distclean-dejagnu \ + maybe-distclean-demangler \ + maybe-distclean-diff \ + maybe-distclean-dosutils \ + maybe-distclean-etc \ + maybe-distclean-fastjar \ + maybe-distclean-fileutils \ + maybe-distclean-findutils \ + maybe-distclean-find \ + maybe-distclean-flex \ + maybe-distclean-gas \ + maybe-distclean-gawk \ + maybe-distclean-gettext \ + maybe-distclean-gnuserv \ + maybe-distclean-gprof \ + maybe-distclean-gzip \ + maybe-distclean-hello \ + maybe-distclean-indent \ + maybe-distclean-intl \ + maybe-distclean-tcl \ + maybe-distclean-itcl \ + maybe-distclean-ld \ + maybe-distclean-libgui \ + maybe-distclean-libiberty \ + maybe-distclean-libtool \ + maybe-distclean-m4 \ + maybe-distclean-make \ + maybe-distclean-mmalloc \ + maybe-distclean-patch \ + maybe-distclean-perl \ + maybe-distclean-prms \ + maybe-distclean-rcs \ + maybe-distclean-readline \ + maybe-distclean-release \ + maybe-distclean-recode \ + maybe-distclean-sed \ + maybe-distclean-send-pr \ + maybe-distclean-shellutils \ + maybe-distclean-sid \ + maybe-distclean-sim \ + maybe-distclean-tar \ + maybe-distclean-texinfo \ + maybe-distclean-textutils \ + maybe-distclean-time \ + maybe-distclean-uudecode \ + maybe-distclean-wdiff \ + maybe-distclean-zip \ + maybe-distclean-zlib \ + maybe-distclean-gdb \ + maybe-distclean-expect \ + maybe-distclean-guile \ + maybe-distclean-tk \ + maybe-distclean-tix \ + maybe-distclean-libtermcap \ + maybe-distclean-utils + +.PHONY: distclean-target +distclean-target: \ + maybe-distclean-target-libstdc++-v3 \ + maybe-distclean-target-newlib \ + maybe-distclean-target-libf2c \ + maybe-distclean-target-libobjc \ + maybe-distclean-target-libtermcap \ + maybe-distclean-target-winsup \ + maybe-distclean-target-libgloss \ + maybe-distclean-target-libiberty \ + maybe-distclean-target-demangler \ + maybe-distclean-target-gperf \ + maybe-distclean-target-examples \ + maybe-distclean-target-libffi \ + maybe-distclean-target-libjava \ + maybe-distclean-target-zlib \ + maybe-distclean-target-boehm-gc \ + maybe-distclean-target-qthreads \ + maybe-distclean-target-rda + +# GCC, the eternal special case +.PHONY: maybe-distclean-gcc distclean-gcc +maybe-distclean-gcc: +distclean-gcc: + @[ -f ./gcc/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_GCC_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in gcc" ; \ + (cd gcc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + +# Host modules. + +.PHONY: maybe-distclean-ash distclean-ash +maybe-distclean-ash: + +distclean-ash: + @[ -f ./ash/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in ash" ; \ + (cd ash && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-autoconf distclean-autoconf +maybe-distclean-autoconf: + +distclean-autoconf: + @[ -f ./autoconf/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in autoconf" ; \ + (cd autoconf && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-automake distclean-automake +maybe-distclean-automake: + +distclean-automake: + @[ -f ./automake/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in automake" ; \ + (cd automake && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-bash distclean-bash +maybe-distclean-bash: + +distclean-bash: + @[ -f ./bash/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in bash" ; \ + (cd bash && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-bfd distclean-bfd +maybe-distclean-bfd: + +distclean-bfd: + @[ -f ./bfd/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in bfd" ; \ + (cd bfd && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-opcodes distclean-opcodes +maybe-distclean-opcodes: + +distclean-opcodes: + @[ -f ./opcodes/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in opcodes" ; \ + (cd opcodes && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-binutils distclean-binutils +maybe-distclean-binutils: + +distclean-binutils: + @[ -f ./binutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in binutils" ; \ + (cd binutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-bison distclean-bison +maybe-distclean-bison: + +distclean-bison: + @[ -f ./bison/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in bison" ; \ + (cd bison && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-byacc distclean-byacc +maybe-distclean-byacc: + +distclean-byacc: + @[ -f ./byacc/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in byacc" ; \ + (cd byacc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-bzip2 distclean-bzip2 +maybe-distclean-bzip2: + +distclean-bzip2: + @[ -f ./bzip2/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in bzip2" ; \ + (cd bzip2 && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-dejagnu distclean-dejagnu +maybe-distclean-dejagnu: + +distclean-dejagnu: + @[ -f ./dejagnu/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in dejagnu" ; \ + (cd dejagnu && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-demangler distclean-demangler +maybe-distclean-demangler: + +distclean-demangler: + @[ -f ./demangler/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in demangler" ; \ + (cd demangler && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-diff distclean-diff +maybe-distclean-diff: + +distclean-diff: + @[ -f ./diff/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in diff" ; \ + (cd diff && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-dosutils distclean-dosutils +maybe-distclean-dosutils: + +distclean-dosutils: + @[ -f ./dosutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in dosutils" ; \ + (cd dosutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-etc distclean-etc +maybe-distclean-etc: + +distclean-etc: + @[ -f ./etc/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in etc" ; \ + (cd etc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-fastjar distclean-fastjar +maybe-distclean-fastjar: + +distclean-fastjar: + @[ -f ./fastjar/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in fastjar" ; \ + (cd fastjar && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-fileutils distclean-fileutils +maybe-distclean-fileutils: + +distclean-fileutils: + @[ -f ./fileutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in fileutils" ; \ + (cd fileutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-findutils distclean-findutils +maybe-distclean-findutils: + +distclean-findutils: + @[ -f ./findutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in findutils" ; \ + (cd findutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-find distclean-find +maybe-distclean-find: + +distclean-find: + @[ -f ./find/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in find" ; \ + (cd find && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-flex distclean-flex +maybe-distclean-flex: + +distclean-flex: + @[ -f ./flex/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in flex" ; \ + (cd flex && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-gas distclean-gas +maybe-distclean-gas: + +distclean-gas: + @[ -f ./gas/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in gas" ; \ + (cd gas && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-gawk distclean-gawk +maybe-distclean-gawk: + +distclean-gawk: + @[ -f ./gawk/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in gawk" ; \ + (cd gawk && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-gettext distclean-gettext +maybe-distclean-gettext: + +distclean-gettext: + @[ -f ./gettext/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in gettext" ; \ + (cd gettext && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-gnuserv distclean-gnuserv +maybe-distclean-gnuserv: + +distclean-gnuserv: + @[ -f ./gnuserv/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in gnuserv" ; \ + (cd gnuserv && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-gprof distclean-gprof +maybe-distclean-gprof: + +distclean-gprof: + @[ -f ./gprof/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in gprof" ; \ + (cd gprof && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-gzip distclean-gzip +maybe-distclean-gzip: + +distclean-gzip: + @[ -f ./gzip/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in gzip" ; \ + (cd gzip && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-hello distclean-hello +maybe-distclean-hello: + +distclean-hello: + @[ -f ./hello/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in hello" ; \ + (cd hello && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-indent distclean-indent +maybe-distclean-indent: + +distclean-indent: + @[ -f ./indent/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in indent" ; \ + (cd indent && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-intl distclean-intl +maybe-distclean-intl: + +distclean-intl: + @[ -f ./intl/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in intl" ; \ + (cd intl && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-tcl distclean-tcl +maybe-distclean-tcl: + +distclean-tcl: + @[ -f ./tcl/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in tcl" ; \ + (cd tcl && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-itcl distclean-itcl +maybe-distclean-itcl: + +distclean-itcl: + @[ -f ./itcl/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in itcl" ; \ + (cd itcl && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-ld distclean-ld +maybe-distclean-ld: + +distclean-ld: + @[ -f ./ld/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in ld" ; \ + (cd ld && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-libgui distclean-libgui +maybe-distclean-libgui: + +distclean-libgui: + @[ -f ./libgui/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in libgui" ; \ + (cd libgui && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-libiberty distclean-libiberty +maybe-distclean-libiberty: + +distclean-libiberty: + @[ -f ./libiberty/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in libiberty" ; \ + (cd libiberty && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-libtool distclean-libtool +maybe-distclean-libtool: + +distclean-libtool: + @[ -f ./libtool/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in libtool" ; \ + (cd libtool && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-m4 distclean-m4 +maybe-distclean-m4: + +distclean-m4: + @[ -f ./m4/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in m4" ; \ + (cd m4 && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-make distclean-make +maybe-distclean-make: + +distclean-make: + @[ -f ./make/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in make" ; \ + (cd make && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-mmalloc distclean-mmalloc +maybe-distclean-mmalloc: + +distclean-mmalloc: + @[ -f ./mmalloc/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in mmalloc" ; \ + (cd mmalloc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-patch distclean-patch +maybe-distclean-patch: + +distclean-patch: + @[ -f ./patch/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in patch" ; \ + (cd patch && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-perl distclean-perl +maybe-distclean-perl: + +distclean-perl: + @[ -f ./perl/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in perl" ; \ + (cd perl && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-prms distclean-prms +maybe-distclean-prms: + +distclean-prms: + @[ -f ./prms/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in prms" ; \ + (cd prms && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-rcs distclean-rcs +maybe-distclean-rcs: + +distclean-rcs: + @[ -f ./rcs/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in rcs" ; \ + (cd rcs && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-readline distclean-readline +maybe-distclean-readline: + +distclean-readline: + @[ -f ./readline/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in readline" ; \ + (cd readline && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-release distclean-release +maybe-distclean-release: + +distclean-release: + @[ -f ./release/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in release" ; \ + (cd release && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-recode distclean-recode +maybe-distclean-recode: + +distclean-recode: + @[ -f ./recode/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in recode" ; \ + (cd recode && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-sed distclean-sed +maybe-distclean-sed: + +distclean-sed: + @[ -f ./sed/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in sed" ; \ + (cd sed && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-send-pr distclean-send-pr +maybe-distclean-send-pr: + +distclean-send-pr: + @[ -f ./send-pr/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in send-pr" ; \ + (cd send-pr && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-shellutils distclean-shellutils +maybe-distclean-shellutils: + +distclean-shellutils: + @[ -f ./shellutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in shellutils" ; \ + (cd shellutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-sid distclean-sid +maybe-distclean-sid: + +distclean-sid: + @[ -f ./sid/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in sid" ; \ + (cd sid && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-sim distclean-sim +maybe-distclean-sim: + +distclean-sim: + @[ -f ./sim/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in sim" ; \ + (cd sim && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-tar distclean-tar +maybe-distclean-tar: + +distclean-tar: + @[ -f ./tar/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in tar" ; \ + (cd tar && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-texinfo distclean-texinfo +maybe-distclean-texinfo: + +distclean-texinfo: + @[ -f ./texinfo/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in texinfo" ; \ + (cd texinfo && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-textutils distclean-textutils +maybe-distclean-textutils: + +distclean-textutils: + @[ -f ./textutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in textutils" ; \ + (cd textutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-time distclean-time +maybe-distclean-time: + +distclean-time: + @[ -f ./time/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in time" ; \ + (cd time && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-uudecode distclean-uudecode +maybe-distclean-uudecode: + +distclean-uudecode: + @[ -f ./uudecode/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in uudecode" ; \ + (cd uudecode && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-wdiff distclean-wdiff +maybe-distclean-wdiff: + +distclean-wdiff: + @[ -f ./wdiff/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in wdiff" ; \ + (cd wdiff && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-zip distclean-zip +maybe-distclean-zip: + +distclean-zip: + @[ -f ./zip/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in zip" ; \ + (cd zip && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-zlib distclean-zlib +maybe-distclean-zlib: + +distclean-zlib: + @[ -f ./zlib/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in zlib" ; \ + (cd zlib && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-gdb distclean-gdb +maybe-distclean-gdb: + +distclean-gdb: + @[ -f ./gdb/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in gdb" ; \ + (cd gdb && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-expect distclean-expect +maybe-distclean-expect: + +distclean-expect: + @[ -f ./expect/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in expect" ; \ + (cd expect && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-guile distclean-guile +maybe-distclean-guile: + +distclean-guile: + @[ -f ./guile/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in guile" ; \ + (cd guile && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-tk distclean-tk +maybe-distclean-tk: + +distclean-tk: + @[ -f ./tk/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in tk" ; \ + (cd tk && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-tix distclean-tix +maybe-distclean-tix: + +distclean-tix: + @[ -f ./tix/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in tix" ; \ + (cd tix && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-libtermcap distclean-libtermcap +maybe-distclean-libtermcap: + +# libtermcap doesn't support distclean. +distclean-libtermcap: + + +.PHONY: maybe-distclean-utils distclean-utils +maybe-distclean-utils: + +distclean-utils: + @[ -f ./utils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in utils" ; \ + (cd utils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + + +# Target modules. + +.PHONY: maybe-distclean-target-libstdc++-v3 distclean-target-libstdc++-v3 +maybe-distclean-target-libstdc++-v3: + +distclean-target-libstdc++-v3: + @[ -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing distclean in $(TARGET_SUBDIR)/libstdc++-v3" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libstdc++-v3 && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-target-newlib distclean-target-newlib +maybe-distclean-target-newlib: + +distclean-target-newlib: + @[ -f $(TARGET_SUBDIR)/newlib/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing distclean in $(TARGET_SUBDIR)/newlib" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/newlib && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-target-libf2c distclean-target-libf2c +maybe-distclean-target-libf2c: + +distclean-target-libf2c: + @[ -f $(TARGET_SUBDIR)/libf2c/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing distclean in $(TARGET_SUBDIR)/libf2c" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libf2c && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-target-libobjc distclean-target-libobjc +maybe-distclean-target-libobjc: + +distclean-target-libobjc: + @[ -f $(TARGET_SUBDIR)/libobjc/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing distclean in $(TARGET_SUBDIR)/libobjc" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libobjc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-target-libtermcap distclean-target-libtermcap +maybe-distclean-target-libtermcap: + +# libtermcap doesn't support distclean. +distclean-target-libtermcap: + + +.PHONY: maybe-distclean-target-winsup distclean-target-winsup +maybe-distclean-target-winsup: + +distclean-target-winsup: + @[ -f $(TARGET_SUBDIR)/winsup/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing distclean in $(TARGET_SUBDIR)/winsup" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/winsup && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-target-libgloss distclean-target-libgloss +maybe-distclean-target-libgloss: + +distclean-target-libgloss: + @[ -f $(TARGET_SUBDIR)/libgloss/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing distclean in $(TARGET_SUBDIR)/libgloss" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libgloss && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-target-libiberty distclean-target-libiberty +maybe-distclean-target-libiberty: + +distclean-target-libiberty: + @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing distclean in $(TARGET_SUBDIR)/libiberty" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libiberty && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-target-demangler distclean-target-demangler +maybe-distclean-target-demangler: + +distclean-target-demangler: + @[ -f $(TARGET_SUBDIR)/demangler/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing distclean in $(TARGET_SUBDIR)/demangler" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/demangler && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-target-gperf distclean-target-gperf +maybe-distclean-target-gperf: + +distclean-target-gperf: + @[ -f $(TARGET_SUBDIR)/gperf/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing distclean in $(TARGET_SUBDIR)/gperf" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/gperf && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-target-examples distclean-target-examples +maybe-distclean-target-examples: + +distclean-target-examples: + @[ -f $(TARGET_SUBDIR)/examples/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing distclean in $(TARGET_SUBDIR)/examples" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/examples && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-target-libffi distclean-target-libffi +maybe-distclean-target-libffi: + +distclean-target-libffi: + @[ -f $(TARGET_SUBDIR)/libffi/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing distclean in $(TARGET_SUBDIR)/libffi" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libffi && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-target-libjava distclean-target-libjava +maybe-distclean-target-libjava: + +distclean-target-libjava: + @[ -f $(TARGET_SUBDIR)/libjava/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing distclean in $(TARGET_SUBDIR)/libjava" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libjava && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-target-zlib distclean-target-zlib +maybe-distclean-target-zlib: + +distclean-target-zlib: + @[ -f $(TARGET_SUBDIR)/zlib/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing distclean in $(TARGET_SUBDIR)/zlib" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/zlib && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-target-boehm-gc distclean-target-boehm-gc +maybe-distclean-target-boehm-gc: + +distclean-target-boehm-gc: + @[ -f $(TARGET_SUBDIR)/boehm-gc/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing distclean in $(TARGET_SUBDIR)/boehm-gc" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/boehm-gc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-target-qthreads distclean-target-qthreads +maybe-distclean-target-qthreads: + +distclean-target-qthreads: + @[ -f $(TARGET_SUBDIR)/qthreads/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing distclean in $(TARGET_SUBDIR)/qthreads" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/qthreads && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + +.PHONY: maybe-distclean-target-rda distclean-target-rda +maybe-distclean-target-rda: + +distclean-target-rda: + @[ -f $(TARGET_SUBDIR)/rda/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing distclean in $(TARGET_SUBDIR)/rda" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/rda && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1 + + + +.PHONY: do-maintainer-clean +do-maintainer-clean: maintainer-clean-host maintainer-clean-target + +.PHONY: maintainer-clean-host +maintainer-clean-host: maybe-maintainer-clean-gcc \ + maybe-maintainer-clean-ash \ + maybe-maintainer-clean-autoconf \ + maybe-maintainer-clean-automake \ + maybe-maintainer-clean-bash \ + maybe-maintainer-clean-bfd \ + maybe-maintainer-clean-opcodes \ + maybe-maintainer-clean-binutils \ + maybe-maintainer-clean-bison \ + maybe-maintainer-clean-byacc \ + maybe-maintainer-clean-bzip2 \ + maybe-maintainer-clean-dejagnu \ + maybe-maintainer-clean-demangler \ + maybe-maintainer-clean-diff \ + maybe-maintainer-clean-dosutils \ + maybe-maintainer-clean-etc \ + maybe-maintainer-clean-fastjar \ + maybe-maintainer-clean-fileutils \ + maybe-maintainer-clean-findutils \ + maybe-maintainer-clean-find \ + maybe-maintainer-clean-flex \ + maybe-maintainer-clean-gas \ + maybe-maintainer-clean-gawk \ + maybe-maintainer-clean-gettext \ + maybe-maintainer-clean-gnuserv \ + maybe-maintainer-clean-gprof \ + maybe-maintainer-clean-gzip \ + maybe-maintainer-clean-hello \ + maybe-maintainer-clean-indent \ + maybe-maintainer-clean-intl \ + maybe-maintainer-clean-tcl \ + maybe-maintainer-clean-itcl \ + maybe-maintainer-clean-ld \ + maybe-maintainer-clean-libgui \ + maybe-maintainer-clean-libiberty \ + maybe-maintainer-clean-libtool \ + maybe-maintainer-clean-m4 \ + maybe-maintainer-clean-make \ + maybe-maintainer-clean-mmalloc \ + maybe-maintainer-clean-patch \ + maybe-maintainer-clean-perl \ + maybe-maintainer-clean-prms \ + maybe-maintainer-clean-rcs \ + maybe-maintainer-clean-readline \ + maybe-maintainer-clean-release \ + maybe-maintainer-clean-recode \ + maybe-maintainer-clean-sed \ + maybe-maintainer-clean-send-pr \ + maybe-maintainer-clean-shellutils \ + maybe-maintainer-clean-sid \ + maybe-maintainer-clean-sim \ + maybe-maintainer-clean-tar \ + maybe-maintainer-clean-texinfo \ + maybe-maintainer-clean-textutils \ + maybe-maintainer-clean-time \ + maybe-maintainer-clean-uudecode \ + maybe-maintainer-clean-wdiff \ + maybe-maintainer-clean-zip \ + maybe-maintainer-clean-zlib \ + maybe-maintainer-clean-gdb \ + maybe-maintainer-clean-expect \ + maybe-maintainer-clean-guile \ + maybe-maintainer-clean-tk \ + maybe-maintainer-clean-tix \ + maybe-maintainer-clean-libtermcap \ + maybe-maintainer-clean-utils + +.PHONY: maintainer-clean-target +maintainer-clean-target: \ + maybe-maintainer-clean-target-libstdc++-v3 \ + maybe-maintainer-clean-target-newlib \ + maybe-maintainer-clean-target-libf2c \ + maybe-maintainer-clean-target-libobjc \ + maybe-maintainer-clean-target-libtermcap \ + maybe-maintainer-clean-target-winsup \ + maybe-maintainer-clean-target-libgloss \ + maybe-maintainer-clean-target-libiberty \ + maybe-maintainer-clean-target-demangler \ + maybe-maintainer-clean-target-gperf \ + maybe-maintainer-clean-target-examples \ + maybe-maintainer-clean-target-libffi \ + maybe-maintainer-clean-target-libjava \ + maybe-maintainer-clean-target-zlib \ + maybe-maintainer-clean-target-boehm-gc \ + maybe-maintainer-clean-target-qthreads \ + maybe-maintainer-clean-target-rda + +# GCC, the eternal special case +.PHONY: maybe-maintainer-clean-gcc maintainer-clean-gcc +maybe-maintainer-clean-gcc: +maintainer-clean-gcc: + @[ -f ./gcc/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_GCC_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in gcc" ; \ + (cd gcc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + +# Host modules. + +.PHONY: maybe-maintainer-clean-ash maintainer-clean-ash +maybe-maintainer-clean-ash: + +maintainer-clean-ash: + @[ -f ./ash/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in ash" ; \ + (cd ash && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-autoconf maintainer-clean-autoconf +maybe-maintainer-clean-autoconf: + +maintainer-clean-autoconf: + @[ -f ./autoconf/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in autoconf" ; \ + (cd autoconf && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-automake maintainer-clean-automake +maybe-maintainer-clean-automake: + +maintainer-clean-automake: + @[ -f ./automake/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in automake" ; \ + (cd automake && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-bash maintainer-clean-bash +maybe-maintainer-clean-bash: + +maintainer-clean-bash: + @[ -f ./bash/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in bash" ; \ + (cd bash && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-bfd maintainer-clean-bfd +maybe-maintainer-clean-bfd: + +maintainer-clean-bfd: + @[ -f ./bfd/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in bfd" ; \ + (cd bfd && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-opcodes maintainer-clean-opcodes +maybe-maintainer-clean-opcodes: + +maintainer-clean-opcodes: + @[ -f ./opcodes/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in opcodes" ; \ + (cd opcodes && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-binutils maintainer-clean-binutils +maybe-maintainer-clean-binutils: + +maintainer-clean-binutils: + @[ -f ./binutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in binutils" ; \ + (cd binutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-bison maintainer-clean-bison +maybe-maintainer-clean-bison: + +maintainer-clean-bison: + @[ -f ./bison/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in bison" ; \ + (cd bison && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-byacc maintainer-clean-byacc +maybe-maintainer-clean-byacc: + +maintainer-clean-byacc: + @[ -f ./byacc/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in byacc" ; \ + (cd byacc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-bzip2 maintainer-clean-bzip2 +maybe-maintainer-clean-bzip2: + +maintainer-clean-bzip2: + @[ -f ./bzip2/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in bzip2" ; \ + (cd bzip2 && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-dejagnu maintainer-clean-dejagnu +maybe-maintainer-clean-dejagnu: + +maintainer-clean-dejagnu: + @[ -f ./dejagnu/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in dejagnu" ; \ + (cd dejagnu && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-demangler maintainer-clean-demangler +maybe-maintainer-clean-demangler: + +maintainer-clean-demangler: + @[ -f ./demangler/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in demangler" ; \ + (cd demangler && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-diff maintainer-clean-diff +maybe-maintainer-clean-diff: + +maintainer-clean-diff: + @[ -f ./diff/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in diff" ; \ + (cd diff && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-dosutils maintainer-clean-dosutils +maybe-maintainer-clean-dosutils: + +maintainer-clean-dosutils: + @[ -f ./dosutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in dosutils" ; \ + (cd dosutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-etc maintainer-clean-etc +maybe-maintainer-clean-etc: + +maintainer-clean-etc: + @[ -f ./etc/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in etc" ; \ + (cd etc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-fastjar maintainer-clean-fastjar +maybe-maintainer-clean-fastjar: + +maintainer-clean-fastjar: + @[ -f ./fastjar/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in fastjar" ; \ + (cd fastjar && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-fileutils maintainer-clean-fileutils +maybe-maintainer-clean-fileutils: + +maintainer-clean-fileutils: + @[ -f ./fileutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in fileutils" ; \ + (cd fileutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-findutils maintainer-clean-findutils +maybe-maintainer-clean-findutils: + +maintainer-clean-findutils: + @[ -f ./findutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in findutils" ; \ + (cd findutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-find maintainer-clean-find +maybe-maintainer-clean-find: + +maintainer-clean-find: + @[ -f ./find/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in find" ; \ + (cd find && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-flex maintainer-clean-flex +maybe-maintainer-clean-flex: + +maintainer-clean-flex: + @[ -f ./flex/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in flex" ; \ + (cd flex && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-gas maintainer-clean-gas +maybe-maintainer-clean-gas: + +maintainer-clean-gas: + @[ -f ./gas/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in gas" ; \ + (cd gas && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-gawk maintainer-clean-gawk +maybe-maintainer-clean-gawk: + +maintainer-clean-gawk: + @[ -f ./gawk/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in gawk" ; \ + (cd gawk && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-gettext maintainer-clean-gettext +maybe-maintainer-clean-gettext: + +maintainer-clean-gettext: + @[ -f ./gettext/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in gettext" ; \ + (cd gettext && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-gnuserv maintainer-clean-gnuserv +maybe-maintainer-clean-gnuserv: + +maintainer-clean-gnuserv: + @[ -f ./gnuserv/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in gnuserv" ; \ + (cd gnuserv && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-gprof maintainer-clean-gprof +maybe-maintainer-clean-gprof: + +maintainer-clean-gprof: + @[ -f ./gprof/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in gprof" ; \ + (cd gprof && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-gzip maintainer-clean-gzip +maybe-maintainer-clean-gzip: + +maintainer-clean-gzip: + @[ -f ./gzip/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in gzip" ; \ + (cd gzip && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-hello maintainer-clean-hello +maybe-maintainer-clean-hello: + +maintainer-clean-hello: + @[ -f ./hello/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in hello" ; \ + (cd hello && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-indent maintainer-clean-indent +maybe-maintainer-clean-indent: + +maintainer-clean-indent: + @[ -f ./indent/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in indent" ; \ + (cd indent && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-intl maintainer-clean-intl +maybe-maintainer-clean-intl: + +maintainer-clean-intl: + @[ -f ./intl/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in intl" ; \ + (cd intl && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-tcl maintainer-clean-tcl +maybe-maintainer-clean-tcl: + +maintainer-clean-tcl: + @[ -f ./tcl/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in tcl" ; \ + (cd tcl && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-itcl maintainer-clean-itcl +maybe-maintainer-clean-itcl: + +maintainer-clean-itcl: + @[ -f ./itcl/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in itcl" ; \ + (cd itcl && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-ld maintainer-clean-ld +maybe-maintainer-clean-ld: + +maintainer-clean-ld: + @[ -f ./ld/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in ld" ; \ + (cd ld && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-libgui maintainer-clean-libgui +maybe-maintainer-clean-libgui: + +maintainer-clean-libgui: + @[ -f ./libgui/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in libgui" ; \ + (cd libgui && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-libiberty maintainer-clean-libiberty +maybe-maintainer-clean-libiberty: + +maintainer-clean-libiberty: + @[ -f ./libiberty/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in libiberty" ; \ + (cd libiberty && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-libtool maintainer-clean-libtool +maybe-maintainer-clean-libtool: + +maintainer-clean-libtool: + @[ -f ./libtool/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in libtool" ; \ + (cd libtool && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-m4 maintainer-clean-m4 +maybe-maintainer-clean-m4: + +maintainer-clean-m4: + @[ -f ./m4/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in m4" ; \ + (cd m4 && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-make maintainer-clean-make +maybe-maintainer-clean-make: + +maintainer-clean-make: + @[ -f ./make/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in make" ; \ + (cd make && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-mmalloc maintainer-clean-mmalloc +maybe-maintainer-clean-mmalloc: + +maintainer-clean-mmalloc: + @[ -f ./mmalloc/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in mmalloc" ; \ + (cd mmalloc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-patch maintainer-clean-patch +maybe-maintainer-clean-patch: + +maintainer-clean-patch: + @[ -f ./patch/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in patch" ; \ + (cd patch && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-perl maintainer-clean-perl +maybe-maintainer-clean-perl: + +maintainer-clean-perl: + @[ -f ./perl/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in perl" ; \ + (cd perl && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-prms maintainer-clean-prms +maybe-maintainer-clean-prms: + +maintainer-clean-prms: + @[ -f ./prms/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in prms" ; \ + (cd prms && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-rcs maintainer-clean-rcs +maybe-maintainer-clean-rcs: + +maintainer-clean-rcs: + @[ -f ./rcs/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in rcs" ; \ + (cd rcs && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-readline maintainer-clean-readline +maybe-maintainer-clean-readline: + +maintainer-clean-readline: + @[ -f ./readline/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in readline" ; \ + (cd readline && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-release maintainer-clean-release +maybe-maintainer-clean-release: + +maintainer-clean-release: + @[ -f ./release/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in release" ; \ + (cd release && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-recode maintainer-clean-recode +maybe-maintainer-clean-recode: + +maintainer-clean-recode: + @[ -f ./recode/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in recode" ; \ + (cd recode && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-sed maintainer-clean-sed +maybe-maintainer-clean-sed: + +maintainer-clean-sed: + @[ -f ./sed/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in sed" ; \ + (cd sed && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-send-pr maintainer-clean-send-pr +maybe-maintainer-clean-send-pr: + +maintainer-clean-send-pr: + @[ -f ./send-pr/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in send-pr" ; \ + (cd send-pr && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-shellutils maintainer-clean-shellutils +maybe-maintainer-clean-shellutils: + +maintainer-clean-shellutils: + @[ -f ./shellutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in shellutils" ; \ + (cd shellutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-sid maintainer-clean-sid +maybe-maintainer-clean-sid: + +maintainer-clean-sid: + @[ -f ./sid/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in sid" ; \ + (cd sid && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-sim maintainer-clean-sim +maybe-maintainer-clean-sim: + +maintainer-clean-sim: + @[ -f ./sim/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in sim" ; \ + (cd sim && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-tar maintainer-clean-tar +maybe-maintainer-clean-tar: + +maintainer-clean-tar: + @[ -f ./tar/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in tar" ; \ + (cd tar && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-texinfo maintainer-clean-texinfo +maybe-maintainer-clean-texinfo: + +maintainer-clean-texinfo: + @[ -f ./texinfo/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in texinfo" ; \ + (cd texinfo && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-textutils maintainer-clean-textutils +maybe-maintainer-clean-textutils: + +maintainer-clean-textutils: + @[ -f ./textutils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in textutils" ; \ + (cd textutils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-time maintainer-clean-time +maybe-maintainer-clean-time: + +maintainer-clean-time: + @[ -f ./time/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in time" ; \ + (cd time && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-uudecode maintainer-clean-uudecode +maybe-maintainer-clean-uudecode: + +maintainer-clean-uudecode: + @[ -f ./uudecode/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in uudecode" ; \ + (cd uudecode && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-wdiff maintainer-clean-wdiff +maybe-maintainer-clean-wdiff: + +maintainer-clean-wdiff: + @[ -f ./wdiff/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in wdiff" ; \ + (cd wdiff && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-zip maintainer-clean-zip +maybe-maintainer-clean-zip: + +maintainer-clean-zip: + @[ -f ./zip/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in zip" ; \ + (cd zip && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-zlib maintainer-clean-zlib +maybe-maintainer-clean-zlib: + +maintainer-clean-zlib: + @[ -f ./zlib/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in zlib" ; \ + (cd zlib && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-gdb maintainer-clean-gdb +maybe-maintainer-clean-gdb: + +maintainer-clean-gdb: + @[ -f ./gdb/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in gdb" ; \ + (cd gdb && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-expect maintainer-clean-expect +maybe-maintainer-clean-expect: + +maintainer-clean-expect: + @[ -f ./expect/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in expect" ; \ + (cd expect && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-guile maintainer-clean-guile +maybe-maintainer-clean-guile: + +maintainer-clean-guile: + @[ -f ./guile/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in guile" ; \ + (cd guile && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-tk maintainer-clean-tk +maybe-maintainer-clean-tk: + +maintainer-clean-tk: + @[ -f ./tk/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in tk" ; \ + (cd tk && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-tix maintainer-clean-tix +maybe-maintainer-clean-tix: + +maintainer-clean-tix: + @[ -f ./tix/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in tix" ; \ + (cd tix && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-libtermcap maintainer-clean-libtermcap +maybe-maintainer-clean-libtermcap: + +# libtermcap doesn't support maintainer-clean. +maintainer-clean-libtermcap: + + +.PHONY: maybe-maintainer-clean-utils maintainer-clean-utils +maybe-maintainer-clean-utils: + +maintainer-clean-utils: + @[ -f ./utils/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in utils" ; \ + (cd utils && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + + +# Target modules. + +.PHONY: maybe-maintainer-clean-target-libstdc++-v3 maintainer-clean-target-libstdc++-v3 +maybe-maintainer-clean-target-libstdc++-v3: + +maintainer-clean-target-libstdc++-v3: + @[ -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libstdc++-v3" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libstdc++-v3 && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-target-newlib maintainer-clean-target-newlib +maybe-maintainer-clean-target-newlib: + +maintainer-clean-target-newlib: + @[ -f $(TARGET_SUBDIR)/newlib/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing maintainer-clean in $(TARGET_SUBDIR)/newlib" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/newlib && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-target-libf2c maintainer-clean-target-libf2c +maybe-maintainer-clean-target-libf2c: + +maintainer-clean-target-libf2c: + @[ -f $(TARGET_SUBDIR)/libf2c/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libf2c" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libf2c && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-target-libobjc maintainer-clean-target-libobjc +maybe-maintainer-clean-target-libobjc: + +maintainer-clean-target-libobjc: + @[ -f $(TARGET_SUBDIR)/libobjc/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libobjc" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libobjc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-target-libtermcap maintainer-clean-target-libtermcap +maybe-maintainer-clean-target-libtermcap: + +# libtermcap doesn't support maintainer-clean. +maintainer-clean-target-libtermcap: + + +.PHONY: maybe-maintainer-clean-target-winsup maintainer-clean-target-winsup +maybe-maintainer-clean-target-winsup: + +maintainer-clean-target-winsup: + @[ -f $(TARGET_SUBDIR)/winsup/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing maintainer-clean in $(TARGET_SUBDIR)/winsup" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/winsup && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-target-libgloss maintainer-clean-target-libgloss +maybe-maintainer-clean-target-libgloss: + +maintainer-clean-target-libgloss: + @[ -f $(TARGET_SUBDIR)/libgloss/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libgloss" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libgloss && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-target-libiberty maintainer-clean-target-libiberty +maybe-maintainer-clean-target-libiberty: + +maintainer-clean-target-libiberty: + @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libiberty" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libiberty && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-target-demangler maintainer-clean-target-demangler +maybe-maintainer-clean-target-demangler: + +maintainer-clean-target-demangler: + @[ -f $(TARGET_SUBDIR)/demangler/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing maintainer-clean in $(TARGET_SUBDIR)/demangler" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/demangler && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-target-gperf maintainer-clean-target-gperf +maybe-maintainer-clean-target-gperf: + +maintainer-clean-target-gperf: + @[ -f $(TARGET_SUBDIR)/gperf/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing maintainer-clean in $(TARGET_SUBDIR)/gperf" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/gperf && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + -.PHONY: do-clean -do-clean: - @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 ; \ - (cd ./$$i && \ - $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ - "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ - "RANLIB=$${RANLIB}" \ - "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ - clean) \ - || exit 1; \ - else true; fi; \ - done - # Break into two pieces - 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; \ - (cd $(TARGET_SUBDIR)/$$i && \ - $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ - "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ - "RANLIB=$${RANLIB}" \ - "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ - clean) \ - || exit 1; \ - else true; fi; \ - done +.PHONY: maybe-maintainer-clean-target-examples maintainer-clean-target-examples +maybe-maintainer-clean-target-examples: + +maintainer-clean-target-examples: + @[ -f $(TARGET_SUBDIR)/examples/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing maintainer-clean in $(TARGET_SUBDIR)/examples" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/examples && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 -.PHONY: do-distclean -do-distclean: - @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 ; \ - (cd ./$$i && \ - $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ - "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ - "RANLIB=$${RANLIB}" \ - "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ - distclean) \ - || exit 1; \ - else true; fi; \ - done - # Break into two pieces - 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; \ - (cd $(TARGET_SUBDIR)/$$i && \ - $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ - "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ - "RANLIB=$${RANLIB}" \ - "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ - distclean) \ - || exit 1; \ - else true; fi; \ - done -.PHONY: do-dvi -do-dvi: - @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 ; \ - (cd ./$$i && \ - $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ - "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ - "RANLIB=$${RANLIB}" \ - "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ - dvi) \ - || exit 1; \ - else true; fi; \ - done - # Break into two pieces - 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; \ - (cd $(TARGET_SUBDIR)/$$i && \ - $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ - "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ - "RANLIB=$${RANLIB}" \ - "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ - dvi) \ - || exit 1; \ - else true; fi; \ - done +.PHONY: maybe-maintainer-clean-target-libffi maintainer-clean-target-libffi +maybe-maintainer-clean-target-libffi: + +maintainer-clean-target-libffi: + @[ -f $(TARGET_SUBDIR)/libffi/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libffi" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libffi && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 -.PHONY: do-info -do-info: - @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 ; \ - (cd ./$$i && \ - $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ - "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ - "RANLIB=$${RANLIB}" \ - "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ - info) \ - || exit 1; \ - else true; fi; \ - done - # Break into two pieces - 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; \ - (cd $(TARGET_SUBDIR)/$$i && \ - $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ - "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ - "RANLIB=$${RANLIB}" \ - "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ - info) \ - || exit 1; \ - else true; fi; \ - done -.PHONY: do-install-info -do-install-info: - @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 ; \ - (cd ./$$i && \ - $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ - "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ - "RANLIB=$${RANLIB}" \ - "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ - install-info) \ - || exit 1; \ - else true; fi; \ - done - # Break into two pieces - 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; \ - (cd $(TARGET_SUBDIR)/$$i && \ - $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ - "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ - "RANLIB=$${RANLIB}" \ - "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ - install-info) \ - || exit 1; \ - else true; fi; \ - done +.PHONY: maybe-maintainer-clean-target-libjava maintainer-clean-target-libjava +maybe-maintainer-clean-target-libjava: + +maintainer-clean-target-libjava: + @[ -f $(TARGET_SUBDIR)/libjava/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libjava" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libjava && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 -.PHONY: do-installcheck -do-installcheck: - @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 ; \ - (cd ./$$i && \ - $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ - "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ - "RANLIB=$${RANLIB}" \ - "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ - installcheck) \ - || exit 1; \ - else true; fi; \ - done - # Break into two pieces - 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; \ - (cd $(TARGET_SUBDIR)/$$i && \ - $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ - "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ - "RANLIB=$${RANLIB}" \ - "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ - installcheck) \ - || exit 1; \ - else true; fi; \ - done -.PHONY: do-mostlyclean -do-mostlyclean: - @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 ; \ - (cd ./$$i && \ - $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ - "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ - "RANLIB=$${RANLIB}" \ - "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ - mostlyclean) \ - || exit 1; \ - else true; fi; \ - done - # Break into two pieces - 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; \ - (cd $(TARGET_SUBDIR)/$$i && \ - $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ - "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ - "RANLIB=$${RANLIB}" \ - "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ - mostlyclean) \ - || exit 1; \ - else true; fi; \ - done +.PHONY: maybe-maintainer-clean-target-zlib maintainer-clean-target-zlib +maybe-maintainer-clean-target-zlib: + +maintainer-clean-target-zlib: + @[ -f $(TARGET_SUBDIR)/zlib/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing maintainer-clean in $(TARGET_SUBDIR)/zlib" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/zlib && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 -.PHONY: do-maintainer-clean -do-maintainer-clean: - @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 ; \ - (cd ./$$i && \ - $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ - "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ - "RANLIB=$${RANLIB}" \ - "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ - maintainer-clean) \ - || exit 1; \ - else true; fi; \ - done - # Break into two pieces - 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; \ - (cd $(TARGET_SUBDIR)/$$i && \ - $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ - "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ - "RANLIB=$${RANLIB}" \ - "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ - maintainer-clean) \ - || exit 1; \ - else true; fi; \ - done -.PHONY: do-TAGS -do-TAGS: - @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 ; \ - (cd ./$$i && \ - $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ - "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ - "RANLIB=$${RANLIB}" \ - "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ - TAGS) \ - || exit 1; \ - else true; fi; \ - done - # Break into two pieces - 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; \ - (cd $(TARGET_SUBDIR)/$$i && \ - $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ - "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ - "RANLIB=$${RANLIB}" \ - "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ - TAGS) \ - || exit 1; \ - else true; fi; \ - done +.PHONY: maybe-maintainer-clean-target-boehm-gc maintainer-clean-target-boehm-gc +maybe-maintainer-clean-target-boehm-gc: + +maintainer-clean-target-boehm-gc: + @[ -f $(TARGET_SUBDIR)/boehm-gc/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing maintainer-clean in $(TARGET_SUBDIR)/boehm-gc" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/boehm-gc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-target-qthreads maintainer-clean-target-qthreads +maybe-maintainer-clean-target-qthreads: + +maintainer-clean-target-qthreads: + @[ -f $(TARGET_SUBDIR)/qthreads/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing maintainer-clean in $(TARGET_SUBDIR)/qthreads" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/qthreads && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + + +.PHONY: maybe-maintainer-clean-target-rda maintainer-clean-target-rda +maybe-maintainer-clean-target-rda: + +maintainer-clean-target-rda: + @[ -f $(TARGET_SUBDIR)/rda/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing maintainer-clean in $(TARGET_SUBDIR)/rda" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/rda && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1 + @@ -1259,7 +17656,7 @@ dvi: do-dvi do-info: maybe-all-texinfo install-info: do-install-info dir.info - s=`cd $(srcdir); ${PWD}`; export s; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ if [ -f dir.info ] ; then \ $(INSTALL_DATA) dir.info $(DESTDIR)$(infodir)/dir.info ; \ else true ; fi @@ -1278,7 +17675,7 @@ local-distclean: -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 + -rmdir fastjar gcc libiberty demangler texinfo zlib 2>/dev/null local-maintainer-clean: @echo "This command is intended for maintainers to use;" @@ -1291,33 +17688,8 @@ maintainer-clean: local-maintainer-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 +# Extra dependency for clean-target, owing to the mixed nature of gcc +clean-target: clean-target-libgcc clean-target-libgcc: test ! -d gcc/libgcc || \ (cd gcc/libgcc && find . -type d -print) | \ @@ -1328,7 +17700,7 @@ clean-target-libgcc: .PHONY: check do-check check: - $(MAKE) do-check NOTPARALLEL=parallel-ok + $(MAKE) do-check # Only include modules actually being configured and built. do-check: maybe-check-gcc \ @@ -1343,6 +17715,7 @@ do-check: maybe-check-gcc \ maybe-check-byacc \ maybe-check-bzip2 \ maybe-check-dejagnu \ + maybe-check-demangler \ maybe-check-diff \ maybe-check-dosutils \ maybe-check-etc \ @@ -1404,6 +17777,7 @@ do-check: maybe-check-gcc \ maybe-check-target-winsup \ maybe-check-target-libgloss \ maybe-check-target-libiberty \ + maybe-check-target-demangler \ maybe-check-target-gperf \ maybe-check-target-examples \ maybe-check-target-libffi \ @@ -1452,6 +17826,7 @@ install-host-nogcc: \ maybe-install-byacc \ maybe-install-bzip2 \ maybe-install-dejagnu \ + maybe-install-demangler \ maybe-install-diff \ maybe-install-dosutils \ maybe-install-etc \ @@ -1519,6 +17894,7 @@ install-host: maybe-install-gcc \ maybe-install-byacc \ maybe-install-bzip2 \ maybe-install-dejagnu \ + maybe-install-demangler \ maybe-install-diff \ maybe-install-dosutils \ maybe-install-etc \ @@ -1583,6 +17959,7 @@ install-target: \ maybe-install-target-winsup \ maybe-install-target-libgloss \ maybe-install-target-libiberty \ + maybe-install-target-demangler \ maybe-install-target-gperf \ maybe-install-target-examples \ maybe-install-target-libffi \ @@ -1598,7 +17975,7 @@ uninstall: .PHONY: install.all install.all: install-no-fixedincludes @if [ -f ./gcc/Makefile ] ; then \ - r=`${PWD}` ; export r ; \ + r=`${PWD_COMMAND}` ; export r ; \ $(SET_LIB_PATH) \ (cd ./gcc && \ $(MAKE) $(FLAGS_TO_PASS) install-headers) ; \ @@ -1652,8 +18029,8 @@ configure-build-libiberty: @test ! -f $(BUILD_SUBDIR)/libiberty/Makefile || exit 0; \ [ -d $(BUILD_SUBDIR)/libiberty ] || \ mkdir $(BUILD_SUBDIR)/libiberty;\ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ AR="$(AR_FOR_BUILD)"; export AR; \ AS="$(AS_FOR_BUILD)"; export AS; \ CC="$(CC_FOR_BUILD)"; export CC; \ @@ -1711,10 +18088,79 @@ configure-build-libiberty: .PHONY: all-build-libiberty maybe-all-build-libiberty maybe-all-build-libiberty: all-build-libiberty: configure-build-libiberty - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ (cd $(BUILD_SUBDIR)/libiberty && $(MAKE) all) +.PHONY: configure-build-demangler maybe-configure-build-demangler +maybe-configure-build-demangler: +configure-build-demangler: + @test ! -f $(BUILD_SUBDIR)/demangler/Makefile || exit 0; \ + [ -d $(BUILD_SUBDIR)/demangler ] || \ + mkdir $(BUILD_SUBDIR)/demangler;\ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; 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)/demangler; \ + cd "$(BUILD_SUBDIR)/demangler" || 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}/demangler "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}/demangler"; \ + libsrcdir="$$s/demangler"; \ + fi; \ + rm -f no-such-file || : ; \ + CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \ + $(BUILD_CONFIGARGS) $${srcdiroption} \ + --with-build-subdir="$(BUILD_SUBDIR)" \ + || exit 1 + +.PHONY: all-build-demangler maybe-all-build-demangler +maybe-all-build-demangler: +all-build-demangler: configure-build-demangler + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + (cd $(BUILD_SUBDIR)/demangler && $(MAKE) all) + # -------------------------------------- # Modules which run on the host machine @@ -1725,24 +18171,22 @@ maybe-configure-ash: configure-ash: @test ! -f ash/Makefile || exit 0; \ [ -d ash ] || mkdir ash; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in ash; \ cd ash || exit 1; \ case $(srcdir) in \ @@ -1763,8 +18207,8 @@ configure-ash: .PHONY: all-ash maybe-all-ash maybe-all-ash: all-ash: configure-ash - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd ash && $(MAKE) $(FLAGS_TO_PASS) all) @@ -1772,8 +18216,8 @@ all-ash: configure-ash maybe-check-ash: check-ash: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd ash && $(MAKE) $(FLAGS_TO_PASS) check) @@ -1782,8 +18226,8 @@ check-ash: maybe-install-ash: install-ash: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd ash && $(MAKE) $(FLAGS_TO_PASS) install) @@ -1793,24 +18237,22 @@ maybe-configure-autoconf: configure-autoconf: @test ! -f autoconf/Makefile || exit 0; \ [ -d autoconf ] || mkdir autoconf; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in autoconf; \ cd autoconf || exit 1; \ case $(srcdir) in \ @@ -1831,8 +18273,8 @@ configure-autoconf: .PHONY: all-autoconf maybe-all-autoconf maybe-all-autoconf: all-autoconf: configure-autoconf - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd autoconf && $(MAKE) $(FLAGS_TO_PASS) all) @@ -1840,8 +18282,8 @@ all-autoconf: configure-autoconf maybe-check-autoconf: check-autoconf: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd autoconf && $(MAKE) $(FLAGS_TO_PASS) check) @@ -1850,8 +18292,8 @@ check-autoconf: maybe-install-autoconf: install-autoconf: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd autoconf && $(MAKE) $(FLAGS_TO_PASS) install) @@ -1861,24 +18303,22 @@ maybe-configure-automake: configure-automake: @test ! -f automake/Makefile || exit 0; \ [ -d automake ] || mkdir automake; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in automake; \ cd automake || exit 1; \ case $(srcdir) in \ @@ -1899,8 +18339,8 @@ configure-automake: .PHONY: all-automake maybe-all-automake maybe-all-automake: all-automake: configure-automake - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd automake && $(MAKE) $(FLAGS_TO_PASS) all) @@ -1908,8 +18348,8 @@ all-automake: configure-automake maybe-check-automake: check-automake: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd automake && $(MAKE) $(FLAGS_TO_PASS) check) @@ -1918,8 +18358,8 @@ check-automake: maybe-install-automake: install-automake: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd automake && $(MAKE) $(FLAGS_TO_PASS) install) @@ -1929,24 +18369,22 @@ maybe-configure-bash: configure-bash: @test ! -f bash/Makefile || exit 0; \ [ -d bash ] || mkdir bash; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in bash; \ cd bash || exit 1; \ case $(srcdir) in \ @@ -1967,8 +18405,8 @@ configure-bash: .PHONY: all-bash maybe-all-bash maybe-all-bash: all-bash: configure-bash - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd bash && $(MAKE) $(FLAGS_TO_PASS) all) @@ -1976,8 +18414,8 @@ all-bash: configure-bash maybe-check-bash: check-bash: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd bash && $(MAKE) $(FLAGS_TO_PASS) check) @@ -1986,8 +18424,8 @@ check-bash: maybe-install-bash: install-bash: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd bash && $(MAKE) $(FLAGS_TO_PASS) install) @@ -1997,24 +18435,22 @@ maybe-configure-bfd: configure-bfd: @test ! -f bfd/Makefile || exit 0; \ [ -d bfd ] || mkdir bfd; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in bfd; \ cd bfd || exit 1; \ case $(srcdir) in \ @@ -2035,8 +18471,8 @@ configure-bfd: .PHONY: all-bfd maybe-all-bfd maybe-all-bfd: all-bfd: configure-bfd - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd bfd && $(MAKE) $(FLAGS_TO_PASS) all) @@ -2044,8 +18480,8 @@ all-bfd: configure-bfd maybe-check-bfd: check-bfd: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd bfd && $(MAKE) $(FLAGS_TO_PASS) check) @@ -2054,8 +18490,8 @@ check-bfd: maybe-install-bfd: install-bfd: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd bfd && $(MAKE) $(FLAGS_TO_PASS) install) @@ -2065,24 +18501,22 @@ maybe-configure-opcodes: configure-opcodes: @test ! -f opcodes/Makefile || exit 0; \ [ -d opcodes ] || mkdir opcodes; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in opcodes; \ cd opcodes || exit 1; \ case $(srcdir) in \ @@ -2103,8 +18537,8 @@ configure-opcodes: .PHONY: all-opcodes maybe-all-opcodes maybe-all-opcodes: all-opcodes: configure-opcodes - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd opcodes && $(MAKE) $(FLAGS_TO_PASS) all) @@ -2112,8 +18546,8 @@ all-opcodes: configure-opcodes maybe-check-opcodes: check-opcodes: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd opcodes && $(MAKE) $(FLAGS_TO_PASS) check) @@ -2122,8 +18556,8 @@ check-opcodes: maybe-install-opcodes: install-opcodes: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd opcodes && $(MAKE) $(FLAGS_TO_PASS) install) @@ -2133,24 +18567,22 @@ maybe-configure-binutils: configure-binutils: @test ! -f binutils/Makefile || exit 0; \ [ -d binutils ] || mkdir binutils; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in binutils; \ cd binutils || exit 1; \ case $(srcdir) in \ @@ -2171,8 +18603,8 @@ configure-binutils: .PHONY: all-binutils maybe-all-binutils maybe-all-binutils: all-binutils: configure-binutils - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd binutils && $(MAKE) $(FLAGS_TO_PASS) all) @@ -2180,8 +18612,8 @@ all-binutils: configure-binutils maybe-check-binutils: check-binutils: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd binutils && $(MAKE) $(FLAGS_TO_PASS) check) @@ -2190,8 +18622,8 @@ check-binutils: maybe-install-binutils: install-binutils: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd binutils && $(MAKE) $(FLAGS_TO_PASS) install) @@ -2201,24 +18633,22 @@ maybe-configure-bison: configure-bison: @test ! -f bison/Makefile || exit 0; \ [ -d bison ] || mkdir bison; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in bison; \ cd bison || exit 1; \ case $(srcdir) in \ @@ -2239,8 +18669,8 @@ configure-bison: .PHONY: all-bison maybe-all-bison maybe-all-bison: all-bison: configure-bison - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd bison && $(MAKE) $(FLAGS_TO_PASS) all) @@ -2249,9 +18679,9 @@ maybe-check-bison: # This module is only tested in a native toolchain. check-bison: - @if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @if [ '$(host)' = '$(target)' ] ; then \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd bison && $(MAKE) $(FLAGS_TO_PASS) check); \ fi @@ -2261,8 +18691,8 @@ check-bison: maybe-install-bison: install-bison: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd bison && $(MAKE) $(FLAGS_TO_PASS) install) @@ -2272,24 +18702,22 @@ maybe-configure-byacc: configure-byacc: @test ! -f byacc/Makefile || exit 0; \ [ -d byacc ] || mkdir byacc; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in byacc; \ cd byacc || exit 1; \ case $(srcdir) in \ @@ -2310,8 +18738,8 @@ configure-byacc: .PHONY: all-byacc maybe-all-byacc maybe-all-byacc: all-byacc: configure-byacc - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd byacc && $(MAKE) $(FLAGS_TO_PASS) all) @@ -2320,9 +18748,9 @@ maybe-check-byacc: # This module is only tested in a native toolchain. check-byacc: - @if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @if [ '$(host)' = '$(target)' ] ; then \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd byacc && $(MAKE) $(FLAGS_TO_PASS) check); \ fi @@ -2332,8 +18760,8 @@ check-byacc: maybe-install-byacc: install-byacc: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd byacc && $(MAKE) $(FLAGS_TO_PASS) install) @@ -2343,24 +18771,22 @@ maybe-configure-bzip2: configure-bzip2: @test ! -f bzip2/Makefile || exit 0; \ [ -d bzip2 ] || mkdir bzip2; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in bzip2; \ cd bzip2 || exit 1; \ case $(srcdir) in \ @@ -2381,8 +18807,8 @@ configure-bzip2: .PHONY: all-bzip2 maybe-all-bzip2 maybe-all-bzip2: all-bzip2: configure-bzip2 - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd bzip2 && $(MAKE) $(FLAGS_TO_PASS) all) @@ -2390,8 +18816,8 @@ all-bzip2: configure-bzip2 maybe-check-bzip2: check-bzip2: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd bzip2 && $(MAKE) $(FLAGS_TO_PASS) check) @@ -2400,8 +18826,8 @@ check-bzip2: maybe-install-bzip2: install-bzip2: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd bzip2 && $(MAKE) $(FLAGS_TO_PASS) install) @@ -2411,24 +18837,22 @@ maybe-configure-dejagnu: configure-dejagnu: @test ! -f dejagnu/Makefile || exit 0; \ [ -d dejagnu ] || mkdir dejagnu; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in dejagnu; \ cd dejagnu || exit 1; \ case $(srcdir) in \ @@ -2449,8 +18873,8 @@ configure-dejagnu: .PHONY: all-dejagnu maybe-all-dejagnu maybe-all-dejagnu: all-dejagnu: configure-dejagnu - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd dejagnu && $(MAKE) $(FLAGS_TO_PASS) all) @@ -2458,8 +18882,8 @@ all-dejagnu: configure-dejagnu maybe-check-dejagnu: check-dejagnu: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd dejagnu && $(MAKE) $(FLAGS_TO_PASS) check) @@ -2468,35 +18892,95 @@ check-dejagnu: maybe-install-dejagnu: install-dejagnu: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd dejagnu && $(MAKE) $(FLAGS_TO_PASS) install) +.PHONY: configure-demangler maybe-configure-demangler +maybe-configure-demangler: +configure-demangler: + @test ! -f demangler/Makefile || exit 0; \ + [ -d demangler ] || mkdir demangler; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + echo Configuring in demangler; \ + cd demangler || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/demangler"; \ + libsrcdir="$$s/demangler";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/demangler"; \ + libsrcdir="$$s/demangler";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-demangler maybe-all-demangler +maybe-all-demangler: +all-demangler: configure-demangler + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + (cd demangler && $(MAKE) $(FLAGS_TO_PASS) all) + +.PHONY: check-demangler maybe-check-demangler +maybe-check-demangler: + +check-demangler: + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + (cd demangler && $(MAKE) $(FLAGS_TO_PASS) check) + + +.PHONY: install-demangler maybe-install-demangler +maybe-install-demangler: + +install-demangler: + + .PHONY: configure-diff maybe-configure-diff maybe-configure-diff: configure-diff: @test ! -f diff/Makefile || exit 0; \ [ -d diff ] || mkdir diff; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in diff; \ cd diff || exit 1; \ case $(srcdir) in \ @@ -2517,8 +19001,8 @@ configure-diff: .PHONY: all-diff maybe-all-diff maybe-all-diff: all-diff: configure-diff - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd diff && $(MAKE) $(FLAGS_TO_PASS) all) @@ -2526,8 +19010,8 @@ all-diff: configure-diff maybe-check-diff: check-diff: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd diff && $(MAKE) $(FLAGS_TO_PASS) check) @@ -2536,8 +19020,8 @@ check-diff: maybe-install-diff: install-diff: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd diff && $(MAKE) $(FLAGS_TO_PASS) install) @@ -2547,24 +19031,22 @@ maybe-configure-dosutils: configure-dosutils: @test ! -f dosutils/Makefile || exit 0; \ [ -d dosutils ] || mkdir dosutils; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in dosutils; \ cd dosutils || exit 1; \ case $(srcdir) in \ @@ -2585,8 +19067,8 @@ configure-dosutils: .PHONY: all-dosutils maybe-all-dosutils maybe-all-dosutils: all-dosutils: configure-dosutils - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd dosutils && $(MAKE) $(FLAGS_TO_PASS) all) @@ -2600,8 +19082,8 @@ check-dosutils: maybe-install-dosutils: install-dosutils: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd dosutils && $(MAKE) $(FLAGS_TO_PASS) install) @@ -2611,24 +19093,22 @@ maybe-configure-etc: configure-etc: @test ! -f etc/Makefile || exit 0; \ [ -d etc ] || mkdir etc; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in etc; \ cd etc || exit 1; \ case $(srcdir) in \ @@ -2649,8 +19129,8 @@ configure-etc: .PHONY: all-etc maybe-all-etc maybe-all-etc: all-etc: configure-etc - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd etc && $(MAKE) $(FLAGS_TO_PASS) all) @@ -2658,8 +19138,8 @@ all-etc: configure-etc maybe-check-etc: check-etc: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd etc && $(MAKE) $(FLAGS_TO_PASS) check) @@ -2668,8 +19148,8 @@ check-etc: maybe-install-etc: install-etc: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd etc && $(MAKE) $(FLAGS_TO_PASS) install) @@ -2679,24 +19159,22 @@ maybe-configure-fastjar: configure-fastjar: @test ! -f fastjar/Makefile || exit 0; \ [ -d fastjar ] || mkdir fastjar; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in fastjar; \ cd fastjar || exit 1; \ case $(srcdir) in \ @@ -2717,8 +19195,8 @@ configure-fastjar: .PHONY: all-fastjar maybe-all-fastjar maybe-all-fastjar: all-fastjar: configure-fastjar - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd fastjar && $(MAKE) $(FLAGS_TO_PASS) all) @@ -2727,9 +19205,9 @@ maybe-check-fastjar: # This module is only tested in a native toolchain. check-fastjar: - @if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @if [ '$(host)' = '$(target)' ] ; then \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd fastjar && $(MAKE) $(FLAGS_TO_PASS) check); \ fi @@ -2739,8 +19217,8 @@ check-fastjar: maybe-install-fastjar: install-fastjar: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd fastjar && $(MAKE) $(FLAGS_TO_PASS) install) @@ -2750,24 +19228,22 @@ maybe-configure-fileutils: configure-fileutils: @test ! -f fileutils/Makefile || exit 0; \ [ -d fileutils ] || mkdir fileutils; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in fileutils; \ cd fileutils || exit 1; \ case $(srcdir) in \ @@ -2788,8 +19264,8 @@ configure-fileutils: .PHONY: all-fileutils maybe-all-fileutils maybe-all-fileutils: all-fileutils: configure-fileutils - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd fileutils && $(MAKE) $(FLAGS_TO_PASS) all) @@ -2797,8 +19273,8 @@ all-fileutils: configure-fileutils maybe-check-fileutils: check-fileutils: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd fileutils && $(MAKE) $(FLAGS_TO_PASS) check) @@ -2807,8 +19283,8 @@ check-fileutils: maybe-install-fileutils: install-fileutils: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd fileutils && $(MAKE) $(FLAGS_TO_PASS) install) @@ -2818,24 +19294,22 @@ maybe-configure-findutils: configure-findutils: @test ! -f findutils/Makefile || exit 0; \ [ -d findutils ] || mkdir findutils; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in findutils; \ cd findutils || exit 1; \ case $(srcdir) in \ @@ -2856,8 +19330,8 @@ configure-findutils: .PHONY: all-findutils maybe-all-findutils maybe-all-findutils: all-findutils: configure-findutils - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd findutils && $(MAKE) $(FLAGS_TO_PASS) all) @@ -2865,8 +19339,8 @@ all-findutils: configure-findutils maybe-check-findutils: check-findutils: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd findutils && $(MAKE) $(FLAGS_TO_PASS) check) @@ -2875,8 +19349,8 @@ check-findutils: maybe-install-findutils: install-findutils: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd findutils && $(MAKE) $(FLAGS_TO_PASS) install) @@ -2886,24 +19360,22 @@ maybe-configure-find: configure-find: @test ! -f find/Makefile || exit 0; \ [ -d find ] || mkdir find; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in find; \ cd find || exit 1; \ case $(srcdir) in \ @@ -2924,8 +19396,8 @@ configure-find: .PHONY: all-find maybe-all-find maybe-all-find: all-find: configure-find - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd find && $(MAKE) $(FLAGS_TO_PASS) all) @@ -2933,8 +19405,8 @@ all-find: configure-find maybe-check-find: check-find: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd find && $(MAKE) $(FLAGS_TO_PASS) check) @@ -2943,8 +19415,8 @@ check-find: maybe-install-find: install-find: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd find && $(MAKE) $(FLAGS_TO_PASS) install) @@ -2954,24 +19426,22 @@ maybe-configure-flex: configure-flex: @test ! -f flex/Makefile || exit 0; \ [ -d flex ] || mkdir flex; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in flex; \ cd flex || exit 1; \ case $(srcdir) in \ @@ -2992,8 +19462,8 @@ configure-flex: .PHONY: all-flex maybe-all-flex maybe-all-flex: all-flex: configure-flex - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd flex && $(MAKE) $(FLAGS_TO_PASS) all) @@ -3002,9 +19472,9 @@ maybe-check-flex: # This module is only tested in a native toolchain. check-flex: - @if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @if [ '$(host)' = '$(target)' ] ; then \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd flex && $(MAKE) $(FLAGS_TO_PASS) check); \ fi @@ -3014,8 +19484,8 @@ check-flex: maybe-install-flex: install-flex: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd flex && $(MAKE) $(FLAGS_TO_PASS) install) @@ -3025,24 +19495,22 @@ maybe-configure-gas: configure-gas: @test ! -f gas/Makefile || exit 0; \ [ -d gas ] || mkdir gas; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in gas; \ cd gas || exit 1; \ case $(srcdir) in \ @@ -3063,8 +19531,8 @@ configure-gas: .PHONY: all-gas maybe-all-gas maybe-all-gas: all-gas: configure-gas - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd gas && $(MAKE) $(FLAGS_TO_PASS) all) @@ -3072,8 +19540,8 @@ all-gas: configure-gas maybe-check-gas: check-gas: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd gas && $(MAKE) $(FLAGS_TO_PASS) check) @@ -3082,8 +19550,8 @@ check-gas: maybe-install-gas: install-gas: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd gas && $(MAKE) $(FLAGS_TO_PASS) install) @@ -3093,24 +19561,22 @@ maybe-configure-gawk: configure-gawk: @test ! -f gawk/Makefile || exit 0; \ [ -d gawk ] || mkdir gawk; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in gawk; \ cd gawk || exit 1; \ case $(srcdir) in \ @@ -3131,8 +19597,8 @@ configure-gawk: .PHONY: all-gawk maybe-all-gawk maybe-all-gawk: all-gawk: configure-gawk - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd gawk && $(MAKE) $(FLAGS_TO_PASS) all) @@ -3140,8 +19606,8 @@ all-gawk: configure-gawk maybe-check-gawk: check-gawk: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd gawk && $(MAKE) $(FLAGS_TO_PASS) check) @@ -3150,8 +19616,8 @@ check-gawk: maybe-install-gawk: install-gawk: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd gawk && $(MAKE) $(FLAGS_TO_PASS) install) @@ -3161,24 +19627,22 @@ maybe-configure-gettext: configure-gettext: @test ! -f gettext/Makefile || exit 0; \ [ -d gettext ] || mkdir gettext; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in gettext; \ cd gettext || exit 1; \ case $(srcdir) in \ @@ -3199,8 +19663,8 @@ configure-gettext: .PHONY: all-gettext maybe-all-gettext maybe-all-gettext: all-gettext: configure-gettext - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd gettext && $(MAKE) $(FLAGS_TO_PASS) all) @@ -3208,8 +19672,8 @@ all-gettext: configure-gettext maybe-check-gettext: check-gettext: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd gettext && $(MAKE) $(FLAGS_TO_PASS) check) @@ -3218,8 +19682,8 @@ check-gettext: maybe-install-gettext: install-gettext: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd gettext && $(MAKE) $(FLAGS_TO_PASS) install) @@ -3229,24 +19693,22 @@ maybe-configure-gnuserv: configure-gnuserv: @test ! -f gnuserv/Makefile || exit 0; \ [ -d gnuserv ] || mkdir gnuserv; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in gnuserv; \ cd gnuserv || exit 1; \ case $(srcdir) in \ @@ -3267,8 +19729,8 @@ configure-gnuserv: .PHONY: all-gnuserv maybe-all-gnuserv maybe-all-gnuserv: all-gnuserv: configure-gnuserv - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd gnuserv && $(MAKE) $(FLAGS_TO_PASS) all) @@ -3276,8 +19738,8 @@ all-gnuserv: configure-gnuserv maybe-check-gnuserv: check-gnuserv: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd gnuserv && $(MAKE) $(FLAGS_TO_PASS) check) @@ -3286,8 +19748,8 @@ check-gnuserv: maybe-install-gnuserv: install-gnuserv: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd gnuserv && $(MAKE) $(FLAGS_TO_PASS) install) @@ -3297,24 +19759,22 @@ maybe-configure-gprof: configure-gprof: @test ! -f gprof/Makefile || exit 0; \ [ -d gprof ] || mkdir gprof; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in gprof; \ cd gprof || exit 1; \ case $(srcdir) in \ @@ -3335,8 +19795,8 @@ configure-gprof: .PHONY: all-gprof maybe-all-gprof maybe-all-gprof: all-gprof: configure-gprof - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd gprof && $(MAKE) $(FLAGS_TO_PASS) all) @@ -3344,8 +19804,8 @@ all-gprof: configure-gprof maybe-check-gprof: check-gprof: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd gprof && $(MAKE) $(FLAGS_TO_PASS) check) @@ -3354,8 +19814,8 @@ check-gprof: maybe-install-gprof: install-gprof: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd gprof && $(MAKE) $(FLAGS_TO_PASS) install) @@ -3365,24 +19825,22 @@ maybe-configure-gzip: configure-gzip: @test ! -f gzip/Makefile || exit 0; \ [ -d gzip ] || mkdir gzip; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in gzip; \ cd gzip || exit 1; \ case $(srcdir) in \ @@ -3403,8 +19861,8 @@ configure-gzip: .PHONY: all-gzip maybe-all-gzip maybe-all-gzip: all-gzip: configure-gzip - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd gzip && $(MAKE) $(FLAGS_TO_PASS) all) @@ -3412,8 +19870,8 @@ all-gzip: configure-gzip maybe-check-gzip: check-gzip: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd gzip && $(MAKE) $(FLAGS_TO_PASS) check) @@ -3422,8 +19880,8 @@ check-gzip: maybe-install-gzip: install-gzip: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd gzip && $(MAKE) $(FLAGS_TO_PASS) install) @@ -3433,24 +19891,22 @@ maybe-configure-hello: configure-hello: @test ! -f hello/Makefile || exit 0; \ [ -d hello ] || mkdir hello; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in hello; \ cd hello || exit 1; \ case $(srcdir) in \ @@ -3471,8 +19927,8 @@ configure-hello: .PHONY: all-hello maybe-all-hello maybe-all-hello: all-hello: configure-hello - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd hello && $(MAKE) $(FLAGS_TO_PASS) all) @@ -3480,8 +19936,8 @@ all-hello: configure-hello maybe-check-hello: check-hello: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd hello && $(MAKE) $(FLAGS_TO_PASS) check) @@ -3490,8 +19946,8 @@ check-hello: maybe-install-hello: install-hello: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd hello && $(MAKE) $(FLAGS_TO_PASS) install) @@ -3501,24 +19957,22 @@ maybe-configure-indent: configure-indent: @test ! -f indent/Makefile || exit 0; \ [ -d indent ] || mkdir indent; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in indent; \ cd indent || exit 1; \ case $(srcdir) in \ @@ -3539,8 +19993,8 @@ configure-indent: .PHONY: all-indent maybe-all-indent maybe-all-indent: all-indent: configure-indent - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd indent && $(MAKE) $(FLAGS_TO_PASS) all) @@ -3548,8 +20002,8 @@ all-indent: configure-indent maybe-check-indent: check-indent: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd indent && $(MAKE) $(FLAGS_TO_PASS) check) @@ -3558,8 +20012,8 @@ check-indent: maybe-install-indent: install-indent: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd indent && $(MAKE) $(FLAGS_TO_PASS) install) @@ -3569,24 +20023,22 @@ maybe-configure-intl: configure-intl: @test ! -f intl/Makefile || exit 0; \ [ -d intl ] || mkdir intl; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in intl; \ cd intl || exit 1; \ case $(srcdir) in \ @@ -3607,8 +20059,8 @@ configure-intl: .PHONY: all-intl maybe-all-intl maybe-all-intl: all-intl: configure-intl - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd intl && $(MAKE) $(FLAGS_TO_PASS) all) @@ -3616,8 +20068,8 @@ all-intl: configure-intl maybe-check-intl: check-intl: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd intl && $(MAKE) $(FLAGS_TO_PASS) check) @@ -3626,8 +20078,8 @@ check-intl: maybe-install-intl: install-intl: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd intl && $(MAKE) $(FLAGS_TO_PASS) install) @@ -3637,24 +20089,22 @@ maybe-configure-tcl: configure-tcl: @test ! -f tcl/Makefile || exit 0; \ [ -d tcl ] || mkdir tcl; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in tcl; \ cd tcl || exit 1; \ case $(srcdir) in \ @@ -3675,8 +20125,8 @@ configure-tcl: .PHONY: all-tcl maybe-all-tcl maybe-all-tcl: all-tcl: configure-tcl - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd tcl && $(MAKE) $(FLAGS_TO_PASS) all) @@ -3684,8 +20134,8 @@ all-tcl: configure-tcl maybe-check-tcl: check-tcl: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd tcl && $(MAKE) $(FLAGS_TO_PASS) check) @@ -3694,8 +20144,8 @@ check-tcl: maybe-install-tcl: install-tcl: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd tcl && $(MAKE) $(FLAGS_TO_PASS) install) @@ -3705,24 +20155,22 @@ maybe-configure-itcl: configure-itcl: @test ! -f itcl/Makefile || exit 0; \ [ -d itcl ] || mkdir itcl; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in itcl; \ cd itcl || exit 1; \ case $(srcdir) in \ @@ -3743,8 +20191,8 @@ configure-itcl: .PHONY: all-itcl maybe-all-itcl maybe-all-itcl: all-itcl: configure-itcl - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd itcl && $(MAKE) $(FLAGS_TO_PASS) all) @@ -3752,8 +20200,8 @@ all-itcl: configure-itcl maybe-check-itcl: check-itcl: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd itcl && $(MAKE) $(FLAGS_TO_PASS) check) @@ -3762,8 +20210,8 @@ check-itcl: maybe-install-itcl: install-itcl: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd itcl && $(MAKE) $(FLAGS_TO_PASS) install) @@ -3773,24 +20221,22 @@ maybe-configure-ld: configure-ld: @test ! -f ld/Makefile || exit 0; \ [ -d ld ] || mkdir ld; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in ld; \ cd ld || exit 1; \ case $(srcdir) in \ @@ -3811,8 +20257,8 @@ configure-ld: .PHONY: all-ld maybe-all-ld maybe-all-ld: all-ld: configure-ld - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd ld && $(MAKE) $(FLAGS_TO_PASS) all) @@ -3820,8 +20266,8 @@ all-ld: configure-ld maybe-check-ld: check-ld: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd ld && $(MAKE) $(FLAGS_TO_PASS) check) @@ -3830,8 +20276,8 @@ check-ld: maybe-install-ld: install-ld: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd ld && $(MAKE) $(FLAGS_TO_PASS) install) @@ -3841,24 +20287,22 @@ maybe-configure-libgui: configure-libgui: @test ! -f libgui/Makefile || exit 0; \ [ -d libgui ] || mkdir libgui; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in libgui; \ cd libgui || exit 1; \ case $(srcdir) in \ @@ -3879,8 +20323,8 @@ configure-libgui: .PHONY: all-libgui maybe-all-libgui maybe-all-libgui: all-libgui: configure-libgui - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd libgui && $(MAKE) $(FLAGS_TO_PASS) all) @@ -3888,8 +20332,8 @@ all-libgui: configure-libgui maybe-check-libgui: check-libgui: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd libgui && $(MAKE) $(FLAGS_TO_PASS) check) @@ -3898,8 +20342,8 @@ check-libgui: maybe-install-libgui: install-libgui: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd libgui && $(MAKE) $(FLAGS_TO_PASS) install) @@ -3909,24 +20353,22 @@ maybe-configure-libiberty: configure-libiberty: @test ! -f libiberty/Makefile || exit 0; \ [ -d libiberty ] || mkdir libiberty; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in libiberty; \ cd libiberty || exit 1; \ case $(srcdir) in \ @@ -3947,8 +20389,8 @@ configure-libiberty: .PHONY: all-libiberty maybe-all-libiberty maybe-all-libiberty: all-libiberty: configure-libiberty - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd libiberty && $(MAKE) $(FLAGS_TO_PASS) all) @@ -3956,8 +20398,8 @@ all-libiberty: configure-libiberty maybe-check-libiberty: check-libiberty: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd libiberty && $(MAKE) $(FLAGS_TO_PASS) check) @@ -3966,8 +20408,8 @@ check-libiberty: maybe-install-libiberty: install-libiberty: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd libiberty && $(MAKE) $(FLAGS_TO_PASS) install) @@ -3977,24 +20419,22 @@ maybe-configure-libtool: configure-libtool: @test ! -f libtool/Makefile || exit 0; \ [ -d libtool ] || mkdir libtool; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in libtool; \ cd libtool || exit 1; \ case $(srcdir) in \ @@ -4015,8 +20455,8 @@ configure-libtool: .PHONY: all-libtool maybe-all-libtool maybe-all-libtool: all-libtool: configure-libtool - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd libtool && $(MAKE) $(FLAGS_TO_PASS) all) @@ -4024,8 +20464,8 @@ all-libtool: configure-libtool maybe-check-libtool: check-libtool: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd libtool && $(MAKE) $(FLAGS_TO_PASS) check) @@ -4034,8 +20474,8 @@ check-libtool: maybe-install-libtool: install-libtool: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd libtool && $(MAKE) $(FLAGS_TO_PASS) install) @@ -4045,24 +20485,22 @@ maybe-configure-m4: configure-m4: @test ! -f m4/Makefile || exit 0; \ [ -d m4 ] || mkdir m4; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in m4; \ cd m4 || exit 1; \ case $(srcdir) in \ @@ -4083,8 +20521,8 @@ configure-m4: .PHONY: all-m4 maybe-all-m4 maybe-all-m4: all-m4: configure-m4 - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd m4 && $(MAKE) $(FLAGS_TO_PASS) all) @@ -4092,8 +20530,8 @@ all-m4: configure-m4 maybe-check-m4: check-m4: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd m4 && $(MAKE) $(FLAGS_TO_PASS) check) @@ -4102,8 +20540,8 @@ check-m4: maybe-install-m4: install-m4: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd m4 && $(MAKE) $(FLAGS_TO_PASS) install) @@ -4113,24 +20551,22 @@ maybe-configure-make: configure-make: @test ! -f make/Makefile || exit 0; \ [ -d make ] || mkdir make; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in make; \ cd make || exit 1; \ case $(srcdir) in \ @@ -4151,8 +20587,8 @@ configure-make: .PHONY: all-make maybe-all-make maybe-all-make: all-make: configure-make - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd make && $(MAKE) $(FLAGS_TO_PASS) all) @@ -4160,8 +20596,8 @@ all-make: configure-make maybe-check-make: check-make: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd make && $(MAKE) $(FLAGS_TO_PASS) check) @@ -4170,8 +20606,8 @@ check-make: maybe-install-make: install-make: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd make && $(MAKE) $(FLAGS_TO_PASS) install) @@ -4181,24 +20617,22 @@ maybe-configure-mmalloc: configure-mmalloc: @test ! -f mmalloc/Makefile || exit 0; \ [ -d mmalloc ] || mkdir mmalloc; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in mmalloc; \ cd mmalloc || exit 1; \ case $(srcdir) in \ @@ -4219,8 +20653,8 @@ configure-mmalloc: .PHONY: all-mmalloc maybe-all-mmalloc maybe-all-mmalloc: all-mmalloc: configure-mmalloc - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd mmalloc && $(MAKE) $(FLAGS_TO_PASS) all) @@ -4234,8 +20668,8 @@ check-mmalloc: maybe-install-mmalloc: install-mmalloc: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd mmalloc && $(MAKE) $(FLAGS_TO_PASS) install) @@ -4245,24 +20679,22 @@ maybe-configure-patch: configure-patch: @test ! -f patch/Makefile || exit 0; \ [ -d patch ] || mkdir patch; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in patch; \ cd patch || exit 1; \ case $(srcdir) in \ @@ -4283,8 +20715,8 @@ configure-patch: .PHONY: all-patch maybe-all-patch maybe-all-patch: all-patch: configure-patch - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd patch && $(MAKE) $(FLAGS_TO_PASS) all) @@ -4292,8 +20724,8 @@ all-patch: configure-patch maybe-check-patch: check-patch: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd patch && $(MAKE) $(FLAGS_TO_PASS) check) @@ -4302,8 +20734,8 @@ check-patch: maybe-install-patch: install-patch: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd patch && $(MAKE) $(FLAGS_TO_PASS) install) @@ -4313,24 +20745,22 @@ maybe-configure-perl: configure-perl: @test ! -f perl/Makefile || exit 0; \ [ -d perl ] || mkdir perl; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in perl; \ cd perl || exit 1; \ case $(srcdir) in \ @@ -4351,8 +20781,8 @@ configure-perl: .PHONY: all-perl maybe-all-perl maybe-all-perl: all-perl: configure-perl - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd perl && $(MAKE) $(FLAGS_TO_PASS) all) @@ -4360,8 +20790,8 @@ all-perl: configure-perl maybe-check-perl: check-perl: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd perl && $(MAKE) $(FLAGS_TO_PASS) check) @@ -4370,8 +20800,8 @@ check-perl: maybe-install-perl: install-perl: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd perl && $(MAKE) $(FLAGS_TO_PASS) install) @@ -4381,24 +20811,22 @@ maybe-configure-prms: configure-prms: @test ! -f prms/Makefile || exit 0; \ [ -d prms ] || mkdir prms; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in prms; \ cd prms || exit 1; \ case $(srcdir) in \ @@ -4419,8 +20847,8 @@ configure-prms: .PHONY: all-prms maybe-all-prms maybe-all-prms: all-prms: configure-prms - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd prms && $(MAKE) $(FLAGS_TO_PASS) all) @@ -4428,8 +20856,8 @@ all-prms: configure-prms maybe-check-prms: check-prms: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd prms && $(MAKE) $(FLAGS_TO_PASS) check) @@ -4438,8 +20866,8 @@ check-prms: maybe-install-prms: install-prms: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd prms && $(MAKE) $(FLAGS_TO_PASS) install) @@ -4449,24 +20877,22 @@ maybe-configure-rcs: configure-rcs: @test ! -f rcs/Makefile || exit 0; \ [ -d rcs ] || mkdir rcs; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in rcs; \ cd rcs || exit 1; \ case $(srcdir) in \ @@ -4487,8 +20913,8 @@ configure-rcs: .PHONY: all-rcs maybe-all-rcs maybe-all-rcs: all-rcs: configure-rcs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd rcs && $(MAKE) $(FLAGS_TO_PASS) all) @@ -4496,8 +20922,8 @@ all-rcs: configure-rcs maybe-check-rcs: check-rcs: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd rcs && $(MAKE) $(FLAGS_TO_PASS) check) @@ -4506,8 +20932,8 @@ check-rcs: maybe-install-rcs: install-rcs: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd rcs && $(MAKE) $(FLAGS_TO_PASS) install) @@ -4517,24 +20943,22 @@ maybe-configure-readline: configure-readline: @test ! -f readline/Makefile || exit 0; \ [ -d readline ] || mkdir readline; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in readline; \ cd readline || exit 1; \ case $(srcdir) in \ @@ -4555,8 +20979,8 @@ configure-readline: .PHONY: all-readline maybe-all-readline maybe-all-readline: all-readline: configure-readline - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd readline && $(MAKE) $(FLAGS_TO_PASS) all) @@ -4564,8 +20988,8 @@ all-readline: configure-readline maybe-check-readline: check-readline: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd readline && $(MAKE) $(FLAGS_TO_PASS) check) @@ -4574,8 +20998,8 @@ check-readline: maybe-install-readline: install-readline: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd readline && $(MAKE) $(FLAGS_TO_PASS) install) @@ -4585,24 +21009,22 @@ maybe-configure-release: configure-release: @test ! -f release/Makefile || exit 0; \ [ -d release ] || mkdir release; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in release; \ cd release || exit 1; \ case $(srcdir) in \ @@ -4623,8 +21045,8 @@ configure-release: .PHONY: all-release maybe-all-release maybe-all-release: all-release: configure-release - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd release && $(MAKE) $(FLAGS_TO_PASS) all) @@ -4645,24 +21067,22 @@ maybe-configure-recode: configure-recode: @test ! -f recode/Makefile || exit 0; \ [ -d recode ] || mkdir recode; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in recode; \ cd recode || exit 1; \ case $(srcdir) in \ @@ -4683,8 +21103,8 @@ configure-recode: .PHONY: all-recode maybe-all-recode maybe-all-recode: all-recode: configure-recode - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd recode && $(MAKE) $(FLAGS_TO_PASS) all) @@ -4692,8 +21112,8 @@ all-recode: configure-recode maybe-check-recode: check-recode: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd recode && $(MAKE) $(FLAGS_TO_PASS) check) @@ -4702,8 +21122,8 @@ check-recode: maybe-install-recode: install-recode: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd recode && $(MAKE) $(FLAGS_TO_PASS) install) @@ -4713,24 +21133,22 @@ maybe-configure-sed: configure-sed: @test ! -f sed/Makefile || exit 0; \ [ -d sed ] || mkdir sed; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in sed; \ cd sed || exit 1; \ case $(srcdir) in \ @@ -4751,8 +21169,8 @@ configure-sed: .PHONY: all-sed maybe-all-sed maybe-all-sed: all-sed: configure-sed - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd sed && $(MAKE) $(FLAGS_TO_PASS) all) @@ -4760,8 +21178,8 @@ all-sed: configure-sed maybe-check-sed: check-sed: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd sed && $(MAKE) $(FLAGS_TO_PASS) check) @@ -4770,8 +21188,8 @@ check-sed: maybe-install-sed: install-sed: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd sed && $(MAKE) $(FLAGS_TO_PASS) install) @@ -4781,24 +21199,22 @@ maybe-configure-send-pr: configure-send-pr: @test ! -f send-pr/Makefile || exit 0; \ [ -d send-pr ] || mkdir send-pr; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in send-pr; \ cd send-pr || exit 1; \ case $(srcdir) in \ @@ -4819,8 +21235,8 @@ configure-send-pr: .PHONY: all-send-pr maybe-all-send-pr maybe-all-send-pr: all-send-pr: configure-send-pr - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd send-pr && $(MAKE) $(FLAGS_TO_PASS) all) @@ -4828,8 +21244,8 @@ all-send-pr: configure-send-pr maybe-check-send-pr: check-send-pr: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd send-pr && $(MAKE) $(FLAGS_TO_PASS) check) @@ -4838,8 +21254,8 @@ check-send-pr: maybe-install-send-pr: install-send-pr: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd send-pr && $(MAKE) $(FLAGS_TO_PASS) install) @@ -4849,24 +21265,22 @@ maybe-configure-shellutils: configure-shellutils: @test ! -f shellutils/Makefile || exit 0; \ [ -d shellutils ] || mkdir shellutils; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in shellutils; \ cd shellutils || exit 1; \ case $(srcdir) in \ @@ -4887,8 +21301,8 @@ configure-shellutils: .PHONY: all-shellutils maybe-all-shellutils maybe-all-shellutils: all-shellutils: configure-shellutils - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd shellutils && $(MAKE) $(FLAGS_TO_PASS) all) @@ -4896,8 +21310,8 @@ all-shellutils: configure-shellutils maybe-check-shellutils: check-shellutils: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd shellutils && $(MAKE) $(FLAGS_TO_PASS) check) @@ -4906,8 +21320,8 @@ check-shellutils: maybe-install-shellutils: install-shellutils: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd shellutils && $(MAKE) $(FLAGS_TO_PASS) install) @@ -4917,24 +21331,22 @@ maybe-configure-sid: configure-sid: @test ! -f sid/Makefile || exit 0; \ [ -d sid ] || mkdir sid; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in sid; \ cd sid || exit 1; \ case $(srcdir) in \ @@ -4955,8 +21367,8 @@ configure-sid: .PHONY: all-sid maybe-all-sid maybe-all-sid: all-sid: configure-sid - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd sid && $(MAKE) $(FLAGS_TO_PASS) all) @@ -4964,8 +21376,8 @@ all-sid: configure-sid maybe-check-sid: check-sid: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd sid && $(MAKE) $(FLAGS_TO_PASS) check) @@ -4974,8 +21386,8 @@ check-sid: maybe-install-sid: install-sid: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd sid && $(MAKE) $(FLAGS_TO_PASS) install) @@ -4985,24 +21397,22 @@ maybe-configure-sim: configure-sim: @test ! -f sim/Makefile || exit 0; \ [ -d sim ] || mkdir sim; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in sim; \ cd sim || exit 1; \ case $(srcdir) in \ @@ -5023,8 +21433,8 @@ configure-sim: .PHONY: all-sim maybe-all-sim maybe-all-sim: all-sim: configure-sim - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd sim && $(MAKE) $(FLAGS_TO_PASS) all) @@ -5032,8 +21442,8 @@ all-sim: configure-sim maybe-check-sim: check-sim: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd sim && $(MAKE) $(FLAGS_TO_PASS) check) @@ -5042,8 +21452,8 @@ check-sim: maybe-install-sim: install-sim: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd sim && $(MAKE) $(FLAGS_TO_PASS) install) @@ -5053,24 +21463,22 @@ maybe-configure-tar: configure-tar: @test ! -f tar/Makefile || exit 0; \ [ -d tar ] || mkdir tar; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in tar; \ cd tar || exit 1; \ case $(srcdir) in \ @@ -5091,8 +21499,8 @@ configure-tar: .PHONY: all-tar maybe-all-tar maybe-all-tar: all-tar: configure-tar - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd tar && $(MAKE) $(FLAGS_TO_PASS) all) @@ -5100,8 +21508,8 @@ all-tar: configure-tar maybe-check-tar: check-tar: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd tar && $(MAKE) $(FLAGS_TO_PASS) check) @@ -5110,8 +21518,8 @@ check-tar: maybe-install-tar: install-tar: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd tar && $(MAKE) $(FLAGS_TO_PASS) install) @@ -5121,24 +21529,22 @@ maybe-configure-texinfo: configure-texinfo: @test ! -f texinfo/Makefile || exit 0; \ [ -d texinfo ] || mkdir texinfo; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in texinfo; \ cd texinfo || exit 1; \ case $(srcdir) in \ @@ -5159,8 +21565,8 @@ configure-texinfo: .PHONY: all-texinfo maybe-all-texinfo maybe-all-texinfo: all-texinfo: configure-texinfo - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd texinfo && $(MAKE) $(FLAGS_TO_PASS) all) @@ -5168,8 +21574,8 @@ all-texinfo: configure-texinfo maybe-check-texinfo: check-texinfo: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd texinfo && $(MAKE) $(FLAGS_TO_PASS) check) @@ -5185,24 +21591,22 @@ maybe-configure-textutils: configure-textutils: @test ! -f textutils/Makefile || exit 0; \ [ -d textutils ] || mkdir textutils; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in textutils; \ cd textutils || exit 1; \ case $(srcdir) in \ @@ -5223,8 +21627,8 @@ configure-textutils: .PHONY: all-textutils maybe-all-textutils maybe-all-textutils: all-textutils: configure-textutils - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd textutils && $(MAKE) $(FLAGS_TO_PASS) all) @@ -5232,8 +21636,8 @@ all-textutils: configure-textutils maybe-check-textutils: check-textutils: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd textutils && $(MAKE) $(FLAGS_TO_PASS) check) @@ -5242,8 +21646,8 @@ check-textutils: maybe-install-textutils: install-textutils: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd textutils && $(MAKE) $(FLAGS_TO_PASS) install) @@ -5253,24 +21657,22 @@ maybe-configure-time: configure-time: @test ! -f time/Makefile || exit 0; \ [ -d time ] || mkdir time; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in time; \ cd time || exit 1; \ case $(srcdir) in \ @@ -5291,8 +21693,8 @@ configure-time: .PHONY: all-time maybe-all-time maybe-all-time: all-time: configure-time - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd time && $(MAKE) $(FLAGS_TO_PASS) all) @@ -5300,8 +21702,8 @@ all-time: configure-time maybe-check-time: check-time: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd time && $(MAKE) $(FLAGS_TO_PASS) check) @@ -5310,8 +21712,8 @@ check-time: maybe-install-time: install-time: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd time && $(MAKE) $(FLAGS_TO_PASS) install) @@ -5321,24 +21723,22 @@ maybe-configure-uudecode: configure-uudecode: @test ! -f uudecode/Makefile || exit 0; \ [ -d uudecode ] || mkdir uudecode; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in uudecode; \ cd uudecode || exit 1; \ case $(srcdir) in \ @@ -5359,8 +21759,8 @@ configure-uudecode: .PHONY: all-uudecode maybe-all-uudecode maybe-all-uudecode: all-uudecode: configure-uudecode - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd uudecode && $(MAKE) $(FLAGS_TO_PASS) all) @@ -5368,8 +21768,8 @@ all-uudecode: configure-uudecode maybe-check-uudecode: check-uudecode: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd uudecode && $(MAKE) $(FLAGS_TO_PASS) check) @@ -5378,8 +21778,8 @@ check-uudecode: maybe-install-uudecode: install-uudecode: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd uudecode && $(MAKE) $(FLAGS_TO_PASS) install) @@ -5389,24 +21789,22 @@ maybe-configure-wdiff: configure-wdiff: @test ! -f wdiff/Makefile || exit 0; \ [ -d wdiff ] || mkdir wdiff; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in wdiff; \ cd wdiff || exit 1; \ case $(srcdir) in \ @@ -5427,8 +21825,8 @@ configure-wdiff: .PHONY: all-wdiff maybe-all-wdiff maybe-all-wdiff: all-wdiff: configure-wdiff - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd wdiff && $(MAKE) $(FLAGS_TO_PASS) all) @@ -5436,8 +21834,8 @@ all-wdiff: configure-wdiff maybe-check-wdiff: check-wdiff: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd wdiff && $(MAKE) $(FLAGS_TO_PASS) check) @@ -5446,8 +21844,8 @@ check-wdiff: maybe-install-wdiff: install-wdiff: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd wdiff && $(MAKE) $(FLAGS_TO_PASS) install) @@ -5457,24 +21855,22 @@ maybe-configure-zip: configure-zip: @test ! -f zip/Makefile || exit 0; \ [ -d zip ] || mkdir zip; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in zip; \ cd zip || exit 1; \ case $(srcdir) in \ @@ -5495,8 +21891,8 @@ configure-zip: .PHONY: all-zip maybe-all-zip maybe-all-zip: all-zip: configure-zip - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd zip && $(MAKE) $(FLAGS_TO_PASS) all) @@ -5505,9 +21901,9 @@ maybe-check-zip: # This module is only tested in a native toolchain. check-zip: - @if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @if [ '$(host)' = '$(target)' ] ; then \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd zip && $(MAKE) $(FLAGS_TO_PASS) check); \ fi @@ -5517,8 +21913,8 @@ check-zip: maybe-install-zip: install-zip: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd zip && $(MAKE) $(FLAGS_TO_PASS) install) @@ -5528,24 +21924,22 @@ maybe-configure-zlib: configure-zlib: @test ! -f zlib/Makefile || exit 0; \ [ -d zlib ] || mkdir zlib; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in zlib; \ cd zlib || exit 1; \ case $(srcdir) in \ @@ -5566,8 +21960,8 @@ configure-zlib: .PHONY: all-zlib maybe-all-zlib maybe-all-zlib: all-zlib: configure-zlib - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd zlib && $(MAKE) $(FLAGS_TO_PASS) all) @@ -5588,24 +21982,22 @@ maybe-configure-gdb: configure-gdb: @test ! -f gdb/Makefile || exit 0; \ [ -d gdb ] || mkdir gdb; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in gdb; \ cd gdb || exit 1; \ case $(srcdir) in \ @@ -5626,8 +22018,8 @@ configure-gdb: .PHONY: all-gdb maybe-all-gdb maybe-all-gdb: all-gdb: configure-gdb - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd gdb && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all) @@ -5635,8 +22027,8 @@ all-gdb: configure-gdb maybe-check-gdb: check-gdb: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd gdb && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) check) @@ -5645,8 +22037,8 @@ check-gdb: maybe-install-gdb: install-gdb: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd gdb && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) install) @@ -5656,24 +22048,22 @@ maybe-configure-expect: configure-expect: @test ! -f expect/Makefile || exit 0; \ [ -d expect ] || mkdir expect; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in expect; \ cd expect || exit 1; \ case $(srcdir) in \ @@ -5694,8 +22084,8 @@ configure-expect: .PHONY: all-expect maybe-all-expect maybe-all-expect: all-expect: configure-expect - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd expect && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all) @@ -5703,8 +22093,8 @@ all-expect: configure-expect maybe-check-expect: check-expect: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd expect && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) check) @@ -5713,8 +22103,8 @@ check-expect: maybe-install-expect: install-expect: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd expect && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) install) @@ -5724,24 +22114,22 @@ maybe-configure-guile: configure-guile: @test ! -f guile/Makefile || exit 0; \ [ -d guile ] || mkdir guile; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in guile; \ cd guile || exit 1; \ case $(srcdir) in \ @@ -5762,8 +22150,8 @@ configure-guile: .PHONY: all-guile maybe-all-guile maybe-all-guile: all-guile: configure-guile - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd guile && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all) @@ -5771,8 +22159,8 @@ all-guile: configure-guile maybe-check-guile: check-guile: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd guile && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) check) @@ -5781,8 +22169,8 @@ check-guile: maybe-install-guile: install-guile: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd guile && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) install) @@ -5792,24 +22180,22 @@ maybe-configure-tk: configure-tk: @test ! -f tk/Makefile || exit 0; \ [ -d tk ] || mkdir tk; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in tk; \ cd tk || exit 1; \ case $(srcdir) in \ @@ -5830,8 +22216,8 @@ configure-tk: .PHONY: all-tk maybe-all-tk maybe-all-tk: all-tk: configure-tk - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd tk && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all) @@ -5839,8 +22225,8 @@ all-tk: configure-tk maybe-check-tk: check-tk: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd tk && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) check) @@ -5849,8 +22235,8 @@ check-tk: maybe-install-tk: install-tk: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd tk && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) install) @@ -5860,24 +22246,22 @@ maybe-configure-tix: configure-tix: @test ! -f tix/Makefile || exit 0; \ [ -d tix ] || mkdir tix; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in tix; \ cd tix || exit 1; \ case $(srcdir) in \ @@ -5898,8 +22282,8 @@ configure-tix: .PHONY: all-tix maybe-all-tix maybe-all-tix: all-tix: configure-tix - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd tix && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all) @@ -5907,8 +22291,8 @@ all-tix: configure-tix maybe-check-tix: check-tix: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd tix && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) check) @@ -5917,8 +22301,8 @@ check-tix: maybe-install-tix: install-tix: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd tix && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) install) @@ -5928,24 +22312,22 @@ maybe-configure-libtermcap: configure-libtermcap: @test ! -f libtermcap/Makefile || exit 0; \ [ -d libtermcap ] || mkdir libtermcap; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in libtermcap; \ cd libtermcap || exit 1; \ case $(srcdir) in \ @@ -5966,8 +22348,8 @@ configure-libtermcap: .PHONY: all-libtermcap maybe-all-libtermcap maybe-all-libtermcap: all-libtermcap: configure-libtermcap - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd libtermcap && $(MAKE) $(FLAGS_TO_PASS) all) @@ -5981,8 +22363,8 @@ check-libtermcap: maybe-install-libtermcap: install-libtermcap: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd libtermcap && $(MAKE) $(FLAGS_TO_PASS) install) @@ -5992,24 +22374,22 @@ maybe-configure-utils: configure-utils: @test ! -f utils/Makefile || exit 0; \ [ -d utils ] || mkdir utils; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in utils; \ cd utils || exit 1; \ case $(srcdir) in \ @@ -6030,8 +22410,8 @@ configure-utils: .PHONY: all-utils maybe-all-utils maybe-all-utils: all-utils: configure-utils - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd utils && $(MAKE) $(FLAGS_TO_PASS) all) @@ -6045,8 +22425,8 @@ check-utils: maybe-install-utils: install-utils: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd utils && $(MAKE) $(FLAGS_TO_PASS) install) @@ -6070,8 +22450,8 @@ configure-target-libstdc++-v3: $(TARGET_ @test ! -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile || exit 0; \ [ -d $(TARGET_SUBDIR)/libstdc++-v3 ] || \ mkdir $(TARGET_SUBDIR)/libstdc++-v3;\ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ AR="$(AR_FOR_TARGET)"; export AR; \ AS="$(AS_FOR_TARGET)"; export AS; \ @@ -6132,8 +22512,8 @@ configure-target-libstdc++-v3: $(TARGET_ .PHONY: all-target-libstdc++-v3 maybe-all-target-libstdc++-v3 maybe-all-target-libstdc++-v3: all-target-libstdc++-v3: configure-target-libstdc++-v3 - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/libstdc++-v3 && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)' all) @@ -6142,8 +22522,8 @@ all-target-libstdc++-v3: configure-targe maybe-check-target-libstdc++-v3: check-target-libstdc++-v3: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/libstdc++-v3 && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)' check) @@ -6153,8 +22533,8 @@ check-target-libstdc++-v3: maybe-install-target-libstdc++-v3: install-target-libstdc++-v3: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/libstdc++-v3 && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) install) @@ -6174,8 +22554,8 @@ configure-target-newlib: $(TARGET_SUBDIR @test ! -f $(TARGET_SUBDIR)/newlib/Makefile || exit 0; \ [ -d $(TARGET_SUBDIR)/newlib ] || \ mkdir $(TARGET_SUBDIR)/newlib;\ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ AR="$(AR_FOR_TARGET)"; export AR; \ AS="$(AS_FOR_TARGET)"; export AS; \ @@ -6235,8 +22615,8 @@ configure-target-newlib: $(TARGET_SUBDIR .PHONY: all-target-newlib maybe-all-target-newlib maybe-all-target-newlib: all-target-newlib: configure-target-newlib - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/newlib && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) all) @@ -6245,8 +22625,8 @@ all-target-newlib: configure-target-newl maybe-check-target-newlib: check-target-newlib: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/newlib && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) check) @@ -6256,8 +22636,8 @@ check-target-newlib: maybe-install-target-newlib: install-target-newlib: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/newlib && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) install) @@ -6277,8 +22657,8 @@ configure-target-libf2c: $(TARGET_SUBDIR @test ! -f $(TARGET_SUBDIR)/libf2c/Makefile || exit 0; \ [ -d $(TARGET_SUBDIR)/libf2c ] || \ mkdir $(TARGET_SUBDIR)/libf2c;\ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ AR="$(AR_FOR_TARGET)"; export AR; \ AS="$(AS_FOR_TARGET)"; export AS; \ @@ -6338,8 +22718,8 @@ configure-target-libf2c: $(TARGET_SUBDIR .PHONY: all-target-libf2c maybe-all-target-libf2c maybe-all-target-libf2c: all-target-libf2c: configure-target-libf2c - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/libf2c && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) all) @@ -6348,8 +22728,8 @@ all-target-libf2c: configure-target-libf maybe-check-target-libf2c: check-target-libf2c: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/libf2c && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) check) @@ -6359,8 +22739,8 @@ check-target-libf2c: maybe-install-target-libf2c: install-target-libf2c: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/libf2c && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) install) @@ -6380,8 +22760,8 @@ configure-target-libobjc: $(TARGET_SUBDI @test ! -f $(TARGET_SUBDIR)/libobjc/Makefile || exit 0; \ [ -d $(TARGET_SUBDIR)/libobjc ] || \ mkdir $(TARGET_SUBDIR)/libobjc;\ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ AR="$(AR_FOR_TARGET)"; export AR; \ AS="$(AS_FOR_TARGET)"; export AS; \ @@ -6441,8 +22821,8 @@ configure-target-libobjc: $(TARGET_SUBDI .PHONY: all-target-libobjc maybe-all-target-libobjc maybe-all-target-libobjc: all-target-libobjc: configure-target-libobjc - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/libobjc && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) all) @@ -6451,8 +22831,8 @@ all-target-libobjc: configure-target-lib maybe-check-target-libobjc: check-target-libobjc: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/libobjc && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) check) @@ -6462,8 +22842,8 @@ check-target-libobjc: maybe-install-target-libobjc: install-target-libobjc: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/libobjc && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) install) @@ -6483,8 +22863,8 @@ configure-target-libtermcap: $(TARGET_SU @test ! -f $(TARGET_SUBDIR)/libtermcap/Makefile || exit 0; \ [ -d $(TARGET_SUBDIR)/libtermcap ] || \ mkdir $(TARGET_SUBDIR)/libtermcap;\ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ AR="$(AR_FOR_TARGET)"; export AR; \ AS="$(AS_FOR_TARGET)"; export AS; \ @@ -6544,8 +22924,8 @@ configure-target-libtermcap: $(TARGET_SU .PHONY: all-target-libtermcap maybe-all-target-libtermcap maybe-all-target-libtermcap: all-target-libtermcap: configure-target-libtermcap - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/libtermcap && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) all) @@ -6561,8 +22941,8 @@ check-target-libtermcap: maybe-install-target-libtermcap: install-target-libtermcap: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/libtermcap && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) install) @@ -6582,8 +22962,8 @@ configure-target-winsup: $(TARGET_SUBDIR @test ! -f $(TARGET_SUBDIR)/winsup/Makefile || exit 0; \ [ -d $(TARGET_SUBDIR)/winsup ] || \ mkdir $(TARGET_SUBDIR)/winsup;\ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ AR="$(AR_FOR_TARGET)"; export AR; \ AS="$(AS_FOR_TARGET)"; export AS; \ @@ -6643,8 +23023,8 @@ configure-target-winsup: $(TARGET_SUBDIR .PHONY: all-target-winsup maybe-all-target-winsup maybe-all-target-winsup: all-target-winsup: configure-target-winsup - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/winsup && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) all) @@ -6653,8 +23033,8 @@ all-target-winsup: configure-target-wins maybe-check-target-winsup: check-target-winsup: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/winsup && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) check) @@ -6664,8 +23044,8 @@ check-target-winsup: maybe-install-target-winsup: install-target-winsup: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/winsup && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) install) @@ -6685,8 +23065,8 @@ configure-target-libgloss: $(TARGET_SUBD @test ! -f $(TARGET_SUBDIR)/libgloss/Makefile || exit 0; \ [ -d $(TARGET_SUBDIR)/libgloss ] || \ mkdir $(TARGET_SUBDIR)/libgloss;\ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ AR="$(AR_FOR_TARGET)"; export AR; \ AS="$(AS_FOR_TARGET)"; export AS; \ @@ -6746,8 +23126,8 @@ configure-target-libgloss: $(TARGET_SUBD .PHONY: all-target-libgloss maybe-all-target-libgloss maybe-all-target-libgloss: all-target-libgloss: configure-target-libgloss - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/libgloss && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) all) @@ -6763,8 +23143,8 @@ check-target-libgloss: maybe-install-target-libgloss: install-target-libgloss: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/libgloss && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) install) @@ -6784,8 +23164,8 @@ configure-target-libiberty: $(TARGET_SUB @test ! -f $(TARGET_SUBDIR)/libiberty/Makefile || exit 0; \ [ -d $(TARGET_SUBDIR)/libiberty ] || \ mkdir $(TARGET_SUBDIR)/libiberty;\ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ AR="$(AR_FOR_TARGET)"; export AR; \ AS="$(AS_FOR_TARGET)"; export AS; \ @@ -6845,8 +23225,8 @@ configure-target-libiberty: $(TARGET_SUB .PHONY: all-target-libiberty maybe-all-target-libiberty maybe-all-target-libiberty: all-target-libiberty: configure-target-libiberty - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/libiberty && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) all) @@ -6855,8 +23235,8 @@ all-target-libiberty: configure-target-l maybe-check-target-libiberty: check-target-libiberty: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/libiberty && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) check) @@ -6866,13 +23246,112 @@ check-target-libiberty: maybe-install-target-libiberty: install-target-libiberty: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/libiberty && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) install) +.PHONY: configure-target-demangler maybe-configure-target-demangler +maybe-configure-target-demangler: + +# There's only one multilib.out. Cleverer subdirs shouldn't need it copied. +$(TARGET_SUBDIR)/demangler/multilib.out: multilib.out + @[ -d $(TARGET_SUBDIR)/demangler ] || \ + mkdir $(TARGET_SUBDIR)/demangler; \ + rm -f $(TARGET_SUBDIR)/demangler/Makefile || : ; \ + cp multilib.out $(TARGET_SUBDIR)/demangler/multilib.out + +configure-target-demangler: $(TARGET_SUBDIR)/demangler/multilib.out + @test ! -f $(TARGET_SUBDIR)/demangler/Makefile || exit 0; \ + [ -d $(TARGET_SUBDIR)/demangler ] || \ + mkdir $(TARGET_SUBDIR)/demangler;\ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; 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; \ + CPPFLAGS="$(CFLAGS_FOR_TARGET)"; export CPPFLAGS; \ + 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)/demangler; \ + cd "$(TARGET_SUBDIR)/demangler" || 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}/demangler "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}/demangler"; \ + libsrcdir="$$s/demangler"; \ + fi; \ + rm -f no-such-file || : ; \ + CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \ + $(TARGET_CONFIGARGS) $${srcdiroption} \ + --with-target-subdir="$(TARGET_SUBDIR)" \ + || exit 1 + +.PHONY: all-target-demangler maybe-all-target-demangler +maybe-all-target-demangler: +all-target-demangler: configure-target-demangler + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/demangler && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) all) + +.PHONY: check-target-demangler maybe-check-target-demangler +maybe-check-target-demangler: + +check-target-demangler: + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/demangler && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) check) + + +.PHONY: install-target-demangler maybe-install-target-demangler +maybe-install-target-demangler: + +# Dummy target for uninstallable. +install-target-demangler: + + .PHONY: configure-target-gperf maybe-configure-target-gperf maybe-configure-target-gperf: @@ -6887,8 +23366,8 @@ configure-target-gperf: $(TARGET_SUBDIR) @test ! -f $(TARGET_SUBDIR)/gperf/Makefile || exit 0; \ [ -d $(TARGET_SUBDIR)/gperf ] || \ mkdir $(TARGET_SUBDIR)/gperf;\ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ AR="$(AR_FOR_TARGET)"; export AR; \ AS="$(AS_FOR_TARGET)"; export AS; \ @@ -6948,8 +23427,8 @@ configure-target-gperf: $(TARGET_SUBDIR) .PHONY: all-target-gperf maybe-all-target-gperf maybe-all-target-gperf: all-target-gperf: configure-target-gperf - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/gperf && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) all) @@ -6958,8 +23437,8 @@ all-target-gperf: configure-target-gperf maybe-check-target-gperf: check-target-gperf: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/gperf && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) check) @@ -6969,8 +23448,8 @@ check-target-gperf: maybe-install-target-gperf: install-target-gperf: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/gperf && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) install) @@ -6990,8 +23469,8 @@ configure-target-examples: $(TARGET_SUBD @test ! -f $(TARGET_SUBDIR)/examples/Makefile || exit 0; \ [ -d $(TARGET_SUBDIR)/examples ] || \ mkdir $(TARGET_SUBDIR)/examples;\ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ AR="$(AR_FOR_TARGET)"; export AR; \ AS="$(AS_FOR_TARGET)"; export AS; \ @@ -7051,8 +23530,8 @@ configure-target-examples: $(TARGET_SUBD .PHONY: all-target-examples maybe-all-target-examples maybe-all-target-examples: all-target-examples: configure-target-examples - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/examples && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) all) @@ -7085,8 +23564,8 @@ configure-target-libffi: $(TARGET_SUBDIR @test ! -f $(TARGET_SUBDIR)/libffi/Makefile || exit 0; \ [ -d $(TARGET_SUBDIR)/libffi ] || \ mkdir $(TARGET_SUBDIR)/libffi;\ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ AR="$(AR_FOR_TARGET)"; export AR; \ AS="$(AS_FOR_TARGET)"; export AS; \ @@ -7146,8 +23625,8 @@ configure-target-libffi: $(TARGET_SUBDIR .PHONY: all-target-libffi maybe-all-target-libffi maybe-all-target-libffi: all-target-libffi: configure-target-libffi - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/libffi && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) all) @@ -7156,8 +23635,8 @@ all-target-libffi: configure-target-libf maybe-check-target-libffi: check-target-libffi: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/libffi && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) check) @@ -7167,8 +23646,8 @@ check-target-libffi: maybe-install-target-libffi: install-target-libffi: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/libffi && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) install) @@ -7188,8 +23667,8 @@ configure-target-libjava: $(TARGET_SUBDI @test ! -f $(TARGET_SUBDIR)/libjava/Makefile || exit 0; \ [ -d $(TARGET_SUBDIR)/libjava ] || \ mkdir $(TARGET_SUBDIR)/libjava;\ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ AR="$(AR_FOR_TARGET)"; export AR; \ AS="$(AS_FOR_TARGET)"; export AS; \ @@ -7250,8 +23729,8 @@ configure-target-libjava: $(TARGET_SUBDI .PHONY: all-target-libjava maybe-all-target-libjava maybe-all-target-libjava: all-target-libjava: configure-target-libjava - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/libjava && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)' all) @@ -7260,8 +23739,8 @@ all-target-libjava: configure-target-lib maybe-check-target-libjava: check-target-libjava: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/libjava && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)' check) @@ -7271,8 +23750,8 @@ check-target-libjava: maybe-install-target-libjava: install-target-libjava: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/libjava && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) install) @@ -7292,8 +23771,8 @@ configure-target-zlib: $(TARGET_SUBDIR)/ @test ! -f $(TARGET_SUBDIR)/zlib/Makefile || exit 0; \ [ -d $(TARGET_SUBDIR)/zlib ] || \ mkdir $(TARGET_SUBDIR)/zlib;\ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ AR="$(AR_FOR_TARGET)"; export AR; \ AS="$(AS_FOR_TARGET)"; export AS; \ @@ -7353,8 +23832,8 @@ configure-target-zlib: $(TARGET_SUBDIR)/ .PHONY: all-target-zlib maybe-all-target-zlib maybe-all-target-zlib: all-target-zlib: configure-target-zlib - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/zlib && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) all) @@ -7363,8 +23842,8 @@ all-target-zlib: configure-target-zlib maybe-check-target-zlib: check-target-zlib: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/zlib && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) check) @@ -7374,8 +23853,8 @@ check-target-zlib: maybe-install-target-zlib: install-target-zlib: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/zlib && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) install) @@ -7395,8 +23874,8 @@ configure-target-boehm-gc: $(TARGET_SUBD @test ! -f $(TARGET_SUBDIR)/boehm-gc/Makefile || exit 0; \ [ -d $(TARGET_SUBDIR)/boehm-gc ] || \ mkdir $(TARGET_SUBDIR)/boehm-gc;\ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ AR="$(AR_FOR_TARGET)"; export AR; \ AS="$(AS_FOR_TARGET)"; export AS; \ @@ -7456,8 +23935,8 @@ configure-target-boehm-gc: $(TARGET_SUBD .PHONY: all-target-boehm-gc maybe-all-target-boehm-gc maybe-all-target-boehm-gc: all-target-boehm-gc: configure-target-boehm-gc - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/boehm-gc && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) all) @@ -7466,8 +23945,8 @@ all-target-boehm-gc: configure-target-bo maybe-check-target-boehm-gc: check-target-boehm-gc: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/boehm-gc && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) check) @@ -7477,8 +23956,8 @@ check-target-boehm-gc: maybe-install-target-boehm-gc: install-target-boehm-gc: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/boehm-gc && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) install) @@ -7498,8 +23977,8 @@ configure-target-qthreads: $(TARGET_SUBD @test ! -f $(TARGET_SUBDIR)/qthreads/Makefile || exit 0; \ [ -d $(TARGET_SUBDIR)/qthreads ] || \ mkdir $(TARGET_SUBDIR)/qthreads;\ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ AR="$(AR_FOR_TARGET)"; export AR; \ AS="$(AS_FOR_TARGET)"; export AS; \ @@ -7559,8 +24038,8 @@ configure-target-qthreads: $(TARGET_SUBD .PHONY: all-target-qthreads maybe-all-target-qthreads maybe-all-target-qthreads: all-target-qthreads: configure-target-qthreads - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/qthreads && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) all) @@ -7569,8 +24048,8 @@ all-target-qthreads: configure-target-qt maybe-check-target-qthreads: check-target-qthreads: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/qthreads && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) check) @@ -7580,8 +24059,8 @@ check-target-qthreads: maybe-install-target-qthreads: install-target-qthreads: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/qthreads && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) install) @@ -7601,8 +24080,8 @@ configure-target-rda: $(TARGET_SUBDIR)/r @test ! -f $(TARGET_SUBDIR)/rda/Makefile || exit 0; \ [ -d $(TARGET_SUBDIR)/rda ] || \ mkdir $(TARGET_SUBDIR)/rda;\ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ AR="$(AR_FOR_TARGET)"; export AR; \ AS="$(AS_FOR_TARGET)"; export AS; \ @@ -7662,8 +24141,8 @@ configure-target-rda: $(TARGET_SUBDIR)/r .PHONY: all-target-rda maybe-all-target-rda maybe-all-target-rda: all-target-rda: configure-target-rda - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/rda && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) all) @@ -7672,8 +24151,8 @@ all-target-rda: configure-target-rda maybe-check-target-rda: check-target-rda: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/rda && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) check) @@ -7683,8 +24162,8 @@ check-target-rda: maybe-install-target-rda: install-target-rda: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/rda && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) install) @@ -7705,25 +24184,23 @@ maybe-configure-gcc: configure-gcc: @test ! -f gcc/Makefile || exit 0; \ [ -d gcc ] || mkdir gcc; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ TOPLEVEL_CONFIGURE_ARGUMENTS="$(TOPLEVEL_CONFIGURE_ARGUMENTS)"; export TOPLEVEL_CONFIGURE_ARGUMENTS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in gcc; \ cd gcc || exit 1; \ case $(srcdir) in \ @@ -7748,13 +24225,13 @@ configure-gcc: maybe-all-gcc: all-gcc: configure-gcc @if [ -f gcc/stage_last ] ; then \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) quickstrap); \ else \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) all); \ fi @@ -7772,13 +24249,13 @@ all-gcc: configure-gcc GCC_STRAP_TARGETS = bootstrap bootstrap-lean bootstrap2 bootstrap2-lean bootstrap3 bootstrap3-lean bootstrap4 bootstrap4-lean bubblestrap quickstrap cleanstrap restrap .PHONY: $(GCC_STRAP_TARGETS) $(GCC_STRAP_TARGETS): all-bootstrap configure-gcc - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; 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; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ case "$@" in \ *bootstrap4-lean ) \ msg="Comparing stage3 and stage4 of the compiler"; \ @@ -7796,32 +24273,49 @@ $(GCC_STRAP_TARGETS): all-bootstrap conf $(SET_LIB_PATH) \ echo "$$msg"; \ cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) $$compare - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}` ; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}` ; export s; \ $(SET_LIB_PATH) \ echo "Building runtime libraries"; \ $(MAKE) $(BASE_FLAGS_TO_PASS) $(RECURSE_FLAGS) all +profiledbootstrap: all-bootstrap configure-gcc + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Bootstrapping the compiler"; \ + cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) stageprofile_build + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}` ; export s; \ + $(SET_LIB_PATH) \ + echo "Building runtime libraries and training compiler"; \ + $(MAKE) $(BASE_FLAGS_TO_PASS) $(RECURSE_FLAGS) all + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Building feedback based compiler"; \ + cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) stagefeedback_build + .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; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; 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; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}` ; export s; \ $(SET_LIB_PATH) \ echo "Building runtime libraries"; \ $(MAKE) $(BASE_FLAGS_TO_PASS) $(RECURSE_FLAGS) \ LANGUAGES="c c++" all -.PHONY: check-gcc +.PHONY: check-gcc maybe-check-gcc maybe-check-gcc: check-gcc: @if [ -f ./gcc/Makefile ] ; then \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check); \ else \ @@ -7831,8 +24325,8 @@ check-gcc: .PHONY: check-gcc-c++ check-gcc-c++: @if [ -f ./gcc/Makefile ] ; then \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check-c++); \ else \ @@ -7841,14 +24335,14 @@ check-gcc-c++: .PHONY: check-c++ check-c++: - $(MAKE) check-target-libstdc++-v3 check-gcc-c++ NOTPARALLEL=parallel-ok + $(MAKE) check-target-libstdc++-v3 check-gcc-c++ .PHONY: install-gcc maybe-install-gcc maybe-install-gcc: install-gcc: @if [ -f ./gcc/Makefile ] ; then \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) install); \ else \ @@ -7867,8 +24361,8 @@ gcc-no-fixedincludes: 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; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}` ; export s; \ $(SET_LIB_PATH) \ (cd ./gcc && \ $(MAKE) $(GCC_FLAGS_TO_PASS) install); \ @@ -7887,38 +24381,59 @@ gcc-no-fixedincludes: # are specified by depending on a 'maybe-' target. If you're not sure, # it's safer to use a soft dependency. +# Demangler depends on libiberty. +configure-demangler: maybe-configure-libiberty +all-demangler: maybe-all-libiberty + +# The new demangler, which is included in libiberty, is written in C++. +# A working C++ compiler is required. For the target demangler, it may +# depend on libstdc++ if it is built. But libstdc++ also depends on +# libiberty. We work around it by adding a new directory, demangler. +# Demangler will update libiberty with the new demangler if a working +# C++ compiler is available. Otherwise, the old demangler will be +# included in libiberty. For host and build systems, the C++ compiler +# check will be done after libiberty is built. For target system, the +# check will be done after libstdc++, which is built after libiberty. +# For parallel make, we have to make sure noone will use libiberty +# when it is being updated by demangler. We make everyone but libstdc++, +# which uses libiberty, depends on both libiberty and demangler. +ALL_LIBIBERTY=maybe-all-libiberty maybe-all-demangler +ALL_BUILD_LIBIBERTY=maybe-all-build-libiberty maybe-all-build-demangler +ALL_TARGET_LIBIBERTY=maybe-all-target-libiberty maybe-all-target-demangler + # Host modules specific to gcc. # GCC needs to identify certain tools. -configure-gcc: maybe-configure-binutils maybe-configure-gas maybe-configure-ld maybe-configure-bison maybe-configure-flex -all-gcc: maybe-all-libiberty maybe-all-bison maybe-all-byacc maybe-all-binutils maybe-all-gas maybe-all-ld maybe-all-zlib +# GCC also needs the information exported by the intl configure script. +configure-gcc: maybe-configure-intl maybe-configure-binutils maybe-configure-gas maybe-configure-ld maybe-configure-bison maybe-configure-flex +all-gcc: $(ALL_LIBIBERTY) maybe-all-intl maybe-all-bison maybe-all-byacc maybe-all-binutils maybe-all-gas maybe-all-ld maybe-all-zlib # This is a slightly kludgy method of getting dependencies on # all-build-libiberty correct; it would be better to build it every time. -all-gcc: maybe-all-build-libiberty -all-bootstrap: maybe-all-libiberty maybe-all-texinfo maybe-all-bison maybe-all-byacc maybe-all-binutils maybe-all-gas maybe-all-ld maybe-all-zlib +all-gcc: $(ALL_BUILD_LIBIBERTY) +all-bootstrap: $(ALL_LIBIBERTY) maybe-all-intl maybe-all-texinfo maybe-all-bison maybe-all-byacc maybe-all-binutils maybe-all-gas maybe-all-ld maybe-all-zlib # Host modules specific to gdb. # GDB needs to know that the simulator is being built. -configure-gdb: maybe-configure-tcl maybe-configure-tk maybe-configure-sim +configure-gdb: maybe-configure-itcl maybe-configure-tcl maybe-configure-tk maybe-configure-sim GDB_TK = @GDB_TK@ -all-gdb: maybe-all-libiberty maybe-all-opcodes maybe-all-bfd maybe-all-mmalloc maybe-all-readline maybe-all-bison maybe-all-byacc maybe-all-sim $(gdbnlmrequirements) $(GDB_TK) +all-gdb: $(ALL_LIBIBERTY) maybe-all-opcodes maybe-all-bfd maybe-all-mmalloc maybe-all-readline maybe-all-bison maybe-all-byacc maybe-all-sim $(gdbnlmrequirements) $(GDB_TK) install-gdb: maybe-install-tcl maybe-install-tk maybe-install-itcl maybe-install-tix maybe-install-libgui configure-libgui: maybe-configure-tcl maybe-configure-tk all-libgui: maybe-all-tcl maybe-all-tk maybe-all-itcl # Host modules specific to binutils. configure-bfd: configure-libiberty -all-bfd: maybe-all-libiberty maybe-all-intl -all-binutils: maybe-all-libiberty maybe-all-opcodes maybe-all-bfd maybe-all-flex maybe-all-bison maybe-all-byacc maybe-all-intl +all-bfd: $(ALL_LIBIBERTY) maybe-all-intl +all-binutils: $(ALL_LIBIBERTY) maybe-all-opcodes maybe-all-bfd maybe-all-flex maybe-all-bison maybe-all-byacc maybe-all-intl # 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: maybe-install-opcodes # libopcodes depends on libbfd install-opcodes: maybe-install-bfd -all-gas: maybe-all-libiberty maybe-all-opcodes maybe-all-bfd maybe-all-intl -all-gprof: maybe-all-libiberty maybe-all-bfd maybe-all-opcodes maybe-all-intl -all-ld: maybe-all-libiberty maybe-all-bfd maybe-all-opcodes maybe-all-bison maybe-all-byacc maybe-all-flex maybe-all-intl -all-opcodes: maybe-all-bfd maybe-all-libiberty +all-gas: $(ALL_LIBIBERTY) maybe-all-opcodes maybe-all-bfd maybe-all-intl +all-gprof: $(ALL_LIBIBERTY) maybe-all-bfd maybe-all-opcodes maybe-all-intl +all-ld: $(ALL_LIBIBERTY) maybe-all-bfd maybe-all-opcodes maybe-all-bison maybe-all-byacc maybe-all-flex maybe-all-intl +all-opcodes: maybe-all-bfd $(ALL_LIBIBERTY) # Other host modules in the 'src' repository. all-dejagnu: maybe-all-tcl maybe-all-expect maybe-all-tk @@ -7929,34 +24444,34 @@ all-itcl: maybe-all-tcl maybe-all-tk # We put install-tcl before install-itcl because itcl wants to run a # program on installation which uses the Tcl libraries. install-itcl: maybe-install-tcl -all-sid: maybe-all-libiberty maybe-all-bfd maybe-all-opcodes maybe-all-tcl maybe-all-tk +all-sid: $(ALL_LIBIBERTY) maybe-all-bfd maybe-all-opcodes maybe-all-tcl maybe-all-tk install-sid: maybe-install-tcl maybe-install-tk -all-sim: maybe-all-libiberty maybe-all-bfd maybe-all-opcodes maybe-all-readline maybe-configure-gdb +all-sim: $(ALL_LIBIBERTY) maybe-all-bfd maybe-all-opcodes maybe-all-readline maybe-configure-gdb configure-tk: maybe-configure-tcl all-tk: maybe-all-tcl configure-tix: maybe-configure-tcl maybe-configure-tk all-tix: maybe-all-tcl maybe-all-tk -all-texinfo: maybe-all-libiberty +all-texinfo: $(ALL_LIBIBERTY) # Other host modules. Warning, these are not well tested. all-autoconf: maybe-all-m4 maybe-all-texinfo all-automake: maybe-all-m4 maybe-all-texinfo all-bison: maybe-all-texinfo -all-diff: maybe-all-libiberty -all-fastjar: maybe-all-zlib maybe-all-libiberty -all-fileutils: maybe-all-libiberty -all-flex: maybe-all-libiberty maybe-all-bison maybe-all-byacc -all-gzip: maybe-all-libiberty -all-hello: maybe-all-libiberty -all-m4: maybe-all-libiberty maybe-all-texinfo -all-make: maybe-all-libiberty -all-patch: maybe-all-libiberty -all-prms: maybe-all-libiberty -all-recode: maybe-all-libiberty -all-sed: maybe-all-libiberty +all-diff: $(ALL_LIBIBERTY) +all-fastjar: maybe-all-zlib $(ALL_LIBIBERTY) +all-fileutils: $(ALL_LIBIBERTY) +all-flex: $(ALL_LIBIBERTY) maybe-all-bison maybe-all-byacc +all-gzip: $(ALL_LIBIBERTY) +all-hello: $(ALL_LIBIBERTY) +all-m4: $(ALL_LIBIBERTY) maybe-all-texinfo +all-make: $(ALL_LIBIBERTY) +all-patch: $(ALL_LIBIBERTY) +all-prms: $(ALL_LIBIBERTY) +all-recode: $(ALL_LIBIBERTY) +all-sed: $(ALL_LIBIBERTY) all-send-pr: maybe-all-prms -all-tar: maybe-all-libiberty -all-uudecode: maybe-all-libiberty +all-tar: $(ALL_LIBIBERTY) +all-uudecode: $(ALL_LIBIBERTY) ALL_GCC = maybe-all-gcc ALL_GCC_C = $(ALL_GCC) maybe-all-target-newlib maybe-all-target-libgloss @@ -7965,17 +24480,19 @@ ALL_GCC_CXX = $(ALL_GCC_C) maybe-all-tar # Target modules specific to gcc. configure-target-boehm-gc: $(ALL_GCC_C) maybe-configure-target-qthreads configure-target-fastjar: maybe-configure-target-zlib -all-target-fastjar: maybe-all-target-zlib maybe-all-target-libiberty +all-target-fastjar: maybe-all-target-zlib $(ALL_TARGET_LIBIBERTY) configure-target-libf2c: $(ALL_GCC_C) -all-target-libf2c: maybe-all-target-libiberty +all-target-libf2c: $(ALL_TARGET_LIBIBERTY) configure-target-libffi: $(ALL_GCC_C) configure-target-libjava: $(ALL_GCC_C) maybe-configure-target-zlib maybe-configure-target-boehm-gc maybe-configure-target-qthreads maybe-configure-target-libffi all-target-libjava: maybe-all-fastjar maybe-all-target-zlib maybe-all-target-boehm-gc maybe-all-target-qthreads maybe-all-target-libffi configure-target-libobjc: $(ALL_GCC_C) -all-target-libobjc: maybe-all-target-libiberty +all-target-libobjc: $(ALL_TARGET_LIBIBERTY) configure-target-libstdc++-v3: $(ALL_GCC_C) all-target-libstdc++-v3: maybe-all-target-libiberty configure-target-zlib: $(ALL_GCC_C) +configure-target-demangler: maybe-all-target-libstdc++-v3 +all-target-demangler: configure-target-demangler # Target modules in the 'src' repository. configure-target-examples: $(ALL_GCC_C) @@ -7986,11 +24503,11 @@ configure-target-libtermcap: $(ALL_GCC_C configure-target-newlib: $(ALL_GCC) configure-target-rda: $(ALL_GCC_C) configure-target-winsup: $(ALL_GCC_C) -all-target-winsup: maybe-all-target-libiberty maybe-all-target-libtermcap +all-target-winsup: $(ALL_TARGET_LIBIBERTY) maybe-all-target-libtermcap # Other target modules. Warning, these are not well tested. configure-target-gperf: $(ALL_GCC_CXX) -all-target-gperf: maybe-all-target-libiberty maybe-all-target-libstdc++-v3 +all-target-gperf: $(ALL_TARGET_LIBIBERTY) maybe-all-target-libstdc++-v3 configure-target-qthreads: $(ALL_GCC_C) # Dependencies of maybe-foo on foo. These are used because, for example, @@ -8012,7 +24529,7 @@ configure-target-qthreads: $(ALL_GCC_C) # We use move-if-change so that it's only considered updated when it # actually changes, because it has to depend on a phony target. multilib.out: maybe-all-gcc - @r=`${PWD}`; export r; \ + @r=`${PWD_COMMAND}`; export r; \ echo "Checking multilib configuration..."; \ $(CC_FOR_TARGET) --print-multi-lib > multilib.tmp 2> /dev/null ; \ $(SHELL) $(srcdir)/move-if-change multilib.tmp multilib.out ; \ @@ -8038,12 +24555,6 @@ $(srcdir)/configure: @MAINT@ $(srcdir)/c # Special directives to GNU Make # ------------------------------ -# 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): - # Don't pass command-line variables to submakes. .NOEXPORT: MAKEOVERRIDES= diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/Makefile.tpl binutils-2.14.90.0.5/Makefile.tpl --- binutils-2.14.90.0.4.1/Makefile.tpl 2003-05-23 07:18:52.000000000 -0700 +++ binutils-2.14.90.0.5/Makefile.tpl 2003-07-23 08:08:23.000000000 -0700 @@ -29,20 +29,11 @@ in VPATH=@srcdir@ build_alias=@build_alias@ -build_cpu=@build_cpu@ -build_vendor=@build_vendor@ -build_os=@build_os@ -build_canonical=@build_cpu@-@build_vendor@-@build_os@ +build=@build@ host_alias=@host_alias@ -host_cpu=@host_cpu@ -host_vendor=@host_vendor@ -host_os=@host_os@ -host_canonical=@host_cpu@-@host_vendor@-@host_os@ +host=@host@ target_alias=@target_alias@ -target_cpu=@target_cpu@ -target_vendor=@target_vendor@ -target_os=@target_os@ -target_canonical=@target_cpu@-@target_vendor@-@target_os@ +target=@target@ program_transform_name = @program_transform_name@ @@ -73,14 +64,10 @@ man7dir = $(mandir)/man7 man8dir = $(mandir)/man8 man9dir = $(mandir)/man9 -# 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 = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_DATA = @INSTALL_DATA@ # ------------------------------------------------- # Miscellaneous non-standard autoconf-set variables @@ -119,7 +106,7 @@ REALLY_SET_LIB_PATH = \ $(RPATH_ENVVAR)=`echo "$(HOST_LIB_PATH):$(TARGET_LIB_PATH):$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR); # This is the list of directories to be built for the build system. -BUILD_CONFIGDIRS = libiberty +BUILD_CONFIGDIRS = libiberty demangler # Build programs are put under this directory. BUILD_SUBDIR = @build_subdir@ # This is set by the configure script to the arguments to use when configuring @@ -151,7 +138,9 @@ SHELL = @config_shell@ # 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} +# Don't use PWD since it is a common shell environment variable and we +# don't want to corrupt it. +PWD_COMMAND = $${PWDCMD-pwd} # compilers to use to create programs which must be run in the build # environment. @@ -162,7 +151,6 @@ CXX_FOR_BUILD = $(CXX) # Special variables passed down in EXTRA_GCC_FLAGS. They are defined # here so that they can be overridden by Makefile fragments. -BUILD_CC = $(CC_FOR_BUILD) BUILD_PREFIX = @BUILD_PREFIX@ BUILD_PREFIX_1 = @BUILD_PREFIX_1@ @@ -266,7 +254,7 @@ USUAL_AR_FOR_TARGET = ` \ if [ -f $$r/binutils/ar ] ; then \ echo $$r/binutils/ar ; \ else \ - if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ + if [ '$(host)' = '$(target)' ] ; then \ echo $(AR); \ else \ echo ar | sed '$(program_transform_name)' ; \ @@ -280,7 +268,7 @@ USUAL_AS_FOR_TARGET = ` \ elif [ -f $$r/gcc/xgcc ]; then \ $(CC_FOR_TARGET) -print-prog-name=as ; \ else \ - if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ + if [ '$(host)' = '$(target)' ] ; then \ echo $(AS); \ else \ echo as | sed '$(program_transform_name)' ; \ @@ -313,7 +301,7 @@ USUAL_DLLTOOL_FOR_TARGET = ` \ if [ -f $$r/binutils/dlltool ] ; then \ echo $$r/binutils/dlltool ; \ else \ - if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ + if [ '$(host)' = '$(target)' ] ; then \ echo $(DLLTOOL); \ else \ echo dlltool | sed '$(program_transform_name)' ; \ @@ -329,7 +317,7 @@ USUAL_LD_FOR_TARGET = ` \ elif [ -f $$r/gcc/xgcc ]; then \ $(CC_FOR_TARGET) -print-prog-name=ld ; \ else \ - if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ + if [ '$(host)' = '$(target)' ] ; then \ echo $(LD); \ else \ echo ld | sed '$(program_transform_name)' ; \ @@ -345,7 +333,7 @@ USUAL_NM_FOR_TARGET = ` \ elif [ -f $$r/gcc/xgcc ]; then \ $(CC_FOR_TARGET) -print-prog-name=nm ; \ else \ - if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ + if [ '$(host)' = '$(target)' ] ; then \ echo $(NM); \ else \ echo nm | sed '$(program_transform_name)' ; \ @@ -357,7 +345,7 @@ USUAL_RANLIB_FOR_TARGET = ` \ if [ -f $$r/binutils/ranlib ] ; then \ echo $$r/binutils/ranlib ; \ else \ - if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ + if [ '$(host)' = '$(target)' ] ; then \ if [ x'$(RANLIB)' != x ]; then \ echo $(RANLIB); \ else \ @@ -373,7 +361,7 @@ USUAL_WINDRES_FOR_TARGET = ` \ if [ -f $$r/binutils/windres ] ; then \ echo $$r/binutils/windres ; \ else \ - if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ + if [ '$(host)' = '$(target)' ] ; then \ echo $(WINDRES); \ else \ echo windres | sed '$(program_transform_name)' ; \ @@ -399,70 +387,9 @@ all: all.normal ### # 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)" \ - "DESTDIR=$(DESTDIR)" \ - "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)" +BASE_FLAGS_TO_PASS = [+ FOR flags_to_pass +]\ + "[+flag+]=$([+flag+])" [+ ENDFOR flags_to_pass +]\ + "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" # For any flags above that may contain shell code that varies from one # target library to another. When doing recursive invocations of the @@ -475,7 +402,6 @@ RECURSE_FLAGS = \ # 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)' \ @@ -504,7 +430,6 @@ X11_FLAGS_TO_PASS = \ # 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)' \ @@ -526,7 +451,7 @@ TARGET_FLAGS_TO_PASS = $(BASE_FLAGS_TO_P # 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 +# The BUILD_* variables are a special case, which are used for the gcc # cross-building scheme. EXTRA_GCC_FLAGS = \ 'AR=$(AR)' \ @@ -534,7 +459,6 @@ EXTRA_GCC_FLAGS = \ 'CC=$(CC)' \ 'CXX=$(CXX)' \ 'DLLTOOL=$$(DLLTOOL_FOR_TARGET)' \ - 'BUILD_CC=$(CC_FOR_BUILD)' \ 'BUILD_PREFIX=$(BUILD_PREFIX)' \ 'BUILD_PREFIX_1=$(BUILD_PREFIX_1)' \ 'NM=$(NM)' \ @@ -565,26 +489,6 @@ configure-target: [+ maybe-configure-target-[+module+][+ ENDFOR target_modules +] -# This is a list of the targets for which we can do a clean-{target}. -CLEAN_MODULES =[+ - FOR host_modules +][+ - IF (not (or (exist? "no_clean") (exist? "with_x"))) +] \ - clean-[+module+][+ - ENDIF no_clean +][+ - ENDFOR host_modules +] - -# All of the target modules that can be cleaned -CLEAN_TARGET_MODULES =[+ - FOR target_modules +][+ - IF (not (exist? "no_clean")) +] \ - clean-target-[+module+][+ - ENDIF no_clean +][+ - ENDFOR target_modules +] - -# All of the x11 modules that can be cleaned -CLEAN_X11_MODULES = [+ FOR host_modules +][+ IF with_x +]\ - clean-[+module+] [+ ENDIF with_x +][+ ENDFOR host_modules +] - # The target built for a native build. .PHONY: all.normal all.normal: @all_build_modules@ all-host all-target @@ -604,58 +508,105 @@ all-target: [+ # ``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. [+ FOR recursive_targets +] -.PHONY: do-[+target+] -do-[+target+]: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ +.PHONY: do-[+make_target+] +do-[+make_target+]: [+make_target+]-host [+make_target+]-target + +.PHONY: [+make_target+]-host +[+make_target+]-host: maybe-[+make_target+]-gcc [+ + FOR host_modules +] \ + maybe-[+make_target+]-[+module+][+ + ENDFOR host_modules +] + +.PHONY: [+make_target+]-target +[+make_target+]-target: [+ + FOR target_modules +] \ + maybe-[+make_target+]-target-[+module+][+ + ENDFOR target_modules +] + +# GCC, the eternal special case +.PHONY: maybe-[+make_target+]-gcc [+make_target+]-gcc +maybe-[+make_target+]-gcc: +[+make_target+]-gcc: [+ + FOR depend +]\ + [+depend+]-gcc [+ + ENDFOR depend +] + @[ -f ./gcc/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; 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 ; \ - (cd ./$$i && \ - $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ - "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ - "RANLIB=$${RANLIB}" \ - "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ - [+target+]) \ - || exit 1; \ - else true; fi; \ - done - # Break into two pieces - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + for flag in $(EXTRA_GCC_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing [+make_target+] in gcc" ; \ + (cd gcc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + [+make_target+]) \ + || exit 1 + +# Host modules. +[+ FOR host_modules +] +.PHONY: maybe-[+make_target+]-[+module+] [+make_target+]-[+module+] +maybe-[+make_target+]-[+module+]: +[+ IF (match-value? = "missing" (get "make_target") ) +] +# [+module+] doesn't support [+make_target+]. +[+make_target+]-[+module+]: +[+ ELSE +] +[+make_target+]-[+module+]: [+ + FOR depend +]\ + [+depend+]-[+module+] [+ + ENDFOR depend +] + @[ -f ./[+module+]/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; 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; \ - (cd $(TARGET_SUBDIR)/$$i && \ - $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ - "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ - "RANLIB=$${RANLIB}" \ - "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ - [+target+]) \ - || exit 1; \ - else true; fi; \ - done -[+ ENDFOR recursive_targets +] + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing [+make_target+] in [+module+]" ; \ + (cd [+module+] && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + [+make_target+]) \ + || exit 1 +[+ ENDIF +] +[+ ENDFOR host_modules +] +# Target modules. +[+ FOR target_modules +] +.PHONY: maybe-[+make_target+]-target-[+module+] [+make_target+]-target-[+module+] +maybe-[+make_target+]-target-[+module+]: +[+ IF (match-value? = "missing" (get "make_target") ) +] +# [+module+] doesn't support [+make_target+]. +[+make_target+]-target-[+module+]: +[+ ELSE +] +[+make_target+]-target-[+module+]: [+ + FOR depend +]\ + [+depend+]-target-[+module+] [+ + ENDFOR depend +] + @[ -f $(TARGET_SUBDIR)/[+module+]/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing [+make_target+] in $(TARGET_SUBDIR)/[+module+]" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/[+module+] && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + [+make_target+]) \ + || exit 1 +[+ ENDIF +] +[+ ENDFOR target_modules +] +[+ ENDFOR recursive_targets +] # Here are the targets which correspond to the do-X targets. @@ -671,7 +622,7 @@ dvi: do-dvi do-info: maybe-all-texinfo install-info: do-install-info dir.info - s=`cd $(srcdir); ${PWD}`; export s; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ if [ -f dir.info ] ; then \ $(INSTALL_DATA) dir.info $(DESTDIR)$(infodir)/dir.info ; \ else true ; fi @@ -690,7 +641,7 @@ local-distclean: -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 + -rmdir fastjar gcc libiberty demangler texinfo zlib 2>/dev/null local-maintainer-clean: @echo "This command is intended for maintainers to use;" @@ -703,33 +654,8 @@ maintainer-clean: local-maintainer-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 +# Extra dependency for clean-target, owing to the mixed nature of gcc +clean-target: clean-target-libgcc clean-target-libgcc: test ! -d gcc/libgcc || \ (cd gcc/libgcc && find . -type d -print) | \ @@ -740,7 +666,7 @@ clean-target-libgcc: .PHONY: check do-check check: - $(MAKE) do-check NOTPARALLEL=parallel-ok + $(MAKE) do-check # Only include modules actually being configured and built. do-check: maybe-check-gcc [+ @@ -801,7 +727,7 @@ uninstall: .PHONY: install.all install.all: install-no-fixedincludes @if [ -f ./gcc/Makefile ] ; then \ - r=`${PWD}` ; export r ; \ + r=`${PWD_COMMAND}` ; export r ; \ $(SET_LIB_PATH) \ (cd ./gcc && \ $(MAKE) $(FLAGS_TO_PASS) install-headers) ; \ @@ -855,8 +781,8 @@ configure-build-[+module+]: @test ! -f $(BUILD_SUBDIR)/[+module+]/Makefile || exit 0; \ [ -d $(BUILD_SUBDIR)/[+module+] ] || \ mkdir $(BUILD_SUBDIR)/[+module+];\ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ AR="$(AR_FOR_BUILD)"; export AR; \ AS="$(AS_FOR_BUILD)"; export AS; \ CC="$(CC_FOR_BUILD)"; export CC; \ @@ -914,8 +840,8 @@ configure-build-[+module+]: .PHONY: all-build-[+module+] maybe-all-build-[+module+] maybe-all-build-[+module+]: all-build-[+module+]: configure-build-[+module+] - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ (cd $(BUILD_SUBDIR)/[+module+] && $(MAKE) all) [+ ENDFOR build_modules +] @@ -928,24 +854,22 @@ maybe-configure-[+module+]: configure-[+module+]: @test ! -f [+module+]/Makefile || exit 0; \ [ -d [+module+] ] || mkdir [+module+]; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in [+module+]; \ cd [+module+] || exit 1; \ case $(srcdir) in \ @@ -966,8 +890,8 @@ configure-[+module+]: .PHONY: all-[+module+] maybe-all-[+module+] maybe-all-[+module+]: all-[+module+]: configure-[+module+] - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd [+module+] && $(MAKE) $(FLAGS_TO_PASS)[+ IF with_x @@ -981,9 +905,9 @@ check-[+module+]: [+ ELIF no_check_cross +] # This module is only tested in a native toolchain. check-[+module+]: - @if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @if [ '$(host)' = '$(target)' ] ; then \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd [+module+] && $(MAKE) $(FLAGS_TO_PASS)[+ IF with_x @@ -992,8 +916,8 @@ check-[+module+]: fi [+ ELSE check +] check-[+module+]: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd [+module+] && $(MAKE) $(FLAGS_TO_PASS)[+ IF with_x @@ -1007,8 +931,8 @@ maybe-install-[+module+]: install-[+module+]: [+ ELSE install +] install-[+module+]: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd [+module+] && $(MAKE) $(FLAGS_TO_PASS)[+ IF with_x @@ -1035,8 +959,8 @@ configure-target-[+module+]: $(TARGET_SU @test ! -f $(TARGET_SUBDIR)/[+module+]/Makefile || exit 0; \ [ -d $(TARGET_SUBDIR)/[+module+] ] || \ mkdir $(TARGET_SUBDIR)/[+module+];\ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ AR="$(AR_FOR_TARGET)"; export AR; \ AS="$(AS_FOR_TARGET)"; export AS; \ @@ -1101,8 +1025,8 @@ ENDIF raw_cxx +] .PHONY: all-target-[+module+] maybe-all-target-[+module+] maybe-all-target-[+module+]: all-target-[+module+]: configure-target-[+module+] - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/[+module+] && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) [+ @@ -1118,8 +1042,8 @@ maybe-check-target-[+module+]: check-target-[+module+]: [+ ELSE check +] check-target-[+module+]: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/[+module+] && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) [+ @@ -1136,8 +1060,8 @@ maybe-install-target-[+module+]: install-target-[+module+]: [+ ELSE install +] install-target-[+module+]: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/[+module+] && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) install) @@ -1158,25 +1082,23 @@ maybe-configure-gcc: configure-gcc: @test ! -f gcc/Makefile || exit 0; \ [ -d gcc ] || mkdir gcc; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ TOPLEVEL_CONFIGURE_ARGUMENTS="$(TOPLEVEL_CONFIGURE_ARGUMENTS)"; export TOPLEVEL_CONFIGURE_ARGUMENTS; \ - if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ - AR="$(AR)"; export AR; \ - AS="$(AS)"; export AS; \ - CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ - DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ - LD="$(LD)"; export LD; \ - NM="$(NM)"; export NM; \ - RANLIB="$(RANLIB)"; export RANLIB; \ - WINDRES="$(WINDRES)"; export WINDRES; \ - OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ - OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ - fi; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ echo Configuring in gcc; \ cd gcc || exit 1; \ case $(srcdir) in \ @@ -1201,13 +1123,13 @@ configure-gcc: maybe-all-gcc: all-gcc: configure-gcc @if [ -f gcc/stage_last ] ; then \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) quickstrap); \ else \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) all); \ fi @@ -1225,13 +1147,13 @@ all-gcc: configure-gcc GCC_STRAP_TARGETS = bootstrap bootstrap-lean bootstrap2 bootstrap2-lean bootstrap3 bootstrap3-lean bootstrap4 bootstrap4-lean bubblestrap quickstrap cleanstrap restrap .PHONY: $(GCC_STRAP_TARGETS) $(GCC_STRAP_TARGETS): all-bootstrap configure-gcc - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; 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; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ case "$@" in \ *bootstrap4-lean ) \ msg="Comparing stage3 and stage4 of the compiler"; \ @@ -1249,32 +1171,49 @@ $(GCC_STRAP_TARGETS): all-bootstrap conf $(SET_LIB_PATH) \ echo "$$msg"; \ cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) $$compare - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}` ; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}` ; export s; \ $(SET_LIB_PATH) \ echo "Building runtime libraries"; \ $(MAKE) $(BASE_FLAGS_TO_PASS) $(RECURSE_FLAGS) all +profiledbootstrap: all-bootstrap configure-gcc + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Bootstrapping the compiler"; \ + cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) stageprofile_build + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}` ; export s; \ + $(SET_LIB_PATH) \ + echo "Building runtime libraries and training compiler"; \ + $(MAKE) $(BASE_FLAGS_TO_PASS) $(RECURSE_FLAGS) all + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Building feedback based compiler"; \ + cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) stagefeedback_build + .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; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; 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; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}` ; export s; \ $(SET_LIB_PATH) \ echo "Building runtime libraries"; \ $(MAKE) $(BASE_FLAGS_TO_PASS) $(RECURSE_FLAGS) \ LANGUAGES="c c++" all -.PHONY: check-gcc +.PHONY: check-gcc maybe-check-gcc maybe-check-gcc: check-gcc: @if [ -f ./gcc/Makefile ] ; then \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check); \ else \ @@ -1284,8 +1223,8 @@ check-gcc: .PHONY: check-gcc-c++ check-gcc-c++: @if [ -f ./gcc/Makefile ] ; then \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check-c++); \ else \ @@ -1294,14 +1233,14 @@ check-gcc-c++: .PHONY: check-c++ check-c++: - $(MAKE) check-target-libstdc++-v3 check-gcc-c++ NOTPARALLEL=parallel-ok + $(MAKE) check-target-libstdc++-v3 check-gcc-c++ .PHONY: install-gcc maybe-install-gcc maybe-install-gcc: install-gcc: @if [ -f ./gcc/Makefile ] ; then \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) install); \ else \ @@ -1320,8 +1259,8 @@ gcc-no-fixedincludes: 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; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}` ; export s; \ $(SET_LIB_PATH) \ (cd ./gcc && \ $(MAKE) $(GCC_FLAGS_TO_PASS) install); \ @@ -1340,38 +1279,59 @@ gcc-no-fixedincludes: # are specified by depending on a 'maybe-' target. If you're not sure, # it's safer to use a soft dependency. +# Demangler depends on libiberty. +configure-demangler: maybe-configure-libiberty +all-demangler: maybe-all-libiberty + +# The new demangler, which is included in libiberty, is written in C++. +# A working C++ compiler is required. For the target demangler, it may +# depend on libstdc++ if it is built. But libstdc++ also depends on +# libiberty. We work around it by adding a new directory, demangler. +# Demangler will update libiberty with the new demangler if a working +# C++ compiler is available. Otherwise, the old demangler will be +# included in libiberty. For host and build systems, the C++ compiler +# check will be done after libiberty is built. For target system, the +# check will be done after libstdc++, which is built after libiberty. +# For parallel make, we have to make sure noone will use libiberty +# when it is being updated by demangler. We make everyone but libstdc++, +# which uses libiberty, depends on both libiberty and demangler. +ALL_LIBIBERTY=maybe-all-libiberty maybe-all-demangler +ALL_BUILD_LIBIBERTY=maybe-all-build-libiberty maybe-all-build-demangler +ALL_TARGET_LIBIBERTY=maybe-all-target-libiberty maybe-all-target-demangler + # Host modules specific to gcc. # GCC needs to identify certain tools. -configure-gcc: maybe-configure-binutils maybe-configure-gas maybe-configure-ld maybe-configure-bison maybe-configure-flex -all-gcc: maybe-all-libiberty maybe-all-bison maybe-all-byacc maybe-all-binutils maybe-all-gas maybe-all-ld maybe-all-zlib +# GCC also needs the information exported by the intl configure script. +configure-gcc: maybe-configure-intl maybe-configure-binutils maybe-configure-gas maybe-configure-ld maybe-configure-bison maybe-configure-flex +all-gcc: $(ALL_LIBIBERTY) maybe-all-intl maybe-all-bison maybe-all-byacc maybe-all-binutils maybe-all-gas maybe-all-ld maybe-all-zlib # This is a slightly kludgy method of getting dependencies on # all-build-libiberty correct; it would be better to build it every time. -all-gcc: maybe-all-build-libiberty -all-bootstrap: maybe-all-libiberty maybe-all-texinfo maybe-all-bison maybe-all-byacc maybe-all-binutils maybe-all-gas maybe-all-ld maybe-all-zlib +all-gcc: $(ALL_BUILD_LIBIBERTY) +all-bootstrap: $(ALL_LIBIBERTY) maybe-all-intl maybe-all-texinfo maybe-all-bison maybe-all-byacc maybe-all-binutils maybe-all-gas maybe-all-ld maybe-all-zlib # Host modules specific to gdb. # GDB needs to know that the simulator is being built. -configure-gdb: maybe-configure-tcl maybe-configure-tk maybe-configure-sim +configure-gdb: maybe-configure-itcl maybe-configure-tcl maybe-configure-tk maybe-configure-sim GDB_TK = @GDB_TK@ -all-gdb: maybe-all-libiberty maybe-all-opcodes maybe-all-bfd maybe-all-mmalloc maybe-all-readline maybe-all-bison maybe-all-byacc maybe-all-sim $(gdbnlmrequirements) $(GDB_TK) +all-gdb: $(ALL_LIBIBERTY) maybe-all-opcodes maybe-all-bfd maybe-all-mmalloc maybe-all-readline maybe-all-bison maybe-all-byacc maybe-all-sim $(gdbnlmrequirements) $(GDB_TK) install-gdb: maybe-install-tcl maybe-install-tk maybe-install-itcl maybe-install-tix maybe-install-libgui configure-libgui: maybe-configure-tcl maybe-configure-tk all-libgui: maybe-all-tcl maybe-all-tk maybe-all-itcl # Host modules specific to binutils. configure-bfd: configure-libiberty -all-bfd: maybe-all-libiberty maybe-all-intl -all-binutils: maybe-all-libiberty maybe-all-opcodes maybe-all-bfd maybe-all-flex maybe-all-bison maybe-all-byacc maybe-all-intl +all-bfd: $(ALL_LIBIBERTY) maybe-all-intl +all-binutils: $(ALL_LIBIBERTY) maybe-all-opcodes maybe-all-bfd maybe-all-flex maybe-all-bison maybe-all-byacc maybe-all-intl # 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: maybe-install-opcodes # libopcodes depends on libbfd install-opcodes: maybe-install-bfd -all-gas: maybe-all-libiberty maybe-all-opcodes maybe-all-bfd maybe-all-intl -all-gprof: maybe-all-libiberty maybe-all-bfd maybe-all-opcodes maybe-all-intl -all-ld: maybe-all-libiberty maybe-all-bfd maybe-all-opcodes maybe-all-bison maybe-all-byacc maybe-all-flex maybe-all-intl -all-opcodes: maybe-all-bfd maybe-all-libiberty +all-gas: $(ALL_LIBIBERTY) maybe-all-opcodes maybe-all-bfd maybe-all-intl +all-gprof: $(ALL_LIBIBERTY) maybe-all-bfd maybe-all-opcodes maybe-all-intl +all-ld: $(ALL_LIBIBERTY) maybe-all-bfd maybe-all-opcodes maybe-all-bison maybe-all-byacc maybe-all-flex maybe-all-intl +all-opcodes: maybe-all-bfd $(ALL_LIBIBERTY) # Other host modules in the 'src' repository. all-dejagnu: maybe-all-tcl maybe-all-expect maybe-all-tk @@ -1382,34 +1342,34 @@ all-itcl: maybe-all-tcl maybe-all-tk # We put install-tcl before install-itcl because itcl wants to run a # program on installation which uses the Tcl libraries. install-itcl: maybe-install-tcl -all-sid: maybe-all-libiberty maybe-all-bfd maybe-all-opcodes maybe-all-tcl maybe-all-tk +all-sid: $(ALL_LIBIBERTY) maybe-all-bfd maybe-all-opcodes maybe-all-tcl maybe-all-tk install-sid: maybe-install-tcl maybe-install-tk -all-sim: maybe-all-libiberty maybe-all-bfd maybe-all-opcodes maybe-all-readline maybe-configure-gdb +all-sim: $(ALL_LIBIBERTY) maybe-all-bfd maybe-all-opcodes maybe-all-readline maybe-configure-gdb configure-tk: maybe-configure-tcl all-tk: maybe-all-tcl configure-tix: maybe-configure-tcl maybe-configure-tk all-tix: maybe-all-tcl maybe-all-tk -all-texinfo: maybe-all-libiberty +all-texinfo: $(ALL_LIBIBERTY) # Other host modules. Warning, these are not well tested. all-autoconf: maybe-all-m4 maybe-all-texinfo all-automake: maybe-all-m4 maybe-all-texinfo all-bison: maybe-all-texinfo -all-diff: maybe-all-libiberty -all-fastjar: maybe-all-zlib maybe-all-libiberty -all-fileutils: maybe-all-libiberty -all-flex: maybe-all-libiberty maybe-all-bison maybe-all-byacc -all-gzip: maybe-all-libiberty -all-hello: maybe-all-libiberty -all-m4: maybe-all-libiberty maybe-all-texinfo -all-make: maybe-all-libiberty -all-patch: maybe-all-libiberty -all-prms: maybe-all-libiberty -all-recode: maybe-all-libiberty -all-sed: maybe-all-libiberty +all-diff: $(ALL_LIBIBERTY) +all-fastjar: maybe-all-zlib $(ALL_LIBIBERTY) +all-fileutils: $(ALL_LIBIBERTY) +all-flex: $(ALL_LIBIBERTY) maybe-all-bison maybe-all-byacc +all-gzip: $(ALL_LIBIBERTY) +all-hello: $(ALL_LIBIBERTY) +all-m4: $(ALL_LIBIBERTY) maybe-all-texinfo +all-make: $(ALL_LIBIBERTY) +all-patch: $(ALL_LIBIBERTY) +all-prms: $(ALL_LIBIBERTY) +all-recode: $(ALL_LIBIBERTY) +all-sed: $(ALL_LIBIBERTY) all-send-pr: maybe-all-prms -all-tar: maybe-all-libiberty -all-uudecode: maybe-all-libiberty +all-tar: $(ALL_LIBIBERTY) +all-uudecode: $(ALL_LIBIBERTY) ALL_GCC = maybe-all-gcc ALL_GCC_C = $(ALL_GCC) maybe-all-target-newlib maybe-all-target-libgloss @@ -1418,17 +1378,19 @@ ALL_GCC_CXX = $(ALL_GCC_C) maybe-all-tar # Target modules specific to gcc. configure-target-boehm-gc: $(ALL_GCC_C) maybe-configure-target-qthreads configure-target-fastjar: maybe-configure-target-zlib -all-target-fastjar: maybe-all-target-zlib maybe-all-target-libiberty +all-target-fastjar: maybe-all-target-zlib $(ALL_TARGET_LIBIBERTY) configure-target-libf2c: $(ALL_GCC_C) -all-target-libf2c: maybe-all-target-libiberty +all-target-libf2c: $(ALL_TARGET_LIBIBERTY) configure-target-libffi: $(ALL_GCC_C) configure-target-libjava: $(ALL_GCC_C) maybe-configure-target-zlib maybe-configure-target-boehm-gc maybe-configure-target-qthreads maybe-configure-target-libffi all-target-libjava: maybe-all-fastjar maybe-all-target-zlib maybe-all-target-boehm-gc maybe-all-target-qthreads maybe-all-target-libffi configure-target-libobjc: $(ALL_GCC_C) -all-target-libobjc: maybe-all-target-libiberty +all-target-libobjc: $(ALL_TARGET_LIBIBERTY) configure-target-libstdc++-v3: $(ALL_GCC_C) all-target-libstdc++-v3: maybe-all-target-libiberty configure-target-zlib: $(ALL_GCC_C) +configure-target-demangler: maybe-all-target-libstdc++-v3 +all-target-demangler: configure-target-demangler # Target modules in the 'src' repository. configure-target-examples: $(ALL_GCC_C) @@ -1439,11 +1401,11 @@ configure-target-libtermcap: $(ALL_GCC_C configure-target-newlib: $(ALL_GCC) configure-target-rda: $(ALL_GCC_C) configure-target-winsup: $(ALL_GCC_C) -all-target-winsup: maybe-all-target-libiberty maybe-all-target-libtermcap +all-target-winsup: $(ALL_TARGET_LIBIBERTY) maybe-all-target-libtermcap # Other target modules. Warning, these are not well tested. configure-target-gperf: $(ALL_GCC_CXX) -all-target-gperf: maybe-all-target-libiberty maybe-all-target-libstdc++-v3 +all-target-gperf: $(ALL_TARGET_LIBIBERTY) maybe-all-target-libstdc++-v3 configure-target-qthreads: $(ALL_GCC_C) # Dependencies of maybe-foo on foo. These are used because, for example, @@ -1465,7 +1427,7 @@ configure-target-qthreads: $(ALL_GCC_C) # We use move-if-change so that it's only considered updated when it # actually changes, because it has to depend on a phony target. multilib.out: maybe-all-gcc - @r=`${PWD}`; export r; \ + @r=`${PWD_COMMAND}`; export r; \ echo "Checking multilib configuration..."; \ $(CC_FOR_TARGET) --print-multi-lib > multilib.tmp 2> /dev/null ; \ $(SHELL) $(srcdir)/move-if-change multilib.tmp multilib.out ; \ @@ -1491,12 +1453,6 @@ $(srcdir)/configure: @MAINT@ $(srcdir)/c # Special directives to GNU Make # ------------------------------ -# 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): - # Don't pass command-line variables to submakes. .NOEXPORT: MAKEOVERRIDES= diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/README-maintainer-mode binutils-2.14.90.0.5/README-maintainer-mode --- binutils-2.14.90.0.4.1/README-maintainer-mode 2001-03-23 13:52:00.000000000 -0800 +++ binutils-2.14.90.0.5/README-maintainer-mode 2003-07-23 08:08:08.000000000 -0700 @@ -3,7 +3,7 @@ Note that if you configure with --enable-maintainer-mode, you will need special versions of automake, autoconf, libtool and gettext. You will -find the sources for these in ftp://sourceware.cygnus.com/pub/binutils. +find the sources for these in ftp://sources.redhat.com/pub/binutils. Note - "make distclean" does not work with maintainer mode enabled. The Makefiles in the some of the po/ subdirectories depend upon the diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/ChangeLog binutils-2.14.90.0.5/bfd/ChangeLog --- binutils-2.14.90.0.4.1/bfd/ChangeLog 2003-05-23 07:18:52.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/ChangeLog 2003-07-23 08:08:08.000000000 -0700 @@ -1,3 +1,1176 @@ +2003-07-22 H.J. Lu + + * elflink.c (_bfd_elf_dynamic_symbol_p): Don't return TRUE for + weak symbols. + +2003-07-22 Nick Clifton + + * coffcode.h (coff_slurp_symbol_table): Add C_TCSYM and C_ECOML to + expected RS6000 storage classes. + +2003-07-21 H.J. Lu + + * elfxx-ia64.c (elfNN_ia64_size_dynamic_sections): Mark + output_bfd unused to silence gcc. + +2003-07-21 Nick Clifton + + * po/sv.po: Updated Swedish translation. + +2003-07-21 Alan Modra + + * elf-bfd.h (SYMBOL_REFERENCES_LOCAL, SYMBOL_CALLS_LOCAL): Use.. + (_bfd_elf_symbol_refs_local_p): ..this. Declare. + * elflink.c (_bfd_elf_symbol_refs_local_p): New function. + * elf32-i386.c (elf_i386_relocate_section): Remove h NULL test + now done in _bfd_elf_symbol_refs_local_p. + * elf32-ppc.c (ppc_elf_relocate_section): Likewise. + * elf64-ppc.c (ppc64_elf_relocate_section): Likewise. + * elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise. + +2003-07-18 H.J. Lu + + * elflink.c (_bfd_elf_dynamic_symbol_p): Undo the last change. + +2003-07-18 H.J. Lu + + * elf-bfd.h (SYMBOL_REFERENCES_LOCAL): Fix a typo. + (SYMBOL_CALLS_LOCAL): Likewise. + + * elflink.c (_bfd_elf_dynamic_symbol_p): Return TRUE + immediately if symbol isn't defined locally. + +2003-07-18 Richard Henderson + + * elflink.c (_bfd_elf_dynamic_symbol_p): New. + * elf-bfd.h (_bfd_elf_dynamic_symbol_p): Declare it. + (SYMBOL_REFERENCES_LOCAL, SYMBOL_CALLS_LOCAL): Use it. + * elf32-xtensa.c (xtensa_elf_dynamic_symbol_p): Likewise. + * elf64-alpha.c (alpha_elf_dynamic_symbol_p): Likewise. + * elf64-hppa.c (elf64_hppa_dynamic_symbol_p): Likewise. + * elfxx-ia64.c (elfNN_ia64_dynamic_symbol_p): Likewise. + Update all callers to provide the relocation being resolved. + +2003-07-17 Shaun Jackman + + * config.bfd (arm-wince-pe): Add -DARM_COFF_BUGFIX to + targ_cflags. + +2003-07-17 Nick Clifton + + * po/es.po: New Spanish translation. + * po/sv.po: New Swedish translation. + * po/opcodes.pot: Regenerate. + +2003-07-16 Richard Henderson + + * config.bfd, configure.host, configure.in: Remove ia64-aix support. + * elfxx-ia64.c, targets.c: Likewise. + +2003-07-16 Richard Henderson + + * elfxx-ia64.c (elfNN_ia64_dynamic_symbol_p): Properly return false + for symbols defined locally plus -Bsymbolic. Tidy logic. + +2003-07-15 Richard Sandiford + + * archures.c (bfd_mach_mips7000): New. + * bfd-in2.h: Regenerated. + * cpu-mips.c (arch_info_struct): Add an entry for mips:7000. + * elfxx-mips.c (mips_set_isa_flags): Handle bfd_mach_mips7000. + (mips_mach_extensions): Add an entry for it. + +2003-07-14 Nick Clifton + + * po/tr.po: Update with latest version. + * po/SRC-POTFILES.in: Regenerate. + * po/bfd.pot: Regenerate. + * Makfile.in: Regenerate. + * configure: Regenerate. + +2003-07-12 Jeff Baker + + * bfd/config.bfd (__QNXTARGET__): Define for Neutrino architectures. + * bfd/elf32-arm.h (ELF_MAXPAGESIZE): Set to 4k for Neutrino. + * bfd/elf32-sh.c (ELF_MAXPAGESIZE): Set to 4k for Neutrino. + * bfd/elf32-ppc.c (ELF_MAXPAGESIZE): Set to 4k for Neutrino. + +2003-07-12 Jeff Muizelaar + + * coffcode.h (coff_set_section_contents): Set the + IMAGE_FILE_32BIT_MACHINE flag for PE targets. + +2003-07-11 Richard Sandiford + + * bfd-in.h (bfd_h8300_pad_address): Declare. + * bfd-in2.h: Regenerate. + * cpu-h8300.c (bfd_h8300_pad_address): New function. + * coff-h8300.c (h8300_reloc16_estimate): Use it to canonicalize + addresses before checking whether they can be relaxed. + (h8300_reloc16_extra_cases): Likewise for the R_MOVL2 sanity check. + Don't complain about overflows in general 8-bit relocations. + * elf32-h8300.c (elf32_h8_relax_section): Use bfd_h8300_pad_address. + Fix handling of R_H8_DIR24A8. + +2003-07-11 Richard Sandiford + + * elf32-h8300.c: Convert function prototypes and definitions + to C90 syntax. + * coff-h8300.c: Likewise. + * cpu-h8300.c: Likewise. + +2003-07-11 Alan Modra + + * po/SRC-POTFILES.in: Regenerate. + * po/bfd.pot: Likewise. + +2003-07-10 Bob Wilson + + * elf32-xtensa.c (elf_xtensa_create_dynamic_sections): Create new + .got.loc section. Do not set SEC_ALLOC or SEC_LOAD flags for the + .xt.lit.plt section. + (elf_xtensa_size_dynamic_sections): Set size of the .got.loc section + and allocate memory for it. + (elf_xtensa_combine_prop_entries): Copy contents of .xt.lit output + section to the .got.loc section. + (elf_xtensa_finish_dynamic_sections): Fix up call to + elf_xtensa_combine_prop_entries and set DT_XTENSA_GOT_LOC_OFF to + the address of .got.loc. + (relax_property_section): Shrink .got.loc to match changes in any + literal table section. + (xtensa_is_property_section): Change to match + xtensa_get_property_section_name. + (xtensa_is_littable_section): New. + +2003-07-10 H.J. Lu + + * elfxx-ia64.c (IA64_HOWTO): Set dst_mask to -1 instead of + -1LL. + +2003-07-10 Alan Modra + + * Makefile.am (BFD32_BACKENDS): Add elf32-am33lin.lo. + (BFD32_BACKENDS_CFILES): elf32-am33lin.c not elf32-am33lin.lo. + Run "make dep-am". + * Makefile.in: Regenerate. + +2003-07-10 Alexandre Oliva + + 2001-09-12 Alexandre Oliva + * elf32-am33lin.c (ELF_MACHINE_CODE): Redefine to EM_MN10300. + (ELF_MACHINE_ALT1): Define to EM_CYGNUS_MN10300. + 2001-06-02 Nick Clifton + * elf32-am33lin.c: Rename global functions. + 2001-05-09 Alexandre Oliva + * config.bfd (am33_2.0, am33_2.0-*-linux*): Added. + * configure.in (bfd_elf32_am33lin_vec): Added. + * Makefile.am (BFD32_BACKENDS): Added elf32-am33lin.lo. + (elf32-am33lin.lo): List dependencies. + * aclocal.m4, configure, Makefile.in: Rebuilt. + * elf-m10300.c (TARGET_LITTLE_SYM, TARGET_LITTLE_NAME, + ELF_ARCH, ELF_MACHINE_CODE, ELF_MAXPAGESIZE): Define only if + ELF_ARCH was not defined before. + (elf_symbol_leading_char): Define if not defined. + * elf32-am33lin.c: Override the definitions above. + * targets.c (bfd_elf32_am33lin_vec): New. + +2003-07-09 Alexandre Oliva + + 2002-12-12 Alexandre Oliva + * elf-m10300.c (elf32_mn10300_link_hash_newfunc): Initialize + pcrel_relocs_copied. + 2001-12-13 Alexandre Oliva + * elf-m10300.c (ELF_DYNAMIC_INTERPRETER): Renamed from + ld-linux.so.2 to ld.so.1. + 2001-10-10 Alexandre Oliva + * elf-m10300.c (elf_mn10300_sizeof_plt0): New macro. + (_bfd_mn10300_elf_adjust_dynamic_symbol): Use it. + (_bfd_mn10300_elf_finish_dynamic_symbol): Likewise. + * elf-m10300.c (_bfd_mn10300_elf_size_dynamic_sections): Allocate + .rela.* section contents with bfd_zalloc. + 2001-09-25 Alexandre Oliva + * elf-m10300.c: Added declarations for functions missing them. + Merge some shared-library changes from the i386 back-end. Use + R_MN10300_RELATIVE instead of R_MN10300_PCREL32 and + R_MN10300_GLOB_DAT instead of R_MN10300_32 where appropriate. + (struct elf32_mn10300_link_hash_entry): Remove duplicates of + members of elf_link_hash_entry. Adjusted references. + (mn10300_elf_final_link_relocate): dynobj was already loaded + into a local variable, use it. + 2001-09-21 Nick Clifton + * elf-m10300.c: Add missing function prototypes. + 2001-08-24 Alexandre Oliva + * elf-m10300.c (mn10300_elf_relocate_section): Don't compute + relocation for dynamic relocations. + 2001-05-16 Alexandre Oliva + * reloc.c (BFD_RELOC_MN10300_GOTOFF24): New. + * elf-m10300.c: Introduce GOTPC16, GOTOFF24, GOTOFF16 and + PLT16, and rename GOTPC to GOTPC32 and GOTOFF to GOTOFF32. + (_bfd_mn10300_elf_create_dynamic_sections): Move creation ot PLT... + (_bfd_mn10300_elf_create_got_section): ... here, so that its + adress is already known at the time we compute relaxations. + (mn10300_elf_relax_section): Relax GOTPC32, GOTOFF32, GOT32 + and PLT32 to narrower relocations. + * libbfd.h, bfd-in2.h: Rebuilt. + 2001-04-12 Alexandre Oliva + * reloc.c (BFD_RELOC_MN10300_GOT32, BFD_RELOC_MN10300_GOT24, + BFD_RELOC_MN10300_GOT16, BFD_RELOC_MN10300_COPY, + BFD_RELOC_MN10300_GLOB_DAT, BFD_RELOC_MN10300_JMP_SLOT, + BFD_RELOC_MN10300_RELATIVE): New relocs. + * libbfd.h, bfd-in2.h: Rebuilt. + * elf-m10300.c (struct elf_mn10300_pcrel_relocs_copied): New. + (struct elf32_mn10300_link_hash_entry): Added DSO-related + fields. + (elf_mn10300_howto): Defined new relocation types. + (mn10300_reloc_map): Map them. + (_bfd_mn10300_elf_create_got_section): New fn. + (mn10300_elf_check_relocs): Handle PIC relocs. + (mn10300_elf_final_link_relocate): Likewise. + (mn10300_elf_relocate_section): Handle DSOs. + (PLT0_ENTRY_SIZE, PLT_ENTRY_SIZE, PIC_PLT_ENTRY_SIZE): New macros. + (elf_mn10300_plt0_entry, elf_mn10300_plt_entry, + elf_mn10300_pic_plt_entry): New. + (elf_mn10300_sizeof_plt, elf_mn10300_plt_plt0_offset, + elf_mn10300_plt0_linker_offset, elf_mn10300_plt0_gotid_offset, + elf_mn10300_plt_temp_offset, elf_mn10300_plt_symbol_offset, + elf_mn10300_plt_reloc_offset: New macros. + (ELF_DYNAMIC_INTERPRETER): Likewise. + (_bfd_mn10300_elf_create_dynamic_sections): New function. + (_bfd_mn10300_elf_adjust_dynamic_symbol): Likewise. + (_bfd_mn10300_elf_discard_copies): Likewise. + (_bfd_mn10300_elf_size_dynamic_sections): Likewise. + (_bfd_mn10300_elf_finish_dynamic_symbol): Likewise. + (_bfd_mn10300_elf_finish_dynamic_sections): Likewise. + (elf_backend_can_gc_sections, + elf_backend_create_dynamic_sections, + elf_backend_adjust_dynamic_sections, + elf_backend_size_dynamic_sections, + elf_backend_finish_dynamic_symbol, + elf_backend_finish_dynamic_sections, elf_backend_want_got_plt, + elf_backend_plt_readonly, elf_backend_want_plt_sym, + elf_backend_got_header_size, elf_backend_plt_header_size): New + macros. + +2003-07-09 Alexandre Oliva + + 2001-05-06 Alexandre Oliva + * elf-m10300.c (compute_function_info): Account for AM33 + registers in `movm' when computing stack space for `call' when + linking for AM33/2.0 link. + 2000-04-01 Alexandre Oliva + * archures.c (bfd_mach_am33_2): Renamed from bfd_mach_am332. + * bfd-in2.h: Rebuilt. + * cpu-m10300.c (bfd_am33_2_arch): Renamed from bfd_am332_arch. + * elf-m10300.c: Updated. + 2000-03-31 Alexandre Oliva + * archures.c (bfd_mach_am332): Defined. + * bfd-in2.h: Rebuilt. + * cpu-m10300.c (bfd_am332_arch): Defined. + (bfd_am33_arch): Chained with am33-2. + * elf-m10300.c (elf_mn10300_mach): Handle am332. + (_bfd_mn10300_elf_final_write_processing): Likewise. + +2003-07-09 H.J. Lu + + * elfxx-ia64.c (IA64_HOWTO): Set dst_mask to -1LL. + +2003-07-10 Alan Modra + + * elf64-ppc.c (bfd_elf64_mkobject): Define. + (struct ppc64_elf_obj_tdata): New. + (ppc64_elf_tdata, ppc64_tlsld_got): Define. + (ppc64_elf_mkobject): New function. + (struct got_entry): Add "owner". Move "tls_type". + (struct ppc_link_hash_table): Delete "relgot", "tlsld_got". + (ppc64_elf_init_stub_bfd): New function. + (create_got_section): Create header .got in dynobj. Create .got + and .rela.got in each bfd. Stash pointers in ppc64_elf_obj_tdata. + (ppc64_elf_create_dynamic_sections): Don't call create_got_section. + Look for dynobj .got, and test it. + (ppc64_elf_copy_indirect_symbol): Adjust for changed got. + (update_local_sym_info): Likewise. + (ppc64_elf_check_relocs): Likewise. + (ppc64_elf_gc_sweep_hook): Likewise. + (ppc64_elf_tls_optimize): Likewise. + (allocate_dynrelocs): Likewise. + (ppc64_elf_size_dynamic_sections): Likewise. + (ppc64_elf_relocate_section): Likewise. + (ppc64_elf_next_toc_section): Update comment. + (toc_adjusting_stub_needed): Remove unneeded cast. + (ppc64_elf_build_stubs): Check for stub sections in stub bfd by + testing section flags. + (ppc64_elf_build_stubs): Likewise. + (ppc64_elf_size_stubs): Likewise. Remove stub_bfd param. + (ppc64_elf_finish_dynamic_sections): Write out got sections. + (func_desc_adjust): Copy over dynamic info for undef weaks. + * elf64-ppc.h (ppc64_elf_init_stub_bfd): Declare. + (ppc64_elf_size_stubs): Update prototype. + * elflink.h (elf_link_sort_relocs): Use link_orders to find reldyn + input sections rather than scanning dynobj. + +2003-07-09 Richard Sandiford + + * elfxx-mips.c (mips_elf_link_hash_entry): Remove min_dyn_reloc_index. + (bfd_mips_elf_swap_msym_in, bfd_mips_elf_swap_msym_out): Delete. + (mips_elf_create_msym_section): Delete. + (mips_elf_create_dynamic_relocation): Don't set min_dyn_reloc_index. + (_bfd_mips_elf_copy_indirect_symbol): Likewise. + (_bfd_mips_elf_create_dynamic_sections): Don't create .msym. + (_bfd_mips_elf_size_dynamic_sections): Don't calculate its size. + (_bfd_mips_elf_size_dynamic_sections): Don't add DT_MIPS_MSYM. + (_bfd_mips_elf_finish_dynamic_symbol): Don't add symbols to .msym. + (_bfd_mips_elf_finish_dynamic_sections): Likewise. + +2003-07-09 Richard Sandiford + + * elfxx-mips.c (mips_elf_irix6_finish_dynamic_symbol): Make the + symbols protected. + +2003-07-09 Richard Sandiford + + * elfxx-mips.c (mips_elf_create_dynamic_relocation): Fix handling + of relocations whose offset is -2. + +2003-07-09 Richard Sandiford + + * bfd/elfxx-mips.c (mips_elf_create_dynamic_relocation): Treat + forced-local symbols like other locals. Don't create relocations + against STN_UNDEF in irix objects. + +2003-07-09 Richard Sandiford + + * bfd/elfxx-mips.c (mips_elf_create_dynamic_relocation): In SGI- + compatible objects, add the values of defined external symbols + to the addend. + +2003-07-09 Richard Sandiford + + * elfxx-mips.c (_bfd_mips_elf_finish_dynamic_symbol): Always + initialize a GOT entry to the symbol's st_value. + +2003-07-08 Alan Modra + + * elf-bfd.h (struct elf_obj_tdata): Move linker_section_pointers.. + * elf32-ppc.c (struct ppc_elf_obj_tdata): ..to here. New. + (ppc_elf_tdata): Define. + (elf_local_ptr_offsets): Adjust. + (ppc_elf_mkobject): New function. + (bfd_elf32_mkobject): Define. + + * elfcode.h (elf_object_p): Allocate tdata via _bfd_set_format. + * elfcore.h (elf_core_file_p): Likewise. + * section.c (bfd_section_init): Remove prototype. + +2003-07-08 Alan Modra + + * elf-bfd.h (struct elf_link_hash_entry): Remove linker_section_pointer + field. + (enum elf_linker_section_enum): Delete. + (struct elf_linker_section): Delete. + (struct elf_linker_section_pointers): Delete. + (struct elf_obj_tdata): Remove #if 0 chunk. Remove linker_section. + Make linker_section_pointers a void**. + (elf_local_ptr_offsets, elf_linker_section): Don't define. + * elf32-ppc.c (enum elf_linker_section_enum): New, cut-down version + of old item in elf-bfd.h. + (struct elf_linker_section): Likewise. + (struct elf_linker_section_pointers): Likewise. + (elf_local_ptr_offsets): Define. + (struct ppc_elf_link_hash_entry): Add linker_section_pointer. + (ppc_elf_link_hash_newfunc): Init it. + (struct ppc_elf_link_hash_table): Add sbss. + (ppc_elf_link_hash_table_create): zmalloc rather than clearing + individual fields. + (elf_create_linker_section): Fold into.. + (ppc_elf_create_linker_section): ..here. Remove hole_size code. + Make rela section here if shared. + (elf_find_pointer_linker_section): Pass lsect rather than enum. + (elf_create_pointer_linker_section): Adjust. zalloc rather than + clearing in a loop. + (elf_finish_pointer_linker_section): Adjust. Don't make rela + section here. + (ppc_elf_check_relocs): Adjust. + (ppc_elf_add_symbol_hook): Tighten hash creator test. Remove code + creating .sbss by hand. + * elf.c (_bfd_elf_link_hash_newfunc): Adjust. + +2003-07-04 Jakub Jelinek + + * elf32-s390.c (elf_howto_table): Change R_390_GOT12 to + complain_overflow_bitfield. + * elf64-s390.c (elf_howto_table): Change R_390_GOT12 to + complain_overflow_bitfield. + +2003-07-04 Jakub Jelinek + + * elf-bfd.h (SYMBOL_REFERENCES_LOCAL, SYMBOL_CALLS_LOCAL): Return + true even if -pie. + +2003-07-04 Jakub Jelinek + + * elfxx-ia64.c (struct elfNN_ia64_link_hash_table): Add rel_fptr_sec. + (elfNN_ia64_dynamic_symbol_p): Change info->shared into + !info->executable. + (get_fptr): For -pie create .opd as writable section and create + .rela.opd as well. + (elfNN_ia64_check_relocs): Change info->shared into + !info->executable. + (allocate_fptr): Likewise. + (allocate_dynrel_entries): Account for a relative reloc for -pie + @fptr(). Don't account for a relative reloc if -pie want_ltoff_fptr + for undefweak symbol. Account for an IPLT reloc in .rela.opd + section if -pie. + (set_got_entry): Don't create a relative reloc if -pie + want_ltoff_fptr for undefweak symbol. + (set_fptr_entry): Emit an IPLT reloc in .rela.opd for -pie. + (elfNN_ia64_relocate_section): Emit a relative reloc for -pie + @fptr(). + + * elfxx-ia64.c (elfNN_ia64_relocate_section): Issue undefined_symbol + even if -pie. + * elf32-i386.c (elf_i386_relocate_section): Likewise. + * elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise. + * elf64-sparc.c (sparc64_elf_relocate_section): Likewise. + * elf64-s390.c (elf_s390_relocate_section): Likewise. + * elf64-ppc.c (ppc64_elf_relocate_section): Likewise. + * elf64-alpha.c (elf64_alpha_relocate_section): Likewise. + * elf32-sparc.c (elf32_sparc_relocate_section): Likewise. + * elf32-s390.c (elf_s390_relocate_section): Likewise. + * elf32-ppc.c (ppc_elf_relocate_section): Likewise. + +2003-07-04 Paul Clarke + + * elf32-h8300.c (R_H8_DIR32A16): Fix name field. + (elf32_h8_relax_section) : Adjust position of relocation. + : Fix type of relocation. + +2003-07-04 Kaz Kojima + + * elf32-sh.c (sh_elf_create_dynamic_sections): Return if dynamic + sections were created already. Remove unnecessary tests of + the previous change. + +2003-07-04 Kaz Kojima + + * elf32-sh.c (sh_elf_create_dynamic_sections): Don't call + bfd_make_section for existing sections. + +2003-07-04 Alan Modra + + * elf32-sparc.c (elf32_sparc_check_relocs): Don't call + create_got_section if we already have done so. + * elf32-sh.c (sh_elf_create_dynamic_sections): Likewise. + (sh_elf_check_relocs): Likewise. + (sh_elf_adjust_dynamic_symbol): Delete "dynobj" var. Use + htab->root.dynobj instead. + (sh_elf_check_relocs): Likewise. + (sh_elf_finish_dynamic_sections): Likewise. + + * section.c (bfd_make_section): Return NULL for existing section. + +2003-07-04 Alan Modra + + * elf32-ppc.c (ppc_elf_create_dynamic_sections): Don't call + ppc_elf_create_got if we've already done so. + + * elf-bfd.h (_bfd_elf_create_linker_section) Don't declare. + (_bfd_elf_find_pointer_linker_section): Likewise. + (bfd_elf32_create_pointer_linker_section): Likewise. + (bfd_elf32_finish_pointer_linker_section): Likewise. + (bfd_elf64_create_pointer_linker_section): Likewise. + (bfd_elf64_finish_pointer_linker_section): Likewise. + (_bfd_elf_make_linker_section_rela): Likewise. + * elfcode.h (elf_create_pointer_linker_section): Don't define. + (elf_finish_pointer_linker_section): Likewise. + * elflink.c (_bfd_elf_make_linker_section_rela): Delete. + (_bfd_elf_create_linker_section): Move this function.. + (_bfd_elf_find_pointer_linker_section): ..and this.. + * elflink.h (elf_create_pointer_linker_section): ..and this.. + (elf_finish_pointer_linker_section): ..and this.. + * elf32-ppc.c: ..to here, renaming to the following, and adjusting + calls. + (elf_create_linker_section): Convert to C90, tidy. + (elf_find_pointer_linker_section): Likewise. + (elf_create_pointer_linker_section): Likewise. + (elf_finish_pointer_linker_section): Likewise. + * elf32-i370.c: Delete #if 0 code. + +2003-07-02 Alan Modra + + * elf64-ppc.c (ppc64_elf_func_desc_adjust): Don't allow _savef* and + _restf* to be satisfied by shared libs, and always force them local. + (toc_adjusting_stub_needed): Avoid scanning linker created sections. + Correct test for "bl". + (ppc64_elf_relocate_section ): Correct test for + primary opcode 31. + +2003-07-01 Martin Schwidefsky + + * elf32-s390.c (s390_elf_ldisp_reloc): New prototype. + (s390_tls_reloc): New function. + (elf_howto_table): Add long displacement relocations R_390_20, + R_390_GOT20, R_390_GOTPLT20 and R_390_TLS_GOTIE20. + (elf_s390_reloc_type_lookup): Likewise. + (elf_s390_check_relocs): Likewise. + (elf_s390_gc_sweep_hook): Likewise. + (elf_s390_relocate_section): Likewise. + * elf64-s390.c: Same changes as for elf32-s390.c. + * reloc.c: Add long displacement relocations BFD_RELOC_390_20, + BFD_RELOC_390_GOT20, BFD_RELOC_390_GOTPLT20 and + BFD_RELOC_390_TLS_GOTIE20. + * bfd-in2.h: Regenerate. + * libbfd.h: Likewise. + +2003-06-30 Alan Modra + + * cpu-ia64-opc.c (ext_imms_scaled): Don't sign extend using shifts. + (ins_imms, ins_immsm1u4): Likewise. Warning fix. + +2003-06-29 Alan Modra + + * archive.c: Convert to C90, remove unnecessary prototypes and casts. + Replace PTR with void *. Formatting. + * archive64.c: Likewise. + * archures.c: Likewise. + * bfd-in.h: Likewise. + * bfd.c: Likewise. + * bfdio.c: Likewise. + * bfdwin.c: Likewise. + * cache.c: Likewise. + * corefile.c: Likewise. + * format.c: Likewise. + * init.c: Likewise. + * libbfd-in.h: Likewise. + * libbfd.c: Likewise. + * linker.c: Likewise. + * opncls.c: Likewise. + * reloc.c: Likewise. + * section.c: Likewise. + * simple.c: Likewise. + * syms.c: Likewise. + * targets.c: Likewise. + * bfd-in2.h: Regenerate. + * libbfd.h: Regenerate. + + * ecoff.c (bfd_debug_section): Add missing kept_section initialization. + * libbfd-in.h (_bfd_sh_align_load_span): Don't declare if defined. + * libbfd.c (COERCE32, EIGHT_GAZILLION): Simplify. + (bfd_getb64): Rewrite without parens. + (bfd_getl64, bfd_getb_signed_64, bfd_getl_signed_64): Likewise. + * cache.c (insert, snip): Remove INLINE. + * linker.c (bfd_link_add_undef): Likewise. + +2003-06-29 Andreas Jaeger + + * elf64-x86-64.c: Convert to ISO C90 prototypes, remove + unnecessary prototypes. Replace PTR with void *. + (elf64_x86_64_adjust_dynamic_symbol): Use SYMBOL_CALLS_LOCAL to + trim plt entries. Move undefweak non-default visibility test ... + (allocate_dynrelocs): ... from here. + (WILL_CALL_FINISH_DYNAMIC_SYMBOL): Pass SHARED instead of INFO. + Change all callers. + (allocate_dynrelocs): Use SYMBOL_CALLS_LOCAL. Use + SYMBOL_REFERENCES_LOCAL for dynreloc check. + (elf64_x86_64_relocate_section): Use SYMBOL_CALLS_LOCAL for + dynreloc and .got relocs. + (elf64_x86_64_finish_dynamic_symbol): Use SYMBOL_REFERENCES_LOCAL + for .got relocs. + +2003-06-29 Thiemo Seufer + + * elfxx-mips.c: Allow lazy binding for R_MIPS_JALR. + +2003-06-27 Nick Clifton + + * opncls.c (bfd_add_gnu_debuglink_section): Rename to + bfd_add_gnu_debuglink_section and only create the section, do not + fill in its contents. + (bfd_fill_in_gnu_debuglink_section): New function. Fill in the + contents of a .gnu-debuglink section. + * bfd-in2.h: Regenerate. + +2003-06-27 Thiemo Seufer + + * elfxx-mips.c: Revert .got alignment to 2**4. + +2003-06-27 Thiemo Seufer + + * elf32-mips.c: Fix addend for _gp_disp special symbol. + +2003-06-27 Thiemo Seufer + + * elfxx-mips.c (_bfd_mips_elf_fake_sections): Remove non-default + relocation header setup. + +2003-06-25 Alan Modra + + * elf32-ppc.c (ppc_elf_howto_table): Remove unnecessary cast. + (ppc_elf_reloc_type_lookup): Modify comment. + (ppc_elf_info_to_howto): Ditto. + (ppc_elf_relocate_section): Ditto. + (ppc_elf_check_relocs): Call ppc_elf_howto_init. + +2003-06-25 Alan Modra + + * aout-ns32k.c: Correct spelling of "relocatable". + * aoutx.h: Likewise. + * bfd-in.h: Likewise. + * bfd.c: Likewise. + * bout.c: Likewise. + * coff-a29k.c: Likewise. + * coff-alpha.c: Likewise. + * coff-arm.c: Likewise. + * coff-i386.c: Likewise. + * coff-i860.c: Likewise. + * coff-i960.c: Likewise. + * coff-m68k.c: Likewise. + * coff-m88k.c: Likewise. + * coff-mcore.c: Likewise. + * coff-mips.c: Likewise. + * coff-or32.c: Likewise. + * coff-ppc.c: Likewise. + * coff-rs6000.c: Likewise. + * coff-sh.c: Likewise. + * coff-tic80.c: Likewise. + * coff64-rs6000.c: Likewise. + * cofflink.c: Likewise. + * cpu-ns32k.c: Likewise. + * ecoff.c: Likewise. + * ecofflink.c: Likewise. + * elf-bfd.h: Likewise. + * elf-eh-frame.c: Likewise. + * elf-hppa.h: Likewise. + * elf-m10200.c: Likewise. + * elf-m10300.c: Likewise. + * elf.c: Likewise. + * elf32-arm.h: Likewise. + * elf32-avr.c: Likewise. + * elf32-cris.c: Likewise. + * elf32-d10v.c: Likewise. + * elf32-dlx.c: Likewise. + * elf32-fr30.c: Likewise. + * elf32-frv.c: Likewise. + * elf32-h8300.c: Likewise. + * elf32-hppa.c: Likewise. + * elf32-i370.c: Likewise. + * elf32-i386.c: Likewise. + * elf32-i860.c: Likewise. + * elf32-i960.c: Likewise. + * elf32-ip2k.c: Likewise. + * elf32-iq2000.c: Likewise. + * elf32-m32r.c: Likewise. + * elf32-m68hc11.c: Likewise. + * elf32-m68hc1x.c: Likewise. + * elf32-m68k.c: Likewise. + * elf32-mcore.c: Likewise. + * elf32-mips.c: Likewise. + * elf32-msp430.c: Likewise. + * elf32-openrisc.c: Likewise. + * elf32-ppc.c: Likewise. + * elf32-s390.c: Likewise. + * elf32-sh.c: Likewise. + * elf32-sh64.c: Likewise. + * elf32-sparc.c: Likewise. + * elf32-v850.c: Likewise. + * elf32-vax.c: Likewise. + * elf32-xstormy16.c: Likewise. + * elf32-xtensa.c: Likewise. + * elf64-alpha.c: Likewise. + * elf64-hppa.c: Likewise. + * elf64-mips.c: Likewise. + * elf64-mmix.c: Likewise. + * elf64-ppc.c: Likewise. + * elf64-s390.c: Likewise. + * elf64-sh64.c: Likewise. + * elf64-sparc.c: Likewise. + * elf64-x86-64.c: Likewise. + * elfcode.h: Likewise. + * elflink.h: Likewise. + * elfn32-mips.c: Likewise. + * elfxx-ia64.c: Likewise. + * elfxx-mips.c: Likewise. + * i386linux.c: Likewise. + * ieee.c: Likewise. + * libcoff-in.h: Likewise. + * linker.c: Likewise. + * m68klinux.c: Likewise. + * pdp11.c: Likewise. + * pe-mips.c: Likewise. + * peXXigen.c: Likewise. + * reloc.c: Likewise. + * reloc16.c: Likewise. + * sparclinux.c: Likewise. + * sunos.c: Likewise. + * syms.c: Likewise. + * versados.c: Likewise. + * vms.c: Likewise. + * xcofflink.c: Likewise. + * bfd-in2.h: Regenerate. + * libcoff.h: Regenerate. + * libbfd.h: Regenerate. + +2003-06-24 Alan Modra + + * elf32-ppc.c (ppc_elf_check_relocs): Report plt reloc against + local sym errors. + + * elf32-i386.c: Convert to C90 function definitions, remove unnecessary + prototypes and casts. Replace PTR with void *. Formatting. + * elf32-ppc.c: Likewise. Break long strings too. + (ppc_elf_relax_section): Use enum elf_ppc_reloc_type for r_type. + (ppc_elf_unhandled_reloc): Internationalize error message. + * elf32-ppc.h: Remove PARAMS. + +2003-06-23 Mark Mitchell + + * elf32-ppc.c (ppc_elf_begin_write_processing): Use bytes to count + APUinfo slots. + (ppc_elf_final_write_processing): Likewise. + +2003-06-23 H.J. Lu + + * elflink.h (elf_link_input_bfd): Check raw size when using + kept_section to preserve debug information discarded by + linkonce. + +2003-06-20 Alan Modra + + * elf64-ppc.c (struct ppc_link_hash_table): Add top_id. + (ppc64_elf_setup_section_lists): Set it. + (ppc64_elf_relocate_section): Check sym section id against top_id. + (ppc_build_one_stub): Comment on top_id. + +2003-06-20 Ralf Corsepius + + * config.bfd: Add tic4x-*-rtems*. + +2003-06-20 Alan Modra + + * elf64-ppc.c: Convert to C90 function definitions, remove unnecessary + prototypes and casts. Replace PTR with void *. Format copyright. + Mention ABI links. + (struct ppc_link_hash_table): Rename sgot, srelgot, splt, srelplt, + sdynbss, srelbss, sglink, sbrlt and srelbrlt to got, relgot .. relbrlt. + (ppc_type_of_stub): Make r_type an enum. + (ppc64_elf_size_stubs): Likewise. + * elf64-ppc.h: Remove PARAMS macro. + +2003-06-19 Alan Modra + + * elf64-ppc.c (ppc64_elf_link_hash_table_create): Reinstate init of + elf hash tab fields. + + * elf64-ppc.c (ppc64_elf_reloc_type_lookup): Tidy prototype. + (ppc64_elf_info_to_howto): Likewise. + (ppc64_elf_build_stubs): Add "stats" param, and print statistics. + * elf64-ppc.h (ppc64_elf_build_stubs): Adjust prototype. + +2003-06-19 Alan Modra + + * elf64-sparc.c (sparc64_elf_relocate_section): Ignore R_SPARC_DISP32 + reloc overflow on discarded eh_frame entries. + +2003-06-19 Alan Modra + + * elf64-ppc.c (toc_adjusting_stub_needed): New function. + (ppc64_elf_next_input_section): Use it here to set has_gp_reloc. + Return error condition. + (ppc64_elf_size_stubs): Restrict toc adjusting stubs to sections + that have has_gp_reloc set. + (struct ppc_link_hash_table): Add stub_count. + (ppc_build_one_stub): Increment it. + (ppc64_elf_link_hash_table_create): zmalloc rather than clearing + individual fields. + * elf64-ppc.h (ppc64_elf_next_input_section): Update prototype. + +2003-06-18 Alan Modra + + * elflink.h (elf_gc_record_vtentry): Revert last change. Correct + size calculation from addend. Round size up. + +2003-06-18 Hans-Peter Nilsson + + * elf32-cris.c (cris_elf_relocate_section) : When linking a program, don't complain about a + symbol from a normal object or an undefined weak symbol. + +2003-06-18 Alan Modra + + * elf64-ppc.c (ppc64_elf_relocate_section): Accept a symbol on + R_PPC64_TOC relocs. + +2003-06-17 H.J. Lu + + * section.c (struct sec): Put back kept_section. + (STD_SECTION): Put back kept_section initialization. + * bfd-in2.h: Regenerate. + + * elflink.h (elf_link_input_bfd): Also check discarded linkonce + sections for relocateable output. Use kept_section to preserve + debug information discarded by linkonce. + +2003-06-17 Roland McGrath + + * elfxx-ia64.c (elfNN_ia64_relocate_section): Support + segment-relative relocation between different segments. + +2003-06-17 Alan Modra + + * elf64-ppc.c (ppc64_elf_relocate_section): Do unaligned reloc + optimizations earlier. + + * elf64-ppc.c (struct ppc_link_hash_table): Reinstate top_index. + Restore previous input_list type. + (ppc64_elf_link_hash_table_create): Undo last change. + (ppc64_elf_setup_section_lists): Reinstate code setting up input lists + per output section, but don't bother with bfd_abs_section marker. + (ppc64_elf_next_input_section): Adjust for multiple input section + lists. + (group_sections): Likewise. + +2003-06-17 Jakub Jelinek + + * elf64-ppc.c (ppc64_elf_relocation_section): Ensure + *r_offset == r_addend for RELATIVE relocs against .got. + +2003-06-17 Alan Modra + + * elf64-ppc.c (ppc64_elf_relocate_section): Optimize unaligned relocs. + +2003-06-17 Nick Clifton + + * elflink.h (elf_gc_record_vtentry): Allocate an extra element + in the vtable_entries_used array to allow for the accessing + the largest element. + +2003-06-17 Alan Modra + + * elf64-ppc.c (struct ppc_link_hash_table): Remove top_index. Modify + input_list. + (ppc64_elf_link_hash_table_create): Init input_list here. + (ppc64_elf_setup_section_lists): Remove code setting up input lists + per output section. Set toc_off for abs and other standard sections. + (ppc64_elf_reinit_toc): Don't set elf_gp on input bfds lacking a toc. + (ppc64_elf_next_input_section): Adjust for single input section list. + Don't set toc_curr from input bfds that haven't set elf_gp. + (group_sections): Adjust for single input section list. + + * elf64-ppc.c (ppc64_elf_relocate_section): Correct pcrel section zero. + +2003-06-16 Alan Modra + + * elf64-ppc.c (ppc64_elf_relocate_section): When optimizing toctprel + tls, check that a TOC16_DS or TOC16_LO_DS reloc isn't pointing to a + dtprel entry. Ensure TLS_LD DTPMOD reloc has a zero addend. Write + got section for RELATIVE relocs. Fix wrong comment. Change condition + under which dynamic relocs update the section contents. + +2003-06-13 Robert Millan + + * config.bfd: Add i386-netbsd-gnu target. + +2003-06-12 Nick Clifton + + * opncls.c (calc_crc32): Rename to + bfd_calc_gnu_debuglink_crc32 and export. + (GNU_DEBUGLINK): Define and use to replace occurrences of + hard-coded ".gnu_debuglink" in the code. + (get_debug_link_info): Prevent aborts by replacing call to + xmalloc with a call to malloc. + (find_separate_debug_file): Prevent aborts by replacing calls + to xmalloc and xstrdup with calls to malloc and strdup. + (bfd_add_gnu_debuglink): New function. Add a .gnu_debuglink + section to a bfd. + * bfd-in2.h: Regenerate. + +2003-06-12 Federico G. Schwindt + + * config.bfd (i[3-7]86-*-openbsd[0-2].* | i[3-7]86-*-openbsd3.[0-3]): + New target (was i[3-7]86-*-openbsd* before). + (i[3-7]86-*-openbsd*): Change to use bfd_elf32_i386_vec. + (vax-*-openbsd*): New target. + +2003-06-11 Thiemo Seufer + + * elfxx-mips.c (MIPS_ELF_OPTIONS_SECTION_NAME): Use .MIPS.options + for n32, too. + (MIPS_ELF_STUB_SECTION_NAME): Use .MIPS.stubs for n32, too. + (mips_elf_rel_dyn_section): Use appropriate section alignment. + (mips_elf_create_got_section): Likewise. + (_bfd_mips_elf_create_dynamic_sections): Likewise. + +2003-06-11 Thiemo Seufer + + * elf32-mips.c (mips_elf_generic_reloc): New Function. + (elf_mips_howto_table_rel): Use it. + (gprel32_with_gp): Move prototype. + (mips_elf_hi16_reloc): Check for ! BSF_LOCAL instead of zero addend. + Use mips_elf_generic_reloc. + (mips_elf_got16_reloc): Check for ! BSF_LOCAL instead of zero addend. + Code cleanup. + (_bfd_mips_elf32_gprel16_reloc): Check for ! BSF_LOCAL instead of + zero addend. + (mips_elf_gprel32_reloc): Likewise. Use the same GP assignment logic + as in the other *_gprel*_reloc functions. + (gprel32_with_gp): Handle partial_inplace properly. + (mips32_64bit_reloc): Use mips_elf_generic_reloc. + (mips16_gprel_reloc): Check for ! BSF_LOCAL instead of zero addend. + Do addend handling directly instead of calling + _bfd_mips_elf_gprel16_with_gp. Handle partial_inplace properly. + * elf64-mips.c (mips_elf64_hi16_reloc): Check for ! BSF_LOCAL instead + of zero addend. Handle partial_inplace properly. + (mips_elf64_got16_reloc): Check for ! BSF_LOCAL instead of zero + addend. + (mips_elf64_gprel16_reloc): Likewise. + (mips_elf64_literal_reloc): Likewise. + (mips_elf64_gprel32_reloc): Likewise. Use the same GP assignment + logic as in the other *_gprel*_reloc functions. Handle + partial_inplace properly. + (mips_elf64_shift6_reloc): Check for ! BSF_LOCAL instead of zero + addend. Handle partial_inplace properly. + (mips16_gprel_reloc): Likewise. Do addend handling directly instead + of calling _bfd_mips_elf_gprel16_with_gp. + * elfn32-mips.c (mips_elf_got16_reloc): Check for BSF_LOCAL. + (mips_elf_gprel32_reloc): Check for ! BSF_LOCAL instead + of zero addend. + (mips_elf_shift6_reloc): Handle partial_inplace properly. + (mips16_gprel_reloc): Likewise. Do addend handling directly instead + of calling _bfd_mips_elf_gprel16_with_gp. + * elfxx-mips.c (_bfd_mips_elf_gprel16_with_gp): Handle + partial_inplace properly. Fix wrong addend handling. Fix overflow + check. + (_bfd_mips_elf_sign_extend): Renamed from mips_elf_sign_extend and + exported. + (mips_elf_calculate_relocation): Use _bfd_mips_elf_sign_extend. + (_bfd_mips_elf_relocate_section): Likewise. + (mips_elf_create_dynamic_relocation): Update sec_info_type access. + * elfxx-mips.h (_bfd_mips_relax_section): Fix prototype declaration. + (_bfd_mips_elf_sign_extend): New prototype. + +2003-06-11 Federico G. Schwindt + + * config.bfd (sparc-*-openbsd[0-2].* | sparc-*-openbsd3.[0-1]): + New target (was sparc-*-openbsd* before). + (sparc-*-openbsd*): Change to use bfd_elf32_sparc_vec. + + * configure.in (vax-*-openbsd*): Set COREFILE to netbsd-core.lo. + * configure: Regenerate. + +2003-06-11 H.J. Lu + + * po/Make-in (DESTDIR): New. + (install-data-yes): Support $(DESTDIR). + (uninstall): Likewise. + +2003-06-11 Alan Modra + + * Makefile.am (config.status): Depend on version.h. + Run "make dep-am". + * Makefile.in: Regenerate. + * po/SRC-POTFILES.in: Regenerate. + +2003-06-10 Alan Modra + Gary Hade + + * elf64-ppc.c (ppc64_elf_relocate_section <*_DS>): Special case lq. + +2003-06-10 Richard Sandiford + + * archures.c (bfd_mach_h8300sxn): New architecture. + * bfd-in2.h: Regenerate. + * cpu-h8300.c (h8300_scan): Check for 'sxn'. + (h8300sxn_info_struct): New. + (h8300sx_info_struct): Link to it. + * elf32-h8300.c (elf32_h8_mach): Add h8300sxn case. + (elf32_h8_final_write_processing): Likewise. + +2003-06-08 Alan Modra + + * elf64-ppc.c: Move TARGET_LITTLE_SYM and other macros used by + elfxx-target.h so that we can use elf_backend_got_header_size. + (ELF_MACHINE_ALT1, ELF_MACHINE_ALT2): Delete. + (GLINK_CALL_STUB_SIZE): Modify. Define new glink call stub and + associated macros. + (ppc64_elf_howto_raw ): Correct + dst_mask. + (enum ppc_stub_type): Add ppc_stub_long_branch_r2off and + ppc_stub_plt_branch_r2off. + (struct ppc_stub_hash_entry): Reorganize. + (struct ppc_link_hash_table): Add no_multi_toc, multi_toc_needed, + toc_curr, toc_off and emit_stub_syms. + (ppc64_elf_link_hash_table_create): Init them. + (ppc_stub_name): Correct string size. + (ppc64_elf_check_relocs): Set has_gp_reloc on GOT and TOC relocs. + (ppc64_elf_size_dynamic_sections): Set no_multi_toc if GOT entries + used. + (ppc_type_of_stub): Tweak root.type test. + (build_plt_stub): Remove glink code. Adjust for insn macro changes. + (ppc_size_one_stub): Handle ppc_stub_long_branch_r2off and + ppc_stub_plt_branch_r2off. + (ppc_build_one_stub): Likewise. Fix var shadowing. Correct addis,addi + range test. Use toc_off to calculte r2 values. Handle emit_stub_syms. + (ppc64_elf_setup_section_lists): Remove htab creator flavour test. + Initialize elf_gp and toc_curr. + (ppc64_elf_next_toc_section, ppc64_elf_reinit_toc): New functions. + (ppc64_elf_next_input_section): Set toc_off. + (group_sections): Ensure groups have the same TOC. + (ppc64_elf_size_stubs): Check whether we need a TOC adjusting stub. + (ppc64_elf_build_stubs): Add emit_stub_syms param, and stash in htab. + Build new glink stub. + (ppc64_elf_relocate_section): Handle multiple TOCs. Fix comments. + (ppc64_elf_finish_dynamic_sections): Adjust DT_PPC64_GLINK. + * elf64-ppc.h (ppc64_elf_build_stubs): Update prototype. + (ppc64_elf_next_toc_section, ppc64_elf_reinit_toc): Declare. + * section.c (struct sec): Rename flag12 to has_gp_reloc. + (STD_SECTION): Update. + * ecoff.c (bfd_debug_section): Update comment. + * bfd-in2.h: Regenerate. + +2003-06-05 Daniel Jacobowitz + + * elfcode.h (elf_slurp_reloc_table_from_section): Don't dereference + NULL function pointers. + +2003-06-05 Daniel Jacobowitz + + * simple.c (bfd_simple_get_relocated_section_contents): Call + _bfd_generic_link_add_symbols instead of bfd_link_add_symbols. + +2003-06-04 Svein E. Seldal + + * coff-tic54x.c: Removed the ticoff0_bad_format_hook() and + ticoff1_bad_format_hook() functions. Removed the coff0 and coff1 + swaptables. + * coff-tic4x.c: Ditto + * coffcode.h: Added extra arguments to CREATE_BIG_COFF_TARGET_VEC + and CREATE_LITTLE_COFF_TARGET_VEC. Created the macro + CREATE_BIGHDR_COFF_TARGET_VEC. Created the ticoff0_bad_format_hook(), + ticoff1_bad_format_hook() functions. Created the coff0 and coff1 + swap tables. + * coff-tic4x.c: Adopted new CREATE_xxx_COFF_TARGET_VEC macros. + * coff-a29k.c: Append COFF_SWAP_TABLE argument + * coff-apollo.c: Ditto + * coff-arm.c: Ditto + * coff-h8300.c: Ditto + * coff-h8500.c: Ditto + * coff-i960.c: Ditto + * coff-m68k.c: Ditto + * coff-m88k.c: Ditto + * coff-mcore.c: Ditto + * coff-sh.c: Ditto + * coff-sparc.c: Ditto + * coff-tic80.c: Ditto + * coff-we32k.c: Ditto + * coff-z8k.c: Ditto + * coff-w65.c: Ditto + +2003-06-04 Svein E. Seldal + + * coff-tic4x.c (ticoff0_swap_table, ticoff1_swap_table): Fixed + initialization bug + +2003-06-03 Jakub Jelinek + + * elf.c (_bfd_elf_print_private_bfd_data): Handle PT_GNU_STACK. + (bfd_section_from_phdr): Likewise. + (map_sections_to_segments): Create PT_GNU_STACK segment header. + (get_program_header_size): Count with PT_GNU_STACK. + * elf-bfd.h (struct elf_obj_tdata): Add stack_flags. + * elflink.h (bfd_elfNN_size_dynamic_sections): Set stack_flags. + +2003-06-03 H.J. Lu + + * elflink.h (elf_link_input_bfd): Call linker error_handler + for discarded definitions. + +2003-06-03 Elias Athanasopoulos + + * syms.c (decode_section_type): Return 'n' if section flags are + SEC_HAS_CONTENTS && SEC_READONLY. + +2003-06-03 Nick Clifton + + * elf32-v850.c (v850_elf_howto_t): Rename R_V850_32to + R_V850_ABS32. Add entry for R_V850_REL32. + (v850_elf_reloc_map): Likewise. + (v850_elf_check_relocs): Likewise. + (v850_elf_perform_relocation): Likewise. + (v850_elf_final_link_relocate): Likewise. Include computation + to make R_V850_REl32 pc-relative. + +2003-06-03 Kaz Kojima + + * elf32-sh.c (sh_elf_size_dynamic_sections): Create .interp section + and DT_DEBUG dynamic tag even for position independent executables. + * elf64-sh64.c (sh64_elf64_size_dynamic_sections): Likewize. + +2003-06-02 Daniel Jacobowitz + + * config.bfd: Move obsolete entries out of the range of the + targmatch sed script. + +2003-06-02 Daniel Jacobowitz + + * config.bfd (mips*-dec-bsd*, mips*-*-pe*): Mark as obsolete. + +2003-05-31 Jakub Jelinek + + * elf32-ppc.c (allocate_dynrelocs): Use single slot for first 8192 + plt entries, not just 8191. + +2003-05-30 Daniel Jacobowitz + + * elfxx-mips.c (_bfd_mips_elf_discard_info): Correct loop index. + Reported by Ken Faiczak . + +2003-05-30 Ulrich Drepper + Jakub Jelinek + + * elflink.h (elf_link_add_object_symbols): Use !info->executable + instead of info->shared where appropriate. + (bfd_elfNN_size_dynamic_sections, elf_link_output_extsym): Likewise. + * elflink.c (_bfd_elf_create_got_section): Likewise. + (_bfd_elf_link_create_dynamic_sections): Likewise. + (_bfd_elf_link_assign_sym_version): Likewise. + * elf32-i386.c (elf_i386_size_dynamic_sections): Create .interp section + and DT_DEBUG dynamic tag even for position independent executables. + * elf32-ppc.c (ppc_elf_size_dynamic_sections): Likewise. + * elf32-s390.c (elf_s390_size_dynamic_sections: Likewise. + * elf64-ppc.c (ppc64_elf_size_dynamic_sections: Likewise. + * elf64-s390.c (elf_s390_size_dynamic_sections: Likewise. + * elf64-x86-64.c (elf64_x86_64_size_dynamic_sections: Likewise. + * elfxx-ia64.c (elfNN_ia64_size_dynamic_sections: Likewise. + * elf32-sparc.c (elf32_sparc_size_dynamic_sections: Likewise. + * elf64-alpha.c (elf64_alpha_size_dynamic_sections: Likewise. + * elf64-sparc.c (sparc64_elf_size_dynamic_sections: Likewise. + +2003-05-30 Kris Warkentin + + * elf.c (elfcore_grok_nto_status): Only set lwpid for the active or + signalled thread. + (elfcore_grok_nto_gregs): Only make .reg section for the active thread. + +2003-05-29 Nick Clifton + + * pef.c: Include "safe-ctype.h" instead of . + Tidy up formatting. + * Makefile.am: Add dependency on safe-ctype.h. + * Makefile.in: Regenerate. + +2003-05-29 Thiemo Seufer + + * elfxx-mips.c: Don't force symbols local unconditionally. + +2003-05-28 Alan Modra + + * elf32-hppa.c (elf32_hppa_relocate_section): Delete bogus + undefined_symbol call. + +2003-05-27 Richard Sandiford + + * elfxx-mips.c (mips_elf_hash_sort_data): Fix formattting. + (mips_elf_link_hash_table): Likewise. + 2003-05-22 Thiemo Seufer * elf64-mips.c (elf_mips_gnu_rel16_s2): Add internally used @@ -31,7 +1204,7 @@ for X_STORMY16_REL_12 reloc. * elf.c (bfd_elf_get_needed_list): Use is_elf_hash_table to check - the type of the has table in the bfd_link_info structure. + the type of the hash table in the bfd_link_info structure. (bfd_elf_get_runpath_list): Likewise. 2003-05-19 Roland McGrath @@ -175,11 +1348,11 @@ * elf32-sh.c (sh_elf_adjust_dynamic_symbol): For weak symbols, copy ELF_LINK_NON_GOT_REF from weakdef. - (allocate_dynrelocs): For undef weak syms with non-default + (allocate_dynrelocs): For undef weak syms with non-default visibility, a) don't allocate plt entries, b) don't allocate .got relocs, c) discard dyn rel space - (sh_elf_relocate_section): d) don't generate .got relocs, e) - don't generate dynamic relocs. + (sh_elf_relocate_section): d) don't generate .got relocs, e) + don't generate dynamic relocs. (sh_elf_copy_indirect_symbol): Don't copy ELF_LINK_NON_GOT_REF for weakdefs when symbol already adjusted. @@ -911,7 +2084,7 @@ 2003-03-25 Stan Cox Nick Clifton - Contribute support for Intel's iWMMXt chip - an ARM variant: + Contribute support for Intel's iWMMXt chip - an ARM variant: * archures.c: Add bfd_mach_arm_iWMMXt. * reloc.c: Add BFD_RELOC_ARM_CP_OFF_IMM_S2. @@ -926,7 +2099,7 @@ * cpu-arm.c (processors): Add iWMMXt. (arch_inf): Likewise. * elf32-arm.h (arm_object_p): Handle note section. - (elf32_arm_merge_private_bfd_data): Allow iWMMXt object files to + (elf32_arm_merge_private_bfd_data): Allow iWMMXt object files to be linked with XScale ones. (elf32_arm_section_flags): New function: Set flags on note section. (elf32_arm_final_write_processing): Handle note section. @@ -1419,7 +2592,7 @@ variables, structure fields or function params to tls_mask or similar to better reflect usage. (struct got_entry): Comment. - (struct ppc_link_hash_entry): Expand comment, and renumber TLS_*. + (struct ppc_link_hash_entry): Expand comment, and renumber TLS_*. (get_tls_mask): Rename from get_tls_type. 2003-02-09 Alan Modra @@ -1770,13 +2943,11 @@ 2003-01-23 Nick Clifton * Add sh2e support: - 2002-04-02 Elena Zannoni - - * archures.c (bfd_mach_sh2e): Added. - * bfd-in2.h: Rebuilt. - * cpu-sh.c (arch_info_struct): Added SH2e. - * elf32-sh.c (sh_elf_set_mach_from_flags): Handle EF_SH2E. + * archures.c (bfd_mach_sh2e): Added. + * bfd-in2.h: Rebuilt. + * cpu-sh.c (arch_info_struct): Added SH2e. + * elf32-sh.c (sh_elf_set_mach_from_flags): Handle EF_SH2E. 2003-01-23 Alan Modra @@ -2144,7 +3315,7 @@ in a local var. Comment typo fixes. (h8300_bfd_link_add_symbols): Likewise. - * bfd/reloc.c (struct reloc_howto_struct): Revise src_mask and + * reloc.c (struct reloc_howto_struct): Revise src_mask and dst_mask comments. * bfd-in2.h: Regenerate. @@ -2691,7 +3862,7 @@ 2002-11-07 Michal Ludvig - * dwarf2.c (read_indirect_string, read_abbrevs, decode_line_info, + * dwarf2.c (read_indirect_string, read_abbrevs, decode_line_info, _bfd_dwarf2_find_nearest_line): Use bfd_simple_get_relocated_section_contents() instead of bfd_get_section_contents(). @@ -2891,8 +4062,8 @@ (aout_link_write_symbols): Cast enums in comparisons, int values to boolean, enums in assignments to int. (aout_link_input_section_std): Cast rel->r_index to unsigned int. - (aout_link_input_section_ext): Likewise. Cast enums used in comparisons - with unsigned ints. + (aout_link_input_section_ext): Likewise. Cast enums used in + comparisons with unsigned ints. (aout_link_reloc_link_order): Cast enum to int in assignment. * archive.c (_bfd_generic_read_ar_hdr_mag): Cast result of memchr calls to char *. @@ -2923,8 +4094,8 @@ (merge_strings): Add casts to const unsigned char *. * reloc.c (bfd_get_reloc_code_name): Cast enums in comparison to int. (bfd_generic_get_relocated_section_content): Cast enum to unsigned int. - * section.c (bfd_section_hash_newfunc): Cast bfd_hash_allocate result to - struct bfd_hash_entry *. + * section.c (bfd_section_hash_newfunc): Cast bfd_hash_allocate result + to struct bfd_hash_entry *. (bfd_set_section_content): Add cast to PTR in comparison. * simple.c (simple_dummy_warning, simple_dummy_undefined_symbol, simple_dummy_reloc_overflow, simple_dummy_reloc_dangerous, @@ -3249,7 +4420,7 @@ * 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* + * 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. @@ -3675,7 +4846,7 @@ 2002-08-28 Catherine Moore - * elf32-v850.c (v850_elf_reloc_map): Add new relocs. + * 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. @@ -3895,9 +5066,9 @@ 2002-08-16 Stephen Clarke - * bfd/elf32-sh.c (sh_elf_gc_mark_hook): For sh64, skip indirect + * 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. + * elf64-sh.c (sh_elf64_gc_mark_hook): Likewise. 2002-08-15 Alan Modra @@ -4684,7 +5855,7 @@ 2002-07-04 Alan Modra - * section.c (_bfd_strip_section_from_output): Remove unnecessary + * section.c (_bfd_strip_section_from_output): Remove unnecessary link order code. Don't actually remove the output section here; Just set a flag for the linker to do so. * elflink.c (_bfd_elf_link_renumber_dynsyms): Test for removed @@ -4979,7 +6150,7 @@ * elf64-hppa.c (elf64_hppa_mark_milli_and_exported_functions): New function. - (allocate_global_data_dlt): Don't add millicode symbols to dynamic + (allocate_global_data_dlt): Don't add millicode symbols to dynamic symbol table. (allocate_global_data_opd, allocate_dynrel_entries): Likewise. (elf64_hppa_size_dynamic_sections): Revise to use @@ -5856,7 +7027,7 @@ 2002-05-18 Tom Rix - * coff64-rs6000.c (_bfd_xcoff64_swap_aux_out): Fix C_FILE auxent. + * coff64-rs6000.c (_bfd_xcoff64_swap_aux_out): Fix C_FILE auxent. 2002-05-17 Alan Modra @@ -6789,7 +7960,7 @@ * coff-rs6000.c (_bfd_xcoff_stat_arch_elt): Renamed from _bfd_xcoff_generic_stat_arch_elt. Fix format check. - * coff64-rs6000.c : Use _bfd_xcoff_stat_arch_elt. + * coff64-rs6000.c : Use _bfd_xcoff_stat_arch_elt. 2002-03-19 Tom Rix @@ -7056,7 +8227,7 @@ 2002-02-20 Peter Schauer - * osf-core.c (osf_core_vec): OSF/1 (Digital Unix) core files are + * osf-core.c (osf_core_vec): OSF/1 (Digital Unix) core files are little endian. 2002-02-19 Martin Schwidefsky @@ -7102,7 +8273,7 @@ * elf64-ppc.c (ppc64_elf_relocate_section): Likewise. * elf64-s390.c (elf_s390_relocate_section): Likewise. * elf64-sh64.c (sh_elf64_relocate_section): Likewise. - * elf64-sparc.c (sparc64_elf_relocate_section): Likewise. + * elf64-sparc.c (sparc64_elf_relocate_section): Likewise. * elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise. * elf64-alpha.c (elf64_alpha_relocate_section): Handle _bfd_elf_section_offset returning -2 the same way as -1. @@ -7330,7 +8501,7 @@ datalabel_got_offset. (sh_elf_link_hash_newfunc): Initialize it. (sh_elf_relocate_section): Augment the scope of - seen_stt_datalabel. Introduce GOTPLT support. Extend GOTPC, PLT, + seen_stt_datalabel. Introduce GOTPLT support. Extend GOTPC, PLT, GOT and GOTOFF handling to new SHmedia relocation types. Support GOT_BIAS. (sh_elf_check_relocs): Likewise. @@ -7377,14 +8548,14 @@ match official numbers and names; moved unmaching ones to the range 0xf2-0xff. * elf32-sh64.c, elf64-sh64.c: Likewise. - 2001-03-12 DJ Delorie + 2001-03-12 DJ Delorie * elf32-sh.c (sh_elf_relax_section): Don't relax SHmedia sections. - 2001-03-12 DJ Delorie + 2001-03-12 DJ Delorie * elf32-sh64.c (shmedia_prepare_reloc): Validate relocs that must be aligned. * elf64-sh64.c (sh_elf64_relocate_section): Ditto. - 2001-01-14 Hans-Peter Nilsson + 2001-01-14 Hans-Peter Nilsson * elf32-sh64.c (bfd_elf32_bfd_copy_private_section_data): Define. (sh64_elf_fake_sections): Set type to SHT_SH5_CR_SORTED for a .cranges section with SEC_SORT_ENTRIES set. @@ -7395,9 +8566,9 @@ start address if called by linker. 2001-01-08 Ben Elliston * elf32-sh64.c (sh64_elf_final_write_processing): Activate - Hans-Peter Nilsson's set bit 0 patch from 2001-01-06. + Hans-Peter Nilsson's set bit 0 patch from 2001-01-06. * elf64-sh64.c (sh64_elf64_final_write_processing): Ditto. - 2001-01-06 Hans-Peter Nilsson + 2001-01-06 Hans-Peter Nilsson * elf64-sh64.c (sh_elf64_howto_table): No open brace at start of line. Add comments before all entries. : Correct and clarify describing @@ -7417,7 +8588,7 @@ clarify describing comment. Add comments before all entries. (sh_elf_relocate_section) : Do not honour STO_SH5_ISA32; instead call reloc_dangerous callback. - 2001-01-06 Hans-Peter Nilsson + 2001-01-06 Hans-Peter Nilsson Sort .cranges section in final link. Prepare to set bit 0 on entry address. * elf32-sh64.c (struct sh64_find_section_vma_data): New. @@ -7440,7 +8611,7 @@ * elf32-sh64.c (sh64_elf64_final_write_processing): New, (but temporarily disabled) setting bit 0 on entry address. (elf_backend_final_write_processing): Define. - 2001-01-05 Hans-Peter Nilsson + 2001-01-05 Hans-Peter Nilsson * elf32-sh.c (sh_elf_howto_table) : Adjust fields to be a proper relocation for PTA and PTB rather than a marker. : New case. * Makefile.am (elf32-sh64.lo): Add dependency on sh64-opc.h. * Makefile.in: Regenerate. - 2000-12-30 Hans-Peter Nilsson + 2000-12-30 Hans-Peter Nilsson * elf64-sh64.c (sh64_elf64_fake_sections): Set SHF_SH5_ISA32 for all code sections. (sh_elf64_set_mach_from_flags): Change from EF_SH64 to EF_SH5. @@ -7471,11 +8642,11 @@ (sh64_elf_copy_private_data): Add missing "return true". (sh64_elf_set_mach_from_flags): Change from EF_SH64 to EF_SH5. (sh_elf64_merge_private_data): Ditto. - 2000-12-19 Hans-Peter Nilsson + 2000-12-19 Hans-Peter Nilsson * elf64-sh64.c (sh64_elf64_fake_sections): New, copy of elf64-sh64.c:sh64_elf_fake_sections. (elf_backend_fake_sections): Define as sh64_elf64_fake_sections. - 2000-12-18 Hans-Peter Nilsson + 2000-12-18 Hans-Peter Nilsson * elf32-sh64.c (sh64_elf_copy_private_data_internal): Delete. (sh64_elf_final_write_processing): New. (elf_backend_final_write_processing): Define. @@ -7484,7 +8655,7 @@ sh64_elf_copy_private_data_internal, just copy e_flags field. (sh64_elf_merge_private_data): Do not call sh64_elf_copy_private_data_internal. - 2000-12-12 Hans-Peter Nilsson + 2000-12-12 Hans-Peter Nilsson Remove EF_SH64_ABI64, let ELF size make difference. Remove SH64-specific BFD section flag. * elf32-sh64.c (sh64_elf_fake_sections): Recognize section as @@ -7500,7 +8671,7 @@ * section.c (Section flags definitions): Don't define SEC_SH_ISA_SHMEDIA. (bfd-in2.h): Regenerate. - 2000-12-09 Hans-Peter Nilsson + 2000-12-09 Hans-Peter Nilsson Make DataLabel references work with partial linking. * elf32-sh64.c: Fix formatting. (sh64_elf_link_output_symbol_hook): New. @@ -7513,7 +8684,7 @@ sh64_elf64_link_output_symbol_hook. (sh64_elf64_add_symbol_hook): Make DataLabel symbol just global undefined if partial linking. Adjust sanity check. - 2000-12-07 Hans-Peter Nilsson + 2000-12-07 Hans-Peter Nilsson Implement semantics for inter-file DataLabel references. * elf64-sh64.c (DATALABEL_SUFFIX): Define. (sh64_elf64_add_symbol_hook): New. @@ -7529,13 +8700,13 @@ * elf32-sh.c (sh_elf_relocate_section): If passing an indirect symbol with st_type STT_DATALABEL on the way to a symbol with st_other STO_SH5_ISA32, do not bitor 1 to the relocation. - 2000-12-05 Hans-Peter Nilsson + 2000-12-05 Hans-Peter Nilsson Pass through STT_DATALABEL. * elf32-sh64.c (sh64_elf_get_symbol_type): New. (elf_backend_get_symbol_type): Define. * elf64-sh64.c (sh64_elf64_get_symbol_type): New. (elf_backend_get_symbol_type): Define. - 2000-11-30 Hans-Peter Nilsson + 2000-11-30 Hans-Peter Nilsson * elf32-sh64.c: Tweak comments. (sh64_elf_copy_private_data_internal): Add prototype. (bfd_elf32_bfd_set_private_flags): Define. @@ -7559,7 +8730,7 @@ * configure: Regenerate. * po/POTFILES.in: Regenerate. * po/bfd.pot: Regenerate. - 2000-11-29 Hans-Peter Nilsson + 2000-11-29 Hans-Peter Nilsson * elf32-sh64.c (sh64_elf_set_mach_from_flags): Do not recognize anything else but EF_SH64 and EF_SH64_ABI64. (sh64_elf_merge_private_data): Emit error for anything else but @@ -7569,7 +8740,7 @@ * configure.in: Add cofflink.lo to bfd_elf32_sh64_vec and bfd_elf32_sh64l_vec as a temporary measure. * configure: Regenerate. - 2000-11-27 Hans-Peter Nilsson + 2000-11-27 Hans-Peter Nilsson * cpu-sh.c (arch_info_struct): Include sh5 item unconditionalized. * config.bfd (sh64-*-elf*): Do not set targ_cflags. @@ -7587,7 +8758,7 @@ : Ditto. (sh_elf_set_mach_from_flags): Remove code refusing deleted EF_SH64_32BIT_ABI flag. - 2000-11-26 Hans-Peter Nilsson + 2000-11-26 Hans-Peter Nilsson * elf32-sh.c (sh_elf_howto_table) : Set pcrel_offset to true. @@ -7596,7 +8767,7 @@ : Ditto if h->other & STO_SH5_ISA32. * elf32-sh64.c (shmedia_prepare_reloc): Add rel->r_addend to relocation. - 2000-11-24 Hans-Peter Nilsson + 2000-11-24 Hans-Peter Nilsson * Makefile.am (BFD32_BACKENDS): Add elf32-sh64.lo. (BFD32_BACKENDS_CFILES): Add elf32-sh64.c. Regenerate dependencies. @@ -7819,7 +8990,7 @@ * peXXigen.c (pe_print_idata): Rearrange message to aid in translation. - (pe_print_pdata): Rearrange message to aid in translation. + (pe_print_pdata): Rearrange message to aid in translation. * libbfd.c (warn_deprecated): Rearrange error message to aid in translation. @@ -8316,7 +9487,7 @@ * ptrace-core.c (ptrace_unix_core_file_p): Likewise. * trad-core.c (trad_unix_core_file_p): Likewise. - * hppabsd-core.c (hppabsd_core_core_file_p): Clean up after errors + * hppabsd-core.c (hppabsd_core_core_file_p): Clean up after errors with bfd_release and bfd_section_list_clear. * hpux-core.c (hpux_core_core_file_p): Likewise. * irix-core.c (irix_core_core_file_p): Likewise. diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/Makefile.am binutils-2.14.90.0.5/bfd/Makefile.am --- binutils-2.14.90.0.4.1/bfd/Makefile.am 2003-05-05 14:46:46.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/Makefile.am 2003-07-23 08:08:08.000000000 -0700 @@ -208,6 +208,7 @@ BFD32_BACKENDS = \ ecofflink.lo \ efi-app-ia32.lo \ elf.lo \ + elf32-am33lin.lo \ elf32-arc.lo \ elfarm-oabi.lo \ elfarm-nabi.lo \ @@ -372,6 +373,7 @@ BFD32_BACKENDS_CFILES = \ ecofflink.c \ efi-app-ia32.c \ elf.c \ + elf32-am33lin.c \ elf32-arc.c \ elfarm-oabi.c \ elfarm-nabi.c \ @@ -862,8 +864,9 @@ CLEANFILES = bfd.h dep.sed stmp-bfd-h DE DISTCLEANFILES = $(BUILD_CFILES) $(BUILD_HFILES) -# We want to rerun configure if config.bfd or configure.host change. -config.status: $(srcdir)/configure $(srcdir)/config.bfd $(srcdir)/configure.host +# We want to rerun configure if config.bfd, configure.host or version.h change. +config.status: $(srcdir)/configure $(srcdir)/config.bfd \ + $(srcdir)/configure.host $(srcdir)/version.h $(SHELL) ./config.status --recheck # What appears below is generated by a hacked mkdep using gcc -MM. @@ -918,7 +921,7 @@ archive64.lo: archive64.c $(INCDIR)/file cpu-a29k.lo: cpu-a29k.c $(INCDIR)/filenames.h cpu-alpha.lo: cpu-alpha.c $(INCDIR)/filenames.h cpu-arc.lo: cpu-arc.c $(INCDIR)/filenames.h -cpu-arm.lo: cpu-arm.c $(INCDIR)/filenames.h +cpu-arm.lo: cpu-arm.c $(INCDIR)/filenames.h $(INCDIR)/libiberty.h cpu-avr.lo: cpu-avr.c $(INCDIR)/filenames.h cpu-cris.lo: cpu-cris.c $(INCDIR)/filenames.h cpu-d10v.lo: cpu-d10v.c $(INCDIR)/filenames.h @@ -1122,6 +1125,10 @@ efi-app-ia32.lo: efi-app-ia32.c $(INCDIR elf.lo: elf.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \ elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/libiberty.h +elf32-am33lin.lo: elf32-am33lin.c elf-m10300.c $(INCDIR)/filenames.h \ + elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ + $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/mn10300.h \ + $(INCDIR)/elf/reloc-macros.h elf32-target.h elf32-arc.lo: elf32-arc.c $(INCDIR)/filenames.h elf-bfd.h \ $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \ $(INCDIR)/bfdlink.h $(INCDIR)/elf/arc.h $(INCDIR)/elf/reloc-macros.h \ @@ -1207,17 +1214,19 @@ elf32-m68k.lo: elf32-m68k.c $(INCDIR)/fi elf32-target.h elf32-m68hc11.lo: elf32-m68hc11.c $(INCDIR)/filenames.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-m68hc1x.h + $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h elf32-m68hc1x.h \ + $(INCDIR)/elf/m68hc11.h $(INCDIR)/elf/reloc-macros.h \ + $(INCDIR)/opcode/m68hc11.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 $(INCDIR)/opcode/m68hc11.h \ - elf32-target.h elf32-m68hc1x.h + $(INCDIR)/bfdlink.h elf-bfd.h $(INCDIR)/elf/common.h \ + $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h elf32-m68hc1x.h \ + $(INCDIR)/elf/m68hc11.h $(INCDIR)/elf/reloc-macros.h \ + $(INCDIR)/opcode/m68hc11.h elf32-target.h elf32-m68hc1x.lo: elf32-m68hc1x.c $(INCDIR)/filenames.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-m68hc1x.h + $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h elf32-m68hc1x.h \ + $(INCDIR)/elf/m68hc11.h $(INCDIR)/elf/reloc-macros.h \ + $(INCDIR)/opcode/m68hc11.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 @@ -1301,9 +1310,11 @@ elf32-xstormy16.lo: elf32-xstormy16.c $( $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/xstormy16.h \ $(INCDIR)/elf/reloc-macros.h $(INCDIR)/libiberty.h \ elf32-target.h -elf32-xtensa.lo: elf32-xtensa.c $(INCDIR)/bfdlink.h elf-bfd.h \ - $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \ - $(INCDIR)/elf/xtensa.h $(INCDIR)/xtensa-isa.h elf32-target.h +elf32-xtensa.lo: elf32-xtensa.c $(INCDIR)/filenames.h \ + $(INCDIR)/bfdlink.h elf-bfd.h $(INCDIR)/elf/common.h \ + $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/elf/xtensa.h \ + $(INCDIR)/elf/reloc-macros.h $(INCDIR)/xtensa-isa.h \ + $(INCDIR)/xtensa-config.h elf32-target.h elf32.lo: elf32.c elfcode.h $(INCDIR)/filenames.h $(INCDIR)/libiberty.h \ $(INCDIR)/bfdlink.h elf-bfd.h $(INCDIR)/elf/common.h \ $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h elfcore.h \ @@ -1413,8 +1424,8 @@ pc532-mach.lo: pc532-mach.c $(INCDIR)/fi pdp11.lo: pdp11.c $(INCDIR)/filenames.h libaout.h $(INCDIR)/bfdlink.h \ aout-target.h $(INCDIR)/aout/aout64.h $(INCDIR)/aout/stab_gnu.h \ $(INCDIR)/aout/stab.def $(INCDIR)/aout/ar.h $(INCDIR)/safe-ctype.h -pef.lo: pef.c pef.h pef-traceback.h $(INCDIR)/filenames.h \ - $(INCDIR)/libiberty.h +pef.lo: pef.c $(INCDIR)/safe-ctype.h pef.h pef-traceback.h \ + $(INCDIR)/filenames.h $(INCDIR)/libiberty.h pe-arm.lo: pe-arm.c $(INCDIR)/filenames.h coff-arm.c \ $(INCDIR)/coff/arm.h $(INCDIR)/coff/external.h $(INCDIR)/coff/internal.h \ $(INCDIR)/coff/pe.h libcoff.h $(INCDIR)/bfdlink.h coffcode.h \ diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/Makefile.in binutils-2.14.90.0.5/bfd/Makefile.in --- binutils-2.14.90.0.4.1/bfd/Makefile.in 2003-05-05 14:46:46.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/Makefile.in 2003-07-23 08:08:08.000000000 -0700 @@ -335,6 +335,7 @@ BFD32_BACKENDS = \ ecofflink.lo \ efi-app-ia32.lo \ elf.lo \ + elf32-am33lin.lo \ elf32-arc.lo \ elfarm-oabi.lo \ elfarm-nabi.lo \ @@ -500,6 +501,7 @@ BFD32_BACKENDS_CFILES = \ ecofflink.c \ efi-app-ia32.c \ elf.c \ + elf32-am33lin.c \ elf32-arc.c \ elfarm-oabi.c \ elfarm-nabi.c \ @@ -1395,8 +1397,9 @@ stmp-lcoff-h: $(LIBCOFF_H_FILES) $(SHELL) $(srcdir)/../move-if-change libcoff.h-new $(srcdir)/libcoff.h touch stmp-lcoff-h -# We want to rerun configure if config.bfd or configure.host change. -config.status: $(srcdir)/configure $(srcdir)/config.bfd $(srcdir)/configure.host +# We want to rerun configure if config.bfd, configure.host or version.h change. +config.status: $(srcdir)/configure $(srcdir)/config.bfd \ + $(srcdir)/configure.host $(srcdir)/version.h $(SHELL) ./config.status --recheck # What appears below is generated by a hacked mkdep using gcc -MM. @@ -1451,7 +1454,7 @@ archive64.lo: archive64.c $(INCDIR)/file cpu-a29k.lo: cpu-a29k.c $(INCDIR)/filenames.h cpu-alpha.lo: cpu-alpha.c $(INCDIR)/filenames.h cpu-arc.lo: cpu-arc.c $(INCDIR)/filenames.h -cpu-arm.lo: cpu-arm.c $(INCDIR)/filenames.h +cpu-arm.lo: cpu-arm.c $(INCDIR)/filenames.h $(INCDIR)/libiberty.h cpu-avr.lo: cpu-avr.c $(INCDIR)/filenames.h cpu-cris.lo: cpu-cris.c $(INCDIR)/filenames.h cpu-d10v.lo: cpu-d10v.c $(INCDIR)/filenames.h @@ -1655,6 +1658,10 @@ efi-app-ia32.lo: efi-app-ia32.c $(INCDIR elf.lo: elf.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \ elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/libiberty.h +elf32-am33lin.lo: elf32-am33lin.c elf-m10300.c $(INCDIR)/filenames.h \ + elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ + $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/mn10300.h \ + $(INCDIR)/elf/reloc-macros.h elf32-target.h elf32-arc.lo: elf32-arc.c $(INCDIR)/filenames.h elf-bfd.h \ $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \ $(INCDIR)/bfdlink.h $(INCDIR)/elf/arc.h $(INCDIR)/elf/reloc-macros.h \ @@ -1740,17 +1747,19 @@ elf32-m68k.lo: elf32-m68k.c $(INCDIR)/fi elf32-target.h elf32-m68hc11.lo: elf32-m68hc11.c $(INCDIR)/filenames.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-m68hc1x.h + $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h elf32-m68hc1x.h \ + $(INCDIR)/elf/m68hc11.h $(INCDIR)/elf/reloc-macros.h \ + $(INCDIR)/opcode/m68hc11.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 $(INCDIR)/opcode/m68hc11.h \ - elf32-target.h elf32-m68hc1x.h + $(INCDIR)/bfdlink.h elf-bfd.h $(INCDIR)/elf/common.h \ + $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h elf32-m68hc1x.h \ + $(INCDIR)/elf/m68hc11.h $(INCDIR)/elf/reloc-macros.h \ + $(INCDIR)/opcode/m68hc11.h elf32-target.h elf32-m68hc1x.lo: elf32-m68hc1x.c $(INCDIR)/filenames.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-m68hc1x.h + $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h elf32-m68hc1x.h \ + $(INCDIR)/elf/m68hc11.h $(INCDIR)/elf/reloc-macros.h \ + $(INCDIR)/opcode/m68hc11.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 @@ -1834,9 +1843,11 @@ elf32-xstormy16.lo: elf32-xstormy16.c $( $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/xstormy16.h \ $(INCDIR)/elf/reloc-macros.h $(INCDIR)/libiberty.h \ elf32-target.h -elf32-xtensa.lo: elf32-xtensa.c $(INCDIR)/bfdlink.h elf-bfd.h \ - $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \ - $(INCDIR)/elf/xtensa.h $(INCDIR)/xtensa-isa.h elf32-target.h +elf32-xtensa.lo: elf32-xtensa.c $(INCDIR)/filenames.h \ + $(INCDIR)/bfdlink.h elf-bfd.h $(INCDIR)/elf/common.h \ + $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/elf/xtensa.h \ + $(INCDIR)/elf/reloc-macros.h $(INCDIR)/xtensa-isa.h \ + $(INCDIR)/xtensa-config.h elf32-target.h elf32.lo: elf32.c elfcode.h $(INCDIR)/filenames.h $(INCDIR)/libiberty.h \ $(INCDIR)/bfdlink.h elf-bfd.h $(INCDIR)/elf/common.h \ $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h elfcore.h \ @@ -1946,8 +1957,8 @@ pc532-mach.lo: pc532-mach.c $(INCDIR)/fi pdp11.lo: pdp11.c $(INCDIR)/filenames.h libaout.h $(INCDIR)/bfdlink.h \ aout-target.h $(INCDIR)/aout/aout64.h $(INCDIR)/aout/stab_gnu.h \ $(INCDIR)/aout/stab.def $(INCDIR)/aout/ar.h $(INCDIR)/safe-ctype.h -pef.lo: pef.c pef.h pef-traceback.h $(INCDIR)/filenames.h \ - $(INCDIR)/libiberty.h +pef.lo: pef.c $(INCDIR)/safe-ctype.h pef.h pef-traceback.h \ + $(INCDIR)/filenames.h $(INCDIR)/libiberty.h pe-arm.lo: pe-arm.c $(INCDIR)/filenames.h coff-arm.c \ $(INCDIR)/coff/arm.h $(INCDIR)/coff/external.h $(INCDIR)/coff/internal.h \ $(INCDIR)/coff/pe.h libcoff.h $(INCDIR)/bfdlink.h coffcode.h \ diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/aout-ns32k.c binutils-2.14.90.0.5/bfd/aout-ns32k.c --- binutils-2.14.90.0.4.1/bfd/aout-ns32k.c 2003-03-19 09:19:13.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/aout-ns32k.c 2003-07-23 08:08:08.000000000 -0700 @@ -65,7 +65,7 @@ MY(put_reloc) PARAMS ((bfd *, int, int, struct reloc_std_external *)); /* The ns32k series is ah, unusual, when it comes to relocation. - There are three storage methods for relocateable objects. There + There are three storage methods for relocatable objects. There are displacements, immediate operands and ordinary twos complement data. Of these, only the last fits into the standard relocation scheme. Immediate operands are stored huffman encoded and diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/aoutx.h binutils-2.14.90.0.5/bfd/aoutx.h --- binutils-2.14.90.0.4.1/bfd/aoutx.h 2003-05-05 14:46:46.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/aoutx.h 2003-07-23 08:08:08.000000000 -0700 @@ -3749,7 +3749,7 @@ NAME(aout,final_link) (abfd, info, callb includes_hash_initialized = TRUE; /* Figure out the largest section size. Also, if generating - relocateable output, count the relocs. */ + relocatable output, count the relocs. */ trsize = 0; drsize = 0; max_contents_size = 0; @@ -3759,7 +3759,7 @@ NAME(aout,final_link) (abfd, info, callb { bfd_size_type sz; - if (info->relocateable) + if (info->relocatable) { if (bfd_get_flavour (sub) == bfd_target_aout_flavour) { @@ -3773,7 +3773,7 @@ NAME(aout,final_link) (abfd, info, callb work out the number of relocs needed, and then multiply by the reloc size. */ (*_bfd_error_handler) - (_("%s: relocateable link from %s to %s not supported"), + (_("%s: relocatable link from %s to %s not supported"), bfd_get_filename (abfd), sub->xvec->name, abfd->xvec->name); bfd_set_error (bfd_error_invalid_operation); @@ -3803,7 +3803,7 @@ NAME(aout,final_link) (abfd, info, callb } } - if (info->relocateable) + if (info->relocatable) { if (obj_textsec (abfd) != (asection *) NULL) trsize += (_bfd_count_link_order_relocs (obj_textsec (abfd) @@ -4786,9 +4786,9 @@ aout_link_input_section (finfo, input_bf input_size)) return FALSE; - /* If we are producing relocateable output, the relocs were + /* If we are producing relocatable output, the relocs were modified, and we now write them out. */ - if (finfo->info->relocateable && rel_size > 0) + if (finfo->info->relocatable && rel_size > 0) { if (bfd_seek (finfo->output_bfd, *reloff_ptr, SEEK_SET) != 0) return FALSE; @@ -4850,7 +4850,7 @@ aout_link_input_section_std (finfo, inpu struct aout_link_hash_entry *, PTR, bfd_byte *, bfd_boolean *, bfd_vma *)); bfd *output_bfd; - bfd_boolean relocateable; + bfd_boolean relocatable; struct external_nlist *syms; char *strings; struct aout_link_hash_entry **sym_hashes; @@ -4866,7 +4866,7 @@ aout_link_input_section_std (finfo, inpu BFD_ASSERT (input_bfd->xvec->header_byteorder == output_bfd->xvec->header_byteorder); - relocateable = finfo->info->relocateable; + relocatable = finfo->info->relocatable; syms = obj_aout_external_syms (input_bfd); strings = obj_aout_external_strings (input_bfd); sym_hashes = obj_aout_sym_hashes (input_bfd); @@ -4935,9 +4935,9 @@ aout_link_input_section_std (finfo, inpu } #endif - if (relocateable) + if (relocatable) { - /* We are generating a relocateable output file, and must + /* We are generating a relocatable output file, and must modify the reloc accordingly. */ if (r_extern) { @@ -5195,7 +5195,7 @@ aout_link_input_section_ext (finfo, inpu struct aout_link_hash_entry *, PTR, bfd_byte *, bfd_boolean *, bfd_vma *)); bfd *output_bfd; - bfd_boolean relocateable; + bfd_boolean relocatable; struct external_nlist *syms; char *strings; struct aout_link_hash_entry **sym_hashes; @@ -5211,7 +5211,7 @@ aout_link_input_section_ext (finfo, inpu BFD_ASSERT (input_bfd->xvec->header_byteorder == output_bfd->xvec->header_byteorder); - relocateable = finfo->info->relocateable; + relocatable = finfo->info->relocatable; syms = obj_aout_external_syms (input_bfd); strings = obj_aout_external_strings (input_bfd); sym_hashes = obj_aout_sym_hashes (input_bfd); @@ -5256,9 +5256,9 @@ aout_link_input_section_ext (finfo, inpu BFD_ASSERT (r_type < TABLE_SIZE (howto_table_ext)); - if (relocateable) + if (relocatable) { - /* We are generating a relocateable output file, and must + /* We are generating a relocatable output file, and must modify the reloc accordingly. */ if (r_extern || r_type == (unsigned int) RELOC_BASE10 diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/archive.c binutils-2.14.90.0.5/bfd/archive.c --- binutils-2.14.90.0.4.1/bfd/archive.c 2002-12-16 12:22:51.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/archive.c 2003-07-23 08:08:08.000000000 -0700 @@ -1,6 +1,6 @@ /* BFD back-end for archive files (libraries). Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2001, 2002 + 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Written by Cygnus Support. Mostly Gumby Henkel-Wallace's fault. @@ -158,28 +158,15 @@ struct ar_cache { #define ar_maxnamelen(abfd) ((abfd)->xvec->ar_max_namelen) #define arch_eltdata(bfd) ((struct areltdata *) ((bfd)->arelt_data)) -#define arch_hdr(bfd) ((struct ar_hdr *)arch_eltdata(bfd)->arch_header) +#define arch_hdr(bfd) ((struct ar_hdr *) arch_eltdata(bfd)->arch_header) -static char *get_extended_arelt_filename - PARAMS ((bfd *arch, const char *name)); -static bfd_boolean do_slurp_bsd_armap - PARAMS ((bfd *abfd)); -static bfd_boolean do_slurp_coff_armap - PARAMS ((bfd *abfd)); -bfd_boolean bfd_elf64_archive_slurp_armap - PARAMS ((bfd *abfd)); -static const char *normalize - PARAMS ((bfd *, const char *file)); -static struct areltdata *bfd_ar_hdr_from_filesystem - PARAMS ((bfd *abfd, const char *, bfd *member)); bfd_boolean -_bfd_generic_mkarchive (abfd) - bfd *abfd; +_bfd_generic_mkarchive (bfd *abfd) { bfd_size_type amt = sizeof (struct artdata); - abfd->tdata.aout_ar_data = (struct artdata *) bfd_zalloc (abfd, amt); + abfd->tdata.aout_ar_data = bfd_zalloc (abfd, amt); if (bfd_ardata (abfd) == NULL) return FALSE; @@ -197,7 +184,8 @@ FUNCTION bfd_get_next_mapent SYNOPSIS - symindex bfd_get_next_mapent(bfd *abfd, symindex previous, carsym **sym); + symindex bfd_get_next_mapent + (bfd *abfd, symindex previous, carsym **sym); DESCRIPTION Step through archive @var{abfd}'s symbol table (if it @@ -214,10 +202,7 @@ DESCRIPTION */ symindex -bfd_get_next_mapent (abfd, prev, entry) - bfd *abfd; - symindex prev; - carsym **entry; +bfd_get_next_mapent (bfd *abfd, symindex prev, carsym **entry) { if (!bfd_has_map (abfd)) { @@ -239,8 +224,7 @@ bfd_get_next_mapent (abfd, prev, entry) /* To be called by backends only */ bfd * -_bfd_create_empty_archive_element_shell (obfd) - bfd *obfd; +_bfd_create_empty_archive_element_shell (bfd *obfd) { return _bfd_new_bfd_contained_in (obfd); } @@ -250,7 +234,7 @@ FUNCTION bfd_set_archive_head SYNOPSIS - bfd_boolean bfd_set_archive_head(bfd *output, bfd *new_head); + bfd_boolean bfd_set_archive_head (bfd *output, bfd *new_head); DESCRIPTION Set the head of the chain of @@ -258,19 +242,14 @@ DESCRIPTION */ bfd_boolean -bfd_set_archive_head (output_archive, new_head) - bfd *output_archive; - bfd *new_head; +bfd_set_archive_head (bfd *output_archive, bfd *new_head) { - output_archive->archive_head = new_head; return TRUE; } bfd * -_bfd_look_for_bfd_in_cache (arch_bfd, filepos) - bfd *arch_bfd; - file_ptr filepos; +_bfd_look_for_bfd_in_cache (bfd *arch_bfd, file_ptr filepos) { struct ar_cache *current; @@ -284,19 +263,17 @@ _bfd_look_for_bfd_in_cache (arch_bfd, fi /* Kind of stupid to call cons for each one, but we don't do too many */ bfd_boolean -_bfd_add_bfd_to_archive_cache (arch_bfd, filepos, new_elt) - bfd *arch_bfd, *new_elt; - file_ptr filepos; +_bfd_add_bfd_to_archive_cache (bfd *arch_bfd, file_ptr filepos, bfd *new_elt) { bfd_size_type amt = sizeof (struct ar_cache); - struct ar_cache *new_cache = (struct ar_cache *) bfd_zalloc (arch_bfd, amt); + struct ar_cache *new_cache = bfd_zalloc (arch_bfd, amt); if (new_cache == NULL) return FALSE; new_cache->ptr = filepos; new_cache->arelt = new_elt; - new_cache->next = (struct ar_cache *) NULL; + new_cache->next = NULL; if (bfd_ardata (arch_bfd)->cache == NULL) bfd_ardata (arch_bfd)->cache = new_cache; else @@ -315,9 +292,7 @@ _bfd_add_bfd_to_archive_cache (arch_bfd, the string table. */ static char * -get_extended_arelt_filename (arch, name) - bfd *arch; - const char *name; +get_extended_arelt_filename (bfd *arch, const char *name) { unsigned long index = 0; @@ -344,20 +319,17 @@ get_extended_arelt_filename (arch, name) could have been moved arbitrarily. */ -PTR -_bfd_generic_read_ar_hdr (abfd) - bfd *abfd; +void * +_bfd_generic_read_ar_hdr (bfd *abfd) { - return _bfd_generic_read_ar_hdr_mag (abfd, (const char *) NULL); + return _bfd_generic_read_ar_hdr_mag (abfd, NULL); } /* Alpha ECOFF uses an optional different ARFMAG value, so we have a variant of _bfd_generic_read_ar_hdr which accepts a magic string. */ -PTR -_bfd_generic_read_ar_hdr_mag (abfd, mag) - bfd *abfd; - const char *mag; +void * +_bfd_generic_read_ar_hdr_mag (bfd *abfd, const char *mag) { struct ar_hdr hdr; char *hdrp = (char *) &hdr; @@ -368,8 +340,7 @@ _bfd_generic_read_ar_hdr_mag (abfd, mag) bfd_size_type allocsize = sizeof (struct areltdata) + sizeof (struct ar_hdr); char *allocptr = 0; - if (bfd_bread ((PTR) hdrp, (bfd_size_type) sizeof (struct ar_hdr), abfd) - != sizeof (struct ar_hdr)) + if (bfd_bread (hdrp, sizeof (struct ar_hdr), abfd) != sizeof (struct ar_hdr)) { if (bfd_get_error () != bfd_error_system_call) bfd_set_error (bfd_error_no_more_archived_files); @@ -439,12 +410,12 @@ _bfd_generic_read_ar_hdr_mag (abfd, mag) spaces, so only look for ' ' if we don't find '/'. */ char *e; - e = (char *) memchr (hdr.ar_name, '\0', ar_maxnamelen (abfd)); + e = memchr (hdr.ar_name, '\0', ar_maxnamelen (abfd)); if (e == NULL) { - e = (char *) memchr (hdr.ar_name, '/', ar_maxnamelen (abfd)); + e = memchr (hdr.ar_name, '/', ar_maxnamelen (abfd)); if (e == NULL) - e = (char *) memchr (hdr.ar_name, ' ', ar_maxnamelen (abfd)); + e = memchr (hdr.ar_name, ' ', ar_maxnamelen (abfd)); } if (e != NULL) @@ -469,7 +440,7 @@ _bfd_generic_read_ar_hdr_mag (abfd, mag) ared = (struct areltdata *) allocptr; ared->arch_header = allocptr + sizeof (struct areltdata); - memcpy ((char *) ared->arch_header, (char *) &hdr, sizeof (struct ar_hdr)); + memcpy (ared->arch_header, &hdr, sizeof (struct ar_hdr)); ared->parsed_size = parsed_size; if (filename != NULL) @@ -479,11 +450,11 @@ _bfd_generic_read_ar_hdr_mag (abfd, mag) ared->filename = allocptr + (sizeof (struct areltdata) + sizeof (struct ar_hdr)); if (namelen) - memcpy (ared->filename, hdr.ar_name, (size_t) namelen); + memcpy (ared->filename, hdr.ar_name, namelen); ared->filename[namelen] = '\0'; } - return (PTR) ared; + return ared; } /* This is an internal function; it's mainly used when indexing @@ -491,9 +462,7 @@ _bfd_generic_read_ar_hdr_mag (abfd, mag) element, since it handles the bookkeeping so nicely for us. */ bfd * -_bfd_get_elt_at_filepos (archive, filepos) - bfd *archive; - file_ptr filepos; +_bfd_get_elt_at_filepos (bfd *archive, file_ptr filepos) { struct areltdata *new_areldata; bfd *n_nfd; @@ -505,26 +474,26 @@ _bfd_get_elt_at_filepos (archive, filepo if (0 > bfd_seek (archive, filepos, SEEK_SET)) return NULL; - if ((new_areldata = (struct areltdata *) _bfd_read_ar_hdr (archive)) == NULL) + if ((new_areldata = _bfd_read_ar_hdr (archive)) == NULL) return NULL; n_nfd = _bfd_create_empty_archive_element_shell (archive); if (n_nfd == NULL) { - bfd_release (archive, (PTR) new_areldata); + bfd_release (archive, new_areldata); return NULL; } n_nfd->origin = bfd_tell (archive); - n_nfd->arelt_data = (PTR) new_areldata; + n_nfd->arelt_data = new_areldata; n_nfd->filename = new_areldata->filename; if (_bfd_add_bfd_to_archive_cache (archive, filepos, n_nfd)) return n_nfd; /* Huh? */ - bfd_release (archive, (PTR) n_nfd); - bfd_release (archive, (PTR) new_areldata); + bfd_release (archive, n_nfd); + bfd_release (archive, new_areldata); return NULL; } @@ -532,9 +501,7 @@ _bfd_get_elt_at_filepos (archive, filepo INDEX. INDEX should have been returned by bfd_get_next_mapent. */ bfd * -_bfd_generic_get_elt_at_index (abfd, index) - bfd *abfd; - symindex index; +_bfd_generic_get_elt_at_index (bfd *abfd, symindex index) { carsym *entry; @@ -547,7 +514,7 @@ FUNCTION bfd_openr_next_archived_file SYNOPSIS - bfd *bfd_openr_next_archived_file(bfd *archive, bfd *previous); + bfd *bfd_openr_next_archived_file (bfd *archive, bfd *previous); DESCRIPTION Provided a BFD, @var{archive}, containing an archive and NULL, open @@ -559,9 +526,7 @@ DESCRIPTION */ bfd * -bfd_openr_next_archived_file (archive, last_file) - bfd *archive; - bfd *last_file; +bfd_openr_next_archived_file (bfd *archive, bfd *last_file) { if ((bfd_get_format (archive) != bfd_archive) || (archive->direction == write_direction)) @@ -571,15 +536,11 @@ bfd_openr_next_archived_file (archive, l } return BFD_SEND (archive, - openr_next_archived_file, - (archive, - last_file)); + openr_next_archived_file, (archive, last_file)); } bfd * -bfd_generic_openr_next_archived_file (archive, last_file) - bfd *archive; - bfd *last_file; +bfd_generic_openr_next_archived_file (bfd *archive, bfd *last_file) { file_ptr filestart; @@ -599,14 +560,13 @@ bfd_generic_openr_next_archived_file (ar } const bfd_target * -bfd_generic_archive_p (abfd) - bfd *abfd; +bfd_generic_archive_p (bfd *abfd) { struct artdata *tdata_hold; char armag[SARMAG + 1]; bfd_size_type amt; - if (bfd_bread ((PTR) armag, (bfd_size_type) SARMAG, abfd) != SARMAG) + if (bfd_bread (armag, SARMAG, abfd) != SARMAG) { if (bfd_get_error () != bfd_error_system_call) bfd_set_error (bfd_error_wrong_format); @@ -625,7 +585,7 @@ bfd_generic_archive_p (abfd) tdata_hold = bfd_ardata (abfd); amt = sizeof (struct artdata); - bfd_ardata (abfd) = (struct artdata *) bfd_zalloc (abfd, amt); + bfd_ardata (abfd) = bfd_zalloc (abfd, amt); if (bfd_ardata (abfd) == NULL) { bfd_ardata (abfd) = tdata_hold; @@ -664,7 +624,7 @@ bfd_generic_archive_p (abfd) normal archive, regardless of the format of the object files. We do accept an empty archive. */ - first = bfd_openr_next_archived_file (abfd, (bfd *) NULL); + first = bfd_openr_next_archived_file (abfd, NULL); if (first != NULL) { bfd_boolean fail; @@ -679,7 +639,7 @@ bfd_generic_archive_p (abfd) we have no way to remove it from the archive cache. It's close to impossible to figure out when we can release bfd_ardata. FIXME. */ - (void) bfd_close (first); + bfd_close (first); bfd_release (abfd, bfd_ardata (abfd)); #endif bfd_set_error (bfd_error_wrong_object_format); @@ -713,8 +673,7 @@ bfd_generic_archive_p (abfd) /* Returns FALSE on error, TRUE otherwise */ static bfd_boolean -do_slurp_bsd_armap (abfd) - bfd *abfd; +do_slurp_bsd_armap (bfd *abfd) { struct areltdata *mapdata; unsigned int counter; @@ -724,22 +683,22 @@ do_slurp_bsd_armap (abfd) bfd_size_type parsed_size, amt; carsym *set; - mapdata = (struct areltdata *) _bfd_read_ar_hdr (abfd); + mapdata = _bfd_read_ar_hdr (abfd); if (mapdata == NULL) return FALSE; parsed_size = mapdata->parsed_size; - bfd_release (abfd, (PTR) mapdata); /* Don't need it any more. */ + bfd_release (abfd, mapdata); /* Don't need it any more. */ - raw_armap = (bfd_byte *) bfd_zalloc (abfd, parsed_size); - if (raw_armap == (bfd_byte *) NULL) + raw_armap = bfd_zalloc (abfd, parsed_size); + if (raw_armap == NULL) return FALSE; - if (bfd_bread ((PTR) raw_armap, parsed_size, abfd) != parsed_size) + if (bfd_bread (raw_armap, parsed_size, abfd) != parsed_size) { if (bfd_get_error () != bfd_error_system_call) bfd_set_error (bfd_error_malformed_archive); byebye: - bfd_release (abfd, (PTR) raw_armap); + bfd_release (abfd, raw_armap); return FALSE; } @@ -758,8 +717,8 @@ do_slurp_bsd_armap (abfd) stringbase = ((char *) rbase + ardata->symdef_count * BSD_SYMDEF_SIZE + BSD_STRING_COUNT_SIZE); - amt = (bfd_size_type) ardata->symdef_count * sizeof (carsym); - ardata->symdefs = (carsym *) bfd_alloc (abfd, amt); + amt = ardata->symdef_count * sizeof (carsym); + ardata->symdefs = bfd_alloc (abfd, amt); if (!ardata->symdefs) return FALSE; @@ -784,8 +743,7 @@ do_slurp_bsd_armap (abfd) /* Returns FALSE on error, TRUE otherwise. */ static bfd_boolean -do_slurp_coff_armap (abfd) - bfd *abfd; +do_slurp_coff_armap (bfd *abfd) { struct areltdata *mapdata; int *raw_armap, *rawptr; @@ -795,18 +753,18 @@ do_slurp_coff_armap (abfd) unsigned int parsed_size; carsym *carsyms; bfd_size_type nsymz; /* Number of symbols in armap. */ - bfd_vma (*swap) PARAMS ((const bfd_byte *)); + bfd_vma (*swap) (const bfd_byte *); char int_buf[sizeof (long)]; bfd_size_type carsym_size, ptrsize; unsigned int i; - mapdata = (struct areltdata *) _bfd_read_ar_hdr (abfd); + mapdata = _bfd_read_ar_hdr (abfd); if (mapdata == NULL) return FALSE; parsed_size = mapdata->parsed_size; - bfd_release (abfd, (PTR) mapdata); /* Don't need it any more. */ + bfd_release (abfd, mapdata); /* Don't need it any more. */ - if (bfd_bread ((PTR) int_buf, (bfd_size_type) 4, abfd) != 4) + if (bfd_bread (int_buf, 4, abfd) != 4) { if (bfd_get_error () != bfd_error_system_call) bfd_set_error (bfd_error_malformed_archive); @@ -815,7 +773,7 @@ do_slurp_coff_armap (abfd) /* It seems that all numeric information in a coff archive is always in big endian format, nomatter the host or target. */ swap = bfd_getb32; - nsymz = bfd_getb32 ((PTR) int_buf); + nsymz = bfd_getb32 (int_buf); stringsize = parsed_size - (4 * nsymz) - 4; #if 1 @@ -829,7 +787,7 @@ do_slurp_coff_armap (abfd) && bfd_get_flavour (abfd) == bfd_target_coff_flavour) { /* This looks dangerous, let's do it the other way around. */ - nsymz = bfd_getl32 ((PTR) int_buf); + nsymz = bfd_getl32 (int_buf); stringsize = parsed_size - (4 * nsymz) - 4; swap = bfd_getl32; } @@ -841,18 +799,18 @@ do_slurp_coff_armap (abfd) carsym_size = (nsymz * sizeof (carsym)); ptrsize = (4 * nsymz); - ardata->symdefs = (carsym *) bfd_zalloc (abfd, carsym_size + stringsize + 1); + ardata->symdefs = bfd_zalloc (abfd, carsym_size + stringsize + 1); if (ardata->symdefs == NULL) return FALSE; carsyms = ardata->symdefs; stringbase = ((char *) ardata->symdefs) + carsym_size; /* Allocate and read in the raw offsets. */ - raw_armap = (int *) bfd_alloc (abfd, ptrsize); + raw_armap = bfd_alloc (abfd, ptrsize); if (raw_armap == NULL) goto release_symdefs; - if (bfd_bread ((PTR) raw_armap, ptrsize, abfd) != ptrsize - || (bfd_bread ((PTR) stringbase, stringsize, abfd) != stringsize)) + if (bfd_bread (raw_armap, ptrsize, abfd) != ptrsize + || (bfd_bread (stringbase, stringsize, abfd) != stringsize)) { if (bfd_get_error () != bfd_error_system_call) bfd_set_error (bfd_error_malformed_archive); @@ -863,7 +821,7 @@ do_slurp_coff_armap (abfd) for (i = 0; i < nsymz; i++) { rawptr = raw_armap + i; - carsyms->file_offset = swap ((PTR) rawptr); + carsyms->file_offset = swap ((bfd_byte *) rawptr); carsyms->name = stringbase; stringbase += strlen (stringbase) + 1; carsyms++; @@ -876,14 +834,14 @@ do_slurp_coff_armap (abfd) ardata->first_file_filepos += (ardata->first_file_filepos) % 2; bfd_has_map (abfd) = TRUE; - bfd_release (abfd, (PTR) raw_armap); + bfd_release (abfd, raw_armap); /* Check for a second archive header (as used by PE). */ { struct areltdata *tmp; bfd_seek (abfd, ardata->first_file_filepos, SEEK_SET); - tmp = (struct areltdata *) _bfd_read_ar_hdr (abfd); + tmp = _bfd_read_ar_hdr (abfd); if (tmp != NULL) { if (tmp->arch_header[0] == '/' @@ -899,9 +857,9 @@ do_slurp_coff_armap (abfd) return TRUE; release_raw_armap: - bfd_release (abfd, (PTR) raw_armap); + bfd_release (abfd, raw_armap); release_symdefs: - bfd_release (abfd, (PTR) (ardata)->symdefs); + bfd_release (abfd, (ardata)->symdefs); return FALSE; } @@ -909,11 +867,10 @@ release_symdefs: Returns FALSE on error, TRUE otherwise */ bfd_boolean -bfd_slurp_armap (abfd) - bfd *abfd; +bfd_slurp_armap (bfd *abfd) { char nextname[17]; - int i = bfd_bread ((PTR) nextname, (bfd_size_type) 16, abfd); + int i = bfd_bread (nextname, 16, abfd); if (i == 0) return TRUE; @@ -932,6 +889,7 @@ bfd_slurp_armap (abfd) { /* 64bit ELF (Irix 6) archive. */ #ifdef BFD64 + extern bfd_boolean bfd_elf64_archive_slurp_armap (bfd *); return bfd_elf64_archive_slurp_armap (abfd); #else bfd_set_error (bfd_error_wrong_format); @@ -951,8 +909,7 @@ bfd_slurp_armap (abfd) #define HPUX_SYMDEF_COUNT_SIZE 2 bfd_boolean -bfd_slurp_bsd_armap_f2 (abfd) - bfd *abfd; +bfd_slurp_bsd_armap_f2 (bfd *abfd) { struct areltdata *mapdata; char nextname[17]; @@ -963,7 +920,7 @@ bfd_slurp_bsd_armap_f2 (abfd) unsigned int stringsize; bfd_size_type amt; carsym *set; - int i = bfd_bread ((PTR) nextname, (bfd_size_type) 16, abfd); + int i = bfd_bread (nextname, 16, abfd); if (i == 0) return TRUE; @@ -984,29 +941,29 @@ bfd_slurp_bsd_armap_f2 (abfd) return TRUE; } - mapdata = (struct areltdata *) _bfd_read_ar_hdr (abfd); + mapdata = _bfd_read_ar_hdr (abfd); if (mapdata == NULL) return FALSE; amt = mapdata->parsed_size; - raw_armap = (bfd_byte *) bfd_zalloc (abfd, amt); + raw_armap = bfd_zalloc (abfd, amt); if (raw_armap == NULL) { byebye: - bfd_release (abfd, (PTR) mapdata); + bfd_release (abfd, mapdata); return FALSE; } - if (bfd_bread ((PTR) raw_armap, amt, abfd) != amt) + if (bfd_bread (raw_armap, amt, abfd) != amt) { if (bfd_get_error () != bfd_error_system_call) bfd_set_error (bfd_error_malformed_archive); byebyebye: - bfd_release (abfd, (PTR) raw_armap); + bfd_release (abfd, raw_armap); goto byebye; } - ardata->symdef_count = H_GET_16 (abfd, (PTR) raw_armap); + ardata->symdef_count = H_GET_16 (abfd, raw_armap); if (ardata->symdef_count * BSD_SYMDEF_SIZE > mapdata->parsed_size - HPUX_SYMDEF_COUNT_SIZE) @@ -1024,8 +981,8 @@ bfd_slurp_bsd_armap_f2 (abfd) + HPUX_SYMDEF_COUNT_SIZE + BSD_STRING_COUNT_SIZE); rbase = (bfd_byte *) stringbase + stringsize; - amt = (bfd_size_type) ardata->symdef_count * BSD_SYMDEF_SIZE; - ardata->symdefs = (carsym *) bfd_alloc (abfd, amt); + amt = ardata->symdef_count * BSD_SYMDEF_SIZE; + ardata->symdefs = bfd_alloc (abfd, amt); if (!ardata->symdefs) return FALSE; @@ -1060,8 +1017,7 @@ bfd_slurp_bsd_armap_f2 (abfd) /* Returns FALSE on error, TRUE otherwise. */ bfd_boolean -_bfd_slurp_extended_name_table (abfd) - bfd *abfd; +_bfd_slurp_extended_name_table (bfd *abfd) { char nextname[17]; struct areltdata *namedata; @@ -1070,7 +1026,7 @@ _bfd_slurp_extended_name_table (abfd) /* FIXME: Formatting sucks here, and in case of failure of BFD_READ, we probably don't want to return TRUE. */ bfd_seek (abfd, bfd_ardata (abfd)->first_file_filepos, SEEK_SET); - if (bfd_bread ((PTR) nextname, (bfd_size_type) 16, abfd) == 16) + if (bfd_bread (nextname, 16, abfd) == 16) { if (bfd_seek (abfd, (file_ptr) -16, SEEK_CUR) != 0) return FALSE; @@ -1082,7 +1038,7 @@ _bfd_slurp_extended_name_table (abfd) return TRUE; } - namedata = (struct areltdata *) _bfd_read_ar_hdr (abfd); + namedata = _bfd_read_ar_hdr (abfd); if (namedata == NULL) return FALSE; @@ -1091,15 +1047,15 @@ _bfd_slurp_extended_name_table (abfd) if (bfd_ardata (abfd)->extended_names == NULL) { byebye: - bfd_release (abfd, (PTR) namedata); + bfd_release (abfd, namedata); return FALSE; } - if (bfd_bread ((PTR) bfd_ardata (abfd)->extended_names, amt, abfd) != amt) + if (bfd_bread (bfd_ardata (abfd)->extended_names, amt, abfd) != amt) { if (bfd_get_error () != bfd_error_system_call) bfd_set_error (bfd_error_malformed_archive); - bfd_release (abfd, (PTR) (bfd_ardata (abfd)->extended_names)); + bfd_release (abfd, (bfd_ardata (abfd)->extended_names)); bfd_ardata (abfd)->extended_names = NULL; goto byebye; } @@ -1141,9 +1097,7 @@ _bfd_slurp_extended_name_table (abfd) semicolon. */ static const char * -normalize (abfd, file) - bfd *abfd; - const char *file; +normalize (bfd *abfd, const char *file) { const char *first; const char *last; @@ -1164,7 +1118,7 @@ normalize (abfd, file) first--; } - copy = (char *) bfd_alloc (abfd, (bfd_size_type) (last - first + 1)); + copy = bfd_alloc (abfd, last - first + 1); if (copy == NULL) return NULL; @@ -1176,9 +1130,7 @@ normalize (abfd, file) #else static const char * -normalize (abfd, file) - bfd *abfd ATTRIBUTE_UNUSED; - const char *file; +normalize (bfd *abfd ATTRIBUTE_UNUSED, const char *file) { const char *filename = strrchr (file, '/'); @@ -1192,7 +1144,7 @@ normalize (abfd, file) filename = file + 1; } #endif - if (filename != (char *) NULL) + if (filename != NULL) filename++; else filename = file; @@ -1203,11 +1155,10 @@ normalize (abfd, file) /* Build a BFD style extended name table. */ bfd_boolean -_bfd_archive_bsd_construct_extended_name_table (abfd, tabloc, tablen, name) - bfd *abfd; - char **tabloc; - bfd_size_type *tablen; - const char **name; +_bfd_archive_bsd_construct_extended_name_table (bfd *abfd, + char **tabloc, + bfd_size_type *tablen, + const char **name) { *name = "ARFILENAMES/"; return _bfd_construct_extended_name_table (abfd, FALSE, tabloc, tablen); @@ -1216,11 +1167,10 @@ _bfd_archive_bsd_construct_extended_name /* Build an SVR4 style extended name table. */ bfd_boolean -_bfd_archive_coff_construct_extended_name_table (abfd, tabloc, tablen, name) - bfd *abfd; - char **tabloc; - bfd_size_type *tablen; - const char **name; +_bfd_archive_coff_construct_extended_name_table (bfd *abfd, + char **tabloc, + bfd_size_type *tablen, + const char **name) { *name = "//"; return _bfd_construct_extended_name_table (abfd, TRUE, tabloc, tablen); @@ -1235,11 +1185,10 @@ _bfd_archive_coff_construct_extended_nam zero-length tablen! */ bfd_boolean -_bfd_construct_extended_name_table (abfd, trailing_slash, tabloc, tablen) - bfd *abfd; - bfd_boolean trailing_slash; - char **tabloc; - bfd_size_type *tablen; +_bfd_construct_extended_name_table (bfd *abfd, + bfd_boolean trailing_slash, + char **tabloc, + bfd_size_type *tablen) { unsigned int maxname = abfd->xvec->ar_max_namelen; bfd_size_type total_namelen = 0; @@ -1353,9 +1302,7 @@ _bfd_construct_extended_name_table (abfd /* Function to encode large UID/GID values according to HP. */ static void -hpux_uid_gid_encode (str, id) - char str[6]; - long int id; +hpux_uid_gid_encode (char str[6], long int id) { int cnt; @@ -1381,10 +1328,7 @@ hpux_uid_gid_encode (str, id) is set, and it's an in-memory bfd, we fake it. */ static struct areltdata * -bfd_ar_hdr_from_filesystem (abfd, filename, member) - bfd *abfd; - const char *filename; - bfd *member; +bfd_ar_hdr_from_filesystem (bfd *abfd, const char *filename, bfd *member) { struct stat status; struct areltdata *ared; @@ -1395,7 +1339,7 @@ bfd_ar_hdr_from_filesystem (abfd, filena if (member && (member->flags & BFD_IN_MEMORY) != 0) { /* Assume we just "made" the member, and fake it. */ - struct bfd_in_memory *bim = (struct bfd_in_memory *) member->iostream; + struct bfd_in_memory *bim = member->iostream; time (&status.st_mtime); status.st_uid = getuid (); status.st_gid = getgid (); @@ -1409,13 +1353,13 @@ bfd_ar_hdr_from_filesystem (abfd, filena } amt = sizeof (struct ar_hdr) + sizeof (struct areltdata); - ared = (struct areltdata *) bfd_zalloc (abfd, amt); + ared = bfd_zalloc (abfd, amt); if (ared == NULL) return NULL; hdr = (struct ar_hdr *) (((char *) ared) + sizeof (struct areltdata)); /* ar headers are space padded, not null padded! */ - memset ((PTR) hdr, ' ', sizeof (struct ar_hdr)); + memset (hdr, ' ', sizeof (struct ar_hdr)); strncpy (hdr->ar_fmag, ARFMAG, 2); @@ -1461,13 +1405,10 @@ bfd_ar_hdr_from_filesystem (abfd, filena a strong stomach to write this, and it does, but it takes even a stronger stomach to try to code around such a thing! */ -struct ar_hdr *bfd_special_undocumented_glue - PARAMS ((bfd *, const char *)); +struct ar_hdr *bfd_special_undocumented_glue (bfd *, const char *); struct ar_hdr * -bfd_special_undocumented_glue (abfd, filename) - bfd *abfd; - const char *filename; +bfd_special_undocumented_glue (bfd *abfd, const char *filename) { struct areltdata *ar_elt = bfd_ar_hdr_from_filesystem (abfd, filename, 0); if (ar_elt == NULL) @@ -1478,9 +1419,7 @@ bfd_special_undocumented_glue (abfd, fil /* Analogous to stat call. */ int -bfd_generic_stat_arch_elt (abfd, buf) - bfd *abfd; - struct stat *buf; +bfd_generic_stat_arch_elt (bfd *abfd, struct stat *buf) { struct ar_hdr *hdr; char *aloser; @@ -1535,10 +1474,7 @@ bfd_generic_stat_arch_elt (abfd, buf) } void -bfd_dont_truncate_arname (abfd, pathname, arhdr) - bfd *abfd; - const char *pathname; - char *arhdr; +bfd_dont_truncate_arname (bfd *abfd, const char *pathname, char *arhdr) { /* FIXME: This interacts unpleasantly with ar's quick-append option. Fortunately ic960 users will never use that option. Fixing this @@ -1575,10 +1511,7 @@ bfd_dont_truncate_arname (abfd, pathname } void -bfd_bsd_truncate_arname (abfd, pathname, arhdr) - bfd *abfd; - const char *pathname; - char *arhdr; +bfd_bsd_truncate_arname (bfd *abfd, const char *pathname, char *arhdr) { struct ar_hdr *hdr = (struct ar_hdr *) arhdr; size_t length; @@ -1626,10 +1559,7 @@ bfd_bsd_truncate_arname (abfd, pathname, bsd ar. */ void -bfd_gnu_truncate_arname (abfd, pathname, arhdr) - bfd *abfd; - const char *pathname; - char *arhdr; +bfd_gnu_truncate_arname (bfd *abfd, const char *pathname, char *arhdr) { struct ar_hdr *hdr = (struct ar_hdr *) arhdr; size_t length; @@ -1674,8 +1604,7 @@ bfd_gnu_truncate_arname (abfd, pathname, /* The BFD is open for write and has its format set to bfd_archive. */ bfd_boolean -_bfd_write_archive_contents (arch) - bfd *arch; +_bfd_write_archive_contents (bfd *arch) { bfd *current; char *etable = NULL; @@ -1706,14 +1635,13 @@ _bfd_write_archive_contents (arch) if (!current->arelt_data) { current->arelt_data = - (PTR) bfd_ar_hdr_from_filesystem (arch, current->filename, current); + bfd_ar_hdr_from_filesystem (arch, current->filename, current); if (!current->arelt_data) return FALSE; /* Put in the file name. */ - BFD_SEND (arch, _bfd_truncate_arname, (arch, - current->filename, - (char *) arch_hdr (current))); + BFD_SEND (arch, _bfd_truncate_arname, + (arch, current->filename, (char *) arch_hdr (current))); } if (makemap && ! hasobjects) @@ -1734,9 +1662,9 @@ _bfd_write_archive_contents (arch) if (bfd_seek (arch, (file_ptr) 0, SEEK_SET) != 0) return FALSE; #ifdef GNU960 - wrote = bfd_bwrite (BFD_GNU960_ARMAG (arch), (bfd_size_type) SARMAG, arch); + wrote = bfd_bwrite (BFD_GNU960_ARMAG (arch), SARMAG, arch); #else - wrote = bfd_bwrite (ARMAG, (bfd_size_type) SARMAG, arch); + wrote = bfd_bwrite (ARMAG, SARMAG, arch); #endif if (wrote != SARMAG) return FALSE; @@ -1751,7 +1679,7 @@ _bfd_write_archive_contents (arch) { struct ar_hdr hdr; - memset ((char *) (&hdr), 0, sizeof (struct ar_hdr)); + memset (&hdr, 0, sizeof (struct ar_hdr)); strcpy (hdr.ar_name, ename); /* Round size up to even number in archive header. */ sprintf (&(hdr.ar_size[0]), "%-10d", @@ -1760,13 +1688,13 @@ _bfd_write_archive_contents (arch) for (i = 0; i < sizeof (struct ar_hdr); i++) if (((char *) (&hdr))[i] == '\0') (((char *) (&hdr))[i]) = ' '; - if ((bfd_bwrite ((PTR) &hdr, (bfd_size_type) sizeof (struct ar_hdr), arch) + if ((bfd_bwrite (&hdr, sizeof (struct ar_hdr), arch) != sizeof (struct ar_hdr)) || bfd_bwrite (etable, elength, arch) != elength) return FALSE; if ((elength % 2) == 1) { - if (bfd_bwrite ("\012", (bfd_size_type) 1, arch) != 1) + if (bfd_bwrite ("\012", 1, arch) != 1) return FALSE; } } @@ -1778,7 +1706,7 @@ _bfd_write_archive_contents (arch) struct ar_hdr *hdr = arch_hdr (current); /* Write ar header. */ - if (bfd_bwrite ((PTR) hdr, (bfd_size_type) sizeof (*hdr), arch) + if (bfd_bwrite (hdr, sizeof (*hdr), arch) != sizeof (*hdr)) return FALSE; if (bfd_seek (current, (file_ptr) 0, SEEK_SET) != 0) @@ -1789,19 +1717,19 @@ _bfd_write_archive_contents (arch) if (amt > remaining) amt = remaining; errno = 0; - if (bfd_bread (buffer, (bfd_size_type) amt, current) != amt) + if (bfd_bread (buffer, amt, current) != amt) { if (bfd_get_error () != bfd_error_system_call) bfd_set_error (bfd_error_malformed_archive); return FALSE; } - if (bfd_bwrite (buffer, (bfd_size_type) amt, arch) != amt) + if (bfd_bwrite (buffer, amt, arch) != amt) return FALSE; remaining -= amt; } if ((arelt_size (current) % 2) == 1) { - if (bfd_bwrite ("\012", (bfd_size_type) 1, arch) != 1) + if (bfd_bwrite ("\012", 1, arch) != 1) return FALSE; } } @@ -1831,9 +1759,7 @@ _bfd_write_archive_contents (arch) /* Note that the namidx for the first symbol is 0. */ bfd_boolean -_bfd_compute_and_write_armap (arch, elength) - bfd *arch; - unsigned int elength; +_bfd_compute_and_write_armap (bfd *arch, unsigned int elength) { char *first_name = NULL; bfd *current; @@ -1852,14 +1778,14 @@ _bfd_compute_and_write_armap (arch, elen elength += sizeof (struct ar_hdr); elength += elength % 2; - amt = (bfd_size_type) orl_max * sizeof (struct orl); - map = (struct orl *) bfd_malloc (amt); + amt = orl_max * sizeof (struct orl); + map = bfd_malloc (amt); if (map == NULL) goto error_return; /* We put the symbol names on the arch objalloc, and then discard them when done. */ - first_name = bfd_alloc (arch, (bfd_size_type) 1); + first_name = bfd_alloc (arch, 1); if (first_name == NULL) goto error_return; @@ -1870,7 +1796,7 @@ _bfd_compute_and_write_armap (arch, elen /* Map over each element. */ for (current = arch->archive_head; - current != (bfd *) NULL; + current != NULL; current = current->next, elt_no++) { if (bfd_check_format (current, bfd_object) @@ -1891,7 +1817,7 @@ _bfd_compute_and_write_armap (arch, elen if (syms_max > 0) free (syms); syms_max = storage; - syms = (asymbol **) bfd_malloc ((bfd_size_type) syms_max); + syms = bfd_malloc (syms_max); if (syms == NULL) goto error_return; } @@ -1919,9 +1845,9 @@ _bfd_compute_and_write_armap (arch, elen if (orl_count == orl_max) { orl_max *= 2; - amt = (bfd_size_type) orl_max * sizeof (struct orl); - new_map = (struct orl *) bfd_realloc (map, amt); - if (new_map == (struct orl *) NULL) + amt = orl_max * sizeof (struct orl); + new_map = bfd_realloc (map, amt); + if (new_map == NULL) goto error_return; map = new_map; @@ -1929,7 +1855,7 @@ _bfd_compute_and_write_armap (arch, elen namelen = strlen (syms[src_count]->name); amt = sizeof (char *); - map[orl_count].name = (char **) bfd_alloc (arch, amt); + map[orl_count].name = bfd_alloc (arch, amt); if (map[orl_count].name == NULL) goto error_return; *(map[orl_count].name) = bfd_alloc (arch, namelen + 1); @@ -1977,12 +1903,11 @@ _bfd_compute_and_write_armap (arch, elen } bfd_boolean -bsd_write_armap (arch, elength, map, orl_count, stridx) - bfd *arch; - unsigned int elength; - struct orl *map; - unsigned int orl_count; - int stridx; +bsd_write_armap (bfd *arch, + unsigned int elength, + struct orl *map, + unsigned int orl_count, + int stridx) { int padit = stridx & 1; unsigned int ranlibsize = orl_count * BSD_SYMDEF_SIZE; @@ -2001,7 +1926,7 @@ bsd_write_armap (arch, elength, map, orl firstreal = mapsize + elength + sizeof (struct ar_hdr) + SARMAG; stat (arch->filename, &statbuf); - memset ((char *) (&hdr), 0, sizeof (struct ar_hdr)); + memset (&hdr, 0, sizeof (struct ar_hdr)); sprintf (hdr.ar_name, RANLIBMAG); /* Remember the timestamp, to keep it holy. But fudge it a little. */ bfd_ardata (arch)->armap_timestamp = statbuf.st_mtime + ARMAP_TIME_OFFSET; @@ -2015,11 +1940,11 @@ bsd_write_armap (arch, elength, map, orl for (i = 0; i < sizeof (struct ar_hdr); i++) if (((char *) (&hdr))[i] == '\0') (((char *) (&hdr))[i]) = ' '; - if (bfd_bwrite ((PTR) &hdr, (bfd_size_type) sizeof (struct ar_hdr), arch) + if (bfd_bwrite (&hdr, sizeof (struct ar_hdr), arch) != sizeof (struct ar_hdr)) return FALSE; H_PUT_32 (arch, ranlibsize, temp); - if (bfd_bwrite (temp, (bfd_size_type) sizeof (temp), arch) != sizeof (temp)) + if (bfd_bwrite (temp, sizeof (temp), arch) != sizeof (temp)) return FALSE; for (count = 0; count < orl_count; count++) @@ -2040,20 +1965,20 @@ bsd_write_armap (arch, elength, map, orl last_elt = current; H_PUT_32 (arch, map[count].namidx, buf); H_PUT_32 (arch, firstreal, buf + BSD_SYMDEF_OFFSET_SIZE); - if (bfd_bwrite (buf, (bfd_size_type) BSD_SYMDEF_SIZE, arch) + if (bfd_bwrite (buf, BSD_SYMDEF_SIZE, arch) != BSD_SYMDEF_SIZE) return FALSE; } /* Now write the strings themselves. */ H_PUT_32 (arch, stringsize, temp); - if (bfd_bwrite (temp, (bfd_size_type) sizeof (temp), arch) != sizeof (temp)) + if (bfd_bwrite (temp, sizeof (temp), arch) != sizeof (temp)) return FALSE; for (count = 0; count < orl_count; count++) { size_t len = strlen (*map[count].name) + 1; - if (bfd_bwrite (*map[count].name, (bfd_size_type) len, arch) != len) + if (bfd_bwrite (*map[count].name, len, arch) != len) return FALSE; } @@ -2061,7 +1986,7 @@ bsd_write_armap (arch, elength, map, orl bug-compatible for sun's ar we use a null. */ if (padit) { - if (bfd_bwrite ("", (bfd_size_type) 1, arch) != 1) + if (bfd_bwrite ("", 1, arch) != 1) return FALSE; } @@ -2075,8 +2000,7 @@ bsd_write_armap (arch, elength, map, orl Return FALSE if we updated the timestamp. */ bfd_boolean -_bfd_archive_bsd_update_armap_timestamp (arch) - bfd *arch; +_bfd_archive_bsd_update_armap_timestamp (bfd *arch) { struct stat archstat; struct ar_hdr hdr; @@ -2110,7 +2034,7 @@ _bfd_archive_bsd_update_armap_timestamp bfd_ardata (arch)->armap_datepos = (SARMAG + offsetof (struct ar_hdr, ar_date[0])); if (bfd_seek (arch, bfd_ardata (arch)->armap_datepos, SEEK_SET) != 0 - || (bfd_bwrite (hdr.ar_date, (bfd_size_type) sizeof (hdr.ar_date), arch) + || (bfd_bwrite (hdr.ar_date, sizeof (hdr.ar_date), arch) != sizeof (hdr.ar_date))) { bfd_perror (_("Writing updated armap timestamp")); @@ -2138,12 +2062,11 @@ _bfd_archive_bsd_update_armap_timestamp */ bfd_boolean -coff_write_armap (arch, elength, map, symbol_count, stridx) - bfd *arch; - unsigned int elength; - struct orl *map; - unsigned int symbol_count; - int stridx; +coff_write_armap (bfd *arch, + unsigned int elength, + struct orl *map, + unsigned int symbol_count, + int stridx) { /* The size of the ranlib is the number of exported symbols in the archive * the number of bytes in an int, + an int for the count. */ @@ -2166,7 +2089,7 @@ coff_write_armap (arch, elength, map, sy + sizeof (struct ar_hdr) + SARMAG); - memset ((char *) (&hdr), 0, sizeof (struct ar_hdr)); + memset (&hdr, 0, sizeof (struct ar_hdr)); hdr.ar_name[0] = '/'; sprintf (hdr.ar_size, "%-10d", (int) mapsize); sprintf (hdr.ar_date, "%ld", (long) time (NULL)); @@ -2182,7 +2105,7 @@ coff_write_armap (arch, elength, map, sy /* Write the ar header for this item and the number of symbols. */ - if (bfd_bwrite ((PTR) &hdr, (bfd_size_type) sizeof (struct ar_hdr), arch) + if (bfd_bwrite (&hdr, sizeof (struct ar_hdr), arch) != sizeof (struct ar_hdr)) return FALSE; @@ -2197,7 +2120,7 @@ coff_write_armap (arch, elength, map, sy current = arch->archive_head; count = 0; - while (current != (bfd *) NULL && count < symbol_count) + while (current != NULL && count < symbol_count) { /* For each symbol which is used defined in this object, write out the object file's address in the archive. */ @@ -2209,8 +2132,7 @@ coff_write_armap (arch, elength, map, sy count++; } /* Add size of this archive entry. */ - archive_member_file_ptr += (arelt_size (current) - + sizeof (struct ar_hdr)); + archive_member_file_ptr += arelt_size (current) + sizeof (struct ar_hdr); /* Remember aboout the even alignment. */ archive_member_file_ptr += archive_member_file_ptr % 2; current = current->next; @@ -2221,7 +2143,7 @@ coff_write_armap (arch, elength, map, sy { size_t len = strlen (*map[count].name) + 1; - if (bfd_bwrite (*map[count].name, (bfd_size_type) len, arch) != len) + if (bfd_bwrite (*map[count].name, len, arch) != len) return FALSE; } @@ -2229,7 +2151,7 @@ coff_write_armap (arch, elength, map, sy bug-compatible for arc960 we use a null. */ if (padit) { - if (bfd_bwrite ("", (bfd_size_type) 1, arch) != 1) + if (bfd_bwrite ("", 1, arch) != 1) return FALSE; } diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/archive64.c binutils-2.14.90.0.5/bfd/archive64.c --- binutils-2.14.90.0.4.1/bfd/archive64.c 2002-12-16 12:22:51.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/archive64.c 2003-07-23 08:08:08.000000000 -0700 @@ -1,5 +1,5 @@ /* MIPS-specific support for 64-bit ELF - Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 + Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Ian Lance Taylor, Cygnus Support Linker support added by Mark Mitchell, CodeSourcery, LLC. @@ -31,15 +31,14 @@ Foundation, Inc., 59 Temple Place - Suit /* Irix 6 defines a 64bit archive map format, so that they can have archives more than 4 GB in size. */ -bfd_boolean bfd_elf64_archive_slurp_armap PARAMS ((bfd *)); +bfd_boolean bfd_elf64_archive_slurp_armap (bfd *); bfd_boolean bfd_elf64_archive_write_armap - PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int)); + (bfd *, unsigned int, struct orl *, unsigned int, int); /* Read an Irix 6 armap. */ bfd_boolean -bfd_elf64_archive_slurp_armap (abfd) - bfd *abfd; +bfd_elf64_archive_slurp_armap (bfd *abfd) { struct artdata *ardata = bfd_ardata (abfd); char nextname[17]; @@ -56,7 +55,7 @@ bfd_elf64_archive_slurp_armap (abfd) /* Get the name of the first element. */ arhdrpos = bfd_tell (abfd); - i = bfd_bread ((PTR) nextname, (bfd_size_type) 16, abfd); + i = bfd_bread (nextname, 16, abfd); if (i == 0) return TRUE; if (i != 16) @@ -79,9 +78,9 @@ bfd_elf64_archive_slurp_armap (abfd) if (mapdata == NULL) return FALSE; parsed_size = mapdata->parsed_size; - bfd_release (abfd, (PTR) mapdata); + bfd_release (abfd, mapdata); - if (bfd_bread (int_buf, (bfd_size_type) 8, abfd) != 8) + if (bfd_bread (int_buf, 8, abfd) != 8) { if (bfd_get_error () != bfd_error_system_call) bfd_set_error (bfd_error_malformed_archive); @@ -95,13 +94,13 @@ bfd_elf64_archive_slurp_armap (abfd) ptrsize = 8 * nsymz; amt = carsym_size + stringsize + 1; - ardata->symdefs = (carsym *) bfd_zalloc (abfd, amt); + ardata->symdefs = bfd_zalloc (abfd, amt); if (ardata->symdefs == NULL) return FALSE; carsyms = ardata->symdefs; stringbase = ((char *) ardata->symdefs) + carsym_size; - raw_armap = (bfd_byte *) bfd_alloc (abfd, ptrsize); + raw_armap = bfd_alloc (abfd, ptrsize); if (raw_armap == NULL) goto release_symdefs; @@ -144,12 +143,11 @@ release_symdefs: linker crashes. */ bfd_boolean -bfd_elf64_archive_write_armap (arch, elength, map, symbol_count, stridx) - bfd *arch; - unsigned int elength; - struct orl *map; - unsigned int symbol_count; - int stridx; +bfd_elf64_archive_write_armap (bfd *arch, + unsigned int elength, + struct orl *map, + unsigned int symbol_count, + int stridx) { unsigned int ranlibsize = (symbol_count * 8) + 8; unsigned int stringsize = stridx; @@ -171,7 +169,7 @@ bfd_elf64_archive_write_armap (arch, ele + sizeof (struct ar_hdr) + SARMAG); - memset ((char *) (&hdr), 0, sizeof (struct ar_hdr)); + memset (&hdr, 0, sizeof (struct ar_hdr)); strcpy (hdr.ar_name, "/SYM64/"); sprintf (hdr.ar_size, "%-10d", (int) mapsize); sprintf (hdr.ar_date, "%ld", (long) time (NULL)); @@ -187,12 +185,12 @@ bfd_elf64_archive_write_armap (arch, ele /* Write the ar header for this item and the number of symbols */ - if (bfd_bwrite ((PTR) &hdr, (bfd_size_type) sizeof (struct ar_hdr), arch) + if (bfd_bwrite (&hdr, sizeof (struct ar_hdr), arch) != sizeof (struct ar_hdr)) return FALSE; bfd_putb64 ((bfd_vma) symbol_count, buf); - if (bfd_bwrite (buf, (bfd_size_type) 8, arch) != 8) + if (bfd_bwrite (buf, 8, arch) != 8) return FALSE; /* Two passes, first write the file offsets for each symbol - @@ -203,7 +201,7 @@ bfd_elf64_archive_write_armap (arch, ele current = arch->archive_head; count = 0; - while (current != (bfd *) NULL && count < symbol_count) + while (current != NULL && count < symbol_count) { /* For each symbol which is used defined in this object, write out the object file's address in the archive */ @@ -211,7 +209,7 @@ bfd_elf64_archive_write_armap (arch, ele while (map[count].u.abfd == current) { bfd_putb64 ((bfd_vma) archive_member_file_ptr, buf); - if (bfd_bwrite (buf, (bfd_size_type) 8, arch) != 8) + if (bfd_bwrite (buf, 8, arch) != 8) return FALSE; count++; } @@ -228,7 +226,7 @@ bfd_elf64_archive_write_armap (arch, ele { size_t len = strlen (*map[count].name) + 1; - if (bfd_bwrite (*map[count].name, (bfd_size_type) len, arch) != len) + if (bfd_bwrite (*map[count].name, len, arch) != len) return FALSE; } @@ -236,7 +234,7 @@ bfd_elf64_archive_write_armap (arch, ele However, the Irix 6.2 tools do not appear to do this. */ while (padding != 0) { - if (bfd_bwrite ("", (bfd_size_type) 1, arch) != 1) + if (bfd_bwrite ("", 1, arch) != 1) return FALSE; --padding; } diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/archures.c binutils-2.14.90.0.5/bfd/archures.c --- binutils-2.14.90.0.4.1/bfd/archures.c 2003-05-23 07:18:52.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/archures.c 2003-07-23 08:08:08.000000000 -0700 @@ -138,6 +138,7 @@ DESCRIPTION .#define bfd_mach_mips5400 5400 .#define bfd_mach_mips5500 5500 .#define bfd_mach_mips6000 6000 +.#define bfd_mach_mips7000 7000 .#define bfd_mach_mips8000 8000 .#define bfd_mach_mips10000 10000 .#define bfd_mach_mips12000 12000 @@ -170,6 +171,7 @@ DESCRIPTION .#define bfd_mach_h8300hn 4 .#define bfd_mach_h8300sn 5 .#define bfd_mach_h8300sx 6 +.#define bfd_mach_h8300sxn 7 . bfd_arch_pdp11, {* DEC PDP-11 *} . bfd_arch_powerpc, {* PowerPC *} .#define bfd_mach_ppc 32 @@ -263,6 +265,7 @@ DESCRIPTION . bfd_arch_mn10300, {* Matsushita MN10300 *} .#define bfd_mach_mn10300 300 .#define bfd_mach_am33 330 +.#define bfd_mach_am33_2 332 . bfd_arch_fr30, .#define bfd_mach_fr30 0x46523330 . bfd_arch_frv, @@ -341,10 +344,9 @@ DESCRIPTION . all the entries for that arch can be accessed via <>. *} . bfd_boolean the_default; . const struct bfd_arch_info * (*compatible) -. PARAMS ((const struct bfd_arch_info *a, -. const struct bfd_arch_info *b)); +. (const struct bfd_arch_info *a, const struct bfd_arch_info *b); . -. bfd_boolean (*scan) PARAMS ((const struct bfd_arch_info *, const char *)); +. bfd_boolean (*scan) (const struct bfd_arch_info *, const char *); . . const struct bfd_arch_info *next; .} @@ -473,7 +475,7 @@ FUNCTION bfd_printable_name SYNOPSIS - const char *bfd_printable_name(bfd *abfd); + const char *bfd_printable_name (bfd *abfd); DESCRIPTION Return a printable string representing the architecture and machine @@ -482,8 +484,7 @@ DESCRIPTION */ const char * -bfd_printable_name (abfd) - bfd *abfd; +bfd_printable_name (bfd *abfd) { return abfd->arch_info->printable_name; } @@ -493,7 +494,7 @@ FUNCTION bfd_scan_arch SYNOPSIS - const bfd_arch_info_type *bfd_scan_arch(const char *string); + const bfd_arch_info_type *bfd_scan_arch (const char *string); DESCRIPTION Figure out if BFD supports any cpu which could be described with @@ -502,8 +503,7 @@ DESCRIPTION */ const bfd_arch_info_type * -bfd_scan_arch (string) - const char *string; +bfd_scan_arch (const char *string) { const bfd_arch_info_type * const *app, *ap; @@ -525,7 +525,7 @@ FUNCTION bfd_arch_list SYNOPSIS - const char **bfd_arch_list(void); + const char **bfd_arch_list (void); DESCRIPTION Return a freshly malloced NULL-terminated vector of the names @@ -533,7 +533,7 @@ DESCRIPTION */ const char ** -bfd_arch_list () +bfd_arch_list (void) { int vec_length = 0; const char **name_ptr; @@ -553,7 +553,7 @@ bfd_arch_list () } amt = (vec_length + 1) * sizeof (char **); - name_list = (const char **) bfd_malloc (amt); + name_list = bfd_malloc (amt); if (name_list == NULL) return NULL; @@ -578,10 +578,8 @@ FUNCTION bfd_arch_get_compatible SYNOPSIS - const bfd_arch_info_type *bfd_arch_get_compatible( - const bfd *abfd, - const bfd *bbfd, - bfd_boolean accept_unknowns); + const bfd_arch_info_type *bfd_arch_get_compatible + (const bfd *abfd, const bfd *bbfd, bfd_boolean accept_unknowns); DESCRIPTION Determine whether two BFDs' architectures and machine types @@ -592,10 +590,9 @@ DESCRIPTION */ const bfd_arch_info_type * -bfd_arch_get_compatible (abfd, bbfd, accept_unknowns) - const bfd *abfd; - const bfd *bbfd; - bfd_boolean accept_unknowns; +bfd_arch_get_compatible (const bfd *abfd, + const bfd *bbfd, + bfd_boolean accept_unknowns) { const bfd * ubfd = NULL; @@ -644,16 +641,14 @@ FUNCTION bfd_set_arch_info SYNOPSIS - void bfd_set_arch_info(bfd *abfd, const bfd_arch_info_type *arg); + void bfd_set_arch_info (bfd *abfd, const bfd_arch_info_type *arg); DESCRIPTION Set the architecture info of @var{abfd} to @var{arg}. */ void -bfd_set_arch_info (abfd, arg) - bfd *abfd; - const bfd_arch_info_type *arg; +bfd_set_arch_info (bfd *abfd, const bfd_arch_info_type *arg) { abfd->arch_info = arg; } @@ -663,9 +658,8 @@ INTERNAL_FUNCTION bfd_default_set_arch_mach SYNOPSIS - bfd_boolean bfd_default_set_arch_mach(bfd *abfd, - enum bfd_architecture arch, - unsigned long mach); + bfd_boolean bfd_default_set_arch_mach + (bfd *abfd, enum bfd_architecture arch, unsigned long mach); DESCRIPTION Set the architecture and machine type in BFD @var{abfd} @@ -675,10 +669,9 @@ DESCRIPTION */ bfd_boolean -bfd_default_set_arch_mach (abfd, arch, mach) - bfd *abfd; - enum bfd_architecture arch; - unsigned long mach; +bfd_default_set_arch_mach (bfd *abfd, + enum bfd_architecture arch, + unsigned long mach) { abfd->arch_info = bfd_lookup_arch (arch, mach); if (abfd->arch_info != NULL) @@ -694,7 +687,7 @@ FUNCTION bfd_get_arch SYNOPSIS - enum bfd_architecture bfd_get_arch(bfd *abfd); + enum bfd_architecture bfd_get_arch (bfd *abfd); DESCRIPTION Return the enumerated type which describes the BFD @var{abfd}'s @@ -702,8 +695,7 @@ DESCRIPTION */ enum bfd_architecture -bfd_get_arch (abfd) - bfd *abfd; +bfd_get_arch (bfd *abfd) { return abfd->arch_info->arch; } @@ -713,7 +705,7 @@ FUNCTION bfd_get_mach SYNOPSIS - unsigned long bfd_get_mach(bfd *abfd); + unsigned long bfd_get_mach (bfd *abfd); DESCRIPTION Return the long type which describes the BFD @var{abfd}'s @@ -721,8 +713,7 @@ DESCRIPTION */ unsigned long -bfd_get_mach (abfd) - bfd *abfd; +bfd_get_mach (bfd *abfd) { return abfd->arch_info->mach; } @@ -732,7 +723,7 @@ FUNCTION bfd_arch_bits_per_byte SYNOPSIS - unsigned int bfd_arch_bits_per_byte(bfd *abfd); + unsigned int bfd_arch_bits_per_byte (bfd *abfd); DESCRIPTION Return the number of bits in one of the BFD @var{abfd}'s @@ -740,8 +731,7 @@ DESCRIPTION */ unsigned int -bfd_arch_bits_per_byte (abfd) - bfd *abfd; +bfd_arch_bits_per_byte (bfd *abfd) { return abfd->arch_info->bits_per_byte; } @@ -751,7 +741,7 @@ FUNCTION bfd_arch_bits_per_address SYNOPSIS - unsigned int bfd_arch_bits_per_address(bfd *abfd); + unsigned int bfd_arch_bits_per_address (bfd *abfd); DESCRIPTION Return the number of bits in one of the BFD @var{abfd}'s @@ -759,8 +749,7 @@ DESCRIPTION */ unsigned int -bfd_arch_bits_per_address (abfd) - bfd *abfd; +bfd_arch_bits_per_address (bfd *abfd) { return abfd->arch_info->bits_per_address; } @@ -771,17 +760,15 @@ INTERNAL_FUNCTION SYNOPSIS const bfd_arch_info_type *bfd_default_compatible - (const bfd_arch_info_type *a, - const bfd_arch_info_type *b); + (const bfd_arch_info_type *a, const bfd_arch_info_type *b); DESCRIPTION The default function for testing for compatibility. */ const bfd_arch_info_type * -bfd_default_compatible (a, b) - const bfd_arch_info_type *a; - const bfd_arch_info_type *b; +bfd_default_compatible (const bfd_arch_info_type *a, + const bfd_arch_info_type *b) { if (a->arch != b->arch) return NULL; @@ -803,7 +790,8 @@ INTERNAL_FUNCTION bfd_default_scan SYNOPSIS - bfd_boolean bfd_default_scan(const struct bfd_arch_info *info, const char *string); + bfd_boolean bfd_default_scan + (const struct bfd_arch_info *info, const char *string); DESCRIPTION The default function for working out whether this is an @@ -811,9 +799,7 @@ DESCRIPTION */ bfd_boolean -bfd_default_scan (info, string) - const bfd_arch_info_type *info; - const char *string; +bfd_default_scan (const bfd_arch_info_type *info, const char *string) { const char *ptr_src; const char *ptr_tst; @@ -1022,15 +1008,14 @@ FUNCTION bfd_get_arch_info SYNOPSIS - const bfd_arch_info_type * bfd_get_arch_info(bfd *abfd); + const bfd_arch_info_type *bfd_get_arch_info (bfd *abfd); DESCRIPTION Return the architecture info struct in @var{abfd}. */ const bfd_arch_info_type * -bfd_get_arch_info (abfd) - bfd *abfd; +bfd_get_arch_info (bfd *abfd) { return abfd->arch_info; } @@ -1041,9 +1026,7 @@ FUNCTION SYNOPSIS const bfd_arch_info_type *bfd_lookup_arch - (enum bfd_architecture - arch, - unsigned long machine); + (enum bfd_architecture arch, unsigned long machine); DESCRIPTION Look for the architecure info structure which matches the @@ -1053,9 +1036,7 @@ DESCRIPTION */ const bfd_arch_info_type * -bfd_lookup_arch (arch, machine) - enum bfd_architecture arch; - unsigned long machine; +bfd_lookup_arch (enum bfd_architecture arch, unsigned long machine) { const bfd_arch_info_type * const *app, *ap; @@ -1079,7 +1060,7 @@ FUNCTION SYNOPSIS const char *bfd_printable_arch_mach - (enum bfd_architecture arch, unsigned long machine); + (enum bfd_architecture arch, unsigned long machine); DESCRIPTION Return a printable string representing the architecture and @@ -1089,9 +1070,7 @@ DESCRIPTION */ const char * -bfd_printable_arch_mach (arch, machine) - enum bfd_architecture arch; - unsigned long machine; +bfd_printable_arch_mach (enum bfd_architecture arch, unsigned long machine) { const bfd_arch_info_type *ap = bfd_lookup_arch (arch, machine); @@ -1105,7 +1084,7 @@ FUNCTION bfd_octets_per_byte SYNOPSIS - unsigned int bfd_octets_per_byte(bfd *abfd); + unsigned int bfd_octets_per_byte (bfd *abfd); DESCRIPTION Return the number of octets (8-bit quantities) per target byte @@ -1114,8 +1093,7 @@ DESCRIPTION */ unsigned int -bfd_octets_per_byte (abfd) - bfd *abfd; +bfd_octets_per_byte (bfd *abfd) { return bfd_arch_mach_octets_per_byte (bfd_get_arch (abfd), bfd_get_mach (abfd)); @@ -1126,8 +1104,8 @@ FUNCTION bfd_arch_mach_octets_per_byte SYNOPSIS - unsigned int bfd_arch_mach_octets_per_byte(enum bfd_architecture arch, - unsigned long machine); + unsigned int bfd_arch_mach_octets_per_byte + (enum bfd_architecture arch, unsigned long machine); DESCRIPTION See bfd_octets_per_byte. @@ -1137,9 +1115,8 @@ DESCRIPTION */ unsigned int -bfd_arch_mach_octets_per_byte (arch, mach) - enum bfd_architecture arch; - unsigned long mach; +bfd_arch_mach_octets_per_byte (enum bfd_architecture arch, + unsigned long mach) { const bfd_arch_info_type *ap = bfd_lookup_arch (arch, mach); diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/bfd-in.h binutils-2.14.90.0.5/bfd/bfd-in.h --- binutils-2.14.90.0.4.1/bfd/bfd-in.h 2003-05-23 07:18:52.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/bfd-in.h 2003-07-23 08:08:08.000000000 -0700 @@ -172,10 +172,8 @@ typedef unsigned long bfd_size_type; typedef bfd_signed_vma file_ptr; typedef bfd_vma ufile_ptr; -extern void bfd_sprintf_vma - PARAMS ((bfd *, char *, bfd_vma)); -extern void bfd_fprintf_vma - PARAMS ((bfd *, PTR, bfd_vma)); +extern void bfd_sprintf_vma (bfd *, char *, bfd_vma); +extern void bfd_fprintf_vma (bfd *, void *, bfd_vma); #define printf_vma(x) fprintf_vma(stdout,x) #define bfd_printf_vma(abfd,x) bfd_fprintf_vma (abfd,stdout,x) @@ -361,8 +359,7 @@ typedef struct _symbol_info /* Get the name of a stabs type code. */ -extern const char *bfd_get_stab_name - PARAMS ((int)); +extern const char *bfd_get_stab_name (int); /* Hash table routines. There is no way to free up a hash table. */ @@ -396,80 +393,73 @@ struct bfd_hash_table each function should be written to allocate a new block of memory only if the argument is NULL. */ struct bfd_hash_entry *(*newfunc) - PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); + (struct bfd_hash_entry *, struct bfd_hash_table *, const char *); /* An objalloc for this hash table. This is a struct objalloc *, - but we use PTR to avoid requiring the inclusion of objalloc.h. */ - PTR memory; + but we use void * to avoid requiring the inclusion of objalloc.h. */ + void *memory; }; /* Initialize a hash table. */ extern bfd_boolean bfd_hash_table_init - PARAMS ((struct bfd_hash_table *, - struct bfd_hash_entry *(*) (struct bfd_hash_entry *, - struct bfd_hash_table *, - const char *))); + (struct bfd_hash_table *, + struct bfd_hash_entry *(*) (struct bfd_hash_entry *, + struct bfd_hash_table *, + const char *)); /* Initialize a hash table specifying a size. */ extern bfd_boolean bfd_hash_table_init_n - PARAMS ((struct bfd_hash_table *, - struct bfd_hash_entry *(*) (struct bfd_hash_entry *, - struct bfd_hash_table *, - const char *), - unsigned int size)); + (struct bfd_hash_table *, + struct bfd_hash_entry *(*) (struct bfd_hash_entry *, + struct bfd_hash_table *, + const char *), + unsigned int size); /* Free up a hash table. */ extern void bfd_hash_table_free - PARAMS ((struct bfd_hash_table *)); + (struct bfd_hash_table *); /* Look up a string in a hash table. If CREATE is TRUE, a new entry will be created for this string if one does not already exist. The COPY argument must be TRUE if this routine should copy the string into newly allocated memory when adding an entry. */ extern struct bfd_hash_entry *bfd_hash_lookup - PARAMS ((struct bfd_hash_table *, const char *, bfd_boolean create, - bfd_boolean copy)); + (struct bfd_hash_table *, const char *, bfd_boolean create, + bfd_boolean copy); /* Replace an entry in a hash table. */ extern void bfd_hash_replace - PARAMS ((struct bfd_hash_table *, struct bfd_hash_entry *old, - struct bfd_hash_entry *nw)); + (struct bfd_hash_table *, struct bfd_hash_entry *old, + struct bfd_hash_entry *nw); /* Base method for creating a hash table entry. */ extern struct bfd_hash_entry *bfd_hash_newfunc - PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, - const char *)); + (struct bfd_hash_entry *, struct bfd_hash_table *, const char *); /* Grab some space for a hash table entry. */ -extern PTR bfd_hash_allocate - PARAMS ((struct bfd_hash_table *, unsigned int)); +extern void *bfd_hash_allocate + (struct bfd_hash_table *, unsigned int); /* Traverse a hash table in a random order, calling a function on each element. If the function returns FALSE, the traversal stops. The INFO argument is passed to the function. */ extern void bfd_hash_traverse - PARAMS ((struct bfd_hash_table *, - bfd_boolean (*) (struct bfd_hash_entry *, PTR), - PTR info)); + (struct bfd_hash_table *, + bfd_boolean (*) (struct bfd_hash_entry *, void *), + void *info); -#define COFF_SWAP_TABLE (PTR) &bfd_coff_std_swap_table +#define COFF_SWAP_TABLE (void *) &bfd_coff_std_swap_table /* User program access to BFD facilities. */ /* Direct I/O routines, for programs which know more about the object file than BFD does. Use higher level routines if possible. */ -extern bfd_size_type bfd_bread - PARAMS ((PTR, bfd_size_type, bfd *)); -extern bfd_size_type bfd_bwrite - PARAMS ((const PTR, bfd_size_type, bfd *)); -extern int bfd_seek - PARAMS ((bfd *, file_ptr, int)); -extern ufile_ptr bfd_tell - PARAMS ((bfd *)); -extern int bfd_flush - PARAMS ((bfd *)); -extern int bfd_stat - PARAMS ((bfd *, struct stat *)); +extern bfd_size_type bfd_bread (void *, bfd_size_type, bfd *); +extern bfd_size_type bfd_bwrite (const void *, bfd_size_type, bfd *); +extern int bfd_seek (bfd *, file_ptr, int); +extern ufile_ptr bfd_tell (bfd *); +extern int bfd_flush (bfd *); +extern int bfd_stat (bfd *, struct stat *); /* Deprecated old routines. */ #if __GNUC__ @@ -487,8 +477,7 @@ extern int bfd_stat (warn_deprecated ("bfd_write", (const char *) 0, 0, (const char *) 0),\ bfd_bwrite ((BUF), (ELTSIZE) * (NITEMS), (ABFD))) #endif -extern void warn_deprecated - PARAMS ((const char *, const char *, int, const char *)); +extern void warn_deprecated (const char *, const char *, int, const char *); /* Cast from const char * to char * so that caller can assign to a char * without a warning. */ @@ -527,58 +516,38 @@ extern void warn_deprecated #define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = bool), TRUE) extern bfd_boolean bfd_cache_close - PARAMS ((bfd *abfd)); + (bfd *abfd); /* NB: This declaration should match the autogenerated one in libbfd.h. */ extern bfd_boolean bfd_record_phdr - PARAMS ((bfd *, unsigned long, bfd_boolean, flagword, bfd_boolean, bfd_vma, - bfd_boolean, bfd_boolean, unsigned int, struct sec **)); + (bfd *, unsigned long, bfd_boolean, flagword, bfd_boolean, bfd_vma, + bfd_boolean, bfd_boolean, unsigned int, struct sec **); /* Byte swapping routines. */ -bfd_vma bfd_getb64 - PARAMS ((const unsigned char *)); -bfd_vma bfd_getl64 - PARAMS ((const unsigned char *)); -bfd_signed_vma bfd_getb_signed_64 - PARAMS ((const unsigned char *)); -bfd_signed_vma bfd_getl_signed_64 - PARAMS ((const unsigned char *)); -bfd_vma bfd_getb32 - PARAMS ((const unsigned char *)); -bfd_vma bfd_getl32 - PARAMS ((const unsigned char *)); -bfd_signed_vma bfd_getb_signed_32 - PARAMS ((const unsigned char *)); -bfd_signed_vma bfd_getl_signed_32 - PARAMS ((const unsigned char *)); -bfd_vma bfd_getb16 - PARAMS ((const unsigned char *)); -bfd_vma bfd_getl16 - PARAMS ((const unsigned char *)); -bfd_signed_vma bfd_getb_signed_16 - PARAMS ((const unsigned char *)); -bfd_signed_vma bfd_getl_signed_16 - PARAMS ((const unsigned char *)); -void bfd_putb64 - PARAMS ((bfd_vma, unsigned char *)); -void bfd_putl64 - PARAMS ((bfd_vma, unsigned char *)); -void bfd_putb32 - PARAMS ((bfd_vma, unsigned char *)); -void bfd_putl32 - PARAMS ((bfd_vma, unsigned char *)); -void bfd_putb16 - PARAMS ((bfd_vma, unsigned char *)); -void bfd_putl16 - PARAMS ((bfd_vma, unsigned char *)); +bfd_vma bfd_getb64 (const unsigned char *); +bfd_vma bfd_getl64 (const unsigned char *); +bfd_signed_vma bfd_getb_signed_64 (const unsigned char *); +bfd_signed_vma bfd_getl_signed_64 (const unsigned char *); +bfd_vma bfd_getb32 (const unsigned char *); +bfd_vma bfd_getl32 (const unsigned char *); +bfd_signed_vma bfd_getb_signed_32 (const unsigned char *); +bfd_signed_vma bfd_getl_signed_32 (const unsigned char *); +bfd_vma bfd_getb16 (const unsigned char *); +bfd_vma bfd_getl16 (const unsigned char *); +bfd_signed_vma bfd_getb_signed_16 (const unsigned char *); +bfd_signed_vma bfd_getl_signed_16 (const unsigned char *); +void bfd_putb64 (bfd_vma, unsigned char *); +void bfd_putl64 (bfd_vma, unsigned char *); +void bfd_putb32 (bfd_vma, unsigned char *); +void bfd_putl32 (bfd_vma, unsigned char *); +void bfd_putb16 (bfd_vma, unsigned char *); +void bfd_putl16 (bfd_vma, unsigned char *); /* Byte swapping routines which take size and endiannes as arguments. */ -bfd_vma bfd_get_bits - PARAMS ((bfd_byte *, int, bfd_boolean)); -void bfd_put_bits - PARAMS ((bfd_vma, bfd_byte *, int, bfd_boolean)); +bfd_vma bfd_get_bits (bfd_byte *, int, bfd_boolean); +void bfd_put_bits (bfd_vma, bfd_byte *, int, bfd_boolean); /* Externally visible ECOFF routines. */ @@ -592,55 +561,48 @@ struct bfd_link_hash_entry; struct bfd_elf_version_tree; #endif extern bfd_vma bfd_ecoff_get_gp_value - PARAMS ((bfd * abfd)); + (bfd * abfd); extern bfd_boolean bfd_ecoff_set_gp_value - PARAMS ((bfd *abfd, bfd_vma gp_value)); + (bfd *abfd, bfd_vma gp_value); extern bfd_boolean bfd_ecoff_set_regmasks - PARAMS ((bfd *abfd, unsigned long gprmask, unsigned long fprmask, - unsigned long *cprmask)); -extern PTR bfd_ecoff_debug_init - PARAMS ((bfd *output_bfd, struct ecoff_debug_info *output_debug, - const struct ecoff_debug_swap *output_swap, - struct bfd_link_info *)); + (bfd *abfd, unsigned long gprmask, unsigned long fprmask, + unsigned long *cprmask); +extern void *bfd_ecoff_debug_init + (bfd *output_bfd, struct ecoff_debug_info *output_debug, + const struct ecoff_debug_swap *output_swap, struct bfd_link_info *); extern void bfd_ecoff_debug_free - PARAMS ((PTR handle, bfd *output_bfd, struct ecoff_debug_info *output_debug, - const struct ecoff_debug_swap *output_swap, - struct bfd_link_info *)); + (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug, + const struct ecoff_debug_swap *output_swap, struct bfd_link_info *); extern bfd_boolean bfd_ecoff_debug_accumulate - PARAMS ((PTR handle, bfd *output_bfd, struct ecoff_debug_info *output_debug, - const struct ecoff_debug_swap *output_swap, - bfd *input_bfd, struct ecoff_debug_info *input_debug, - const struct ecoff_debug_swap *input_swap, - struct bfd_link_info *)); + (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug, + const struct ecoff_debug_swap *output_swap, bfd *input_bfd, + struct ecoff_debug_info *input_debug, + const struct ecoff_debug_swap *input_swap, struct bfd_link_info *); extern bfd_boolean bfd_ecoff_debug_accumulate_other - PARAMS ((PTR handle, bfd *output_bfd, struct ecoff_debug_info *output_debug, - const struct ecoff_debug_swap *output_swap, bfd *input_bfd, - struct bfd_link_info *)); + (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug, + const struct ecoff_debug_swap *output_swap, bfd *input_bfd, + struct bfd_link_info *); extern bfd_boolean bfd_ecoff_debug_externals - PARAMS ((bfd *abfd, struct ecoff_debug_info *debug, - const struct ecoff_debug_swap *swap, - bfd_boolean relocateable, - bfd_boolean (*get_extr) (struct symbol_cache_entry *, - struct ecoff_extr *), - void (*set_index) (struct symbol_cache_entry *, - bfd_size_type))); + (bfd *abfd, struct ecoff_debug_info *debug, + const struct ecoff_debug_swap *swap, bfd_boolean relocatable, + bfd_boolean (*get_extr) (struct symbol_cache_entry *, struct ecoff_extr *), + void (*set_index) (struct symbol_cache_entry *, bfd_size_type)); extern bfd_boolean bfd_ecoff_debug_one_external - PARAMS ((bfd *abfd, struct ecoff_debug_info *debug, - const struct ecoff_debug_swap *swap, - const char *name, struct ecoff_extr *esym)); + (bfd *abfd, struct ecoff_debug_info *debug, + const struct ecoff_debug_swap *swap, const char *name, + struct ecoff_extr *esym); extern bfd_size_type bfd_ecoff_debug_size - PARAMS ((bfd *abfd, struct ecoff_debug_info *debug, - const struct ecoff_debug_swap *swap)); + (bfd *abfd, struct ecoff_debug_info *debug, + const struct ecoff_debug_swap *swap); extern bfd_boolean bfd_ecoff_write_debug - PARAMS ((bfd *abfd, struct ecoff_debug_info *debug, - const struct ecoff_debug_swap *swap, file_ptr where)); + (bfd *abfd, struct ecoff_debug_info *debug, + const struct ecoff_debug_swap *swap, file_ptr where); extern bfd_boolean bfd_ecoff_write_accumulated_debug - PARAMS ((PTR handle, bfd *abfd, struct ecoff_debug_info *debug, - const struct ecoff_debug_swap *swap, - struct bfd_link_info *info, file_ptr where)); + (void *handle, bfd *abfd, struct ecoff_debug_info *debug, + const struct ecoff_debug_swap *swap, + struct bfd_link_info *info, file_ptr where); extern bfd_boolean bfd_mips_ecoff_create_embedded_relocs - PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *, - char **)); + (bfd *, struct bfd_link_info *, struct sec *, struct sec *, char **); /* Externally visible ELF routines. */ @@ -652,37 +614,35 @@ struct bfd_link_needed_list }; extern bfd_boolean bfd_elf_record_link_assignment - PARAMS ((bfd *, struct bfd_link_info *, const char *, bfd_boolean)); + (bfd *, struct bfd_link_info *, const char *, bfd_boolean); extern struct bfd_link_needed_list *bfd_elf_get_needed_list - PARAMS ((bfd *, struct bfd_link_info *)); + (bfd *, struct bfd_link_info *); extern bfd_boolean bfd_elf_get_bfd_needed_list - PARAMS ((bfd *, struct bfd_link_needed_list **)); + (bfd *, struct bfd_link_needed_list **); extern bfd_boolean bfd_elf32_size_dynamic_sections - PARAMS ((bfd *, const char *, const char *, const char *, - const char * const *, struct bfd_link_info *, struct sec **, - struct bfd_elf_version_tree *)); + (bfd *, const char *, const char *, const char *, const char * const *, + struct bfd_link_info *, struct sec **, struct bfd_elf_version_tree *); extern bfd_boolean bfd_elf64_size_dynamic_sections - PARAMS ((bfd *, const char *, const char *, const char *, - const char * const *, struct bfd_link_info *, struct sec **, - struct bfd_elf_version_tree *)); + (bfd *, const char *, const char *, const char *, const char * const *, + struct bfd_link_info *, struct sec **, struct bfd_elf_version_tree *); extern void bfd_elf_set_dt_needed_name - PARAMS ((bfd *, const char *)); + (bfd *, const char *); extern void bfd_elf_set_dt_needed_soname - PARAMS ((bfd *, const char *)); + (bfd *, const char *); extern const char *bfd_elf_get_dt_soname - PARAMS ((bfd *)); + (bfd *); extern struct bfd_link_needed_list *bfd_elf_get_runpath_list - PARAMS ((bfd *, struct bfd_link_info *)); + (bfd *, struct bfd_link_info *); extern bfd_boolean bfd_elf32_discard_info - PARAMS ((bfd *, struct bfd_link_info *)); + (bfd *, struct bfd_link_info *); extern bfd_boolean bfd_elf64_discard_info - PARAMS ((bfd *, struct bfd_link_info *)); + (bfd *, struct bfd_link_info *); /* Return an upper bound on the number of bytes required to store a copy of ABFD's program header table entries. Return -1 if an error occurs; bfd_get_error will return an appropriate code. */ extern long bfd_get_elf_phdr_upper_bound - PARAMS ((bfd *abfd)); + (bfd *abfd); /* Copy ABFD's program header table entries to *PHDRS. The entries will be stored as an array of Elf_Internal_Phdr structures, as @@ -692,7 +652,7 @@ extern long bfd_get_elf_phdr_upper_bound Return the number of program header table entries read, or -1 if an error occurs; bfd_get_error will return an appropriate code. */ extern int bfd_get_elf_phdrs - PARAMS ((bfd *abfd, void *phdrs)); + (bfd *abfd, void *phdrs); /* Create a new BFD as if by bfd_openr. Rather than opening a file, reconstruct an ELF file by reading the segments out of remote memory @@ -707,42 +667,39 @@ extern int bfd_get_elf_phdrs be a BFD for an ELF target with the word size and byte order found in the remote memory. */ extern bfd *bfd_elf_bfd_from_remote_memory - PARAMS ((bfd *templ, bfd_vma ehdr_vma, bfd_vma *loadbasep, - int (*target_read_memory) (bfd_vma vma, char *myaddr, int len))); + (bfd *templ, bfd_vma ehdr_vma, bfd_vma *loadbasep, + int (*target_read_memory) (bfd_vma vma, char *myaddr, int len)); /* Return the arch_size field of an elf bfd, or -1 if not elf. */ extern int bfd_get_arch_size - PARAMS ((bfd *)); + (bfd *); /* Return TRUE if address "naturally" sign extends, or -1 if not elf. */ extern int bfd_get_sign_extend_vma - PARAMS ((bfd *)); + (bfd *); extern bfd_boolean bfd_m68k_elf32_create_embedded_relocs - PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *, - char **)); + (bfd *, struct bfd_link_info *, struct sec *, struct sec *, char **); extern bfd_boolean bfd_mips_elf32_create_embedded_relocs - PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *, - char **)); + (bfd *, struct bfd_link_info *, struct sec *, struct sec *, char **); /* SunOS shared library support routines for the linker. */ extern struct bfd_link_needed_list *bfd_sunos_get_needed_list - PARAMS ((bfd *, struct bfd_link_info *)); + (bfd *, struct bfd_link_info *); extern bfd_boolean bfd_sunos_record_link_assignment - PARAMS ((bfd *, struct bfd_link_info *, const char *)); + (bfd *, struct bfd_link_info *, const char *); extern bfd_boolean bfd_sunos_size_dynamic_sections - PARAMS ((bfd *, struct bfd_link_info *, struct sec **, struct sec **, - struct sec **)); + (bfd *, struct bfd_link_info *, struct sec **, struct sec **, struct sec **); /* Linux shared library support routines for the linker. */ extern bfd_boolean bfd_i386linux_size_dynamic_sections - PARAMS ((bfd *, struct bfd_link_info *)); + (bfd *, struct bfd_link_info *); extern bfd_boolean bfd_m68klinux_size_dynamic_sections - PARAMS ((bfd *, struct bfd_link_info *)); + (bfd *, struct bfd_link_info *); extern bfd_boolean bfd_sparclinux_size_dynamic_sections - PARAMS ((bfd *, struct bfd_link_info *)); + (bfd *, struct bfd_link_info *); /* mmap hacks */ @@ -752,7 +709,7 @@ typedef struct _bfd_window_internal bfd_ typedef struct _bfd_window { /* What the user asked for. */ - PTR data; + void *data; bfd_size_type size; /* The actual window used by BFD. Small user-requested read-only regions sharing a page may share a single window into the object @@ -765,36 +722,35 @@ typedef struct _bfd_window bfd_window; extern void bfd_init_window - PARAMS ((bfd_window *)); + (bfd_window *); extern void bfd_free_window - PARAMS ((bfd_window *)); + (bfd_window *); extern bfd_boolean bfd_get_file_window - PARAMS ((bfd *, file_ptr, bfd_size_type, bfd_window *, bfd_boolean)); + (bfd *, file_ptr, bfd_size_type, bfd_window *, bfd_boolean); /* XCOFF support routines for the linker. */ extern bfd_boolean bfd_xcoff_link_record_set - PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, - bfd_size_type)); + (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_size_type); extern bfd_boolean bfd_xcoff_import_symbol - PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, - bfd_vma, const char *, const char *, const char *, unsigned int)); + (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_vma, + const char *, const char *, const char *, unsigned int); extern bfd_boolean bfd_xcoff_export_symbol - PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *)); + (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *); extern bfd_boolean bfd_xcoff_link_count_reloc - PARAMS ((bfd *, struct bfd_link_info *, const char *)); + (bfd *, struct bfd_link_info *, const char *); extern bfd_boolean bfd_xcoff_record_link_assignment - PARAMS ((bfd *, struct bfd_link_info *, const char *)); + (bfd *, struct bfd_link_info *, const char *); extern bfd_boolean bfd_xcoff_size_dynamic_sections - PARAMS ((bfd *, struct bfd_link_info *, const char *, const char *, - unsigned long, unsigned long, unsigned long, bfd_boolean, - int, bfd_boolean, bfd_boolean, struct sec **, bfd_boolean)); + (bfd *, struct bfd_link_info *, const char *, const char *, + unsigned long, unsigned long, unsigned long, bfd_boolean, + int, bfd_boolean, bfd_boolean, struct sec **, bfd_boolean); extern bfd_boolean bfd_xcoff_link_generate_rtinit - PARAMS ((bfd *, const char *, const char *, bfd_boolean)); + (bfd *, const char *, const char *, bfd_boolean); /* XCOFF support routines for ar. */ extern bfd_boolean bfd_xcoff_ar_archive_set_magic - PARAMS ((bfd *, char *)); + (bfd *, char *); /* Externally visible COFF routines. */ @@ -804,65 +760,68 @@ union internal_auxent; #endif extern bfd_boolean bfd_coff_get_syment - PARAMS ((bfd *, struct symbol_cache_entry *, struct internal_syment *)); + (bfd *, struct symbol_cache_entry *, struct internal_syment *); extern bfd_boolean bfd_coff_get_auxent - PARAMS ((bfd *, struct symbol_cache_entry *, int, union internal_auxent *)); + (bfd *, struct symbol_cache_entry *, int, union internal_auxent *); extern bfd_boolean bfd_coff_set_symbol_class - PARAMS ((bfd *, struct symbol_cache_entry *, unsigned int)); + (bfd *, struct symbol_cache_entry *, unsigned int); extern bfd_boolean bfd_m68k_coff_create_embedded_relocs - PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *, - char **)); + (bfd *, struct bfd_link_info *, struct sec *, struct sec *, char **); /* ARM Interworking support. Called from linker. */ extern bfd_boolean bfd_arm_allocate_interworking_sections - PARAMS ((struct bfd_link_info *)); + (struct bfd_link_info *); extern bfd_boolean bfd_arm_process_before_allocation - PARAMS ((bfd *, struct bfd_link_info *, int)); + (bfd *, struct bfd_link_info *, int); extern bfd_boolean bfd_arm_get_bfd_for_interworking - PARAMS ((bfd *, struct bfd_link_info *)); + (bfd *, struct bfd_link_info *); /* PE ARM Interworking support. Called from linker. */ extern bfd_boolean bfd_arm_pe_allocate_interworking_sections - PARAMS ((struct bfd_link_info *)); + (struct bfd_link_info *); extern bfd_boolean bfd_arm_pe_process_before_allocation - PARAMS ((bfd *, struct bfd_link_info *, int)); + (bfd *, struct bfd_link_info *, int); extern bfd_boolean bfd_arm_pe_get_bfd_for_interworking - PARAMS ((bfd *, struct bfd_link_info *)); + (bfd *, struct bfd_link_info *); /* ELF ARM Interworking support. Called from linker. */ extern bfd_boolean bfd_elf32_arm_allocate_interworking_sections - PARAMS ((struct bfd_link_info *)); + (struct bfd_link_info *); extern bfd_boolean bfd_elf32_arm_process_before_allocation - PARAMS ((bfd *, struct bfd_link_info *, int)); + (bfd *, struct bfd_link_info *, int); extern bfd_boolean bfd_elf32_arm_get_bfd_for_interworking - PARAMS ((bfd *, struct bfd_link_info *)); + (bfd *, struct bfd_link_info *); extern bfd_boolean bfd_elf32_arm_add_glue_sections_to_bfd - PARAMS ((bfd *, struct bfd_link_info *)); + (bfd *, struct bfd_link_info *); /* ARM Note section processing. */ extern bfd_boolean bfd_arm_merge_machines - PARAMS ((bfd *, bfd *)); + (bfd *, bfd *); extern bfd_boolean bfd_arm_update_notes - PARAMS ((bfd *, const char *)); + (bfd *, const char *); extern unsigned int bfd_arm_get_mach_from_notes - PARAMS ((bfd *, const char *)); + (bfd *, const char *); /* TI COFF load page support. */ extern void bfd_ticoff_set_section_load_page - PARAMS ((struct sec *, int)); + (struct sec *, int); extern int bfd_ticoff_get_section_load_page - PARAMS ((struct sec *)); + (struct sec *); + +/* H8/300 functions. */ +extern bfd_vma bfd_h8300_pad_address + (bfd *, bfd_vma); diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/bfd-in2.h binutils-2.14.90.0.5/bfd/bfd-in2.h --- binutils-2.14.90.0.4.1/bfd/bfd-in2.h 2003-05-23 07:18:52.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/bfd-in2.h 2003-07-23 08:08:08.000000000 -0700 @@ -1,7 +1,7 @@ -/* DO NOT EDIT! -*- buffer-read-only: t -*- This file is automatically - generated from "bfd-in.h", "init.c", "opncls.c", "libbfd.c", - "bfdio.c", "bfdwin.c", "section.c", "archures.c", "reloc.c", - "syms.c", "bfd.c", "archive.c", "corefile.c", "targets.c", "format.c", +/* DO NOT EDIT! -*- buffer-read-only: t -*- This file is automatically + generated from "bfd-in.h", "init.c", "opncls.c", "libbfd.c", + "bfdio.c", "bfdwin.c", "section.c", "archures.c", "reloc.c", + "syms.c", "bfd.c", "archive.c", "corefile.c", "targets.c", "format.c", "linker.c" and "simple.c". Run "make headers" in your build bfd/ to regenerate. */ @@ -179,10 +179,8 @@ typedef unsigned long bfd_size_type; typedef bfd_signed_vma file_ptr; typedef bfd_vma ufile_ptr; -extern void bfd_sprintf_vma - PARAMS ((bfd *, char *, bfd_vma)); -extern void bfd_fprintf_vma - PARAMS ((bfd *, PTR, bfd_vma)); +extern void bfd_sprintf_vma (bfd *, char *, bfd_vma); +extern void bfd_fprintf_vma (bfd *, void *, bfd_vma); #define printf_vma(x) fprintf_vma(stdout,x) #define bfd_printf_vma(abfd,x) bfd_fprintf_vma (abfd,stdout,x) @@ -368,8 +366,7 @@ typedef struct _symbol_info /* Get the name of a stabs type code. */ -extern const char *bfd_get_stab_name - PARAMS ((int)); +extern const char *bfd_get_stab_name (int); /* Hash table routines. There is no way to free up a hash table. */ @@ -403,80 +400,73 @@ struct bfd_hash_table each function should be written to allocate a new block of memory only if the argument is NULL. */ struct bfd_hash_entry *(*newfunc) - PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); + (struct bfd_hash_entry *, struct bfd_hash_table *, const char *); /* An objalloc for this hash table. This is a struct objalloc *, - but we use PTR to avoid requiring the inclusion of objalloc.h. */ - PTR memory; + but we use void * to avoid requiring the inclusion of objalloc.h. */ + void *memory; }; /* Initialize a hash table. */ extern bfd_boolean bfd_hash_table_init - PARAMS ((struct bfd_hash_table *, - struct bfd_hash_entry *(*) (struct bfd_hash_entry *, - struct bfd_hash_table *, - const char *))); + (struct bfd_hash_table *, + struct bfd_hash_entry *(*) (struct bfd_hash_entry *, + struct bfd_hash_table *, + const char *)); /* Initialize a hash table specifying a size. */ extern bfd_boolean bfd_hash_table_init_n - PARAMS ((struct bfd_hash_table *, - struct bfd_hash_entry *(*) (struct bfd_hash_entry *, - struct bfd_hash_table *, - const char *), - unsigned int size)); + (struct bfd_hash_table *, + struct bfd_hash_entry *(*) (struct bfd_hash_entry *, + struct bfd_hash_table *, + const char *), + unsigned int size); /* Free up a hash table. */ extern void bfd_hash_table_free - PARAMS ((struct bfd_hash_table *)); + (struct bfd_hash_table *); /* Look up a string in a hash table. If CREATE is TRUE, a new entry will be created for this string if one does not already exist. The COPY argument must be TRUE if this routine should copy the string into newly allocated memory when adding an entry. */ extern struct bfd_hash_entry *bfd_hash_lookup - PARAMS ((struct bfd_hash_table *, const char *, bfd_boolean create, - bfd_boolean copy)); + (struct bfd_hash_table *, const char *, bfd_boolean create, + bfd_boolean copy); /* Replace an entry in a hash table. */ extern void bfd_hash_replace - PARAMS ((struct bfd_hash_table *, struct bfd_hash_entry *old, - struct bfd_hash_entry *nw)); + (struct bfd_hash_table *, struct bfd_hash_entry *old, + struct bfd_hash_entry *nw); /* Base method for creating a hash table entry. */ extern struct bfd_hash_entry *bfd_hash_newfunc - PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, - const char *)); + (struct bfd_hash_entry *, struct bfd_hash_table *, const char *); /* Grab some space for a hash table entry. */ -extern PTR bfd_hash_allocate - PARAMS ((struct bfd_hash_table *, unsigned int)); +extern void *bfd_hash_allocate + (struct bfd_hash_table *, unsigned int); /* Traverse a hash table in a random order, calling a function on each element. If the function returns FALSE, the traversal stops. The INFO argument is passed to the function. */ extern void bfd_hash_traverse - PARAMS ((struct bfd_hash_table *, - bfd_boolean (*) (struct bfd_hash_entry *, PTR), - PTR info)); + (struct bfd_hash_table *, + bfd_boolean (*) (struct bfd_hash_entry *, void *), + void *info); -#define COFF_SWAP_TABLE (PTR) &bfd_coff_std_swap_table +#define COFF_SWAP_TABLE (void *) &bfd_coff_std_swap_table /* User program access to BFD facilities. */ /* Direct I/O routines, for programs which know more about the object file than BFD does. Use higher level routines if possible. */ -extern bfd_size_type bfd_bread - PARAMS ((PTR, bfd_size_type, bfd *)); -extern bfd_size_type bfd_bwrite - PARAMS ((const PTR, bfd_size_type, bfd *)); -extern int bfd_seek - PARAMS ((bfd *, file_ptr, int)); -extern ufile_ptr bfd_tell - PARAMS ((bfd *)); -extern int bfd_flush - PARAMS ((bfd *)); -extern int bfd_stat - PARAMS ((bfd *, struct stat *)); +extern bfd_size_type bfd_bread (void *, bfd_size_type, bfd *); +extern bfd_size_type bfd_bwrite (const void *, bfd_size_type, bfd *); +extern int bfd_seek (bfd *, file_ptr, int); +extern ufile_ptr bfd_tell (bfd *); +extern int bfd_flush (bfd *); +extern int bfd_stat (bfd *, struct stat *); /* Deprecated old routines. */ #if __GNUC__ @@ -494,8 +484,7 @@ extern int bfd_stat (warn_deprecated ("bfd_write", (const char *) 0, 0, (const char *) 0),\ bfd_bwrite ((BUF), (ELTSIZE) * (NITEMS), (ABFD))) #endif -extern void warn_deprecated - PARAMS ((const char *, const char *, int, const char *)); +extern void warn_deprecated (const char *, const char *, int, const char *); /* Cast from const char * to char * so that caller can assign to a char * without a warning. */ @@ -534,58 +523,38 @@ extern void warn_deprecated #define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = bool), TRUE) extern bfd_boolean bfd_cache_close - PARAMS ((bfd *abfd)); + (bfd *abfd); /* NB: This declaration should match the autogenerated one in libbfd.h. */ extern bfd_boolean bfd_record_phdr - PARAMS ((bfd *, unsigned long, bfd_boolean, flagword, bfd_boolean, bfd_vma, - bfd_boolean, bfd_boolean, unsigned int, struct sec **)); + (bfd *, unsigned long, bfd_boolean, flagword, bfd_boolean, bfd_vma, + bfd_boolean, bfd_boolean, unsigned int, struct sec **); /* Byte swapping routines. */ -bfd_vma bfd_getb64 - PARAMS ((const unsigned char *)); -bfd_vma bfd_getl64 - PARAMS ((const unsigned char *)); -bfd_signed_vma bfd_getb_signed_64 - PARAMS ((const unsigned char *)); -bfd_signed_vma bfd_getl_signed_64 - PARAMS ((const unsigned char *)); -bfd_vma bfd_getb32 - PARAMS ((const unsigned char *)); -bfd_vma bfd_getl32 - PARAMS ((const unsigned char *)); -bfd_signed_vma bfd_getb_signed_32 - PARAMS ((const unsigned char *)); -bfd_signed_vma bfd_getl_signed_32 - PARAMS ((const unsigned char *)); -bfd_vma bfd_getb16 - PARAMS ((const unsigned char *)); -bfd_vma bfd_getl16 - PARAMS ((const unsigned char *)); -bfd_signed_vma bfd_getb_signed_16 - PARAMS ((const unsigned char *)); -bfd_signed_vma bfd_getl_signed_16 - PARAMS ((const unsigned char *)); -void bfd_putb64 - PARAMS ((bfd_vma, unsigned char *)); -void bfd_putl64 - PARAMS ((bfd_vma, unsigned char *)); -void bfd_putb32 - PARAMS ((bfd_vma, unsigned char *)); -void bfd_putl32 - PARAMS ((bfd_vma, unsigned char *)); -void bfd_putb16 - PARAMS ((bfd_vma, unsigned char *)); -void bfd_putl16 - PARAMS ((bfd_vma, unsigned char *)); +bfd_vma bfd_getb64 (const unsigned char *); +bfd_vma bfd_getl64 (const unsigned char *); +bfd_signed_vma bfd_getb_signed_64 (const unsigned char *); +bfd_signed_vma bfd_getl_signed_64 (const unsigned char *); +bfd_vma bfd_getb32 (const unsigned char *); +bfd_vma bfd_getl32 (const unsigned char *); +bfd_signed_vma bfd_getb_signed_32 (const unsigned char *); +bfd_signed_vma bfd_getl_signed_32 (const unsigned char *); +bfd_vma bfd_getb16 (const unsigned char *); +bfd_vma bfd_getl16 (const unsigned char *); +bfd_signed_vma bfd_getb_signed_16 (const unsigned char *); +bfd_signed_vma bfd_getl_signed_16 (const unsigned char *); +void bfd_putb64 (bfd_vma, unsigned char *); +void bfd_putl64 (bfd_vma, unsigned char *); +void bfd_putb32 (bfd_vma, unsigned char *); +void bfd_putl32 (bfd_vma, unsigned char *); +void bfd_putb16 (bfd_vma, unsigned char *); +void bfd_putl16 (bfd_vma, unsigned char *); /* Byte swapping routines which take size and endiannes as arguments. */ -bfd_vma bfd_get_bits - PARAMS ((bfd_byte *, int, bfd_boolean)); -void bfd_put_bits - PARAMS ((bfd_vma, bfd_byte *, int, bfd_boolean)); +bfd_vma bfd_get_bits (bfd_byte *, int, bfd_boolean); +void bfd_put_bits (bfd_vma, bfd_byte *, int, bfd_boolean); /* Externally visible ECOFF routines. */ @@ -599,55 +568,48 @@ struct bfd_link_hash_entry; struct bfd_elf_version_tree; #endif extern bfd_vma bfd_ecoff_get_gp_value - PARAMS ((bfd * abfd)); + (bfd * abfd); extern bfd_boolean bfd_ecoff_set_gp_value - PARAMS ((bfd *abfd, bfd_vma gp_value)); + (bfd *abfd, bfd_vma gp_value); extern bfd_boolean bfd_ecoff_set_regmasks - PARAMS ((bfd *abfd, unsigned long gprmask, unsigned long fprmask, - unsigned long *cprmask)); -extern PTR bfd_ecoff_debug_init - PARAMS ((bfd *output_bfd, struct ecoff_debug_info *output_debug, - const struct ecoff_debug_swap *output_swap, - struct bfd_link_info *)); + (bfd *abfd, unsigned long gprmask, unsigned long fprmask, + unsigned long *cprmask); +extern void *bfd_ecoff_debug_init + (bfd *output_bfd, struct ecoff_debug_info *output_debug, + const struct ecoff_debug_swap *output_swap, struct bfd_link_info *); extern void bfd_ecoff_debug_free - PARAMS ((PTR handle, bfd *output_bfd, struct ecoff_debug_info *output_debug, - const struct ecoff_debug_swap *output_swap, - struct bfd_link_info *)); + (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug, + const struct ecoff_debug_swap *output_swap, struct bfd_link_info *); extern bfd_boolean bfd_ecoff_debug_accumulate - PARAMS ((PTR handle, bfd *output_bfd, struct ecoff_debug_info *output_debug, - const struct ecoff_debug_swap *output_swap, - bfd *input_bfd, struct ecoff_debug_info *input_debug, - const struct ecoff_debug_swap *input_swap, - struct bfd_link_info *)); + (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug, + const struct ecoff_debug_swap *output_swap, bfd *input_bfd, + struct ecoff_debug_info *input_debug, + const struct ecoff_debug_swap *input_swap, struct bfd_link_info *); extern bfd_boolean bfd_ecoff_debug_accumulate_other - PARAMS ((PTR handle, bfd *output_bfd, struct ecoff_debug_info *output_debug, - const struct ecoff_debug_swap *output_swap, bfd *input_bfd, - struct bfd_link_info *)); + (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug, + const struct ecoff_debug_swap *output_swap, bfd *input_bfd, + struct bfd_link_info *); extern bfd_boolean bfd_ecoff_debug_externals - PARAMS ((bfd *abfd, struct ecoff_debug_info *debug, - const struct ecoff_debug_swap *swap, - bfd_boolean relocateable, - bfd_boolean (*get_extr) (struct symbol_cache_entry *, - struct ecoff_extr *), - void (*set_index) (struct symbol_cache_entry *, - bfd_size_type))); + (bfd *abfd, struct ecoff_debug_info *debug, + const struct ecoff_debug_swap *swap, bfd_boolean relocatable, + bfd_boolean (*get_extr) (struct symbol_cache_entry *, struct ecoff_extr *), + void (*set_index) (struct symbol_cache_entry *, bfd_size_type)); extern bfd_boolean bfd_ecoff_debug_one_external - PARAMS ((bfd *abfd, struct ecoff_debug_info *debug, - const struct ecoff_debug_swap *swap, - const char *name, struct ecoff_extr *esym)); + (bfd *abfd, struct ecoff_debug_info *debug, + const struct ecoff_debug_swap *swap, const char *name, + struct ecoff_extr *esym); extern bfd_size_type bfd_ecoff_debug_size - PARAMS ((bfd *abfd, struct ecoff_debug_info *debug, - const struct ecoff_debug_swap *swap)); + (bfd *abfd, struct ecoff_debug_info *debug, + const struct ecoff_debug_swap *swap); extern bfd_boolean bfd_ecoff_write_debug - PARAMS ((bfd *abfd, struct ecoff_debug_info *debug, - const struct ecoff_debug_swap *swap, file_ptr where)); + (bfd *abfd, struct ecoff_debug_info *debug, + const struct ecoff_debug_swap *swap, file_ptr where); extern bfd_boolean bfd_ecoff_write_accumulated_debug - PARAMS ((PTR handle, bfd *abfd, struct ecoff_debug_info *debug, - const struct ecoff_debug_swap *swap, - struct bfd_link_info *info, file_ptr where)); + (void *handle, bfd *abfd, struct ecoff_debug_info *debug, + const struct ecoff_debug_swap *swap, + struct bfd_link_info *info, file_ptr where); extern bfd_boolean bfd_mips_ecoff_create_embedded_relocs - PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *, - char **)); + (bfd *, struct bfd_link_info *, struct sec *, struct sec *, char **); /* Externally visible ELF routines. */ @@ -659,37 +621,35 @@ struct bfd_link_needed_list }; extern bfd_boolean bfd_elf_record_link_assignment - PARAMS ((bfd *, struct bfd_link_info *, const char *, bfd_boolean)); + (bfd *, struct bfd_link_info *, const char *, bfd_boolean); extern struct bfd_link_needed_list *bfd_elf_get_needed_list - PARAMS ((bfd *, struct bfd_link_info *)); + (bfd *, struct bfd_link_info *); extern bfd_boolean bfd_elf_get_bfd_needed_list - PARAMS ((bfd *, struct bfd_link_needed_list **)); + (bfd *, struct bfd_link_needed_list **); extern bfd_boolean bfd_elf32_size_dynamic_sections - PARAMS ((bfd *, const char *, const char *, const char *, - const char * const *, struct bfd_link_info *, struct sec **, - struct bfd_elf_version_tree *)); + (bfd *, const char *, const char *, const char *, const char * const *, + struct bfd_link_info *, struct sec **, struct bfd_elf_version_tree *); extern bfd_boolean bfd_elf64_size_dynamic_sections - PARAMS ((bfd *, const char *, const char *, const char *, - const char * const *, struct bfd_link_info *, struct sec **, - struct bfd_elf_version_tree *)); + (bfd *, const char *, const char *, const char *, const char * const *, + struct bfd_link_info *, struct sec **, struct bfd_elf_version_tree *); extern void bfd_elf_set_dt_needed_name - PARAMS ((bfd *, const char *)); + (bfd *, const char *); extern void bfd_elf_set_dt_needed_soname - PARAMS ((bfd *, const char *)); + (bfd *, const char *); extern const char *bfd_elf_get_dt_soname - PARAMS ((bfd *)); + (bfd *); extern struct bfd_link_needed_list *bfd_elf_get_runpath_list - PARAMS ((bfd *, struct bfd_link_info *)); + (bfd *, struct bfd_link_info *); extern bfd_boolean bfd_elf32_discard_info - PARAMS ((bfd *, struct bfd_link_info *)); + (bfd *, struct bfd_link_info *); extern bfd_boolean bfd_elf64_discard_info - PARAMS ((bfd *, struct bfd_link_info *)); + (bfd *, struct bfd_link_info *); /* Return an upper bound on the number of bytes required to store a copy of ABFD's program header table entries. Return -1 if an error occurs; bfd_get_error will return an appropriate code. */ extern long bfd_get_elf_phdr_upper_bound - PARAMS ((bfd *abfd)); + (bfd *abfd); /* Copy ABFD's program header table entries to *PHDRS. The entries will be stored as an array of Elf_Internal_Phdr structures, as @@ -699,7 +659,7 @@ extern long bfd_get_elf_phdr_upper_bound Return the number of program header table entries read, or -1 if an error occurs; bfd_get_error will return an appropriate code. */ extern int bfd_get_elf_phdrs - PARAMS ((bfd *abfd, void *phdrs)); + (bfd *abfd, void *phdrs); /* Create a new BFD as if by bfd_openr. Rather than opening a file, reconstruct an ELF file by reading the segments out of remote memory @@ -714,42 +674,39 @@ extern int bfd_get_elf_phdrs be a BFD for an ELF target with the word size and byte order found in the remote memory. */ extern bfd *bfd_elf_bfd_from_remote_memory - PARAMS ((bfd *templ, bfd_vma ehdr_vma, bfd_vma *loadbasep, - int (*target_read_memory) (bfd_vma vma, char *myaddr, int len))); + (bfd *templ, bfd_vma ehdr_vma, bfd_vma *loadbasep, + int (*target_read_memory) (bfd_vma vma, char *myaddr, int len)); /* Return the arch_size field of an elf bfd, or -1 if not elf. */ extern int bfd_get_arch_size - PARAMS ((bfd *)); + (bfd *); /* Return TRUE if address "naturally" sign extends, or -1 if not elf. */ extern int bfd_get_sign_extend_vma - PARAMS ((bfd *)); + (bfd *); extern bfd_boolean bfd_m68k_elf32_create_embedded_relocs - PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *, - char **)); + (bfd *, struct bfd_link_info *, struct sec *, struct sec *, char **); extern bfd_boolean bfd_mips_elf32_create_embedded_relocs - PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *, - char **)); + (bfd *, struct bfd_link_info *, struct sec *, struct sec *, char **); /* SunOS shared library support routines for the linker. */ extern struct bfd_link_needed_list *bfd_sunos_get_needed_list - PARAMS ((bfd *, struct bfd_link_info *)); + (bfd *, struct bfd_link_info *); extern bfd_boolean bfd_sunos_record_link_assignment - PARAMS ((bfd *, struct bfd_link_info *, const char *)); + (bfd *, struct bfd_link_info *, const char *); extern bfd_boolean bfd_sunos_size_dynamic_sections - PARAMS ((bfd *, struct bfd_link_info *, struct sec **, struct sec **, - struct sec **)); + (bfd *, struct bfd_link_info *, struct sec **, struct sec **, struct sec **); /* Linux shared library support routines for the linker. */ extern bfd_boolean bfd_i386linux_size_dynamic_sections - PARAMS ((bfd *, struct bfd_link_info *)); + (bfd *, struct bfd_link_info *); extern bfd_boolean bfd_m68klinux_size_dynamic_sections - PARAMS ((bfd *, struct bfd_link_info *)); + (bfd *, struct bfd_link_info *); extern bfd_boolean bfd_sparclinux_size_dynamic_sections - PARAMS ((bfd *, struct bfd_link_info *)); + (bfd *, struct bfd_link_info *); /* mmap hacks */ @@ -759,7 +716,7 @@ typedef struct _bfd_window_internal bfd_ typedef struct _bfd_window { /* What the user asked for. */ - PTR data; + void *data; bfd_size_type size; /* The actual window used by BFD. Small user-requested read-only regions sharing a page may share a single window into the object @@ -772,36 +729,35 @@ typedef struct _bfd_window bfd_window; extern void bfd_init_window - PARAMS ((bfd_window *)); + (bfd_window *); extern void bfd_free_window - PARAMS ((bfd_window *)); + (bfd_window *); extern bfd_boolean bfd_get_file_window - PARAMS ((bfd *, file_ptr, bfd_size_type, bfd_window *, bfd_boolean)); + (bfd *, file_ptr, bfd_size_type, bfd_window *, bfd_boolean); /* XCOFF support routines for the linker. */ extern bfd_boolean bfd_xcoff_link_record_set - PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, - bfd_size_type)); + (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_size_type); extern bfd_boolean bfd_xcoff_import_symbol - PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, - bfd_vma, const char *, const char *, const char *, unsigned int)); + (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_vma, + const char *, const char *, const char *, unsigned int); extern bfd_boolean bfd_xcoff_export_symbol - PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *)); + (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *); extern bfd_boolean bfd_xcoff_link_count_reloc - PARAMS ((bfd *, struct bfd_link_info *, const char *)); + (bfd *, struct bfd_link_info *, const char *); extern bfd_boolean bfd_xcoff_record_link_assignment - PARAMS ((bfd *, struct bfd_link_info *, const char *)); + (bfd *, struct bfd_link_info *, const char *); extern bfd_boolean bfd_xcoff_size_dynamic_sections - PARAMS ((bfd *, struct bfd_link_info *, const char *, const char *, - unsigned long, unsigned long, unsigned long, bfd_boolean, - int, bfd_boolean, bfd_boolean, struct sec **, bfd_boolean)); + (bfd *, struct bfd_link_info *, const char *, const char *, + unsigned long, unsigned long, unsigned long, bfd_boolean, + int, bfd_boolean, bfd_boolean, struct sec **, bfd_boolean); extern bfd_boolean bfd_xcoff_link_generate_rtinit - PARAMS ((bfd *, const char *, const char *, bfd_boolean)); + (bfd *, const char *, const char *, bfd_boolean); /* XCOFF support routines for ar. */ extern bfd_boolean bfd_xcoff_ar_archive_set_magic - PARAMS ((bfd *, char *)); + (bfd *, char *); /* Externally visible COFF routines. */ @@ -811,156 +767,157 @@ union internal_auxent; #endif extern bfd_boolean bfd_coff_get_syment - PARAMS ((bfd *, struct symbol_cache_entry *, struct internal_syment *)); + (bfd *, struct symbol_cache_entry *, struct internal_syment *); extern bfd_boolean bfd_coff_get_auxent - PARAMS ((bfd *, struct symbol_cache_entry *, int, union internal_auxent *)); + (bfd *, struct symbol_cache_entry *, int, union internal_auxent *); extern bfd_boolean bfd_coff_set_symbol_class - PARAMS ((bfd *, struct symbol_cache_entry *, unsigned int)); + (bfd *, struct symbol_cache_entry *, unsigned int); extern bfd_boolean bfd_m68k_coff_create_embedded_relocs - PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *, - char **)); + (bfd *, struct bfd_link_info *, struct sec *, struct sec *, char **); /* ARM Interworking support. Called from linker. */ extern bfd_boolean bfd_arm_allocate_interworking_sections - PARAMS ((struct bfd_link_info *)); + (struct bfd_link_info *); extern bfd_boolean bfd_arm_process_before_allocation - PARAMS ((bfd *, struct bfd_link_info *, int)); + (bfd *, struct bfd_link_info *, int); extern bfd_boolean bfd_arm_get_bfd_for_interworking - PARAMS ((bfd *, struct bfd_link_info *)); + (bfd *, struct bfd_link_info *); /* PE ARM Interworking support. Called from linker. */ extern bfd_boolean bfd_arm_pe_allocate_interworking_sections - PARAMS ((struct bfd_link_info *)); + (struct bfd_link_info *); extern bfd_boolean bfd_arm_pe_process_before_allocation - PARAMS ((bfd *, struct bfd_link_info *, int)); + (bfd *, struct bfd_link_info *, int); extern bfd_boolean bfd_arm_pe_get_bfd_for_interworking - PARAMS ((bfd *, struct bfd_link_info *)); + (bfd *, struct bfd_link_info *); /* ELF ARM Interworking support. Called from linker. */ extern bfd_boolean bfd_elf32_arm_allocate_interworking_sections - PARAMS ((struct bfd_link_info *)); + (struct bfd_link_info *); extern bfd_boolean bfd_elf32_arm_process_before_allocation - PARAMS ((bfd *, struct bfd_link_info *, int)); + (bfd *, struct bfd_link_info *, int); extern bfd_boolean bfd_elf32_arm_get_bfd_for_interworking - PARAMS ((bfd *, struct bfd_link_info *)); + (bfd *, struct bfd_link_info *); extern bfd_boolean bfd_elf32_arm_add_glue_sections_to_bfd - PARAMS ((bfd *, struct bfd_link_info *)); + (bfd *, struct bfd_link_info *); /* ARM Note section processing. */ extern bfd_boolean bfd_arm_merge_machines - PARAMS ((bfd *, bfd *)); + (bfd *, bfd *); extern bfd_boolean bfd_arm_update_notes - PARAMS ((bfd *, const char *)); + (bfd *, const char *); extern unsigned int bfd_arm_get_mach_from_notes - PARAMS ((bfd *, const char *)); + (bfd *, const char *); /* TI COFF load page support. */ extern void bfd_ticoff_set_section_load_page - PARAMS ((struct sec *, int)); + (struct sec *, int); extern int bfd_ticoff_get_section_load_page - PARAMS ((struct sec *)); + (struct sec *); + +/* H8/300 functions. */ +extern bfd_vma bfd_h8300_pad_address + (bfd *, bfd_vma); /* Extracted from init.c. */ -void -bfd_init PARAMS ((void)); +void bfd_init (void); /* Extracted from opncls.c. */ -bfd * -bfd_openr PARAMS ((const char *filename, const char *target)); +bfd *bfd_openr (const char *filename, const char *target); + +bfd *bfd_fdopenr (const char *filename, const char *target, int fd); + +bfd *bfd_openstreamr (const char *, const char *, void *); -bfd * -bfd_fdopenr PARAMS ((const char *filename, const char *target, int fd)); +bfd *bfd_openw (const char *filename, const char *target); -bfd * -bfd_openstreamr PARAMS ((const char *, const char *, PTR)); +bfd_boolean bfd_close (bfd *abfd); -bfd * -bfd_openw PARAMS ((const char *filename, const char *target)); +bfd_boolean bfd_close_all_done (bfd *); -bfd_boolean -bfd_close PARAMS ((bfd *abfd)); +bfd *bfd_create (const char *filename, bfd *templ); -bfd_boolean -bfd_close_all_done PARAMS ((bfd *)); +bfd_boolean bfd_make_writable (bfd *abfd); -bfd * -bfd_create PARAMS ((const char *filename, bfd *templ)); +bfd_boolean bfd_make_readable (bfd *abfd); -bfd_boolean -bfd_make_writable PARAMS ((bfd *abfd)); +unsigned long bfd_calc_gnu_debuglink_crc32 + (unsigned long crc, const unsigned char *buf, bfd_size_type len); -bfd_boolean -bfd_make_readable PARAMS ((bfd *abfd)); +char *bfd_follow_gnu_debuglink (bfd *abfd, const char *dir); -char * -bfd_follow_gnu_debuglink PARAMS ((bfd *abfd, const char *dir)); +struct sec *bfd_create_gnu_debuglink_section + (bfd *abfd, const char *filename); + +bfd_boolean bfd_fill_in_gnu_debuglink_section + (bfd *abfd, struct sec *sect, const char *filename); /* Extracted from libbfd.c. */ /* Byte swapping macros for user section data. */ #define bfd_put_8(abfd, val, ptr) \ - ((void) (*((unsigned char *) (ptr)) = (unsigned char) (val))) + ((void) (*((unsigned char *) (ptr)) = (unsigned char) (val))) #define bfd_put_signed_8 \ - bfd_put_8 + bfd_put_8 #define bfd_get_8(abfd, ptr) \ - (*(unsigned char *) (ptr) & 0xff) + (*(unsigned char *) (ptr) & 0xff) #define bfd_get_signed_8(abfd, ptr) \ - (((*(unsigned char *) (ptr) & 0xff) ^ 0x80) - 0x80) + (((*(unsigned char *) (ptr) & 0xff) ^ 0x80) - 0x80) #define bfd_put_16(abfd, val, ptr) \ - BFD_SEND(abfd, bfd_putx16, ((val),(ptr))) + BFD_SEND (abfd, bfd_putx16, ((val),(ptr))) #define bfd_put_signed_16 \ - bfd_put_16 + bfd_put_16 #define bfd_get_16(abfd, ptr) \ - BFD_SEND(abfd, bfd_getx16, (ptr)) + BFD_SEND (abfd, bfd_getx16, (ptr)) #define bfd_get_signed_16(abfd, ptr) \ - BFD_SEND (abfd, bfd_getx_signed_16, (ptr)) + BFD_SEND (abfd, bfd_getx_signed_16, (ptr)) #define bfd_put_32(abfd, val, ptr) \ - BFD_SEND(abfd, bfd_putx32, ((val),(ptr))) + BFD_SEND (abfd, bfd_putx32, ((val),(ptr))) #define bfd_put_signed_32 \ - bfd_put_32 + bfd_put_32 #define bfd_get_32(abfd, ptr) \ - BFD_SEND(abfd, bfd_getx32, (ptr)) + BFD_SEND (abfd, bfd_getx32, (ptr)) #define bfd_get_signed_32(abfd, ptr) \ - BFD_SEND(abfd, bfd_getx_signed_32, (ptr)) + BFD_SEND (abfd, bfd_getx_signed_32, (ptr)) #define bfd_put_64(abfd, val, ptr) \ - BFD_SEND(abfd, bfd_putx64, ((val), (ptr))) + BFD_SEND (abfd, bfd_putx64, ((val), (ptr))) #define bfd_put_signed_64 \ - bfd_put_64 + bfd_put_64 #define bfd_get_64(abfd, ptr) \ - BFD_SEND(abfd, bfd_getx64, (ptr)) + BFD_SEND (abfd, bfd_getx64, (ptr)) #define bfd_get_signed_64(abfd, ptr) \ - BFD_SEND(abfd, bfd_getx_signed_64, (ptr)) + BFD_SEND (abfd, bfd_getx_signed_64, (ptr)) -#define bfd_get(bits, abfd, ptr) \ - ( (bits) == 8 ? (bfd_vma) bfd_get_8 (abfd, ptr) \ - : (bits) == 16 ? bfd_get_16 (abfd, ptr) \ - : (bits) == 32 ? bfd_get_32 (abfd, ptr) \ - : (bits) == 64 ? bfd_get_64 (abfd, ptr) \ - : (abort (), (bfd_vma) - 1)) - -#define bfd_put(bits, abfd, val, ptr) \ - ( (bits) == 8 ? bfd_put_8 (abfd, val, ptr) \ - : (bits) == 16 ? bfd_put_16 (abfd, val, ptr) \ - : (bits) == 32 ? bfd_put_32 (abfd, val, ptr) \ - : (bits) == 64 ? bfd_put_64 (abfd, val, ptr) \ - : (abort (), (void) 0)) +#define bfd_get(bits, abfd, ptr) \ + ((bits) == 8 ? (bfd_vma) bfd_get_8 (abfd, ptr) \ + : (bits) == 16 ? bfd_get_16 (abfd, ptr) \ + : (bits) == 32 ? bfd_get_32 (abfd, ptr) \ + : (bits) == 64 ? bfd_get_64 (abfd, ptr) \ + : (abort (), (bfd_vma) - 1)) + +#define bfd_put(bits, abfd, val, ptr) \ + ((bits) == 8 ? bfd_put_8 (abfd, val, ptr) \ + : (bits) == 16 ? bfd_put_16 (abfd, val, ptr) \ + : (bits) == 32 ? bfd_put_32 (abfd, val, ptr) \ + : (bits) == 64 ? bfd_put_64 (abfd, val, ptr) \ + : (abort (), (void) 0)) /* Byte swapping macros for file header data. */ @@ -1050,11 +1007,9 @@ bfd_follow_gnu_debuglink PARAMS ((bfd *a /* Extracted from bfdio.c. */ -long -bfd_get_mtime PARAMS ((bfd *abfd)); +long bfd_get_mtime (bfd *abfd); -long -bfd_get_size PARAMS ((bfd *abfd)); +long bfd_get_size (bfd *abfd); /* Extracted from bfdwin.c. */ /* Extracted from section.c. */ @@ -1308,8 +1263,10 @@ typedef struct sec /* Nonzero if this section needs the relax finalize pass. */ unsigned int need_finalize_relax:1; + /* Nonzero if this section has a gp reloc. */ + unsigned int has_gp_reloc:1; + /* Usused bits. */ - unsigned int flag12:1; unsigned int flag13:1; unsigned int flag14:1; unsigned int flag15:1; @@ -1382,7 +1339,7 @@ typedef struct sec file_ptr line_filepos; /* Pointer to data for applications. */ - PTR userdata; + void *userdata; /* If the SEC_IN_MEMORY flag is set, this points to the actual contents. */ @@ -1400,6 +1357,10 @@ typedef struct sec /* Optional information about a COMDAT entry; NULL if not COMDAT. */ struct bfd_comdat_info *comdat; + /* Points to the kept section if this section is a link-once section, + and is discarded. */ + struct sec *kept_section; + /* When a section is being output, this value changes as more linenumbers are written out. */ file_ptr moving_line_filepos; @@ -1407,7 +1368,7 @@ typedef struct sec /* What the section number is in the target world. */ int target_index; - PTR used_by_bfd; + void *used_by_bfd; /* If this is a constructor section then here is a list of the relocations created to relocate items within it. */ @@ -1492,61 +1453,48 @@ extern const struct symbol_cache_entry * } \ while (0) -void -bfd_section_list_clear PARAMS ((bfd *)); +void bfd_section_list_clear (bfd *); + +asection *bfd_get_section_by_name (bfd *abfd, const char *name); + +char *bfd_get_unique_section_name + (bfd *abfd, const char *templat, int *count); + +asection *bfd_make_section_old_way (bfd *abfd, const char *name); -asection * -bfd_get_section_by_name PARAMS ((bfd *abfd, const char *name)); +asection *bfd_make_section_anyway (bfd *abfd, const char *name); -char * -bfd_get_unique_section_name PARAMS ((bfd *abfd, - const char *templat, - int *count)); - -asection * -bfd_make_section_old_way PARAMS ((bfd *abfd, const char *name)); - -asection * -bfd_make_section_anyway PARAMS ((bfd *abfd, const char *name)); - -asection * -bfd_make_section PARAMS ((bfd *, const char *name)); - -bfd_boolean -bfd_set_section_flags PARAMS ((bfd *abfd, asection *sec, flagword flags)); - -void -bfd_map_over_sections PARAMS ((bfd *abfd, - void (*func) (bfd *abfd, - asection *sect, - PTR obj), - PTR obj)); - -bfd_boolean -bfd_set_section_size PARAMS ((bfd *abfd, asection *sec, bfd_size_type val)); - -bfd_boolean -bfd_set_section_contents PARAMS ((bfd *abfd, asection *section, - PTR data, file_ptr offset, - bfd_size_type count)); - -bfd_boolean -bfd_get_section_contents PARAMS ((bfd *abfd, asection *section, - PTR location, file_ptr offset, - bfd_size_type count)); - -bfd_boolean -bfd_copy_private_section_data PARAMS ((bfd *ibfd, asection *isec, - bfd *obfd, asection *osec)); +asection *bfd_make_section (bfd *, const char *name); + +bfd_boolean bfd_set_section_flags + (bfd *abfd, asection *sec, flagword flags); + +void bfd_map_over_sections + (bfd *abfd, + void (*func) (bfd *abfd, asection *sect, void *obj), + void *obj); + +bfd_boolean bfd_set_section_size + (bfd *abfd, asection *sec, bfd_size_type val); + +bfd_boolean bfd_set_section_contents + (bfd *abfd, asection *section, void *data, file_ptr offset, + bfd_size_type count); + +bfd_boolean bfd_get_section_contents + (bfd *abfd, asection *section, void *location, file_ptr offset, + bfd_size_type count); + +bfd_boolean bfd_copy_private_section_data + (bfd *ibfd, asection *isec, bfd *obfd, asection *osec); #define bfd_copy_private_section_data(ibfd, isection, obfd, osection) \ BFD_SEND (obfd, _bfd_copy_private_section_data, \ (ibfd, isection, obfd, osection)) -void -_bfd_strip_section_from_output PARAMS ((struct bfd_link_info *info, asection *section)); +void _bfd_strip_section_from_output + (struct bfd_link_info *info, asection *section); -bfd_boolean -bfd_generic_discard_group PARAMS ((bfd *abfd, asection *group)); +bfd_boolean bfd_generic_discard_group (bfd *abfd, asection *group); /* Extracted from archures.c. */ enum bfd_architecture @@ -1620,6 +1568,7 @@ enum bfd_architecture #define bfd_mach_mips5400 5400 #define bfd_mach_mips5500 5500 #define bfd_mach_mips6000 6000 +#define bfd_mach_mips7000 7000 #define bfd_mach_mips8000 8000 #define bfd_mach_mips10000 10000 #define bfd_mach_mips12000 12000 @@ -1652,6 +1601,7 @@ enum bfd_architecture #define bfd_mach_h8300hn 4 #define bfd_mach_h8300sn 5 #define bfd_mach_h8300sx 6 +#define bfd_mach_h8300sxn 7 bfd_arch_pdp11, /* DEC PDP-11 */ bfd_arch_powerpc, /* PowerPC */ #define bfd_mach_ppc 32 @@ -1745,6 +1695,7 @@ enum bfd_architecture bfd_arch_mn10300, /* Matsushita MN10300 */ #define bfd_mach_mn10300 300 #define bfd_mach_am33 330 +#define bfd_mach_am33_2 332 bfd_arch_fr30, #define bfd_mach_fr30 0x46523330 bfd_arch_frv, @@ -1792,7 +1743,7 @@ enum bfd_architecture #define bfd_mach_msp43 43 #define bfd_mach_msp44 44 #define bfd_mach_msp15 15 -#define bfd_mach_msp16 16 +#define bfd_mach_msp16 16 bfd_arch_xtensa, /* Tensilica's Xtensa cores. */ #define bfd_mach_xtensa 1 bfd_arch_last @@ -1813,62 +1764,45 @@ typedef struct bfd_arch_info all the entries for that arch can be accessed via <>. */ bfd_boolean the_default; const struct bfd_arch_info * (*compatible) - PARAMS ((const struct bfd_arch_info *a, - const struct bfd_arch_info *b)); + (const struct bfd_arch_info *a, const struct bfd_arch_info *b); - bfd_boolean (*scan) PARAMS ((const struct bfd_arch_info *, const char *)); + bfd_boolean (*scan) (const struct bfd_arch_info *, const char *); const struct bfd_arch_info *next; } bfd_arch_info_type; -const char * -bfd_printable_name PARAMS ((bfd *abfd)); +const char *bfd_printable_name (bfd *abfd); -const bfd_arch_info_type * -bfd_scan_arch PARAMS ((const char *string)); +const bfd_arch_info_type *bfd_scan_arch (const char *string); -const char ** -bfd_arch_list PARAMS ((void)); +const char **bfd_arch_list (void); -const bfd_arch_info_type * -bfd_arch_get_compatible PARAMS (( - const bfd *abfd, - const bfd *bbfd, - bfd_boolean accept_unknowns)); +const bfd_arch_info_type *bfd_arch_get_compatible + (const bfd *abfd, const bfd *bbfd, bfd_boolean accept_unknowns); -void -bfd_set_arch_info PARAMS ((bfd *abfd, const bfd_arch_info_type *arg)); +void bfd_set_arch_info (bfd *abfd, const bfd_arch_info_type *arg); -enum bfd_architecture -bfd_get_arch PARAMS ((bfd *abfd)); +enum bfd_architecture bfd_get_arch (bfd *abfd); -unsigned long -bfd_get_mach PARAMS ((bfd *abfd)); +unsigned long bfd_get_mach (bfd *abfd); -unsigned int -bfd_arch_bits_per_byte PARAMS ((bfd *abfd)); +unsigned int bfd_arch_bits_per_byte (bfd *abfd); -unsigned int -bfd_arch_bits_per_address PARAMS ((bfd *abfd)); +unsigned int bfd_arch_bits_per_address (bfd *abfd); -const bfd_arch_info_type * -bfd_get_arch_info PARAMS ((bfd *abfd)); +const bfd_arch_info_type *bfd_get_arch_info (bfd *abfd); -const bfd_arch_info_type * -bfd_lookup_arch PARAMS ((enum bfd_architecture - arch, - unsigned long machine)); +const bfd_arch_info_type *bfd_lookup_arch + (enum bfd_architecture arch, unsigned long machine); -const char * -bfd_printable_arch_mach PARAMS ((enum bfd_architecture arch, unsigned long machine)); +const char *bfd_printable_arch_mach + (enum bfd_architecture arch, unsigned long machine); -unsigned int -bfd_octets_per_byte PARAMS ((bfd *abfd)); +unsigned int bfd_octets_per_byte (bfd *abfd); -unsigned int -bfd_arch_mach_octets_per_byte PARAMS ((enum bfd_architecture arch, - unsigned long machine)); +unsigned int bfd_arch_mach_octets_per_byte + (enum bfd_architecture arch, unsigned long machine); /* Extracted from reloc.c. */ typedef enum bfd_reloc_status @@ -1980,8 +1914,8 @@ struct reloc_howto_struct strange relocation methods to be accomodated (e.g., i960 callj instructions). */ bfd_reloc_status_type (*special_function) - PARAMS ((bfd *, arelent *, struct symbol_cache_entry *, PTR, asection *, - bfd *, char **)); + (bfd *, arelent *, struct symbol_cache_entry *, void *, asection *, + bfd *, char **); /* The textual name of the relocation type. */ char *name; @@ -2038,7 +1972,7 @@ struct reloc_howto_struct #define HOWTO_PREPARE(relocation, symbol) \ { \ - if (symbol != (asymbol *) NULL) \ + if (symbol != NULL) \ { \ if (bfd_is_com_section (symbol->section)) \ { \ @@ -2051,8 +1985,7 @@ struct reloc_howto_struct } \ } -unsigned int -bfd_get_reloc_size PARAMS ((reloc_howto_type *)); +unsigned int bfd_get_reloc_size (reloc_howto_type *); typedef struct relent_chain { @@ -2061,27 +1994,27 @@ typedef struct relent_chain } arelent_chain; -bfd_reloc_status_type -bfd_check_overflow PARAMS ((enum complain_overflow how, +bfd_reloc_status_type bfd_check_overflow + (enum complain_overflow how, unsigned int bitsize, unsigned int rightshift, unsigned int addrsize, - bfd_vma relocation)); + bfd_vma relocation); -bfd_reloc_status_type -bfd_perform_relocation PARAMS ((bfd *abfd, +bfd_reloc_status_type bfd_perform_relocation + (bfd *abfd, arelent *reloc_entry, - PTR data, + void *data, asection *input_section, bfd *output_bfd, - char **error_message)); + char **error_message); -bfd_reloc_status_type -bfd_install_relocation PARAMS ((bfd *abfd, +bfd_reloc_status_type bfd_install_relocation + (bfd *abfd, arelent *reloc_entry, - PTR data, bfd_vma data_start, + void *data, bfd_vma data_start, asection *input_section, - char **error_message)); + char **error_message); enum bfd_reloc_code_real { _dummy_first_bfd_reloc_code_real, @@ -2401,6 +2334,33 @@ to compensate for the borrow when the lo BFD_RELOC_FRV_GPRELHI, BFD_RELOC_FRV_GPRELLO, +/* This is a 24bit GOT-relative reloc for the mn10300. */ + BFD_RELOC_MN10300_GOTOFF24, + +/* This is a 32bit GOT-relative reloc for the mn10300, offset by two bytes +in the instruction. */ + BFD_RELOC_MN10300_GOT32, + +/* This is a 24bit GOT-relative reloc for the mn10300, offset by two bytes +in the instruction. */ + BFD_RELOC_MN10300_GOT24, + +/* This is a 16bit GOT-relative reloc for the mn10300, offset by two bytes +in the instruction. */ + BFD_RELOC_MN10300_GOT16, + +/* Copy symbol at runtime. */ + BFD_RELOC_MN10300_COPY, + +/* Create GOT entry. */ + BFD_RELOC_MN10300_GLOB_DAT, + +/* Create PLT entry. */ + BFD_RELOC_MN10300_JMP_SLOT, + +/* Adjust by program base. */ + BFD_RELOC_MN10300_RELATIVE, + /* i386/elf relocations */ BFD_RELOC_386_GOT32, @@ -3178,6 +3138,12 @@ into 22 bits. */ BFD_RELOC_390_TLS_DTPOFF, BFD_RELOC_390_TLS_TPOFF, +/* Long displacement extension. */ + BFD_RELOC_390_20, + BFD_RELOC_390_GOT20, + BFD_RELOC_390_GOTPLT20, + BFD_RELOC_390_TLS_GOTIE20, + /* Scenix IP2K - 9-bit register number / data address */ BFD_RELOC_IP2K_FR9, @@ -3480,23 +3446,22 @@ instruction opcode. */ BFD_RELOC_XTENSA_OP1, BFD_RELOC_XTENSA_OP2, -/* Xtensa relocation to mark that the assembler expanded the +/* Xtensa relocation to mark that the assembler expanded the instructions from an original target. The expansion size is encoded in the reloc size. */ BFD_RELOC_XTENSA_ASM_EXPAND, -/* Xtensa relocation to mark that the linker should simplify -assembler-expanded instructions. This is commonly used -internally by the linker after analysis of a +/* Xtensa relocation to mark that the linker should simplify +assembler-expanded instructions. This is commonly used +internally by the linker after analysis of a BFD_RELOC_XTENSA_ASM_EXPAND. */ BFD_RELOC_XTENSA_ASM_SIMPLIFY, BFD_RELOC_UNUSED }; typedef enum bfd_reloc_code_real bfd_reloc_code_real_type; -reloc_howto_type * -bfd_reloc_type_lookup PARAMS ((bfd *abfd, bfd_reloc_code_real_type code)); +reloc_howto_type *bfd_reloc_type_lookup + (bfd *abfd, bfd_reloc_code_real_type code); -const char * -bfd_get_reloc_code_name PARAMS ((bfd_reloc_code_real_type code)); +const char *bfd_get_reloc_code_name (bfd_reloc_code_real_type code); /* Extracted from syms.c. */ @@ -3617,7 +3582,7 @@ typedef struct symbol_cache_entry /* Back end special data. */ union { - PTR p; + void *p; bfd_vma i; } udata; @@ -3627,49 +3592,41 @@ asymbol; #define bfd_get_symtab_upper_bound(abfd) \ BFD_SEND (abfd, _bfd_get_symtab_upper_bound, (abfd)) -bfd_boolean -bfd_is_local_label PARAMS ((bfd *abfd, asymbol *sym)); +bfd_boolean bfd_is_local_label (bfd *abfd, asymbol *sym); -bfd_boolean -bfd_is_local_label_name PARAMS ((bfd *abfd, const char *name)); +bfd_boolean bfd_is_local_label_name (bfd *abfd, const char *name); #define bfd_is_local_label_name(abfd, name) \ - BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name)) + BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name)) #define bfd_canonicalize_symtab(abfd, location) \ - BFD_SEND (abfd, _bfd_canonicalize_symtab,\ - (abfd, location)) + BFD_SEND (abfd, _bfd_canonicalize_symtab, (abfd, location)) -bfd_boolean -bfd_set_symtab PARAMS ((bfd *abfd, asymbol **location, unsigned int count)); +bfd_boolean bfd_set_symtab + (bfd *abfd, asymbol **location, unsigned int count); -void -bfd_print_symbol_vandf PARAMS ((bfd *abfd, PTR file, asymbol *symbol)); +void bfd_print_symbol_vandf (bfd *abfd, void *file, asymbol *symbol); #define bfd_make_empty_symbol(abfd) \ - BFD_SEND (abfd, _bfd_make_empty_symbol, (abfd)) + BFD_SEND (abfd, _bfd_make_empty_symbol, (abfd)) -asymbol * -_bfd_generic_make_empty_symbol PARAMS ((bfd *)); +asymbol *_bfd_generic_make_empty_symbol (bfd *); #define bfd_make_debug_symbol(abfd,ptr,size) \ - BFD_SEND (abfd, _bfd_make_debug_symbol, (abfd, ptr, size)) + BFD_SEND (abfd, _bfd_make_debug_symbol, (abfd, ptr, size)) -int -bfd_decode_symclass PARAMS ((asymbol *symbol)); +int bfd_decode_symclass (asymbol *symbol); -bfd_boolean -bfd_is_undefined_symclass PARAMS ((int symclass)); +bfd_boolean bfd_is_undefined_symclass (int symclass); -void -bfd_symbol_info PARAMS ((asymbol *symbol, symbol_info *ret)); +void bfd_symbol_info (asymbol *symbol, symbol_info *ret); -bfd_boolean -bfd_copy_private_symbol_data PARAMS ((bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym)); +bfd_boolean bfd_copy_private_symbol_data + (bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym); #define bfd_copy_private_symbol_data(ibfd, isymbol, obfd, osymbol) \ - BFD_SEND (obfd, _bfd_copy_private_symbol_data, \ - (ibfd, isymbol, obfd, osymbol)) + BFD_SEND (obfd, _bfd_copy_private_symbol_data, \ + (ibfd, isymbol, obfd, osymbol)) /* Extracted from bfd.c. */ struct bfd @@ -3690,7 +3647,7 @@ struct bfd is the result of an fopen on the filename. However, if the BFD_IN_MEMORY flag is set, then iostream is actually a pointer to a bfd_in_memory struct. */ - PTR iostream; + void *iostream; /* Is the file descriptor being cached? That is, can it be closed as needed, and re-opened when accessed later? */ @@ -3776,7 +3733,7 @@ struct bfd const struct bfd_arch_info *arch_info; /* Stuff only useful for archives. */ - PTR arelt_data; + void *arelt_data; struct bfd *my_archive; /* The containing archive BFD. */ struct bfd *next; /* The next BFD in the archive. */ struct bfd *archive_head; /* The first BFD in the archive. */ @@ -3826,17 +3783,17 @@ struct bfd struct bfd_pef_data_struct *pef_data; struct bfd_pef_xlib_data_struct *pef_xlib_data; struct bfd_sym_data_struct *sym_data; - PTR any; + void *any; } tdata; /* Used by the application to hold private data. */ - PTR usrdata; + void *usrdata; /* Where all the allocated stuff under this BFD goes. This is a - struct objalloc *, but we use PTR to avoid requiring the inclusion of - objalloc.h. */ - PTR memory; + struct objalloc *, but we use void * to avoid requiring the inclusion + of objalloc.h. */ + void *memory; }; typedef enum bfd_error @@ -3864,79 +3821,57 @@ typedef enum bfd_error } bfd_error_type; -bfd_error_type -bfd_get_error PARAMS ((void)); +bfd_error_type bfd_get_error (void); -void -bfd_set_error PARAMS ((bfd_error_type error_tag)); +void bfd_set_error (bfd_error_type error_tag); -const char * -bfd_errmsg PARAMS ((bfd_error_type error_tag)); +const char *bfd_errmsg (bfd_error_type error_tag); -void -bfd_perror PARAMS ((const char *message)); +void bfd_perror (const char *message); -typedef void (*bfd_error_handler_type) PARAMS ((const char *, ...)); +typedef void (*bfd_error_handler_type) (const char *, ...); -bfd_error_handler_type -bfd_set_error_handler PARAMS ((bfd_error_handler_type)); +bfd_error_handler_type bfd_set_error_handler (bfd_error_handler_type); -void -bfd_set_error_program_name PARAMS ((const char *)); +void bfd_set_error_program_name (const char *); -bfd_error_handler_type -bfd_get_error_handler PARAMS ((void)); +bfd_error_handler_type bfd_get_error_handler (void); -const char * -bfd_archive_filename PARAMS ((bfd *)); +const char *bfd_archive_filename (bfd *); -long -bfd_get_reloc_upper_bound PARAMS ((bfd *abfd, asection *sect)); +long bfd_get_reloc_upper_bound (bfd *abfd, asection *sect); -long -bfd_canonicalize_reloc PARAMS ((bfd *abfd, - asection *sec, - arelent **loc, - asymbol **syms)); +long bfd_canonicalize_reloc + (bfd *abfd, asection *sec, arelent **loc, asymbol **syms); -void -bfd_set_reloc PARAMS ((bfd *abfd, asection *sec, arelent **rel, unsigned int count)); +void bfd_set_reloc + (bfd *abfd, asection *sec, arelent **rel, unsigned int count); -bfd_boolean -bfd_set_file_flags PARAMS ((bfd *abfd, flagword flags)); +bfd_boolean bfd_set_file_flags (bfd *abfd, flagword flags); -int -bfd_get_arch_size PARAMS ((bfd *abfd)); +int bfd_get_arch_size (bfd *abfd); -int -bfd_get_sign_extend_vma PARAMS ((bfd *abfd)); +int bfd_get_sign_extend_vma (bfd *abfd); -bfd_boolean -bfd_set_start_address PARAMS ((bfd *abfd, bfd_vma vma)); +bfd_boolean bfd_set_start_address (bfd *abfd, bfd_vma vma); -unsigned int -bfd_get_gp_size PARAMS ((bfd *abfd)); +unsigned int bfd_get_gp_size (bfd *abfd); -void -bfd_set_gp_size PARAMS ((bfd *abfd, unsigned int i)); +void bfd_set_gp_size (bfd *abfd, unsigned int i); -bfd_vma -bfd_scan_vma PARAMS ((const char *string, const char **end, int base)); +bfd_vma bfd_scan_vma (const char *string, const char **end, int base); -bfd_boolean -bfd_copy_private_bfd_data PARAMS ((bfd *ibfd, bfd *obfd)); +bfd_boolean bfd_copy_private_bfd_data (bfd *ibfd, bfd *obfd); #define bfd_copy_private_bfd_data(ibfd, obfd) \ BFD_SEND (obfd, _bfd_copy_private_bfd_data, \ (ibfd, obfd)) -bfd_boolean -bfd_merge_private_bfd_data PARAMS ((bfd *ibfd, bfd *obfd)); +bfd_boolean bfd_merge_private_bfd_data (bfd *ibfd, bfd *obfd); #define bfd_merge_private_bfd_data(ibfd, obfd) \ BFD_SEND (obfd, _bfd_merge_private_bfd_data, \ (ibfd, obfd)) -bfd_boolean -bfd_set_private_flags PARAMS ((bfd *abfd, flagword flags)); +bfd_boolean bfd_set_private_flags (bfd *abfd, flagword flags); #define bfd_set_private_flags(abfd, flags) \ BFD_SEND (abfd, _bfd_set_private_flags, (abfd, flags)) @@ -4011,17 +3946,15 @@ bfd_set_private_flags PARAMS ((bfd *abfd BFD_SEND (abfd, _bfd_canonicalize_dynamic_reloc, (abfd, arels, asyms)) extern bfd_byte *bfd_get_relocated_section_contents - PARAMS ((bfd *, struct bfd_link_info *, - struct bfd_link_order *, bfd_byte *, - bfd_boolean, asymbol **)); + (bfd *, struct bfd_link_info *, struct bfd_link_order *, bfd_byte *, + bfd_boolean, asymbol **); -bfd_boolean -bfd_alt_mach_code PARAMS ((bfd *abfd, int alternative)); +bfd_boolean bfd_alt_mach_code (bfd *abfd, int alternative); struct bfd_preserve { - PTR marker; - PTR tdata; + void *marker; + void *tdata; flagword flags; const struct bfd_arch_info *arch_info; struct sec *sections; @@ -4030,38 +3963,31 @@ struct bfd_preserve struct bfd_hash_table section_htab; }; -bfd_boolean -bfd_preserve_save PARAMS ((bfd *, struct bfd_preserve *)); +bfd_boolean bfd_preserve_save (bfd *, struct bfd_preserve *); -void -bfd_preserve_restore PARAMS ((bfd *, struct bfd_preserve *)); +void bfd_preserve_restore (bfd *, struct bfd_preserve *); -void -bfd_preserve_finish PARAMS ((bfd *, struct bfd_preserve *)); +void bfd_preserve_finish (bfd *, struct bfd_preserve *); /* Extracted from archive.c. */ -symindex -bfd_get_next_mapent PARAMS ((bfd *abfd, symindex previous, carsym **sym)); +symindex bfd_get_next_mapent + (bfd *abfd, symindex previous, carsym **sym); -bfd_boolean -bfd_set_archive_head PARAMS ((bfd *output, bfd *new_head)); +bfd_boolean bfd_set_archive_head (bfd *output, bfd *new_head); -bfd * -bfd_openr_next_archived_file PARAMS ((bfd *archive, bfd *previous)); +bfd *bfd_openr_next_archived_file (bfd *archive, bfd *previous); /* Extracted from corefile.c. */ -const char * -bfd_core_file_failing_command PARAMS ((bfd *abfd)); +const char *bfd_core_file_failing_command (bfd *abfd); -int -bfd_core_file_failing_signal PARAMS ((bfd *abfd)); +int bfd_core_file_failing_signal (bfd *abfd); -bfd_boolean -core_file_matches_executable_p PARAMS ((bfd *core_bfd, bfd *exec_bfd)); +bfd_boolean core_file_matches_executable_p + (bfd *core_bfd, bfd *exec_bfd); /* Extracted from targets.c. */ #define BFD_SEND(bfd, message, arglist) \ - ((*((bfd)->xvec->message)) arglist) + ((*((bfd)->xvec->message)) arglist) #ifdef DEBUG_BFD_SEND #undef BFD_SEND @@ -4071,7 +3997,7 @@ core_file_matches_executable_p PARAMS (( (bfd_assert (__FILE__,__LINE__), NULL)) #endif #define BFD_SEND_FMT(bfd, message, arglist) \ - (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist) + (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist) #ifdef DEBUG_BFD_SEND #undef BFD_SEND_FMT @@ -4149,307 +4075,303 @@ typedef struct bfd_target /* Entries for byte swapping for data. These are different from the other entry points, since they don't take a BFD asthe first argument. Certain other handlers could do the same. */ - bfd_vma (*bfd_getx64) PARAMS ((const bfd_byte *)); - bfd_signed_vma (*bfd_getx_signed_64) PARAMS ((const bfd_byte *)); - void (*bfd_putx64) PARAMS ((bfd_vma, bfd_byte *)); - bfd_vma (*bfd_getx32) PARAMS ((const bfd_byte *)); - bfd_signed_vma (*bfd_getx_signed_32) PARAMS ((const bfd_byte *)); - void (*bfd_putx32) PARAMS ((bfd_vma, bfd_byte *)); - bfd_vma (*bfd_getx16) PARAMS ((const bfd_byte *)); - bfd_signed_vma (*bfd_getx_signed_16) PARAMS ((const bfd_byte *)); - void (*bfd_putx16) PARAMS ((bfd_vma, bfd_byte *)); + bfd_vma (*bfd_getx64) (const bfd_byte *); + bfd_signed_vma (*bfd_getx_signed_64) (const bfd_byte *); + void (*bfd_putx64) (bfd_vma, bfd_byte *); + bfd_vma (*bfd_getx32) (const bfd_byte *); + bfd_signed_vma (*bfd_getx_signed_32) (const bfd_byte *); + void (*bfd_putx32) (bfd_vma, bfd_byte *); + bfd_vma (*bfd_getx16) (const bfd_byte *); + bfd_signed_vma (*bfd_getx_signed_16) (const bfd_byte *); + void (*bfd_putx16) (bfd_vma, bfd_byte *); /* Byte swapping for the headers. */ - bfd_vma (*bfd_h_getx64) PARAMS ((const bfd_byte *)); - bfd_signed_vma (*bfd_h_getx_signed_64) PARAMS ((const bfd_byte *)); - void (*bfd_h_putx64) PARAMS ((bfd_vma, bfd_byte *)); - bfd_vma (*bfd_h_getx32) PARAMS ((const bfd_byte *)); - bfd_signed_vma (*bfd_h_getx_signed_32) PARAMS ((const bfd_byte *)); - void (*bfd_h_putx32) PARAMS ((bfd_vma, bfd_byte *)); - bfd_vma (*bfd_h_getx16) PARAMS ((const bfd_byte *)); - bfd_signed_vma (*bfd_h_getx_signed_16) PARAMS ((const bfd_byte *)); - void (*bfd_h_putx16) PARAMS ((bfd_vma, bfd_byte *)); + bfd_vma (*bfd_h_getx64) (const bfd_byte *); + bfd_signed_vma (*bfd_h_getx_signed_64) (const bfd_byte *); + void (*bfd_h_putx64) (bfd_vma, bfd_byte *); + bfd_vma (*bfd_h_getx32) (const bfd_byte *); + bfd_signed_vma (*bfd_h_getx_signed_32) (const bfd_byte *); + void (*bfd_h_putx32) (bfd_vma, bfd_byte *); + bfd_vma (*bfd_h_getx16) (const bfd_byte *); + bfd_signed_vma (*bfd_h_getx_signed_16) (const bfd_byte *); + void (*bfd_h_putx16) (bfd_vma, bfd_byte *); /* Format dependent routines: these are vectors of entry points within the target vector structure, one for each format to check. */ /* Check the format of a file being read. Return a <> or zero. */ - const struct bfd_target *(*_bfd_check_format[bfd_type_end]) PARAMS ((bfd *)); + const struct bfd_target *(*_bfd_check_format[bfd_type_end]) (bfd *); /* Set the format of a file being written. */ - bfd_boolean (*_bfd_set_format[bfd_type_end]) PARAMS ((bfd *)); + bfd_boolean (*_bfd_set_format[bfd_type_end]) (bfd *); /* Write cached information into a file being written, at <>. */ - bfd_boolean (*_bfd_write_contents[bfd_type_end]) PARAMS ((bfd *)); + bfd_boolean (*_bfd_write_contents[bfd_type_end]) (bfd *); /* Generic entry points. */ #define BFD_JUMP_TABLE_GENERIC(NAME) \ -CONCAT2 (NAME,_close_and_cleanup), \ -CONCAT2 (NAME,_bfd_free_cached_info), \ -CONCAT2 (NAME,_new_section_hook), \ -CONCAT2 (NAME,_get_section_contents), \ -CONCAT2 (NAME,_get_section_contents_in_window) + NAME##_close_and_cleanup, \ + NAME##_bfd_free_cached_info, \ + NAME##_new_section_hook, \ + NAME##_get_section_contents, \ + NAME##_get_section_contents_in_window /* Called when the BFD is being closed to do any necessary cleanup. */ - bfd_boolean (*_close_and_cleanup) PARAMS ((bfd *)); + bfd_boolean (*_close_and_cleanup) (bfd *); /* Ask the BFD to free all cached information. */ - bfd_boolean (*_bfd_free_cached_info) PARAMS ((bfd *)); + bfd_boolean (*_bfd_free_cached_info) (bfd *); /* Called when a new section is created. */ - bfd_boolean (*_new_section_hook) PARAMS ((bfd *, sec_ptr)); + bfd_boolean (*_new_section_hook) (bfd *, sec_ptr); /* Read the contents of a section. */ bfd_boolean (*_bfd_get_section_contents) - PARAMS ((bfd *, sec_ptr, PTR, file_ptr, bfd_size_type)); + (bfd *, sec_ptr, void *, file_ptr, bfd_size_type); bfd_boolean (*_bfd_get_section_contents_in_window) - PARAMS ((bfd *, sec_ptr, bfd_window *, file_ptr, bfd_size_type)); + (bfd *, sec_ptr, bfd_window *, file_ptr, bfd_size_type); /* Entry points to copy private data. */ #define BFD_JUMP_TABLE_COPY(NAME) \ -CONCAT2 (NAME,_bfd_copy_private_bfd_data), \ -CONCAT2 (NAME,_bfd_merge_private_bfd_data), \ -CONCAT2 (NAME,_bfd_copy_private_section_data), \ -CONCAT2 (NAME,_bfd_copy_private_symbol_data), \ -CONCAT2 (NAME,_bfd_set_private_flags), \ -CONCAT2 (NAME,_bfd_print_private_bfd_data) \ + NAME##_bfd_copy_private_bfd_data, \ + NAME##_bfd_merge_private_bfd_data, \ + NAME##_bfd_copy_private_section_data, \ + NAME##_bfd_copy_private_symbol_data, \ + NAME##_bfd_set_private_flags, \ + NAME##_bfd_print_private_bfd_data + /* Called to copy BFD general private data from one object file to another. */ - bfd_boolean (*_bfd_copy_private_bfd_data) PARAMS ((bfd *, bfd *)); + bfd_boolean (*_bfd_copy_private_bfd_data) (bfd *, bfd *); /* Called to merge BFD general private data from one object file to a common output file when linking. */ - bfd_boolean (*_bfd_merge_private_bfd_data) PARAMS ((bfd *, bfd *)); + bfd_boolean (*_bfd_merge_private_bfd_data) (bfd *, bfd *); /* Called to copy BFD private section data from one object file to another. */ bfd_boolean (*_bfd_copy_private_section_data) - PARAMS ((bfd *, sec_ptr, bfd *, sec_ptr)); + (bfd *, sec_ptr, bfd *, sec_ptr); /* Called to copy BFD private symbol data from one symbol to another. */ bfd_boolean (*_bfd_copy_private_symbol_data) - PARAMS ((bfd *, asymbol *, bfd *, asymbol *)); + (bfd *, asymbol *, bfd *, asymbol *); /* Called to set private backend flags. */ - bfd_boolean (*_bfd_set_private_flags) PARAMS ((bfd *, flagword)); + bfd_boolean (*_bfd_set_private_flags) (bfd *, flagword); /* Called to print private BFD data. */ - bfd_boolean (*_bfd_print_private_bfd_data) PARAMS ((bfd *, PTR)); + bfd_boolean (*_bfd_print_private_bfd_data) (bfd *, void *); /* Core file entry points. */ #define BFD_JUMP_TABLE_CORE(NAME) \ -CONCAT2 (NAME,_core_file_failing_command), \ -CONCAT2 (NAME,_core_file_failing_signal), \ -CONCAT2 (NAME,_core_file_matches_executable_p) - char * (*_core_file_failing_command) PARAMS ((bfd *)); - int (*_core_file_failing_signal) PARAMS ((bfd *)); - bfd_boolean (*_core_file_matches_executable_p) PARAMS ((bfd *, bfd *)); + NAME##_core_file_failing_command, \ + NAME##_core_file_failing_signal, \ + NAME##_core_file_matches_executable_p + + char * (*_core_file_failing_command) (bfd *); + int (*_core_file_failing_signal) (bfd *); + bfd_boolean (*_core_file_matches_executable_p) (bfd *, bfd *); /* Archive entry points. */ #define BFD_JUMP_TABLE_ARCHIVE(NAME) \ -CONCAT2 (NAME,_slurp_armap), \ -CONCAT2 (NAME,_slurp_extended_name_table), \ -CONCAT2 (NAME,_construct_extended_name_table), \ -CONCAT2 (NAME,_truncate_arname), \ -CONCAT2 (NAME,_write_armap), \ -CONCAT2 (NAME,_read_ar_hdr), \ -CONCAT2 (NAME,_openr_next_archived_file), \ -CONCAT2 (NAME,_get_elt_at_index), \ -CONCAT2 (NAME,_generic_stat_arch_elt), \ -CONCAT2 (NAME,_update_armap_timestamp) - bfd_boolean (*_bfd_slurp_armap) PARAMS ((bfd *)); - bfd_boolean (*_bfd_slurp_extended_name_table) PARAMS ((bfd *)); + NAME##_slurp_armap, \ + NAME##_slurp_extended_name_table, \ + NAME##_construct_extended_name_table, \ + NAME##_truncate_arname, \ + NAME##_write_armap, \ + NAME##_read_ar_hdr, \ + NAME##_openr_next_archived_file, \ + NAME##_get_elt_at_index, \ + NAME##_generic_stat_arch_elt, \ + NAME##_update_armap_timestamp + + bfd_boolean (*_bfd_slurp_armap) (bfd *); + bfd_boolean (*_bfd_slurp_extended_name_table) (bfd *); bfd_boolean (*_bfd_construct_extended_name_table) - PARAMS ((bfd *, char **, bfd_size_type *, const char **)); - void (*_bfd_truncate_arname) PARAMS ((bfd *, const char *, char *)); + (bfd *, char **, bfd_size_type *, const char **); + void (*_bfd_truncate_arname) (bfd *, const char *, char *); bfd_boolean (*write_armap) - PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int)); - PTR (*_bfd_read_ar_hdr_fn) PARAMS ((bfd *)); - bfd * (*openr_next_archived_file) PARAMS ((bfd *, bfd *)); -#define bfd_get_elt_at_index(b,i) BFD_SEND(b, _bfd_get_elt_at_index, (b,i)) - bfd * (*_bfd_get_elt_at_index) PARAMS ((bfd *, symindex)); - int (*_bfd_stat_arch_elt) PARAMS ((bfd *, struct stat *)); - bfd_boolean (*_bfd_update_armap_timestamp) PARAMS ((bfd *)); + (bfd *, unsigned int, struct orl *, unsigned int, int); + void * (*_bfd_read_ar_hdr_fn) (bfd *); + bfd * (*openr_next_archived_file) (bfd *, bfd *); +#define bfd_get_elt_at_index(b,i) BFD_SEND (b, _bfd_get_elt_at_index, (b,i)) + bfd * (*_bfd_get_elt_at_index) (bfd *, symindex); + int (*_bfd_stat_arch_elt) (bfd *, struct stat *); + bfd_boolean (*_bfd_update_armap_timestamp) (bfd *); /* Entry points used for symbols. */ #define BFD_JUMP_TABLE_SYMBOLS(NAME) \ -CONCAT2 (NAME,_get_symtab_upper_bound), \ -CONCAT2 (NAME,_get_symtab), \ -CONCAT2 (NAME,_make_empty_symbol), \ -CONCAT2 (NAME,_print_symbol), \ -CONCAT2 (NAME,_get_symbol_info), \ -CONCAT2 (NAME,_bfd_is_local_label_name), \ -CONCAT2 (NAME,_get_lineno), \ -CONCAT2 (NAME,_find_nearest_line), \ -CONCAT2 (NAME,_bfd_make_debug_symbol), \ -CONCAT2 (NAME,_read_minisymbols), \ -CONCAT2 (NAME,_minisymbol_to_symbol) - long (*_bfd_get_symtab_upper_bound) PARAMS ((bfd *)); - long (*_bfd_canonicalize_symtab) PARAMS ((bfd *, - struct symbol_cache_entry **)); + NAME##_get_symtab_upper_bound, \ + NAME##_get_symtab, \ + NAME##_make_empty_symbol, \ + NAME##_print_symbol, \ + NAME##_get_symbol_info, \ + NAME##_bfd_is_local_label_name, \ + NAME##_get_lineno, \ + NAME##_find_nearest_line, \ + NAME##_bfd_make_debug_symbol, \ + NAME##_read_minisymbols, \ + NAME##_minisymbol_to_symbol + + long (*_bfd_get_symtab_upper_bound) (bfd *); + long (*_bfd_canonicalize_symtab) + (bfd *, struct symbol_cache_entry **); struct symbol_cache_entry * - (*_bfd_make_empty_symbol) PARAMS ((bfd *)); + (*_bfd_make_empty_symbol) (bfd *); void (*_bfd_print_symbol) - PARAMS ((bfd *, PTR, struct symbol_cache_entry *, bfd_print_symbol_type)); -#define bfd_print_symbol(b,p,s,e) BFD_SEND(b, _bfd_print_symbol, (b,p,s,e)) + (bfd *, void *, struct symbol_cache_entry *, bfd_print_symbol_type); +#define bfd_print_symbol(b,p,s,e) BFD_SEND (b, _bfd_print_symbol, (b,p,s,e)) void (*_bfd_get_symbol_info) - PARAMS ((bfd *, struct symbol_cache_entry *, symbol_info *)); -#define bfd_get_symbol_info(b,p,e) BFD_SEND(b, _bfd_get_symbol_info, (b,p,e)) - bfd_boolean (*_bfd_is_local_label_name) PARAMS ((bfd *, const char *)); + (bfd *, struct symbol_cache_entry *, symbol_info *); +#define bfd_get_symbol_info(b,p,e) BFD_SEND (b, _bfd_get_symbol_info, (b,p,e)) + bfd_boolean (*_bfd_is_local_label_name) (bfd *, const char *); - alent * (*_get_lineno) PARAMS ((bfd *, struct symbol_cache_entry *)); + alent * (*_get_lineno) (bfd *, struct symbol_cache_entry *); bfd_boolean (*_bfd_find_nearest_line) - PARAMS ((bfd *, struct sec *, struct symbol_cache_entry **, bfd_vma, - const char **, const char **, unsigned int *)); + (bfd *, struct sec *, struct symbol_cache_entry **, bfd_vma, + const char **, const char **, unsigned int *); /* Back-door to allow format-aware applications to create debug symbols while using BFD for everything else. Currently used by the assembler when creating COFF files. */ asymbol * (*_bfd_make_debug_symbol) - PARAMS ((bfd *, void *, unsigned long size)); + (bfd *, void *, unsigned long size); #define bfd_read_minisymbols(b, d, m, s) \ BFD_SEND (b, _read_minisymbols, (b, d, m, s)) long (*_read_minisymbols) - PARAMS ((bfd *, bfd_boolean, PTR *, unsigned int *)); + (bfd *, bfd_boolean, void **, unsigned int *); #define bfd_minisymbol_to_symbol(b, d, m, f) \ BFD_SEND (b, _minisymbol_to_symbol, (b, d, m, f)) asymbol * (*_minisymbol_to_symbol) - PARAMS ((bfd *, bfd_boolean, const PTR, asymbol *)); + (bfd *, bfd_boolean, const void *, asymbol *); /* Routines for relocs. */ #define BFD_JUMP_TABLE_RELOCS(NAME) \ -CONCAT2 (NAME,_get_reloc_upper_bound), \ -CONCAT2 (NAME,_canonicalize_reloc), \ -CONCAT2 (NAME,_bfd_reloc_type_lookup) - long (*_get_reloc_upper_bound) PARAMS ((bfd *, sec_ptr)); + NAME##_get_reloc_upper_bound, \ + NAME##_canonicalize_reloc, \ + NAME##_bfd_reloc_type_lookup + + long (*_get_reloc_upper_bound) (bfd *, sec_ptr); long (*_bfd_canonicalize_reloc) - PARAMS ((bfd *, sec_ptr, arelent **, struct symbol_cache_entry **)); + (bfd *, sec_ptr, arelent **, struct symbol_cache_entry **); /* See documentation on reloc types. */ reloc_howto_type * - (*reloc_type_lookup) PARAMS ((bfd *, bfd_reloc_code_real_type)); + (*reloc_type_lookup) (bfd *, bfd_reloc_code_real_type); /* Routines used when writing an object file. */ #define BFD_JUMP_TABLE_WRITE(NAME) \ -CONCAT2 (NAME,_set_arch_mach), \ -CONCAT2 (NAME,_set_section_contents) + NAME##_set_arch_mach, \ + NAME##_set_section_contents + bfd_boolean (*_bfd_set_arch_mach) - PARAMS ((bfd *, enum bfd_architecture, unsigned long)); + (bfd *, enum bfd_architecture, unsigned long); bfd_boolean (*_bfd_set_section_contents) - PARAMS ((bfd *, sec_ptr, PTR, file_ptr, bfd_size_type)); + (bfd *, sec_ptr, void *, file_ptr, bfd_size_type); /* Routines used by the linker. */ #define BFD_JUMP_TABLE_LINK(NAME) \ -CONCAT2 (NAME,_sizeof_headers), \ -CONCAT2 (NAME,_bfd_get_relocated_section_contents), \ -CONCAT2 (NAME,_bfd_relax_section), \ -CONCAT2 (NAME,_bfd_link_hash_table_create), \ -CONCAT2 (NAME,_bfd_link_hash_table_free), \ -CONCAT2 (NAME,_bfd_link_add_symbols), \ -CONCAT2 (NAME,_bfd_link_just_syms), \ -CONCAT2 (NAME,_bfd_final_link), \ -CONCAT2 (NAME,_bfd_link_split_section), \ -CONCAT2 (NAME,_bfd_gc_sections), \ -CONCAT2 (NAME,_bfd_merge_sections), \ -CONCAT2 (NAME,_bfd_discard_group) - int (*_bfd_sizeof_headers) PARAMS ((bfd *, bfd_boolean)); + NAME##_sizeof_headers, \ + NAME##_bfd_get_relocated_section_contents, \ + NAME##_bfd_relax_section, \ + NAME##_bfd_link_hash_table_create, \ + NAME##_bfd_link_hash_table_free, \ + NAME##_bfd_link_add_symbols, \ + NAME##_bfd_link_just_syms, \ + NAME##_bfd_final_link, \ + NAME##_bfd_link_split_section, \ + NAME##_bfd_gc_sections, \ + NAME##_bfd_merge_sections, \ + NAME##_bfd_discard_group + + int (*_bfd_sizeof_headers) (bfd *, bfd_boolean); bfd_byte * (*_bfd_get_relocated_section_contents) - PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *, - bfd_byte *, bfd_boolean, struct symbol_cache_entry **)); + (bfd *, struct bfd_link_info *, struct bfd_link_order *, + bfd_byte *, bfd_boolean, struct symbol_cache_entry **); bfd_boolean (*_bfd_relax_section) - PARAMS ((bfd *, struct sec *, struct bfd_link_info *, bfd_boolean *)); + (bfd *, struct sec *, struct bfd_link_info *, bfd_boolean *); /* Create a hash table for the linker. Different backends store different information in this table. */ struct bfd_link_hash_table * - (*_bfd_link_hash_table_create) PARAMS ((bfd *)); + (*_bfd_link_hash_table_create) (bfd *); /* Release the memory associated with the linker hash table. */ - void (*_bfd_link_hash_table_free) - PARAMS ((struct bfd_link_hash_table *)); + void (*_bfd_link_hash_table_free) (struct bfd_link_hash_table *); /* Add symbols from this object file into the hash table. */ - bfd_boolean (*_bfd_link_add_symbols) - PARAMS ((bfd *, struct bfd_link_info *)); + bfd_boolean (*_bfd_link_add_symbols) (bfd *, struct bfd_link_info *); /* Indicate that we are only retrieving symbol values from this section. */ - void (*_bfd_link_just_syms) - PARAMS ((asection *, struct bfd_link_info *)); + void (*_bfd_link_just_syms) (asection *, struct bfd_link_info *); /* Do a link based on the link_order structures attached to each section of the BFD. */ - bfd_boolean (*_bfd_final_link) PARAMS ((bfd *, struct bfd_link_info *)); + bfd_boolean (*_bfd_final_link) (bfd *, struct bfd_link_info *); /* Should this section be split up into smaller pieces during linking. */ - bfd_boolean (*_bfd_link_split_section) PARAMS ((bfd *, struct sec *)); + bfd_boolean (*_bfd_link_split_section) (bfd *, struct sec *); /* Remove sections that are not referenced from the output. */ - bfd_boolean (*_bfd_gc_sections) PARAMS ((bfd *, struct bfd_link_info *)); + bfd_boolean (*_bfd_gc_sections) (bfd *, struct bfd_link_info *); /* Attempt to merge SEC_MERGE sections. */ - bfd_boolean (*_bfd_merge_sections) PARAMS ((bfd *, struct bfd_link_info *)); + bfd_boolean (*_bfd_merge_sections) (bfd *, struct bfd_link_info *); /* Discard members of a group. */ - bfd_boolean (*_bfd_discard_group) PARAMS ((bfd *, struct sec *)); + bfd_boolean (*_bfd_discard_group) (bfd *, struct sec *); /* Routines to handle dynamic symbols and relocs. */ #define BFD_JUMP_TABLE_DYNAMIC(NAME) \ -CONCAT2 (NAME,_get_dynamic_symtab_upper_bound), \ -CONCAT2 (NAME,_canonicalize_dynamic_symtab), \ -CONCAT2 (NAME,_get_dynamic_reloc_upper_bound), \ -CONCAT2 (NAME,_canonicalize_dynamic_reloc) + NAME##_get_dynamic_symtab_upper_bound, \ + NAME##_canonicalize_dynamic_symtab, \ + NAME##_get_dynamic_reloc_upper_bound, \ + NAME##_canonicalize_dynamic_reloc + /* Get the amount of memory required to hold the dynamic symbols. */ - long (*_bfd_get_dynamic_symtab_upper_bound) PARAMS ((bfd *)); + long (*_bfd_get_dynamic_symtab_upper_bound) (bfd *); /* Read in the dynamic symbols. */ long (*_bfd_canonicalize_dynamic_symtab) - PARAMS ((bfd *, struct symbol_cache_entry **)); + (bfd *, struct symbol_cache_entry **); /* Get the amount of memory required to hold the dynamic relocs. */ - long (*_bfd_get_dynamic_reloc_upper_bound) PARAMS ((bfd *)); + long (*_bfd_get_dynamic_reloc_upper_bound) (bfd *); /* Read in the dynamic relocs. */ long (*_bfd_canonicalize_dynamic_reloc) - PARAMS ((bfd *, arelent **, struct symbol_cache_entry **)); + (bfd *, arelent **, struct symbol_cache_entry **); /* Opposite endian version of this target. */ const struct bfd_target * alternative_target; /* Data for use by back-end routines, which isn't generic enough to belong in this structure. */ - PTR backend_data; + void *backend_data; } bfd_target; -bfd_boolean -bfd_set_default_target PARAMS ((const char *name)); +bfd_boolean bfd_set_default_target (const char *name); -const bfd_target * -bfd_find_target PARAMS ((const char *target_name, bfd *abfd)); +const bfd_target *bfd_find_target (const char *target_name, bfd *abfd); -const char ** -bfd_target_list PARAMS ((void)); +const char ** bfd_target_list (void); -const bfd_target * -bfd_search_for_target PARAMS ((int (* search_func) - (const bfd_target *, void *), - void *)); +const bfd_target *bfd_search_for_target + (int (*search_func) (const bfd_target *, void *), + void *); /* Extracted from format.c. */ -bfd_boolean -bfd_check_format PARAMS ((bfd *abfd, bfd_format format)); +bfd_boolean bfd_check_format (bfd *abfd, bfd_format format); -bfd_boolean -bfd_check_format_matches PARAMS ((bfd *abfd, bfd_format format, - char ***matching)); +bfd_boolean bfd_check_format_matches + (bfd *abfd, bfd_format format, char ***matching); -bfd_boolean -bfd_set_format PARAMS ((bfd *abfd, bfd_format format)); +bfd_boolean bfd_set_format (bfd *abfd, bfd_format format); -const char * -bfd_format_string PARAMS ((bfd_format format)); +const char *bfd_format_string (bfd_format format); /* Extracted from linker.c. */ -bfd_boolean -bfd_link_split_section PARAMS ((bfd *abfd, asection *sec)); +bfd_boolean bfd_link_split_section (bfd *abfd, asection *sec); #define bfd_link_split_section(abfd, sec) \ BFD_SEND (abfd, _bfd_link_split_section, (abfd, sec)) /* Extracted from simple.c. */ -bfd_byte * -bfd_simple_get_relocated_section_contents PARAMS ((bfd *abfd, asection *sec, bfd_byte *outbuf, asymbol **symbol_table)); +bfd_byte *bfd_simple_get_relocated_section_contents + (bfd *abfd, asection *sec, bfd_byte *outbuf, asymbol **symbol_table); #ifdef __cplusplus } diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/bfd.c binutils-2.14.90.0.5/bfd/bfd.c --- binutils-2.14.90.0.4.1/bfd/bfd.c 2003-05-23 07:18:52.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/bfd.c 2003-07-23 08:08:08.000000000 -0700 @@ -52,7 +52,7 @@ CODE_FRAGMENT . is the result of an fopen on the filename. However, if the . BFD_IN_MEMORY flag is set, then iostream is actually a pointer . to a bfd_in_memory struct. *} -. PTR iostream; +. void *iostream; . . {* Is the file descriptor being cached? That is, can it be closed as . needed, and re-opened when accessed later? *} @@ -138,7 +138,7 @@ CODE_FRAGMENT . const struct bfd_arch_info *arch_info; . . {* Stuff only useful for archives. *} -. PTR arelt_data; +. void *arelt_data; . struct bfd *my_archive; {* The containing archive BFD. *} . struct bfd *next; {* The next BFD in the archive. *} . struct bfd *archive_head; {* The first BFD in the archive. *} @@ -188,17 +188,17 @@ CODE_FRAGMENT . struct bfd_pef_data_struct *pef_data; . struct bfd_pef_xlib_data_struct *pef_xlib_data; . struct bfd_sym_data_struct *sym_data; -. PTR any; +. void *any; . } . tdata; . . {* Used by the application to hold private data. *} -. PTR usrdata; +. void *usrdata; . . {* Where all the allocated stuff under this BFD goes. This is a -. struct objalloc *, but we use PTR to avoid requiring the inclusion of -. objalloc.h. *} -. PTR memory; +. struct objalloc *, but we use void * to avoid requiring the inclusion +. of objalloc.h. *} +. void *memory; .}; . */ @@ -206,13 +206,7 @@ CODE_FRAGMENT #include "bfd.h" #include "bfdver.h" #include "sysdep.h" - -#ifdef ANSI_PROTOTYPES #include -#else -#include -#endif - #include "libiberty.h" #include "safe-ctype.h" #include "bfdlink.h" @@ -317,7 +311,7 @@ DESCRIPTION */ bfd_error_type -bfd_get_error () +bfd_get_error (void) { return bfd_error; } @@ -334,8 +328,7 @@ DESCRIPTION */ void -bfd_set_error (error_tag) - bfd_error_type error_tag; +bfd_set_error (bfd_error_type error_tag) { bfd_error = error_tag; } @@ -353,8 +346,7 @@ DESCRIPTION */ const char * -bfd_errmsg (error_tag) - bfd_error_type error_tag; +bfd_errmsg (bfd_error_type error_tag) { #ifndef errno extern int errno; @@ -362,11 +354,10 @@ bfd_errmsg (error_tag) if (error_tag == bfd_error_system_call) return xstrerror (errno); - if ((((int) error_tag < (int) bfd_error_no_error) || - ((int) error_tag > (int) bfd_error_invalid_error_code))) - error_tag = bfd_error_invalid_error_code;/* sanity check */ + if (error_tag > bfd_error_invalid_error_code) + error_tag = bfd_error_invalid_error_code; /* sanity check */ - return _(bfd_errmsgs [(int)error_tag]); + return _(bfd_errmsgs [error_tag]); } /* @@ -385,12 +376,11 @@ DESCRIPTION */ void -bfd_perror (message) - const char *message; +bfd_perror (const char *message) { if (bfd_get_error () == bfd_error_system_call) /* Must be a system error then. */ - perror ((char *)message); + perror ((char *) message); else { if (message == NULL || *message == '\0') @@ -412,7 +402,7 @@ SUBSECTION CODE_FRAGMENT . -.typedef void (*bfd_error_handler_type) PARAMS ((const char *, ...)); +.typedef void (*bfd_error_handler_type) (const char *, ...); . */ @@ -422,20 +412,19 @@ static const char *_bfd_error_program_na /* This is the default routine to handle BFD error messages. */ -static void _bfd_default_error_handler PARAMS ((const char *s, ...)); - static void -_bfd_default_error_handler VPARAMS ((const char *s, ...)) +_bfd_default_error_handler (const char *s, ...) { + va_list p; + if (_bfd_error_program_name != NULL) fprintf (stderr, "%s: ", _bfd_error_program_name); else fprintf (stderr, "BFD: "); - VA_OPEN (p, s); - VA_FIXEDARG (p, const char *, s); + va_start (p, s); vfprintf (stderr, s, p); - VA_CLOSE (p); + va_end (p); fprintf (stderr, "\n"); } @@ -461,8 +450,7 @@ DESCRIPTION */ bfd_error_handler_type -bfd_set_error_handler (pnew) - bfd_error_handler_type pnew; +bfd_set_error_handler (bfd_error_handler_type pnew) { bfd_error_handler_type pold; @@ -486,8 +474,7 @@ DESCRIPTION */ void -bfd_set_error_program_name (name) - const char *name; +bfd_set_error_program_name (const char *name) { _bfd_error_program_name = name; } @@ -504,7 +491,7 @@ DESCRIPTION */ bfd_error_handler_type -bfd_get_error_handler () +bfd_get_error_handler (void) { return _bfd_error_handler; } @@ -523,8 +510,7 @@ DESCRIPTION */ const char * -bfd_archive_filename (abfd) - bfd *abfd; +bfd_archive_filename (bfd *abfd) { if (abfd->my_archive) { @@ -539,7 +525,7 @@ bfd_archive_filename (abfd) if (curr) free (buf); curr = needed + (needed >> 1); - buf = bfd_malloc ((bfd_size_type) curr); + buf = bfd_malloc (curr); /* If we can't malloc, fail safe by returning just the file name. This function is only used when building error messages. */ @@ -577,9 +563,7 @@ DESCRIPTION */ long -bfd_get_reloc_upper_bound (abfd, asect) - bfd *abfd; - sec_ptr asect; +bfd_get_reloc_upper_bound (bfd *abfd, sec_ptr asect) { if (abfd->format != bfd_object) { @@ -596,10 +580,7 @@ FUNCTION SYNOPSIS long bfd_canonicalize_reloc - (bfd *abfd, - asection *sec, - arelent **loc, - asymbol **syms); + (bfd *abfd, asection *sec, arelent **loc, asymbol **syms); DESCRIPTION Call the back end associated with the open BFD @@ -615,11 +596,10 @@ DESCRIPTION */ long -bfd_canonicalize_reloc (abfd, asect, location, symbols) - bfd *abfd; - sec_ptr asect; - arelent **location; - asymbol **symbols; +bfd_canonicalize_reloc (bfd *abfd, + sec_ptr asect, + arelent **location, + asymbol **symbols) { if (abfd->format != bfd_object) { @@ -647,11 +627,10 @@ DESCRIPTION */ void -bfd_set_reloc (ignore_abfd, asect, location, count) - bfd *ignore_abfd ATTRIBUTE_UNUSED; - sec_ptr asect; - arelent **location; - unsigned int count; +bfd_set_reloc (bfd *ignore_abfd ATTRIBUTE_UNUSED, + sec_ptr asect, + arelent **location, + unsigned int count) { asect->orelocation = location; asect->reloc_count = count; @@ -678,9 +657,7 @@ DESCRIPTION */ bfd_boolean -bfd_set_file_flags (abfd, flags) - bfd *abfd; - flagword flags; +bfd_set_file_flags (bfd *abfd, flagword flags) { if (abfd->format != bfd_object) { @@ -705,9 +682,7 @@ bfd_set_file_flags (abfd, flags) } void -bfd_assert (file, line) - const char *file; - int line; +bfd_assert (const char *file, int line) { (*_bfd_error_handler) (_("BFD %s assertion fail %s:%d"), BFD_VERSION_STRING, file, line); @@ -721,10 +696,7 @@ bfd_assert (file, line) #endif void -_bfd_abort (file, line, fn) - const char *file; - int line; - const char *fn; +_bfd_abort (const char *file, int line, const char *fn) { if (fn != NULL) (*_bfd_error_handler) @@ -755,11 +727,10 @@ RETURNS */ int -bfd_get_arch_size (abfd) - bfd *abfd; +bfd_get_arch_size (bfd *abfd) { if (abfd->xvec->flavour == bfd_target_elf_flavour) - return (get_elf_backend_data (abfd))->s->arch_size; + return get_elf_backend_data (abfd)->s->arch_size; return -1; } @@ -786,13 +757,12 @@ RETURNS */ int -bfd_get_sign_extend_vma (abfd) - bfd *abfd; +bfd_get_sign_extend_vma (bfd *abfd) { char *name; if (bfd_get_flavour (abfd) == bfd_target_elf_flavour) - return (get_elf_backend_data (abfd)->sign_extend_vma); + return get_elf_backend_data (abfd)->sign_extend_vma; name = bfd_get_target (abfd); @@ -823,9 +793,7 @@ RETURNS */ bfd_boolean -bfd_set_start_address (abfd, vma) - bfd *abfd; - bfd_vma vma; +bfd_set_start_address (bfd *abfd, bfd_vma vma) { abfd->start_address = vma; return TRUE; @@ -845,8 +813,7 @@ DESCRIPTION */ unsigned int -bfd_get_gp_size (abfd) - bfd *abfd; +bfd_get_gp_size (bfd *abfd) { if (abfd->format == bfd_object) { @@ -872,9 +839,7 @@ DESCRIPTION */ void -bfd_set_gp_size (abfd, i) - bfd *abfd; - unsigned int i; +bfd_set_gp_size (bfd *abfd, unsigned int i) { /* Don't try to set GP size on an archive or core file! */ if (abfd->format != bfd_object) @@ -891,8 +856,7 @@ bfd_set_gp_size (abfd, i) register. */ bfd_vma -_bfd_get_gp_value (abfd) - bfd *abfd; +_bfd_get_gp_value (bfd *abfd) { if (! abfd) return 0; @@ -910,9 +874,7 @@ _bfd_get_gp_value (abfd) /* Set the GP value. */ void -_bfd_set_gp_value (abfd, v) - bfd *abfd; - bfd_vma v; +_bfd_set_gp_value (bfd *abfd, bfd_vma v) { if (! abfd) BFD_FAIL (); @@ -947,10 +909,7 @@ DESCRIPTION */ bfd_vma -bfd_scan_vma (string, end, base) - const char *string; - const char **end; - int base; +bfd_scan_vma (const char *string, const char **end, int base) { bfd_vma value; bfd_vma cutoff; @@ -959,7 +918,7 @@ bfd_scan_vma (string, end, base) /* Let the host do it if possible. */ if (sizeof (bfd_vma) <= sizeof (unsigned long)) - return (bfd_vma) strtoul (string, (char **) end, base); + return strtoul (string, (char **) end, base); if (base == 0) { @@ -1155,27 +1114,23 @@ DESCRIPTION . BFD_SEND (abfd, _bfd_canonicalize_dynamic_reloc, (abfd, arels, asyms)) . .extern bfd_byte *bfd_get_relocated_section_contents -. PARAMS ((bfd *, struct bfd_link_info *, -. struct bfd_link_order *, bfd_byte *, -. bfd_boolean, asymbol **)); +. (bfd *, struct bfd_link_info *, struct bfd_link_order *, bfd_byte *, +. bfd_boolean, asymbol **); . */ bfd_byte * -bfd_get_relocated_section_contents (abfd, link_info, link_order, data, - relocateable, symbols) - bfd *abfd; - struct bfd_link_info *link_info; - struct bfd_link_order *link_order; - bfd_byte *data; - bfd_boolean relocateable; - asymbol **symbols; +bfd_get_relocated_section_contents (bfd *abfd, + struct bfd_link_info *link_info, + struct bfd_link_order *link_order, + bfd_byte *data, + bfd_boolean relocatable, + asymbol **symbols) { bfd *abfd2; - bfd_byte *(*fn) PARAMS ((bfd *, struct bfd_link_info *, - struct bfd_link_order *, bfd_byte *, bfd_boolean, - asymbol **)); + bfd_byte *(*fn) (bfd *, struct bfd_link_info *, struct bfd_link_order *, + bfd_byte *, bfd_boolean, asymbol **); if (link_order->type == bfd_indirect_link_order) { @@ -1188,24 +1143,22 @@ bfd_get_relocated_section_contents (abfd fn = abfd2->xvec->_bfd_get_relocated_section_contents; - return (*fn) (abfd, link_info, link_order, data, relocateable, symbols); + return (*fn) (abfd, link_info, link_order, data, relocatable, symbols); } /* Record information about an ELF program header. */ bfd_boolean -bfd_record_phdr (abfd, type, flags_valid, flags, at_valid, at, - includes_filehdr, includes_phdrs, count, secs) - bfd *abfd; - unsigned long type; - bfd_boolean flags_valid; - flagword flags; - bfd_boolean at_valid; - bfd_vma at; - bfd_boolean includes_filehdr; - bfd_boolean includes_phdrs; - unsigned int count; - asection **secs; +bfd_record_phdr (bfd *abfd, + unsigned long type, + bfd_boolean flags_valid, + flagword flags, + bfd_boolean at_valid, + bfd_vma at, + bfd_boolean includes_filehdr, + bfd_boolean includes_phdrs, + unsigned int count, + asection **secs) { struct elf_segment_map *m, **pm; bfd_size_type amt; @@ -1215,7 +1168,7 @@ bfd_record_phdr (abfd, type, flags_valid amt = sizeof (struct elf_segment_map); amt += ((bfd_size_type) count - 1) * sizeof (asection *); - m = (struct elf_segment_map *) bfd_alloc (abfd, amt); + m = bfd_alloc (abfd, amt); if (m == NULL) return FALSE; @@ -1223,10 +1176,10 @@ bfd_record_phdr (abfd, type, flags_valid m->p_type = type; m->p_flags = flags; m->p_paddr = at; - m->p_flags_valid = (unsigned int) flags_valid; - m->p_paddr_valid = (unsigned int) at_valid; - m->includes_filehdr = (unsigned int) includes_filehdr; - m->includes_phdrs = (unsigned int) includes_phdrs; + m->p_flags_valid = flags_valid; + m->p_paddr_valid = at_valid; + m->includes_filehdr = includes_filehdr; + m->includes_phdrs = includes_phdrs; m->count = count; if (count > 0) memcpy (m->sections, secs, count * sizeof (asection *)); @@ -1239,10 +1192,7 @@ bfd_record_phdr (abfd, type, flags_valid } void -bfd_sprintf_vma (abfd, buf, value) - bfd *abfd; - char *buf; - bfd_vma value; +bfd_sprintf_vma (bfd *abfd, char *buf, bfd_vma value) { if (bfd_get_flavour (abfd) == bfd_target_elf_flavour) get_elf_backend_data (abfd)->elf_backend_sprintf_vma (abfd, buf, value); @@ -1251,10 +1201,7 @@ bfd_sprintf_vma (abfd, buf, value) } void -bfd_fprintf_vma (abfd, stream, value) - bfd *abfd; - PTR stream; - bfd_vma value; +bfd_fprintf_vma (bfd *abfd, void *stream, bfd_vma value) { if (bfd_get_flavour (abfd) == bfd_target_elf_flavour) get_elf_backend_data (abfd)->elf_backend_fprintf_vma (abfd, stream, value); @@ -1279,9 +1226,7 @@ DESCRIPTION */ bfd_boolean -bfd_alt_mach_code (abfd, alternative) - bfd *abfd; - int alternative; +bfd_alt_mach_code (bfd *abfd, int alternative) { if (bfd_get_flavour (abfd) == bfd_target_elf_flavour) { @@ -1322,8 +1267,8 @@ CODE_FRAGMENT .struct bfd_preserve .{ -. PTR marker; -. PTR tdata; +. void *marker; +. void *tdata; . flagword flags; . const struct bfd_arch_info *arch_info; . struct sec *sections; @@ -1355,9 +1300,7 @@ DESCRIPTION */ bfd_boolean -bfd_preserve_save (abfd, preserve) - bfd *abfd; - struct bfd_preserve *preserve; +bfd_preserve_save (bfd *abfd, struct bfd_preserve *preserve) { preserve->tdata = abfd->tdata.any; preserve->arch_info = abfd->arch_info; @@ -1395,9 +1338,7 @@ DESCRIPTION */ void -bfd_preserve_restore (abfd, preserve) - bfd *abfd; - struct bfd_preserve *preserve; +bfd_preserve_restore (bfd *abfd, struct bfd_preserve *preserve) { bfd_hash_table_free (&abfd->section_htab); @@ -1433,9 +1374,7 @@ DESCRIPTION */ void -bfd_preserve_finish (abfd, preserve) - bfd *abfd ATTRIBUTE_UNUSED; - struct bfd_preserve *preserve; +bfd_preserve_finish (bfd *abfd ATTRIBUTE_UNUSED, struct bfd_preserve *preserve) { /* It would be nice to be able to free more memory here, eg. old tdata, but that's not possible since these blocks are sitting diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/bfdio.c binutils-2.14.90.0.5/bfd/bfdio.c --- binutils-2.14.90.0.4.1/bfd/bfdio.c 2002-11-26 09:20:32.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/bfdio.c 2003-07-23 08:08:08.000000000 -0700 @@ -43,13 +43,8 @@ Foundation, Inc., 59 Temple Place - Suit contents (0 for non-archive elements). For archive entries this is the first octet in the file, NOT the beginning of the archive header. */ -static size_t real_read PARAMS ((PTR where, size_t a, size_t b, FILE *file)); static size_t -real_read (where, a, b, file) - PTR where; - size_t a; - size_t b; - FILE *file; +real_read (void *where, size_t a, size_t b, FILE *file) { /* FIXME - this looks like an optimization, but it's really to cover up for a feature of some OSs (not solaris - sigh) that @@ -76,10 +71,7 @@ real_read (where, a, b, file) /* Return value is amount read. */ bfd_size_type -bfd_bread (ptr, size, abfd) - PTR ptr; - bfd_size_type size; - bfd *abfd; +bfd_bread (void *ptr, bfd_size_type size, bfd *abfd) { size_t nread; @@ -88,7 +80,7 @@ bfd_bread (ptr, size, abfd) struct bfd_in_memory *bim; bfd_size_type get; - bim = (struct bfd_in_memory *) abfd->iostream; + bim = abfd->iostream; get = size; if (abfd->where + get > bim->size) { @@ -126,16 +118,13 @@ bfd_bread (ptr, size, abfd) } bfd_size_type -bfd_bwrite (ptr, size, abfd) - const PTR ptr; - bfd_size_type size; - bfd *abfd; +bfd_bwrite (const void *ptr, bfd_size_type size, bfd *abfd) { size_t nwrote; if ((abfd->flags & BFD_IN_MEMORY) != 0) { - struct bfd_in_memory *bim = (struct bfd_in_memory *) (abfd->iostream); + struct bfd_in_memory *bim = abfd->iostream; size = (size_t) size; if (abfd->where + size > bim->size) { @@ -147,7 +136,7 @@ bfd_bwrite (ptr, size, abfd) newsize = (bim->size + 127) & ~(bfd_size_type) 127; if (newsize > oldsize) { - bim->buffer = (bfd_byte *) bfd_realloc (bim->buffer, newsize); + bim->buffer = bfd_realloc (bim->buffer, newsize); if (bim->buffer == 0) { bim->size = 0; @@ -174,8 +163,7 @@ bfd_bwrite (ptr, size, abfd) } bfd_vma -bfd_tell (abfd) - bfd *abfd; +bfd_tell (bfd *abfd) { file_ptr ptr; @@ -191,8 +179,7 @@ bfd_tell (abfd) } int -bfd_flush (abfd) - bfd *abfd; +bfd_flush (bfd *abfd) { if ((abfd->flags & BFD_IN_MEMORY) != 0) return 0; @@ -202,9 +189,7 @@ bfd_flush (abfd) /* Returns 0 for success, negative value for failure (in which case bfd_get_error can retrieve the error code). */ int -bfd_stat (abfd, statbuf) - bfd *abfd; - struct stat *statbuf; +bfd_stat (bfd *abfd, struct stat *statbuf) { FILE *f; int result; @@ -228,10 +213,7 @@ bfd_stat (abfd, statbuf) can retrieve the error code). */ int -bfd_seek (abfd, position, direction) - bfd *abfd; - file_ptr position; - int direction; +bfd_seek (bfd *abfd, file_ptr position, int direction) { int result; FILE *f; @@ -249,7 +231,7 @@ bfd_seek (abfd, position, direction) { struct bfd_in_memory *bim; - bim = (struct bfd_in_memory *) abfd->iostream; + bim = abfd->iostream; if (direction == SEEK_SET) abfd->where = position; @@ -268,7 +250,7 @@ bfd_seek (abfd, position, direction) newsize = (bim->size + 127) & ~(bfd_size_type) 127; if (newsize > oldsize) { - bim->buffer = (bfd_byte *) bfd_realloc (bim->buffer, newsize); + bim->buffer = bfd_realloc (bim->buffer, newsize); if (bim->buffer == 0) { bim->size = 0; @@ -359,7 +341,7 @@ FUNCTION bfd_get_mtime SYNOPSIS - long bfd_get_mtime(bfd *abfd); + long bfd_get_mtime (bfd *abfd); DESCRIPTION Return the file modification time (as read from the file system, or @@ -368,8 +350,7 @@ DESCRIPTION */ long -bfd_get_mtime (abfd) - bfd *abfd; +bfd_get_mtime (bfd *abfd) { FILE *fp; struct stat buf; @@ -390,7 +371,7 @@ FUNCTION bfd_get_size SYNOPSIS - long bfd_get_size(bfd *abfd); + long bfd_get_size (bfd *abfd); DESCRIPTION Return the file size (as read from file system) for the file @@ -419,8 +400,7 @@ DESCRIPTION */ long -bfd_get_size (abfd) - bfd *abfd; +bfd_get_size (bfd *abfd) { FILE *fp; struct stat buf; diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/bfdwin.c binutils-2.14.90.0.5/bfd/bfdwin.c --- binutils-2.14.90.0.4.1/bfd/bfdwin.c 2002-12-16 12:22:51.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/bfdwin.c 2003-07-23 08:08:08.000000000 -0700 @@ -52,7 +52,7 @@ INTERNAL_DEFINITION .struct _bfd_window_internal { . struct _bfd_window_internal *next; -. PTR data; +. void *data; . bfd_size_type size; . int refcount : 31; {* should be enough... *} . unsigned mapped : 1; {* 1 = mmap, 0 = malloc *} @@ -60,8 +60,7 @@ INTERNAL_DEFINITION */ void -bfd_init_window (windowp) - bfd_window *windowp; +bfd_init_window (bfd_window *windowp) { windowp->data = 0; windowp->i = 0; @@ -69,8 +68,7 @@ bfd_init_window (windowp) } void -bfd_free_window (windowp) - bfd_window *windowp; +bfd_free_window (bfd_window *windowp) { bfd_window_internal *i = windowp->i; windowp->i = 0; @@ -108,12 +106,11 @@ bfd_free_window (windowp) static int ok_to_map = 1; bfd_boolean -bfd_get_file_window (abfd, offset, size, windowp, writable) - bfd *abfd; - file_ptr offset; - bfd_size_type size; - bfd_window *windowp; - bfd_boolean writable; +bfd_get_file_window (bfd *abfd, + file_ptr offset, + bfd_size_type size, + bfd_window *windowp, + bfd_boolean writable) { static size_t pagesize; bfd_window_internal *i = windowp->i; @@ -133,8 +130,7 @@ bfd_get_file_window (abfd, offset, size, if (i == 0) { - i = ((bfd_window_internal *) - bfd_zmalloc ((bfd_size_type) sizeof (bfd_window_internal))); + i = bfd_zmalloc (sizeof (bfd_window_internal)); windowp->i = i; if (i == 0) return FALSE; @@ -180,7 +176,7 @@ bfd_get_file_window (abfd, offset, size, ? MAP_FILE | MAP_PRIVATE : MAP_FILE | MAP_SHARED), fd, file_offset); - if (i->data == (PTR) -1) + if (i->data == (void *) -1) { /* An error happened. Report it, or try using malloc, or something. */ @@ -195,7 +191,7 @@ bfd_get_file_window (abfd, offset, size, fprintf (stderr, "\n\tmapped %ld at %p, offset is %ld\n", (long) real_size, i->data, (long) offset2); i->size = real_size; - windowp->data = (PTR) ((bfd_byte *) i->data + offset2); + windowp->data = (bfd_byte *) i->data + offset2; windowp->size = size; i->mapped = 1; return TRUE; @@ -222,7 +218,7 @@ bfd_get_file_window (abfd, offset, size, if (debug_windows) fprintf (stderr, "\n\t%s(%6ld)", i->data ? "realloc" : " malloc", (long) size_to_alloc); - i->data = (PTR) bfd_realloc (i->data, size_to_alloc); + i->data = bfd_realloc (i->data, size_to_alloc); if (debug_windows) fprintf (stderr, "\t-> %p\n", i->data); i->refcount = 1; diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/bout.c binutils-2.14.90.0.5/bfd/bout.c --- binutils-2.14.90.0.4.1/bfd/bout.c 2002-12-16 12:22:51.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/bout.c 2003-07-23 08:08:08.000000000 -0700 @@ -1,6 +1,6 @@ /* BFD back-end for Intel 960 b.out binaries. Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2001, 2002 + 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Written by Cygnus Support. @@ -1298,12 +1298,12 @@ b_out_bfd_relax_section (abfd, i, link_i static bfd_byte * b_out_bfd_get_relocated_section_contents (output_bfd, link_info, link_order, - data, relocateable, symbols) + data, relocatable, symbols) bfd *output_bfd; struct bfd_link_info *link_info; struct bfd_link_order *link_order; bfd_byte *data; - bfd_boolean relocateable; + bfd_boolean relocatable; asymbol **symbols; { /* Get enough memory to hold the stuff. */ @@ -1317,11 +1317,11 @@ b_out_bfd_get_relocated_section_contents if (reloc_size < 0) goto error_return; - /* If producing relocateable output, don't bother to relax. */ - if (relocateable) + /* If producing relocatable output, don't bother to relax. */ + if (relocatable) return bfd_generic_get_relocated_section_contents (output_bfd, link_info, link_order, - data, relocateable, + data, relocatable, symbols); reloc_vector = (arelent **) bfd_malloc ((bfd_size_type) reloc_size); diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/cache.c binutils-2.14.90.0.5/bfd/cache.c --- binutils-2.14.90.0.4.1/bfd/cache.c 2002-12-16 12:22:51.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/cache.c 2003-07-23 08:08:08.000000000 -0700 @@ -1,5 +1,5 @@ /* BFD library -- caching of file descriptors. - Copyright 1990, 1991, 1992, 1993, 1994, 1996, 2000, 2001, 2002 + Copyright 1990, 1991, 1992, 1993, 1994, 1996, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Hacked by Steve Chamberlain of Cygnus Support (steve@cygnus.com). @@ -40,10 +40,7 @@ SECTION #include "sysdep.h" #include "libbfd.h" -static void insert PARAMS ((bfd *)); -static void snip PARAMS ((bfd *)); -static bfd_boolean close_one PARAMS ((void)); -static bfd_boolean bfd_cache_delete PARAMS ((bfd *)); +static bfd_boolean bfd_cache_delete (bfd *); /* INTERNAL_FUNCTION @@ -95,9 +92,8 @@ bfd *bfd_last_cache; /* Insert a BFD into the cache. */ -static INLINE void -insert (abfd) - bfd *abfd; +static void +insert (bfd *abfd) { if (bfd_last_cache == NULL) { @@ -116,9 +112,8 @@ insert (abfd) /* Remove a BFD from the cache. */ -static INLINE void -snip (abfd) - bfd *abfd; +static void +snip (bfd *abfd) { abfd->lru_prev->lru_next = abfd->lru_next; abfd->lru_next->lru_prev = abfd->lru_prev; @@ -134,7 +129,7 @@ snip (abfd) recently used cacheable BFD and close it. */ static bfd_boolean -close_one () +close_one (void) { register bfd *kill; @@ -168,8 +163,7 @@ close_one () /* Close a BFD and remove it from the cache. */ static bfd_boolean -bfd_cache_delete (abfd) - bfd *abfd; +bfd_cache_delete (bfd *abfd) { bfd_boolean ret; @@ -201,8 +195,7 @@ DESCRIPTION */ bfd_boolean -bfd_cache_init (abfd) - bfd *abfd; +bfd_cache_init (bfd *abfd) { BFD_ASSERT (abfd->iostream != NULL); if (open_files >= BFD_CACHE_MAX_OPEN) @@ -232,8 +225,7 @@ RETURNS */ bfd_boolean -bfd_cache_close (abfd) - bfd *abfd; +bfd_cache_close (bfd *abfd) { if (abfd->iostream == NULL || (abfd->flags & BFD_IN_MEMORY) != 0) @@ -247,7 +239,7 @@ INTERNAL_FUNCTION bfd_open_file SYNOPSIS - FILE* bfd_open_file(bfd *abfd); + FILE* bfd_open_file (bfd *abfd); DESCRIPTION Call the OS to open a file for @var{abfd}. Return the <> @@ -258,8 +250,7 @@ DESCRIPTION */ FILE * -bfd_open_file (abfd) - bfd *abfd; +bfd_open_file (bfd *abfd) { abfd->cacheable = TRUE; /* Allow it to be closed later. */ @@ -331,7 +322,7 @@ INTERNAL_FUNCTION bfd_cache_lookup_worker SYNOPSIS - FILE *bfd_cache_lookup_worker(bfd *abfd); + FILE *bfd_cache_lookup_worker (bfd *abfd); DESCRIPTION Called when the macro <> fails to find a @@ -342,8 +333,7 @@ DESCRIPTION */ FILE * -bfd_cache_lookup_worker (abfd) - bfd *abfd; +bfd_cache_lookup_worker (bfd *abfd) { if ((abfd->flags & BFD_IN_MEMORY) != 0) abort (); diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/coff-a29k.c binutils-2.14.90.0.5/bfd/coff-a29k.c --- binutils-2.14.90.0.4.1/bfd/coff-a29k.c 2002-12-16 12:22:51.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/coff-a29k.c 2003-07-23 08:08:08.000000000 -0700 @@ -1,5 +1,6 @@ /* BFD back-end for AMD 29000 COFF binaries. - Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1997, 1999, 2000, 2001, 2002 + Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1997, 1999, 2000, 2001, + 2002, 2003 Free Software Foundation, Inc. Contributed by David Wood at New York University 7/8/91. @@ -327,10 +328,10 @@ coff_a29k_relocate_section (output_bfd, bfd_boolean hihalf; bfd_vma hihalf_val; - /* If we are performing a relocateable link, we don't need to do a + /* If we are performing a relocatable link, we don't need to do a thing. The caller will take care of adjusting the reloc addresses and symbol indices. */ - if (info->relocateable) + if (info->relocatable) return TRUE; hihalf = FALSE; @@ -580,4 +581,4 @@ coff_a29k_adjust_symndx (obfd, info, ibf #include "coffcode.h" -CREATE_BIG_COFF_TARGET_VEC (a29kcoff_big_vec, "coff-a29k-big", 0, SEC_READONLY, '_', NULL) +CREATE_BIG_COFF_TARGET_VEC (a29kcoff_big_vec, "coff-a29k-big", 0, SEC_READONLY, '_', NULL, COFF_SWAP_TABLE) diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/coff-alpha.c binutils-2.14.90.0.5/bfd/coff-alpha.c --- binutils-2.14.90.0.4.1/bfd/coff-alpha.c 2002-12-16 12:22:51.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/coff-alpha.c 2003-07-23 08:08:08.000000000 -0700 @@ -1,5 +1,5 @@ /* BFD back-end for ALPHA Extended-Coff files. - Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 + Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Modified from coff-mips.c by Steve Chamberlain and Ian Lance Taylor . @@ -53,7 +53,7 @@ static reloc_howto_type *alpha_bfd_reloc PARAMS ((bfd *, bfd_reloc_code_real_type)); static bfd_byte *alpha_ecoff_get_relocated_section_contents PARAMS ((bfd *abfd, struct bfd_link_info *, struct bfd_link_order *, - bfd_byte *data, bfd_boolean relocateable, asymbol **symbols)); + bfd_byte *data, bfd_boolean relocatable, asymbol **symbols)); static bfd_vma alpha_convert_external_reloc PARAMS ((bfd *, struct bfd_link_info *, bfd *, struct external_reloc *, struct ecoff_link_hash_entry *)); @@ -753,12 +753,12 @@ alpha_adjust_reloc_out (abfd, rel, inter static bfd_byte * alpha_ecoff_get_relocated_section_contents (abfd, link_info, link_order, - data, relocateable, symbols) + data, relocatable, symbols) bfd *abfd; struct bfd_link_info *link_info; struct bfd_link_order *link_order; bfd_byte *data; - bfd_boolean relocateable; + bfd_boolean relocatable; asymbol **symbols; { bfd *input_bfd = link_order->u.indirect.section->owner; @@ -766,7 +766,7 @@ alpha_ecoff_get_relocated_section_conten long reloc_size = bfd_get_reloc_upper_bound (input_bfd, input_section); arelent **reloc_vector = NULL; long reloc_count; - bfd *output_bfd = relocateable ? abfd : (bfd *) NULL; + bfd *output_bfd = relocatable ? abfd : (bfd *) NULL; bfd_vma gp; bfd_boolean gp_undefined; bfd_vma stack[RELOC_STACKSIZE]; @@ -798,7 +798,7 @@ alpha_ecoff_get_relocated_section_conten gp = _bfd_get_gp_value (abfd); if (gp == 0) { - if (relocateable) + if (relocatable) { asection *sec; bfd_vma lo; @@ -858,7 +858,7 @@ alpha_ecoff_get_relocated_section_conten case ALPHA_R_SREL16: case ALPHA_R_SREL32: case ALPHA_R_SREL64: - if (relocateable + if (relocatable && ((*rel->sym_ptr_ptr)->flags & BSF_SECTION_SYM) == 0) { rel->address += input_section->output_offset; @@ -991,7 +991,7 @@ alpha_ecoff_get_relocated_section_conten asymbol *symbol; bfd_vma relocation; - if (relocateable) + if (relocatable) { rel->address += input_section->output_offset; break; @@ -1024,7 +1024,7 @@ alpha_ecoff_get_relocated_section_conten bfd_vma val; int offset, size; - if (relocateable) + if (relocatable) { rel->address += input_section->output_offset; break; @@ -1051,7 +1051,7 @@ alpha_ecoff_get_relocated_section_conten asymbol *symbol; bfd_vma relocation; - if (relocateable) + if (relocatable) { rel->address += input_section->output_offset; break; @@ -1084,7 +1084,7 @@ alpha_ecoff_get_relocated_section_conten asymbol *symbol; bfd_vma relocation; - if (relocateable) + if (relocatable) { rel->address += input_section->output_offset; break; @@ -1121,7 +1121,7 @@ alpha_ecoff_get_relocated_section_conten abort (); } - if (relocateable) + if (relocatable) { asection *os = input_section->output_section; @@ -1248,7 +1248,7 @@ alpha_bfd_reloc_type_lookup (abfd, code) } /* A helper routine for alpha_relocate_section which converts an - external reloc when generating relocateable output. Returns the + external reloc when generating relocatable output. Returns the relocation amount. */ static bfd_vma @@ -1262,7 +1262,7 @@ alpha_convert_external_reloc (output_bfd unsigned long r_symndx; bfd_vma relocation; - BFD_ASSERT (info->relocateable); + BFD_ASSERT (info->relocatable); if (h->root.type == bfd_link_hash_defined || h->root.type == bfd_link_hash_defweak) @@ -1443,7 +1443,7 @@ alpha_relocate_section (output_bfd, info lita_sec = symndx_to_section[RELOC_SECTION_LITA]; gp = _bfd_get_gp_value (output_bfd); - if (! info->relocateable && lita_sec != NULL) + if (! info->relocatable && lita_sec != NULL) { struct ecoff_section_tdata *lita_sec_data; @@ -1552,7 +1552,7 @@ alpha_relocate_section (output_bfd, info not otherwise used for anything. For some reason, the address of the relocation does not appear to include the section VMA, unlike the other relocation types. */ - if (info->relocateable) + if (info->relocatable) H_PUT_64 (input_bfd, input_section->output_offset + r_vaddr, ext_rel->r_vaddr); adjust_addrp = FALSE; @@ -1705,7 +1705,7 @@ alpha_relocate_section (output_bfd, info if (h == (struct ecoff_link_hash_entry *) NULL) abort (); - if (! info->relocateable) + if (! info->relocatable) { if (h->root.type == bfd_link_hash_defined || h->root.type == bfd_link_hash_defweak) @@ -1748,7 +1748,7 @@ alpha_relocate_section (output_bfd, info addend += r_vaddr; - if (info->relocateable) + if (info->relocatable) { /* Adjust r_vaddr by the addend. */ H_PUT_64 (input_bfd, addend, ext_rel->r_vaddr); @@ -1782,9 +1782,9 @@ alpha_relocate_section (output_bfd, info case ALPHA_R_OP_STORE: /* Store a value from the reloc stack into a bitfield. If - we are generating relocateable output, all we do is + we are generating relocatable output, all we do is adjust the address of the reloc. */ - if (! info->relocateable) + if (! info->relocatable) { bfd_vma mask; bfd_vma val; @@ -1850,9 +1850,9 @@ alpha_relocate_section (output_bfd, info abort (); } - if (info->relocateable) + if (info->relocatable) { - /* We are generating relocateable output, and must + /* We are generating relocatable output, and must convert the existing reloc. */ if (r_extern) { @@ -1975,7 +1975,7 @@ alpha_relocate_section (output_bfd, info } } - if (info->relocateable && adjust_addrp) + if (info->relocatable && adjust_addrp) { /* Change the address of the relocation. */ H_PUT_64 (input_bfd, diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/coff-apollo.c binutils-2.14.90.0.5/bfd/coff-apollo.c --- binutils-2.14.90.0.4.1/bfd/coff-apollo.c 2002-12-16 12:22:51.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/coff-apollo.c 2003-07-23 08:08:08.000000000 -0700 @@ -115,7 +115,7 @@ apollo_howto2rtype (internal) #endif #ifdef NAMES_HAVE_UNDERSCORE -CREATE_BIG_COFF_TARGET_VEC (TARGET_SYM, TARGET_NAME, 0, 0, '_', NULL) +CREATE_BIG_COFF_TARGET_VEC (TARGET_SYM, TARGET_NAME, 0, 0, '_', NULL, COFF_SWAP_TABLE) #else -CREATE_BIG_COFF_TARGET_VEC (TARGET_SYM, TARGET_NAME, 0, 0, 0, NULL) +CREATE_BIG_COFF_TARGET_VEC (TARGET_SYM, TARGET_NAME, 0, 0, 0, NULL, COFF_SWAP_TABLE) #endif diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/coff-arm.c binutils-2.14.90.0.5/bfd/coff-arm.c --- binutils-2.14.90.0.4.1/bfd/coff-arm.c 2003-05-05 14:46:46.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/coff-arm.c 2003-07-23 08:08:08.000000000 -0700 @@ -1,6 +1,6 @@ /* BFD back-end for ARM COFF files. Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2001, 2002 + 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Written by Cygnus Support. @@ -1247,13 +1247,13 @@ coff_arm_relocate_section (output_bfd, i return FALSE; /* The relocation_section function will skip pcrel_offset relocs - when doing a relocateable link. However, we want to convert + when doing a relocatable link. However, we want to convert ARM26 to ARM26D relocs if possible. We return a fake howto in this case without pcrel_offset set, and adjust the addend to compensate. */ if (rel->r_type == ARM_26 && h != NULL - && info->relocateable + && info->relocatable && (h->root.type == bfd_link_hash_defined || h->root.type == bfd_link_hash_defweak) && (h->root.u.def.section->output_section @@ -1283,18 +1283,18 @@ coff_arm_relocate_section (output_bfd, i the next opcode's pc, so is off by one. */ #if 0 /* This appears to have been true for WINCE 2.0, but it is not true for WINCE 3.0. */ - if (howto->pc_relative && !info->relocateable) + if (howto->pc_relative && !info->relocatable) addend -= 8; #endif #endif - /* If we are doing a relocateable link, then we can just ignore + /* If we are doing a relocatable link, then we can just ignore a PC relative reloc that is pcrel_offset. It will already - have the correct value. If this is not a relocateable link, + have the correct value. If this is not a relocatable link, then we should ignore the symbol value. */ if (howto->pc_relative && howto->pcrel_offset) { - if (info->relocateable) + if (info->relocatable) continue; /* FIXME - it is not clear which targets need this next test and which do not. It is known that it is needed for the @@ -1341,7 +1341,7 @@ coff_arm_relocate_section (output_bfd, i stub generation to the final linker pass. If we fail to verify that the name is defined, we'll try to build stubs for an undefined name... */ - if (! info->relocateable + if (! info->relocatable && ( h->root.type == bfd_link_hash_defined || h->root.type == bfd_link_hash_defweak)) { @@ -1595,7 +1595,7 @@ coff_arm_relocate_section (output_bfd, i + sec->output_offset); } - else if (! info->relocateable) + else if (! info->relocatable) { if (! ((*info->callbacks->undefined_symbol) (info, h->root.root.string, input_bfd, input_section, @@ -1617,7 +1617,7 @@ coff_arm_relocate_section (output_bfd, i rstat = bfd_reloc_ok; #ifndef ARM_WINCE /* Only perform this fix during the final link, not a relocatable link. nickc@cygnus.com */ - else if (! info->relocateable + else if (! info->relocatable && howto->type == ARM_THUMB23) { /* This is pretty much a copy of what the default @@ -1743,7 +1743,7 @@ coff_arm_relocate_section (output_bfd, i Is this the best way to fix up thumb addresses? krk@cygnus.com Probably not, but it works, and if it works it don't need fixing! nickc@cygnus.com */ /* Only perform this fix during the final link, not a relocatable link. nickc@cygnus.com */ - if (! info->relocateable + if (! info->relocatable && (rel->r_type == ARM_32 || rel->r_type == ARM_RVA32)) { /* Determine if we need to set the bottom bit of a relocated address @@ -2023,7 +2023,7 @@ bfd_arm_get_bfd_for_interworking (abfd, /* If we are only performing a partial link do not bother getting a bfd to hold the glue. */ - if (info->relocateable) + if (info->relocatable) return TRUE; globals = coff_arm_hash_table (info); @@ -2078,7 +2078,7 @@ bfd_arm_process_before_allocation (abfd, /* If we are only performing a partial link do not bother to construct any glue. */ - if (info->relocateable) + if (info->relocatable) return TRUE; /* Here we have a bfd that is to be included on the link. We have a hook @@ -2198,7 +2198,7 @@ bfd_arm_process_before_allocation (abfd, #define coff_bfd_copy_private_bfd_data coff_arm_copy_private_bfd_data #define coff_bfd_link_hash_table_create coff_arm_link_hash_table_create -/* When doing a relocateable link, we want to convert ARM26 relocs +/* When doing a relocatable link, we want to convert ARM26 relocs into ARM26D relocs. */ static bfd_boolean @@ -2623,5 +2623,5 @@ coff_arm_final_link_postscript (abfd, pf extern const bfd_target TARGET_BIG_SYM ; /* Target vectors. */ -CREATE_LITTLE_COFF_TARGET_VEC (TARGET_LITTLE_SYM, TARGET_LITTLE_NAME, D_PAGED, EXTRA_S_FLAGS, TARGET_UNDERSCORE, & TARGET_BIG_SYM) -CREATE_BIG_COFF_TARGET_VEC (TARGET_BIG_SYM, TARGET_BIG_NAME, D_PAGED, EXTRA_S_FLAGS, TARGET_UNDERSCORE, & TARGET_LITTLE_SYM) +CREATE_LITTLE_COFF_TARGET_VEC (TARGET_LITTLE_SYM, TARGET_LITTLE_NAME, D_PAGED, EXTRA_S_FLAGS, TARGET_UNDERSCORE, & TARGET_BIG_SYM, COFF_SWAP_TABLE) +CREATE_BIG_COFF_TARGET_VEC (TARGET_BIG_SYM, TARGET_BIG_NAME, D_PAGED, EXTRA_S_FLAGS, TARGET_UNDERSCORE, & TARGET_LITTLE_SYM, COFF_SWAP_TABLE) diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/coff-h8300.c binutils-2.14.90.0.5/bfd/coff-h8300.c --- binutils-2.14.90.0.4.1/bfd/coff-h8300.c 2003-05-05 14:46:46.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/coff-h8300.c 2003-07-23 08:08:08.000000000 -0700 @@ -61,33 +61,33 @@ struct funcvec_hash_table static struct bfd_hash_entry * funcvec_hash_newfunc - PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); + (struct bfd_hash_entry *, struct bfd_hash_table *, const char *); static bfd_boolean funcvec_hash_table_init - PARAMS ((struct funcvec_hash_table *, bfd *, - struct bfd_hash_entry *(*) (struct bfd_hash_entry *, - struct bfd_hash_table *, - const char *))); + (struct funcvec_hash_table *, bfd *, + struct bfd_hash_entry *(*) (struct bfd_hash_entry *, + struct bfd_hash_table *, + const char *)); static bfd_reloc_status_type special - PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); + (bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **); static int select_reloc - PARAMS ((reloc_howto_type *)); + (reloc_howto_type *); static void rtype2howto - PARAMS ((arelent *, struct internal_reloc *)); + (arelent *, struct internal_reloc *); static void reloc_processing - PARAMS ((arelent *, struct internal_reloc *, asymbol **, bfd *, asection *)); + (arelent *, struct internal_reloc *, asymbol **, bfd *, asection *); static bfd_boolean h8300_symbol_address_p - PARAMS ((bfd *, asection *, bfd_vma)); + (bfd *, asection *, bfd_vma); static int h8300_reloc16_estimate - PARAMS ((bfd *, asection *, arelent *, unsigned int, - struct bfd_link_info *)); + (bfd *, asection *, arelent *, unsigned int, + struct bfd_link_info *); static void h8300_reloc16_extra_cases - PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *, arelent *, - bfd_byte *, unsigned int *, unsigned int *)); + (bfd *, struct bfd_link_info *, struct bfd_link_order *, arelent *, + bfd_byte *, unsigned int *, unsigned int *); static bfd_boolean h8300_bfd_link_add_symbols - PARAMS ((bfd *, struct bfd_link_info *)); + (bfd *, struct bfd_link_info *); /* To lookup a value in the function vector hash table. */ #define funcvec_hash_lookup(table, string, create, copy) \ @@ -111,8 +111,7 @@ struct h8300_coff_link_hash_table { struct funcvec_hash_table *funcvec_hash_table; }; -static struct bfd_link_hash_table *h8300_coff_link_hash_table_create - PARAMS ((bfd *)); +static struct bfd_link_hash_table *h8300_coff_link_hash_table_create (bfd *); /* Get the H8/300 COFF linker hash table from a link_info structure. */ @@ -123,10 +122,9 @@ static struct bfd_link_hash_table *h8300 a new entry is added to the funcvec hash table. */ static struct bfd_hash_entry * -funcvec_hash_newfunc (entry, gen_table, string) - struct bfd_hash_entry *entry; - struct bfd_hash_table *gen_table; - const char *string; +funcvec_hash_newfunc (struct bfd_hash_entry *entry, + struct bfd_hash_table *gen_table, + const char *string) { struct funcvec_hash_entry *ret; struct funcvec_hash_table *table; @@ -171,12 +169,12 @@ funcvec_hash_newfunc (entry, gen_table, /* Initialize the function vector hash table. */ static bfd_boolean -funcvec_hash_table_init (table, abfd, newfunc) - struct funcvec_hash_table *table; - bfd *abfd; - struct bfd_hash_entry *(*newfunc) - PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, - const char *)); +funcvec_hash_table_init (struct funcvec_hash_table *table, + bfd *abfd, + struct bfd_hash_entry *(*newfunc) + (struct bfd_hash_entry *, + struct bfd_hash_table *, + const char *)) { /* Initialize our local fields, then call the generic initialization routine. */ @@ -190,8 +188,7 @@ funcvec_hash_table_init (table, abfd, ne without using static variables. */ static struct bfd_link_hash_table * -h8300_coff_link_hash_table_create (abfd) - bfd *abfd; +h8300_coff_link_hash_table_create (bfd *abfd) { struct h8300_coff_link_hash_table *ret; bfd_size_type amt = sizeof (struct h8300_coff_link_hash_table); @@ -224,15 +221,13 @@ h8300_coff_link_hash_table_create (abfd) the addend until the final link. */ static bfd_reloc_status_type -special (abfd, reloc_entry, symbol, data, input_section, output_bfd, - error_message) - bfd *abfd ATTRIBUTE_UNUSED; - arelent *reloc_entry ATTRIBUTE_UNUSED; - asymbol *symbol ATTRIBUTE_UNUSED; - PTR data ATTRIBUTE_UNUSED; - asection *input_section ATTRIBUTE_UNUSED; - bfd *output_bfd; - char **error_message ATTRIBUTE_UNUSED; +special (bfd *abfd ATTRIBUTE_UNUSED, + arelent *reloc_entry ATTRIBUTE_UNUSED, + asymbol *symbol ATTRIBUTE_UNUSED, + PTR data ATTRIBUTE_UNUSED, + asection *input_section ATTRIBUTE_UNUSED, + bfd *output_bfd, + char **error_message ATTRIBUTE_UNUSED) { if (output_bfd == (bfd *) NULL) return bfd_reloc_continue; @@ -294,8 +289,7 @@ static reloc_howto_type howto_table[] = dst->r_stuff[1] = 'C'; static int -select_reloc (howto) - reloc_howto_type *howto; +select_reloc (reloc_howto_type *howto) { return howto->type; } @@ -303,9 +297,7 @@ select_reloc (howto) /* Code to turn a r_type into a howto ptr, uses the above howto table. */ static void -rtype2howto (internal, dst) - arelent *internal; - struct internal_reloc *dst; +rtype2howto (arelent *internal, struct internal_reloc *dst) { switch (dst->r_type) { @@ -386,12 +378,8 @@ rtype2howto (internal, dst) reloc_processing (relent, reloc, symbols, abfd, section) static void -reloc_processing (relent, reloc, symbols, abfd, section) - arelent *relent; - struct internal_reloc *reloc; - asymbol **symbols; - bfd *abfd; - asection *section; +reloc_processing (arelent *relent, struct internal_reloc *reloc, + asymbol **symbols, bfd *abfd, asection *section) { relent->address = reloc->r_vaddr; rtype2howto (relent, reloc); @@ -410,10 +398,7 @@ reloc_processing (relent, reloc, symbols } static bfd_boolean -h8300_symbol_address_p (abfd, input_section, address) - bfd *abfd; - asection *input_section; - bfd_vma address; +h8300_symbol_address_p (bfd *abfd, asection *input_section, bfd_vma address) { asymbol **s; @@ -445,12 +430,8 @@ h8300_symbol_address_p (abfd, input_sect in the howto table. This needs to be fixed. */ static int -h8300_reloc16_estimate (abfd, input_section, reloc, shrink, link_info) - bfd *abfd; - asection *input_section; - arelent *reloc; - unsigned int shrink; - struct bfd_link_info *link_info; +h8300_reloc16_estimate (bfd *abfd, asection *input_section, arelent *reloc, + unsigned int shrink, struct bfd_link_info *link_info) { bfd_vma value; bfd_vma dot; @@ -592,17 +573,11 @@ h8300_reloc16_estimate (abfd, input_sect case R_MOV16B1: /* Get the address of the data referenced by this mov.b insn. */ value = bfd_coff_reloc16_get_value (reloc, link_info, input_section); + value = bfd_h8300_pad_address (abfd, value); - /* The address is in 0xff00..0xffff inclusive on the h8300 or - 0xffff00..0xffffff inclusive on the h8300h, then we can - relax this mov.b */ - if ((bfd_get_mach (abfd) == bfd_mach_h8300 - && value >= 0xff00 - && value <= 0xffff) - || ((bfd_get_mach (abfd) == bfd_mach_h8300h - || bfd_get_mach (abfd) == bfd_mach_h8300s) - && value >= 0xffff00 - && value <= 0xffffff)) + /* If the address is in the top 256 bytes of the address space + then we can relax this instruction. */ + if (value >= 0xffffff00u) { /* Change the reloc type. */ reloc->howto = reloc->howto + 1; @@ -619,13 +594,9 @@ h8300_reloc16_estimate (abfd, input_sect case R_MOV24B1: /* Get the address of the data referenced by this mov.b insn. */ value = bfd_coff_reloc16_get_value (reloc, link_info, input_section); + value = bfd_h8300_pad_address (abfd, value); - /* The address is in 0xffff00..0xffffff inclusive on the h8300h, - then we can relax this mov.b */ - if ((bfd_get_mach (abfd) == bfd_mach_h8300h - || bfd_get_mach (abfd) == bfd_mach_h8300s) - && value >= 0xffff00 - && value <= 0xffffff) + if (value >= 0xffffff00u) { /* Change the reloc type. */ reloc->howto = reloc->howto + 1; @@ -646,10 +617,11 @@ h8300_reloc16_estimate (abfd, input_sect case R_MOVL1: /* Get the address of the data referenced by this mov insn. */ value = bfd_coff_reloc16_get_value (reloc, link_info, input_section); + value = bfd_h8300_pad_address (abfd, value); - /* If this address is in 0x0000..0x7fff inclusive or - 0xff8000..0xffffff inclusive, then it can be relaxed. */ - if (value <= 0x7fff || value >= 0xff8000) + /* If the address is a sign-extended 16-bit value then we can + relax this instruction. */ + if (value <= 0x7fff || value >= 0xffff8000u) { /* Change the reloc type. */ reloc->howto = howto_table + 17; @@ -676,15 +648,10 @@ h8300_reloc16_estimate (abfd, input_sect FIXME: Not all relocations check for overflow! */ static void -h8300_reloc16_extra_cases (abfd, link_info, link_order, reloc, data, src_ptr, - dst_ptr) - bfd *abfd; - struct bfd_link_info *link_info; - struct bfd_link_order *link_order; - arelent *reloc; - bfd_byte *data; - unsigned int *src_ptr; - unsigned int *dst_ptr; +h8300_reloc16_extra_cases (bfd *abfd, struct bfd_link_info *link_info, + struct bfd_link_order *link_order, arelent *reloc, + bfd_byte *data, unsigned int *src_ptr, + unsigned int *dst_ptr) { unsigned int src_address = *src_ptr; unsigned int dst_address = *dst_ptr; @@ -761,26 +728,9 @@ h8300_reloc16_extra_cases (abfd, link_in /* Get the address of the object referenced by this insn. */ value = bfd_coff_reloc16_get_value (reloc, link_info, input_section); - /* Sanity check. */ - if (value <= 0xff - || (value >= 0x0000ff00 && value <= 0x0000ffff) - || (value >= 0x00ffff00 && value <= 0x00ffffff) - || (value >= 0xffffff00 && value <= 0xffffffff)) - { - /* Everything looks OK. Apply the relocation and update the - src/dst address appropriately. */ - bfd_put_8 (abfd, value & 0xff, data + dst_address); - dst_address += 1; - src_address += 1; - } - else - { - if (! ((*link_info->callbacks->reloc_overflow) - (link_info, bfd_asymbol_name (*reloc->sym_ptr_ptr), - reloc->howto->name, reloc->addend, input_section->owner, - input_section, reloc->address))) - abort (); - } + bfd_put_8 (abfd, value & 0xff, data + dst_address); + dst_address += 1; + src_address += 1; /* All done. */ break; @@ -822,9 +772,10 @@ h8300_reloc16_extra_cases (abfd, link_in absolute relocation. */ case R_MOVL2: value = bfd_coff_reloc16_get_value (reloc, link_info, input_section); + value = bfd_h8300_pad_address (abfd, value); /* Sanity check. */ - if (value <= 0x7fff || value >= 0xff8000) + if (value <= 0x7fff || value >= 0xffff8000u) { /* Insert the 16bit value into the proper location. */ bfd_put_16 (abfd, value, data + dst_address); @@ -1221,9 +1172,7 @@ h8300_reloc16_extra_cases (abfd, link_in selected static symbols to the bfd linker hash table. */ static bfd_boolean -h8300_bfd_link_add_symbols (abfd, info) - bfd *abfd; - struct bfd_link_info *info; +h8300_bfd_link_add_symbols (bfd *abfd, struct bfd_link_info *info) { asection *sec; struct funcvec_hash_table *funcvec_hash_table; @@ -1398,4 +1347,4 @@ h8300_bfd_link_add_symbols (abfd, info) bfd_coff_reloc16_get_relocated_section_contents #define coff_bfd_relax_section bfd_coff_reloc16_relax_section -CREATE_BIG_COFF_TARGET_VEC (h8300coff_vec, "coff-h8300", BFD_IS_RELAXABLE, 0, '_', NULL) +CREATE_BIG_COFF_TARGET_VEC (h8300coff_vec, "coff-h8300", BFD_IS_RELAXABLE, 0, '_', NULL, COFF_SWAP_TABLE) diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/coff-h8500.c binutils-2.14.90.0.5/bfd/coff-h8500.c --- binutils-2.14.90.0.4.1/bfd/coff-h8500.c 2003-05-05 14:46:46.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/coff-h8500.c 2003-07-23 08:08:08.000000000 -0700 @@ -303,4 +303,4 @@ extra_case (in_abfd, link_info, link_ord bfd_coff_reloc16_get_relocated_section_contents #define coff_bfd_relax_section bfd_coff_reloc16_relax_section -CREATE_BIG_COFF_TARGET_VEC (h8500coff_vec, "coff-h8500", 0, 0, '_', NULL) +CREATE_BIG_COFF_TARGET_VEC (h8500coff_vec, "coff-h8500", 0, 0, '_', NULL, COFF_SWAP_TABLE) diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/coff-i386.c binutils-2.14.90.0.5/bfd/coff-i386.c --- binutils-2.14.90.0.4.1/bfd/coff-i386.c 2002-12-16 12:22:51.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/coff-i386.c 2003-07-23 08:08:08.000000000 -0700 @@ -1,6 +1,6 @@ /* BFD back-end for Intel 386 COFF files. Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2001, 2002 + 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Written by Cygnus Support. @@ -56,7 +56,7 @@ static reloc_howto_type *coff_i386_reloc section for a reference to a common symbol is the value itself plus any desired offset. Ian Taylor, Cygnus Support. */ -/* If we are producing relocateable output, we need to do some +/* If we are producing relocatable output, we need to do some adjustments to the object file that are not done by the bfd_perform_relocation function. This function is called by every reloc type to make any required adjustments. */ @@ -103,7 +103,7 @@ coff_i386_reloc (abfd, reloc_entry, symb { /* For some reason bfd_perform_relocation always effectively ignores the addend for a COFF target when producing - relocateable output. This seems to be always wrong for 386 + relocatable output. This seems to be always wrong for 386 COFF, so we handle the addend here instead. */ #ifdef COFF_WITH_PE if (output_bfd == (bfd *) NULL) @@ -386,7 +386,7 @@ static reloc_howto_type howto_table[] = /* The PE relocate section routine. The only difference between this and the regular routine is that we don't want to do anything for a - relocateable link. */ + relocatable link. */ static bfd_boolean coff_pe_i386_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, @@ -405,7 +405,7 @@ coff_pe_i386_relocate_section (output_bf struct internal_syment *syms; asection **sections; { - if (info->relocateable) + if (info->relocatable) return TRUE; return _bfd_coff_generic_relocate_section (output_bfd, info, input_bfd, @@ -470,7 +470,7 @@ coff_i386_rtype_to_howto (abfd, sec, rel #ifndef COFF_WITH_PE /* If the output symbol is common (in which case this must be a - relocateable link), we need to add in the final size of the + relocatable link), we need to add in the final size of the common symbol. */ if (h != NULL && h->root.type == bfd_link_hash_common) *addendp += h->root.u.c.size; diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/coff-i860.c binutils-2.14.90.0.5/bfd/coff-i860.c --- binutils-2.14.90.0.4.1/bfd/coff-i860.c 2002-12-16 12:22:51.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/coff-i860.c 2003-07-23 08:08:08.000000000 -0700 @@ -1,5 +1,5 @@ /* BFD back-end for Intel 860 COFF files. - Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1999, 2000, 2001, 2002 + Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Created mostly by substituting "860" for "386" in coff-i386.c Harry Dolan , October 1995 @@ -47,7 +47,7 @@ static const bfd_target * i3coff_object_ section for a reference to a common symbol is the value itself plus any desired offset. Ian Taylor, Cygnus Support. */ -/* If we are producing relocateable output, we need to do some +/* If we are producing relocatable output, we need to do some adjustments to the object file that are not done by the bfd_perform_relocation function. This function is called by every reloc type to make any required adjustments. */ @@ -87,7 +87,7 @@ coff_i860_reloc (abfd, reloc_entry, symb { /* For some reason bfd_perform_relocation always effectively ignores the addend for a COFF target when producing - relocateable output. This seems to be always wrong for 860 + relocatable output. This seems to be always wrong for 860 COFF, so we handle the addend here instead. */ diff = reloc_entry->addend; } @@ -348,7 +348,7 @@ coff_i860_rtype_to_howto (abfd, sec, rel } /* If the output symbol is common (in which case this must be a - relocateable link), we need to add in the final size of the + relocatable link), we need to add in the final size of the common symbol. */ if (h != NULL && h->root.type == bfd_link_hash_common) *addendp += h->root.u.c.size; diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/coff-i960.c binutils-2.14.90.0.5/bfd/coff-i960.c --- binutils-2.14.90.0.4.1/bfd/coff-i960.c 2002-12-16 12:22:51.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/coff-i960.c 2003-07-23 08:08:08.000000000 -0700 @@ -1,6 +1,6 @@ /* BFD back-end for Intel 960 COFF files. Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1997, 1999, 2000, 2001, - 2002 Free Software Foundation, Inc. + 2002, 2003 Free Software Foundation, Inc. Written by Cygnus Support. This file is part of BFD, the Binary File Descriptor library. @@ -180,12 +180,12 @@ optcall_callback (abfd, reloc_entry, sym same object file. It appears to simply discard such relocs, rather than adding their values into the object file. We handle this here by converting all relocs against defined symbols into relocs - against the section symbol, when generating a relocateable output + against the section symbol, when generating a relocatable output file. Note that this function is only called if we are not using the COFF specific backend linker. It only does something when doing a - relocateable link, which will almost certainly fail when not + relocatable link, which will almost certainly fail when not generating COFF i960 output, so this function is actually no longer useful. It was used before this target was converted to use the COFF specific backend linker. */ @@ -205,7 +205,7 @@ coff_i960_relocate (abfd, reloc_entry, s if (output_bfd == NULL) { - /* Not generating relocateable output file. */ + /* Not generating relocatable output file. */ return bfd_reloc_continue; } @@ -328,7 +328,7 @@ coff_i960_start_final_link (abfd, info) asection *o; bfd_byte *esym; - if (! info->relocateable) + if (! info->relocatable) return TRUE; esym = (bfd_byte *) bfd_malloc (symesz); @@ -455,7 +455,7 @@ coff_i960_relocate_section (output_bfd, + sec->output_section->vma + sec->output_offset); } - else if (! info->relocateable) + else if (! info->relocatable) { if (! ((*info->callbacks->undefined_symbol) (info, h->root.root.string, input_bfd, input_section, @@ -466,7 +466,7 @@ coff_i960_relocate_section (output_bfd, done = FALSE; - if (howto->type == R_OPTCALL && ! info->relocateable && symndx != -1) + if (howto->type == R_OPTCALL && ! info->relocatable && symndx != -1) { int class; @@ -617,7 +617,7 @@ coff_i960_adjust_symndx (obfd, info, ibf extern const bfd_target icoff_big_vec; -CREATE_LITTLE_COFF_TARGET_VEC (icoff_little_vec, "coff-Intel-little", 0, 0, '_', & icoff_big_vec) +CREATE_LITTLE_COFF_TARGET_VEC (icoff_little_vec, "coff-Intel-little", 0, 0, '_', & icoff_big_vec, COFF_SWAP_TABLE) const bfd_target icoff_big_vec = { diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/coff-m68k.c binutils-2.14.90.0.5/bfd/coff-m68k.c --- binutils-2.14.90.0.4.1/bfd/coff-m68k.c 2002-12-16 12:22:51.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/coff-m68k.c 2003-07-23 08:08:08.000000000 -0700 @@ -1,6 +1,6 @@ /* BFD back-end for Motorola 68000 COFF binaries. Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1999, - 2000, 2001, 2002 + 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Written by Cygnus Support. @@ -250,7 +250,7 @@ m68kcoff_rtype_to_howto (abfd, sec, rel, symbol is the value itself plus any desired offset. (taken from work done by Ian Taylor, Cygnus Support, for I386 COFF). */ -/* If we are producing relocateable output, we need to do some +/* If we are producing relocatable output, we need to do some adjustments to the object file that are not done by the bfd_perform_relocation function. This function is called by every reloc type to make any required adjustments. */ @@ -290,7 +290,7 @@ m68kcoff_common_addend_special_fn (abfd, { /* For some reason bfd_perform_relocation always effectively ignores the addend for a COFF target when producing - relocateable output. This seems to be always wrong for 386 + relocatable output. This seems to be always wrong for 386 COFF, so we handle the addend here instead. */ diff = reloc_entry->addend; } @@ -409,7 +409,7 @@ m68kcoff_common_addend_rtype_to_howto (a } /* If the output symbol is common (in which case this must be a - relocateable link), we need to add in the final size of the + relocatable link), we need to add in the final size of the common symbol. */ if (h != NULL && h->root.type == bfd_link_hash_common) *addendp += h->root.u.c.size; @@ -445,7 +445,7 @@ bfd_m68k_coff_create_embedded_relocs (ab bfd_byte *p; bfd_size_type amt; - BFD_ASSERT (! info->relocateable); + BFD_ASSERT (! info->relocatable); *errmsg = NULL; @@ -532,7 +532,7 @@ bfd_m68k_coff_create_embedded_relocs (ab #endif #ifdef NAMES_HAVE_UNDERSCORE -CREATE_BIG_COFF_TARGET_VEC (TARGET_SYM, TARGET_NAME, D_PAGED, 0, '_', NULL) +CREATE_BIG_COFF_TARGET_VEC (TARGET_SYM, TARGET_NAME, D_PAGED, 0, '_', NULL, COFF_SWAP_TABLE) #else -CREATE_BIG_COFF_TARGET_VEC (TARGET_SYM, TARGET_NAME, D_PAGED, 0, 0, NULL) +CREATE_BIG_COFF_TARGET_VEC (TARGET_SYM, TARGET_NAME, D_PAGED, 0, 0, NULL, COFF_SWAP_TABLE) #endif diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/coff-m88k.c binutils-2.14.90.0.5/bfd/coff-m88k.c --- binutils-2.14.90.0.4.1/bfd/coff-m88k.c 2002-12-16 12:22:51.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/coff-m88k.c 2003-07-23 08:08:08.000000000 -0700 @@ -1,6 +1,6 @@ /* BFD back-end for Motorola 88000 COFF "Binary Compatability Standard" files. Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1997, 1998, 1999, 2000, - 2001, 2002 + 2001, 2002, 2003 Free Software Foundation, Inc. Written by Cygnus Support. @@ -120,7 +120,7 @@ m88k_special_reloc (abfd, reloc_entry, s (unsigned char *) data + addr); } - /* If we are not producing relocateable output, return an error if + /* If we are not producing relocatable output, return an error if the symbol is not defined. */ if (bfd_is_und_section (symbol->section) && output_bfd == (bfd *) NULL) return bfd_reloc_undefined; @@ -288,4 +288,4 @@ reloc_processing (relent, reloc, symbols #undef coff_write_armap -CREATE_BIG_COFF_TARGET_VEC (m88kbcs_vec, "coff-m88kbcs", 0, 0, '_', NULL) +CREATE_BIG_COFF_TARGET_VEC (m88kbcs_vec, "coff-m88kbcs", 0, 0, '_', NULL, COFF_SWAP_TABLE) diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/coff-mcore.c binutils-2.14.90.0.5/bfd/coff-mcore.c --- binutils-2.14.90.0.4.1/bfd/coff-mcore.c 2002-12-16 12:22:51.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/coff-mcore.c 2003-07-23 08:08:08.000000000 -0700 @@ -1,5 +1,5 @@ /* BFD back-end for Motorola MCore COFF/PE - Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc. + Copyright 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -388,10 +388,10 @@ coff_mcore_relocate_section (output_bfd, bfd_boolean hihalf; bfd_vma hihalf_val; - /* If we are performing a relocateable link, we don't need to do a + /* If we are performing a relocatable link, we don't need to do a thing. The caller will take care of adjusting the reloc addresses and symbol indices. */ - if (info->relocateable) + if (info->relocatable) return TRUE; /* Check if we have the same endianess */ @@ -593,7 +593,7 @@ extern const bfd_target TARGET_LITTLE_SY /* The transfer vectors that lead the outside world to all of the above. */ CREATE_BIG_COFF_TARGET_VEC (TARGET_BIG_SYM, TARGET_BIG_NAME, D_PAGED, (SEC_CODE | SEC_DATA | SEC_DEBUGGING | SEC_READONLY | SEC_LINK_ONCE | SEC_LINK_DUPLICATES), - 0, & TARGET_LITTLE_SYM) + 0, & TARGET_LITTLE_SYM, COFF_SWAP_TABLE) CREATE_LITTLE_COFF_TARGET_VEC (TARGET_LITTLE_SYM, TARGET_LITTLE_NAME, D_PAGED, (SEC_CODE | SEC_DATA | SEC_DEBUGGING | SEC_READONLY | SEC_LINK_ONCE | SEC_LINK_DUPLICATES), - 0, & TARGET_BIG_SYM) + 0, & TARGET_BIG_SYM, COFF_SWAP_TABLE) diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/coff-mips.c binutils-2.14.90.0.5/bfd/coff-mips.c --- binutils-2.14.90.0.4.1/bfd/coff-mips.c 2002-12-16 12:22:51.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/coff-mips.c 2003-07-23 08:08:08.000000000 -0700 @@ -1,6 +1,6 @@ /* BFD back-end for MIPS Extended-Coff files. Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2001, 2002 + 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Original version by Per Bothner. Full support added by Ian Lance Taylor, ian@cygnus.com. @@ -551,7 +551,7 @@ mips_adjust_reloc_out (abfd, rel, intern } /* ECOFF relocs are either against external symbols, or against - sections. If we are producing relocateable output, and the reloc + sections. If we are producing relocatable output, and the reloc is against an external symbol, and nothing has given us any additional addend, the resulting reloc will also be against the same symbol. In such a case, we don't want to change anything @@ -559,7 +559,7 @@ mips_adjust_reloc_out (abfd, rel, intern final link time. Rather than put special case code into bfd_perform_relocation, all the reloc types use this howto function. It just short circuits the reloc if producing - relocateable output against an external symbol. */ + relocatable output against an external symbol. */ static bfd_reloc_status_type mips_generic_reloc (abfd, @@ -758,7 +758,7 @@ mips_gprel_reloc (abfd, bfd *output_bfd; char **error_message; { - bfd_boolean relocateable; + bfd_boolean relocatable; bfd_vma gp; bfd_vma relocation; unsigned long val; @@ -777,27 +777,27 @@ mips_gprel_reloc (abfd, } if (output_bfd != (bfd *) NULL) - relocateable = TRUE; + relocatable = TRUE; else { - relocateable = FALSE; + relocatable = FALSE; output_bfd = symbol->section->output_section->owner; } - if (bfd_is_und_section (symbol->section) && ! relocateable) + if (bfd_is_und_section (symbol->section) && ! relocatable) return bfd_reloc_undefined; /* We have to figure out the gp value, so that we can adjust the symbol value correctly. We look up the symbol _gp in the output BFD. If we can't find it, we're stuck. We cache it in the ECOFF target data. We don't need to adjust the symbol value for an - external symbol if we are producing relocateable output. */ + external symbol if we are producing relocatable output. */ gp = _bfd_get_gp_value (output_bfd); if (gp == 0 - && (! relocateable + && (! relocatable || (symbol->flags & BSF_SECTION_SYM) != 0)) { - if (relocateable) + if (relocatable) { /* Make up a value. */ gp = symbol->section->output_section->vma + 0x4000; @@ -861,16 +861,16 @@ mips_gprel_reloc (abfd, val -= 0x10000; /* Adjust val for the final section location and GP value. If we - are producing relocateable output, we don't want to do this for + are producing relocatable output, we don't want to do this for an external symbol. */ - if (! relocateable + if (! relocatable || (symbol->flags & BSF_SECTION_SYM) != 0) val += relocation - gp; insn = (insn &~ (unsigned) 0xffff) | (val & 0xffff); bfd_put_32 (abfd, (bfd_vma) insn, (bfd_byte *) data + reloc_entry->address); - if (relocateable) + if (relocatable) reloc_entry->address += input_section->output_offset; /* Make sure it fit in 16 bits. */ @@ -1046,7 +1046,7 @@ mips_rello_reloc (abfd, } /* bfd_perform_relocation does not handle pcrel_offset relocations - correctly when generating a relocateable file, so handle them + correctly when generating a relocatable file, so handle them directly here. */ if (output_bfd != (bfd *) NULL) { @@ -1413,7 +1413,7 @@ mips_relocate_section (output_bfd, info, and the GP value of OUTPUT_BFD (which is in GP). */ addend = ecoff_data (input_bfd)->gp - gp; } - else if (! info->relocateable + else if (! info->relocatable || h->root.type == bfd_link_hash_defined || h->root.type == bfd_link_hash_defweak) { @@ -1432,7 +1432,7 @@ mips_relocate_section (output_bfd, info, /* This is a relocation against an undefined or common symbol. The current addend in the instruction is simply the desired offset into the symbol (normally - zero). We are generating relocateable output, and we + zero). We are generating relocatable output, and we aren't going to define this symbol, so we just leave the instruction alone. */ addend = 0; @@ -1446,7 +1446,7 @@ mips_relocate_section (output_bfd, info, if (offsets != NULL && offsets[i] != 0) { - BFD_ASSERT (! info->relocateable); + BFD_ASSERT (! info->relocatable); BFD_ASSERT (int_rel.r_type == MIPS_R_PCREL16 || int_rel.r_type == MIPS_R_RELHI || int_rel.r_type == MIPS_R_RELLO); @@ -1524,9 +1524,9 @@ mips_relocate_section (output_bfd, info, } } - if (info->relocateable) + if (info->relocatable) { - /* We are generating relocateable output, and must convert + /* We are generating relocatable output, and must convert the existing reloc. */ if (int_rel.r_extern) { @@ -2348,7 +2348,7 @@ bfd_mips_ecoff_create_embedded_relocs (a bfd_byte *p; bfd_size_type amt; - BFD_ASSERT (! info->relocateable); + BFD_ASSERT (! info->relocatable); *errmsg = NULL; diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/coff-or32.c binutils-2.14.90.0.5/bfd/coff-or32.c --- binutils-2.14.90.0.4.1/bfd/coff-or32.c 2002-12-16 12:22:51.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/coff-or32.c 2003-07-23 08:08:08.000000000 -0700 @@ -1,5 +1,5 @@ /* BFD back-end for OpenRISC 1000 COFF binaries. - Copyright 2002 Free Software Foundation, Inc. + Copyright 2002, 2003 Free Software Foundation, Inc. Contributed by Ivan Guzvinec This file is part of BFD, the Binary File Descriptor library. @@ -360,10 +360,10 @@ coff_or32_relocate_section (output_bfd, bfd_boolean hihalf; bfd_vma hihalf_val; - /* If we are performing a relocateable link, we don't need to do a + /* If we are performing a relocatable link, we don't need to do a thing. The caller will take care of adjusting the reloc addresses and symbol indices. */ - if (info->relocateable) + if (info->relocatable) return TRUE; hihalf = FALSE; diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/coff-ppc.c binutils-2.14.90.0.5/bfd/coff-ppc.c --- binutils-2.14.90.0.4.1/bfd/coff-ppc.c 2003-03-19 09:19:13.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/coff-ppc.c 2003-07-23 08:08:08.000000000 -0700 @@ -1088,10 +1088,10 @@ coff_ppc_relocate_section (output_bfd, i bfd_vma relocation; reloc_howto_type *howto = 0; - /* If we are performing a relocateable link, we don't need to do a + /* If we are performing a relocatable link, we don't need to do a thing. The caller will take care of adjusting the reloc addresses and symbol indices. */ - if (info->relocateable) + if (info->relocatable) return TRUE; hihalf = FALSE; @@ -2325,7 +2325,7 @@ ppc_bfd_coff_final_link (abfd, info) || info->strip == strip_some) o->lineno_count += sec->lineno_count; - if (info->relocateable) + if (info->relocatable) o->reloc_count += sec->reloc_count; if (sec->_raw_size > max_contents_size) @@ -2335,7 +2335,7 @@ ppc_bfd_coff_final_link (abfd, info) if (sec->reloc_count > max_reloc_count) max_reloc_count = sec->reloc_count; } - else if (info->relocateable + else if (info->relocatable && (p->type == bfd_section_reloc_link_order || p->type == bfd_symbol_reloc_link_order)) ++o->reloc_count; @@ -2350,9 +2350,9 @@ ppc_bfd_coff_final_link (abfd, info) } } - /* If doing a relocateable link, allocate space for the pointers we + /* If doing a relocatable link, allocate space for the pointers we need to keep. */ - if (info->relocateable) + if (info->relocatable) { unsigned int i; @@ -2401,9 +2401,9 @@ ppc_bfd_coff_final_link (abfd, info) Because of this problem, we also keep the relocs in memory until the end of the link. This wastes memory, - but only when doing a relocateable link, which is not the + but only when doing a relocatable link, which is not the common case. */ - BFD_ASSERT (info->relocateable); + BFD_ASSERT (info->relocatable); amt = o->reloc_count; amt *= sizeof (struct internal_reloc); finfo.section_info[o->target_index].relocs = @@ -2455,7 +2455,7 @@ ppc_bfd_coff_final_link (abfd, info) finfo.linenos = (bfd_byte *) bfd_malloc (amt); finfo.contents = (bfd_byte *) bfd_malloc (max_contents_size); finfo.external_relocs = (bfd_byte *) bfd_malloc (max_reloc_count * relsz); - if (! info->relocateable) + if (! info->relocatable) { amt = max_reloc_count * sizeof (struct internal_reloc); finfo.internal_relocs = (struct internal_reloc *) bfd_malloc (amt); @@ -2467,7 +2467,7 @@ ppc_bfd_coff_final_link (abfd, info) || (finfo.linenos == NULL && max_lineno_count > 0) || (finfo.contents == NULL && max_contents_size > 0) || (finfo.external_relocs == NULL && max_reloc_count > 0) - || (! info->relocateable + || (! info->relocatable && finfo.internal_relocs == NULL && max_reloc_count > 0)) goto error_return; @@ -2602,7 +2602,7 @@ ppc_bfd_coff_final_link (abfd, info) finfo.outsyms = NULL; } - if (info->relocateable) + if (info->relocatable) { /* Now that we have written out all the global symbols, we know the symbol indices to use for relocs against them, and we can diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/coff-rs6000.c binutils-2.14.90.0.5/bfd/coff-rs6000.c --- binutils-2.14.90.0.4.1/bfd/coff-rs6000.c 2002-12-16 12:22:51.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/coff-rs6000.c 2003-07-23 08:08:08.000000000 -0700 @@ -1,5 +1,5 @@ /* BFD back-end for IBM RS/6000 "XCOFF" files. - Copyright 1990-1999, 2000, 2001, 2002 + Copyright 1990-1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. FIXME: Can someone provide a transliteration of this name into ASCII? Using the following chars caused a compiler warning on HIUX (so I replaced @@ -3426,7 +3426,7 @@ xcoff_ppc_relocate_section (output_bfd, } else if ((0 == (h->flags & (XCOFF_DEF_DYNAMIC | XCOFF_IMPORT))) - && ! info->relocateable) + && ! info->relocatable) { if (! ((*info->callbacks->undefined_symbol) (info, h->root.root.string, input_bfd, input_section, diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/coff-sh.c binutils-2.14.90.0.5/bfd/coff-sh.c --- binutils-2.14.90.0.4.1/bfd/coff-sh.c 2003-05-05 14:46:46.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/coff-sh.c 2003-07-23 08:08:08.000000000 -0700 @@ -706,7 +706,7 @@ sh_relax_section (abfd, sec, link_info, *again = FALSE; - if (link_info->relocateable + if (link_info->relocatable || (sec->flags & SEC_RELOC) == 0 || sec->reloc_count == 0) return TRUE; @@ -2969,7 +2969,7 @@ sh_relocate_section (output_bfd, info, i + sec->output_section->vma + sec->output_offset); } - else if (! info->relocateable) + else if (! info->relocatable) { if (! ((*info->callbacks->undefined_symbol) (info, h->root.root.string, input_bfd, input_section, @@ -3024,12 +3024,12 @@ sh_relocate_section (output_bfd, info, i static bfd_byte * sh_coff_get_relocated_section_contents (output_bfd, link_info, link_order, - data, relocateable, symbols) + data, relocatable, symbols) bfd *output_bfd; struct bfd_link_info *link_info; struct bfd_link_order *link_order; bfd_byte *data; - bfd_boolean relocateable; + bfd_boolean relocatable; asymbol **symbols; { asection *input_section = link_order->u.indirect.section; @@ -3040,12 +3040,12 @@ sh_coff_get_relocated_section_contents ( /* We only need to handle the case of relaxing, or of having a particular set of section contents, specially. */ - if (relocateable + if (relocatable || coff_section_data (input_bfd, input_section) == NULL || coff_section_data (input_bfd, input_section)->contents == NULL) return bfd_generic_get_relocated_section_contents (output_bfd, link_info, link_order, data, - relocateable, + relocatable, symbols); memcpy (data, coff_section_data (input_bfd, input_section)->contents, @@ -3132,7 +3132,7 @@ sh_coff_get_relocated_section_contents ( /* The target vectors. */ #ifndef TARGET_SHL_SYM -CREATE_BIG_COFF_TARGET_VEC (shcoff_vec, "coff-sh", BFD_IS_RELAXABLE, 0, '_', NULL) +CREATE_BIG_COFF_TARGET_VEC (shcoff_vec, "coff-sh", BFD_IS_RELAXABLE, 0, '_', NULL, COFF_SWAP_TABLE) #endif #ifdef TARGET_SHL_SYM @@ -3147,10 +3147,10 @@ CREATE_BIG_COFF_TARGET_VEC (shcoff_vec, #ifdef COFF_WITH_PE CREATE_LITTLE_COFF_TARGET_VEC (TARGET_SYM, TARGET_SHL_NAME, BFD_IS_RELAXABLE, - SEC_CODE | SEC_DATA, '_', NULL); + SEC_CODE | SEC_DATA, '_', NULL, COFF_SWAP_TABLE); #else CREATE_LITTLE_COFF_TARGET_VEC (TARGET_SYM, TARGET_SHL_NAME, BFD_IS_RELAXABLE, - 0, '_', NULL) + 0, '_', NULL, COFF_SWAP_TABLE) #endif #ifndef TARGET_SHL_SYM diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/coff-sparc.c binutils-2.14.90.0.5/bfd/coff-sparc.c --- binutils-2.14.90.0.4.1/bfd/coff-sparc.c 2002-12-16 12:22:51.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/coff-sparc.c 2003-07-23 08:08:08.000000000 -0700 @@ -216,4 +216,4 @@ rtype2howto (cache_ptr, dst) #define TARGET_NAME "coff-sparc" #endif -CREATE_BIG_COFF_TARGET_VEC (TARGET_SYM, TARGET_NAME, D_PAGED, 0, '_', NULL) +CREATE_BIG_COFF_TARGET_VEC (TARGET_SYM, TARGET_NAME, D_PAGED, 0, '_', NULL, COFF_SWAP_TABLE) diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/coff-tic4x.c binutils-2.14.90.0.5/bfd/coff-tic4x.c --- binutils-2.14.90.0.4.1/bfd/coff-tic4x.c 2003-05-05 14:46:46.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/coff-tic4x.c 2003-07-23 08:08:08.000000000 -0700 @@ -32,10 +32,6 @@ #undef F_LSYMS #define F_LSYMS F_LSYMS_TICOFF -static bfd_boolean ticoff0_bad_format_hook - PARAMS ((bfd *, PTR )); -static bfd_boolean ticoff1_bad_format_hook - PARAMS ((bfd *, PTR )); static bfd_boolean ticoff_bfd_is_local_label_name PARAMS ((bfd *, const char *)); static bfd_reloc_status_type tic4x_relocation @@ -50,32 +46,6 @@ static void tic4x_reloc_processing PARAMS ((arelent *, struct internal_reloc *, asymbol **, bfd *, asection * )); -static bfd_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 bfd_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 bfd_boolean @@ -281,353 +251,20 @@ tic4x_reloc_processing (relent, reloc, s } -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-tic4x", /* 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 -}; +CREATE_LITTLE_COFF_TARGET_VEC(tic4x_coff0_vec, "coff0-tic4x", HAS_LOAD_PAGE, 0, '_', NULL, (PTR)&ticoff0_swap_table); /* TI COFF v0, SPARC tools (big-endian headers). */ -const bfd_target tic4x_coff0_beh_vec = -{ - "coff0-beh-tic4x", /* 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 -}; +CREATE_BIGHDR_COFF_TARGET_VEC(tic4x_coff0_beh_vec, "coff0-beh-tic4x", HAS_LOAD_PAGE, 0, '_', &tic4x_coff0_vec, (PTR)&ticoff0_swap_table); /* TI COFF v1, DOS tools (little-endian headers). */ -const bfd_target tic4x_coff1_vec = -{ - "coff1-tic4x", /* 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 -}; +CREATE_LITTLE_COFF_TARGET_VEC(tic4x_coff1_vec, "coff1-tic4x", HAS_LOAD_PAGE, 0, '_', &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-tic4x", /* 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 -}; +CREATE_BIGHDR_COFF_TARGET_VEC(tic4x_coff1_beh_vec, "coff1-beh-tic4x", HAS_LOAD_PAGE, 0, '_', &tic4x_coff1_vec, (PTR)&ticoff1_swap_table); /* TI COFF v2, TI DOS tools output (little-endian headers). */ -const bfd_target tic4x_coff2_vec = -{ - "coff2-tic4x", /* 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 -}; +CREATE_LITTLE_COFF_TARGET_VEC(tic4x_coff2_vec, "coff2-tic4x", HAS_LOAD_PAGE, 0, '_', &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-tic4x", /* 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 -}; +CREATE_BIGHDR_COFF_TARGET_VEC(tic4x_coff2_beh_vec, "coff2-beh-tic4x", HAS_LOAD_PAGE, 0, '_', &tic4x_coff2_vec, COFF_SWAP_TABLE); diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/coff-tic54x.c binutils-2.14.90.0.5/bfd/coff-tic54x.c --- binutils-2.14.90.0.4.1/bfd/coff-tic54x.c 2002-12-16 12:22:51.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/coff-tic54x.c 2003-07-23 08:08:08.000000000 -0700 @@ -50,10 +50,6 @@ static reloc_howto_type * tic54x_coff_re PARAMS ((bfd *, bfd_reloc_code_real_type)); static void tic54x_lookup_howto PARAMS ((arelent *, struct internal_reloc *)); -static bfd_boolean ticoff0_bad_format_hook - PARAMS ((bfd *, PTR)); -static bfd_boolean ticoff1_bad_format_hook - PARAMS ((bfd *, PTR)); static bfd_boolean ticoff_bfd_is_local_label_name PARAMS ((bfd *, const char *)); @@ -323,32 +319,6 @@ coff_tic54x_rtype_to_howto (abfd, sec, r return genrel.howto; } -static bfd_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 bfd_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. */ @@ -435,88 +405,6 @@ tic54x_reloc_processing (relent, reloc, tic54x_lookup_howto (relent, reloc); } -/* 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 -#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 - COFF_DEFAULT_SECTION_ALIGNMENT_POWER, -#ifdef COFF_FORCE_SYMBOLS_IN_STRINGS - TRUE, -#else - FALSE, -#endif -#ifdef COFF_DEBUG_STRING_WIDE_PREFIX - 4, -#else - 2, -#endif - 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 tic54x_coff0_vec = { diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/coff-tic80.c binutils-2.14.90.0.5/bfd/coff-tic80.c --- binutils-2.14.90.0.4.1/bfd/coff-tic80.c 2002-12-16 12:22:51.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/coff-tic80.c 2003-07-23 08:08:08.000000000 -0700 @@ -1,5 +1,6 @@ /* BFD back-end for Texas Instruments TMS320C80 Multimedia Video Processor (MVP). - Copyright 1996, 1997, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. + Copyright 1996, 1997, 1999, 2000, 2001, 2002, 2003 + Free Software Foundation, Inc. Written by Fred Fish (fnf@cygnus.com) @@ -576,7 +577,7 @@ coff_tic80_relocate_section (output_bfd, + sec->output_offset); } - else if (! info->relocateable) + else if (! info->relocatable) { if (! ((*info->callbacks->undefined_symbol) (info, h->root.root.string, input_bfd, input_section, @@ -719,4 +720,4 @@ coff_tic80_relocate_section (output_bfd, #undef C_LASTENT /* Clashes with TIc80's C_STATLAB */ #include "coffcode.h" -CREATE_LITTLE_COFF_TARGET_VEC (tic80coff_vec, "coff-tic80", D_PAGED, 0, '_', NULL) +CREATE_LITTLE_COFF_TARGET_VEC (tic80coff_vec, "coff-tic80", D_PAGED, 0, '_', NULL, COFF_SWAP_TABLE) diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/coff-w65.c binutils-2.14.90.0.5/bfd/coff-w65.c --- binutils-2.14.90.0.4.1/bfd/coff-w65.c 2002-12-16 12:22:51.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/coff-w65.c 2003-07-23 08:08:08.000000000 -0700 @@ -380,4 +380,4 @@ w65_reloc16_extra_cases (abfd, link_info bfd_coff_reloc16_get_relocated_section_contents #define coff_bfd_relax_section bfd_coff_reloc16_relax_section -CREATE_LITTLE_COFF_TARGET_VEC (w65_vec, "coff-w65", BFD_IS_RELAXABLE, 0, '_', NULL) +CREATE_LITTLE_COFF_TARGET_VEC (w65_vec, "coff-w65", BFD_IS_RELAXABLE, 0, '_', NULL, COFF_SWAP_TABLE) diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/coff-we32k.c binutils-2.14.90.0.5/bfd/coff-we32k.c --- binutils-2.14.90.0.4.1/bfd/coff-we32k.c 2002-12-16 12:22:51.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/coff-we32k.c 2003-07-23 08:08:08.000000000 -0700 @@ -66,4 +66,4 @@ static reloc_howto_type howto_table[] = #define coff_write_armap bsd_write_armap -CREATE_BIG_COFF_TARGET_VEC (we32kcoff_vec, "coff-we32k", 0, 0, 0, NULL) +CREATE_BIG_COFF_TARGET_VEC (we32kcoff_vec, "coff-we32k", 0, 0, 0, NULL, COFF_SWAP_TABLE) diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/coff-z8k.c binutils-2.14.90.0.5/bfd/coff-z8k.c --- binutils-2.14.90.0.4.1/bfd/coff-z8k.c 2002-12-16 12:22:51.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/coff-z8k.c 2003-07-23 08:08:08.000000000 -0700 @@ -350,4 +350,4 @@ extra_case (in_abfd, link_info, link_ord bfd_coff_reloc16_get_relocated_section_contents #define coff_bfd_relax_section bfd_coff_reloc16_relax_section -CREATE_BIG_COFF_TARGET_VEC (z8kcoff_vec, "coff-z8k", 0, 0, '_', NULL) +CREATE_BIG_COFF_TARGET_VEC (z8kcoff_vec, "coff-z8k", 0, 0, '_', NULL, COFF_SWAP_TABLE) diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/coff64-rs6000.c binutils-2.14.90.0.5/bfd/coff64-rs6000.c --- binutils-2.14.90.0.4.1/bfd/coff64-rs6000.c 2003-01-21 10:21:32.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/coff64-rs6000.c 2003-07-23 08:08:08.000000000 -0700 @@ -1,5 +1,5 @@ /* BFD back-end for IBM RS/6000 "XCOFF64" files. - Copyright 2000, 2001, 2002 + Copyright 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Written Clinton Popetz. Contributed by Cygnus Support. @@ -1277,7 +1277,7 @@ xcoff64_ppc_relocate_section (output_bfd + sec->output_offset); } else if ((0 == (h->flags & (XCOFF_DEF_DYNAMIC | XCOFF_IMPORT))) - && ! info->relocateable) + && ! info->relocatable) { if (! ((*info->callbacks->undefined_symbol) (info, h->root.root.string, input_bfd, input_section, diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/coffcode.h binutils-2.14.90.0.5/bfd/coffcode.h --- binutils-2.14.90.0.4.1/bfd/coffcode.h 2003-05-05 14:46:46.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/coffcode.h 2003-07-23 08:08:08.000000000 -0700 @@ -362,6 +362,12 @@ static unsigned int coff_compute_checksu static bfd_boolean coff_apply_checksum PARAMS ((bfd *)); #endif +#ifdef TICOFF +static bfd_boolean ticoff0_bad_format_hook + PARAMS ((bfd *, PTR )); +static bfd_boolean ticoff1_bad_format_hook + PARAMS ((bfd *, PTR )); +#endif /* void warning(); */ @@ -1439,6 +1445,36 @@ coff_bad_format_hook (abfd, filehdr) return TRUE; } +#ifdef TICOFF +static bfd_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; +} +#endif + +#ifdef TICOFF +static bfd_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; +} +#endif + /* Check whether this section uses an alignment other than the default. */ @@ -3837,7 +3873,9 @@ coff_write_object_contents (abfd) internal_f.f_flags |= IMAGE_FILE_DEBUG_STRIPPED; #endif -#ifndef COFF_WITH_PE +#ifdef COFF_WITH_PE + internal_f.f_flags |= IMAGE_FILE_32BIT_MACHINE; +#else if (bfd_little_endian (abfd)) internal_f.f_flags |= F_AR32WR; else @@ -4657,7 +4695,9 @@ coff_slurp_symbol_table (abfd) case C_RSYM: case C_RPSYM: case C_STSYM: + case C_TCSYM: case C_BCOMM: + case C_ECOML: case C_ECOMM: case C_DECL: case C_ENTRY: @@ -5338,6 +5378,92 @@ static const bfd_coff_backend_data bfd_c coff_link_output_has_begun, coff_final_link_postscript }; +#ifdef TICOFF +/* 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, +#ifdef COFF_FORCE_SYMBOLS_IN_STRINGS + TRUE, +#else + FALSE, +#endif +#ifdef COFF_DEBUG_STRING_WIDE_PREFIX + 4, +#else + 2, +#endif + 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 +}; +#endif + +#ifdef TICOFF +/* 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, +#ifdef COFF_FORCE_SYMBOLS_IN_STRINGS + TRUE, +#else + FALSE, +#endif +#ifdef COFF_DEBUG_STRING_WIDE_PREFIX + 4, +#else + 2, +#endif + 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 +}; +#endif + #ifndef coff_close_and_cleanup #define coff_close_and_cleanup _bfd_generic_close_and_cleanup #endif @@ -5413,7 +5539,7 @@ static const bfd_coff_backend_data bfd_c #define coff_bfd_discard_group bfd_generic_discard_group #endif -#define CREATE_BIG_COFF_TARGET_VEC(VAR, NAME, EXTRA_O_FLAGS, EXTRA_S_FLAGS, UNDER, ALTERNATIVE) \ +#define CREATE_BIG_COFF_TARGET_VEC(VAR, NAME, EXTRA_O_FLAGS, EXTRA_S_FLAGS, UNDER, ALTERNATIVE, SWAP_TABLE) \ const bfd_target VAR = \ { \ NAME , \ @@ -5460,10 +5586,60 @@ const bfd_target VAR = \ \ ALTERNATIVE, \ \ - COFF_SWAP_TABLE \ + SWAP_TABLE \ +}; + +#define CREATE_BIGHDR_COFF_TARGET_VEC(VAR, NAME, EXTRA_O_FLAGS, EXTRA_S_FLAGS, UNDER, ALTERNATIVE, SWAP_TABLE) \ +const bfd_target VAR = \ +{ \ + NAME , \ + bfd_target_coff_flavour, \ + BFD_ENDIAN_LITTLE, /* data byte order is little */ \ + BFD_ENDIAN_BIG, /* header byte order is big */ \ + /* object flags */ \ + (HAS_RELOC | EXEC_P | HAS_LINENO | HAS_DEBUG | \ + HAS_SYMS | HAS_LOCALS | WP_TEXT | EXTRA_O_FLAGS), \ + /* section flags */ \ + (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | EXTRA_S_FLAGS),\ + UNDER, /* leading symbol underscore */ \ + '/', /* ar_pad_char */ \ + 15, /* ar_max_namelen */ \ + \ + /* Data conversion functions. */ \ + bfd_getb64, bfd_getb_signed_64, bfd_putb64, \ + bfd_getb32, bfd_getb_signed_32, bfd_putb32, \ + bfd_getb16, bfd_getb_signed_16, bfd_putb16, \ + \ + /* Header conversion functions. */ \ + bfd_getb64, bfd_getb_signed_64, bfd_putb64, \ + bfd_getb32, bfd_getb_signed_32, bfd_putb32, \ + bfd_getb16, bfd_getb_signed_16, bfd_putb16, \ + \ + /* bfd_check_format */ \ + { _bfd_dummy_target, coff_object_p, bfd_generic_archive_p, \ + _bfd_dummy_target }, \ + /* bfd_set_format */ \ + { bfd_false, coff_mkobject, _bfd_generic_mkarchive, bfd_false }, \ + /* bfd_write_contents */ \ + { bfd_false, coff_write_object_contents, _bfd_write_archive_contents, \ + bfd_false }, \ + \ + BFD_JUMP_TABLE_GENERIC (coff), \ + BFD_JUMP_TABLE_COPY (coff), \ + BFD_JUMP_TABLE_CORE (_bfd_nocore), \ + BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff), \ + BFD_JUMP_TABLE_SYMBOLS (coff), \ + BFD_JUMP_TABLE_RELOCS (coff), \ + BFD_JUMP_TABLE_WRITE (coff), \ + BFD_JUMP_TABLE_LINK (coff), \ + BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), \ + \ + ALTERNATIVE, \ + \ + SWAP_TABLE \ }; -#define CREATE_LITTLE_COFF_TARGET_VEC(VAR, NAME, EXTRA_O_FLAGS, EXTRA_S_FLAGS, UNDER, ALTERNATIVE) \ +#define CREATE_LITTLE_COFF_TARGET_VEC(VAR, NAME, EXTRA_O_FLAGS, EXTRA_S_FLAGS, UNDER, ALTERNATIVE, SWAP_TABLE) \ const bfd_target VAR = \ { \ NAME , \ @@ -5508,5 +5684,5 @@ const bfd_target VAR = \ \ ALTERNATIVE, \ \ - COFF_SWAP_TABLE \ + SWAP_TABLE \ }; diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/cofflink.c binutils-2.14.90.0.5/bfd/cofflink.c --- binutils-2.14.90.0.4.1/bfd/cofflink.c 2002-12-16 12:22:51.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/cofflink.c 2003-07-23 08:08:08.000000000 -0700 @@ -1,5 +1,5 @@ /* COFF specific linker code. - Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 + Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Written by Ian Lance Taylor, Cygnus Support. @@ -597,9 +597,9 @@ coff_link_add_symbols (abfd, info) sym_hash += sym.n_numaux + 1; } - /* If this is a non-traditional, non-relocateable link, try to + /* If this is a non-traditional, non-relocatable link, try to optimize the handling of any .stab/.stabstr sections. */ - if (! info->relocateable + if (! info->relocatable && ! info->traditional_format && info->hash->creator->flavour == bfd_get_flavour (abfd) && (info->strip != strip_all && info->strip != strip_debugger)) @@ -739,7 +739,7 @@ _bfd_coff_final_link (abfd, info) || info->strip == strip_some) o->lineno_count += sec->lineno_count; - if (info->relocateable) + if (info->relocatable) o->reloc_count += sec->reloc_count; if (sec->_raw_size > max_contents_size) @@ -749,7 +749,7 @@ _bfd_coff_final_link (abfd, info) if (sec->reloc_count > max_reloc_count) max_reloc_count = sec->reloc_count; } - else if (info->relocateable + else if (info->relocatable && (p->type == bfd_section_reloc_link_order || p->type == bfd_symbol_reloc_link_order)) ++o->reloc_count; @@ -782,9 +782,9 @@ _bfd_coff_final_link (abfd, info) } } - /* If doing a relocateable link, allocate space for the pointers we + /* If doing a relocatable link, allocate space for the pointers we need to keep. */ - if (info->relocateable) + if (info->relocatable) { unsigned int i; @@ -830,9 +830,9 @@ _bfd_coff_final_link (abfd, info) Because of this problem, we also keep the relocs in memory until the end of the link. This wastes memory, - but only when doing a relocateable link, which is not the + but only when doing a relocatable link, which is not the common case. */ - BFD_ASSERT (info->relocateable); + BFD_ASSERT (info->relocatable); amt = o->reloc_count; amt *= sizeof (struct internal_reloc); finfo.section_info[o->target_index].relocs = @@ -884,7 +884,7 @@ _bfd_coff_final_link (abfd, info) finfo.contents = (bfd_byte *) bfd_malloc (max_contents_size); amt = max_reloc_count * relsz; finfo.external_relocs = (bfd_byte *) bfd_malloc (amt); - if (! info->relocateable) + if (! info->relocatable) { amt = max_reloc_count * sizeof (struct internal_reloc); finfo.internal_relocs = (struct internal_reloc *) bfd_malloc (amt); @@ -896,7 +896,7 @@ _bfd_coff_final_link (abfd, info) || (finfo.linenos == NULL && max_lineno_count > 0) || (finfo.contents == NULL && max_contents_size > 0) || (finfo.external_relocs == NULL && max_reloc_count > 0) - || (! info->relocateable + || (! info->relocatable && finfo.internal_relocs == NULL && max_reloc_count > 0)) goto error_return; @@ -1033,7 +1033,7 @@ _bfd_coff_final_link (abfd, info) finfo.outsyms = NULL; } - if (info->relocateable && max_output_reloc_count > 0) + if (info->relocatable && max_output_reloc_count > 0) { /* Now that we have written out all the global symbols, we know the symbol indices to use for relocs against them, and we can @@ -1334,8 +1334,8 @@ mark_relocs (finfo, input_bfd) internal_relocs = _bfd_coff_read_internal_relocs (input_bfd, a, FALSE, finfo->external_relocs, - finfo->info->relocateable, - (finfo->info->relocateable + finfo->info->relocatable, + (finfo->info->relocatable ? (finfo->section_info[ a->output_section->target_index ].relocs + a->output_section->reloc_count) : finfo->internal_relocs) ); @@ -1430,7 +1430,7 @@ _bfd_coff_link_input_bfd (finfo, input_b going to be involved in the relocations */ if (( finfo->info->strip != strip_none || finfo->info->discard != discard_none) - && finfo->info->relocateable) + && finfo->info->relocatable) { /* mark the symbol array as 'not-used' */ memset (indexp, 0, obj_raw_syment_count (input_bfd) * sizeof * indexp); @@ -1477,7 +1477,7 @@ _bfd_coff_link_input_bfd (finfo, input_b relocation. */ if ((finfo->info->strip != strip_none || finfo->info->discard != discard_none) - && finfo->info->relocateable) + && finfo->info->relocatable) dont_skip_symbol = *indexp; else dont_skip_symbol = FALSE; @@ -2356,8 +2356,8 @@ _bfd_coff_link_input_bfd (finfo, input_b target_index = o->output_section->target_index; internal_relocs = (_bfd_coff_read_internal_relocs (input_bfd, o, FALSE, finfo->external_relocs, - finfo->info->relocateable, - (finfo->info->relocateable + finfo->info->relocatable, + (finfo->info->relocatable ? (finfo->section_info[target_index].relocs + o->output_section->reloc_count) : finfo->internal_relocs))); @@ -2374,7 +2374,7 @@ _bfd_coff_link_input_bfd (finfo, input_b finfo->sec_ptrs)) return FALSE; - if (finfo->info->relocateable) + if (finfo->info->relocatable) { bfd_vma offset; struct internal_reloc *irelend; @@ -2608,9 +2608,9 @@ _bfd_coff_write_global_sym (h, data) /* When a weak symbol is not overriden by a strong one, turn it into an external symbol when not building a - shared or relocateable object. */ + shared or relocatable object. */ if (! finfo->info->shared - && ! finfo->info->relocateable + && ! finfo->info->relocatable && IS_WEAK_EXTERNAL (finfo->output_bfd, isym)) isym.n_sclass = C_EXT; @@ -2666,7 +2666,7 @@ _bfd_coff_write_global_sym (h, data) if (sec->reloc_count > 0xffff && (! obj_pe (output_bfd) - || finfo->info->relocateable)) + || finfo->info->relocatable)) (*_bfd_error_handler) (_("%s: %s: reloc overflow: 0x%lx > 0xffff"), bfd_get_filename (output_bfd), @@ -2675,7 +2675,7 @@ _bfd_coff_write_global_sym (h, data) if (sec->lineno_count > 0xffff && (! obj_pe (output_bfd) - || finfo->info->relocateable)) + || finfo->info->relocatable)) (*_bfd_error_handler) (_("%s: warning: %s: line number overflow: 0x%lx > 0xffff"), bfd_get_filename (output_bfd), @@ -2938,13 +2938,13 @@ _bfd_coff_generic_relocate_section (outp if (howto == NULL) return FALSE; - /* If we are doing a relocateable link, then we can just ignore + /* If we are doing a relocatable link, then we can just ignore a PC relative reloc that is pcrel_offset. It will already - have the correct value. If this is not a relocateable link, + have the correct value. If this is not a relocatable link, then we should ignore the symbol value. */ if (howto->pc_relative && howto->pcrel_offset) { - if (info->relocateable) + if (info->relocatable) continue; if (sym != NULL && sym->n_scnum != 0) addend += sym->n_value; @@ -2987,7 +2987,7 @@ _bfd_coff_generic_relocate_section (outp else if (h->root.type == bfd_link_hash_undefweak) val = 0; - else if (! info->relocateable) + else if (! info->relocatable) { if (! ((*info->callbacks->undefined_symbol) (info, h->root.root.string, input_bfd, input_section, diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/config.bfd binutils-2.14.90.0.5/bfd/config.bfd --- binutils-2.14.90.0.4.1/bfd/config.bfd 2003-05-23 07:18:52.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/config.bfd 2003-07-23 08:08:08.000000000 -0700 @@ -60,6 +60,7 @@ x86_64) targ_archs=bfd_i386_arc xscale*) targ_archs=bfd_arm_arch ;; xtensa*) targ_archs=bfd_xtensa_arch ;; z8k*) targ_archs=bfd_z8k_arch ;; +am33_2.0) targ_archs=bfd_mn10300_arch ;; *) targ_archs=bfd_${targ_cpu}_arch ;; esac @@ -68,8 +69,21 @@ esac # Make sure that the left side always has two dashes. Otherwise you # can get spurious matches. Even for unambiguous cases, do this as a # convention, else the table becomes a real mess to understand and maintain. +# +# Keep obsolete entries above the START comment, to keep them out of +# targmatch.h. case "${targ}" in + mips*-dec-bsd*) + echo "This target is obsolete and has been removed." + exit 1 + ;; + + mips*-*-pe*) + echo "This target is obsolete and has been removed." + exit 1 + ;; + # START OF targmatch.h #ifdef BFD64 alpha*-*-freebsd*) @@ -103,10 +117,6 @@ case "${targ}" in alpha*-*-*) targ_defvec=ecoffalpha_little_vec ;; - ia64*-*-aix*) - targ_defvec=bfd_elf64_ia64_aix_little_vec - targ_selvecs="bfd_elf64_ia64_aix_big_vec bfd_efi_app_ia64_vec" - ;; ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-gnu* | ia64*-*-elf*) targ_defvec=bfd_elf64_ia64_little_vec targ_selvecs="bfd_elf64_ia64_big_vec bfd_efi_app_ia64_vec" @@ -121,6 +131,9 @@ case "${targ}" in ;; #endif /* BFD64 */ + am33_2.0-*-linux*) + targ_defvec=bfd_elf32_am33lin_vec + ;; arc-*-elf*) targ_defvec=bfd_elf32_littlearc_vec targ_selvecs=bfd_elf32_bigarc_vec @@ -138,6 +151,7 @@ case "${targ}" in targ_defvec=armnetbsd_vec targ_selvecs="bfd_elf32_littlearm_vec bfd_elf32_bigarm_vec" targ_underscore=yes + targ_cflags=-D__QNXTARGET__ ;; arm-*-nto* | nto*arm*) targ_defvec=bfd_elf32_littlearm_vec @@ -156,7 +170,7 @@ case "${targ}" in targ_defvec=armpe_little_vec targ_selvecs="armpe_little_vec armpe_big_vec armpei_little_vec armpei_big_vec" targ_underscore=no - targ_cflags=-DARM_WINCE + targ_cflags="-DARM_WINCE -DARM_COFF_BUGFIX" ;; arm-*-pe*) targ_defvec=armpe_little_vec @@ -271,7 +285,7 @@ case "${targ}" in targ_defvec=tic30_coff_vec ;; - c4x-*-*coff* | tic4x-*-*coff*) + c4x-*-*coff* | tic4x-*-*coff* | tic4x-*-rtems*) 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 @@ -433,7 +447,7 @@ case "${targ}" in targ_cflags=-DOLD_FREEBSD_ABI_LABEL ;; esac ;; - i[3-7]86-*-netbsdelf*) + i[3-7]86-*-netbsdelf* | i[3-7]86-*-netbsd*-gnu*) targ_defvec=bfd_elf32_i386_vec targ_selvecs=i386netbsd_vec ;; @@ -441,11 +455,16 @@ case "${targ}" in targ_defvec=i386pe_vec targ_selvecs="i386pe_vec i386pei_vec bfd_elf32_i386_vec" ;; - i[3-7]86-*-netbsdaout* | i[3-7]86-*-netbsd* | i[3-7]86-*-openbsd*) + i[3-7]86-*-netbsdaout* | i[3-7]86-*-netbsd* | \ + i[3-7]86-*-openbsd[0-2].* | i[3-7]86-*-openbsd3.[0-3]) targ_defvec=i386netbsd_vec targ_selvecs="bfd_elf32_i386_vec i386bsd_vec" targ_underscore=yes ;; + i[3-7]86-*-openbsd*) + targ_defvec=bfd_elf32_i386_vec + targ_selvecs=i386netbsd_vec + ;; i[3-7]86-*-netware*) targ_defvec=bfd_elf32_i386_vec targ_selvecs="nlm32_i386_vec i386coff_vec i386aout_vec" @@ -718,10 +737,6 @@ case "${targ}" in targ_defvec=bfd_elf32_bigmips_vec targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec ecoff_big_vec ecoff_little_vec" ;; - mips*-dec-bsd*) - targ_defvec=aout_mips_little_vec - targ_underscore=yes - ;; mips*-dec-mach3*) targ_defvec=aout_mips_little_vec targ_cflags=-DSTAT_FOR_EXEC @@ -756,11 +771,6 @@ case "${targ}" in targ_defvec=aout_mips_little_vec targ_cflags=-DSTAT_FOR_EXEC ;; - mips*-*-pe*) - targ_defvec=mipslpe_vec - targ_selvecs="mipslpei_vec mipslpei_vec ecoff_little_vec ecoff_big_vec" - targ_underscore=yes - ;; mips*-*-sysv4*) targ_defvec=bfd_elf32_tradbigmips_vec targ_selvecs="bfd_elf32_tradlittlemips_vec ecoff_big_vec ecoff_little_vec" @@ -821,6 +831,7 @@ case "${targ}" in mn10300-*-*) targ_defvec=bfd_elf32_mn10300_vec + targ_underscore=yes ;; msp430-*-*) @@ -942,7 +953,6 @@ case "${targ}" in targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec ppcboot_vec" targ64_selvecs="bfd_elf64_powerpc_vec bfd_elf64_powerpcle_vec" ;; - powerpcle-*-pe | powerpcle-*-winnt* | powerpcle-*-cygwin*) targ_defvec=bfd_powerpcle_pe_vec targ_selvecs="bfd_powerpcle_pei_vec bfd_powerpc_pei_vec bfd_powerpcle_pe_vec bfd_powerpc_pe_vec" @@ -1034,7 +1044,6 @@ case "${targ}" in targ_defvec=bfd_elf32_shnbsd_vec targ_selvecs="bfd_elf32_shlnbsd_vec shcoff_vec shlcoff_vec" ;; - shl*-*-elf* | sh[1234]l*-*-elf* | sh3el*-*-elf* | shl*-*-kaos*) targ_defvec=bfd_elf32_shl_vec targ_selvecs="bfd_elf32_sh_vec shlcoff_vec shcoff_vec shlcoff_small_vec shcoff_small_vec" @@ -1104,10 +1113,14 @@ case "${targ}" in targ_selvecs=bfd_elf32_sparc_vec targ_underscore=yes ;; - sparc-*-openbsd*) + sparc-*-openbsd[0-2].* | sparc-*-openbsd3.[0-1]) targ_defvec=sparcnetbsd_vec targ_underscore=yes ;; + sparc-*-openbsd*) + targ_defvec=bfd_elf32_sparc_vec + targ_selvecs=sparcnetbsd_vec + ;; sparc-*-elf* | sparc-*-solaris2.[0-6] | sparc-*-solaris2.[0-6].*) targ_defvec=bfd_elf32_sparc_vec targ_selvecs=sunos_big_vec @@ -1168,7 +1181,6 @@ case "${targ}" in targ_underscore=yes ;; - v850-*-*) targ_defvec=bfd_elf32_v850_vec ;; @@ -1195,6 +1207,11 @@ case "${targ}" in targ_underscore=yes ;; + vax-*-openbsd*) + targ_defvec=vaxnetbsd_vec + targ_underscore=yes + ;; + vax*-*-*vms*) targ_defvec=vms_vax_vec ;; diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/config.in binutils-2.14.90.0.5/bfd/config.in --- binutils-2.14.90.0.4.1/bfd/config.in 2003-01-21 10:21:32.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/config.in 2003-07-23 08:08:08.000000000 -0700 @@ -25,9 +25,6 @@ /* Define to `long' if doesn't define. */ #undef off_t -/* Define if you need to in order for stat and other things to work. */ -#undef _POSIX_SOURCE - /* Define to `unsigned' if doesn't define. */ #undef size_t @@ -160,15 +157,9 @@ /* Define if you have the header file. */ #undef HAVE_SYS_PROCFS_H -/* Define if you have the header file. */ -#undef HAVE_SYS_STAT_H - /* Define if you have the header file. */ #undef HAVE_SYS_TIME_H -/* Define if you have the header file. */ -#undef HAVE_SYS_TYPES_H - /* Define if you have the header file. */ #undef HAVE_TIME_H diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/configure binutils-2.14.90.0.5/bfd/configure --- binutils-2.14.90.0.4.1/bfd/configure 2003-06-24 13:17:34.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/configure 2003-07-23 08:08:08.000000000 -0700 @@ -918,7 +918,7 @@ fi PACKAGE=bfd -VERSION=2.14.90.0.4.1 +VERSION=2.14.90.0.5 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; } @@ -5300,7 +5300,9 @@ rm -f conftest* COREFILE=trad-core.lo TRAD_HEADER='"hosts/tahoe.h"' ;; - vax-*-netbsd*) COREFILE=netbsd-core.lo ;; + vax-*-netbsd* | vax-*-openbsd*) + COREFILE=netbsd-core.lo + ;; vax-*-ultrix2*) COREFILE=trad-core.lo TRAD_HEADER='"hosts/vaxult2.h"' @@ -5336,17 +5338,17 @@ rm -f conftest* do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:5340: checking for $ac_hdr" >&5 +echo "configure:5342: 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:5350: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5352: \"$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* @@ -5374,12 +5376,12 @@ done if test "$ac_cv_header_sys_procfs_h" = yes; then echo $ac_n "checking for prstatus_t in sys/procfs.h""... $ac_c" 1>&6 -echo "configure:5378: checking for prstatus_t in sys/procfs.h" >&5 +echo "configure:5380: checking for prstatus_t in sys/procfs.h" >&5 if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_prstatus_t'+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:5394: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_have_sys_procfs_type_prstatus_t=yes else @@ -5410,12 +5412,12 @@ EOF echo "$ac_t""$bfd_cv_have_sys_procfs_type_prstatus_t" 1>&6 echo $ac_n "checking for prstatus32_t in sys/procfs.h""... $ac_c" 1>&6 -echo "configure:5414: checking for prstatus32_t in sys/procfs.h" >&5 +echo "configure:5416: checking for prstatus32_t in sys/procfs.h" >&5 if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_prstatus32_t'+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:5430: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_have_sys_procfs_type_prstatus32_t=yes else @@ -5446,12 +5448,12 @@ EOF echo "$ac_t""$bfd_cv_have_sys_procfs_type_prstatus32_t" 1>&6 echo $ac_n "checking for prstatus_t.pr_who in sys/procfs.h""... $ac_c" 1>&6 -echo "configure:5450: checking for prstatus_t.pr_who in sys/procfs.h" >&5 +echo "configure:5452: checking for prstatus_t.pr_who in sys/procfs.h" >&5 if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_member_prstatus_t_pr_who'+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:5466: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_have_sys_procfs_type_member_prstatus_t_pr_who=yes else @@ -5482,12 +5484,12 @@ EOF echo "$ac_t""$bfd_cv_have_sys_procfs_type_member_prstatus_t_pr_who" 1>&6 echo $ac_n "checking for prstatus32_t.pr_who in sys/procfs.h""... $ac_c" 1>&6 -echo "configure:5486: checking for prstatus32_t.pr_who in sys/procfs.h" >&5 +echo "configure:5488: checking for prstatus32_t.pr_who in sys/procfs.h" >&5 if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_member_prstatus32_t_pr_who'+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:5502: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_have_sys_procfs_type_member_prstatus32_t_pr_who=yes else @@ -5518,12 +5520,12 @@ EOF echo "$ac_t""$bfd_cv_have_sys_procfs_type_member_prstatus32_t_pr_who" 1>&6 echo $ac_n "checking for pstatus_t in sys/procfs.h""... $ac_c" 1>&6 -echo "configure:5522: checking for pstatus_t in sys/procfs.h" >&5 +echo "configure:5524: checking for pstatus_t in sys/procfs.h" >&5 if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_pstatus_t'+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:5538: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_have_sys_procfs_type_pstatus_t=yes else @@ -5554,12 +5556,12 @@ EOF echo "$ac_t""$bfd_cv_have_sys_procfs_type_pstatus_t" 1>&6 echo $ac_n "checking for pxstatus_t in sys/procfs.h""... $ac_c" 1>&6 -echo "configure:5558: checking for pxstatus_t in sys/procfs.h" >&5 +echo "configure:5560: checking for pxstatus_t in sys/procfs.h" >&5 if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_pxstatus_t'+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:5574: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_have_sys_procfs_type_pxstatus_t=yes else @@ -5590,12 +5592,12 @@ EOF echo "$ac_t""$bfd_cv_have_sys_procfs_type_pxstatus_t" 1>&6 echo $ac_n "checking for pstatus32_t in sys/procfs.h""... $ac_c" 1>&6 -echo "configure:5594: checking for pstatus32_t in sys/procfs.h" >&5 +echo "configure:5596: checking for pstatus32_t in sys/procfs.h" >&5 if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_pstatus32_t'+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:5610: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_have_sys_procfs_type_pstatus32_t=yes else @@ -5626,12 +5628,12 @@ EOF echo "$ac_t""$bfd_cv_have_sys_procfs_type_pstatus32_t" 1>&6 echo $ac_n "checking for prpsinfo_t in sys/procfs.h""... $ac_c" 1>&6 -echo "configure:5630: checking for prpsinfo_t in sys/procfs.h" >&5 +echo "configure:5632: checking for prpsinfo_t in sys/procfs.h" >&5 if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_prpsinfo_t'+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:5646: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_have_sys_procfs_type_prpsinfo_t=yes else @@ -5662,12 +5664,12 @@ EOF echo "$ac_t""$bfd_cv_have_sys_procfs_type_prpsinfo_t" 1>&6 echo $ac_n "checking for prpsinfo32_t in sys/procfs.h""... $ac_c" 1>&6 -echo "configure:5666: checking for prpsinfo32_t in sys/procfs.h" >&5 +echo "configure:5668: checking for prpsinfo32_t in sys/procfs.h" >&5 if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_prpsinfo32_t'+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:5682: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_have_sys_procfs_type_prpsinfo32_t=yes else @@ -5698,12 +5700,12 @@ EOF echo "$ac_t""$bfd_cv_have_sys_procfs_type_prpsinfo32_t" 1>&6 echo $ac_n "checking for psinfo_t in sys/procfs.h""... $ac_c" 1>&6 -echo "configure:5702: checking for psinfo_t in sys/procfs.h" >&5 +echo "configure:5704: checking for psinfo_t in sys/procfs.h" >&5 if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_psinfo_t'+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:5718: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_have_sys_procfs_type_psinfo_t=yes else @@ -5734,12 +5736,12 @@ EOF echo "$ac_t""$bfd_cv_have_sys_procfs_type_psinfo_t" 1>&6 echo $ac_n "checking for psinfo32_t in sys/procfs.h""... $ac_c" 1>&6 -echo "configure:5738: checking for psinfo32_t in sys/procfs.h" >&5 +echo "configure:5740: checking for psinfo32_t in sys/procfs.h" >&5 if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_psinfo32_t'+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:5754: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_have_sys_procfs_type_psinfo32_t=yes else @@ -5770,12 +5772,12 @@ EOF echo "$ac_t""$bfd_cv_have_sys_procfs_type_psinfo32_t" 1>&6 echo $ac_n "checking for lwpstatus_t in sys/procfs.h""... $ac_c" 1>&6 -echo "configure:5774: checking for lwpstatus_t in sys/procfs.h" >&5 +echo "configure:5776: checking for lwpstatus_t in sys/procfs.h" >&5 if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_lwpstatus_t'+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:5790: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_have_sys_procfs_type_lwpstatus_t=yes else @@ -5806,12 +5808,12 @@ EOF echo "$ac_t""$bfd_cv_have_sys_procfs_type_lwpstatus_t" 1>&6 echo $ac_n "checking for lwpxstatus_t in sys/procfs.h""... $ac_c" 1>&6 -echo "configure:5810: checking for lwpxstatus_t in sys/procfs.h" >&5 +echo "configure:5812: checking for lwpxstatus_t in sys/procfs.h" >&5 if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_lwpxstatus_t'+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:5826: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_have_sys_procfs_type_lwpxstatus_t=yes else @@ -5842,12 +5844,12 @@ EOF echo "$ac_t""$bfd_cv_have_sys_procfs_type_lwpxstatus_t" 1>&6 echo $ac_n "checking for lwpstatus_t.pr_context in sys/procfs.h""... $ac_c" 1>&6 -echo "configure:5846: checking for lwpstatus_t.pr_context in sys/procfs.h" >&5 +echo "configure:5848: checking for lwpstatus_t.pr_context in sys/procfs.h" >&5 if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_context'+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:5862: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_context=yes else @@ -5878,12 +5880,12 @@ EOF echo "$ac_t""$bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_context" 1>&6 echo $ac_n "checking for lwpstatus_t.pr_reg in sys/procfs.h""... $ac_c" 1>&6 -echo "configure:5882: checking for lwpstatus_t.pr_reg in sys/procfs.h" >&5 +echo "configure:5884: checking for lwpstatus_t.pr_reg in sys/procfs.h" >&5 if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_reg'+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:5898: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_reg=yes else @@ -5914,12 +5916,12 @@ EOF echo "$ac_t""$bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_reg" 1>&6 echo $ac_n "checking for win32_pstatus_t in sys/procfs.h""... $ac_c" 1>&6 -echo "configure:5918: checking for win32_pstatus_t in sys/procfs.h" >&5 +echo "configure:5920: checking for win32_pstatus_t in sys/procfs.h" >&5 if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_win32_pstatus_t'+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:5934: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_have_sys_procfs_type_win32_pstatus_t=yes else @@ -6106,6 +6108,7 @@ do b_out_vec_little_host) tb="$tb bout.lo aout32.lo" ;; bfd_efi_app_ia32_vec) tb="$tb efi-app-ia32.lo peigen.lo cofflink.lo" ;; bfd_efi_app_ia64_vec) tb="$tb efi-app-ia64.lo pepigen.lo cofflink.lo"; target_size=64 ;; + bfd_elf32_am33lin_vec) tb="$tb elf32-am33lin.lo elf32.lo $elf" ;; bfd_elf32_avr_vec) tb="$tb elf32-avr.lo elf32.lo $elf" ;; bfd_elf32_big_generic_vec) tb="$tb elf32-gen.lo elf32.lo $elf" ;; bfd_elf32_bigarc_vec) tb="$tb elf32-arc.lo elf32.lo $elf" ;; @@ -6187,8 +6190,6 @@ do bfd_elf64_bigmips_vec) tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;; bfd_elf64_hppa_linux_vec) tb="$tb elf64-hppa.lo elf64.lo $elf"; target_size=64 ;; bfd_elf64_hppa_vec) tb="$tb elf64-hppa.lo elf64.lo $elf"; target_size=64 ;; - bfd_elf64_ia64_aix_big_vec) tb="$tb elf64-ia64.lo elf64.lo $elf"; target_size=64 ;; - bfd_elf64_ia64_aix_little_vec) tb="$tb elf64-ia64.lo elf64.lo $elf"; target_size=64 ;; bfd_elf64_ia64_big_vec) tb="$tb elf64-ia64.lo elf64.lo $elf"; target_size=64 ;; bfd_elf64_ia64_hpux_big_vec) tb="$tb elf64-ia64.lo elf64.lo $elf"; target_size=64 ;; bfd_elf64_ia64_little_vec) tb="$tb elf64-ia64.lo elf64.lo $elf"; target_size=64 ;; @@ -6398,10 +6399,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:6402: checking for gcc version with buggy 64-bit support" >&5 +echo "configure:6403: 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:6451: checking for $ac_hdr" >&5 +echo "configure:6452: 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:6461: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6462: \"$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* @@ -6486,12 +6487,12 @@ done for ac_func in getpagesize do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6490: checking for $ac_func" >&5 +echo "configure:6491: 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:6519: \"$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 @@ -6539,7 +6540,7 @@ fi done echo $ac_n "checking for working mmap""... $ac_c" 1>&6 -echo "configure:6543: checking for working mmap" >&5 +echo "configure:6544: 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 @@ -6547,7 +6548,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:6705: \"$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 @@ -6725,12 +6726,12 @@ fi for ac_func in madvise mprotect do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6729: checking for $ac_func" >&5 +echo "configure:6730: 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:6758: \"$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 -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/configure.host binutils-2.14.90.0.5/bfd/configure.host --- binutils-2.14.90.0.4.1/bfd/configure.host 2003-05-23 07:18:52.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/configure.host 2003-07-23 08:08:08.000000000 -0700 @@ -31,7 +31,6 @@ hppa*-*-bsd*) HDEFINES=-DHOST_HPPABSD ; hppa*-*-osf*) HDEFINES=-DHOST_HPPAOSF ;; ia64-*-linux*) host64=true; HOST_64BIT_TYPE=long ;; -ia64-*-aix*) host64=true; HOST_64BIT_TYPE=long ;; ia64-*-hpux*) host64=true HOST_64BIT_TYPE="long long"; HOST_U_64BIT_TYPE="unsigned long long"; diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/configure.in binutils-2.14.90.0.5/bfd/configure.in --- binutils-2.14.90.0.4.1/bfd/configure.in 2003-06-24 13:17:34.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/configure.in 2003-07-23 08:08:08.000000000 -0700 @@ -7,7 +7,7 @@ AC_INIT(libbfd.c) AC_CANONICAL_SYSTEM AC_ISC_POSIX -AM_INIT_AUTOMAKE(bfd, 2.14.90.0.4.1) +AM_INIT_AUTOMAKE(bfd, 2.14.90.0.5) # Uncomment the next line to remove the date from the reported bfd version #is_release=y @@ -359,7 +359,9 @@ changequote([,])dnl COREFILE=trad-core.lo TRAD_HEADER='"hosts/tahoe.h"' ;; - vax-*-netbsd*) COREFILE=netbsd-core.lo ;; + vax-*-netbsd* | vax-*-openbsd*) + COREFILE=netbsd-core.lo + ;; vax-*-ultrix2*) COREFILE=trad-core.lo TRAD_HEADER='"hosts/vaxult2.h"' @@ -566,6 +568,7 @@ do b_out_vec_little_host) tb="$tb bout.lo aout32.lo" ;; bfd_efi_app_ia32_vec) tb="$tb efi-app-ia32.lo peigen.lo cofflink.lo" ;; bfd_efi_app_ia64_vec) tb="$tb efi-app-ia64.lo pepigen.lo cofflink.lo"; target_size=64 ;; + bfd_elf32_am33lin_vec) tb="$tb elf32-am33lin.lo elf32.lo $elf" ;; bfd_elf32_avr_vec) tb="$tb elf32-avr.lo elf32.lo $elf" ;; bfd_elf32_big_generic_vec) tb="$tb elf32-gen.lo elf32.lo $elf" ;; bfd_elf32_bigarc_vec) tb="$tb elf32-arc.lo elf32.lo $elf" ;; @@ -647,8 +650,6 @@ do bfd_elf64_bigmips_vec) tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;; bfd_elf64_hppa_linux_vec) tb="$tb elf64-hppa.lo elf64.lo $elf"; target_size=64 ;; bfd_elf64_hppa_vec) tb="$tb elf64-hppa.lo elf64.lo $elf"; target_size=64 ;; - bfd_elf64_ia64_aix_big_vec) tb="$tb elf64-ia64.lo elf64.lo $elf"; target_size=64 ;; - bfd_elf64_ia64_aix_little_vec) tb="$tb elf64-ia64.lo elf64.lo $elf"; target_size=64 ;; bfd_elf64_ia64_big_vec) tb="$tb elf64-ia64.lo elf64.lo $elf"; target_size=64 ;; bfd_elf64_ia64_hpux_big_vec) tb="$tb elf64-ia64.lo elf64.lo $elf"; target_size=64 ;; bfd_elf64_ia64_little_vec) tb="$tb elf64-ia64.lo elf64.lo $elf"; target_size=64 ;; diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/corefile.c binutils-2.14.90.0.5/bfd/corefile.c --- binutils-2.14.90.0.4.1/bfd/corefile.c 2002-12-16 12:22:51.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/corefile.c 2003-07-23 08:08:08.000000000 -0700 @@ -1,5 +1,5 @@ /* Core file generic interface routines for BFD. - Copyright 1990, 1991, 1992, 1993, 1994, 2000, 2001, 2002 + Copyright 1990, 1991, 1992, 1993, 1994, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Written by Cygnus Support. @@ -36,7 +36,7 @@ FUNCTION bfd_core_file_failing_command SYNOPSIS - const char *bfd_core_file_failing_command(bfd *abfd); + const char *bfd_core_file_failing_command (bfd *abfd); DESCRIPTION Return a read-only string explaining which program was running @@ -45,13 +45,13 @@ DESCRIPTION */ const char * -bfd_core_file_failing_command (abfd) - bfd *abfd; +bfd_core_file_failing_command (bfd *abfd) { - if (abfd->format != bfd_core) { - bfd_set_error (bfd_error_invalid_operation); - return NULL; - } + if (abfd->format != bfd_core) + { + bfd_set_error (bfd_error_invalid_operation); + return NULL; + } return BFD_SEND (abfd, _core_file_failing_command, (abfd)); } @@ -60,7 +60,7 @@ FUNCTION bfd_core_file_failing_signal SYNOPSIS - int bfd_core_file_failing_signal(bfd *abfd); + int bfd_core_file_failing_signal (bfd *abfd); DESCRIPTION Returns the signal number which caused the core dump which @@ -68,13 +68,13 @@ DESCRIPTION */ int -bfd_core_file_failing_signal (abfd) - bfd *abfd; +bfd_core_file_failing_signal (bfd *abfd) { - if (abfd->format != bfd_core) { - bfd_set_error (bfd_error_invalid_operation); - return 0; - } + if (abfd->format != bfd_core) + { + bfd_set_error (bfd_error_invalid_operation); + return 0; + } return BFD_SEND (abfd, _core_file_failing_signal, (abfd)); } @@ -84,22 +84,23 @@ FUNCTION SYNOPSIS bfd_boolean core_file_matches_executable_p - (bfd *core_bfd, bfd *exec_bfd); + (bfd *core_bfd, bfd *exec_bfd); DESCRIPTION Return <> if the core file attached to @var{core_bfd} was generated by a run of the executable file attached to @var{exec_bfd}, <> otherwise. */ + bfd_boolean -core_file_matches_executable_p (core_bfd, exec_bfd) - bfd *core_bfd, *exec_bfd; +core_file_matches_executable_p (bfd *core_bfd, bfd *exec_bfd) { - if ((core_bfd->format != bfd_core) || (exec_bfd->format != bfd_object)) { - bfd_set_error (bfd_error_wrong_format); - return FALSE; - } + if (core_bfd->format != bfd_core || exec_bfd->format != bfd_object) + { + bfd_set_error (bfd_error_wrong_format); + return FALSE; + } - return BFD_SEND (core_bfd, _core_file_matches_executable_p, - (core_bfd, exec_bfd)); + return BFD_SEND (core_bfd, _core_file_matches_executable_p, + (core_bfd, exec_bfd)); } diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/cpu-h8300.c binutils-2.14.90.0.5/bfd/cpu-h8300.c --- binutils-2.14.90.0.4.1/bfd/cpu-h8300.c 2003-05-23 07:18:52.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/cpu-h8300.c 2003-07-23 08:08:08.000000000 -0700 @@ -24,14 +24,12 @@ #include "libbfd.h" static bfd_boolean h8300_scan - PARAMS ((const struct bfd_arch_info *, const char *)); + (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 *)); + (const bfd_arch_info_type *, const bfd_arch_info_type *); static bfd_boolean -h8300_scan (info, string) - const struct bfd_arch_info *info; - const char *string; +h8300_scan (const struct bfd_arch_info *info, const char *string) { if (*string != 'h' && *string != 'H') return FALSE; @@ -82,7 +80,13 @@ h8300_scan (info, string) return (info->mach == bfd_mach_h8300sn); if (*string == 'x' || *string == 'X') - return (info->mach == bfd_mach_h8300sx); + { + string++; + if (*string == 'n' || *string == 'N') + return (info->mach == bfd_mach_h8300sxn); + + return (info->mach == bfd_mach_h8300sx); + } return (info->mach == bfd_mach_h8300s); } @@ -95,9 +99,7 @@ h8300_scan (info, string) info structure. */ static const bfd_arch_info_type * -compatible (in, out) - const bfd_arch_info_type *in; - const bfd_arch_info_type *out; +compatible (const bfd_arch_info_type *in, const bfd_arch_info_type *out) { /* It's really not a good idea to mix and match modes. */ if (in->arch != out->arch || in->mach != out->mach) @@ -106,6 +108,22 @@ compatible (in, out) return in; } +static const bfd_arch_info_type h8300sxn_info_struct = +{ + 32, /* 32 bits in a word */ + 32, /* 32 bits in an address */ + 8, /* 8 bits in a byte */ + bfd_arch_h8300, + bfd_mach_h8300sxn, + "h8300sxn", /* arch_name */ + "h8300sxn", /* printable name */ + 1, + FALSE, /* the default machine */ + compatible, + h8300_scan, + 0 +}; + static const bfd_arch_info_type h8300sx_info_struct = { 32, /* 32 bits in a word */ @@ -119,7 +137,7 @@ static const bfd_arch_info_type h8300sx_ FALSE, /* the default machine */ compatible, h8300_scan, - 0 + &h8300sxn_info_struct }; static const bfd_arch_info_type h8300sn_info_struct = @@ -202,3 +220,38 @@ const bfd_arch_info_type bfd_h8300_arch h8300_scan, &h8300h_info_struct }; + +/* Pad the given address to 32 bits, converting 16-bit and 24-bit + addresses into the values they would have had on a h8s target. */ + +bfd_vma +bfd_h8300_pad_address (bfd *abfd, bfd_vma address) +{ + /* Cope with bfd_vma's larger than 32 bits. */ + address &= 0xffffffffu; + + switch (bfd_get_mach (abfd)) + { + case bfd_mach_h8300: + case bfd_mach_h8300hn: + case bfd_mach_h8300sn: + case bfd_mach_h8300sxn: + /* Sign extend a 16-bit address. */ + if (address >= 0x8000) + return address | 0xffff0000u; + return address; + + case bfd_mach_h8300h: + /* Sign extend a 24-bit address. */ + if (address >= 0x800000) + return address | 0xff000000u; + return address; + + case bfd_mach_h8300s: + case bfd_mach_h8300sx: + return address; + + default: + abort (); + } +} diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/cpu-ia64-opc.c binutils-2.14.90.0.5/bfd/cpu-ia64-opc.c --- binutils-2.14.90.0.4.1/bfd/cpu-ia64-opc.c 2002-12-16 12:22:51.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/cpu-ia64-opc.c 2003-07-23 08:08:08.000000000 -0700 @@ -161,8 +161,8 @@ static const char* ext_imms_scaled (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep, int scale) { - int i, bits = 0, total = 0, shift; - BFD_HOST_64_BIT val = 0; + int i, bits = 0, total = 0; + BFD_HOST_64_BIT val = 0, sign; for (i = 0; i < NELEMS (self->field) && self->field[i].bits; ++i) { @@ -172,8 +172,8 @@ ext_imms_scaled (const struct ia64_opera total += bits; } /* sign extend: */ - shift = 8*sizeof (val) - total; - val = (val << shift) >> shift; + sign = (BFD_HOST_64_BIT) 1 << (total - 1); + val = (val ^ sign) - sign; *valuep = (val << scale); return 0; @@ -188,10 +188,7 @@ ins_imms (const struct ia64_operand *sel static const char* ins_immsu4 (const struct ia64_operand *self, ia64_insn value, ia64_insn *code) { - if (value == (BFD_HOST_U_64_BIT) 0x100000000) - value = 0; - else - value = (((BFD_HOST_64_BIT)value << 32) >> 32); + value = ((value & 0xffffffff) ^ 0x80000000) - 0x80000000; return ins_imms_scaled (self, value, code, 0); } @@ -213,10 +210,7 @@ static const char* ins_immsm1u4 (const struct ia64_operand *self, ia64_insn value, ia64_insn *code) { - if (value == (BFD_HOST_U_64_BIT) 0x100000000) - value = 0; - else - value = (((BFD_HOST_64_BIT)value << 32) >> 32); + value = ((value & 0xffffffff) ^ 0x80000000) - 0x80000000; --value; return ins_imms_scaled (self, value, code, 0); diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/cpu-m10300.c binutils-2.14.90.0.5/bfd/cpu-m10300.c --- binutils-2.14.90.0.4.1/bfd/cpu-m10300.c 2002-12-16 12:22:51.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/cpu-m10300.c 2003-07-23 08:08:08.000000000 -0700 @@ -21,6 +21,22 @@ Foundation, Inc., 59 Temple Place - Suit #include "sysdep.h" #include "libbfd.h" +const bfd_arch_info_type bfd_am33_2_arch = + { + 32, /* 32 bits in a word */ + 32, /* 32 bits in an address */ + 8, /* 8 bits in a byte */ + bfd_arch_mn10300, + 332, + "am33_2", + "am33-2", + 2, + FALSE, + bfd_default_compatible, + bfd_default_scan, + 0, + }; + const bfd_arch_info_type bfd_am33_arch = { 32, /* 32 bits in a word */ @@ -34,7 +50,7 @@ const bfd_arch_info_type bfd_am33_arch = FALSE, bfd_default_compatible, bfd_default_scan, - 0, + &bfd_am33_2_arch, }; const bfd_arch_info_type bfd_mn10300_arch = diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/cpu-mips.c binutils-2.14.90.0.5/bfd/cpu-mips.c --- binutils-2.14.90.0.4.1/bfd/cpu-mips.c 2003-01-21 10:21:32.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/cpu-mips.c 2003-07-23 08:08:08.000000000 -0700 @@ -76,6 +76,7 @@ enum I_mips5400, I_mips5500, I_mips6000, + I_mips7000, I_mips8000, I_mips10000, I_mips12000, @@ -106,6 +107,7 @@ static const bfd_arch_info_type arch_inf 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_mips7000, "mips:7000", FALSE, NN(I_mips7000)), N (64, 64, bfd_mach_mips8000, "mips:8000", FALSE, NN(I_mips8000)), N (64, 64, bfd_mach_mips10000,"mips:10000", FALSE, NN(I_mips10000)), N (64, 64, bfd_mach_mips12000,"mips:12000", FALSE, NN(I_mips12000)), diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/cpu-ns32k.c binutils-2.14.90.0.5/bfd/cpu-ns32k.c --- binutils-2.14.90.0.4.1/bfd/cpu-ns32k.c 2002-12-16 12:22:51.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/cpu-ns32k.c 2003-07-23 08:08:08.000000000 -0700 @@ -1,5 +1,5 @@ /* BFD support for the ns32k architecture. - Copyright 1990, 1991, 1994, 1995, 1998, 2000, 2001, 2002 + Copyright 1990, 1991, 1994, 1995, 1998, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Almost totally rewritten by Ian Dall from initial work by Andrew Cagney. @@ -182,7 +182,7 @@ do_ns32k_reloc (abfd, reloc_entry, symbo return bfd_reloc_ok; } - /* If we are not producing relocateable output, return an error if + /* If we are not producing relocatable output, return an error if the symbol is not defined. An undefined weak symbol is considered to have a value of zero (SVR4 ABI, p. 4-27). */ if (symbol->section == &bfd_und_section @@ -236,7 +236,7 @@ do_ns32k_reloc (abfd, reloc_entry, symbo include the position of the location; for example, m88kbcs, or ELF. For those targets, pcrel_offset is TRUE. - If we are producing relocateable output, then we must ensure + If we are producing relocatable output, then we must ensure that this reloc will be correctly computed when the final relocation is done. If pcrel_offset is FALSE we want to wind up with the negative of the location within the section, @@ -245,7 +245,7 @@ do_ns32k_reloc (abfd, reloc_entry, symbo we do not want to adjust the existing addend at all. FIXME: This seems logical to me, but for the case of - producing relocateable output it is not what the code + producing relocatable output it is not what the code actually does. I don't want to change it, because it seems far too likely that something will break. */ relocation -= @@ -297,7 +297,7 @@ do_ns32k_reloc (abfd, reloc_entry, symbo should not have any tests that depend upon the flavour. It's seem like entirely the wrong place for such a thing. The second obvious point is that the current code ignores the - reloc addend when producing relocateable output for COFF. + reloc addend when producing relocatable output for COFF. That's peculiar. In fact, I really have no idea what the point of the line you want to remove is. @@ -315,10 +315,10 @@ do_ns32k_reloc (abfd, reloc_entry, symbo (coff-i386 does subtract the old value, to be compatible with existing coff-i386 targets, like SCO). - So everything works fine when not producing relocateable - output. When we are producing relocateable output, logically + So everything works fine when not producing relocatable + output. When we are producing relocatable output, logically we should do exactly what we do when not producing - relocateable output. Therefore, your patch is correct. In + relocatable output. Therefore, your patch is correct. In fact, it should probably always just set reloc_entry->addend to 0 for all cases, since it is, in fact, going to add the value into the object file. This won't hurt the COFF code, @@ -326,7 +326,7 @@ do_ns32k_reloc (abfd, reloc_entry, symbo to other formats (the thing to check for would be whether any formats both use the addend and set partial_inplace). - When I wanted to make coff-i386 produce relocateable output, + When I wanted to make coff-i386 produce relocatable output, I ran into the problem that you are running into: I wanted to remove that line. Rather than risk it, I made the coff-i386 relocs use a special function; it's coff_i386_reloc diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/doc/ChangeLog binutils-2.14.90.0.5/bfd/doc/ChangeLog --- binutils-2.14.90.0.4.1/bfd/doc/ChangeLog 2003-03-19 09:19:13.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/doc/ChangeLog 2003-07-23 08:08:09.000000000 -0700 @@ -1,3 +1,13 @@ +2003-07-04 Josh Baratz + + * Makefile.am (MKDOC rule): Add $(CFLAGS) in case it contains + CC_FOR_BUILD specific switches. + * Makefile.in: Regenerate. + +2003-06-29 Alan Modra + + * chew.c (paramstuff): Don't emit PARAMS. + 2003-02-12 Bob Wilson * bfd.texinfo: Fix quotes for texinfo. Make section title diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/doc/Makefile.am binutils-2.14.90.0.5/bfd/doc/Makefile.am --- binutils-2.14.90.0.4.1/bfd/doc/Makefile.am 2002-11-26 09:20:33.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/doc/Makefile.am 2003-07-23 08:08:09.000000000 -0700 @@ -55,7 +55,7 @@ info_TEXINFOS = bfd.texinfo MKDOC = chew$(EXEEXT_FOR_BUILD) $(MKDOC): chew.o - $(CC_FOR_BUILD) -o $(MKDOC) chew.o $(LOADLIBES) $(LDFLAGS) + $(CC_FOR_BUILD) -o $(MKDOC) chew.o $(CFLAGS) $(LOADLIBES) $(LDFLAGS) chew.o: chew.c $(CC_FOR_BUILD) -c -I.. -I$(srcdir)/.. -I$(srcdir)/../../include -I$(srcdir)/../../intl -I../../intl $(H_CFLAGS) $(CFLAGS) $(srcdir)/chew.c diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/doc/Makefile.in binutils-2.14.90.0.5/bfd/doc/Makefile.in --- binutils-2.14.90.0.4.1/bfd/doc/Makefile.in 2002-11-26 09:20:33.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/doc/Makefile.in 2003-07-23 08:08:09.000000000 -0700 @@ -469,7 +469,7 @@ mostlyclean distclean maintainer-clean $(MKDOC): chew.o - $(CC_FOR_BUILD) -o $(MKDOC) chew.o $(LOADLIBES) $(LDFLAGS) + $(CC_FOR_BUILD) -o $(MKDOC) chew.o $(CFLAGS) $(LOADLIBES) $(LDFLAGS) chew.o: chew.c $(CC_FOR_BUILD) -c -I.. -I$(srcdir)/.. -I$(srcdir)/../../include -I$(srcdir)/../../intl -I../../intl $(H_CFLAGS) $(CFLAGS) $(srcdir)/chew.c diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/doc/bfdint.texi binutils-2.14.90.0.5/bfd/doc/bfdint.texi --- binutils-2.14.90.0.4.1/bfd/doc/bfdint.texi 2003-01-21 10:21:32.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/doc/bfdint.texi 2003-07-23 08:08:09.000000000 -0700 @@ -1,6 +1,6 @@ \input texinfo @c Copyright 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, -@c 2000, 2001 +@c 2000, 2001, 2002, 2003 @c Free Software Foundation, Inc. @setfilename bfdint.info @@ -835,7 +835,7 @@ corresponding field in the target vector @item _bfd_get_relocated_section_contents Read the contents of a section and apply the relocation information. -This handles both a final link and a relocateable link; in the latter +This handles both a final link and a relocatable link; in the latter case, it adjust the relocation information as well. This is called via @samp{bfd_get_relocated_section_contents}. Most targets implement it by calling @samp{bfd_generic_get_relocated_section_contents}. @@ -1169,7 +1169,7 @@ allocate space in a different section an section as the value to store. In the IEEE object file format, relocations may involve arbitrary expressions. -When doing a relocateable link, the linker may or may not have to do +When doing a relocatable link, the linker may or may not have to do anything with a relocation, depending upon the definition of the relocation. Simple relocations generally do not require any special action. @@ -1240,9 +1240,9 @@ existing target, you need to do the foll @itemize @bullet @item Make sure you clearly understand what the contents of the section should -look like after assembly, after a relocateable link, and after a final +look like after assembly, after a relocatable link, and after a final link. Make sure you clearly understand the operations the linker must -perform during a relocateable link and during a final link. +perform during a relocatable link and during a final link. @item Write a howto structure for the relocation. The howto structure is @@ -1257,7 +1257,7 @@ call @samp{bfd_install_relocation}, so y able to handle that. You may need to set the @samp{special_function} field to handle assembly correctly. Be careful to ensure that any code you write to handle the assembler will also work correctly when doing a -relocateable link. For example, see @samp{bfd_elf_generic_reloc}. +relocatable link. For example, see @samp{bfd_elf_generic_reloc}. @item Test the assembler. Consider the cases of relocation against an @@ -1271,14 +1271,14 @@ If your target uses the new linker, whic required handling to the target specific relocation function. In simple cases this will just involve a call to @samp{_bfd_final_link_relocate} or @samp{_bfd_relocate_contents}, depending upon the definition of the -relocation and whether the link is relocateable or not. +relocation and whether the link is relocatable or not. @item Test the linker. Test the case of a final link. If the relocation can overflow, use a linker script to force an overflow and make sure the -error is reported correctly. Test a relocateable link, whether the -symbol is defined or undefined in the relocateable output. For both the -final and relocateable link, test the case when the symbol is a common +error is reported correctly. Test a relocatable link, whether the +symbol is defined or undefined in the relocatable output. For both the +final and relocatable link, test the case when the symbol is a common symbol, when the symbol looked like a common symbol but became a defined symbol, when the symbol is defined in a different object file, and when the symbol is defined in the same object file. @@ -1291,7 +1291,7 @@ thing for the relocation. You may need doing a link in which the output object file format is S-records. @item -Using the linker to generate relocateable output in a different object +Using the linker to generate relocatable output in a different object file format is impossible in the general case, so you generally don't have to worry about that. The GNU linker makes sure to stop that from happening when an input file in a different format has relocations. @@ -1350,7 +1350,7 @@ howto structure. Some mechanism would b of howto structure was being used by a particular format. The new howto structure would clearly define the relocation behaviour in -the case of an assembly, a relocateable link, and a final link. At +the case of an assembly, a relocatable link, and a final link. At least one special function would be defined as an escape, and it might make sense to define more. @@ -1566,7 +1566,7 @@ relocations. @samp{Rela} relocations wi files (but not in executables, except when using dynamic linking). However, this is outweighed by the simplicity of addend handling when using @samp{Rela} relocations. With @samp{Rel} relocations, the addend -must be stored in the section contents, which makes relocateable links +must be stored in the section contents, which makes relocatable links more complex. For example, consider C code like @code{i = a[1000];} where @samp{a} is @@ -1578,7 +1578,7 @@ relocations, that addend must be stored If you are adding support for a RISC chip which uses two or more instructions to load an address, then the addend may not fit in a single instruction, and will have to be somehow split among the instructions. -This makes linking awkward, particularly when doing a relocateable link +This makes linking awkward, particularly when doing a relocatable link in which the addend may have to be updated. It can be done---the MIPS ELF support does it---but it should be avoided when possible. @@ -1645,7 +1645,7 @@ information, and modify the section cont information. In simple cases, this is little more than a loop over the relocations which computes the value of each relocation and calls @samp{_bfd_final_link_relocate}. The function must check for a -relocateable link, and in that case normally needs to do nothing other +relocatable link, and in that case normally needs to do nothing other than adjust the addend for relocations against a section symbol. The complex cases generally have to do with dynamic linker support. GOT diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/doc/chew.c binutils-2.14.90.0.5/bfd/doc/chew.c --- binutils-2.14.90.0.4.1/bfd/doc/chew.c 2002-09-27 08:33:09.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/doc/chew.c 2003-07-23 08:08:09.000000000 -0700 @@ -1,6 +1,6 @@ /* chew Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 2000, 2001, - 2002 + 2002, 2003 Free Software Foundation, Inc. Contributed by steve chamberlain @cygnus @@ -494,8 +494,11 @@ paramstuff () string_type out; init_string (&out); +#define NO_PARAMS 1 + /* Make sure that it's not already param'd or proto'd. */ - if (find (tos, "PARAMS") || find (tos, "PROTO") || !find (tos, "(")) + if (NO_PARAMS + || find (tos, "PARAMS") || find (tos, "PROTO") || !find (tos, "(")) { catstr (&out, tos); } diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/ecoff.c binutils-2.14.90.0.5/bfd/ecoff.c --- binutils-2.14.90.0.4.1/bfd/ecoff.c 2003-03-19 09:19:13.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/ecoff.c 2003-07-23 08:08:08.000000000 -0700 @@ -81,8 +81,10 @@ static asection bfd_debug_section = "*DEBUG*", 0, 0, NULL, 0, 0, 0, /* linker_mark, linker_has_input, gc_mark, segment_mark, */ 0, 0, 0, 0, - /* sec_info_type, use_rela_p, has_tls_reloc, flag11, flag12, */ - 0, 0, 0, 0, 0, + /* sec_info_type, use_rela_p, has_tls_reloc, */ + 0, 0, 0, + /* need_finalize_relax, has_gp_reloc, */ + 0, 0, /* flag13, flag14, flag15, flag16, flag20, flag24, */ 0, 0, 0, 0, 0, 0, /* vma, lma, _cooked_size, _raw_size, */ @@ -93,8 +95,8 @@ static asection bfd_debug_section = NULL, NULL, 0, 0, 0, /* line_filepos, userdata, contents, lineno, lineno_count, */ 0, NULL, NULL, NULL, 0, - /* entsize, comdat, moving_line_filepos, */ - 0, NULL, 0, + /* entsize, comdat, kept_section, moving_line_filepos, */ + 0, NULL, NULL, 0, /* target_index, used_by_bfd, constructor_chain, owner, */ 0, NULL, NULL, NULL, /* symbol, */ @@ -4158,7 +4160,7 @@ _bfd_ecoff_bfd_final_link (abfd, info) ecoff_link_write_external, (PTR) &einfo); - if (info->relocateable) + if (info->relocatable) { /* We need to make a pass over the link_orders to count up the number of relocations we will need to output, so that we know @@ -4188,7 +4190,7 @@ _bfd_ecoff_bfd_final_link (abfd, info) bfd_ecoff_debug_free (handle, abfd, debug, &backend->debug_swap, info); - if (info->relocateable) + if (info->relocatable) { /* Now reset the reloc_count field of the sections in the output BFD to 0, so that we can use them to keep track of how many @@ -4208,7 +4210,7 @@ _bfd_ecoff_bfd_final_link (abfd, info) ecoff_data (abfd)->gp = (h->u.def.value + h->u.def.section->output_section->vma + h->u.def.section->output_offset); - else if (info->relocateable) + else if (info->relocatable) { bfd_vma lo; @@ -4606,11 +4608,11 @@ ecoff_indirect_link_order (output_bfd, i cooked_size)) goto error_return; - /* If we are producing relocateable output, the relocs were + /* If we are producing relocatable output, the relocs were modified, and we write them out now. We use the reloc_count field of output_section to keep track of the number of relocs we have output so far. */ - if (info->relocateable) + if (info->relocatable) { file_ptr pos = (output_section->rel_filepos + output_section->reloc_count * external_reloc_size); diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/ecofflink.c binutils-2.14.90.0.5/bfd/ecofflink.c --- binutils-2.14.90.0.4.1/bfd/ecofflink.c 2002-12-16 12:22:51.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/ecofflink.c 2003-07-23 08:08:08.000000000 -0700 @@ -1,5 +1,5 @@ /* Routines to link ECOFF debugging information. - Copyright 1993, 1994, 1995, 1996, 1997, 2000, 2001, 2002 + Copyright 1993, 1994, 1995, 1996, 1997, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Written by Ian Lance Taylor, Cygnus Support, . @@ -526,7 +526,7 @@ bfd_ecoff_debug_init (output_bfd, output ainfo->largest_file_shuffle = 0; - if (! info->relocateable) + if (! info->relocatable) { if (! bfd_hash_table_init (&ainfo->str_hash.table, string_hash_newfunc)) return NULL; @@ -559,7 +559,7 @@ bfd_ecoff_debug_free (handle, output_bfd bfd_hash_table_free (&ainfo->fdr_hash.table); - if (! info->relocateable) + if (! info->relocatable) bfd_hash_table_free (&ainfo->str_hash.table); objalloc_free (ainfo->memory); @@ -879,9 +879,9 @@ bfd_ecoff_debug_accumulate (handle, outp /* If we are doing a final link, we hash all the strings in the local symbol table together. This reduces the amount of space required by debugging information. We don't do - this when performing a relocateable link because it would + this when performing a relocatable link because it would prevent us from easily merging different FDR's. */ - if (! info->relocateable) + if (! info->relocatable) { bfd_boolean ffilename; const char *name; @@ -958,7 +958,7 @@ bfd_ecoff_debug_accumulate (handle, outp fdr.iauxBase = output_symhdr->iauxMax; output_symhdr->iauxMax += fdr.caux; } - if (! info->relocateable) + if (! info->relocatable) { /* When are are hashing strings, we lie about the number of @@ -1127,7 +1127,7 @@ ecoff_add_string (ainfo, info, debug, fd symhdr = &debug->symbolic_header; len = strlen (string); - if (info->relocateable) + if (info->relocatable) { if (!add_memory_shuffle (ainfo, &ainfo->ss, &ainfo->ss_end, (PTR) string, len + 1)) @@ -1287,12 +1287,12 @@ bfd_ecoff_debug_accumulate_other (handle this interface, so that must be changed to do something else. */ bfd_boolean -bfd_ecoff_debug_externals (abfd, debug, swap, relocateable, get_extr, +bfd_ecoff_debug_externals (abfd, debug, swap, relocatable, get_extr, set_index) bfd *abfd; struct ecoff_debug_info *debug; const struct ecoff_debug_swap *swap; - bfd_boolean relocateable; + bfd_boolean relocatable; bfd_boolean (*get_extr) PARAMS ((asymbol *, EXTR *)); void (*set_index) PARAMS ((asymbol *, bfd_size_type)); { @@ -1317,7 +1317,7 @@ bfd_ecoff_debug_externals (abfd, debug, /* If we're producing an executable, move common symbols into bss. */ - if (! relocateable) + if (! relocatable) { if (esym.asym.sc == scCommon) esym.asym.sc = scBss; @@ -1694,7 +1694,7 @@ bfd_ecoff_write_accumulated_debug (handl /* The string table is written out from the hash table if this is a final link. */ - if (info->relocateable) + if (info->relocatable) { BFD_ASSERT (ainfo->ss_hash == (struct string_hash_entry *) NULL); if (! ecoff_write_shuffle (abfd, swap, ainfo->ss, space)) diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf-bfd.h binutils-2.14.90.0.5/bfd/elf-bfd.h --- binutils-2.14.90.0.4.1/bfd/elf-bfd.h 2003-05-23 07:18:52.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/elf-bfd.h 2003-07-23 08:08:08.000000000 -0700 @@ -118,11 +118,6 @@ struct elf_link_hash_entry one. Otherwise it is NULL. */ struct elf_link_hash_entry *weakdef; - /* If this symbol is used in the linker created sections, the processor - specific backend uses this field to map the field into the offset - from the beginning of the section. */ - struct elf_linker_section_pointers *linker_section_pointer; - /* Version information. */ union { @@ -216,23 +211,12 @@ struct elf_link_hash_entry function symbols not defined in an app are set to their .plt entry, it's necessary for shared libs to also reference the .plt even though the symbol is really local to the shared lib. */ -#define SYMBOL_REFERENCES_LOCAL(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) != 0) \ - && ((H)->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) != 0) +#define SYMBOL_REFERENCES_LOCAL(INFO, H) \ + _bfd_elf_symbol_refs_local_p (H, INFO, 0) /* Will _calls_ to this symbol always call the version in this object? */ -#define SYMBOL_CALLS_LOCAL(INFO, H) \ - ((! (INFO)->shared \ - || (INFO)->symbolic \ - || (H)->dynindx == -1 \ - || ELF_ST_VISIBILITY ((H)->other) != STV_DEFAULT \ - || ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0) \ - && ((H)->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) != 0) +#define SYMBOL_CALLS_LOCAL(INFO, H) \ + _bfd_elf_symbol_refs_local_p (H, INFO, 1) /* Records local symbols to be emitted in the dynamic symbol table. */ @@ -706,7 +690,7 @@ struct elf_backend_data This function is responsible for adjust the section contents as necessary, and (if using Rela relocs and generating a - relocateable output file) adjusting the reloc addend as + relocatable output file) adjusting the reloc addend as necessary. This function does not have to worry about setting the reloc @@ -720,7 +704,7 @@ struct elf_backend_data The global hash table entry for the global symbols can be found via elf_sym_hashes (input_bfd). - When generating relocateable output, this function must handle + When generating relocatable output, this function must handle STB_LOCAL/STT_SECTION symbols specially. The output symbol is going to be the section symbol corresponding to the output section, which means that the addend must be adjusted @@ -1036,52 +1020,6 @@ struct bfd_elf_section_data #define get_elf_backend_data(abfd) \ ((struct elf_backend_data *) (abfd)->xvec->backend_data) -/* Enumeration to specify the special section. */ -typedef enum elf_linker_section_enum -{ - LINKER_SECTION_UNKNOWN, /* not used */ - LINKER_SECTION_GOT, /* .got section for global offset pointers */ - LINKER_SECTION_PLT, /* .plt section for generated procedure stubs */ - LINKER_SECTION_SDATA, /* .sdata/.sbss section for PowerPC */ - LINKER_SECTION_SDATA2, /* .sdata2/.sbss2 section for PowerPC */ - LINKER_SECTION_MAX /* # of linker sections */ -} elf_linker_section_enum_t; - -/* Sections created by the linker. */ - -typedef struct elf_linker_section -{ - char *name; /* name of the section */ - char *rel_name; /* name of the associated .rel{,a}. section */ - char *bss_name; /* name of a related .bss section */ - char *sym_name; /* name of symbol to reference this section */ - asection *section; /* pointer to the section */ - asection *bss_section; /* pointer to the bss section associated with this */ - asection *rel_section; /* pointer to the relocations needed for this section */ - struct elf_link_hash_entry *sym_hash; /* pointer to the created symbol hash value */ - bfd_vma initial_size; /* initial size before any linker generated allocations */ - bfd_vma sym_offset; /* offset of symbol from beginning of section */ - bfd_vma hole_size; /* size of reserved address hole in allocation */ - bfd_vma hole_offset; /* current offset for the hole */ - bfd_vma max_hole_offset; /* maximum offset for the hole */ - elf_linker_section_enum_t which; /* which section this is */ - bfd_boolean hole_written_p; /* whether the hole has been initialized */ - unsigned int alignment; /* alignment for the section */ - flagword flags; /* flags to use to create the section */ -} elf_linker_section_t; - -/* Linked list of allocated pointer entries. This hangs off of the symbol lists, and - provides allows us to return different pointers, based on different addend's. */ - -typedef struct elf_linker_section_pointers -{ - struct elf_linker_section_pointers *next; /* next allocated pointer for this symbol */ - bfd_vma offset; /* offset of pointer from beginning of section */ - bfd_vma addend; /* addend used */ - elf_linker_section_enum_t which; /* which linker section this is */ - bfd_boolean written_address_p; /* whether address was written yet */ -} elf_linker_section_pointers_t; - /* This struct is used to pass information to routines called via elf_link_hash_traverse which must return failure. */ @@ -1151,12 +1089,6 @@ struct elf_obj_tdata unsigned int symtab_shndx_section; unsigned int dynversym_section, dynverdef_section, dynverref_section; file_ptr next_file_pos; -#if 0 - /* we don't need these inside bfd anymore, and I think - these weren't used outside bfd. */ - void *prstatus; /* The raw /proc prstatus structure */ - void *prpsinfo; /* The raw /proc prpsinfo structure */ -#endif bfd_vma gp; /* The gp value */ unsigned int gp_size; /* The gp size */ @@ -1189,10 +1121,6 @@ struct elf_obj_tdata struct got_entry **ents; } local_got; - /* A mapping from local symbols to offsets into the various linker - sections added. This is index by the symbol index. */ - elf_linker_section_pointers_t **linker_section_pointers; - /* The linker ELF emulation code needs to let the backend ELF linker know what filename should be used for a dynamic object if the dynamic object is found using a search. The emulation code then @@ -1254,15 +1182,15 @@ struct elf_obj_tdata /* Number of symbol version references we are about to emit. */ unsigned int cverrefs; + /* Segment flags for the PT_GNU_STACK segment. */ + unsigned int stack_flags; + /* Symbol version definitions in external objects. */ Elf_Internal_Verdef *verdef; /* Symbol version references to external objects. */ Elf_Internal_Verneed *verref; - /* Linker sections that we are interested in. */ - struct elf_linker_section *linker_section[ (int)LINKER_SECTION_MAX ]; - /* The Irix 5 support uses two virtual sections, which represent text/data symbols defined in dynamic objects. */ asymbol *elf_data_symbol; @@ -1294,12 +1222,10 @@ struct elf_obj_tdata #define elf_local_got_refcounts(bfd) (elf_tdata(bfd) -> local_got.refcounts) #define elf_local_got_offsets(bfd) (elf_tdata(bfd) -> local_got.offsets) #define elf_local_got_ents(bfd) (elf_tdata(bfd) -> local_got.ents) -#define elf_local_ptr_offsets(bfd) (elf_tdata(bfd) -> linker_section_pointers) #define elf_dt_name(bfd) (elf_tdata(bfd) -> dt_name) #define elf_dt_soname(bfd) (elf_tdata(bfd) -> dt_soname) #define elf_bad_symtab(bfd) (elf_tdata(bfd) -> bad_symtab) #define elf_flags_init(bfd) (elf_tdata(bfd) -> flags_init) -#define elf_linker_section(bfd,n) (elf_tdata(bfd) -> linker_section[(int)n]) extern void _bfd_elf_swap_verdef_in PARAMS ((bfd *, const Elf_External_Verdef *, Elf_Internal_Verdef *)); @@ -1551,35 +1477,6 @@ extern bfd_boolean _bfd_elfcore_make_pse extern char *_bfd_elfcore_strndup PARAMS ((bfd *, char *, size_t)); -extern elf_linker_section_t *_bfd_elf_create_linker_section - PARAMS ((bfd *, struct bfd_link_info *, enum elf_linker_section_enum, - elf_linker_section_t *)); - -extern elf_linker_section_pointers_t *_bfd_elf_find_pointer_linker_section - PARAMS ((elf_linker_section_pointers_t *, bfd_vma, - elf_linker_section_enum_t)); - -extern bfd_boolean bfd_elf32_create_pointer_linker_section - PARAMS ((bfd *, struct bfd_link_info *, elf_linker_section_t *, - struct elf_link_hash_entry *, const Elf_Internal_Rela *)); - -extern bfd_vma bfd_elf32_finish_pointer_linker_section - PARAMS ((bfd *, bfd *, struct bfd_link_info *, elf_linker_section_t *, - struct elf_link_hash_entry *, bfd_vma, - const Elf_Internal_Rela *, int)); - -extern bfd_boolean bfd_elf64_create_pointer_linker_section - PARAMS ((bfd *, struct bfd_link_info *, elf_linker_section_t *, - struct elf_link_hash_entry *, const Elf_Internal_Rela *)); - -extern bfd_vma bfd_elf64_finish_pointer_linker_section - PARAMS ((bfd *, bfd *, struct bfd_link_info *, elf_linker_section_t *, - struct elf_link_hash_entry *, bfd_vma, - const Elf_Internal_Rela *, int)); - -extern bfd_boolean _bfd_elf_make_linker_section_rela - PARAMS ((bfd *, elf_linker_section_t *, int)); - extern Elf_Internal_Rela *_bfd_elf_link_read_relocs PARAMS ((bfd *, asection *, PTR, Elf_Internal_Rela *, bfd_boolean)); @@ -1598,6 +1495,12 @@ extern bfd_boolean _bfd_elf_adjust_dynam extern bfd_boolean _bfd_elf_link_sec_merge_syms PARAMS ((struct elf_link_hash_entry *, PTR)); +extern bfd_boolean _bfd_elf_dynamic_symbol_p + PARAMS ((struct elf_link_hash_entry *, struct bfd_link_info *, bfd_boolean)); + +extern bfd_boolean _bfd_elf_symbol_refs_local_p + PARAMS ((struct elf_link_hash_entry *, struct bfd_link_info *, bfd_boolean)); + extern const bfd_target *bfd_elf32_object_p PARAMS ((bfd *)); extern const bfd_target *bfd_elf32_core_file_p diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf-eh-frame.c binutils-2.14.90.0.5/bfd/elf-eh-frame.c --- binutils-2.14.90.0.4.1/bfd/elf-eh-frame.c 2003-05-05 14:46:46.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/elf-eh-frame.c 2003-07-23 08:08:08.000000000 -0700 @@ -403,7 +403,7 @@ _bfd_elf_discard_section_eh_frame (abfd, in which case we can remove it provided we adjust all FDEs. Also, it can be removed if we have removed all FDEs using it. */ - if ((!info->relocateable + if ((!info->relocatable && cie_compare (&cie, &hdr_info->last_cie) == 0) || cie_usage_count == 0) { diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf-hppa.h binutils-2.14.90.0.5/bfd/elf-hppa.h --- binutils-2.14.90.0.4.1/bfd/elf-hppa.h 2002-12-16 12:22:51.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/elf-hppa.h 2003-07-23 08:08:08.000000000 -0700 @@ -1,5 +1,5 @@ /* Common code for PA ELF implementations. - Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc. + Copyright 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -1159,7 +1159,7 @@ elf_hppa_unmark_useless_dynamic_symbols Ultimately we should have better controls over the generic ELF BFD linker code. */ - if (! info->relocateable + if (! info->relocatable && ! (info->shared && !info->no_undefined) && h->root.type == bfd_link_hash_undefined @@ -1195,7 +1195,7 @@ elf_hppa_remark_useless_dynamic_symbols Ultimately we should have better controls over the generic ELF BFD linker code. */ - if (! info->relocateable + if (! info->relocatable && ! (info->shared && !info->no_undefined) && h->root.type == bfd_link_hash_undefined @@ -1265,7 +1265,7 @@ elf_hppa_final_link (abfd, info) bfd_boolean retval; struct elf64_hppa_link_hash_table *hppa_info = elf64_hppa_hash_table (info); - if (! info->relocateable) + if (! info->relocatable) { struct elf_link_hash_entry *gp; bfd_vma gp_val; @@ -1376,7 +1376,7 @@ elf_hppa_relocate_section (output_bfd, i Elf_Internal_Rela *relend; struct elf64_hppa_link_hash_table *hppa_info; - if (info->relocateable) + if (info->relocatable) return TRUE; hppa_info = elf64_hppa_hash_table (info); diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf-m10200.c binutils-2.14.90.0.5/bfd/elf-m10200.c --- binutils-2.14.90.0.4.1/bfd/elf-m10200.c 2003-05-15 13:42:24.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/elf-m10200.c 2003-07-23 08:08:08.000000000 -0700 @@ -343,7 +343,7 @@ mn10200_elf_relocate_section (output_bfd struct elf_link_hash_entry **sym_hashes; Elf_Internal_Rela *rel, *relend; - if (info->relocateable) + if (info->relocatable) return TRUE; symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr; @@ -512,10 +512,10 @@ mn10200_elf_relax_section (abfd, sec, li /* Assume nothing changes. */ *again = FALSE; - /* We don't have to do anything for a relocateable link, if + /* We don't have to do anything for a relocatable link, if this section does not have relocs, or if this is not a code section. */ - if (link_info->relocateable + if (link_info->relocatable || (sec->flags & SEC_RELOC) == 0 || sec->reloc_count == 0 || (sec->flags & SEC_CODE) == 0) @@ -1305,12 +1305,12 @@ mn10200_elf_symbol_address_p (abfd, sec, static bfd_byte * mn10200_elf_get_relocated_section_contents (output_bfd, link_info, link_order, - data, relocateable, symbols) + data, relocatable, symbols) bfd *output_bfd; struct bfd_link_info *link_info; struct bfd_link_order *link_order; bfd_byte *data; - bfd_boolean relocateable; + bfd_boolean relocatable; asymbol **symbols; { Elf_Internal_Shdr *symtab_hdr; @@ -1322,11 +1322,11 @@ mn10200_elf_get_relocated_section_conten /* We only need to handle the case of relaxing, or of having a particular set of section contents, specially. */ - if (relocateable + if (relocatable || elf_section_data (input_section)->this_hdr.contents == NULL) return bfd_generic_get_relocated_section_contents (output_bfd, link_info, link_order, data, - relocateable, + relocatable, symbols); symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr; diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf-m10300.c binutils-2.14.90.0.5/bfd/elf-m10300.c --- binutils-2.14.90.0.4.1/bfd/elf-m10300.c 2003-05-15 13:42:24.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/elf-m10300.c 2003-07-23 08:08:08.000000000 -0700 @@ -26,7 +26,8 @@ Foundation, Inc., 59 Temple Place - Suit static bfd_reloc_status_type mn10300_elf_final_link_relocate PARAMS ((reloc_howto_type *, bfd *, bfd *, asection *, bfd_byte *, - bfd_vma, bfd_vma, bfd_vma, struct bfd_link_info *, + bfd_vma, bfd_vma, bfd_vma, + struct elf_link_hash_entry *, unsigned long, struct bfd_link_info *, asection *, int)); static bfd_boolean mn10300_elf_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, @@ -45,6 +46,25 @@ bfd_boolean _bfd_mn10300_elf_object_p bfd_boolean _bfd_mn10300_elf_merge_private_bfd_data PARAMS ((bfd *,bfd *)); +/* The mn10300 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_mn10300_pcrel_relocs_copied +{ + /* Next section. */ + struct elf_mn10300_pcrel_relocs_copied * next; + /* A section in dynobj. */ + asection * section; + /* Number of relocs copied in this section. */ + bfd_size_type count; +}; + struct elf32_mn10300_link_hash_entry { /* The basic elf link hash table entry. */ struct elf_link_hash_entry root; @@ -70,6 +90,9 @@ struct elf32_mn10300_link_hash_entry { add it to the hash table to avoid computing it over and over. */ unsigned char movm_stack_size; + /* Number of PC relative relocs copied for this symbol. */ + struct elf_mn10300_pcrel_relocs_copied * pcrel_relocs_copied; + /* When set, convert all "call" instructions to this target into "calls" instructions. */ #define MN10300_CONVERT_CALL_TO_CALLS 0x1 @@ -137,6 +160,23 @@ static void compute_function_info PARAMS ((bfd *, struct elf32_mn10300_link_hash_entry *, bfd_vma, unsigned char *)); +static bfd_boolean _bfd_mn10300_elf_create_got_section + PARAMS ((bfd *, struct bfd_link_info *)); +static bfd_boolean _bfd_mn10300_elf_create_dynamic_sections + PARAMS ((bfd *, struct bfd_link_info *)); +static bfd_boolean _bfd_mn10300_elf_adjust_dynamic_symbol + PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *)); +static bfd_boolean _bfd_mn10300_elf_discard_copies + PARAMS ((struct elf32_mn10300_link_hash_entry *, + struct bfd_link_info *)); +static bfd_boolean _bfd_mn10300_elf_size_dynamic_sections + PARAMS ((bfd *, struct bfd_link_info *)); +static bfd_boolean _bfd_mn10300_elf_finish_dynamic_symbol + PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *, + Elf_Internal_Sym *)); +static bfd_boolean _bfd_mn10300_elf_finish_dynamic_sections + PARAMS ((bfd *, struct bfd_link_info *)); + static reloc_howto_type elf_mn10300_howto_table[] = { /* Dummy relocation. Does nothing. */ HOWTO (R_MN10300_NONE, @@ -281,6 +321,202 @@ static reloc_howto_type elf_mn10300_howt 0xffffff, 0xffffff, FALSE), + HOWTO (R_MN10300_GOTPC32, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 32, /* bitsize */ + TRUE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_bitfield, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* */ + "R_MN10300_GOTPC32", /* name */ + FALSE, /* partial_inplace */ + 0xffffffff, /* src_mask */ + 0xffffffff, /* dst_mask */ + TRUE), /* pcrel_offset */ + + HOWTO (R_MN10300_GOTPC16, /* type */ + 0, /* rightshift */ + 1, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + TRUE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_bitfield, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* */ + "R_MN10300_GOTPC16", /* name */ + FALSE, /* partial_inplace */ + 0xffff, /* src_mask */ + 0xffff, /* dst_mask */ + TRUE), /* pcrel_offset */ + + HOWTO (R_MN10300_GOTOFF32, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 32, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_bitfield, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* */ + "R_MN10300_GOTOFF32", /* name */ + FALSE, /* partial_inplace */ + 0xffffffff, /* src_mask */ + 0xffffffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + HOWTO (R_MN10300_GOTOFF24, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 24, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_bitfield, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* */ + "R_MN10300_GOTOFF24", /* name */ + FALSE, /* partial_inplace */ + 0xffffff, /* src_mask */ + 0xffffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + HOWTO (R_MN10300_GOTOFF16, /* type */ + 0, /* rightshift */ + 1, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_bitfield, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* */ + "R_MN10300_GOTOFF16", /* name */ + FALSE, /* partial_inplace */ + 0xffff, /* src_mask */ + 0xffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + HOWTO (R_MN10300_PLT32, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 32, /* bitsize */ + TRUE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_bitfield, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* */ + "R_MN10300_PLT32", /* name */ + FALSE, /* partial_inplace */ + 0xffffffff, /* src_mask */ + 0xffffffff, /* dst_mask */ + TRUE), /* pcrel_offset */ + + HOWTO (R_MN10300_PLT16, /* type */ + 0, /* rightshift */ + 1, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + TRUE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_bitfield, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* */ + "R_MN10300_PLT16", /* name */ + FALSE, /* partial_inplace */ + 0xffff, /* src_mask */ + 0xffff, /* dst_mask */ + TRUE), /* pcrel_offset */ + + HOWTO (R_MN10300_GOT32, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 32, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_bitfield, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* */ + "R_MN10300_GOT32", /* name */ + FALSE, /* partial_inplace */ + 0xffffffff, /* src_mask */ + 0xffffffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + HOWTO (R_MN10300_GOT24, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 24, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_bitfield, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* */ + "R_MN10300_GOT24", /* name */ + FALSE, /* partial_inplace */ + 0xffffffff, /* src_mask */ + 0xffffffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + HOWTO (R_MN10300_GOT16, /* type */ + 0, /* rightshift */ + 1, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_bitfield, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* */ + "R_MN10300_GOT16", /* name */ + FALSE, /* partial_inplace */ + 0xffffffff, /* src_mask */ + 0xffffffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + HOWTO (R_MN10300_COPY, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 32, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_bitfield, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* */ + "R_MN10300_COPY", /* name */ + FALSE, /* partial_inplace */ + 0xffffffff, /* src_mask */ + 0xffffffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + HOWTO (R_MN10300_GLOB_DAT, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 32, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_bitfield, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* */ + "R_MN10300_GLOB_DAT", /* name */ + FALSE, /* partial_inplace */ + 0xffffffff, /* src_mask */ + 0xffffffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + HOWTO (R_MN10300_JMP_SLOT, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 32, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_bitfield, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* */ + "R_MN10300_JMP_SLOT", /* name */ + FALSE, /* partial_inplace */ + 0xffffffff, /* src_mask */ + 0xffffffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + HOWTO (R_MN10300_RELATIVE, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 32, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_bitfield, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* */ + "R_MN10300_RELATIVE", /* name */ + FALSE, /* partial_inplace */ + 0xffffffff, /* src_mask */ + 0xffffffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + }; struct mn10300_reloc_map { @@ -299,8 +535,130 @@ static const struct mn10300_reloc_map mn { BFD_RELOC_24, R_MN10300_24, }, { BFD_RELOC_VTABLE_INHERIT, R_MN10300_GNU_VTINHERIT }, { BFD_RELOC_VTABLE_ENTRY, R_MN10300_GNU_VTENTRY }, + { BFD_RELOC_32_GOT_PCREL, R_MN10300_GOTPC32 }, + { BFD_RELOC_16_GOT_PCREL, R_MN10300_GOTPC16 }, + { BFD_RELOC_32_GOTOFF, R_MN10300_GOTOFF32 }, + { BFD_RELOC_MN10300_GOTOFF24, R_MN10300_GOTOFF24 }, + { BFD_RELOC_16_GOTOFF, R_MN10300_GOTOFF16 }, + { BFD_RELOC_32_PLT_PCREL, R_MN10300_PLT32 }, + { BFD_RELOC_16_PLT_PCREL, R_MN10300_PLT16 }, + { BFD_RELOC_MN10300_GOT32, R_MN10300_GOT32 }, + { BFD_RELOC_MN10300_GOT24, R_MN10300_GOT24 }, + { BFD_RELOC_MN10300_GOT16, R_MN10300_GOT16 }, + { BFD_RELOC_MN10300_COPY, R_MN10300_COPY }, + { BFD_RELOC_MN10300_GLOB_DAT, R_MN10300_GLOB_DAT }, + { BFD_RELOC_MN10300_JMP_SLOT, R_MN10300_JMP_SLOT }, + { BFD_RELOC_MN10300_RELATIVE, R_MN10300_RELATIVE }, }; +/* Create the GOT section. */ + +static bfd_boolean +_bfd_mn10300_elf_create_got_section (abfd, info) + bfd * abfd; + struct bfd_link_info * info; +{ + flagword flags; + flagword pltflags; + asection * s; + struct elf_link_hash_entry * h; + struct elf_backend_data * bed = get_elf_backend_data (abfd); + int ptralign; + + /* This function may be called more than once. */ + if (bfd_get_section_by_name (abfd, ".got") != NULL) + return TRUE; + + switch (bed->s->arch_size) + { + case 32: + ptralign = 2; + break; + + case 64: + ptralign = 3; + break; + + default: + bfd_set_error (bfd_error_bad_value); + return FALSE; + } + + flags = (SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS | SEC_IN_MEMORY + | SEC_LINKER_CREATED); + + pltflags = flags; + pltflags |= SEC_CODE; + if (bed->plt_not_loaded) + pltflags &= ~ (SEC_LOAD | SEC_HAS_CONTENTS); + if (bed->plt_readonly) + pltflags |= SEC_READONLY; + + s = bfd_make_section (abfd, ".plt"); + if (s == NULL + || ! bfd_set_section_flags (abfd, s, pltflags) + || ! bfd_set_section_alignment (abfd, s, bed->plt_alignment)) + return FALSE; + + if (bed->want_plt_sym) + { + /* Define the symbol _PROCEDURE_LINKAGE_TABLE_ at the start of the + .plt section. */ + struct elf_link_hash_entry *h = NULL; + if (! (_bfd_generic_link_add_one_symbol + (info, abfd, "_PROCEDURE_LINKAGE_TABLE_", BSF_GLOBAL, s, + (bfd_vma) 0, (const char *) NULL, FALSE, + get_elf_backend_data (abfd)->collect, + (struct bfd_link_hash_entry **) &h))) + return FALSE; + h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR; + h->type = STT_OBJECT; + + if (info->shared + && ! _bfd_elf_link_record_dynamic_symbol (info, h)) + return FALSE; + } + + s = bfd_make_section (abfd, ".got"); + if (s == NULL + || ! bfd_set_section_flags (abfd, s, flags) + || ! bfd_set_section_alignment (abfd, s, ptralign)) + return FALSE; + + if (bed->want_got_plt) + { + s = bfd_make_section (abfd, ".got.plt"); + if (s == NULL + || ! bfd_set_section_flags (abfd, s, flags) + || ! bfd_set_section_alignment (abfd, s, ptralign)) + return FALSE; + } + + /* Define the symbol _GLOBAL_OFFSET_TABLE_ at the start of the .got + (or .got.plt) section. We don't do this in the linker script + because we don't want to define the symbol if we are not creating + a global offset table. */ + h = NULL; + if (!(_bfd_generic_link_add_one_symbol + (info, abfd, "_GLOBAL_OFFSET_TABLE_", BSF_GLOBAL, s, + bed->got_symbol_offset, (const char *) NULL, FALSE, + bed->collect, (struct bfd_link_hash_entry **) &h))) + return FALSE; + h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR; + h->type = STT_OBJECT; + + if (info->shared + && ! _bfd_elf_link_record_dynamic_symbol (info, h)) + return FALSE; + + elf_hash_table (info)->hgot = h; + + /* The first bit of the global offset table is the header. */ + s->_raw_size += bed->got_header_size + bed->got_symbol_offset; + + return TRUE; +} + static reloc_howto_type * bfd_elf32_bfd_reloc_type_lookup (abfd, code) bfd *abfd ATTRIBUTE_UNUSED; @@ -349,8 +707,17 @@ mn10300_elf_check_relocs (abfd, info, se struct elf_link_hash_entry **sym_hashes, **sym_hashes_end; const Elf_Internal_Rela *rel; const Elf_Internal_Rela *rel_end; + bfd * dynobj; + bfd_vma * local_got_offsets; + asection * sgot; + asection * srelgot; + asection * sreloc; + + sgot = NULL; + srelgot = NULL; + sreloc = NULL; - if (info->relocateable) + if (info->relocatable) return TRUE; symtab_hdr = &elf_tdata (abfd)->symtab_hdr; @@ -359,6 +726,8 @@ mn10300_elf_check_relocs (abfd, info, se if (!elf_bad_symtab (abfd)) sym_hashes_end -= symtab_hdr->sh_info; + dynobj = elf_hash_table (info)->dynobj; + local_got_offsets = elf_local_got_offsets (abfd); rel_end = relocs + sec->reloc_count; for (rel = relocs; rel < rel_end; rel++) { @@ -371,6 +740,29 @@ mn10300_elf_check_relocs (abfd, info, se else h = sym_hashes[r_symndx - symtab_hdr->sh_info]; + /* Some relocs require a global offset table. */ + if (dynobj == NULL) + { + switch (ELF32_R_TYPE (rel->r_info)) + { + case R_MN10300_GOT32: + case R_MN10300_GOT24: + case R_MN10300_GOT16: + case R_MN10300_GOTOFF32: + case R_MN10300_GOTOFF24: + case R_MN10300_GOTOFF16: + case R_MN10300_GOTPC32: + case R_MN10300_GOTPC16: + elf_hash_table (info)->dynobj = dynobj = abfd; + if (! _bfd_mn10300_elf_create_got_section (dynobj, info)) + return FALSE; + break; + + default: + break; + } + } + switch (ELF32_R_TYPE (rel->r_info)) { /* This relocation describes the C++ object vtable hierarchy. @@ -386,6 +778,221 @@ mn10300_elf_check_relocs (abfd, info, se if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend)) return FALSE; break; + case R_MN10300_GOT32: + case R_MN10300_GOT24: + case R_MN10300_GOT16: + /* 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) + { + if (h->got.offset != (bfd_vma) -1) + /* We have already allocated space in the .got. */ + break; + + h->got.offset = sgot->_raw_size; + + /* 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); + } + else + { + /* This is a global offset table entry for a local + symbol. */ + if (local_got_offsets == NULL) + { + size_t size; + unsigned int i; + + size = symtab_hdr->sh_info * sizeof (bfd_vma); + local_got_offsets = (bfd_vma *) bfd_alloc (abfd, size); + + if (local_got_offsets == 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; + } + + 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; + + if (info->shared) + /* If we are generating a shared object, we need to + output a R_MN10300_RELATIVE reloc so that the dynamic + linker can adjust this GOT entry. */ + srelgot->_raw_size += sizeof (Elf32_External_Rela); + } + + sgot->_raw_size += 4; + + break; + + case R_MN10300_PLT32: + case R_MN10300_PLT16: + /* 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 (ELF_ST_VISIBILITY (h->other) == STV_INTERNAL + || ELF_ST_VISIBILITY (h->other) == STV_HIDDEN) + break; + + h->elf_link_hash_flags |= ELF_LINK_HASH_NEEDS_PLT; + + break; + + case R_MN10300_32: + case R_MN10300_24: + case R_MN10300_16: + case R_MN10300_8: + case R_MN10300_PCREL32: + case R_MN10300_PCREL16: + case R_MN10300_PCREL8: + if (h != NULL) + h->elf_link_hash_flags |= ELF_LINK_NON_GOT_REF; + + /* If we are creating a shared library, and this is a reloc + against a global symbol, or a non PC relative reloc + against a local symbol, then we need to copy the reloc + into the shared library. However, if we are linking with + -Bsymbolic, we do not need to copy a reloc against a + global symbol which is defined in an object we are + including in the link (i.e., DEF_REGULAR is set). At + this point we have not seen all the input files, so it is + 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 + && (! (elf_mn10300_howto_table[ELF32_R_TYPE (rel->r_info)] + .pc_relative) + || (h != NULL + && (! info->symbolic + || h->root.type == bfd_link_hash_defweak + || (h->elf_link_hash_flags + & ELF_LINK_HASH_DEF_REGULAR) == 0)))) + { + /* 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. */ + if (sreloc == NULL) + { + const char * name; + + name = (bfd_elf_string_from_elf_section + (abfd, + elf_elfheader (abfd)->e_shstrndx, + elf_section_data (sec)->rel_hdr.sh_name)); + if (name == NULL) + return FALSE; + + BFD_ASSERT (strncmp (name, ".rela", 5) == 0 + && strcmp (bfd_get_section_name (abfd, sec), + name + 5) == 0); + + sreloc = bfd_get_section_by_name (dynobj, name); + if (sreloc == NULL) + { + flagword flags; + + sreloc = bfd_make_section (dynobj, name); + flags = (SEC_HAS_CONTENTS | SEC_READONLY + | SEC_IN_MEMORY | SEC_LINKER_CREATED); + if ((sec->flags & SEC_ALLOC) != 0) + flags |= SEC_ALLOC | SEC_LOAD; + if (sreloc == NULL + || ! bfd_set_section_flags (dynobj, sreloc, flags) + || ! bfd_set_section_alignment (dynobj, sreloc, 2)) + return FALSE; + } + } + + 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 elf32_mn10300_link_hash_entry. */ + if (h != NULL + && (elf_mn10300_howto_table[ELF32_R_TYPE (rel->r_info)] + .pc_relative)) + { + struct elf32_mn10300_link_hash_entry *eh; + struct elf_mn10300_pcrel_relocs_copied *p; + + eh = (struct elf32_mn10300_link_hash_entry *) h; + + for (p = eh->pcrel_relocs_copied; p != NULL; p = p->next) + if (p->section == sreloc) + break; + + if (p == NULL) + { + p = ((struct elf_mn10300_pcrel_relocs_copied *) + bfd_alloc (dynobj, 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; + } + } + + break; } } @@ -436,7 +1043,7 @@ mn10300_elf_gc_mark_hook (sec, info, rel static bfd_reloc_status_type mn10300_elf_final_link_relocate (howto, input_bfd, output_bfd, input_section, contents, offset, value, - addend, info, sym_sec, is_local) + addend, h, symndx, info, sym_sec, is_local) reloc_howto_type *howto; bfd *input_bfd; bfd *output_bfd ATTRIBUTE_UNUSED; @@ -445,12 +1052,26 @@ mn10300_elf_final_link_relocate (howto, bfd_vma offset; bfd_vma value; bfd_vma addend; + struct elf_link_hash_entry * h; + unsigned long symndx; struct bfd_link_info *info ATTRIBUTE_UNUSED; asection *sym_sec ATTRIBUTE_UNUSED; int is_local ATTRIBUTE_UNUSED; { unsigned long r_type = howto->type; bfd_byte *hit_data = contents + offset; + bfd * dynobj; + bfd_vma * local_got_offsets; + asection * sgot; + asection * splt; + asection * sreloc; + + dynobj = elf_hash_table (info)->dynobj; + local_got_offsets = elf_local_got_offsets (input_bfd); + + sgot = NULL; + splt = NULL; + sreloc = NULL; switch (r_type) { @@ -458,6 +1079,97 @@ mn10300_elf_final_link_relocate (howto, return bfd_reloc_ok; case R_MN10300_32: + if (info->shared + && (input_section->flags & SEC_ALLOC) != 0) + { + Elf_Internal_Rela outrel; + bfd_boolean skip, relocate; + + /* When generating a shared object, these relocations are + copied into the output file to be resolved at run + time. */ + if (sreloc == NULL) + { + const char * name; + + name = (bfd_elf_string_from_elf_section + (input_bfd, + elf_elfheader (input_bfd)->e_shstrndx, + elf_section_data (input_section)->rel_hdr.sh_name)); + if (name == NULL) + return FALSE; + + BFD_ASSERT (strncmp (name, ".rela", 5) == 0 + && strcmp (bfd_get_section_name (input_bfd, + input_section), + name + 5) == 0); + + sreloc = bfd_get_section_by_name (dynobj, name); + BFD_ASSERT (sreloc != NULL); + } + + skip = FALSE; + + if (elf_section_data (input_section)->sec_info == NULL + || (input_section->sec_info_type != ELF_INFO_TYPE_STABS)) + outrel.r_offset = offset; + else + { + bfd_vma off; + + off = (_bfd_stab_section_offset + (output_bfd, & elf_hash_table (info)->stab_info, + input_section, + & elf_section_data (input_section)->sec_info, + offset)); + if (off == (bfd_vma) -1) + skip = TRUE; + outrel.r_offset = off; + } + + outrel.r_offset += (input_section->output_section->vma + + input_section->output_offset); + + if (skip) + { + memset (&outrel, 0, sizeof outrel); + relocate = FALSE; + } + else + { + /* h->dynindx may be -1 if this symbol was marked to + become local. */ + if (h == NULL + || ((info->symbolic || h->dynindx == -1) + && (h->elf_link_hash_flags + & ELF_LINK_HASH_DEF_REGULAR) != 0)) + { + relocate = TRUE; + outrel.r_info = ELF32_R_INFO (0, R_MN10300_RELATIVE); + outrel.r_addend = value + addend; + } + else + { + BFD_ASSERT (h->dynindx != -1); + relocate = FALSE; + outrel.r_info = ELF32_R_INFO (h->dynindx, R_MN10300_32); + outrel.r_addend = value + addend; + } + } + + bfd_elf32_swap_reloca_out (output_bfd, &outrel, + (((Elf32_External_Rela *) + sreloc->contents) + + sreloc->reloc_count)); + ++sreloc->reloc_count; + + /* If this reloc is against an external symbol, we do + not want to fiddle with the addend. Otherwise, we + need to include the symbol value so that it becomes + an addend for the dynamic reloc. */ + if (! relocate) + return bfd_reloc_ok; + } value += addend; bfd_put_32 (input_bfd, value, hit_data); return bfd_reloc_ok; @@ -516,6 +1228,81 @@ mn10300_elf_final_link_relocate (howto, return bfd_reloc_ok; case R_MN10300_PCREL32: + if (info->shared + && (input_section->flags & SEC_ALLOC) != 0 + && h != NULL + && h->dynindx != -1 + && (! info->symbolic + || (h->elf_link_hash_flags + & ELF_LINK_HASH_DEF_REGULAR) == 0)) + { + Elf_Internal_Rela outrel; + bfd_boolean skip; + + /* When generating a shared object, these relocations + are copied into the output file to be resolved at run + time. */ + + if (sreloc == NULL) + { + const char * name; + + name = (bfd_elf_string_from_elf_section + (input_bfd, + elf_elfheader (input_bfd)->e_shstrndx, + elf_section_data (input_section)->rel_hdr.sh_name)); + if (name == NULL) + return FALSE; + + BFD_ASSERT (strncmp (name, ".rela", 5) == 0 + && strcmp (bfd_get_section_name (input_bfd, + input_section), + name + 5) == 0); + + sreloc = bfd_get_section_by_name (dynobj, name); + BFD_ASSERT (sreloc != NULL); + } + + skip = FALSE; + + if (elf_section_data (input_section)->sec_info == NULL + || (input_section->sec_info_type != ELF_INFO_TYPE_STABS)) + outrel.r_offset = offset; + else + { + bfd_vma off; + + off = (_bfd_stab_section_offset + (output_bfd, & elf_hash_table (info)->stab_info, + input_section, + & elf_section_data (input_section)->sec_info, + offset)); + if (off == (bfd_vma) -1) + skip = TRUE; + outrel.r_offset = off; + } + + outrel.r_offset += (input_section->output_section->vma + + input_section->output_offset); + + if (skip) + memset (&outrel, 0, sizeof outrel); + else + { + BFD_ASSERT (h != NULL && h->dynindx != -1); + outrel.r_info = ELF32_R_INFO (h->dynindx, R_MN10300_PCREL32); + outrel.r_addend = addend; + } + + bfd_elf32_swap_reloca_out (output_bfd, &outrel, + (((Elf32_External_Rela *) + sreloc->contents) + + sreloc->reloc_count)); + ++sreloc->reloc_count; + + return bfd_reloc_ok; + } + value -= (input_section->output_section->vma + input_section->output_offset); value -= offset; @@ -528,6 +1315,208 @@ mn10300_elf_final_link_relocate (howto, case R_MN10300_GNU_VTENTRY: return bfd_reloc_ok; + case R_MN10300_GOTPC32: + /* Use global offset table as symbol value. */ + + value = bfd_get_section_by_name (dynobj, + ".got")->output_section->vma; + value -= (input_section->output_section->vma + + input_section->output_offset); + value -= offset; + value += addend; + + bfd_put_32 (input_bfd, value, hit_data); + return bfd_reloc_ok; + + case R_MN10300_GOTPC16: + /* Use global offset table as symbol value. */ + + value = bfd_get_section_by_name (dynobj, + ".got")->output_section->vma; + value -= (input_section->output_section->vma + + input_section->output_offset); + value -= offset; + value += addend; + + if ((long) value > 0xffff || (long) value < -0x10000) + return bfd_reloc_overflow; + + bfd_put_16 (input_bfd, value, hit_data); + return bfd_reloc_ok; + + case R_MN10300_GOTOFF32: + value -= bfd_get_section_by_name (dynobj, + ".got")->output_section->vma; + value += addend; + + bfd_put_32 (input_bfd, value, hit_data); + return bfd_reloc_ok; + + case R_MN10300_GOTOFF24: + value -= bfd_get_section_by_name (dynobj, + ".got")->output_section->vma; + value += addend; + + if ((long) value > 0x7fffff || (long) value < -0x800000) + return bfd_reloc_overflow; + + bfd_put_8 (input_bfd, value, hit_data); + bfd_put_8 (input_bfd, (value >> 8) & 0xff, hit_data + 1); + bfd_put_8 (input_bfd, (value >> 16) & 0xff, hit_data + 2); + return bfd_reloc_ok; + + case R_MN10300_GOTOFF16: + value -= bfd_get_section_by_name (dynobj, + ".got")->output_section->vma; + value += addend; + + if ((long) value > 0xffff || (long) value < -0x10000) + return bfd_reloc_overflow; + + bfd_put_16 (input_bfd, value, hit_data); + return bfd_reloc_ok; + + case R_MN10300_PLT32: + if (h != NULL + && ELF_ST_VISIBILITY (h->other) != STV_INTERNAL + && ELF_ST_VISIBILITY (h->other) != STV_HIDDEN + && h->plt.offset != (bfd_vma) -1) + { + asection * splt; + + splt = bfd_get_section_by_name (dynobj, ".plt"); + + value = (splt->output_section->vma + + splt->output_offset + + h->plt.offset) - value; + } + + value -= (input_section->output_section->vma + + input_section->output_offset); + value -= offset; + value += addend; + + bfd_put_32 (input_bfd, value, hit_data); + return bfd_reloc_ok; + + case R_MN10300_PLT16: + if (h != NULL + && ELF_ST_VISIBILITY (h->other) != STV_INTERNAL + && ELF_ST_VISIBILITY (h->other) != STV_HIDDEN + && h->plt.offset != (bfd_vma) -1) + { + asection * splt; + + splt = bfd_get_section_by_name (dynobj, ".plt"); + + value = (splt->output_section->vma + + splt->output_offset + + h->plt.offset) - value; + } + + value -= (input_section->output_section->vma + + input_section->output_offset); + value -= offset; + value += addend; + + if ((long) value > 0xffff || (long) value < -0x10000) + return bfd_reloc_overflow; + + bfd_put_16 (input_bfd, value, hit_data); + return bfd_reloc_ok; + + case R_MN10300_GOT32: + case R_MN10300_GOT24: + case R_MN10300_GOT16: + { + asection * sgot; + + sgot = bfd_get_section_by_name (dynobj, ".got"); + + if (h != NULL) + { + bfd_vma off; + + off = h->got.offset; + BFD_ASSERT (off != (bfd_vma) -1); + + if (! elf_hash_table (info)->dynamic_sections_created + || (info->shared + && (info->symbolic || h->dynindx == -1) + && (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 the symbol was forced to be local + because of a version file. We must initialize + this entry in the global offset table. + + When doing a dynamic link, we create a .rela.got + relocation entry to initialize the value. This + is done in the finish_dynamic_symbol routine. */ + bfd_put_32 (output_bfd, value, + sgot->contents + off); + + value = sgot->output_offset + off; + } + else + { + bfd_vma off; + + off = elf_local_got_offsets (input_bfd)[symndx]; + + bfd_put_32 (output_bfd, value, sgot->contents + off); + + if (info->shared) + { + asection * srelgot; + Elf_Internal_Rela outrel; + + srelgot = bfd_get_section_by_name (dynobj, ".rela.got"); + BFD_ASSERT (srelgot != NULL); + + outrel.r_offset = (sgot->output_section->vma + + sgot->output_offset + + off); + outrel.r_info = ELF32_R_INFO (0, R_MN10300_RELATIVE); + outrel.r_addend = value; + bfd_elf32_swap_reloca_out (output_bfd, &outrel, + (((Elf32_External_Rela *) + srelgot->contents) + + srelgot->reloc_count)); + ++ srelgot->reloc_count; + } + + value = sgot->output_offset + off; + } + } + + value += addend; + + if (r_type == R_MN10300_GOT32) + { + bfd_put_32 (input_bfd, value, hit_data); + return bfd_reloc_ok; + } + else if (r_type == R_MN10300_GOT24) + { + if ((long) value > 0x7fffff || (long) value < -0x800000) + return bfd_reloc_overflow; + + bfd_put_8 (input_bfd, value & 0xff, hit_data); + bfd_put_8 (input_bfd, (value >> 8) & 0xff, hit_data + 1); + bfd_put_8 (input_bfd, (value >> 16) & 0xff, hit_data + 2); + return bfd_reloc_ok; + } + else if (r_type == R_MN10300_GOT16) + { + if ((long) value > 0xffff || (long) value < -0x10000) + return bfd_reloc_overflow; + + bfd_put_16 (input_bfd, value, hit_data); + return bfd_reloc_ok; + } + /* Fall through. */ + default: return bfd_reloc_notsupported; } @@ -550,7 +1539,7 @@ mn10300_elf_relocate_section (output_bfd struct elf32_mn10300_link_hash_entry **sym_hashes; Elf_Internal_Rela *rel, *relend; - if (info->relocateable) + if (info->relocatable) return TRUE; symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr; @@ -598,17 +1587,66 @@ mn10300_elf_relocate_section (output_bfd || h->root.root.type == bfd_link_hash_defweak) { sec = h->root.root.u.def.section; - relocation = (h->root.root.u.def.value - + sec->output_section->vma - + sec->output_offset); + if ( r_type == R_MN10300_GOTPC32 + || r_type == R_MN10300_GOTPC16 + || (( r_type == R_MN10300_PLT32 + || r_type == R_MN10300_PLT16) + && ELF_ST_VISIBILITY (h->root.other) != STV_INTERNAL + && ELF_ST_VISIBILITY (h->root.other) != STV_HIDDEN + && h->root.plt.offset != (bfd_vma) -1) + || (( r_type == R_MN10300_GOT32 + || r_type == R_MN10300_GOT24 + || r_type == R_MN10300_GOT16) + && elf_hash_table (info)->dynamic_sections_created + && (! info->shared + || (! info->symbolic && h->root.dynindx != -1) + || (h->root.elf_link_hash_flags + & ELF_LINK_HASH_DEF_REGULAR) == 0)) + || (info->shared + && ((! info->symbolic && h->root.dynindx != -1) + || (h->root.elf_link_hash_flags + & ELF_LINK_HASH_DEF_REGULAR) == 0) + && ( r_type == R_MN10300_32 + || r_type == R_MN10300_PCREL32) + && ((input_section->flags & SEC_ALLOC) != 0 + /* DWARF will emit R_MN10300_32 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 + && (h->root.elf_link_hash_flags + & ELF_LINK_HASH_DEF_DYNAMIC) != 0)))) + { + /* In these cases, we don't need the relocation + value. We check specially because in some + obscure cases sec->output_section will be NULL. */ + relocation = 0; + } + else if (sec->output_section == NULL) + { + (*_bfd_error_handler) + (_("%s: warning: unresolvable relocation against symbol `%s' from %s section"), + bfd_get_filename (input_bfd), h->root.root.root.string, + bfd_get_section_name (input_bfd, input_section)); + relocation = 0; + } + else + relocation = (h->root.root.u.def.value + + sec->output_section->vma + + sec->output_offset); } else if (h->root.root.type == bfd_link_hash_undefweak) relocation = 0; + else if (info->shared && !info->symbolic && !info->no_undefined + && ELF_ST_VISIBILITY (h->root.other) == STV_DEFAULT) + relocation = 0; else { if (! ((*info->callbacks->undefined_symbol) (info, h->root.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->root.other))))) return FALSE; relocation = 0; } @@ -618,6 +1656,8 @@ mn10300_elf_relocate_section (output_bfd input_section, contents, rel->r_offset, relocation, rel->r_addend, + (struct elf_link_hash_entry *)h, + r_symndx, info, sec, h == NULL); if (r != bfd_reloc_ok) @@ -953,6 +1993,8 @@ mn10300_elf_relax_section (abfd, sec, li direct_calls counter. Else force "call" to "calls" conversions. */ if (r_type == R_MN10300_PCREL32 + || r_type == R_MN10300_PLT32 + || r_type == R_MN10300_PLT16 || r_type == R_MN10300_PCREL16) hash->direct_calls++; else @@ -1334,10 +2376,10 @@ mn10300_elf_relax_section (abfd, sec, li /* For error_return. */ section = sec; - /* We don't have to do anything for a relocateable link, if + /* We don't have to do anything for a relocatable link, if this section does not have relocs, or if this is not a code section. */ - if (link_info->relocateable + if (link_info->relocatable || (sec->flags & SEC_RELOC) == 0 || sec->reloc_count == 0 || (sec->flags & SEC_CODE) == 0) @@ -1475,10 +2517,30 @@ mn10300_elf_relax_section (abfd, sec, li /* Try to turn a 32bit pc-relative branch/call into a 16bit pc-relative branch/call, also deal with "call" -> "calls" conversions and insertion of prologue data into "call" instructions. */ - if (ELF32_R_TYPE (irel->r_info) == (int) R_MN10300_PCREL32) + if (ELF32_R_TYPE (irel->r_info) == (int) R_MN10300_PCREL32 + || ELF32_R_TYPE (irel->r_info) == (int) R_MN10300_PLT32) { bfd_vma value = symval; + if (ELF32_R_TYPE (irel->r_info) == (int) R_MN10300_PLT32 + && h != NULL + && ELF_ST_VISIBILITY (h->root.other) != STV_INTERNAL + && ELF_ST_VISIBILITY (h->root.other) != STV_HIDDEN + && h->root.plt.offset != (bfd_vma) -1) + { + asection * splt; + + splt = bfd_get_section_by_name (elf_hash_table (link_info) + ->dynobj, ".plt"); + + value = ((splt->output_section->vma + + splt->output_offset + + h->root.plt.offset) + - (sec->output_section->vma + + sec->output_offset + + irel->r_offset)); + } + /* If we've got a "call" instruction that needs to be turned into a "calls" instruction, do so now. It saves a byte. */ if (h && (h->flags & MN10300_CONVERT_CALL_TO_CALLS)) @@ -1567,6 +2629,9 @@ mn10300_elf_relax_section (abfd, sec, li /* Fix the relocation's type. */ irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info), + (ELF32_R_TYPE (irel->r_info) + == (int) R_MN10300_PLT32) + ? R_MN10300_PLT16 : R_MN10300_PCREL16); /* Delete two bytes of data. */ @@ -1885,13 +2950,45 @@ mn10300_elf_relax_section (abfd, sec, li } } } - } + } + + /* Try to turn a 32bit immediate, displacement or absolute address + into a 16bit immediate, displacement or absolute address. */ + if (ELF32_R_TYPE (irel->r_info) == (int) R_MN10300_32 + || ELF32_R_TYPE (irel->r_info) == (int) R_MN10300_GOT32 + || ELF32_R_TYPE (irel->r_info) == (int) R_MN10300_GOTOFF32 + || ELF32_R_TYPE (irel->r_info) == (int) R_MN10300_GOTPC32) + { + bfd_vma value = symval; + + if (ELF32_R_TYPE (irel->r_info) != (int) R_MN10300_32) + { + asection * sgot; + + sgot = bfd_get_section_by_name (elf_hash_table (link_info) + ->dynobj, ".got"); + + if (ELF32_R_TYPE (irel->r_info) == (int) R_MN10300_GOT32) + { + value = sgot->output_offset; + + if (h) + value += h->root.got.offset; + else + value += (elf_local_got_offsets + (abfd)[ELF32_R_SYM (irel->r_info)]); + } + else if (ELF32_R_TYPE (irel->r_info) == (int) R_MN10300_GOTOFF32) + value -= sgot->output_section->vma; + else if (ELF32_R_TYPE (irel->r_info) == (int) R_MN10300_GOTPC32) + value = (sgot->output_section->vma + - (sec->output_section->vma + + sec->output_offset + + irel->r_offset)); + else + abort (); + } - /* Try to turn a 32bit immediate, displacement or absolute address - into a 16bit immediate, displacement or absolute address. */ - if (ELF32_R_TYPE (irel->r_info) == (int) R_MN10300_32) - { - bfd_vma value = symval; value += irel->r_addend; /* See if the value will fit in 24 bits. @@ -1917,6 +3014,8 @@ mn10300_elf_relax_section (abfd, sec, li equivalent instructions exists. */ if (code != 0x6b && code != 0x7b && code != 0x8b && code != 0x9b + && (ELF32_R_TYPE (irel->r_info) + != (int) R_MN10300_GOTPC32) && ((code & 0x0f) == 0x09 || (code & 0x0f) == 0x08 || (code & 0x0f) == 0x0a || (code & 0x0f) == 0x0b || (code & 0x0f) == 0x0e)) @@ -1940,6 +3039,12 @@ mn10300_elf_relax_section (abfd, sec, li /* Fix the relocation's type. */ irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info), + (ELF32_R_TYPE (irel->r_info) + == (int) R_MN10300_GOTOFF32) + ? R_MN10300_GOTOFF24 + : (ELF32_R_TYPE (irel->r_info) + == (int) R_MN10300_GOT32) + ? R_MN10300_GOT24 : R_MN10300_24); /* Delete one byte of data. */ @@ -2018,6 +3123,15 @@ mn10300_elf_relax_section (abfd, sec, li /* Fix the relocation's type. */ irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info), + (ELF32_R_TYPE (irel->r_info) + == (int) R_MN10300_GOTOFF32) + ? R_MN10300_GOTOFF16 + : (ELF32_R_TYPE (irel->r_info) + == (int) R_MN10300_GOT32) + ? R_MN10300_GOT16 + : (ELF32_R_TYPE (irel->r_info) + == (int) R_MN10300_GOTPC32) + ? R_MN10300_GOTPC16 : R_MN10300_16); /* Delete two bytes of data. */ @@ -2059,6 +3173,15 @@ mn10300_elf_relax_section (abfd, sec, li /* Fix the relocation's type. */ irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info), + (ELF32_R_TYPE (irel->r_info) + == (int) R_MN10300_GOTOFF32) + ? R_MN10300_GOTOFF16 + : (ELF32_R_TYPE (irel->r_info) + == (int) R_MN10300_GOT32) + ? R_MN10300_GOT16 + : (ELF32_R_TYPE (irel->r_info) + == (int) R_MN10300_GOTPC32) + ? R_MN10300_GOTPC16 : R_MN10300_16); /* The opcode got shorter too, so we have to fix the @@ -2101,6 +3224,15 @@ mn10300_elf_relax_section (abfd, sec, li /* Fix the relocation's type. */ irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info), + (ELF32_R_TYPE (irel->r_info) + == (int) R_MN10300_GOTOFF32) + ? R_MN10300_GOTOFF16 + : (ELF32_R_TYPE (irel->r_info) + == (int) R_MN10300_GOT32) + ? R_MN10300_GOT16 + : (ELF32_R_TYPE (irel->r_info) + == (int) R_MN10300_GOTPC32) + ? R_MN10300_GOTPC16 : R_MN10300_16); /* Delete two bytes of data. */ @@ -2161,6 +3293,15 @@ mn10300_elf_relax_section (abfd, sec, li /* Fix the relocation's type. */ irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info), + (ELF32_R_TYPE (irel->r_info) + == (int) R_MN10300_GOTOFF32) + ? R_MN10300_GOTOFF16 + : (ELF32_R_TYPE (irel->r_info) + == (int) R_MN10300_GOT32) + ? R_MN10300_GOT16 + : (ELF32_R_TYPE (irel->r_info) + == (int) R_MN10300_GOTPC32) + ? R_MN10300_GOTPC16 : R_MN10300_16); /* The opcode got shorter too, so we have to fix the @@ -2226,6 +3367,15 @@ mn10300_elf_relax_section (abfd, sec, li /* Fix the relocation's type. */ irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info), + (ELF32_R_TYPE (irel->r_info) + == (int) R_MN10300_GOTOFF32) + ? R_MN10300_GOTOFF16 + : (ELF32_R_TYPE (irel->r_info) + == (int) R_MN10300_GOT32) + ? R_MN10300_GOT16 + : (ELF32_R_TYPE (irel->r_info) + == (int) R_MN10300_GOTPC32) + ? R_MN10300_GOTPC16 : R_MN10300_16); /* Delete two bytes of data. */ @@ -2253,6 +3403,15 @@ mn10300_elf_relax_section (abfd, sec, li /* Fix the relocation's type. */ irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info), + (ELF32_R_TYPE (irel->r_info) + == (int) R_MN10300_GOT32) + ? R_MN10300_GOT16 + : (ELF32_R_TYPE (irel->r_info) + == (int) R_MN10300_GOTOFF32) + ? R_MN10300_GOTOFF16 + : (ELF32_R_TYPE (irel->r_info) + == (int) R_MN10300_GOTPC32) + ? R_MN10300_GOTPC16 : R_MN10300_16); /* Delete two bytes of data. */ @@ -2370,7 +3529,8 @@ compute_function_info (abfd, hash, addr, if (hash->movm_args & 0x08) hash->movm_stack_size += 8 * 4; - if (bfd_get_mach (abfd) == bfd_mach_am33) + if (bfd_get_mach (abfd) == bfd_mach_am33 + || bfd_get_mach (abfd) == bfd_mach_am33_2) { /* "exother" space. e0, e1, mdrq, mcrh, mcrl, mcvf */ if (hash->movm_args & 0x1) @@ -2541,12 +3701,12 @@ mn10300_elf_symbol_address_p (abfd, sec, static bfd_byte * mn10300_elf_get_relocated_section_contents (output_bfd, link_info, link_order, - data, relocateable, symbols) + data, relocatable, symbols) bfd *output_bfd; struct bfd_link_info *link_info; struct bfd_link_order *link_order; bfd_byte *data; - bfd_boolean relocateable; + bfd_boolean relocatable; asymbol **symbols; { Elf_Internal_Shdr *symtab_hdr; @@ -2558,11 +3718,11 @@ mn10300_elf_get_relocated_section_conten /* We only need to handle the case of relaxing, or of having a particular set of section contents, specially. */ - if (relocateable + if (relocatable || elf_section_data (input_section)->this_hdr.contents == NULL) return bfd_generic_get_relocated_section_contents (output_bfd, link_info, link_order, data, - relocateable, + relocatable, symbols); symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr; @@ -2677,6 +3837,7 @@ elf32_mn10300_link_hash_newfunc (entry, ret->stack_size = 0; ret->movm_args = 0; ret->movm_stack_size = 0; + ret->pcrel_relocs_copied = NULL; ret->flags = 0; } @@ -2750,6 +3911,9 @@ elf_mn10300_mach (flags) case E_MN10300_MACH_AM33: return bfd_mach_am33; + + case E_MN10300_MACH_AM33_2: + return bfd_mach_am33_2; } } @@ -2774,6 +3938,10 @@ _bfd_mn10300_elf_final_write_processing case bfd_mach_am33: val = E_MN10300_MACH_AM33; break; + + case bfd_mach_am33_2: + val = E_MN10300_MACH_AM33_2; + break; } elf_elfheader (abfd)->e_flags &= ~ (EF_MN10300_MACH); @@ -2812,12 +3980,876 @@ _bfd_mn10300_elf_merge_private_bfd_data return TRUE; } +#define PLT0_ENTRY_SIZE 15 +#define PLT_ENTRY_SIZE 20 +#define PIC_PLT_ENTRY_SIZE 24 + +static const bfd_byte elf_mn10300_plt0_entry[PLT0_ENTRY_SIZE] = +{ + 0xfc, 0xa0, 0, 0, 0, 0, /* mov (.got+8),a0 */ + 0xfe, 0xe, 0x10, 0, 0, 0, 0, /* mov (.got+4),r1 */ + 0xf0, 0xf4, /* jmp (a0) */ +}; + +static const bfd_byte elf_mn10300_plt_entry[PLT_ENTRY_SIZE] = +{ + 0xfc, 0xa0, 0, 0, 0, 0, /* mov (nameN@GOT + .got),a0 */ + 0xf0, 0xf4, /* jmp (a0) */ + 0xfe, 8, 0, 0, 0, 0, 0, /* mov reloc-table-address,r0 */ + 0xdc, 0, 0, 0, 0, /* jmp .plt0 */ +}; + +static const bfd_byte elf_mn10300_pic_plt_entry[PIC_PLT_ENTRY_SIZE] = +{ + 0xfc, 0x22, 0, 0, 0, 0, /* mov (nameN@GOT,a2),a0 */ + 0xf0, 0xf4, /* jmp (a0) */ + 0xfe, 8, 0, 0, 0, 0, 0, /* mov reloc-table-address,r0 */ + 0xf8, 0x22, 8, /* mov (8,a2),a0 */ + 0xfb, 0xa, 0x1a, 4, /* mov (4,a2),r1 */ + 0xf0, 0xf4, /* jmp (a0) */ +}; + +/* Return size of the first PLT entry. */ +#define elf_mn10300_sizeof_plt0(info) \ + (info->shared ? PIC_PLT_ENTRY_SIZE : PLT0_ENTRY_SIZE) + +/* Return size of a PLT entry. */ +#define elf_mn10300_sizeof_plt(info) \ + (info->shared ? PIC_PLT_ENTRY_SIZE : PLT_ENTRY_SIZE) + +/* Return offset of the PLT0 address in an absolute PLT entry. */ +#define elf_mn10300_plt_plt0_offset(info) 16 + +/* Return offset of the linker in PLT0 entry. */ +#define elf_mn10300_plt0_linker_offset(info) 2 + +/* Return offset of the GOT id in PLT0 entry. */ +#define elf_mn10300_plt0_gotid_offset(info) 9 + +/* Return offset of the tempoline in PLT entry */ +#define elf_mn10300_plt_temp_offset(info) 8 + +/* Return offset of the symbol in PLT entry. */ +#define elf_mn10300_plt_symbol_offset(info) 2 + +/* Return offset of the relocation in PLT entry. */ +#define elf_mn10300_plt_reloc_offset(info) 11 + +/* The name of the dynamic interpreter. This is put in the .interp + section. */ + +#define ELF_DYNAMIC_INTERPRETER "/lib/ld.so.1" + +/* Create dynamic sections when linking against a dynamic object. */ + +static bfd_boolean +_bfd_mn10300_elf_create_dynamic_sections (abfd, info) + bfd *abfd; + struct bfd_link_info *info; +{ + flagword flags; + asection * s; + struct elf_backend_data * bed = get_elf_backend_data (abfd); + int ptralign = 0; + + switch (bed->s->arch_size) + { + case 32: + ptralign = 2; + break; + + case 64: + ptralign = 3; + break; + + default: + bfd_set_error (bfd_error_bad_value); + return FALSE; + } + + /* We need to create .plt, .rel[a].plt, .got, .got.plt, .dynbss, and + .rel[a].bss sections. */ + + flags = (SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS | SEC_IN_MEMORY + | SEC_LINKER_CREATED); + + s = bfd_make_section (abfd, + bed->default_use_rela_p ? ".rela.plt" : ".rel.plt"); + if (s == NULL + || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY) + || ! bfd_set_section_alignment (abfd, s, ptralign)) + return FALSE; + + if (! _bfd_mn10300_elf_create_got_section (abfd, info)) + return FALSE; + + { + const char * secname; + char * relname; + flagword secflags; + asection * sec; + + for (sec = abfd->sections; sec; sec = sec->next) + { + secflags = bfd_get_section_flags (abfd, sec); + if ((secflags & (SEC_DATA | SEC_LINKER_CREATED)) + || ((secflags & SEC_HAS_CONTENTS) != SEC_HAS_CONTENTS)) + continue; + + secname = bfd_get_section_name (abfd, sec); + relname = (char *) bfd_malloc (strlen (secname) + 6); + strcpy (relname, ".rela"); + strcat (relname, secname); + + s = bfd_make_section (abfd, relname); + if (s == NULL + || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY) + || ! bfd_set_section_alignment (abfd, s, ptralign)) + return FALSE; + } + } + + if (bed->want_dynbss) + { + /* The .dynbss section is a place to put symbols which are defined + by dynamic objects, are referenced by regular objects, and are + not functions. We must allocate space for them in the process + image and use a R_*_COPY reloc to tell the dynamic linker to + 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"); + if (s == NULL + || ! bfd_set_section_flags (abfd, s, SEC_ALLOC)) + return FALSE; + + /* The .rel[a].bss section holds copy relocs. This section is not + normally needed. We need to create it here, though, so that the + linker will map it to an output section. We can't just create it + only if we need it, because we will not know whether we need it + until we have seen all the input files, and the first time the + main linker code calls BFD after examining all the input files + (size_dynamic_sections) the input sections have already been + mapped to the output sections. If the section turns out not to + be needed, we can discard it later. We will never need this + section when generating a shared object, since they do not use + copy relocs. */ + if (! info->shared) + { + s = bfd_make_section (abfd, + (bed->default_use_rela_p + ? ".rela.bss" : ".rel.bss")); + if (s == NULL + || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY) + || ! bfd_set_section_alignment (abfd, s, ptralign)) + return FALSE; + } + } + + return TRUE; +} + +/* Adjust a symbol defined by a dynamic object and referenced by a + regular object. The current definition is in some section of the + dynamic object, but we're not including those sections. We have to + change the definition to something the rest of the link can + understand. */ + +static bfd_boolean +_bfd_mn10300_elf_adjust_dynamic_symbol (info, h) + struct bfd_link_info * info; + struct elf_link_hash_entry * h; +{ + bfd * dynobj; + asection * s; + unsigned int power_of_two; + + dynobj = elf_hash_table (info)->dynobj; + + /* Make sure we know what is going on here. */ + BFD_ASSERT (dynobj != NULL + && ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_PLT) + || h->weakdef != NULL + || ((h->elf_link_hash_flags + & ELF_LINK_HASH_DEF_DYNAMIC) != 0 + && (h->elf_link_hash_flags + & ELF_LINK_HASH_REF_REGULAR) != 0 + && (h->elf_link_hash_flags + & ELF_LINK_HASH_DEF_REGULAR) == 0))); + + /* If this is a function, put it in the procedure linkage table. We + will fill in the contents of the procedure linkage table later, + when we know the address of the .got section. */ + 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) + { + /* 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; + } + + 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 += elf_mn10300_sizeof_plt0 (info); + + /* 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_mn10300_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; + } + + /* If this is a weak symbol, and there is a real definition, the + processor independent code will have arranged for us to see the + real definition first, and we can just use the same value. */ + if (h->weakdef != NULL) + { + BFD_ASSERT (h->weakdef->root.type == bfd_link_hash_defined + || h->weakdef->root.type == bfd_link_hash_defweak); + h->root.u.def.section = h->weakdef->root.u.def.section; + h->root.u.def.value = h->weakdef->root.u.def.value; + return TRUE; + } + + /* This is a reference to a symbol defined by a dynamic object which + is not a function. */ + + /* If we are creating a shared library, we must presume that the + only references to the symbol are via the global offset table. + For such cases we need not do anything here; the relocations will + be handled correctly by relocate_section. */ + if (info->shared) + return TRUE; + + /* If there are no references to this symbol that do not use the + GOT, we don't need to generate a copy reloc. */ + if ((h->elf_link_hash_flags & ELF_LINK_NON_GOT_REF) == 0) + 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 + object will contain position independent code, so all references + from the dynamic object to this symbol will go through the global + offset table. The dynamic linker will use the .dynsym entry to + determine the address it must put in the global offset table, so + 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"); + BFD_ASSERT (s != NULL); + + /* We must generate a R_MN10300_COPY reloc to tell the dynamic linker to + copy the initial value out of the dynamic object and into the + runtime process image. We need to remember the offset into the + .rela.bss section we are going to use. */ + if ((h->root.u.def.section->flags & SEC_ALLOC) != 0) + { + asection * srel; + + srel = bfd_get_section_by_name (dynobj, ".rela.bss"); + BFD_ASSERT (srel != NULL); + srel->_raw_size += sizeof (Elf32_External_Rela); + h->elf_link_hash_flags |= ELF_LINK_HASH_NEEDS_COPY; + } + + /* We need to figure out the alignment required for this symbol. I + have no idea how ELF linkers handle this. */ + power_of_two = bfd_log2 (h->size); + if (power_of_two > 3) + power_of_two = 3; + + /* Apply the required alignment. */ + 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)) + return FALSE; + } + + /* Define the symbol as being at this point in the section. */ + h->root.u.def.section = s; + h->root.u.def.value = s->_raw_size; + + /* Increment the section size to make room for the symbol. */ + s->_raw_size += h->size; + + return TRUE; +} + +/* This function is called via elf32_mn10300_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 bfd_boolean +_bfd_mn10300_elf_discard_copies (h, info) + struct elf32_mn10300_link_hash_entry *h; + struct bfd_link_info *info; +{ + struct elf_mn10300_pcrel_relocs_copied *s; + + /* If a symbol has been forced local or we have found a regular + definition for the symbolic link case, then we won't be needing + any relocs. */ + if ((h->root.elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) != 0 + && ((h->root.elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0 + || info->symbolic)) + { + for (s = h->pcrel_relocs_copied; s != NULL; s = s->next) + s->section->_raw_size -= s->count * sizeof (Elf32_External_Rel); + } + + return TRUE; +} + +/* Set the sizes of the dynamic sections. */ + +static bfd_boolean +_bfd_mn10300_elf_size_dynamic_sections (output_bfd, info) + bfd * output_bfd; + struct bfd_link_info * info; +{ + bfd * dynobj; + asection * s; + bfd_boolean plt; + bfd_boolean relocs; + bfd_boolean reltext; + + dynobj = elf_hash_table (info)->dynobj; + BFD_ASSERT (dynobj != NULL); + + if (elf_hash_table (info)->dynamic_sections_created) + { + /* Set the contents of the .interp section to the interpreter. */ + if (! info->shared) + { + s = bfd_get_section_by_name (dynobj, ".interp"); + BFD_ASSERT (s != NULL); + s->_raw_size = sizeof ELF_DYNAMIC_INTERPRETER; + 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) + elf32_mn10300_link_hash_traverse (elf32_mn10300_hash_table (info), + _bfd_mn10300_elf_discard_copies, + info); + + /* 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; + reltext = FALSE; + for (s = dynobj->sections; s != NULL; s = s->next) + { + const char * name; + bfd_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); + + strip = FALSE; + + if (strcmp (name, ".plt") == 0) + { + if (s->_raw_size == 0) + /* Strip this section if we don't need it; see the + comment below. */ + strip = TRUE; + else + /* Remember whether there is a PLT. */ + plt = TRUE; + } + else if (strncmp (name, ".rela", 5) == 0) + { + 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. */ + strip = TRUE; + } + else + { + asection * target; + + /* Remember whether there are any reloc sections other + than .rela.plt. */ + if (strcmp (name, ".rela.plt") != 0) + { + const char * outname; + + relocs = TRUE; + + /* If this relocation section applies to a read only + section, then we probably need a DT_TEXTREL + entry. The entries in the .rela.plt section + really apply to the .got section, which we + created ourselves and so know is not readonly. */ + outname = bfd_get_section_name (output_bfd, + s->output_section); + target = bfd_get_section_by_name (output_bfd, outname + 5); + if (target != NULL + && (target->flags & SEC_READONLY) != 0 + && (target->flags & SEC_ALLOC) != 0) + reltext = 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) + /* It's not one of our sections, so don't allocate space. */ + continue; + + if (strip) + { + _bfd_strip_section_from_output (info, s); + continue; + } + + /* 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_MN10300_NONE reloc + instead of garbage. */ + s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->_raw_size); + if (s->contents == NULL && s->_raw_size != 0) + return FALSE; + } + + if (elf_hash_table (info)->dynamic_sections_created) + { + /* Add some entries to the .dynamic section. We fill in the + values later, in _bfd_mn10300_elf_finish_dynamic_sections, + but we must add the entries now so that we get the correct + size for the .dynamic section. The DT_DEBUG entry is filled + in by the dynamic linker and used by the debugger. */ + if (! info->shared) + { + if (! bfd_elf32_add_dynamic_entry (info, DT_DEBUG, 0)) + return FALSE; + } + + if (plt) + { + if (! bfd_elf32_add_dynamic_entry (info, DT_PLTGOT, 0) + || ! bfd_elf32_add_dynamic_entry (info, DT_PLTRELSZ, 0) + || ! bfd_elf32_add_dynamic_entry (info, DT_PLTREL, DT_RELA) + || ! bfd_elf32_add_dynamic_entry (info, DT_JMPREL, 0)) + return FALSE; + } + + if (relocs) + { + if (! bfd_elf32_add_dynamic_entry (info, DT_RELA, 0) + || ! bfd_elf32_add_dynamic_entry (info, DT_RELASZ, 0) + || ! bfd_elf32_add_dynamic_entry (info, DT_RELAENT, + sizeof (Elf32_External_Rela))) + return FALSE; + } + + if (reltext) + { + if (! bfd_elf32_add_dynamic_entry (info, DT_TEXTREL, 0)) + return FALSE; + } + } + + return TRUE; +} + +/* Finish up dynamic symbol handling. We set the contents of various + dynamic sections here. */ + +static bfd_boolean +_bfd_mn10300_elf_finish_dynamic_symbol (output_bfd, info, h, sym) + bfd * output_bfd; + struct bfd_link_info * info; + struct elf_link_hash_entry * h; + Elf_Internal_Sym * sym; +{ + bfd * dynobj; + + dynobj = elf_hash_table (info)->dynobj; + + if (h->plt.offset != (bfd_vma) -1) + { + asection * splt; + asection * sgot; + asection * srel; + bfd_vma plt_index; + bfd_vma got_offset; + Elf_Internal_Rela rel; + + /* This symbol has an entry in the procedure linkage table. Set + it up. */ + + 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"); + BFD_ASSERT (splt != NULL && sgot != NULL && srel != NULL); + + /* Get the index in the procedure linkage table which + corresponds to this symbol. This is the index of this symbol + in all the symbols for which we are making plt entries. The + first entry in the procedure linkage table is reserved. */ + plt_index = ((h->plt.offset - elf_mn10300_sizeof_plt0 (info)) + / elf_mn10300_sizeof_plt (info)); + + /* Get the offset into the .got table of the entry that + corresponds to this function. Each .got entry is 4 bytes. + The first three are reserved. */ + got_offset = (plt_index + 3) * 4; + + /* Fill in the entry in the procedure linkage table. */ + if (! info->shared) + { + memcpy (splt->contents + h->plt.offset, elf_mn10300_plt_entry, + elf_mn10300_sizeof_plt (info)); + bfd_put_32 (output_bfd, + (sgot->output_section->vma + + sgot->output_offset + + got_offset), + (splt->contents + h->plt.offset + + elf_mn10300_plt_symbol_offset (info))); + + bfd_put_32 (output_bfd, + (1 - h->plt.offset - elf_mn10300_plt_plt0_offset (info)), + (splt->contents + h->plt.offset + + elf_mn10300_plt_plt0_offset (info))); + } + else + { + memcpy (splt->contents + h->plt.offset, elf_mn10300_pic_plt_entry, + elf_mn10300_sizeof_plt (info)); + + bfd_put_32 (output_bfd, got_offset, + (splt->contents + h->plt.offset + + elf_mn10300_plt_symbol_offset (info))); + } + + bfd_put_32 (output_bfd, plt_index * sizeof (Elf32_External_Rela), + (splt->contents + h->plt.offset + + elf_mn10300_plt_reloc_offset (info))); + + /* Fill in the entry in the global offset table. */ + bfd_put_32 (output_bfd, + (splt->output_section->vma + + splt->output_offset + + h->plt.offset + + elf_mn10300_plt_temp_offset (info)), + sgot->contents + got_offset); + + /* Fill in the entry in the .rela.plt section. */ + rel.r_offset = (sgot->output_section->vma + + sgot->output_offset + + got_offset); + rel.r_info = ELF32_R_INFO (h->dynindx, R_MN10300_JMP_SLOT); + rel.r_addend = 0; + bfd_elf32_swap_reloca_out (output_bfd, &rel, + ((Elf32_External_Rela *) srel->contents + + plt_index)); + + if ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0) + /* Mark the symbol as undefined, rather than as defined in + the .plt section. Leave the value alone. */ + sym->st_shndx = SHN_UNDEF; + } + + if (h->got.offset != (bfd_vma) -1) + { + asection * sgot; + asection * srel; + Elf_Internal_Rela rel; + + /* 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"); + BFD_ASSERT (sgot != NULL && srel != NULL); + + rel.r_offset = (sgot->output_section->vma + + sgot->output_offset + + (h->got.offset &~ 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. + 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) + && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR)) + { + rel.r_info = ELF32_R_INFO (0, R_MN10300_RELATIVE); + rel.r_addend = (h->root.u.def.value + + h->root.u.def.section->output_section->vma + + h->root.u.def.section->output_offset); + } + else + { + bfd_put_32 (output_bfd, (bfd_vma) 0, sgot->contents + h->got.offset); + rel.r_info = ELF32_R_INFO (h->dynindx, R_MN10300_GLOB_DAT); + rel.r_addend = 0; + } + + bfd_elf32_swap_reloca_out (output_bfd, &rel, + ((Elf32_External_Rela *) srel->contents + + srel->reloc_count)); + ++ srel->reloc_count; + } + + if ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_COPY) != 0) + { + asection * s; + Elf_Internal_Rela rel; + + /* This symbol needs a copy reloc. Set it up. */ + BFD_ASSERT (h->dynindx != -1 + && (h->root.type == bfd_link_hash_defined + || h->root.type == bfd_link_hash_defweak)); + + s = bfd_get_section_by_name (h->root.u.def.section->owner, + ".rela.bss"); + BFD_ASSERT (s != NULL); + + rel.r_offset = (h->root.u.def.value + + h->root.u.def.section->output_section->vma + + h->root.u.def.section->output_offset); + rel.r_info = ELF32_R_INFO (h->dynindx, R_MN10300_COPY); + rel.r_addend = 0; + bfd_elf32_swap_reloca_out (output_bfd, &rel, + ((Elf32_External_Rela *) s->contents + + s->reloc_count)); + ++ s->reloc_count; + } + + /* Mark _DYNAMIC and _GLOBAL_OFFSET_TABLE_ as absolute. */ + if (strcmp (h->root.root.string, "_DYNAMIC") == 0 + || strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0) + sym->st_shndx = SHN_ABS; + + return TRUE; +} + +/* Finish up the dynamic sections. */ + +static bfd_boolean +_bfd_mn10300_elf_finish_dynamic_sections (output_bfd, info) + bfd * output_bfd; + struct bfd_link_info * info; +{ + bfd * dynobj; + asection * sgot; + asection * sdyn; + + dynobj = elf_hash_table (info)->dynobj; + + sgot = bfd_get_section_by_name (dynobj, ".got.plt"); + BFD_ASSERT (sgot != NULL); + sdyn = bfd_get_section_by_name (dynobj, ".dynamic"); + + if (elf_hash_table (info)->dynamic_sections_created) + { + asection * splt; + Elf32_External_Dyn * dyncon; + Elf32_External_Dyn * dynconend; + + BFD_ASSERT (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; + + bfd_elf32_swap_dyn_in (dynobj, dyncon, &dyn); + + switch (dyn.d_tag) + { + default: + break; + + case DT_PLTGOT: + name = ".got"; + goto get_vma; + + case DT_JMPREL: + name = ".rela.plt"; + 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"); + BFD_ASSERT (s != NULL); + if (s->_cooked_size != 0) + dyn.d_un.d_val = s->_cooked_size; + else + dyn.d_un.d_val = s->_raw_size; + bfd_elf32_swap_dyn_out (output_bfd, &dyn, dyncon); + break; + + case DT_RELASZ: + /* My reading of the SVR4 ABI indicates that the + procedure linkage table relocs (DT_JMPREL) should be + included in the overall relocs (DT_RELA). This is + what Solaris does. However, UnixWare can not handle + that case. Therefore, we override the DT_RELASZ entry + here to make it not include the JMPREL relocs. Since + 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 (s->_cooked_size != 0) + dyn.d_un.d_val -= s->_cooked_size; + else + dyn.d_un.d_val -= s->_raw_size; + } + bfd_elf32_swap_dyn_out (output_bfd, &dyn, dyncon); + break; + } + } + + /* Fill in the first entry in the procedure linkage table. */ + splt = bfd_get_section_by_name (dynobj, ".plt"); + if (splt && splt->_raw_size > 0) + { + if (info->shared) + { + memcpy (splt->contents, elf_mn10300_pic_plt_entry, + elf_mn10300_sizeof_plt (info)); + } + else + { + memcpy (splt->contents, elf_mn10300_plt0_entry, PLT0_ENTRY_SIZE); + bfd_put_32 (output_bfd, + sgot->output_section->vma + sgot->output_offset + 4, + splt->contents + elf_mn10300_plt0_gotid_offset (info)); + bfd_put_32 (output_bfd, + sgot->output_section->vma + sgot->output_offset + 8, + splt->contents + elf_mn10300_plt0_linker_offset (info)); + } + + /* UnixWare sets the entsize of .plt to 4, although that doesn't + really seem like the right value. */ + elf_section_data (splt->output_section)->this_hdr.sh_entsize = 4; + } + } + + /* Fill in the first three entries in the global offset table. */ + if (sgot->_raw_size > 0) + { + if (sdyn == NULL) + bfd_put_32 (output_bfd, (bfd_vma) 0, sgot->contents); + else + bfd_put_32 (output_bfd, + sdyn->output_section->vma + sdyn->output_offset, + 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; + + return TRUE; +} + +#ifndef ELF_ARCH #define TARGET_LITTLE_SYM bfd_elf32_mn10300_vec #define TARGET_LITTLE_NAME "elf32-mn10300" #define ELF_ARCH bfd_arch_mn10300 #define ELF_MACHINE_CODE EM_MN10300 #define ELF_MACHINE_ALT1 EM_CYGNUS_MN10300 #define ELF_MAXPAGESIZE 0x1000 +#endif #define elf_info_to_howto mn10300_info_to_howto #define elf_info_to_howto_rel 0 @@ -2834,7 +4866,9 @@ _bfd_mn10300_elf_merge_private_bfd_data #define bfd_elf32_bfd_link_hash_table_free \ elf32_mn10300_link_hash_table_free +#ifndef elf_symbol_leading_char #define elf_symbol_leading_char '_' +#endif /* So we can set bits in e_flags. */ #define elf_backend_final_write_processing \ @@ -2844,4 +4878,22 @@ _bfd_mn10300_elf_merge_private_bfd_data #define bfd_elf32_bfd_merge_private_bfd_data \ _bfd_mn10300_elf_merge_private_bfd_data +#define elf_backend_can_gc_sections 1 +#define elf_backend_create_dynamic_sections \ + _bfd_mn10300_elf_create_dynamic_sections +#define elf_backend_adjust_dynamic_symbol \ + _bfd_mn10300_elf_adjust_dynamic_symbol +#define elf_backend_size_dynamic_sections \ + _bfd_mn10300_elf_size_dynamic_sections +#define elf_backend_finish_dynamic_symbol \ + _bfd_mn10300_elf_finish_dynamic_symbol +#define elf_backend_finish_dynamic_sections \ + _bfd_mn10300_elf_finish_dynamic_sections + +#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 PLT0_ENTRY_SIZE + #include "elf32-target.h" diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf.c binutils-2.14.90.0.5/bfd/elf.c --- binutils-2.14.90.0.4.1/bfd/elf.c 2003-05-23 07:18:52.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/elf.c 2003-07-23 08:08:08.000000000 -0700 @@ -936,7 +936,7 @@ const char *const bfd_elf_section_type_n "SHT_NOBITS", "SHT_REL", "SHT_SHLIB", "SHT_DYNSYM", }; -/* ELF relocs are against symbols. If we are producing relocateable +/* ELF relocs are against symbols. If we are producing relocatable output, and the reloc is against an external symbol, and nothing has given us any additional addend, the resulting reloc will also be against the same symbol. In such a case, we don't want to @@ -944,7 +944,7 @@ const char *const bfd_elf_section_type_n all be done at final link time. Rather than put special case code into bfd_perform_relocation, all the reloc types use this howto function. It just short circuits the reloc if producing - relocateable output against an external symbol. */ + relocatable output against an external symbol. */ bfd_reloc_status_type bfd_elf_generic_reloc (abfd, @@ -1070,6 +1070,7 @@ _bfd_elf_print_private_bfd_data (abfd, f case PT_PHDR: pt = "PHDR"; break; case PT_TLS: pt = "TLS"; break; case PT_GNU_EH_FRAME: pt = "EH_FRAME"; break; + case PT_GNU_STACK: pt = "STACK"; break; default: sprintf (buf, "0x%lx", p->p_type); pt = buf; break; } fprintf (f, "%8s off 0x", pt); @@ -1427,7 +1428,6 @@ _bfd_elf_link_hash_newfunc (entry, table ret->dynstr_index = 0; ret->elf_hash_value = 0; ret->weakdef = NULL; - ret->linker_section_pointer = NULL; ret->verinfo.verdef = NULL; ret->vtable_entries_size = 0; ret->vtable_entries_used = NULL; @@ -1837,7 +1837,7 @@ bfd_section_from_shdr (abfd, shindex) SHF_ALLOC is set, and this is a shared object, then we also treat this section as a BFD section. We can not base the decision purely on SHF_ALLOC, because that flag is sometimes - set in a relocateable object file, which would confuse the + set in a relocatable object file, which would confuse the linker. */ if ((hdr->sh_flags & SHF_ALLOC) != 0 && (abfd->flags & DYNAMIC) != 0 @@ -2296,6 +2296,9 @@ bfd_section_from_phdr (abfd, hdr, index) return _bfd_elf_make_section_from_phdr (abfd, hdr, index, "eh_frame_hdr"); + case PT_GNU_STACK: + return _bfd_elf_make_section_from_phdr (abfd, hdr, index, "stack"); + default: /* Check for any processor-specific program segment types. If no handler for them, default to making "segment" sections. */ @@ -3513,6 +3516,21 @@ map_sections_to_segments (abfd) pm = &m->next; } + if (elf_tdata (abfd)->stack_flags) + { + amt = sizeof (struct elf_segment_map); + m = (struct elf_segment_map *) bfd_zalloc (abfd, amt); + if (m == NULL) + goto error_return; + m->next = NULL; + m->p_type = PT_GNU_STACK; + m->p_flags = elf_tdata (abfd)->stack_flags; + m->p_flags_valid = 1; + + *pm = m; + pm = &m->next; + } + free (sections); sections = NULL; @@ -4099,6 +4117,12 @@ get_program_header_size (abfd) ++segs; } + if (elf_tdata (abfd)->stack_flags) + { + /* We need a PT_GNU_STACK segment. */ + ++segs; + } + for (s = abfd->sections; s != NULL; s = s->next) { if ((s->flags & SEC_LOAD) != 0 @@ -7015,18 +7039,30 @@ elfcore_grok_nto_status (abfd, note, tid char buf[100]; char *name; asection *sect; + short sig; + unsigned flags; /* nto_procfs_status 'pid' field is at offset 0. */ elf_tdata (abfd)->core_pid = bfd_get_32 (abfd, (bfd_byte *) ddata); - /* nto_procfs_status 'tid' field is at offset 4. */ - elf_tdata (abfd)->core_lwpid = bfd_get_32 (abfd, (bfd_byte *) ddata + 4); + /* nto_procfs_status 'tid' field is at offset 4. Pass it back. */ + *tid = bfd_get_32 (abfd, (bfd_byte *) ddata + 4); + + /* nto_procfs_status 'flags' field is at offset 8. */ + flags = bfd_get_32 (abfd, (bfd_byte *) ddata + 8); /* nto_procfs_status 'what' field is at offset 14. */ - elf_tdata (abfd)->core_signal = bfd_get_16 (abfd, (bfd_byte *) ddata + 14); + if ((sig = bfd_get_16 (abfd, (bfd_byte *) ddata + 14)) > 0) + { + elf_tdata (abfd)->core_signal = sig; + elf_tdata (abfd)->core_lwpid = *tid; + } - /* Pass tid back. */ - *tid = elf_tdata (abfd)->core_lwpid; + /* _DEBUG_FLAG_CURTID (current thread) is 0x80. Some cores + do not come from signals so we make sure we set the current + thread just in case. */ + if (flags & 0x00000080) + elf_tdata (abfd)->core_lwpid = *tid; /* Make a ".qnx_core_status/%d" section. */ sprintf (buf, ".qnx_core_status/%d", *tid); @@ -7075,7 +7111,11 @@ elfcore_grok_nto_gregs (abfd, note, tid) sect->flags = SEC_HAS_CONTENTS; sect->alignment_power = 2; - return elfcore_maybe_make_sect (abfd, ".reg", sect); + /* This is the current thread. */ + if (elf_tdata (abfd)->core_lwpid == tid) + return elfcore_maybe_make_sect (abfd, ".reg", sect); + + return TRUE; } #define BFD_QNT_CORE_INFO 7 diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf32-am33lin.c binutils-2.14.90.0.5/bfd/elf32-am33lin.c --- binutils-2.14.90.0.4.1/bfd/elf32-am33lin.c 1969-12-31 16:00:00.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/elf32-am33lin.c 2003-07-23 08:08:08.000000000 -0700 @@ -0,0 +1,35 @@ +/* Matsushita AM33/2.0 support for 32-bit GNU/Linux ELF + Copyright 2001 + Free Software Foundation, Inc. + + This file is part of BFD, the Binary File Descriptor library. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#define elf_symbol_leading_char 0 + +#define TARGET_LITTLE_SYM bfd_elf32_am33lin_vec +#define TARGET_LITTLE_NAME "elf32-am33lin" +#define ELF_ARCH bfd_arch_mn10300 +#define ELF_MACHINE_CODE EM_MN10300 +#define ELF_MACHINE_ALT1 EM_CYGNUS_MN10300 +#define ELF_MAXPAGESIZE 0x1000 + +/* Rename global functions. */ +#define _bfd_mn10300_elf_merge_private_bfd_data _bfd_am33_elf_merge_private_bfd_data +#define _bfd_mn10300_elf_object_p _bfd_am33_elf_object_p +#define _bfd_mn10300_elf_final_write_processing _bfd_am33_elf_final_write_processing + +#include "elf-m10300.c" diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf32-arm.h binutils-2.14.90.0.5/bfd/elf32-arm.h --- binutils-2.14.90.0.4.1/bfd/elf32-arm.h 2003-05-15 13:42:24.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/elf32-arm.h 2003-07-23 08:08:08.000000000 -0700 @@ -564,7 +564,7 @@ bfd_elf32_arm_add_glue_sections_to_bfd ( /* If we are only performing a partial link do not bother adding the glue. */ - if (info->relocateable) + if (info->relocatable) return TRUE; sec = bfd_get_section_by_name (abfd, ARM2THUMB_GLUE_SECTION_NAME); @@ -620,7 +620,7 @@ bfd_elf32_arm_get_bfd_for_interworking ( /* If we are only performing a partial link do not bother getting a bfd to hold the glue. */ - if (info->relocateable) + if (info->relocatable) return TRUE; globals = elf32_arm_hash_table (info); @@ -652,7 +652,7 @@ bfd_elf32_arm_process_before_allocation /* If we are only performing a partial link do not bother to construct any glue. */ - if (link_info->relocateable) + if (link_info->relocatable) return TRUE; /* Here we have a bfd that is to be included on the link. We have a hook @@ -1838,7 +1838,7 @@ elf32_arm_relocate_section (output_bfd, const char *name; #if !USE_REL - if (info->relocateable) + if (info->relocatable) return TRUE; #endif @@ -1870,9 +1870,9 @@ elf32_arm_relocate_section (output_bfd, howto = bfd_reloc.howto; #if USE_REL - if (info->relocateable) + if (info->relocatable) { - /* This is a relocateable link. We don't have to change + /* This is a relocatable link. We don't have to change anything, unless the reloc is against a section symbol, in which case we have to adjust according to where the section symbol winds up in the output section. */ @@ -2630,7 +2630,7 @@ elf32_arm_check_relocs (abfd, info, sec, asection *sgot, *srelgot, *sreloc; bfd_vma *local_got_offsets; - if (info->relocateable) + if (info->relocatable) return TRUE; sgot = srelgot = sreloc = NULL; @@ -3699,7 +3699,11 @@ elf32_arm_final_write_processing (abfd, #define ELF_ARCH bfd_arch_arm #define ELF_MACHINE_CODE EM_ARM +#ifdef __QNXTARGET__ +#define ELF_MAXPAGESIZE 0x1000 +#else #define ELF_MAXPAGESIZE 0x8000 +#endif #define bfd_elf32_bfd_copy_private_bfd_data elf32_arm_copy_private_bfd_data #define bfd_elf32_bfd_merge_private_bfd_data elf32_arm_merge_private_bfd_data diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf32-avr.c binutils-2.14.90.0.5/bfd/elf32-avr.c --- binutils-2.14.90.0.4.1/bfd/elf32-avr.c 2002-12-16 12:22:51.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/elf32-avr.c 2003-07-23 08:08:08.000000000 -0700 @@ -1,5 +1,5 @@ /* AVR-specific support for 32-bit ELF - Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc. + Copyright 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Contributed by Denis Chertykov This file is part of BFD, the Binary File Descriptor library. @@ -455,7 +455,7 @@ elf32_avr_check_relocs (abfd, info, sec, const Elf_Internal_Rela *rel; const Elf_Internal_Rela *rel_end; - if (info->relocateable) + if (info->relocatable) return TRUE; symtab_hdr = &elf_tdata (abfd)->symtab_hdr; @@ -719,7 +719,7 @@ elf32_avr_relocate_section (output_bfd, Elf_Internal_Rela * rel; Elf_Internal_Rela * relend; - if (info->relocateable) + if (info->relocatable) return TRUE; symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr; diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf32-cris.c binutils-2.14.90.0.5/bfd/elf32-cris.c --- binutils-2.14.90.0.4.1/bfd/elf32-cris.c 2003-03-19 09:19:13.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/elf32-cris.c 2003-07-23 08:08:08.000000000 -0700 @@ -799,7 +799,7 @@ cris_elf_relocate_section (output_bfd, i Elf_Internal_Rela *rel; Elf_Internal_Rela *relend; - if (info->relocateable) + if (info->relocatable) return TRUE; dynobj = elf_hash_table (info)->dynobj; @@ -1129,8 +1129,15 @@ cris_elf_relocate_section (output_bfd, i break; case R_CRIS_32_GOTREL: - /* This relocation must only be performed against local symbols. */ - if (h != NULL && ELF_ST_VISIBILITY (h->other) == STV_DEFAULT) + /* This relocation must only be performed against local symbols. + It's also ok when we link a program and the symbol is either + defined in an ordinary (non-DSO) object or is undefined weak. */ + if (h != NULL + && ELF_ST_VISIBILITY (h->other) == STV_DEFAULT + && !(!info->shared + && ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) != 0 + || ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_DYNAMIC) == 0 + && h->root.type == bfd_link_hash_undefweak)))) { (*_bfd_error_handler) (_("%s: relocation %s is not allowed for global symbol: `%s' from %s section"), @@ -2267,7 +2274,7 @@ cris_elf_check_relocs (abfd, info, sec, asection *srelgot; asection *sreloc; - if (info->relocateable) + if (info->relocatable) return TRUE; dynobj = elf_hash_table (info)->dynobj; diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf32-d10v.c binutils-2.14.90.0.5/bfd/elf32-d10v.c --- binutils-2.14.90.0.4.1/bfd/elf32-d10v.c 2002-12-16 12:22:51.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/elf32-d10v.c 2003-07-23 08:08:08.000000000 -0700 @@ -1,5 +1,6 @@ /* D10V-specific support for 32-bit ELF - Copyright 1996, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. + Copyright 1996, 1998, 1999, 2000, 2001, 2002, 2003 + Free Software Foundation, Inc. Contributed by Martin Hunt (hunt@cygnus.com). This file is part of BFD, the Binary File Descriptor library. @@ -303,7 +304,7 @@ elf32_d10v_check_relocs (abfd, info, sec const Elf_Internal_Rela *rel; const Elf_Internal_Rela *rel_end; - if (info->relocateable) + if (info->relocatable) return TRUE; symtab_hdr = &elf_tdata (abfd)->symtab_hdr; @@ -388,9 +389,9 @@ elf32_d10v_relocate_section (output_bfd, howto = elf_d10v_howto_table + r_type; - if (info->relocateable) + if (info->relocatable) { - /* This is a relocateable link. We don't have to change + /* This is a relocatable link. We don't have to change anything, unless the reloc is against a section symbol, in which case we have to adjust according to where the section symbol winds up in the output section. */ diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf32-dlx.c binutils-2.14.90.0.5/bfd/elf32-dlx.c --- binutils-2.14.90.0.4.1/bfd/elf32-dlx.c 2002-12-16 12:22:51.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/elf32-dlx.c 2003-07-23 08:08:08.000000000 -0700 @@ -1,5 +1,5 @@ /* DLX specific support for 32-bit ELF - Copyright 2002 Free Software Foundation, Inc. + Copyright 2002, 2003 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -320,7 +320,7 @@ _bfd_dlx_elf_hi16_reloc (abfd, reloc_ent return ret; } -/* ELF relocs are against symbols. If we are producing relocateable +/* ELF relocs are against symbols. If we are producing relocatable output, and the reloc is against an external symbol, and nothing has given us any additional addend, the resulting reloc will also be against the same symbol. In such a case, we don't want to @@ -328,7 +328,7 @@ _bfd_dlx_elf_hi16_reloc (abfd, reloc_ent all be done at final link time. Rather than put special case code into bfd_perform_relocation, all the reloc types use this howto function. It just short circuits the reloc if producing - relocateable output against an external symbol. */ + relocatable output against an external symbol. */ static bfd_reloc_status_type elf32_dlx_relocate16 (abfd, reloc_entry, symbol, data, @@ -532,7 +532,7 @@ elf32_dlx_check_relocs (abfd, info, sec, const Elf_Internal_Rela *rel; const Elf_Internal_Rela *rel_end; - if (info->relocateable) + if (info->relocatable) return TRUE; symtab_hdr = &elf_tdata (abfd)->symtab_hdr; diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf32-fr30.c binutils-2.14.90.0.5/bfd/elf32-fr30.c --- binutils-2.14.90.0.4.1/bfd/elf32-fr30.c 2002-12-16 12:22:51.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/elf32-fr30.c 2003-07-23 08:08:08.000000000 -0700 @@ -1,5 +1,6 @@ /* FR30-specific support for 32-bit ELF. - Copyright 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. + Copyright 1998, 1999, 2000, 2001, 2002, 2003 + Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -478,7 +479,7 @@ fr30_final_link_relocate (howto, input_b zero. This function is responsible for adjusting the section contents as - necessary, and (if using Rela relocs and generating a relocateable + necessary, and (if using Rela relocs and generating a relocatable output file) adjusting the reloc addend as necessary. This function does not have to worry about setting the reloc @@ -492,7 +493,7 @@ fr30_final_link_relocate (howto, input_b The global hash table entry for the global symbols can be found via elf_sym_hashes (input_bfd). - When generating relocateable output, this function must handle + When generating relocatable output, this function must handle STB_LOCAL/STT_SECTION symbols specially. The output symbol is going to be the section symbol corresponding to the output section, which means that the addend must be adjusted @@ -515,7 +516,7 @@ fr30_elf_relocate_section (output_bfd, i Elf_Internal_Rela *rel; Elf_Internal_Rela *relend; - if (info->relocateable) + if (info->relocatable) return TRUE; symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr; @@ -726,7 +727,7 @@ fr30_elf_check_relocs (abfd, info, sec, const Elf_Internal_Rela *rel; const Elf_Internal_Rela *rel_end; - if (info->relocateable) + if (info->relocatable) return TRUE; symtab_hdr = &elf_tdata (abfd)->symtab_hdr; diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf32-frv.c binutils-2.14.90.0.5/bfd/elf32-frv.c --- binutils-2.14.90.0.4.1/bfd/elf32-frv.c 2002-12-16 12:22:51.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/elf32-frv.c 2003-07-23 08:08:08.000000000 -0700 @@ -1,5 +1,5 @@ /* FRV-specific support for 32-bit ELF. - Copyright 2002 Free Software Foundation, Inc. + Copyright 2002, 2003 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -651,7 +651,7 @@ frv_final_link_relocate (howto, input_bf zero. This function is responsible for adjusting the section contents as - necessary, and (if using Rela relocs and generating a relocateable + necessary, and (if using Rela relocs and generating a relocatable output file) adjusting the reloc addend as necessary. This function does not have to worry about setting the reloc @@ -665,7 +665,7 @@ frv_final_link_relocate (howto, input_bf The global hash table entry for the global symbols can be found via elf_sym_hashes (input_bfd). - When generating relocateable output, this function must handle + When generating relocatable output, this function must handle STB_LOCAL/STT_SECTION symbols specially. The output symbol is going to be the section symbol corresponding to the output section, which means that the addend must be adjusted @@ -688,7 +688,7 @@ elf32_frv_relocate_section (output_bfd, Elf_Internal_Rela *rel; Elf_Internal_Rela *relend; - if (info->relocateable) + if (info->relocatable) return TRUE; symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr; @@ -907,7 +907,7 @@ elf32_frv_add_symbol_hook (abfd, info, s bfd_vma *valp; { if (sym->st_shndx == SHN_COMMON - && !info->relocateable + && !info->relocatable && (int)sym->st_size <= (int)bfd_get_gp_size (abfd)) { /* Common symbols less than or equal to -G nn bytes are @@ -947,7 +947,7 @@ elf32_frv_check_relocs (abfd, info, sec, const Elf_Internal_Rela *rel; const Elf_Internal_Rela *rel_end; - if (info->relocateable) + if (info->relocatable) return TRUE; symtab_hdr = &elf_tdata (abfd)->symtab_hdr; diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf32-h8300.c binutils-2.14.90.0.5/bfd/elf32-h8300.c --- binutils-2.14.90.0.4.1/bfd/elf32-h8300.c 2003-05-23 07:18:52.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/elf32-h8300.c 2003-07-23 08:08:08.000000000 -0700 @@ -25,38 +25,38 @@ #include "elf/h8.h" static reloc_howto_type *elf32_h8_reloc_type_lookup - PARAMS ((bfd *abfd, bfd_reloc_code_real_type code)); + (bfd *abfd, bfd_reloc_code_real_type code); static void elf32_h8_info_to_howto - PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); + (bfd *, arelent *, Elf_Internal_Rela *); static void elf32_h8_info_to_howto_rel - PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); + (bfd *, arelent *, Elf_Internal_Rela *); static unsigned long elf32_h8_mach - PARAMS ((flagword)); + (flagword); static void elf32_h8_final_write_processing - PARAMS ((bfd *, bfd_boolean)); + (bfd *, bfd_boolean); static bfd_boolean elf32_h8_object_p - PARAMS ((bfd *)); + (bfd *); static bfd_boolean elf32_h8_merge_private_bfd_data - PARAMS ((bfd *, bfd *)); + (bfd *, bfd *); static bfd_boolean elf32_h8_relax_section - PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *)); + (bfd *, asection *, struct bfd_link_info *, bfd_boolean *); static bfd_boolean elf32_h8_relax_delete_bytes - PARAMS ((bfd *, asection *, bfd_vma, int)); + (bfd *, asection *, bfd_vma, int); static bfd_boolean elf32_h8_symbol_address_p - PARAMS ((bfd *, asection *, bfd_vma)); + (bfd *, asection *, bfd_vma); static bfd_byte *elf32_h8_get_relocated_section_contents - PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *, - bfd_byte *, bfd_boolean, asymbol **)); + (bfd *, struct bfd_link_info *, struct bfd_link_order *, + bfd_byte *, bfd_boolean, asymbol **); static bfd_reloc_status_type elf32_h8_final_link_relocate - PARAMS ((unsigned long, bfd *, bfd *, asection *, - bfd_byte *, bfd_vma, bfd_vma, bfd_vma, - struct bfd_link_info *, asection *, int)); + (unsigned long, bfd *, bfd *, asection *, + bfd_byte *, bfd_vma, bfd_vma, bfd_vma, + struct bfd_link_info *, asection *, int); static bfd_boolean elf32_h8_relocate_section - PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, - bfd_byte *, Elf_Internal_Rela *, - Elf_Internal_Sym *, asection **)); + (bfd *, struct bfd_link_info *, bfd *, asection *, + bfd_byte *, Elf_Internal_Rela *, + Elf_Internal_Sym *, asection **); static bfd_reloc_status_type special - PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); + (bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **); /* This does not include any relocation information, but should be good enough for GDB or objdump to read the file. */ @@ -183,7 +183,7 @@ static reloc_howto_type h8_elf_howto_tab 0, /* bitpos */ complain_overflow_dont,/* complain_on_overflow */ special, /* special_function */ - "R_H8_DIR32", /* name */ + "R_H8_DIR32A16", /* name */ FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ @@ -243,9 +243,8 @@ static const struct elf_reloc_map h8_rel static reloc_howto_type * -elf32_h8_reloc_type_lookup (abfd, code) - bfd *abfd ATTRIBUTE_UNUSED; - bfd_reloc_code_real_type code; +elf32_h8_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED, + bfd_reloc_code_real_type code) { unsigned int i; @@ -258,10 +257,8 @@ elf32_h8_reloc_type_lookup (abfd, code) } static void -elf32_h8_info_to_howto (abfd, bfd_reloc, elf_reloc) - bfd *abfd ATTRIBUTE_UNUSED; - arelent *bfd_reloc; - Elf_Internal_Rela *elf_reloc; +elf32_h8_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, arelent *bfd_reloc, + Elf_Internal_Rela *elf_reloc) { unsigned int r; unsigned int i; @@ -277,10 +274,8 @@ elf32_h8_info_to_howto (abfd, bfd_reloc, } static void -elf32_h8_info_to_howto_rel (abfd, bfd_reloc, elf_reloc) - bfd *abfd ATTRIBUTE_UNUSED; - arelent *bfd_reloc; - Elf_Internal_Rela *elf_reloc ATTRIBUTE_UNUSED; +elf32_h8_info_to_howto_rel (bfd *abfd ATTRIBUTE_UNUSED, arelent *bfd_reloc, + Elf_Internal_Rela *elf_reloc ATTRIBUTE_UNUSED) { unsigned int r; @@ -294,15 +289,13 @@ elf32_h8_info_to_howto_rel (abfd, bfd_re When doing -r, we can't do any arithmetic for the pcrel stuff, because we support relaxing on the H8/300 series chips. */ static bfd_reloc_status_type -special (abfd, reloc_entry, symbol, data, input_section, output_bfd, - error_message) - bfd *abfd ATTRIBUTE_UNUSED; - arelent *reloc_entry ATTRIBUTE_UNUSED; - asymbol *symbol ATTRIBUTE_UNUSED; - PTR data ATTRIBUTE_UNUSED; - asection *input_section ATTRIBUTE_UNUSED; - bfd *output_bfd; - char **error_message ATTRIBUTE_UNUSED; +special (bfd *abfd ATTRIBUTE_UNUSED, + arelent *reloc_entry ATTRIBUTE_UNUSED, + asymbol *symbol ATTRIBUTE_UNUSED, + PTR data ATTRIBUTE_UNUSED, + asection *input_section ATTRIBUTE_UNUSED, + bfd *output_bfd, + char **error_message ATTRIBUTE_UNUSED) { if (output_bfd == (bfd *) NULL) return bfd_reloc_continue; @@ -314,26 +307,19 @@ special (abfd, reloc_entry, symbol, data /* Perform a relocation as part of a final link. */ static bfd_reloc_status_type -elf32_h8_final_link_relocate (r_type, input_bfd, output_bfd, - input_section, contents, offset, value, - addend, info, sym_sec, is_local) - unsigned long r_type; - bfd *input_bfd; - bfd *output_bfd ATTRIBUTE_UNUSED; - asection *input_section ATTRIBUTE_UNUSED; - bfd_byte *contents; - bfd_vma offset; - bfd_vma value; - bfd_vma addend; - struct bfd_link_info *info ATTRIBUTE_UNUSED; - asection *sym_sec ATTRIBUTE_UNUSED; - int is_local ATTRIBUTE_UNUSED; +elf32_h8_final_link_relocate (unsigned long r_type, bfd *input_bfd, + bfd *output_bfd ATTRIBUTE_UNUSED, + asection *input_section ATTRIBUTE_UNUSED, + bfd_byte *contents, bfd_vma offset, + bfd_vma value, bfd_vma addend, + struct bfd_link_info *info ATTRIBUTE_UNUSED, + asection *sym_sec ATTRIBUTE_UNUSED, + int is_local ATTRIBUTE_UNUSED) { bfd_byte *hit_data = contents + offset; switch (r_type) { - case R_H8_NONE: return bfd_reloc_ok; @@ -411,22 +397,17 @@ elf32_h8_final_link_relocate (r_type, in /* Relocate an H8 ELF section. */ static bfd_boolean -elf32_h8_relocate_section (output_bfd, info, input_bfd, input_section, - contents, relocs, local_syms, local_sections) - 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; +elf32_h8_relocate_section (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) { Elf_Internal_Shdr *symtab_hdr; struct elf_link_hash_entry **sym_hashes; Elf_Internal_Rela *rel, *relend; - if (info->relocateable) + if (info->relocatable) return TRUE; symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr; @@ -559,8 +540,7 @@ elf32_h8_relocate_section (output_bfd, i Examine that field and return the proper BFD machine type for the object file. */ static unsigned long -elf32_h8_mach (flags) - flagword flags; +elf32_h8_mach (flagword flags) { switch (flags & EF_H8_MACH) { @@ -582,6 +562,9 @@ elf32_h8_mach (flags) case E_H8_MACH_H8300SX: return bfd_mach_h8300sx; + + case E_H8_MACH_H8300SXN: + return bfd_mach_h8300sxn; } } @@ -590,9 +573,8 @@ elf32_h8_mach (flags) into the flags field in the object file. */ static void -elf32_h8_final_write_processing (abfd, linker) - bfd *abfd; - bfd_boolean linker ATTRIBUTE_UNUSED; +elf32_h8_final_write_processing (bfd *abfd, + bfd_boolean linker ATTRIBUTE_UNUSED) { unsigned long val; @@ -622,6 +604,10 @@ elf32_h8_final_write_processing (abfd, l case bfd_mach_h8300sx: val = E_H8_MACH_H8300SX; break; + + case bfd_mach_h8300sxn: + val = E_H8_MACH_H8300SXN; + break; } elf_elfheader (abfd)->e_flags &= ~ (EF_H8_MACH); @@ -632,8 +618,7 @@ elf32_h8_final_write_processing (abfd, l record the encoded machine type found in the ELF flags. */ static bfd_boolean -elf32_h8_object_p (abfd) - bfd *abfd; +elf32_h8_object_p (bfd *abfd) { bfd_default_set_arch_mach (abfd, bfd_arch_h8300, elf32_h8_mach (elf_elfheader (abfd)->e_flags)); @@ -645,9 +630,7 @@ elf32_h8_object_p (abfd) time is the architecture/machine information. */ static bfd_boolean -elf32_h8_merge_private_bfd_data (ibfd, obfd) - bfd *ibfd; - bfd *obfd; +elf32_h8_merge_private_bfd_data (bfd *ibfd, bfd *obfd) { if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour || bfd_get_flavour (obfd) != bfd_target_elf_flavour) @@ -682,11 +665,8 @@ elf32_h8_merge_private_bfd_data (ibfd, o mov.[bwl]:24/32 -> mov.[bwl]:16 2 bytes */ static bfd_boolean -elf32_h8_relax_section (abfd, sec, link_info, again) - bfd *abfd; - asection *sec; - struct bfd_link_info *link_info; - bfd_boolean *again; +elf32_h8_relax_section (bfd *abfd, asection *sec, + struct bfd_link_info *link_info, bfd_boolean *again) { Elf_Internal_Shdr *symtab_hdr; Elf_Internal_Rela *internal_relocs; @@ -699,10 +679,10 @@ elf32_h8_relax_section (abfd, sec, link_ /* Assume nothing changes. */ *again = FALSE; - /* We don't have to do anything for a relocateable link, if + /* We don't have to do anything for a relocatable link, if this section does not have relocs, or if this is not a code section. */ - if (link_info->relocateable + if (link_info->relocatable || (sec->flags & SEC_RELOC) == 0 || sec->reloc_count == 0 || (sec->flags & SEC_CODE) == 0) @@ -1024,18 +1004,10 @@ elf32_h8_relax_section (abfd, sec, link_ become an 8 bit absolute address if its in the right range. */ case R_H8_DIR16A8: { - bfd_vma value = symval + irel->r_addend; + bfd_vma value; - if ((bfd_get_mach (abfd) == bfd_mach_h8300 - && value >= 0xff00 - && value <= 0xffff) - || ((bfd_get_mach (abfd) == bfd_mach_h8300h - /* FIXME: h8300hn? */ - || bfd_get_mach (abfd) == bfd_mach_h8300s - /* FIXME: h8300sn? */ - || bfd_get_mach (abfd) == bfd_mach_h8300sx) - && value >= 0xffff00 - && value <= 0xffffff)) + value = bfd_h8300_pad_address (abfd, symval + irel->r_addend); + if (value >= 0xffffff00u) { unsigned char code; @@ -1069,6 +1041,9 @@ elf32_h8_relax_section (abfd, sec, link_ irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info), R_H8_DIR8); + /* Move the relocation. */ + irel->r_offset--; + /* Delete two bytes of data. */ if (!elf32_h8_relax_delete_bytes (abfd, sec, irel->r_offset + 1, 2)) @@ -1085,20 +1060,11 @@ elf32_h8_relax_section (abfd, sec, link_ become an 8 bit absolute address if its in the right range. */ case R_H8_DIR24A8: { - bfd_vma value = symval + irel->r_addend; + bfd_vma value; - if ((bfd_get_mach (abfd) == bfd_mach_h8300 - && value >= 0xff00 - && value <= 0xffff) - || ((bfd_get_mach (abfd) == bfd_mach_h8300h - /* FIXME: h8300hn? */ - || bfd_get_mach (abfd) == bfd_mach_h8300s - /* FIXME: h8300sn? */ - || bfd_get_mach (abfd) == bfd_mach_h8300sx) - && value >= 0xffff00 - && value <= 0xffffff)) + value = bfd_h8300_pad_address (abfd, symval + irel->r_addend); + if (value >= 0xffffff00u) { - bfd_boolean skip = FALSE; unsigned char code; /* Note that we've changed the relocs, section contents, @@ -1118,37 +1084,32 @@ elf32_h8_relax_section (abfd, sec, link_ switch (code & 0xf0) { - case 0x00: + case 0x20: bfd_put_8 (abfd, (code & 0xf) | 0x20, contents + irel->r_offset - 2); break; - case 0x80: + case 0xa0: bfd_put_8 (abfd, (code & 0xf) | 0x30, contents + irel->r_offset - 2); break; - case 0x20: - case 0xa0: - /* Skip 32bit versions. */ - skip = TRUE; - break; default: abort (); } - if (skip) - break; - /* Fix the relocation's type. */ irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info), R_H8_DIR8); + irel->r_offset--; /* Delete two bytes of data. */ - if (!elf32_h8_relax_delete_bytes (abfd, sec, irel->r_offset, 2)) + if (!elf32_h8_relax_delete_bytes (abfd, sec, + irel->r_offset + 1, 4)) goto error_return; /* That will change things, so, we should relax again. Note that this is not required, and it may be slow. */ *again = TRUE; + break; } } @@ -1158,9 +1119,10 @@ elf32_h8_relax_section (abfd, sec, link_ become a 16bit absoulte address if it is in the right range. */ case R_H8_DIR32A16: { - bfd_vma value = symval + irel->r_addend; + bfd_vma value; - if (value <= 0x7fff || value >= 0xff8000) + value = bfd_h8300_pad_address (abfd, symval + irel->r_addend); + if (value <= 0x7fff || value >= 0xffff8000u) { unsigned char code; @@ -1180,7 +1142,7 @@ elf32_h8_relax_section (abfd, sec, link_ /* Fix the relocation's type. */ irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info), - R_H8_DIR16A8); + R_H8_DIR16); /* Delete two bytes of data. */ if (!elf32_h8_relax_delete_bytes (abfd, sec, @@ -1242,11 +1204,7 @@ elf32_h8_relax_section (abfd, sec, link_ /* Delete some bytes from a section while relaxing. */ static bfd_boolean -elf32_h8_relax_delete_bytes (abfd, sec, addr, count) - bfd *abfd; - asection *sec; - bfd_vma addr; - int count; +elf32_h8_relax_delete_bytes (bfd *abfd, asection *sec, bfd_vma addr, int count) { Elf_Internal_Shdr *symtab_hdr; unsigned int sec_shndx; @@ -1323,10 +1281,7 @@ elf32_h8_relax_delete_bytes (abfd, sec, /* Return TRUE if a symbol exists at the given address, else return FALSE. */ static bfd_boolean -elf32_h8_symbol_address_p (abfd, sec, addr) - bfd *abfd; - asection *sec; - bfd_vma addr; +elf32_h8_symbol_address_p (bfd *abfd, asection *sec, bfd_vma addr) { Elf_Internal_Shdr *symtab_hdr; unsigned int sec_shndx; @@ -1370,14 +1325,12 @@ elf32_h8_symbol_address_p (abfd, sec, ad which uses elf32_h8_relocate_section. */ static bfd_byte * -elf32_h8_get_relocated_section_contents (output_bfd, link_info, link_order, - data, relocateable, symbols) - bfd *output_bfd; - struct bfd_link_info *link_info; - struct bfd_link_order *link_order; - bfd_byte *data; - bfd_boolean relocateable; - asymbol **symbols; +elf32_h8_get_relocated_section_contents (bfd *output_bfd, + struct bfd_link_info *link_info, + struct bfd_link_order *link_order, + bfd_byte *data, + bfd_boolean relocatable, + asymbol **symbols) { Elf_Internal_Shdr *symtab_hdr; asection *input_section = link_order->u.indirect.section; @@ -1388,11 +1341,11 @@ elf32_h8_get_relocated_section_contents /* We only need to handle the case of relaxing, or of having a particular set of section contents, specially. */ - if (relocateable + if (relocatable || elf_section_data (input_section)->this_hdr.contents == NULL) return bfd_generic_get_relocated_section_contents (output_bfd, link_info, link_order, data, - relocateable, + relocatable, symbols); symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr; diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf32-hppa.c binutils-2.14.90.0.5/bfd/elf32-hppa.c --- binutils-2.14.90.0.4.1/bfd/elf32-hppa.c 2003-05-15 13:42:24.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/elf32-hppa.c 2003-07-23 08:08:08.000000000 -0700 @@ -1214,7 +1214,7 @@ elf32_hppa_check_relocs (abfd, info, sec asection *sreloc; asection *stubreloc; - if (info->relocateable) + if (info->relocatable) return TRUE; htab = hppa_link_hash_table (info); @@ -3593,7 +3593,7 @@ elf32_hppa_relocate_section (output_bfd, Elf_Internal_Rela *rel; Elf_Internal_Rela *relend; - if (info->relocateable) + if (info->relocatable) return TRUE; symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr; @@ -3666,16 +3666,11 @@ elf32_hppa_relocate_section (output_bfd, } else if (h->elf.root.type == bfd_link_hash_undefweak) ; - else if (info->shared && !info->no_undefined + else if (info->shared + && !info->no_undefined && ELF_ST_VISIBILITY (h->elf.other) == STV_DEFAULT && h->elf.type != STT_PARISC_MILLI) - { - if (!((*info->callbacks->undefined_symbol) - (info, h->elf.root.root.string, input_bfd, - input_section, rel->r_offset, FALSE))) - return FALSE; - warned_undef = TRUE; - } + ; else { if (!((*info->callbacks->undefined_symbol) diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf32-i370.c binutils-2.14.90.0.5/bfd/elf32-i370.c --- binutils-2.14.90.0.4.1/bfd/elf32-i370.c 2002-12-16 12:22:51.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/elf32-i370.c 2003-07-23 08:08:08.000000000 -0700 @@ -1,5 +1,5 @@ /* i370-specific support for 32-bit ELF - Copyright 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2002 + Copyright 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Written by Ian Lance Taylor, Cygnus Support. Hacked by Linas Vepstas for i370 linas@linas.org @@ -290,11 +290,6 @@ static bfd_boolean i370_elf_section_from PARAMS ((bfd *, Elf_Internal_Shdr *, const char *)); static bfd_boolean i370_elf_fake_sections PARAMS ((bfd *, Elf_Internal_Shdr *, asection *)); -#if 0 -static elf_linker_section_t *i370_elf_create_linker_section - PARAMS ((bfd *abfd, struct bfd_link_info *info, - enum elf_linker_section_enum)); -#endif static bfd_boolean i370_elf_check_relocs PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); @@ -434,84 +429,6 @@ i370_elf_fake_sections (abfd, shdr, asec return TRUE; } -#if 0 -/* Create a special linker section */ -/* XXX hack alert bogus This routine is mostly all junk and almost - * certainly does the wrong thing. Its here simply because it does - * just enough to allow glibc-2.1 ld.so to compile & link. - */ - -static elf_linker_section_t * -i370_elf_create_linker_section (abfd, info, which) - bfd *abfd; - struct bfd_link_info *info; - enum elf_linker_section_enum which; -{ - bfd *dynobj = elf_hash_table (info)->dynobj; - elf_linker_section_t *lsect; - - /* Record the first bfd section that needs the special section */ - if (!dynobj) - dynobj = elf_hash_table (info)->dynobj = abfd; - - /* If this is the first time, create the section */ - lsect = elf_linker_section (dynobj, which); - if (!lsect) - { - elf_linker_section_t defaults; - static elf_linker_section_t zero_section; - - defaults = zero_section; - defaults.which = which; - defaults.hole_written_p = FALSE; - defaults.alignment = 2; - - /* Both of these sections are (technically) created by the user - putting data in them, so they shouldn't be marked - SEC_LINKER_CREATED. - - The linker creates them so it has somewhere to attach their - respective symbols. In fact, if they were empty it would - be OK to leave the symbol set to 0 (or any random number), because - the appropriate register should never be used. */ - defaults.flags = (SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS - | SEC_IN_MEMORY); - - switch (which) - { - default: - (*_bfd_error_handler) ("%s: Unknown special linker type %d", - bfd_archive_filename (abfd), - (int) which); - - bfd_set_error (bfd_error_bad_value); - return (elf_linker_section_t *)0; - - case LINKER_SECTION_SDATA: /* .sdata/.sbss section */ - defaults.name = ".sdata"; - defaults.rel_name = ".rela.sdata"; - defaults.bss_name = ".sbss"; - defaults.sym_name = "_SDA_BASE_"; - defaults.sym_offset = 32768; - break; - - case LINKER_SECTION_SDATA2: /* .sdata2/.sbss2 section */ - defaults.name = ".sdata2"; - defaults.rel_name = ".rela.sdata2"; - defaults.bss_name = ".sbss2"; - defaults.sym_name = "_SDA2_BASE_"; - defaults.sym_offset = 32768; - defaults.flags |= SEC_READONLY; - break; - } - - lsect = _bfd_elf_create_linker_section (abfd, info, which, &defaults); - } - - return lsect; -} -#endif - /* We have to create .dynsbss and .rela.sbss here so that they get mapped to output sections (just like _bfd_elf_create_dynamic_sections has to create .dynbss and .rela.bss). */ @@ -971,7 +888,7 @@ i370_elf_check_relocs (abfd, info, sec, bfd_vma *local_got_offsets; asection *sreloc; - if (info->relocateable) + if (info->relocatable) return TRUE; #ifdef DEBUG @@ -1200,7 +1117,7 @@ i370_elf_finish_dynamic_sections (output This function is responsible for adjust the section contents as necessary, and (if using Rela relocs and generating a - relocateable output file) adjusting the reloc addend as + relocatable output file) adjusting the reloc addend as necessary. This function does not have to worry about setting the reloc @@ -1214,7 +1131,7 @@ i370_elf_finish_dynamic_sections (output The global hash table entry for the global symbols can be found via elf_sym_hashes (input_bfd). - When generating relocateable output, this function must handle + When generating relocatable output, this function must handle STB_LOCAL/STT_SECTION symbols specially. The output symbol is going to be the section symbol corresponding to the output section, which means that the addend must be adjusted @@ -1241,7 +1158,7 @@ i370_elf_relocate_section (output_bfd, i bfd_vma *local_got_offsets; bfd_boolean ret = TRUE; - if (info->relocateable) + if (info->relocatable) return TRUE; #ifdef DEBUG @@ -1249,7 +1166,7 @@ i370_elf_relocate_section (output_bfd, i bfd_archive_filename (input_bfd), bfd_section_name(input_bfd, input_section), (long) input_section->reloc_count, - (info->relocateable) ? " (relocatable)" : ""); + (info->relocatable) ? " (relocatable)" : ""); #endif if (!i370_elf_howto_table[ R_I370_ADDR31 ]) /* Initialize howto table if needed */ diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf32-i386.c binutils-2.14.90.0.5/bfd/elf32-i386.c --- binutils-2.14.90.0.4.1/bfd/elf32-i386.c 2003-05-23 07:18:52.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/elf32-i386.c 2003-07-23 08:08:08.000000000 -0700 @@ -24,69 +24,8 @@ #include "libbfd.h" #include "elf-bfd.h" -static reloc_howto_type *elf_i386_reloc_type_lookup - PARAMS ((bfd *, bfd_reloc_code_real_type)); -static void elf_i386_info_to_howto_rel - PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); -static bfd_boolean elf_i386_is_local_label_name - PARAMS ((bfd *, const char *)); -static bfd_boolean elf_i386_grok_prstatus - PARAMS ((bfd *abfd, Elf_Internal_Note *note)); -static bfd_boolean elf_i386_grok_psinfo - PARAMS ((bfd *abfd, Elf_Internal_Note *note)); -static struct bfd_hash_entry *link_hash_newfunc - PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); -static struct bfd_link_hash_table *elf_i386_link_hash_table_create - PARAMS ((bfd *)); -static bfd_boolean create_got_section - PARAMS ((bfd *, struct bfd_link_info *)); -static bfd_boolean elf_i386_create_dynamic_sections - PARAMS ((bfd *, struct bfd_link_info *)); -static void elf_i386_copy_indirect_symbol - 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)); - -static bfd_boolean elf_i386_mkobject - PARAMS ((bfd *)); -static bfd_boolean elf_i386_object_p - PARAMS ((bfd *)); -static bfd_boolean elf_i386_check_relocs - PARAMS ((bfd *, struct bfd_link_info *, asection *, - const Elf_Internal_Rela *)); -static asection *elf_i386_gc_mark_hook - PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *, - struct elf_link_hash_entry *, Elf_Internal_Sym *)); -static bfd_boolean elf_i386_gc_sweep_hook - PARAMS ((bfd *, struct bfd_link_info *, asection *, - const Elf_Internal_Rela *)); -static bfd_boolean elf_i386_adjust_dynamic_symbol - PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *)); -static bfd_boolean allocate_dynrelocs - PARAMS ((struct elf_link_hash_entry *, PTR)); -static bfd_boolean readonly_dynrelocs - PARAMS ((struct elf_link_hash_entry *, PTR)); -static bfd_boolean elf_i386_fake_sections - PARAMS ((bfd *, Elf_Internal_Shdr *, asection *)); -static bfd_boolean elf_i386_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 bfd_boolean elf_i386_relocate_section - PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, - Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)); -static bfd_boolean elf_i386_finish_dynamic_symbol - PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *, - Elf_Internal_Sym *)); -static enum elf_reloc_type_class elf_i386_reloc_type_class - PARAMS ((const Elf_Internal_Rela *)); -static bfd_boolean elf_i386_finish_dynamic_sections - PARAMS ((bfd *, struct bfd_link_info *)); - -#define USE_REL 1 /* 386 uses REL relocations instead of RELA. */ +/* 386 uses REL relocations instead of RELA. */ +#define USE_REL 1 #include "elf/i386.h" @@ -130,8 +69,8 @@ static reloc_howto_type elf_howto_table[ R_386_standard counts the number up to this point, and 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_TPOFF - R_386_standard) +#define R_386_standard (R_386_GOTPC + 1) +#define R_386_ext_offset (R_386_TLS_TPOFF - R_386_standard) /* These relocs are a GNU extension. */ HOWTO(R_386_TLS_TPOFF, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, @@ -165,8 +104,8 @@ static reloc_howto_type elf_howto_table[ bfd_elf_generic_reloc, "R_386_PC8", TRUE, 0xff, 0xff, TRUE), -#define R_386_ext ((unsigned int) R_386_PC8 + 1 - R_386_ext_offset) -#define R_386_tls_offset ((unsigned int) R_386_TLS_LDO_32 - R_386_ext) +#define R_386_ext (R_386_PC8 + 1 - R_386_ext_offset) +#define R_386_tls_offset (R_386_TLS_LDO_32 - R_386_ext) /* These are common with Solaris TLS implementation. */ HOWTO(R_386_TLS_LDO_32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_386_TLS_LDO_32", @@ -188,8 +127,8 @@ static reloc_howto_type elf_howto_table[ TRUE, 0xffffffff, 0xffffffff, FALSE), /* Another gap. */ -#define R_386_tls ((unsigned int) R_386_TLS_TPOFF32 + 1 - R_386_tls_offset) -#define R_386_vt_offset ((unsigned int) R_386_GNU_VTINHERIT - R_386_tls) +#define R_386_tls (R_386_TLS_TPOFF32 + 1 - R_386_tls_offset) +#define R_386_vt_offset (R_386_GNU_VTINHERIT - R_386_tls) /* GNU extension to record C++ vtable hierarchy. */ HOWTO (R_386_GNU_VTINHERIT, /* type */ @@ -221,146 +160,144 @@ static reloc_howto_type elf_howto_table[ 0, /* dst_mask */ FALSE) /* pcrel_offset */ -#define R_386_vt ((unsigned int) R_386_GNU_VTENTRY + 1 - R_386_vt_offset) +#define R_386_vt (R_386_GNU_VTENTRY + 1 - R_386_vt_offset) }; #ifdef DEBUG_GEN_RELOC -#define TRACE(str) fprintf (stderr, "i386 bfd reloc lookup %d (%s)\n", code, str) +#define TRACE(str) \ + fprintf (stderr, "i386 bfd reloc lookup %d (%s)\n", code, str) #else #define TRACE(str) #endif static reloc_howto_type * -elf_i386_reloc_type_lookup (abfd, code) - bfd *abfd ATTRIBUTE_UNUSED; - bfd_reloc_code_real_type code; +elf_i386_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED, + bfd_reloc_code_real_type code) { switch (code) { case BFD_RELOC_NONE: TRACE ("BFD_RELOC_NONE"); - return &elf_howto_table[(unsigned int) R_386_NONE ]; + return &elf_howto_table[R_386_NONE]; case BFD_RELOC_32: TRACE ("BFD_RELOC_32"); - return &elf_howto_table[(unsigned int) R_386_32 ]; + return &elf_howto_table[R_386_32]; case BFD_RELOC_CTOR: TRACE ("BFD_RELOC_CTOR"); - return &elf_howto_table[(unsigned int) R_386_32 ]; + return &elf_howto_table[R_386_32]; case BFD_RELOC_32_PCREL: TRACE ("BFD_RELOC_PC32"); - return &elf_howto_table[(unsigned int) R_386_PC32 ]; + return &elf_howto_table[R_386_PC32]; case BFD_RELOC_386_GOT32: TRACE ("BFD_RELOC_386_GOT32"); - return &elf_howto_table[(unsigned int) R_386_GOT32 ]; + return &elf_howto_table[R_386_GOT32]; case BFD_RELOC_386_PLT32: TRACE ("BFD_RELOC_386_PLT32"); - return &elf_howto_table[(unsigned int) R_386_PLT32 ]; + return &elf_howto_table[R_386_PLT32]; case BFD_RELOC_386_COPY: TRACE ("BFD_RELOC_386_COPY"); - return &elf_howto_table[(unsigned int) R_386_COPY ]; + return &elf_howto_table[R_386_COPY]; case BFD_RELOC_386_GLOB_DAT: TRACE ("BFD_RELOC_386_GLOB_DAT"); - return &elf_howto_table[(unsigned int) R_386_GLOB_DAT ]; + return &elf_howto_table[R_386_GLOB_DAT]; case BFD_RELOC_386_JUMP_SLOT: TRACE ("BFD_RELOC_386_JUMP_SLOT"); - return &elf_howto_table[(unsigned int) R_386_JUMP_SLOT ]; + return &elf_howto_table[R_386_JUMP_SLOT]; case BFD_RELOC_386_RELATIVE: TRACE ("BFD_RELOC_386_RELATIVE"); - return &elf_howto_table[(unsigned int) R_386_RELATIVE ]; + return &elf_howto_table[R_386_RELATIVE]; case BFD_RELOC_386_GOTOFF: TRACE ("BFD_RELOC_386_GOTOFF"); - return &elf_howto_table[(unsigned int) R_386_GOTOFF ]; + return &elf_howto_table[R_386_GOTOFF]; case BFD_RELOC_386_GOTPC: TRACE ("BFD_RELOC_386_GOTPC"); - return &elf_howto_table[(unsigned int) R_386_GOTPC ]; + return &elf_howto_table[R_386_GOTPC]; /* 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]; + return &elf_howto_table[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]; + return &elf_howto_table[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]; + return &elf_howto_table[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]; + return &elf_howto_table[R_386_TLS_LE - R_386_ext_offset]; case BFD_RELOC_386_TLS_GD: TRACE ("BFD_RELOC_386_TLS_GD"); - return &elf_howto_table[(unsigned int) R_386_TLS_GD - R_386_ext_offset]; + return &elf_howto_table[R_386_TLS_GD - R_386_ext_offset]; case BFD_RELOC_386_TLS_LDM: TRACE ("BFD_RELOC_386_TLS_LDM"); - return &elf_howto_table[(unsigned int) R_386_TLS_LDM - R_386_ext_offset]; + return &elf_howto_table[R_386_TLS_LDM - R_386_ext_offset]; case BFD_RELOC_16: TRACE ("BFD_RELOC_16"); - return &elf_howto_table[(unsigned int) R_386_16 - R_386_ext_offset]; + return &elf_howto_table[R_386_16 - R_386_ext_offset]; case BFD_RELOC_16_PCREL: TRACE ("BFD_RELOC_16_PCREL"); - return &elf_howto_table[(unsigned int) R_386_PC16 - R_386_ext_offset]; + return &elf_howto_table[R_386_PC16 - R_386_ext_offset]; case BFD_RELOC_8: TRACE ("BFD_RELOC_8"); - return &elf_howto_table[(unsigned int) R_386_8 - R_386_ext_offset]; + return &elf_howto_table[R_386_8 - R_386_ext_offset]; case BFD_RELOC_8_PCREL: TRACE ("BFD_RELOC_8_PCREL"); - return &elf_howto_table[(unsigned int) R_386_PC8 - R_386_ext_offset]; + return &elf_howto_table[R_386_PC8 - R_386_ext_offset]; /* Common with Sun TLS implementation. */ case BFD_RELOC_386_TLS_LDO_32: TRACE ("BFD_RELOC_386_TLS_LDO_32"); - return &elf_howto_table[(unsigned int) R_386_TLS_LDO_32 - R_386_tls_offset]; + return &elf_howto_table[R_386_TLS_LDO_32 - R_386_tls_offset]; case BFD_RELOC_386_TLS_IE_32: TRACE ("BFD_RELOC_386_TLS_IE_32"); - return &elf_howto_table[(unsigned int) R_386_TLS_IE_32 - R_386_tls_offset]; + return &elf_howto_table[R_386_TLS_IE_32 - R_386_tls_offset]; case BFD_RELOC_386_TLS_LE_32: TRACE ("BFD_RELOC_386_TLS_LE_32"); - return &elf_howto_table[(unsigned int) R_386_TLS_LE_32 - R_386_tls_offset]; + return &elf_howto_table[R_386_TLS_LE_32 - R_386_tls_offset]; case BFD_RELOC_386_TLS_DTPMOD32: TRACE ("BFD_RELOC_386_TLS_DTPMOD32"); - return &elf_howto_table[(unsigned int) R_386_TLS_DTPMOD32 - R_386_tls_offset]; + return &elf_howto_table[R_386_TLS_DTPMOD32 - R_386_tls_offset]; case BFD_RELOC_386_TLS_DTPOFF32: TRACE ("BFD_RELOC_386_TLS_DTPOFF32"); - return &elf_howto_table[(unsigned int) R_386_TLS_DTPOFF32 - R_386_tls_offset]; + return &elf_howto_table[R_386_TLS_DTPOFF32 - R_386_tls_offset]; case BFD_RELOC_386_TLS_TPOFF32: TRACE ("BFD_RELOC_386_TLS_TPOFF32"); - return &elf_howto_table[(unsigned int) R_386_TLS_TPOFF32 - R_386_tls_offset]; + return &elf_howto_table[R_386_TLS_TPOFF32 - R_386_tls_offset]; case BFD_RELOC_VTABLE_INHERIT: TRACE ("BFD_RELOC_VTABLE_INHERIT"); - return &elf_howto_table[(unsigned int) R_386_GNU_VTINHERIT - - R_386_vt_offset]; + return &elf_howto_table[R_386_GNU_VTINHERIT - R_386_vt_offset]; case BFD_RELOC_VTABLE_ENTRY: TRACE ("BFD_RELOC_VTABLE_ENTRY"); - return &elf_howto_table[(unsigned int) R_386_GNU_VTENTRY - - R_386_vt_offset]; + return &elf_howto_table[R_386_GNU_VTENTRY - R_386_vt_offset]; default: break; @@ -371,10 +308,9 @@ elf_i386_reloc_type_lookup (abfd, code) } static void -elf_i386_info_to_howto_rel (abfd, cache_ptr, dst) - bfd *abfd ATTRIBUTE_UNUSED; - arelent *cache_ptr; - Elf_Internal_Rela *dst; +elf_i386_info_to_howto_rel (bfd *abfd ATTRIBUTE_UNUSED, + arelent *cache_ptr, + Elf_Internal_Rela *dst) { unsigned int r_type = ELF32_R_TYPE (dst->r_info); unsigned int indx; @@ -389,7 +325,7 @@ elf_i386_info_to_howto_rel (abfd, cache_ { (*_bfd_error_handler) (_("%s: invalid relocation type %d"), bfd_archive_filename (abfd), (int) r_type); - indx = (unsigned int) R_386_NONE; + indx = R_386_NONE; } cache_ptr->howto = &elf_howto_table[indx]; } @@ -401,9 +337,7 @@ elf_i386_info_to_howto_rel (abfd, cache_ _bfd_elf_is_local_label_name. */ static bfd_boolean -elf_i386_is_local_label_name (abfd, name) - bfd *abfd; - const char *name; +elf_i386_is_local_label_name (bfd *abfd, const char *name) { if (name[0] == '.' && name[1] == 'X') return TRUE; @@ -413,9 +347,7 @@ elf_i386_is_local_label_name (abfd, name /* Support for core dump NOTE sections. */ static bfd_boolean -elf_i386_grok_prstatus (abfd, note) - bfd *abfd; - Elf_Internal_Note *note; +elf_i386_grok_prstatus (bfd *abfd, Elf_Internal_Note *note) { int offset; size_t raw_size; @@ -445,9 +377,7 @@ elf_i386_grok_prstatus (abfd, note) } static bfd_boolean -elf_i386_grok_psinfo (abfd, note) - bfd *abfd; - Elf_Internal_Note *note; +elf_i386_grok_psinfo (bfd *abfd, Elf_Internal_Note *note) { switch (note->descsz) { @@ -456,9 +386,9 @@ elf_i386_grok_psinfo (abfd, note) case 124: /* Linux/i386 elf_prpsinfo */ elf_tdata (abfd)->core_program - = _bfd_elfcore_strndup (abfd, note->descdata + 28, 16); + = _bfd_elfcore_strndup (abfd, note->descdata + 28, 16); elf_tdata (abfd)->core_command - = _bfd_elfcore_strndup (abfd, note->descdata + 44, 80); + = _bfd_elfcore_strndup (abfd, note->descdata + 44, 80); } /* Note that for some reason, a spurious space is tacked @@ -607,8 +537,7 @@ struct elf_i386_obj_tdata (elf_i386_tdata (abfd)->local_got_tls_type) static bfd_boolean -elf_i386_mkobject (abfd) - bfd *abfd; +elf_i386_mkobject (bfd *abfd) { bfd_size_type amt = sizeof (struct elf_i386_obj_tdata); abfd->tdata.any = bfd_zalloc (abfd, amt); @@ -618,8 +547,7 @@ elf_i386_mkobject (abfd) } static bfd_boolean -elf_i386_object_p (abfd) - bfd *abfd; +elf_i386_object_p (bfd *abfd) { /* Allocate our special target data. */ struct elf_i386_obj_tdata *new_tdata; @@ -664,10 +592,9 @@ struct elf_i386_link_hash_table /* Create an entry in an i386 ELF linker hash table. */ static struct bfd_hash_entry * -link_hash_newfunc (entry, table, string) - struct bfd_hash_entry *entry; - struct bfd_hash_table *table; - const char *string; +link_hash_newfunc (struct bfd_hash_entry *entry, + struct bfd_hash_table *table, + const char *string) { /* Allocate the structure if it has not already been allocated by a subclass. */ @@ -696,13 +623,12 @@ link_hash_newfunc (entry, table, string) /* Create an i386 ELF linker hash table. */ static struct bfd_link_hash_table * -elf_i386_link_hash_table_create (abfd) - bfd *abfd; +elf_i386_link_hash_table_create (bfd *abfd) { struct elf_i386_link_hash_table *ret; bfd_size_type amt = sizeof (struct elf_i386_link_hash_table); - ret = (struct elf_i386_link_hash_table *) bfd_malloc (amt); + ret = bfd_malloc (amt); if (ret == NULL) return NULL; @@ -729,9 +655,7 @@ elf_i386_link_hash_table_create (abfd) shortcuts to them in our hash table. */ static bfd_boolean -create_got_section (dynobj, info) - bfd *dynobj; - struct bfd_link_info *info; +create_got_section (bfd *dynobj, struct bfd_link_info *info) { struct elf_i386_link_hash_table *htab; @@ -760,9 +684,7 @@ create_got_section (dynobj, info) hash table. */ static bfd_boolean -elf_i386_create_dynamic_sections (dynobj, info) - bfd *dynobj; - struct bfd_link_info *info; +elf_i386_create_dynamic_sections (bfd *dynobj, struct bfd_link_info *info) { struct elf_i386_link_hash_table *htab; @@ -789,9 +711,9 @@ 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 (bed, dir, ind) - struct elf_backend_data *bed; - struct elf_link_hash_entry *dir, *ind; +elf_i386_copy_indirect_symbol (struct elf_backend_data *bed, + struct elf_link_hash_entry *dir, + struct elf_link_hash_entry *ind) { struct elf_i386_link_hash_entry *edir, *eind; @@ -854,10 +776,7 @@ elf_i386_copy_indirect_symbol (bed, dir, } static int -elf_i386_tls_transition (info, r_type, is_local) - struct bfd_link_info *info; - int r_type; - int is_local; +elf_i386_tls_transition (struct bfd_link_info *info, int r_type, int is_local) { if (info->shared) return r_type; @@ -886,11 +805,10 @@ elf_i386_tls_transition (info, r_type, i table, and dynamic reloc sections. */ static bfd_boolean -elf_i386_check_relocs (abfd, info, sec, relocs) - bfd *abfd; - struct bfd_link_info *info; - asection *sec; - const Elf_Internal_Rela *relocs; +elf_i386_check_relocs (bfd *abfd, + struct bfd_link_info *info, + asection *sec, + const Elf_Internal_Rela *relocs) { struct elf_i386_link_hash_table *htab; Elf_Internal_Shdr *symtab_hdr; @@ -899,7 +817,7 @@ elf_i386_check_relocs (abfd, info, sec, const Elf_Internal_Rela *rel_end; asection *sreloc; - if (info->relocateable) + if (info->relocatable) return TRUE; htab = elf_i386_hash_table (info); @@ -1004,8 +922,7 @@ elf_i386_check_relocs (abfd, info, sec, size = symtab_hdr->sh_info; size *= (sizeof (bfd_signed_vma) + sizeof(char)); - local_got_refcounts = ((bfd_signed_vma *) - bfd_zalloc (abfd, size)); + local_got_refcounts = bfd_zalloc (abfd, size); if (local_got_refcounts == NULL) return FALSE; elf_local_got_refcounts (abfd) = local_got_refcounts; @@ -1029,7 +946,8 @@ elf_i386_check_relocs (abfd, info, sec, else { (*_bfd_error_handler) - (_("%s: `%s' accessed both as normal and thread local symbol"), + (_("%s: `%s' accessed both as normal and " + "thread local symbol"), bfd_archive_filename (abfd), h ? h->root.root.string : ""); return FALSE; @@ -1195,8 +1113,7 @@ elf_i386_check_relocs (abfd, info, sec, if (p == NULL || p->sec != sec) { bfd_size_type amt = sizeof *p; - p = ((struct elf_i386_dyn_relocs *) - bfd_alloc (htab->elf.dynobj, amt)); + p = bfd_alloc (htab->elf.dynobj, amt); if (p == NULL) return FALSE; p->next = *head; @@ -1238,12 +1155,11 @@ elf_i386_check_relocs (abfd, info, sec, relocation. */ static asection * -elf_i386_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; - Elf_Internal_Sym *sym; +elf_i386_gc_mark_hook (asection *sec, + struct bfd_link_info *info ATTRIBUTE_UNUSED, + Elf_Internal_Rela *rel, + struct elf_link_hash_entry *h, + Elf_Internal_Sym *sym) { if (h != NULL) { @@ -1277,11 +1193,10 @@ elf_i386_gc_mark_hook (sec, info, rel, h /* Update the got entry reference counts for the section being removed. */ static bfd_boolean -elf_i386_gc_sweep_hook (abfd, info, sec, relocs) - bfd *abfd; - struct bfd_link_info *info; - asection *sec; - const Elf_Internal_Rela *relocs; +elf_i386_gc_sweep_hook (bfd *abfd, + struct bfd_link_info *info, + asection *sec, + const Elf_Internal_Rela *relocs) { Elf_Internal_Shdr *symtab_hdr; struct elf_link_hash_entry **sym_hashes; @@ -1375,9 +1290,8 @@ elf_i386_gc_sweep_hook (abfd, info, sec, understand. */ static bfd_boolean -elf_i386_adjust_dynamic_symbol (info, h) - struct bfd_link_info *info; - struct elf_link_hash_entry *h; +elf_i386_adjust_dynamic_symbol (struct bfd_link_info *info, + struct elf_link_hash_entry *h) { struct elf_i386_link_hash_table *htab; asection *s; @@ -1534,9 +1448,7 @@ elf_i386_adjust_dynamic_symbol (info, h) dynamic relocs. */ static bfd_boolean -allocate_dynrelocs (h, inf) - struct elf_link_hash_entry *h; - PTR inf; +allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf) { struct bfd_link_info *info; struct elf_i386_link_hash_table *htab; @@ -1748,9 +1660,7 @@ allocate_dynrelocs (h, inf) /* Find any dynamic relocs that apply to read-only sections. */ static bfd_boolean -readonly_dynrelocs (h, inf) - struct elf_link_hash_entry *h; - PTR inf; +readonly_dynrelocs (struct elf_link_hash_entry *h, void *inf) { struct elf_i386_link_hash_entry *eh; struct elf_i386_dyn_relocs *p; @@ -1779,9 +1689,8 @@ readonly_dynrelocs (h, inf) /* Set the sizes of the dynamic sections. */ static bfd_boolean -elf_i386_size_dynamic_sections (output_bfd, info) - bfd *output_bfd ATTRIBUTE_UNUSED; - struct bfd_link_info *info; +elf_i386_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, + struct bfd_link_info *info) { struct elf_i386_link_hash_table *htab; bfd *dynobj; @@ -1797,7 +1706,7 @@ elf_i386_size_dynamic_sections (output_b if (htab->elf.dynamic_sections_created) { /* Set the contents of the .interp section to the interpreter. */ - if (! info->shared) + if (info->executable) { s = bfd_get_section_by_name (dynobj, ".interp"); if (s == NULL) @@ -1948,7 +1857,7 @@ elf_i386_size_dynamic_sections (output_b section's contents are written out. This should not happen, but this way if it does, we get a R_386_NONE reloc instead of garbage. */ - s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->_raw_size); + s->contents = bfd_zalloc (dynobj, s->_raw_size); if (s->contents == NULL) return FALSE; } @@ -1961,9 +1870,9 @@ elf_i386_size_dynamic_sections (output_b the .dynamic section. The DT_DEBUG entry is filled in by the dynamic linker and used by the debugger. */ #define add_dynamic_entry(TAG, VAL) \ - bfd_elf32_add_dynamic_entry (info, (bfd_vma) (TAG), (bfd_vma) (VAL)) + bfd_elf32_add_dynamic_entry (info, (TAG), (VAL)) - if (! info->shared) + if (info->executable) { if (!add_dynamic_entry (DT_DEBUG, 0)) return FALSE; @@ -2007,10 +1916,9 @@ elf_i386_size_dynamic_sections (output_b section name, which is a hack, but ought to work. */ static bfd_boolean -elf_i386_fake_sections (abfd, hdr, sec) - bfd *abfd ATTRIBUTE_UNUSED; - Elf_Internal_Shdr *hdr; - asection *sec; +elf_i386_fake_sections (bfd *abfd ATTRIBUTE_UNUSED, + Elf_Internal_Shdr *hdr, + asection *sec) { register const char *name; @@ -2043,8 +1951,7 @@ elf_i386_fake_sections (abfd, hdr, sec) This is PT_TLS segment p_vaddr. */ static bfd_vma -dtpoff_base (info) - struct bfd_link_info *info; +dtpoff_base (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) @@ -2056,9 +1963,7 @@ dtpoff_base (info) if STT_TLS virtual address is ADDRESS. */ static bfd_vma -tpoff (info, address) - struct bfd_link_info *info; - bfd_vma address; +tpoff (struct bfd_link_info *info, bfd_vma address) { struct elf_link_tls_segment *tls_segment = elf_hash_table (info)->tls_segment; @@ -2073,16 +1978,14 @@ tpoff (info, address) /* Relocate an i386 ELF section. */ static bfd_boolean -elf_i386_relocate_section (output_bfd, info, input_bfd, input_section, - contents, relocs, local_syms, local_sections) - 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; +elf_i386_relocate_section (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) { struct elf_i386_link_hash_table *htab; Elf_Internal_Shdr *symtab_hdr; @@ -2114,11 +2017,11 @@ elf_i386_relocate_section (output_bfd, i int tls_type; r_type = ELF32_R_TYPE (rel->r_info); - if (r_type == (int) R_386_GNU_VTINHERIT - || r_type == (int) R_386_GNU_VTENTRY) + if (r_type == R_386_GNU_VTINHERIT + || r_type == R_386_GNU_VTENTRY) continue; - if ((indx = (unsigned) r_type) >= R_386_standard + if ((indx = r_type) >= R_386_standard && ((indx = r_type - R_386_ext_offset) - R_386_standard >= R_386_ext - R_386_standard) && ((indx = r_type - R_386_tls_offset) - R_386_ext @@ -2131,7 +2034,7 @@ elf_i386_relocate_section (output_bfd, i r_symndx = ELF32_R_SYM (rel->r_info); - if (info->relocateable) + if (info->relocatable) { bfd_vma val; bfd_byte *where; @@ -2274,7 +2177,7 @@ elf_i386_relocate_section (output_bfd, i } else if (h->root.type == bfd_link_hash_undefweak) ; - else if (info->shared + else if (!info->executable && !info->no_undefined && ELF_ST_VISIBILITY (h->other) == STV_DEFAULT) ; @@ -2435,8 +2338,7 @@ elf_i386_relocate_section (output_bfd, i || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT || h->root.type != bfd_link_hash_undefweak) && (r_type != R_386_PC32 - || (h != NULL - && !SYMBOL_CALLS_LOCAL (info, h)))) + || !SYMBOL_CALLS_LOCAL (info, h))) || (ELIMINATE_COPY_RELOCS && !info->shared && h != NULL @@ -2633,12 +2535,14 @@ elf_i386_relocate_section (output_bfd, i if (val == 0xa1) { /* movl foo, %eax. */ - bfd_put_8 (output_bfd, 0xb8, contents + rel->r_offset - 1); + 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); + type = bfd_get_8 (input_bfd, + contents + rel->r_offset - 2); switch (type) { case 0x8b: @@ -3010,7 +2914,7 @@ elf_i386_relocate_section (output_bfd, i r = _bfd_final_link_relocate (howto, input_bfd, input_section, contents, rel->r_offset, - relocation, (bfd_vma) 0); + relocation, 0); if (r != bfd_reloc_ok) { @@ -3032,7 +2936,7 @@ elf_i386_relocate_section (output_bfd, i if (r == bfd_reloc_overflow) { if (! ((*info->callbacks->reloc_overflow) - (info, name, howto->name, (bfd_vma) 0, + (info, name, howto->name, 0, input_bfd, input_section, rel->r_offset))) return FALSE; } @@ -3055,11 +2959,10 @@ elf_i386_relocate_section (output_bfd, i dynamic sections here. */ static bfd_boolean -elf_i386_finish_dynamic_symbol (output_bfd, info, h, sym) - bfd *output_bfd; - struct bfd_link_info *info; - struct elf_link_hash_entry *h; - Elf_Internal_Sym *sym; +elf_i386_finish_dynamic_symbol (bfd *output_bfd, + struct bfd_link_info *info, + struct elf_link_hash_entry *h, + Elf_Internal_Sym *sym) { struct elf_i386_link_hash_table *htab; @@ -3218,10 +3121,9 @@ elf_i386_finish_dynamic_symbol (output_b dynamic linker, before writing them out. */ static enum elf_reloc_type_class -elf_i386_reloc_type_class (rela) - const Elf_Internal_Rela *rela; +elf_i386_reloc_type_class (const Elf_Internal_Rela *rela) { - switch ((int) ELF32_R_TYPE (rela->r_info)) + switch (ELF32_R_TYPE (rela->r_info)) { case R_386_RELATIVE: return reloc_class_relative; @@ -3237,9 +3139,8 @@ elf_i386_reloc_type_class (rela) /* Finish up the dynamic sections. */ static bfd_boolean -elf_i386_finish_dynamic_sections (output_bfd, info) - bfd *output_bfd; - struct bfd_link_info *info; +elf_i386_finish_dynamic_sections (bfd *output_bfd, + struct bfd_link_info *info) { struct elf_i386_link_hash_table *htab; bfd *dynobj; @@ -3348,11 +3249,11 @@ elf_i386_finish_dynamic_sections (output if (htab->sgotplt->_raw_size > 0) { bfd_put_32 (output_bfd, - (sdyn == NULL ? (bfd_vma) 0 + (sdyn == NULL ? 0 : sdyn->output_section->vma + sdyn->output_offset), htab->sgotplt->contents); - bfd_put_32 (output_bfd, (bfd_vma) 0, htab->sgotplt->contents + 4); - bfd_put_32 (output_bfd, (bfd_vma) 0, htab->sgotplt->contents + 8); + bfd_put_32 (output_bfd, 0, htab->sgotplt->contents + 4); + bfd_put_32 (output_bfd, 0, htab->sgotplt->contents + 8); } elf_section_data (htab->sgotplt->output_section)->this_hdr.sh_entsize = 4; @@ -3413,13 +3314,9 @@ elf_i386_finish_dynamic_sections (output "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_i386_post_process_headers (bfd *abfd, + struct bfd_link_info *info ATTRIBUTE_UNUSED) { Elf_Internal_Ehdr *i_ehdrp; diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf32-i860.c binutils-2.14.90.0.5/bfd/elf32-i860.c --- binutils-2.14.90.0.4.1/bfd/elf32-i860.c 2003-05-23 07:18:52.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/elf32-i860.c 2003-07-23 08:08:08.000000000 -0700 @@ -1,5 +1,5 @@ /* Intel i860 specific support for 32-bit ELF. - Copyright 1993, 1995, 1999, 2000, 2001, 2002 + Copyright 1993, 1995, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Full i860 support contributed by Jason Eckhardt . @@ -840,7 +840,7 @@ i860_final_link_relocate (howto, input_b zero. This function is responsible for adjusting the section contents as - necessary, and (if using Rela relocs and generating a relocateable + necessary, and (if using Rela relocs and generating a relocatable output file) adjusting the reloc addend as necessary. This function does not have to worry about setting the reloc @@ -854,7 +854,7 @@ i860_final_link_relocate (howto, input_b The global hash table entry for the global symbols can be found via elf_sym_hashes (input_bfd). - When generating relocateable output, this function must handle + When generating relocatable output, this function must handle STB_LOCAL/STT_SECTION symbols specially. The output symbol is going to be the section symbol corresponding to the output section, which means that the addend must be adjusted @@ -876,7 +876,7 @@ elf32_i860_relocate_section (output_bfd, Elf_Internal_Rela *rel; Elf_Internal_Rela *relend; - if (info->relocateable) + if (info->relocatable) return TRUE; symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr; diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf32-i960.c binutils-2.14.90.0.5/bfd/elf32-i960.c --- binutils-2.14.90.0.4.1/bfd/elf32-i960.c 2002-12-16 12:22:51.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/elf32-i960.c 2003-07-23 08:08:08.000000000 -0700 @@ -1,5 +1,5 @@ /* Intel 860 specific support for 32-bit ELF - Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc. + Copyright 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -96,7 +96,7 @@ elf32_i960_info_to_howto_rel (abfd, cach cache_ptr->howto = &elf_howto_table[(int) type]; } -/* ELF relocs are against symbols. If we are producing relocateable +/* ELF relocs are against symbols. If we are producing relocatable output, and the reloc is against an external symbol, and nothing has given us any additional addend, the resulting reloc will also be against the same symbol. In such a case, we don't want to @@ -104,7 +104,7 @@ elf32_i960_info_to_howto_rel (abfd, cach all be done at final link time. Rather than put special case code into bfd_perform_relocation, all the reloc types use this howto function. It just short circuits the reloc if producing - relocateable output against an external symbol. */ + relocatable output against an external symbol. */ bfd_reloc_status_type elf32_i960_relocate (abfd, diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf32-ip2k.c binutils-2.14.90.0.5/bfd/elf32-ip2k.c --- binutils-2.14.90.0.4.1/bfd/elf32-ip2k.c 2003-05-15 13:42:24.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/elf32-ip2k.c 2003-07-23 08:08:08.000000000 -0700 @@ -834,7 +834,7 @@ ip2k_elf_relax_section (abfd, sec, link_ /* We don't have to do anything for a relocatable link, if this section does not have relocs, or if this is not a code section. */ - if (link_info->relocateable + if (link_info->relocatable || (sec->flags & SEC_RELOC) == 0 || sec->reloc_count == 0 || (sec->flags & SEC_CODE) == 0) @@ -1456,7 +1456,7 @@ ip2k_final_link_relocate (howto, input_b zero. This function is responsible for adjusting the section contents as - necessary, and (if using Rela relocs and generating a relocateable + necessary, and (if using Rela relocs and generating a relocatable output file) adjusting the reloc addend as necessary. This function does not have to worry about setting the reloc @@ -1470,7 +1470,7 @@ ip2k_final_link_relocate (howto, input_b The global hash table entry for the global symbols can be found via elf_sym_hashes (input_bfd). - When generating relocateable output, this function must handle + When generating relocatable output, this function must handle STB_LOCAL/STT_SECTION symbols specially. The output symbol is going to be the section symbol corresponding to the output section, which means that the addend must be adjusted @@ -1493,7 +1493,7 @@ ip2k_elf_relocate_section (output_bfd, i Elf_Internal_Rela *rel; Elf_Internal_Rela *relend; - if (info->relocateable) + if (info->relocatable) return TRUE; symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr; diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf32-iq2000.c binutils-2.14.90.0.5/bfd/elf32-iq2000.c --- binutils-2.14.90.0.4.1/bfd/elf32-iq2000.c 2003-05-15 13:42:24.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/elf32-iq2000.c 2003-07-23 08:08:08.000000000 -0700 @@ -458,7 +458,7 @@ iq2000_elf_check_relocs (abfd, info, sec const Elf_Internal_Rela *rel_end; bfd_boolean changed = FALSE; - if (info->relocateable) + if (info->relocatable) return TRUE; symtab_hdr = &elf_tdata (abfd)->symtab_hdr; @@ -531,7 +531,7 @@ iq2000_elf_check_relocs (abfd, info, sec zero. This function is responsible for adjusting the section contents as - necessary, and (if using Rela relocs and generating a relocateable + necessary, and (if using Rela relocs and generating a relocatable output file) adjusting the reloc addend as necessary. This function does not have to worry about setting the reloc @@ -545,7 +545,7 @@ iq2000_elf_check_relocs (abfd, info, sec The global hash table entry for the global symbols can be found via elf_sym_hashes (input_bfd). - When generating relocateable output, this function must handle + When generating relocatable output, this function must handle STB_LOCAL/STT_SECTION symbols specially. The output symbol is going to be the section symbol corresponding to the output section, which means that the addend must be adjusted diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf32-m32r.c binutils-2.14.90.0.5/bfd/elf32-m32r.c --- binutils-2.14.90.0.4.1/bfd/elf32-m32r.c 2003-05-15 13:42:24.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/elf32-m32r.c 2003-07-23 08:08:08.000000000 -0700 @@ -840,7 +840,7 @@ m32r_elf_add_symbol_hook (abfd, info, sy asection **secp; bfd_vma *valp; { - if (! info->relocateable + if (! info->relocatable && (*namep)[0] == '_' && (*namep)[1] == 'S' && strcmp (*namep, "_SDA_BASE_") == 0 && info->hash->creator->flavour == bfd_target_elf_flavour) @@ -903,7 +903,7 @@ m32r_elf_add_symbol_hook (abfd, info, sy symbol value correctly. We look up the symbol _SDA_BASE_ in the output BFD. If we can't find it, we're stuck. We cache it in the ELF target data. We don't need to adjust the symbol value for an - external symbol if we are producing relocateable output. */ + external symbol if we are producing relocatable output. */ static bfd_reloc_status_type m32r_elf_final_sda_base (output_bfd, info, error_message, psb) @@ -948,7 +948,7 @@ m32r_elf_final_sda_base (output_bfd, inf This function is responsible for adjust the section contents as necessary, and (if using Rela relocs and generating a - relocateable output file) adjusting the reloc addend as + relocatable output file) adjusting the reloc addend as necessary. This function does not have to worry about setting the reloc @@ -962,7 +962,7 @@ m32r_elf_final_sda_base (output_bfd, inf The global hash table entry for the global symbols can be found via elf_sym_hashes (input_bfd). - When generating relocateable output, this function must handle + When generating relocatable output, this function must handle STB_LOCAL/STT_SECTION symbols specially. The output symbol is going to be the section symbol corresponding to the output section, which means that the addend must be adjusted @@ -987,7 +987,7 @@ m32r_elf_relocate_section (output_bfd, i bfd_boolean ret = TRUE; #if !USE_REL - if (info->relocateable) + if (info->relocatable) return TRUE; #endif @@ -1031,9 +1031,9 @@ m32r_elf_relocate_section (output_bfd, i r_symndx = ELF32_R_SYM (rel->r_info); #if USE_REL - if (info->relocateable) + if (info->relocatable) { - /* This is a relocateable link. We don't have to change + /* This is a relocatable link. We don't have to change anything, unless the reloc is against a section symbol, in which case we have to adjust according to where the section symbol winds up in the output section. */ @@ -1350,10 +1350,10 @@ m32r_elf_relax_section (abfd, sec, link_ /* Assume nothing changes. */ *again = FALSE; - /* We don't have to do anything for a relocateable link, if + /* We don't have to do anything for a relocatable link, if this section does not have relocs, or if this is not a code section. */ - if (link_info->relocateable + if (link_info->relocatable || (sec->flags & SEC_RELOC) == 0 || sec->reloc_count == 0 || (sec->flags & SEC_CODE) == 0 @@ -1744,12 +1744,12 @@ m32r_elf_relax_delete_bytes (abfd, sec, static bfd_byte * m32r_elf_get_relocated_section_contents (output_bfd, link_info, link_order, - data, relocateable, symbols) + data, relocatable, symbols) bfd *output_bfd; struct bfd_link_info *link_info; struct bfd_link_order *link_order; bfd_byte *data; - bfd_boolean relocateable; + bfd_boolean relocatable; asymbol **symbols; { Elf_Internal_Shdr *symtab_hdr; @@ -1762,11 +1762,11 @@ m32r_elf_get_relocated_section_contents /* We only need to handle the case of relaxing, or of having a particular set of section contents, specially. */ - if (relocateable + if (relocatable || elf_section_data (input_section)->this_hdr.contents == NULL) return bfd_generic_get_relocated_section_contents (output_bfd, link_info, link_order, data, - relocateable, + relocatable, symbols); symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr; @@ -2050,7 +2050,7 @@ m32r_elf_check_relocs (abfd, info, sec, const Elf_Internal_Rela *rel; const Elf_Internal_Rela *rel_end; - if (info->relocateable) + if (info->relocatable) return TRUE; symtab_hdr = &elf_tdata (abfd)->symtab_hdr; diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf32-m68hc11.c binutils-2.14.90.0.5/bfd/elf32-m68hc11.c --- binutils-2.14.90.0.4.1/bfd/elf32-m68hc11.c 2003-05-15 13:42:24.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/elf32-m68hc11.c 2003-07-23 08:08:08.000000000 -0700 @@ -687,10 +687,10 @@ m68hc11_elf_relax_section (abfd, sec, li /* Assume nothing changes. */ *again = FALSE; - /* We don't have to do anything for a relocateable link, if + /* We don't have to do anything for a relocatable link, if this section does not have relocs, or if this is not a code section. */ - if (link_info->relocateable + if (link_info->relocatable || (sec->flags & SEC_RELOC) == 0 || sec->reloc_count == 0 || (sec->flags & SEC_CODE) == 0) diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf32-m68hc1x.c binutils-2.14.90.0.5/bfd/elf32-m68hc1x.c --- binutils-2.14.90.0.4.1/bfd/elf32-m68hc1x.c 2003-05-15 13:42:24.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/elf32-m68hc1x.c 2003-07-23 08:08:08.000000000 -0700 @@ -956,7 +956,7 @@ elf32_m68hc11_check_relocs (abfd, info, const Elf_Internal_Rela * rel; const Elf_Internal_Rela * rel_end; - if (info->relocateable) + if (info->relocatable) return TRUE; symtab_hdr = & elf_tdata (abfd)->symtab_hdr; @@ -1152,9 +1152,9 @@ elf32_m68hc11_relocate_section (output_b || r_type == R_M68HC11_GNU_VTINHERIT ) continue; - if (info->relocateable) + if (info->relocatable) { - /* This is a relocateable link. We don't have to change + /* This is a relocatable link. We don't have to change anything, unless the reloc is against a section symbol, in which case we have to adjust according to where the section symbol winds up in the output section. */ diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf32-m68k.c binutils-2.14.90.0.5/bfd/elf32-m68k.c --- binutils-2.14.90.0.4.1/bfd/elf32-m68k.c 2003-05-23 07:18:52.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/elf32-m68k.c 2003-07-23 08:08:08.000000000 -0700 @@ -427,7 +427,7 @@ elf_m68k_check_relocs (abfd, info, sec, asection *srelgot; asection *sreloc; - if (info->relocateable) + if (info->relocatable) return TRUE; dynobj = elf_hash_table (info)->dynobj; @@ -1358,7 +1358,7 @@ elf_m68k_relocate_section (output_bfd, i Elf_Internal_Rela *rel; Elf_Internal_Rela *relend; - if (info->relocateable) + if (info->relocatable) return TRUE; dynobj = elf_hash_table (info)->dynobj; @@ -2153,7 +2153,7 @@ bfd_m68k_elf32_create_embedded_relocs (a bfd_byte *p; bfd_size_type amt; - BFD_ASSERT (! info->relocateable); + BFD_ASSERT (! info->relocatable); *errmsg = NULL; diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf32-mcore.c binutils-2.14.90.0.5/bfd/elf32-mcore.c --- binutils-2.14.90.0.4.1/bfd/elf32-mcore.c 2002-12-16 12:22:51.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/elf32-mcore.c 2003-07-23 08:08:08.000000000 -0700 @@ -1,5 +1,5 @@ /* Motorola MCore specific support for 32-bit ELF - Copyright 1994, 1995, 1999, 2000, 2001, 2002 + Copyright 1994, 1995, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -367,7 +367,7 @@ mcore_elf_unsupported_reloc (abfd, reloc This function is responsible for adjust the section contents as necessary, and (if using Rela relocs and generating a - relocateable output file) adjusting the reloc addend as + relocatable output file) adjusting the reloc addend as necessary. This function does not have to worry about setting the reloc @@ -381,7 +381,7 @@ mcore_elf_unsupported_reloc (abfd, reloc The global hash table entry for the global symbols can be found via elf_sym_hashes (input_bfd). - When generating relocateable output, this function must handle + When generating relocatable output, this function must handle STB_LOCAL/STT_SECTION symbols specially. The output symbol is going to be the section symbol corresponding to the output section, which means that the addend must be adjusted @@ -411,10 +411,10 @@ mcore_elf_relocate_section (output_bfd, bfd_archive_filename (input_bfd), bfd_section_name(input_bfd, input_section), (long) input_section->reloc_count, - (info->relocateable) ? " (relocatable)" : ""); + (info->relocatable) ? " (relocatable)" : ""); #endif - if (info->relocateable) + if (info->relocatable) return TRUE; if (! mcore_elf_howto_table [R_MCORE_PCRELIMM8BY4]) /* Initialize howto table if needed */ @@ -637,7 +637,7 @@ mcore_elf_check_relocs (abfd, info, sec, const Elf_Internal_Rela * rel; const Elf_Internal_Rela * rel_end; - if (info->relocateable) + if (info->relocatable) return TRUE; symtab_hdr = & elf_tdata (abfd)->symtab_hdr; diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf32-mips.c binutils-2.14.90.0.5/bfd/elf32-mips.c --- binutils-2.14.90.0.4.1/bfd/elf32-mips.c 2003-05-15 13:42:24.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/elf32-mips.c 2003-07-23 08:08:08.000000000 -0700 @@ -47,12 +47,17 @@ Foundation, Inc., 59 Temple Place - Suit #define ECOFF_SIGNED_32 #include "ecoffswap.h" +static bfd_reloc_status_type mips_elf_generic_reloc + PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); static bfd_reloc_status_type mips_elf_hi16_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); static bfd_reloc_status_type mips_elf_lo16_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); static bfd_reloc_status_type mips_elf_got16_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); +static bfd_reloc_status_type gprel32_with_gp + PARAMS ((bfd *, asymbol *, arelent *, asection *, bfd_boolean, PTR, + bfd_vma)); static bfd_reloc_status_type mips_elf_gprel32_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); static bfd_reloc_status_type mips32_64bit_reloc @@ -116,7 +121,7 @@ static reloc_howto_type elf_mips_howto_t FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ + mips_elf_generic_reloc, /* special_function */ "R_MIPS_NONE", /* name */ FALSE, /* partial_inplace */ 0, /* src_mask */ @@ -131,7 +136,7 @@ static reloc_howto_type elf_mips_howto_t FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ + mips_elf_generic_reloc, /* special_function */ "R_MIPS_16", /* name */ TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -146,7 +151,7 @@ static reloc_howto_type elf_mips_howto_t FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ + mips_elf_generic_reloc, /* special_function */ "R_MIPS_32", /* name */ TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ @@ -161,7 +166,7 @@ static reloc_howto_type elf_mips_howto_t FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ + mips_elf_generic_reloc, /* special_function */ "R_MIPS_REL32", /* name */ TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ @@ -179,7 +184,7 @@ static reloc_howto_type elf_mips_howto_t /* This needs complex overflow detection, because the upper four bits must match the PC + 4. */ - bfd_elf_generic_reloc, /* special_function */ + mips_elf_generic_reloc, /* special_function */ "R_MIPS_26", /* name */ TRUE, /* partial_inplace */ 0x03ffffff, /* src_mask */ @@ -269,7 +274,7 @@ static reloc_howto_type elf_mips_howto_t TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ + mips_elf_generic_reloc, /* special_function */ "R_MIPS_PC16", /* name */ TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -284,7 +289,7 @@ static reloc_howto_type elf_mips_howto_t FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ + mips_elf_generic_reloc, /* special_function */ "R_MIPS_CALL16", /* name */ TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -320,7 +325,7 @@ static reloc_howto_type elf_mips_howto_t FALSE, /* pc_relative */ 6, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ + mips_elf_generic_reloc, /* special_function */ "R_MIPS_SHIFT5", /* name */ TRUE, /* partial_inplace */ 0x000007c0, /* src_mask */ @@ -337,7 +342,7 @@ static reloc_howto_type elf_mips_howto_t FALSE, /* pc_relative */ 6, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ + mips_elf_generic_reloc, /* special_function */ "R_MIPS_SHIFT6", /* name */ TRUE, /* partial_inplace */ 0x000007c4, /* src_mask */ @@ -367,7 +372,7 @@ static reloc_howto_type elf_mips_howto_t FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ + mips_elf_generic_reloc, /* special_function */ "R_MIPS_GOT_DISP", /* name */ TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -382,7 +387,7 @@ static reloc_howto_type elf_mips_howto_t FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ + mips_elf_generic_reloc, /* special_function */ "R_MIPS_GOT_PAGE", /* name */ TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -397,7 +402,7 @@ static reloc_howto_type elf_mips_howto_t FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ + mips_elf_generic_reloc, /* special_function */ "R_MIPS_GOT_OFST", /* name */ TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -412,7 +417,7 @@ static reloc_howto_type elf_mips_howto_t FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ + mips_elf_generic_reloc, /* special_function */ "R_MIPS_GOT_HI16", /* name */ TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -427,7 +432,7 @@ static reloc_howto_type elf_mips_howto_t FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ + mips_elf_generic_reloc, /* special_function */ "R_MIPS_GOT_LO16", /* name */ TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -442,7 +447,7 @@ static reloc_howto_type elf_mips_howto_t FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ + mips_elf_generic_reloc, /* special_function */ "R_MIPS_SUB", /* name */ TRUE, /* partial_inplace */ MINUS_ONE, /* src_mask */ @@ -462,7 +467,7 @@ static reloc_howto_type elf_mips_howto_t FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ + mips_elf_generic_reloc, /* special_function */ "R_MIPS_HIGHER", /* name */ TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -477,7 +482,7 @@ static reloc_howto_type elf_mips_howto_t FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ + mips_elf_generic_reloc, /* special_function */ "R_MIPS_HIGHEST", /* name */ TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -492,7 +497,7 @@ static reloc_howto_type elf_mips_howto_t FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ + mips_elf_generic_reloc, /* special_function */ "R_MIPS_CALL_HI16", /* name */ TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -507,7 +512,7 @@ static reloc_howto_type elf_mips_howto_t FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ + mips_elf_generic_reloc, /* special_function */ "R_MIPS_CALL_LO16", /* name */ TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -522,7 +527,7 @@ static reloc_howto_type elf_mips_howto_t FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ + mips_elf_generic_reloc, /* special_function */ "R_MIPS_SCN_DISP", /* name */ TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ @@ -543,7 +548,7 @@ static reloc_howto_type elf_mips_howto_t FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ + mips_elf_generic_reloc, /* special_function */ "R_MIPS_JALR", /* name */ FALSE, /* partial_inplace */ 0x00000000, /* src_mask */ @@ -645,7 +650,7 @@ static reloc_howto_type elf_mips_gnu_rel TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ + mips_elf_generic_reloc, /* special_function */ "R_MIPS_GNU_REL16_S2", /* name */ TRUE, /* partial_inplace */ 0xffff, /* src_mask */ @@ -661,7 +666,7 @@ static reloc_howto_type elf_mips_gnu_pcr TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ + mips_elf_generic_reloc, /* special_function */ "R_MIPS_PC64", /* name */ TRUE, /* partial_inplace */ MINUS_ONE, /* src_mask */ @@ -677,7 +682,7 @@ static reloc_howto_type elf_mips_gnu_pcr TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ + mips_elf_generic_reloc, /* special_function */ "R_MIPS_PC32", /* name */ TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ @@ -716,6 +721,33 @@ static reloc_howto_type elf_mips_gnu_vte 0, /* dst_mask */ FALSE); /* pcrel_offset */ +/* We use this instead of bfd_elf_generic_reloc because the latter + gets the handling of zero addends wrong. */ +static bfd_reloc_status_type +mips_elf_generic_reloc (abfd, reloc_entry, symbol, data, input_section, + output_bfd, error_message) + bfd *abfd ATTRIBUTE_UNUSED; + arelent *reloc_entry; + asymbol *symbol; + PTR data ATTRIBUTE_UNUSED; + asection *input_section; + bfd *output_bfd; + char **error_message ATTRIBUTE_UNUSED; +{ + /* If we're relocating, and this is an external symbol, we don't want + to change anything. */ + if (output_bfd != (bfd *) NULL + && (symbol->flags & BSF_SECTION_SYM) == 0 + && (symbol->flags & BSF_LOCAL) != 0) + { + reloc_entry->address += input_section->output_offset; + return bfd_reloc_ok; + } + + /* Just go on, nothing to see here. */ + return bfd_reloc_continue; +} + /* Do a R_MIPS_HI16 relocation. This has to be done in combination with a R_MIPS_LO16 reloc, because there is a carry from the LO16 to the HI16. Here we just save the information we need; we do the @@ -761,7 +793,7 @@ mips_elf_hi16_reloc (abfd, reloc_entry, to change anything. */ if (output_bfd != (bfd *) NULL && (symbol->flags & BSF_SECTION_SYM) == 0 - && reloc_entry->addend == 0) + && (symbol->flags & BSF_LOCAL) != 0) { reloc_entry->address += input_section->output_offset; return bfd_reloc_ok; @@ -771,21 +803,21 @@ mips_elf_hi16_reloc (abfd, reloc_entry, if (strcmp (bfd_asymbol_name (symbol), "_gp_disp") == 0) { - bfd_boolean relocateable; + bfd_boolean relocatable; bfd_vma gp; if (ret == bfd_reloc_undefined) abort (); if (output_bfd != NULL) - relocateable = TRUE; + relocatable = TRUE; else { - relocateable = FALSE; + relocatable = FALSE; output_bfd = symbol->section->output_section->owner; } - ret = mips_elf_final_gp (output_bfd, symbol, relocateable, + ret = mips_elf_final_gp (output_bfd, symbol, relocatable, error_message, &gp); if (ret != bfd_reloc_ok) return ret; @@ -855,41 +887,42 @@ mips_elf_lo16_reloc (abfd, reloc_entry, unsigned long vallo; struct mips_hi16 *next; - /* Do the HI16 relocation. Note that we actually don't need - to know anything about the LO16 itself, except where to - find the low 16 bits of the addend needed by the LO16. */ - insn = bfd_get_32 (abfd, l->addr); - vallo = bfd_get_32 (abfd, (bfd_byte *) data + reloc_entry->address); - - /* The low order 16 bits are always treated as a signed - value. */ - vallo = ((vallo & 0xffff) ^ 0x8000) - 0x8000; - val = ((insn & 0xffff) << 16) + vallo; - val += l->addend; - - /* If PC-relative, we need to subtract out the address of the LO - half of the HI/LO. (The actual relocation is relative - to that instruction.) */ - if (reloc_entry->howto->pc_relative) - val -= reloc_entry->address; - - /* At this point, "val" has the value of the combined HI/LO - pair. If the low order 16 bits (which will be used for - the LO16 insn) are negative, then we will need an - adjustment for the high order 16 bits. */ - val += 0x8000; - val = (val >> 16) & 0xffff; - - insn &= ~ (bfd_vma) 0xffff; - insn |= val; - bfd_put_32 (abfd, (bfd_vma) insn, l->addr); - if (strcmp (bfd_asymbol_name (symbol), "_gp_disp") == 0) { gp_disp_relent = *reloc_entry; reloc_entry = &gp_disp_relent; reloc_entry->addend = l->addend; } + else + { + /* Do the HI16 relocation. Note that we actually don't need + to know anything about the LO16 itself, except where to + find the low 16 bits of the addend needed by the LO16. */ + insn = bfd_get_32 (abfd, l->addr); + vallo = bfd_get_32 (abfd, (bfd_byte *) data + reloc_entry->address); + /* The low order 16 bits are always treated as a signed + value. */ + vallo = ((vallo & 0xffff) ^ 0x8000) - 0x8000; + val = ((insn & 0xffff) << 16) + vallo; + val += l->addend; + + /* If PC-relative, we need to subtract out the address of the LO + half of the HI/LO. (The actual relocation is relative + to that instruction.) */ + if (reloc_entry->howto->pc_relative) + val -= reloc_entry->address; + + /* At this point, "val" has the value of the combined HI/LO + pair. If the low order 16 bits (which will be used for + the LO16 insn) are negative, then we will need an + adjustment for the high order 16 bits. */ + val += 0x8000; + val = (val >> 16) & 0xffff; + + insn &= ~ (bfd_vma) 0xffff; + insn |= val; + bfd_put_32 (abfd, (bfd_vma) insn, l->addr); + } next = l->next; free (l); @@ -923,8 +956,8 @@ mips_elf_lo16_reloc (abfd, reloc_entry, } /* Now do the LO16 reloc in the usual way. */ - return bfd_elf_generic_reloc (abfd, reloc_entry, symbol, data, - input_section, output_bfd, error_message); + return mips_elf_generic_reloc (abfd, reloc_entry, symbol, data, + input_section, output_bfd, error_message); } /* Do a R_MIPS_GOT16 reloc. This is a reloc against the global offset @@ -956,20 +989,14 @@ mips_elf_got16_reloc (abfd, reloc_entry, to change anything. */ if (output_bfd != (bfd *) NULL && (symbol->flags & BSF_SECTION_SYM) == 0 - && reloc_entry->addend == 0) + && (symbol->flags & BSF_LOCAL) != 0) { reloc_entry->address += input_section->output_offset; return bfd_reloc_ok; } - /* If we're relocating, and this is a local symbol, we can handle it - just like HI16. */ - if (output_bfd != (bfd *) NULL - && (symbol->flags & BSF_SECTION_SYM) != 0) - return mips_elf_hi16_reloc (abfd, reloc_entry, symbol, data, - input_section, output_bfd, error_message); - - abort (); + return mips_elf_hi16_reloc (abfd, reloc_entry, symbol, data, + input_section, output_bfd, error_message); } /* Set the GP value for OUTPUT_BFD. Returns FALSE if this is a @@ -1027,18 +1054,18 @@ mips_elf_assign_gp (output_bfd, pgp) symbol value correctly. We look up the symbol _gp in the output BFD. If we can't find it, we're stuck. We cache it in the ELF target data. We don't need to adjust the symbol value for an - external symbol if we are producing relocateable output. */ + external symbol if we are producing relocatable output. */ static bfd_reloc_status_type -mips_elf_final_gp (output_bfd, symbol, relocateable, error_message, pgp) +mips_elf_final_gp (output_bfd, symbol, relocatable, error_message, pgp) bfd *output_bfd; asymbol *symbol; - bfd_boolean relocateable; + bfd_boolean relocatable; char **error_message; bfd_vma *pgp; { if (bfd_is_und_section (symbol->section) - && ! relocateable) + && ! relocatable) { *pgp = 0; return bfd_reloc_undefined; @@ -1046,10 +1073,10 @@ mips_elf_final_gp (output_bfd, symbol, r *pgp = _bfd_get_gp_value (output_bfd); if (*pgp == 0 - && (! relocateable + && (! relocatable || (symbol->flags & BSF_SECTION_SYM) != 0)) { - if (relocateable) + if (relocatable) { /* Make up a value. */ *pgp = symbol->section->output_section->vma + 0x4000; @@ -1083,47 +1110,41 @@ _bfd_mips_elf32_gprel16_reloc (abfd, rel bfd *output_bfd; char **error_message; { - bfd_boolean relocateable; + bfd_boolean relocatable; bfd_reloc_status_type ret; bfd_vma gp; - /* If we're relocating, and this is an external symbol with no - addend, we don't want to change anything. We will only have an - addend if this is a newly created reloc, not read from an ELF - file. */ + /* If we're relocating, and this is an external symbol, we don't want + to change anything. */ if (output_bfd != (bfd *) NULL && (symbol->flags & BSF_SECTION_SYM) == 0 - && reloc_entry->addend == 0) + && (symbol->flags & BSF_LOCAL) != 0) { reloc_entry->address += input_section->output_offset; return bfd_reloc_ok; } if (output_bfd != (bfd *) NULL) - relocateable = TRUE; + relocatable = TRUE; else { - relocateable = FALSE; + relocatable = FALSE; output_bfd = symbol->section->output_section->owner; } - ret = mips_elf_final_gp (output_bfd, symbol, relocateable, error_message, + ret = mips_elf_final_gp (output_bfd, symbol, relocatable, error_message, &gp); if (ret != bfd_reloc_ok) return ret; return _bfd_mips_elf_gprel16_with_gp (abfd, symbol, reloc_entry, - input_section, relocateable, + input_section, relocatable, data, gp); } /* Do a R_MIPS_GPREL32 relocation. This is a 32 bit value which must become the offset from the gp register. */ -static bfd_reloc_status_type gprel32_with_gp - PARAMS ((bfd *, asymbol *, arelent *, asection *, bfd_boolean, PTR, - bfd_vma)); - static bfd_reloc_status_type mips_elf_gprel32_reloc (abfd, reloc_entry, symbol, data, input_section, output_bfd, error_message) @@ -1135,17 +1156,15 @@ mips_elf_gprel32_reloc (abfd, reloc_entr bfd *output_bfd; char **error_message; { - bfd_boolean relocateable; + bfd_boolean relocatable; bfd_reloc_status_type ret; bfd_vma gp; - /* If we're relocating, and this is an external symbol with no - addend, we don't want to change anything. We will only have an - addend if this is a newly created reloc, not read from an ELF - file. */ + /* If we're relocating, and this is an external symbol, we don't want + to change anything. */ if (output_bfd != (bfd *) NULL && (symbol->flags & BSF_SECTION_SYM) == 0 - && reloc_entry->addend == 0) + && (symbol->flags & BSF_LOCAL) != 0) { *error_message = (char *) _("32bits gp relative relocation occurs for an external symbol"); @@ -1153,38 +1172,35 @@ mips_elf_gprel32_reloc (abfd, reloc_entr } if (output_bfd != (bfd *) NULL) - { - relocateable = TRUE; - gp = _bfd_get_gp_value (output_bfd); - } + relocatable = TRUE; else { - relocateable = FALSE; + relocatable = FALSE; output_bfd = symbol->section->output_section->owner; - - ret = mips_elf_final_gp (output_bfd, symbol, relocateable, - error_message, &gp); - if (ret != bfd_reloc_ok) - return ret; } + ret = mips_elf_final_gp (output_bfd, symbol, relocatable, + error_message, &gp); + if (ret != bfd_reloc_ok) + return ret; + return gprel32_with_gp (abfd, symbol, reloc_entry, input_section, - relocateable, data, gp); + relocatable, data, gp); } static bfd_reloc_status_type -gprel32_with_gp (abfd, symbol, reloc_entry, input_section, relocateable, data, +gprel32_with_gp (abfd, symbol, reloc_entry, input_section, relocatable, data, gp) bfd *abfd; asymbol *symbol; arelent *reloc_entry; asection *input_section; - bfd_boolean relocateable; + bfd_boolean relocatable; PTR data; bfd_vma gp; { bfd_vma relocation; - unsigned long val; + bfd_vma val; if (bfd_is_com_section (symbol->section)) relocation = 0; @@ -1197,21 +1213,25 @@ gprel32_with_gp (abfd, symbol, reloc_ent if (reloc_entry->address > input_section->_cooked_size) return bfd_reloc_outofrange; - val = bfd_get_32 (abfd, (bfd_byte *) data + reloc_entry->address); - /* Set val to the offset into the section or symbol. */ - val += reloc_entry->addend; + val = reloc_entry->addend; + + if (reloc_entry->howto->partial_inplace) + val += bfd_get_32 (abfd, (bfd_byte *) data + reloc_entry->address); /* Adjust val for the final section location and GP value. If we - are producing relocateable output, we don't want to do this for + are producing relocatable output, we don't want to do this for an external symbol. */ - if (! relocateable + if (! relocatable || (symbol->flags & BSF_SECTION_SYM) != 0) val += relocation - gp; - bfd_put_32 (abfd, (bfd_vma) val, (bfd_byte *) data + reloc_entry->address); + if (reloc_entry->howto->partial_inplace) + bfd_put_32 (abfd, val, (bfd_byte *) data + reloc_entry->address); + else + reloc_entry->addend = val; - if (relocateable) + if (relocatable) reloc_entry->address += input_section->output_offset; return bfd_reloc_ok; @@ -1237,8 +1257,8 @@ mips32_64bit_reloc (abfd, reloc_entry, s unsigned long val; bfd_size_type addr; - r = bfd_elf_generic_reloc (abfd, reloc_entry, symbol, data, - input_section, output_bfd, error_message); + r = mips_elf_generic_reloc (abfd, reloc_entry, symbol, data, + input_section, output_bfd, error_message); if (r != bfd_reloc_continue) return r; @@ -1312,33 +1332,33 @@ mips16_gprel_reloc (abfd, reloc_entry, s bfd *output_bfd; char **error_message; { - bfd_boolean relocateable; + bfd_boolean relocatable; bfd_reloc_status_type ret; bfd_vma gp; - unsigned short extend, insn; - unsigned long final; + unsigned short extend = 0; + unsigned short insn = 0; + bfd_signed_vma val; + bfd_vma relocation; - /* If we're relocating, and this is an external symbol with no - addend, we don't want to change anything. We will only have an - addend if this is a newly created reloc, not read from an ELF - file. */ + /* If we're relocating, and this is an external symbol, we don't want + to change anything. */ if (output_bfd != NULL && (symbol->flags & BSF_SECTION_SYM) == 0 - && reloc_entry->addend == 0) + && (symbol->flags & BSF_LOCAL) != 0) { reloc_entry->address += input_section->output_offset; return bfd_reloc_ok; } if (output_bfd != NULL) - relocateable = TRUE; + relocatable = TRUE; else { - relocateable = FALSE; + relocatable = FALSE; output_bfd = symbol->section->output_section->owner; } - ret = mips_elf_final_gp (output_bfd, symbol, relocateable, error_message, + ret = mips_elf_final_gp (output_bfd, symbol, relocatable, error_message, &gp); if (ret != bfd_reloc_ok) return ret; @@ -1346,33 +1366,55 @@ mips16_gprel_reloc (abfd, reloc_entry, s if (reloc_entry->address > input_section->_cooked_size) return bfd_reloc_outofrange; - /* Pick up the mips16 extend instruction and the real instruction. */ - extend = bfd_get_16 (abfd, (bfd_byte *) data + reloc_entry->address); - insn = bfd_get_16 (abfd, (bfd_byte *) data + reloc_entry->address + 2); - - /* Stuff the current addend back as a 32 bit value, do the usual - relocation, and then clean up. */ - bfd_put_32 (abfd, - (bfd_vma) (((extend & 0x1f) << 11) - | (extend & 0x7e0) - | (insn & 0x1f)), - (bfd_byte *) data + reloc_entry->address); - - ret = _bfd_mips_elf_gprel16_with_gp (abfd, symbol, reloc_entry, - input_section, relocateable, data, gp); - - final = bfd_get_32 (abfd, (bfd_byte *) data + reloc_entry->address); - bfd_put_16 (abfd, - (bfd_vma) ((extend & 0xf800) - | ((final >> 11) & 0x1f) - | (final & 0x7e0)), - (bfd_byte *) data + reloc_entry->address); - bfd_put_16 (abfd, - (bfd_vma) ((insn & 0xffe0) - | (final & 0x1f)), - (bfd_byte *) data + reloc_entry->address + 2); + if (bfd_is_com_section (symbol->section)) + relocation = 0; + else + relocation = symbol->value; - return ret; + relocation += symbol->section->output_section->vma; + relocation += symbol->section->output_offset; + + /* Set val to the offset into the section or symbol. */ + val = reloc_entry->addend; + + if (reloc_entry->howto->partial_inplace) + { + /* Pick up the mips16 extend instruction and the real instruction. */ + extend = bfd_get_16 (abfd, (bfd_byte *) data + reloc_entry->address); + insn = bfd_get_16 (abfd, (bfd_byte *) data + reloc_entry->address + 2); + val += ((extend & 0x1f) << 11) | (extend & 0x7e0) | (insn & 0x1f); + } + + _bfd_mips_elf_sign_extend(val, 16); + + /* Adjust val for the final section location and GP value. If we + are producing relocatable output, we don't want to do this for + an external symbol. */ + if (! relocatable + || (symbol->flags & BSF_SECTION_SYM) != 0) + val += relocation - gp; + + if (reloc_entry->howto->partial_inplace) + { + bfd_put_16 (abfd, + (bfd_vma) ((extend & 0xf800) + | ((val >> 11) & 0x1f) + | (val & 0x7e0)), + (bfd_byte *) data + reloc_entry->address); + bfd_put_16 (abfd, + (bfd_vma) ((insn & 0xffe0) + | (val & 0x1f)), + (bfd_byte *) data + reloc_entry->address + 2); + } + else + reloc_entry->addend = val; + + if (relocatable) + reloc_entry->address += input_section->output_offset; + else if (((val & ~0xffff) != ~0xffff) && ((val & ~0xffff) != 0)) + return bfd_reloc_overflow; + + return bfd_reloc_ok; } /* A mapping from BFD reloc types to MIPS ELF reloc types. */ @@ -1688,7 +1730,7 @@ bfd_mips_elf32_create_embedded_relocs (a Elf_Internal_Rela *irel, *irelend; bfd_byte *p; - BFD_ASSERT (! info->relocateable); + BFD_ASSERT (! info->relocatable); *errmsg = NULL; diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf32-msp430.c binutils-2.14.90.0.5/bfd/elf32-msp430.c --- binutils-2.14.90.0.4.1/bfd/elf32-msp430.c 2003-01-21 10:21:32.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/elf32-msp430.c 2003-07-23 08:08:08.000000000 -0700 @@ -1,5 +1,5 @@ /* MSP430-specific support for 32-bit ELF - Copyright (C) 2002 Free Software Foundation, Inc. + Copyright (C) 2002, 2003 Free Software Foundation, Inc. Contributed by Dmitry Diky This file is part of BFD, the Binary File Descriptor library. @@ -278,7 +278,7 @@ elf32_msp430_check_relocs (abfd, info, s const Elf_Internal_Rela *rel; const Elf_Internal_Rela *rel_end; - if (info->relocateable) + if (info->relocatable) return TRUE; symtab_hdr = &elf_tdata (abfd)->symtab_hdr; diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf32-openrisc.c binutils-2.14.90.0.5/bfd/elf32-openrisc.c --- binutils-2.14.90.0.4.1/bfd/elf32-openrisc.c 2002-12-16 12:22:51.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/elf32-openrisc.c 2003-07-23 08:08:08.000000000 -0700 @@ -1,5 +1,5 @@ /* OpenRISC-specific support for 32-bit ELF. - Copyright 2001, 2002 Free Software Foundation, Inc. + Copyright 2001, 2002, 2003 Free Software Foundation, Inc. Contributed by Johan Rydberg, jrydberg@opencores.org This file is part of BFD, the Binary File Descriptor library. @@ -298,7 +298,7 @@ openrisc_final_link_relocate (howto, inp zero. This function is responsible for adjusting the section contents as - necessary, and (if using Rela relocs and generating a relocateable + necessary, and (if using Rela relocs and generating a relocatable output file) adjusting the reloc addend as necessary. This function does not have to worry about setting the reloc @@ -312,7 +312,7 @@ openrisc_final_link_relocate (howto, inp The global hash table entry for the global symbols can be found via elf_sym_hashes (input_bfd). - When generating relocateable output, this function must handle + When generating relocatable output, this function must handle STB_LOCAL/STT_SECTION symbols specially. The output symbol is going to be the section symbol corresponding to the output section, which means that the addend must be adjusted @@ -335,7 +335,7 @@ openrisc_elf_relocate_section (output_bf Elf_Internal_Rela *rel; Elf_Internal_Rela *relend; - if (info->relocateable) + if (info->relocatable) return TRUE; symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr; @@ -529,7 +529,7 @@ openrisc_elf_check_relocs (abfd, info, s const Elf_Internal_Rela *rel; const Elf_Internal_Rela *rel_end; - if (info->relocateable) + if (info->relocatable) return TRUE; symtab_hdr = &elf_tdata (abfd)->symtab_hdr; diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf32-ppc.c binutils-2.14.90.0.5/bfd/elf32-ppc.c --- binutils-2.14.90.0.4.1/bfd/elf32-ppc.c 2003-05-23 07:18:52.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/elf32-ppc.c 2003-07-23 08:08:08.000000000 -0700 @@ -35,88 +35,10 @@ /* RELA relocations are used here. */ -static struct bfd_hash_entry *ppc_elf_link_hash_newfunc - PARAMS ((struct bfd_hash_entry *entry, struct bfd_hash_table *table, - const char *string)); -static struct bfd_link_hash_table *ppc_elf_link_hash_table_create - PARAMS ((bfd *abfd)); -static void ppc_elf_copy_indirect_symbol - PARAMS ((struct elf_backend_data *bed, struct elf_link_hash_entry *dir, - struct elf_link_hash_entry *ind)); -static reloc_howto_type *ppc_elf_reloc_type_lookup - PARAMS ((bfd *abfd, bfd_reloc_code_real_type code)); -static void ppc_elf_info_to_howto - PARAMS ((bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst)); -static void ppc_elf_howto_init - PARAMS ((void)); -static int ppc_elf_sort_rela - PARAMS ((const PTR, const PTR)); -static bfd_boolean ppc_elf_relax_section - PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *)); static bfd_reloc_status_type ppc_elf_addr16_ha_reloc - PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); + (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **); static bfd_reloc_status_type ppc_elf_unhandled_reloc - PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); -static bfd_boolean ppc_elf_object_p - PARAMS ((bfd *)); -static bfd_boolean ppc_elf_set_private_flags - PARAMS ((bfd *, flagword)); -static bfd_boolean ppc_elf_merge_private_bfd_data - PARAMS ((bfd *, bfd *)); -static int ppc_elf_additional_program_headers - PARAMS ((bfd *)); -static bfd_boolean ppc_elf_modify_segment_map - PARAMS ((bfd *)); -static bfd_boolean ppc_elf_create_got - PARAMS ((bfd *, struct bfd_link_info *)); -static bfd_boolean ppc_elf_create_dynamic_sections - PARAMS ((bfd *, struct bfd_link_info *)); -static bfd_boolean ppc_elf_section_from_shdr - PARAMS ((bfd *, Elf_Internal_Shdr *, const char *)); -static bfd_boolean ppc_elf_fake_sections - PARAMS ((bfd *, Elf_Internal_Shdr *, asection *)); -static elf_linker_section_t *ppc_elf_create_linker_section - PARAMS ((bfd *abfd, struct bfd_link_info *info, - enum elf_linker_section_enum)); -static bfd_boolean update_local_sym_info - PARAMS ((bfd *, Elf_Internal_Shdr *, unsigned long, int)); -static void bad_shared_reloc - PARAMS ((bfd *, enum elf_ppc_reloc_type)); -static bfd_boolean ppc_elf_check_relocs - PARAMS ((bfd *, struct bfd_link_info *, asection *, - const Elf_Internal_Rela *)); -static asection *ppc_elf_gc_mark_hook - PARAMS ((asection *sec, struct bfd_link_info *info, Elf_Internal_Rela *rel, - struct elf_link_hash_entry *h, Elf_Internal_Sym *sym)); -static bfd_boolean ppc_elf_gc_sweep_hook - PARAMS ((bfd *abfd, struct bfd_link_info *info, asection *sec, - const Elf_Internal_Rela *relocs)); -static bfd_boolean ppc_elf_adjust_dynamic_symbol - PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *)); -static bfd_boolean allocate_dynrelocs - PARAMS ((struct elf_link_hash_entry *, PTR)); -static bfd_boolean readonly_dynrelocs - PARAMS ((struct elf_link_hash_entry *, PTR)); -static bfd_boolean ppc_elf_size_dynamic_sections - PARAMS ((bfd *, struct bfd_link_info *)); -static bfd_boolean ppc_elf_relocate_section - PARAMS ((bfd *, struct bfd_link_info *info, bfd *, asection *, bfd_byte *, - Elf_Internal_Rela *relocs, Elf_Internal_Sym *local_syms, - asection **)); -static bfd_boolean ppc_elf_add_symbol_hook - PARAMS ((bfd *, struct bfd_link_info *, const Elf_Internal_Sym *, - const char **, flagword *, asection **, bfd_vma *)); -static bfd_boolean ppc_elf_finish_dynamic_symbol - PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *, - Elf_Internal_Sym *)); -static bfd_boolean ppc_elf_finish_dynamic_sections - PARAMS ((bfd *, struct bfd_link_info *)); -static enum elf_reloc_type_class ppc_elf_reloc_type_class - PARAMS ((const Elf_Internal_Rela *)); -static bfd_boolean ppc_elf_grok_prstatus - PARAMS ((bfd *abfd, Elf_Internal_Note *note)); -static bfd_boolean ppc_elf_grok_psinfo - PARAMS ((bfd *abfd, Elf_Internal_Note *note)); + (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **); /* Branch prediction bit for branch taken relocs. */ #define BRANCH_PREDICT_BIT 0x200000 @@ -148,6 +70,72 @@ static bfd_boolean ppc_elf_grok_psinfo #define DTP_OFFSET 0x8000 +/* Enumeration to specify the special section. */ +enum elf_linker_section_enum +{ + LINKER_SECTION_SDATA, + LINKER_SECTION_SDATA2 +}; + +/* Sections created by the linker. */ + +typedef struct elf_linker_section +{ + /* pointer to the section */ + asection *section; + /* pointer to the relocations needed for this section */ + asection *rel_section; + /* pointer to the created symbol hash value */ + struct elf_link_hash_entry *sym_hash; + /* offset of symbol from beginning of section */ + bfd_vma sym_offset; +} elf_linker_section_t; + +/* Linked list of allocated pointer entries. This hangs off of the + symbol lists, and provides allows us to return different pointers, + based on different addend's. */ + +typedef struct elf_linker_section_pointers +{ + /* next allocated pointer for this symbol */ + struct elf_linker_section_pointers *next; + /* offset of pointer from beginning of section */ + bfd_vma offset; + /* addend used */ + bfd_vma addend; + /* which linker section this is */ + elf_linker_section_t *lsect; + /* whether address was written yet */ + bfd_boolean written_address_p; +} elf_linker_section_pointers_t; + +struct ppc_elf_obj_tdata +{ + struct elf_obj_tdata elf; + + /* A mapping from local symbols to offsets into the various linker + sections added. This is index by the symbol index. */ + elf_linker_section_pointers_t **linker_section_pointers; +}; + +#define ppc_elf_tdata(bfd) \ + ((struct ppc_elf_obj_tdata *) (bfd)->tdata.any) + +#define elf_local_ptr_offsets(bfd) \ + (ppc_elf_tdata (bfd)->linker_section_pointers) + +/* Override the generic function because we store some extras. */ + +static bfd_boolean +ppc_elf_mkobject (bfd *abfd) +{ + bfd_size_type amt = sizeof (struct ppc_elf_obj_tdata); + abfd->tdata.any = bfd_zalloc (abfd, amt); + if (abfd->tdata.any == NULL) + return FALSE; + return TRUE; +} + /* The PPC linker needs to keep track of the number of relocs that it 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 @@ -174,6 +162,11 @@ struct ppc_elf_link_hash_entry { struct elf_link_hash_entry elf; + /* If this symbol is used in the linker created sections, the processor + specific backend uses this field to map the field into the offset + from the beginning of the section. */ + elf_linker_section_pointers_t *linker_section_pointer; + /* Track dynamic relocs copied for this symbol. */ struct ppc_elf_dyn_relocs *dyn_relocs; @@ -210,6 +203,7 @@ struct ppc_elf_link_hash_table asection *relsbss; elf_linker_section_t *sdata; elf_linker_section_t *sdata2; + asection *sbss; /* Short-cut to first output tls section. */ asection *tls_sec; @@ -235,10 +229,9 @@ struct ppc_elf_link_hash_table /* Create an entry in a PPC ELF linker hash table. */ static struct bfd_hash_entry * -ppc_elf_link_hash_newfunc (entry, table, string) - struct bfd_hash_entry *entry; - struct bfd_hash_table *table; - const char *string; +ppc_elf_link_hash_newfunc (struct bfd_hash_entry *entry, + struct bfd_hash_table *table, + const char *string) { /* Allocate the structure if it has not already been allocated by a subclass. */ @@ -254,6 +247,7 @@ ppc_elf_link_hash_newfunc (entry, table, entry = _bfd_elf_link_hash_newfunc (entry, table, string); if (entry != NULL) { + ppc_elf_hash_entry (entry)->linker_section_pointer = NULL; ppc_elf_hash_entry (entry)->dyn_relocs = NULL; ppc_elf_hash_entry (entry)->tls_mask = 0; } @@ -264,13 +258,11 @@ ppc_elf_link_hash_newfunc (entry, table, /* Create a PPC ELF linker hash table. */ static struct bfd_link_hash_table * -ppc_elf_link_hash_table_create (abfd) - bfd *abfd; +ppc_elf_link_hash_table_create (bfd *abfd) { struct ppc_elf_link_hash_table *ret; - ret = ((struct ppc_elf_link_hash_table *) - bfd_malloc (sizeof (struct ppc_elf_link_hash_table))); + ret = bfd_zmalloc (sizeof (struct ppc_elf_link_hash_table)); if (ret == NULL) return NULL; @@ -281,21 +273,6 @@ ppc_elf_link_hash_table_create (abfd) return NULL; } - ret->got = NULL; - ret->relgot = NULL; - ret->plt = NULL; - ret->relplt = NULL; - ret->dynbss = NULL; - ret->relbss = NULL; - ret->dynsbss = NULL; - ret->relsbss = NULL; - ret->sdata = NULL; - ret->sdata2 = NULL; - ret->tls_sec = NULL; - ret->tls_get_addr = NULL; - ret->tlsld_got.refcount = 0; - ret->sym_sec.abfd = NULL; - return &ret->elf.root; } @@ -308,9 +285,9 @@ ppc_elf_link_hash_table_create (abfd) /* Copy the extra info we tack onto an elf_link_hash_entry. */ static void -ppc_elf_copy_indirect_symbol (bed, dir, ind) - struct elf_backend_data *bed; - struct elf_link_hash_entry *dir, *ind; +ppc_elf_copy_indirect_symbol (struct elf_backend_data *bed, + struct elf_link_hash_entry *dir, + struct elf_link_hash_entry *ind) { struct ppc_elf_link_hash_entry *edir, *eind; @@ -367,7 +344,7 @@ ppc_elf_copy_indirect_symbol (bed, dir, _bfd_elf_link_hash_copy_indirect (bed, dir, ind); } -static reloc_howto_type *ppc_elf_howto_table[(int) R_PPC_max]; +static reloc_howto_type *ppc_elf_howto_table[R_PPC_max]; static reloc_howto_type ppc_elf_howto_raw[] = { /* This reloc does nothing. */ @@ -1606,7 +1583,7 @@ static reloc_howto_type ppc_elf_howto_ra /* Initialize the ppc_elf_howto_table, so that linear accesses can be done. */ static void -ppc_elf_howto_init () +ppc_elf_howto_init (void) { unsigned int i, type; @@ -1647,23 +1624,20 @@ ppc_elf_howto_init () /* Sort sections by address. */ static int -ppc_elf_sort_rela (arg1, arg2) - const PTR arg1; - const PTR arg2; +ppc_elf_sort_rela (const void *arg1, const void *arg2) { - const Elf_Internal_Rela **rela1 = (const Elf_Internal_Rela**) arg1; - const Elf_Internal_Rela **rela2 = (const Elf_Internal_Rela**) arg2; + const Elf_Internal_Rela * const *rela1 = arg1; + const Elf_Internal_Rela * const *rela2 = arg2; /* Sort by offset. */ return ((*rela1)->r_offset - (*rela2)->r_offset); } static bfd_boolean -ppc_elf_relax_section (abfd, isec, link_info, again) - bfd *abfd; - asection *isec; - struct bfd_link_info *link_info; - bfd_boolean *again; +ppc_elf_relax_section (bfd *abfd, + asection *isec, + struct bfd_link_info *link_info, + bfd_boolean *again) { #define PAGESIZE 0x1000 @@ -1695,7 +1669,7 @@ ppc_elf_relax_section (abfd, isec, link_ else { /* Go get them off disk. */ - contents = (bfd_byte *) bfd_malloc (isec->_raw_size); + contents = bfd_malloc (isec->_raw_size); if (contents == NULL) goto error_return; free_contents = contents; @@ -1714,8 +1688,7 @@ ppc_elf_relax_section (abfd, isec, link_ /* Get a copy of the native relocations. */ internal_relocs - = _bfd_elf_link_read_relocs (abfd, isec, (PTR) NULL, - (Elf_Internal_Rela *) NULL, + = _bfd_elf_link_read_relocs (abfd, isec, NULL, NULL, link_info->keep_memory); if (internal_relocs == NULL) goto error_return; @@ -1725,15 +1698,15 @@ ppc_elf_relax_section (abfd, isec, link_ /* Setup a faster access method for the reloc info we need. */ amt = isec->reloc_count; amt *= sizeof (Elf_Internal_Rela*); - rela_comb = (Elf_Internal_Rela**) bfd_malloc (amt); + rela_comb = bfd_malloc (amt); if (rela_comb == NULL) goto error_return; for (n = 0; n < isec->reloc_count; ++n) { - long r_type; + enum elf_ppc_reloc_type r_type; r_type = ELF32_R_TYPE (internal_relocs[n].r_info); - if (r_type < 0 || r_type >= (int) R_PPC_max) + if (r_type >= R_PPC_max) goto error_return; /* Prologue constants are sometimes present in the ".text" @@ -1861,7 +1834,7 @@ ppc_elf_relax_section (abfd, isec, link_ #undef BO4 if (modified) { - bfd_put_32 (abfd, (bfd_vma) insn, contents + isec_offset); + bfd_put_32 (abfd, insn, contents + isec_offset); section_modified = TRUE; } } @@ -1910,20 +1883,19 @@ ppc_elf_relax_section (abfd, isec, link_ } static reloc_howto_type * -ppc_elf_reloc_type_lookup (abfd, code) - bfd *abfd ATTRIBUTE_UNUSED; - bfd_reloc_code_real_type code; +ppc_elf_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED, + bfd_reloc_code_real_type code) { enum elf_ppc_reloc_type r; + /* Initialize howto table if not already done. */ if (!ppc_elf_howto_table[R_PPC_ADDR32]) - /* Initialize howto table if needed. */ ppc_elf_howto_init (); - switch ((int) code) + switch (code) { default: - return (reloc_howto_type *) NULL; + return NULL; case BFD_RELOC_NONE: r = R_PPC_NONE; break; case BFD_RELOC_32: r = R_PPC_ADDR32; break; @@ -2008,19 +1980,18 @@ ppc_elf_reloc_type_lookup (abfd, code) case BFD_RELOC_VTABLE_ENTRY: r = R_PPC_GNU_VTENTRY; break; } - return ppc_elf_howto_table[(int) r]; + return ppc_elf_howto_table[r]; }; /* Set the howto pointer for a PowerPC ELF reloc. */ static void -ppc_elf_info_to_howto (abfd, cache_ptr, dst) - bfd *abfd ATTRIBUTE_UNUSED; - arelent *cache_ptr; - Elf_Internal_Rela *dst; +ppc_elf_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, + arelent *cache_ptr, + Elf_Internal_Rela *dst) { + /* Initialize howto table if not already done. */ if (!ppc_elf_howto_table[R_PPC_ADDR32]) - /* Initialize howto table if needed. */ ppc_elf_howto_init (); BFD_ASSERT (ELF32_R_TYPE (dst->r_info) < (unsigned int) R_PPC_max); @@ -2030,15 +2001,13 @@ ppc_elf_info_to_howto (abfd, cache_ptr, /* Handle the R_PPC_ADDR16_HA reloc. */ static bfd_reloc_status_type -ppc_elf_addr16_ha_reloc (abfd, reloc_entry, symbol, data, input_section, - output_bfd, error_message) - bfd *abfd ATTRIBUTE_UNUSED; - arelent *reloc_entry; - asymbol *symbol; - PTR data ATTRIBUTE_UNUSED; - asection *input_section; - bfd *output_bfd; - char **error_message ATTRIBUTE_UNUSED; +ppc_elf_addr16_ha_reloc (bfd *abfd ATTRIBUTE_UNUSED, + arelent *reloc_entry, + asymbol *symbol, + void *data ATTRIBUTE_UNUSED, + asection *input_section, + bfd *output_bfd, + char **error_message ATTRIBUTE_UNUSED) { bfd_vma relocation; @@ -2066,15 +2035,13 @@ ppc_elf_addr16_ha_reloc (abfd, reloc_ent } static bfd_reloc_status_type -ppc_elf_unhandled_reloc (abfd, reloc_entry, symbol, data, - input_section, output_bfd, error_message) - bfd *abfd; - arelent *reloc_entry; - asymbol *symbol; - PTR data; - asection *input_section; - bfd *output_bfd; - char **error_message; +ppc_elf_unhandled_reloc (bfd *abfd, + arelent *reloc_entry, + asymbol *symbol, + void *data, + asection *input_section, + bfd *output_bfd, + char **error_message) { /* If this is a relocatable link (output_bfd test tells us), just call the generic function. Any adjustment will be done at final @@ -2086,7 +2053,7 @@ ppc_elf_unhandled_reloc (abfd, reloc_ent if (error_message != NULL) { static char buf[60]; - sprintf (buf, "generic linker can't handle %s", + sprintf (buf, _("generic linker can't handle %s"), reloc_entry->howto->name); *error_message = buf; } @@ -2097,8 +2064,7 @@ ppc_elf_unhandled_reloc (abfd, reloc_ent default is 64 bit. */ static bfd_boolean -ppc_elf_object_p (abfd) - bfd *abfd; +ppc_elf_object_p (bfd *abfd) { if (abfd->arch_info->the_default && abfd->arch_info->bits_per_word == 64) { @@ -2117,9 +2083,7 @@ ppc_elf_object_p (abfd) /* Function to set whether a module needs the -mrelocatable bit set. */ static bfd_boolean -ppc_elf_set_private_flags (abfd, flags) - bfd *abfd; - flagword flags; +ppc_elf_set_private_flags (bfd *abfd, flagword flags) { BFD_ASSERT (!elf_flags_init (abfd) || elf_elfheader (abfd)->e_flags == flags); @@ -2133,9 +2097,7 @@ ppc_elf_set_private_flags (abfd, flags) object file when linking. */ static bfd_boolean -ppc_elf_merge_private_bfd_data (ibfd, obfd) - bfd *ibfd; - bfd *obfd; +ppc_elf_merge_private_bfd_data (bfd *ibfd, bfd *obfd) { flagword old_flags; flagword new_flags; @@ -2173,7 +2135,8 @@ ppc_elf_merge_private_bfd_data (ibfd, ob { error = TRUE; (*_bfd_error_handler) - (_("%s: compiled with -mrelocatable and linked with modules compiled normally"), + (_("%s: compiled with -mrelocatable and linked with " + "modules compiled normally"), bfd_archive_filename (ibfd)); } else if ((new_flags & (EF_PPC_RELOCATABLE | EF_PPC_RELOCATABLE_LIB)) == 0 @@ -2181,7 +2144,8 @@ ppc_elf_merge_private_bfd_data (ibfd, ob { error = TRUE; (*_bfd_error_handler) - (_("%s: compiled normally and linked with modules compiled with -mrelocatable"), + (_("%s: compiled normally and linked with " + "modules compiled with -mrelocatable"), bfd_archive_filename (ibfd)); } @@ -2208,7 +2172,8 @@ ppc_elf_merge_private_bfd_data (ibfd, ob { error = TRUE; (*_bfd_error_handler) - (_("%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"), + (_("%s: uses different e_flags (0x%lx) fields " + "than previous modules (0x%lx)"), bfd_archive_filename (ibfd), (long) new_flags, (long) old_flags); } @@ -2226,10 +2191,7 @@ ppc_elf_merge_private_bfd_data (ibfd, ob is called when elfcode.h finds a section with an unknown type. */ static bfd_boolean -ppc_elf_section_from_shdr (abfd, hdr, name) - bfd *abfd; - Elf_Internal_Shdr *hdr; - const char *name; +ppc_elf_section_from_shdr (bfd *abfd, Elf_Internal_Shdr *hdr, const char *name) { asection *newsect; flagword flags; @@ -2252,10 +2214,9 @@ ppc_elf_section_from_shdr (abfd, hdr, na /* Set up any other section flags and such that may be necessary. */ static bfd_boolean -ppc_elf_fake_sections (abfd, shdr, asect) - bfd *abfd ATTRIBUTE_UNUSED; - Elf_Internal_Shdr *shdr; - asection *asect; +ppc_elf_fake_sections (bfd *abfd ATTRIBUTE_UNUSED, + Elf_Internal_Shdr *shdr, + asection *asect) { if ((asect->flags & SEC_EXCLUDE) != 0) shdr->sh_flags |= SHF_EXCLUDE; @@ -2266,72 +2227,359 @@ ppc_elf_fake_sections (abfd, shdr, asect return TRUE; } +/* Find a linker generated pointer with a given addend and type. */ + +static elf_linker_section_pointers_t * +elf_find_pointer_linker_section + (elf_linker_section_pointers_t *linker_pointers, + bfd_vma addend, + elf_linker_section_t *lsect) +{ + for ( ; linker_pointers != NULL; linker_pointers = linker_pointers->next) + if (lsect == linker_pointers->lsect && addend == linker_pointers->addend) + return linker_pointers; + + return NULL; +} + +/* Allocate a pointer to live in a linker created section. */ + +static bfd_boolean +elf_create_pointer_linker_section (bfd *abfd, + struct bfd_link_info *info, + elf_linker_section_t *lsect, + struct elf_link_hash_entry *h, + const Elf_Internal_Rela *rel) +{ + elf_linker_section_pointers_t **ptr_linker_section_ptr = NULL; + elf_linker_section_pointers_t *linker_section_ptr; + unsigned long r_symndx = ELF32_R_SYM (rel->r_info); + bfd_size_type amt; + + BFD_ASSERT (lsect != NULL); + + /* Is this a global symbol? */ + if (h != NULL) + { + struct ppc_elf_link_hash_entry *eh; + + /* Has this symbol already been allocated? If so, our work is done. */ + eh = (struct ppc_elf_link_hash_entry *) h; + if (elf_find_pointer_linker_section (eh->linker_section_pointer, + rel->r_addend, + lsect)) + return TRUE; + + ptr_linker_section_ptr = &eh->linker_section_pointer; + /* Make sure this symbol is output as a dynamic symbol. */ + if (h->dynindx == -1) + { + if (! _bfd_elf_link_record_dynamic_symbol (info, h)) + return FALSE; + } + + if (lsect->rel_section) + lsect->rel_section->_raw_size += sizeof (Elf32_External_Rela); + } + else + { + /* Allocation of a pointer to a local symbol. */ + elf_linker_section_pointers_t **ptr = elf_local_ptr_offsets (abfd); + + /* Allocate a table to hold the local symbols if first time. */ + if (!ptr) + { + unsigned int num_symbols = elf_tdata (abfd)->symtab_hdr.sh_info; + + amt = num_symbols; + amt *= sizeof (elf_linker_section_pointers_t *); + ptr = bfd_zalloc (abfd, amt); + + if (!ptr) + return FALSE; + + elf_local_ptr_offsets (abfd) = ptr; + } + + /* Has this symbol already been allocated? If so, our work is done. */ + if (elf_find_pointer_linker_section (ptr[r_symndx], + rel->r_addend, + lsect)) + return TRUE; + + ptr_linker_section_ptr = &ptr[r_symndx]; + + if (info->shared) + { + /* If we are generating a shared object, we need to + output a R__RELATIVE reloc so that the + dynamic linker can adjust this GOT entry. */ + BFD_ASSERT (lsect->rel_section != NULL); + lsect->rel_section->_raw_size += sizeof (Elf32_External_Rela); + } + } + + /* Allocate space for a pointer in the linker section, and allocate + a new pointer record from internal memory. */ + BFD_ASSERT (ptr_linker_section_ptr != NULL); + amt = sizeof (elf_linker_section_pointers_t); + linker_section_ptr = bfd_alloc (abfd, amt); + + if (!linker_section_ptr) + return FALSE; + + linker_section_ptr->next = *ptr_linker_section_ptr; + linker_section_ptr->addend = rel->r_addend; + linker_section_ptr->lsect = lsect; + linker_section_ptr->written_address_p = FALSE; + *ptr_linker_section_ptr = linker_section_ptr; + + linker_section_ptr->offset = lsect->section->_raw_size; + lsect->section->_raw_size += 4; + +#ifdef DEBUG + fprintf (stderr, + "Create pointer in linker section %s, offset = %ld, section size = %ld\n", + lsect->name, (long) linker_section_ptr->offset, + (long) lsect->section->_raw_size); +#endif + + return TRUE; +} + +#define bfd_put_ptr(BFD, VAL, ADDR) bfd_put_32 (BFD, VAL, ADDR) + +/* Fill in the address for a pointer generated in a linker section. */ + +static bfd_vma +elf_finish_pointer_linker_section (bfd *output_bfd, + bfd *input_bfd, + struct bfd_link_info *info, + elf_linker_section_t *lsect, + struct elf_link_hash_entry *h, + bfd_vma relocation, + const Elf_Internal_Rela *rel, + int relative_reloc) +{ + elf_linker_section_pointers_t *linker_section_ptr; + + BFD_ASSERT (lsect != NULL); + + if (h != NULL) + { + /* Handle global symbol. */ + struct ppc_elf_link_hash_entry *eh; + + eh = (struct ppc_elf_link_hash_entry *) h; + linker_section_ptr + = elf_find_pointer_linker_section (eh->linker_section_pointer, + rel->r_addend, + lsect); + + BFD_ASSERT (linker_section_ptr != NULL); + + if (! elf_hash_table (info)->dynamic_sections_created + || (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. We must initialize this entry in the + global section. + + When doing a dynamic link, we create a .rela. + relocation entry to initialize the value. This + is done in the finish_dynamic_symbol routine. */ + if (!linker_section_ptr->written_address_p) + { + linker_section_ptr->written_address_p = TRUE; + bfd_put_ptr (output_bfd, + relocation + linker_section_ptr->addend, + (lsect->section->contents + + linker_section_ptr->offset)); + } + } + } + else + { + /* Handle local symbol. */ + unsigned long r_symndx = ELF32_R_SYM (rel->r_info); + BFD_ASSERT (elf_local_ptr_offsets (input_bfd) != NULL); + BFD_ASSERT (elf_local_ptr_offsets (input_bfd)[r_symndx] != NULL); + linker_section_ptr = (elf_find_pointer_linker_section + (elf_local_ptr_offsets (input_bfd)[r_symndx], + rel->r_addend, + lsect)); + + BFD_ASSERT (linker_section_ptr != NULL); + + /* Write out pointer if it hasn't been rewritten out before. */ + if (!linker_section_ptr->written_address_p) + { + linker_section_ptr->written_address_p = TRUE; + bfd_put_ptr (output_bfd, relocation + linker_section_ptr->addend, + lsect->section->contents + linker_section_ptr->offset); + + if (info->shared) + { + /* We need to generate a relative reloc for the dynamic + linker. */ + + asection *srel = lsect->rel_section; + Elf_Internal_Rela outrel[MAX_INT_RELS_PER_EXT_REL]; + bfd_byte *erel; + struct elf_backend_data *bed = get_elf_backend_data (output_bfd); + unsigned int i; + + BFD_ASSERT (srel != NULL); + + for (i = 0; i < bed->s->int_rels_per_ext_rel; i++) + { + outrel[i].r_offset = (lsect->section->output_section->vma + + lsect->section->output_offset + + linker_section_ptr->offset); + outrel[i].r_info = 0; + outrel[i].r_addend = 0; + } + outrel[0].r_info = ELF32_R_INFO (0, relative_reloc); + erel = lsect->section->contents; + erel += (elf_section_data (lsect->section)->rel_count++ + * sizeof (Elf32_External_Rela)); + bfd_elf32_swap_reloca_out (output_bfd, outrel, erel); + } + } + } + + relocation = (lsect->section->output_offset + + linker_section_ptr->offset + - lsect->sym_offset); + +#ifdef DEBUG + fprintf (stderr, + "Finish pointer in linker section %s, offset = %ld (0x%lx)\n", + lsect->name, (long) relocation, (long) relocation); +#endif + + /* Subtract out the addend, because it will get added back in by the normal + processing. */ + return relocation - linker_section_ptr->addend; +} + /* Create a special linker section */ static elf_linker_section_t * -ppc_elf_create_linker_section (abfd, info, which) - bfd *abfd; - struct bfd_link_info *info; - enum elf_linker_section_enum which; +ppc_elf_create_linker_section (bfd *abfd, + struct bfd_link_info *info, + enum elf_linker_section_enum which) { - bfd *dynobj = elf_hash_table (info)->dynobj; elf_linker_section_t *lsect; + struct ppc_elf_link_hash_table *htab = ppc_elf_hash_table (info); + asection *s; + bfd_size_type amt; + flagword flags; + const char *name; + const char *rel_name; + const char *sym_name; + bfd_vma sym_offset; + + /* Both of these sections are (technically) created by the user + putting data in them, so they shouldn't be marked + SEC_LINKER_CREATED. + + The linker creates them so it has somewhere to attach their + respective symbols. In fact, if they were empty it would + be OK to leave the symbol set to 0 (or any random number), because + the appropriate register should never be used. */ + flags = SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS | SEC_IN_MEMORY; + sym_offset = 32768; - /* Record the first bfd section that needs the special section. */ - if (!dynobj) - dynobj = elf_hash_table (info)->dynobj = abfd; - - /* If this is the first time, create the section. */ - lsect = elf_linker_section (dynobj, which); - if (!lsect) - { - elf_linker_section_t defaults; - static elf_linker_section_t zero_section; - - defaults = zero_section; - defaults.which = which; - defaults.hole_written_p = FALSE; - defaults.alignment = 2; - - /* Both of these sections are (technically) created by the user - putting data in them, so they shouldn't be marked - SEC_LINKER_CREATED. - - The linker creates them so it has somewhere to attach their - respective symbols. In fact, if they were empty it would - be OK to leave the symbol set to 0 (or any random number), because - the appropriate register should never be used. */ - defaults.flags = (SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS - | SEC_IN_MEMORY); + switch (which) + { + default: + abort (); + return NULL; - switch (which) - { - default: - (*_bfd_error_handler) (_("%s: unknown special linker type %d"), - bfd_get_filename (abfd), - (int) which); + case LINKER_SECTION_SDATA: /* .sdata/.sbss section */ + name = ".sdata"; + rel_name = ".rela.sdata"; + sym_name = "_SDA_BASE_"; + break; - bfd_set_error (bfd_error_bad_value); - return (elf_linker_section_t *) 0; + case LINKER_SECTION_SDATA2: /* .sdata2/.sbss2 section */ + name = ".sdata2"; + rel_name = ".rela.sdata2"; + sym_name = "_SDA2_BASE_"; + flags |= SEC_READONLY; + break; + } - case LINKER_SECTION_SDATA: /* .sdata/.sbss section */ - defaults.name = ".sdata"; - defaults.rel_name = ".rela.sdata"; - defaults.bss_name = ".sbss"; - defaults.sym_name = "_SDA_BASE_"; - defaults.sym_offset = 32768; - break; + /* Record the first bfd that needs the special sections. */ + if (!htab->elf.dynobj) + htab->elf.dynobj = abfd; - case LINKER_SECTION_SDATA2: /* .sdata2/.sbss2 section */ - defaults.name = ".sdata2"; - defaults.rel_name = ".rela.sdata2"; - defaults.bss_name = ".sbss2"; - defaults.sym_name = "_SDA2_BASE_"; - defaults.sym_offset = 32768; - defaults.flags |= SEC_READONLY; - break; - } + amt = sizeof (elf_linker_section_t); + lsect = bfd_zalloc (htab->elf.dynobj, amt); + + lsect->sym_offset = sym_offset; + + /* See if the sections already exist. */ + s = bfd_get_section_by_name (htab->elf.dynobj, name); + if (s == NULL || (s->flags & flags) != flags) + { + s = bfd_make_section_anyway (htab->elf.dynobj, name); + if (s == NULL + || !bfd_set_section_flags (htab->elf.dynobj, s, flags)) + return NULL; + } + lsect->section = s; - lsect = _bfd_elf_create_linker_section (abfd, info, which, &defaults); + if (bfd_get_section_alignment (htab->elf.dynobj, s) < 2 + && !bfd_set_section_alignment (htab->elf.dynobj, s, 2)) + return NULL; + + s->_raw_size = align_power (s->_raw_size, 2); + +#ifdef DEBUG + fprintf (stderr, "Creating section %s, current size = %ld\n", + name, (long) s->_raw_size); +#endif + + if (sym_name) + { + struct elf_link_hash_entry *h; + struct bfd_link_hash_entry *bh; + +#ifdef DEBUG + fprintf (stderr, "Adding %s to section %s\n", sym_name, name); +#endif + bh = bfd_link_hash_lookup (info->hash, sym_name, + FALSE, FALSE, FALSE); + + if ((bh == NULL || bh->type == bfd_link_hash_undefined) + && !(_bfd_generic_link_add_one_symbol + (info, abfd, sym_name, BSF_GLOBAL, s, sym_offset, NULL, + FALSE, get_elf_backend_data (abfd)->collect, &bh))) + return NULL; + h = (struct elf_link_hash_entry *) bh; + + h->type = STT_OBJECT; + lsect->sym_hash = h; + + if (info->shared + && ! _bfd_elf_link_record_dynamic_symbol (info, h)) + return NULL; + } + + if (info->shared) + { + s = bfd_make_section_anyway (htab->elf.dynobj, rel_name); + lsect->rel_section = s; + flags = (SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS | SEC_IN_MEMORY + | SEC_LINKER_CREATED | SEC_READONLY); + if (s == NULL + || ! bfd_set_section_flags (htab->elf.dynobj, s, flags) + || ! bfd_set_section_alignment (htab->elf.dynobj, s, 2)) + return NULL; } return lsect; @@ -2341,8 +2589,7 @@ ppc_elf_create_linker_section (abfd, inf need to bump up the number of section headers. */ static int -ppc_elf_additional_program_headers (abfd) - bfd *abfd; +ppc_elf_additional_program_headers (bfd *abfd) { asection *s; int ret; @@ -2367,8 +2614,7 @@ ppc_elf_additional_program_headers (abfd /* Modify the segment map if needed. */ static bfd_boolean -ppc_elf_modify_segment_map (abfd) - bfd *abfd ATTRIBUTE_UNUSED; +ppc_elf_modify_segment_map (bfd *abfd ATTRIBUTE_UNUSED) { return TRUE; } @@ -2376,9 +2622,7 @@ ppc_elf_modify_segment_map (abfd) /* The powerpc .got has a blrl instruction in it. Mark it executable. */ static bfd_boolean -ppc_elf_create_got (abfd, info) - bfd *abfd; - struct bfd_link_info *info; +ppc_elf_create_got (bfd *abfd, struct bfd_link_info *info) { struct ppc_elf_link_hash_table *htab; asection *s; @@ -2414,15 +2658,16 @@ ppc_elf_create_got (abfd, info) to create .dynbss and .rela.bss). */ static bfd_boolean -ppc_elf_create_dynamic_sections (abfd, info) - bfd *abfd; - struct bfd_link_info *info; +ppc_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info) { struct ppc_elf_link_hash_table *htab; asection *s; flagword flags; - if (!ppc_elf_create_got (abfd, info)) + htab = ppc_elf_hash_table (info); + + if (htab->got == NULL + && !ppc_elf_create_got (abfd, info)) return FALSE; if (!_bfd_elf_create_dynamic_sections (abfd, info)) @@ -2431,7 +2676,6 @@ ppc_elf_create_dynamic_sections (abfd, i flags = (SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS | SEC_IN_MEMORY | SEC_LINKER_CREATED); - htab = ppc_elf_hash_table (info); htab->dynbss = bfd_get_section_by_name (abfd, ".dynbss"); htab->dynsbss = s = bfd_make_section (abfd, ".dynsbss"); if (s == NULL @@ -2464,9 +2708,8 @@ ppc_elf_create_dynamic_sections (abfd, i understand. */ static bfd_boolean -ppc_elf_adjust_dynamic_symbol (info, h) - struct bfd_link_info *info; - struct elf_link_hash_entry *h; +ppc_elf_adjust_dynamic_symbol (struct bfd_link_info *info, + struct elf_link_hash_entry *h) { struct ppc_elf_link_hash_table *htab; asection *s; @@ -2655,11 +2898,9 @@ ppc_elf_adjust_dynamic_symbol (info, h) /* Allocate space in associated reloc sections for dynamic relocs. */ static bfd_boolean -allocate_dynrelocs (h, inf) - struct elf_link_hash_entry *h; - PTR inf; +allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf) { - struct bfd_link_info *info = (struct bfd_link_info *) inf; + struct bfd_link_info *info = inf; struct ppc_elf_link_hash_entry *eh; struct ppc_elf_link_hash_table *htab; struct ppc_elf_dyn_relocs *p; @@ -2719,7 +2960,7 @@ allocate_dynrelocs (h, inf) for two entries is allocated. */ s->_raw_size += PLT_ENTRY_SIZE; if ((s->_raw_size - PLT_INITIAL_ENTRY_SIZE) / PLT_ENTRY_SIZE - >= PLT_NUM_SINGLE_ENTRIES) + > PLT_NUM_SINGLE_ENTRIES) s->_raw_size += PLT_ENTRY_SIZE; /* We also need to make an entry in the .rela.plt section. */ @@ -2804,7 +3045,7 @@ allocate_dynrelocs (h, inf) generated via assembly. We want calls to protected symbols to resolve directly to the function rather than going via the plt. If people want function pointer comparisons to work as expected - then they should avoid writing weird assembly. */ + then they should avoid writing weird assembly. */ if (SYMBOL_CALLS_LOCAL (info, h)) { struct ppc_elf_dyn_relocs **pp; @@ -2869,9 +3110,7 @@ allocate_dynrelocs (h, inf) /* Find any dynamic relocs that apply to read-only sections. */ static bfd_boolean -readonly_dynrelocs (h, info) - struct elf_link_hash_entry *h; - PTR info; +readonly_dynrelocs (struct elf_link_hash_entry *h, void *info) { struct ppc_elf_dyn_relocs *p; @@ -2901,9 +3140,8 @@ readonly_dynrelocs (h, info) /* Set the sizes of the dynamic sections. */ static bfd_boolean -ppc_elf_size_dynamic_sections (output_bfd, info) - bfd *output_bfd ATTRIBUTE_UNUSED; - struct bfd_link_info *info; +ppc_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, + struct bfd_link_info *info) { struct ppc_elf_link_hash_table *htab; asection *s; @@ -2920,7 +3158,7 @@ ppc_elf_size_dynamic_sections (output_bf if (elf_hash_table (info)->dynamic_sections_created) { /* Set the contents of the .interp section to the interpreter. */ - if (! info->shared) + if (info->executable) { s = bfd_get_section_by_name (htab->elf.dynobj, ".interp"); BFD_ASSERT (s != NULL); @@ -3087,7 +3325,7 @@ ppc_elf_size_dynamic_sections (output_bf } /* Allocate memory for the section contents. */ - s->contents = (bfd_byte *) bfd_zalloc (htab->elf.dynobj, s->_raw_size); + s->contents = bfd_zalloc (htab->elf.dynobj, s->_raw_size); if (s->contents == NULL) return FALSE; } @@ -3100,9 +3338,9 @@ ppc_elf_size_dynamic_sections (output_bf the .dynamic section. The DT_DEBUG entry is filled in by the dynamic linker and used by the debugger. */ #define add_dynamic_entry(TAG, VAL) \ - bfd_elf32_add_dynamic_entry (info, (bfd_vma) (TAG), (bfd_vma) (VAL)) + bfd_elf32_add_dynamic_entry (info, (TAG), (VAL)) - if (!info->shared) + if (info->executable) { if (!add_dynamic_entry (DT_DEBUG, 0)) return FALSE; @@ -3129,7 +3367,7 @@ ppc_elf_size_dynamic_sections (output_bf need a DT_TEXTREL entry. */ if ((info->flags & DF_TEXTREL) == 0) elf_link_hash_traverse (elf_hash_table (info), readonly_dynrelocs, - (PTR) info); + info); if ((info->flags & DF_TEXTREL) != 0) { @@ -3143,11 +3381,10 @@ ppc_elf_size_dynamic_sections (output_bf } static bfd_boolean -update_local_sym_info (abfd, symtab_hdr, r_symndx, tls_type) - bfd *abfd; - Elf_Internal_Shdr *symtab_hdr; - unsigned long r_symndx; - int tls_type; +update_local_sym_info (bfd *abfd, + Elf_Internal_Shdr *symtab_hdr, + unsigned long r_symndx, + int tls_type) { bfd_signed_vma *local_got_refcounts = elf_local_got_refcounts (abfd); char *local_got_tls_masks; @@ -3157,7 +3394,7 @@ update_local_sym_info (abfd, symtab_hdr, bfd_size_type size = symtab_hdr->sh_info; size *= sizeof (*local_got_refcounts) + sizeof (*local_got_tls_masks); - local_got_refcounts = (bfd_signed_vma *) bfd_zalloc (abfd, size); + local_got_refcounts = bfd_zalloc (abfd, size); if (local_got_refcounts == NULL) return FALSE; elf_local_got_refcounts (abfd) = local_got_refcounts; @@ -3170,14 +3407,12 @@ update_local_sym_info (abfd, symtab_hdr, } static void -bad_shared_reloc (abfd, r_type) - bfd *abfd; - enum elf_ppc_reloc_type r_type; +bad_shared_reloc (bfd *abfd, enum elf_ppc_reloc_type r_type) { (*_bfd_error_handler) (_("%s: relocation %s cannot be used when making a shared object"), bfd_archive_filename (abfd), - ppc_elf_howto_table[(int) r_type]->name); + ppc_elf_howto_table[r_type]->name); bfd_set_error (bfd_error_bad_value); } @@ -3186,11 +3421,10 @@ bad_shared_reloc (abfd, r_type) table. */ static bfd_boolean -ppc_elf_check_relocs (abfd, info, sec, relocs) - bfd *abfd; - struct bfd_link_info *info; - asection *sec; - const Elf_Internal_Rela *relocs; +ppc_elf_check_relocs (bfd *abfd, + struct bfd_link_info *info, + asection *sec, + const Elf_Internal_Rela *relocs) { struct ppc_elf_link_hash_table *htab; Elf_Internal_Shdr *symtab_hdr; @@ -3199,7 +3433,7 @@ ppc_elf_check_relocs (abfd, info, sec, r const Elf_Internal_Rela *rel_end; asection *sreloc; - if (info->relocateable) + if (info->relocatable) return TRUE; #ifdef DEBUG @@ -3208,26 +3442,25 @@ ppc_elf_check_relocs (abfd, info, sec, r bfd_archive_filename (abfd)); #endif + /* Initialize howto table if not already done. */ + if (!ppc_elf_howto_table[R_PPC_ADDR32]) + ppc_elf_howto_init (); + /* Create the linker generated sections all the time so that the special symbols are created. */ - htab = ppc_elf_hash_table (info); if (htab->sdata == NULL) { - htab->sdata = elf_linker_section (abfd, LINKER_SECTION_SDATA); - if (htab->sdata == NULL) - htab->sdata = ppc_elf_create_linker_section (abfd, info, - LINKER_SECTION_SDATA); + htab->sdata = ppc_elf_create_linker_section (abfd, info, + LINKER_SECTION_SDATA); if (htab->sdata == NULL) return FALSE; } if (htab->sdata2 == NULL) { - htab->sdata2 = elf_linker_section (abfd, LINKER_SECTION_SDATA2); - if (htab->sdata2 == NULL) - htab->sdata2 = ppc_elf_create_linker_section (abfd, info, - LINKER_SECTION_SDATA2); + htab->sdata2 = ppc_elf_create_linker_section (abfd, info, + LINKER_SECTION_SDATA2); if (htab->sdata2 == NULL) return FALSE; } @@ -3264,7 +3497,7 @@ ppc_elf_check_relocs (abfd, info, sec, r } } - r_type = (enum elf_ppc_reloc_type) ELF32_R_TYPE (rel->r_info); + r_type = ELF32_R_TYPE (rel->r_info); switch (r_type) { case R_PPC_GOT_TLSLD16: @@ -3331,8 +3564,8 @@ ppc_elf_check_relocs (abfd, info, sec, r bad_shared_reloc (abfd, r_type); return FALSE; } - if (!bfd_elf32_create_pointer_linker_section (abfd, info, - htab->sdata, h, rel)) + if (!elf_create_pointer_linker_section (abfd, info, + htab->sdata, h, rel)) return FALSE; break; @@ -3343,8 +3576,8 @@ ppc_elf_check_relocs (abfd, info, sec, r bad_shared_reloc (abfd, r_type); return FALSE; } - if (!bfd_elf32_create_pointer_linker_section (abfd, info, - htab->sdata2, h, rel)) + if (!elf_create_pointer_linker_section (abfd, info, + htab->sdata2, h, rel)) return FALSE; break; @@ -3383,6 +3616,12 @@ ppc_elf_check_relocs (abfd, info, sec, r { /* It does not make sense to have a procedure linkage table entry for a local symbol. */ + (*_bfd_error_handler) (_("%s(%s+0x%lx): %s reloc against " + "local symbol"), + bfd_archive_filename (abfd), + sec->name, + (long) rel->r_offset, + ppc_elf_howto_table[r_type]->name); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -3542,7 +3781,9 @@ ppc_elf_check_relocs (abfd, info, sec, r struct ppc_elf_dyn_relocs **head; #ifdef DEBUG - fprintf (stderr, "ppc_elf_check_relocs need to create relocation for %s\n", + fprintf (stderr, + "ppc_elf_check_relocs needs to " + "create relocation for %s\n", (h && h->root.root.string ? h->root.root.string : "")); #endif @@ -3606,8 +3847,7 @@ ppc_elf_check_relocs (abfd, info, sec, r p = *head; if (p == NULL || p->sec != sec) { - p = ((struct ppc_elf_dyn_relocs *) - bfd_alloc (htab->elf.dynobj, sizeof *p)); + p = bfd_alloc (htab->elf.dynobj, sizeof *p); if (p == NULL) return FALSE; p->next = *head; @@ -3633,12 +3873,11 @@ ppc_elf_check_relocs (abfd, info, sec, r relocation. */ static asection * -ppc_elf_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; - Elf_Internal_Sym *sym; +ppc_elf_gc_mark_hook (asection *sec, + struct bfd_link_info *info ATTRIBUTE_UNUSED, + Elf_Internal_Rela *rel, + struct elf_link_hash_entry *h, + Elf_Internal_Sym *sym) { if (h != NULL) { @@ -3673,11 +3912,10 @@ ppc_elf_gc_mark_hook (sec, info, rel, h, section being removed. */ static bfd_boolean -ppc_elf_gc_sweep_hook (abfd, info, sec, relocs) - bfd *abfd; - struct bfd_link_info *info; - asection *sec; - const Elf_Internal_Rela *relocs; +ppc_elf_gc_sweep_hook (bfd *abfd, + struct bfd_link_info *info, + asection *sec, + const Elf_Internal_Rela *relocs) { struct ppc_elf_link_hash_table *htab; Elf_Internal_Shdr *symtab_hdr; @@ -3717,7 +3955,7 @@ ppc_elf_gc_sweep_hook (abfd, info, sec, } } - r_type = (enum elf_ppc_reloc_type) ELF32_R_TYPE (rel->r_info); + r_type = ELF32_R_TYPE (rel->r_info); switch (r_type) { case R_PPC_GOT_TLSLD16: @@ -3798,9 +4036,7 @@ ppc_elf_gc_sweep_hook (abfd, info, sec, /* Set htab->tls_sec and htab->tls_get_addr. */ bfd_boolean -ppc_elf_tls_setup (obfd, info) - bfd *obfd; - struct bfd_link_info *info; +ppc_elf_tls_setup (bfd *obfd, struct bfd_link_info *info) { asection *tls; struct ppc_elf_link_hash_table *htab; @@ -3822,15 +4058,14 @@ ppc_elf_tls_setup (obfd, info) opportunities. */ bfd_boolean -ppc_elf_tls_optimize (obfd, info) - bfd *obfd ATTRIBUTE_UNUSED; - struct bfd_link_info *info; +ppc_elf_tls_optimize (bfd *obfd ATTRIBUTE_UNUSED, + struct bfd_link_info *info) { bfd *ibfd; asection *sec; struct ppc_elf_link_hash_table *htab; - if (info->relocateable || info->shared) + if (info->relocatable || info->shared) return TRUE; htab = ppc_elf_hash_table (info); @@ -3846,8 +4081,7 @@ ppc_elf_tls_optimize (obfd, info) int expecting_tls_get_addr; /* Read the relocations. */ - relstart = _bfd_elf_link_read_relocs (ibfd, sec, (PTR) NULL, - (Elf_Internal_Rela *) NULL, + relstart = _bfd_elf_link_read_relocs (ibfd, sec, NULL, NULL, info->keep_memory); if (relstart == NULL) return FALSE; @@ -3880,7 +4114,7 @@ ppc_elf_tls_optimize (obfd, info) || !(h->elf_link_hash_flags & ELF_LINK_HASH_DEF_DYNAMIC)) is_local = TRUE; - r_type = (enum elf_ppc_reloc_type) ELF32_R_TYPE (rel->r_info); + r_type = ELF32_R_TYPE (rel->r_info); switch (r_type) { case R_PPC_GOT_TLSLD16: @@ -4017,55 +4251,36 @@ ppc_elf_tls_optimize (obfd, info) file. We use it to put .comm items in .sbss, and not .bss. */ static bfd_boolean -ppc_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp) - bfd *abfd; - struct bfd_link_info *info; - const Elf_Internal_Sym *sym; - const char **namep ATTRIBUTE_UNUSED; - flagword *flagsp ATTRIBUTE_UNUSED; - asection **secp; - bfd_vma *valp; +ppc_elf_add_symbol_hook (bfd *abfd, + struct bfd_link_info *info, + const Elf_Internal_Sym *sym, + const char **namep ATTRIBUTE_UNUSED, + flagword *flagsp ATTRIBUTE_UNUSED, + asection **secp, + bfd_vma *valp) { if (sym->st_shndx == SHN_COMMON - && !info->relocateable + && !info->relocatable && sym->st_size <= elf_gp_size (abfd) - && info->hash->creator->flavour == bfd_target_elf_flavour) + && (info->hash->creator == abfd->xvec + || info->hash->creator == abfd->xvec->alternative_target)) { /* Common symbols less than or equal to -G nn bytes are automatically - put into .sdata. */ - elf_linker_section_t *sdata - = ppc_elf_create_linker_section (abfd, info, LINKER_SECTION_SDATA); + put into .sbss. */ + struct ppc_elf_link_hash_table *htab; - if (!sdata->bss_section) + htab = ppc_elf_hash_table (info); + if (htab->sbss == NULL) { - bfd_size_type amt; + flagword flags = SEC_IS_COMMON; - /* We don't go through bfd_make_section, because we don't - want to attach this common section to DYNOBJ. The linker - will move the symbols to the appropriate output section - when it defines common symbols. */ - amt = sizeof (asection); - sdata->bss_section = (asection *) bfd_zalloc (abfd, amt); - if (sdata->bss_section == NULL) + htab->sbss = bfd_make_section_anyway (abfd, ".sbss"); + if (htab->sbss == NULL + || ! bfd_set_section_flags (abfd, htab->sbss, flags)) return FALSE; - sdata->bss_section->name = sdata->bss_name; - sdata->bss_section->flags = SEC_IS_COMMON; - sdata->bss_section->output_section = sdata->bss_section; - amt = sizeof (asymbol); - sdata->bss_section->symbol = (asymbol *) bfd_zalloc (abfd, amt); - amt = sizeof (asymbol *); - sdata->bss_section->symbol_ptr_ptr = - (asymbol **) bfd_zalloc (abfd, amt); - if (sdata->bss_section->symbol == NULL - || sdata->bss_section->symbol_ptr_ptr == NULL) - return FALSE; - sdata->bss_section->symbol->name = sdata->bss_name; - sdata->bss_section->symbol->flags = BSF_SECTION_SYM; - sdata->bss_section->symbol->section = sdata->bss_section; - *sdata->bss_section->symbol_ptr_ptr = sdata->bss_section->symbol; } - *secp = sdata->bss_section; + *secp = htab->sbss; *valp = sym->st_size; } @@ -4076,11 +4291,10 @@ ppc_elf_add_symbol_hook (abfd, info, sym dynamic sections here. */ static bfd_boolean -ppc_elf_finish_dynamic_symbol (output_bfd, info, h, sym) - bfd *output_bfd; - struct bfd_link_info *info; - struct elf_link_hash_entry *h; - Elf_Internal_Sym *sym; +ppc_elf_finish_dynamic_symbol (bfd *output_bfd, + struct bfd_link_info *info, + struct elf_link_hash_entry *h, + Elf_Internal_Sym *sym) { struct ppc_elf_link_hash_table *htab; @@ -4185,9 +4399,8 @@ ppc_elf_finish_dynamic_symbol (output_bf /* Finish up the dynamic sections. */ static bfd_boolean -ppc_elf_finish_dynamic_sections (output_bfd, info) - bfd *output_bfd; - struct bfd_link_info *info; +ppc_elf_finish_dynamic_sections (bfd *output_bfd, + struct bfd_link_info *info) { asection *sdyn; struct ppc_elf_link_hash_table *htab; @@ -4243,10 +4456,10 @@ ppc_elf_finish_dynamic_sections (output_ if (htab->got) { unsigned char *contents = htab->got->contents; - bfd_put_32 (output_bfd, (bfd_vma) 0x4e800021 /* blrl */, contents); + bfd_put_32 (output_bfd, 0x4e800021 /* blrl */, contents); if (sdyn == NULL) - bfd_put_32 (output_bfd, (bfd_vma) 0, contents + 4); + bfd_put_32 (output_bfd, 0, contents + 4); else bfd_put_32 (output_bfd, sdyn->output_section->vma + sdyn->output_offset, @@ -4267,7 +4480,7 @@ ppc_elf_finish_dynamic_sections (output_ This function is responsible for adjust the section contents as necessary, and (if using Rela relocs and generating a - relocateable output file) adjusting the reloc addend as + relocatable output file) adjusting the reloc addend as necessary. This function does not have to worry about setting the reloc @@ -4281,23 +4494,21 @@ ppc_elf_finish_dynamic_sections (output_ The global hash table entry for the global symbols can be found via elf_sym_hashes (input_bfd). - When generating relocateable output, this function must handle + When generating relocatable output, this function must handle STB_LOCAL/STT_SECTION symbols specially. The output symbol is going to be the section symbol corresponding to the output section, which means that the addend must be adjusted accordingly. */ static bfd_boolean -ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section, - contents, relocs, local_syms, local_sections) - 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; +ppc_elf_relocate_section (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) { Elf_Internal_Shdr *symtab_hdr; struct elf_link_hash_entry **sym_hashes; @@ -4311,18 +4522,19 @@ ppc_elf_relocate_section (output_bfd, in bfd_boolean ret = TRUE; #ifdef DEBUG - fprintf (stderr, "ppc_elf_relocate_section called for %s section %s, %ld relocations%s\n", + fprintf (stderr, "ppc_elf_relocate_section called for %s section %s, " + "%ld relocations%s\n", bfd_archive_filename (input_bfd), bfd_section_name(input_bfd, input_section), (long) input_section->reloc_count, - (info->relocateable) ? " (relocatable)" : ""); + (info->relocatable) ? " (relocatable)" : ""); #endif - if (info->relocateable) + if (info->relocatable) return TRUE; + /* Initialize howto table if not already done. */ if (!ppc_elf_howto_table[R_PPC_ADDR32]) - /* Initialize howto table if needed. */ ppc_elf_howto_init (); htab = ppc_elf_hash_table (info); @@ -4348,10 +4560,10 @@ ppc_elf_relocate_section (output_bfd, in bfd_boolean warned; unsigned int tls_type, tls_mask, tls_gd; - r_type = (enum elf_ppc_reloc_type)ELF32_R_TYPE (rel->r_info); - sym = (Elf_Internal_Sym *) 0; - sec = (asection *) 0; - h = (struct elf_link_hash_entry *) 0; + r_type = ELF32_R_TYPE (rel->r_info); + sym = NULL; + sec = NULL; + h = NULL; unresolved_reloc = FALSE; warned = FALSE; r_symndx = ELF32_R_SYM (rel->r_info); @@ -4389,7 +4601,7 @@ ppc_elf_relocate_section (output_bfd, in } else if (h->root.type == bfd_link_hash_undefweak) ; - else if (info->shared + else if (!info->executable && !info->no_undefined && ELF_ST_VISIBILITY (h->other) == STV_DEFAULT) ; @@ -4544,8 +4756,7 @@ ppc_elf_relocate_section (output_bfd, in /* The next instruction should be a call to __tls_get_addr. Peek at the reloc to be sure. */ - r_type2 - = (enum elf_ppc_reloc_type) ELF32_R_TYPE (rel[1].r_info); + r_type2 = ELF32_R_TYPE (rel[1].r_info); r_symndx2 = ELF32_R_SYM (rel[1].r_info); if (r_symndx2 < symtab_hdr->sh_info || (r_type2 != R_PPC_REL14 @@ -4644,8 +4855,8 @@ ppc_elf_relocate_section (output_bfd, in addend = rel->r_addend; tls_type = 0; howto = NULL; - if ((unsigned) r_type < (unsigned) R_PPC_max) - howto = ppc_elf_howto_table[(int) r_type]; + if (r_type < R_PPC_max) + howto = ppc_elf_howto_table[r_type]; switch (r_type) { default: @@ -4966,9 +5177,8 @@ ppc_elf_relocate_section (output_bfd, in case R_PPC_REL14_BRNTAKEN: /* If these relocations are not to a named symbol, they can be handled right here, no need to bother the dynamic linker. */ - if (h == NULL - || strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0 - || SYMBOL_REFERENCES_LOCAL (info, h)) + if (SYMBOL_REFERENCES_LOCAL (info, h) + || strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0) break; /* fall through */ @@ -5000,8 +5210,7 @@ ppc_elf_relocate_section (output_bfd, in || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT || h->root.type != bfd_link_hash_undefweak) && (MUST_BE_DYN_RELOC (r_type) - || (h != NULL - && !SYMBOL_CALLS_LOCAL (info, h)))) + || !SYMBOL_CALLS_LOCAL (info, h))) || (ELIMINATE_COPY_RELOCS && !info->shared && (input_section->flags & SEC_ALLOC) != 0 @@ -5014,7 +5223,8 @@ ppc_elf_relocate_section (output_bfd, in int skip; #ifdef DEBUG - fprintf (stderr, "ppc_elf_relocate_section need to create relocation for %s\n", + fprintf (stderr, "ppc_elf_relocate_section needs to " + "create relocation for %s\n", (h && h->root.root.string ? h->root.root.string : "")); #endif @@ -5055,8 +5265,7 @@ ppc_elf_relocate_section (output_bfd, in if (skip) memset (&outrel, 0, sizeof outrel); - else if (h != NULL - && !SYMBOL_REFERENCES_LOCAL (info, h)) + else if (!SYMBOL_REFERENCES_LOCAL (info, h)) { unresolved_reloc = FALSE; outrel.r_info = ELF32_R_INFO (h->dynindx, r_type); @@ -5093,11 +5302,9 @@ ppc_elf_relocate_section (output_bfd, in BFD_ASSERT (indx > 0); #ifdef DEBUG if (indx <= 0) - { - printf ("indx=%d section=%s flags=%08x name=%s\n", - indx, osec->name, osec->flags, - h->root.root.string); - } + printf ("indx=%d section=%s flags=%08x name=%s\n", + indx, osec->name, osec->flags, + h->root.root.string); #endif } @@ -5129,20 +5336,18 @@ ppc_elf_relocate_section (output_bfd, in case R_PPC_EMB_SDAI16: BFD_ASSERT (htab->sdata != NULL); relocation - = bfd_elf32_finish_pointer_linker_section (output_bfd, input_bfd, - info, htab->sdata, h, - relocation, rel, - R_PPC_RELATIVE); + = elf_finish_pointer_linker_section (output_bfd, input_bfd, info, + htab->sdata, h, relocation, + rel, R_PPC_RELATIVE); break; /* Indirect .sdata2 relocation. */ case R_PPC_EMB_SDA2I16: BFD_ASSERT (htab->sdata2 != NULL); relocation - = bfd_elf32_finish_pointer_linker_section (output_bfd, input_bfd, - info, htab->sdata2, h, - relocation, rel, - R_PPC_RELATIVE); + = elf_finish_pointer_linker_section (output_bfd, input_bfd, info, + htab->sdata2, h, relocation, + rel, R_PPC_RELATIVE); break; /* Handle the TOC16 reloc. We want to use the offset within the .got @@ -5150,7 +5355,7 @@ ppc_elf_relocate_section (output_bfd, in an embedded ELF object, for which the .got section acts like the AIX .toc section. */ case R_PPC_TOC16: /* phony GOT16 relocations */ - BFD_ASSERT (sec != (asection *) 0); + BFD_ASSERT (sec != NULL); BFD_ASSERT (bfd_is_und_section (sec) || strcmp (bfd_get_section_name (abfd, sec), ".got") == 0 || strcmp (bfd_get_section_name (abfd, sec), ".cgot") == 0) @@ -5184,18 +5389,20 @@ ppc_elf_relocate_section (output_bfd, in const char *name; const struct elf_link_hash_entry *sh; - BFD_ASSERT (sec != (asection *) 0); + BFD_ASSERT (sec != NULL); name = bfd_get_section_name (abfd, sec->output_section); 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), - sym_name, - howto->name, - name); + (*_bfd_error_handler) + (_("%s: the target (%s) of a %s relocation is " + "in the wrong output section (%s)"), + bfd_archive_filename (input_bfd), + sym_name, + howto->name, + name); } sh = htab->sdata->sym_hash; addend -= (sh->root.u.def.value @@ -5210,16 +5417,18 @@ ppc_elf_relocate_section (output_bfd, in const char *name; const struct elf_link_hash_entry *sh; - BFD_ASSERT (sec != (asection *) 0); + BFD_ASSERT (sec != NULL); name = bfd_get_section_name (abfd, sec->output_section); 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), - sym_name, - howto->name, - name); + (*_bfd_error_handler) + (_("%s: the target (%s) of a %s relocation is " + "in the wrong output section (%s)"), + bfd_archive_filename (input_bfd), + sym_name, + howto->name, + name); bfd_set_error (bfd_error_bad_value); ret = FALSE; @@ -5240,7 +5449,7 @@ ppc_elf_relocate_section (output_bfd, in const struct elf_link_hash_entry *sh; int reg; - BFD_ASSERT (sec != (asection *) 0); + BFD_ASSERT (sec != NULL); name = bfd_get_section_name (abfd, sec->output_section); if (((strncmp (name, ".sdata", 6) == 0 && (name[6] == 0 || name[6] == '.')) @@ -5272,11 +5481,13 @@ ppc_elf_relocate_section (output_bfd, in else { - (*_bfd_error_handler) (_("%s: the target (%s) of a %s relocation is in the wrong output section (%s)"), - bfd_archive_filename (input_bfd), - sym_name, - howto->name, - name); + (*_bfd_error_handler) + (_("%s: the target (%s) of a %s relocation is " + "in the wrong output section (%s)"), + bfd_archive_filename (input_bfd), + sym_name, + howto->name, + name); bfd_set_error (bfd_error_bad_value); ret = FALSE; @@ -5297,7 +5508,7 @@ ppc_elf_relocate_section (output_bfd, in case R_PPC_SECTOFF_LO: case R_PPC_SECTOFF_HI: case R_PPC_SECTOFF_HA: - BFD_ASSERT (sec != (asection *) 0); + BFD_ASSERT (sec != NULL); addend -= sec->output_section->vma; break; @@ -5366,7 +5577,8 @@ ppc_elf_relocate_section (output_bfd, in } #ifdef DEBUG - fprintf (stderr, "\ttype = %s (%d), name = %s, symbol index = %ld, offset = %ld, addend = %ld\n", + fprintf (stderr, "\ttype = %s (%d), name = %s, symbol index = %ld, " + "offset = %ld, addend = %ld\n", howto->name, (int) r_type, sym_name, @@ -5447,10 +5659,9 @@ ppc_elf_relocate_section (output_bfd, in } static enum elf_reloc_type_class -ppc_elf_reloc_type_class (rela) - const Elf_Internal_Rela *rela; +ppc_elf_reloc_type_class (const Elf_Internal_Rela *rela) { - switch ((int) ELF32_R_TYPE (rela->r_info)) + switch (ELF32_R_TYPE (rela->r_info)) { case R_PPC_RELATIVE: return reloc_class_relative; @@ -5468,9 +5679,7 @@ ppc_elf_reloc_type_class (rela) /* Support for core dump NOTE sections. */ static bfd_boolean -ppc_elf_grok_prstatus (abfd, note) - bfd *abfd; - Elf_Internal_Note *note; +ppc_elf_grok_prstatus (bfd *abfd, Elf_Internal_Note *note) { int offset; unsigned int raw_size; @@ -5500,9 +5709,7 @@ ppc_elf_grok_prstatus (abfd, note) } static bfd_boolean -ppc_elf_grok_psinfo (abfd, note) - bfd *abfd; - Elf_Internal_Note *note; +ppc_elf_grok_psinfo (bfd *abfd, Elf_Internal_Note *note) { switch (note->descsz) { @@ -5539,31 +5746,17 @@ typedef struct apuinfo_list } apuinfo_list; -static apuinfo_list * head; - -static void apuinfo_list_init PARAMS ((void)); -static void apuinfo_list_add PARAMS ((unsigned long)); -static unsigned apuinfo_list_length PARAMS ((void)); -static unsigned long apuinfo_list_element PARAMS ((unsigned long)); -static void apuinfo_list_finish PARAMS ((void)); - -extern void ppc_elf_begin_write_processing - PARAMS ((bfd *, struct bfd_link_info *)); -extern void ppc_elf_final_write_processing - PARAMS ((bfd *, bfd_boolean)); -extern bfd_boolean ppc_elf_write_section - PARAMS ((bfd *, asection *, bfd_byte *)); +static apuinfo_list *head; static void -apuinfo_list_init PARAMS ((void)) +apuinfo_list_init (void) { head = NULL; } static void -apuinfo_list_add (value) - unsigned long value; +apuinfo_list_add (unsigned long value) { apuinfo_list *entry = head; @@ -5584,7 +5777,7 @@ apuinfo_list_add (value) } static unsigned -apuinfo_list_length PARAMS ((void)) +apuinfo_list_length (void) { apuinfo_list *entry; unsigned long count; @@ -5598,8 +5791,7 @@ apuinfo_list_length PARAMS ((void)) } static inline unsigned long -apuinfo_list_element (number) - unsigned long number; +apuinfo_list_element (unsigned long number) { apuinfo_list * entry; @@ -5612,7 +5804,7 @@ apuinfo_list_element (number) } static void -apuinfo_list_finish PARAMS ((void)) +apuinfo_list_finish (void) { apuinfo_list *entry; @@ -5632,10 +5824,8 @@ apuinfo_list_finish PARAMS ((void)) /* Scan the input BFDs and create a linked list of the APUinfo values that will need to be emitted. */ -void -ppc_elf_begin_write_processing (abfd, link_info) - bfd *abfd; - struct bfd_link_info *link_info; +static void +ppc_elf_begin_write_processing (bfd *abfd, struct bfd_link_info *link_info) { bfd *ibfd; asection *asec; @@ -5725,9 +5915,9 @@ ppc_elf_begin_write_processing (abfd, li if (strcmp (ptr + 12, APUINFO_LABEL) != 0) goto fail; - /* Get the number of apuinfo entries. */ + /* Get the number of bytes used for apuinfo entries. */ datum = bfd_get_32 (ibfd, ptr + 4); - if ((datum * 4 + 20) != length) + if (datum + 20 != length) goto fail; /* Make sure that we do not run off the end of the section. */ @@ -5735,8 +5925,8 @@ ppc_elf_begin_write_processing (abfd, li goto fail; /* Scan the apuinfo section, building a list of apuinfo numbers. */ - for (i = 0; i < datum; i++) - apuinfo_list_add (bfd_get_32 (ibfd, ptr + 20 + (i * 4))); + for (i = 0; i < datum; i += 4) + apuinfo_list_add (bfd_get_32 (ibfd, ptr + 20 + i)); /* Update the offset. */ offset += length; @@ -5766,11 +5956,10 @@ ppc_elf_begin_write_processing (abfd, li /* Prevent the output section from accumulating the input sections' contents. We have already stored this in our linked list structure. */ -bfd_boolean -ppc_elf_write_section (abfd, asec, contents) - bfd *abfd ATTRIBUTE_UNUSED; - asection *asec; - bfd_byte *contents ATTRIBUTE_UNUSED; +static bfd_boolean +ppc_elf_write_section (bfd *abfd ATTRIBUTE_UNUSED, + asection *asec, + bfd_byte *contents ATTRIBUTE_UNUSED) { return (apuinfo_list_length () && strcmp (asec->name, APUINFO_SECTION_NAME) == 0); @@ -5779,10 +5968,8 @@ ppc_elf_write_section (abfd, asec, conte /* Finally we can generate the output section. */ -void -ppc_elf_final_write_processing (abfd, linker) - bfd *abfd; - bfd_boolean linker ATTRIBUTE_UNUSED; +static void +ppc_elf_final_write_processing (bfd *abfd, bfd_boolean linker ATTRIBUTE_UNUSED) { bfd_byte *buffer; asection *asec; @@ -5812,7 +5999,7 @@ ppc_elf_final_write_processing (abfd, li /* Create the apuinfo header. */ num_entries = apuinfo_list_length (); bfd_put_32 (abfd, sizeof APUINFO_LABEL, buffer); - bfd_put_32 (abfd, num_entries, buffer + 4); + bfd_put_32 (abfd, num_entries * 4, buffer + 4); bfd_put_32 (abfd, 0x2, buffer + 8); strcpy (buffer + 12, APUINFO_LABEL); @@ -5840,7 +6027,11 @@ ppc_elf_final_write_processing (abfd, li #define TARGET_BIG_NAME "elf32-powerpc" #define ELF_ARCH bfd_arch_powerpc #define ELF_MACHINE_CODE EM_PPC +#ifdef __QNXTARGET__ +#define ELF_MAXPAGESIZE 0x1000 +#else #define ELF_MAXPAGESIZE 0x10000 +#endif #define elf_info_to_howto ppc_elf_info_to_howto #ifdef EM_CYGNUS_POWERPC @@ -5859,6 +6050,7 @@ ppc_elf_final_write_processing (abfd, li #define elf_backend_plt_header_size PLT_INITIAL_ENTRY_SIZE #define elf_backend_rela_normal 1 +#define bfd_elf32_mkobject ppc_elf_mkobject #define bfd_elf32_bfd_merge_private_bfd_data ppc_elf_merge_private_bfd_data #define bfd_elf32_bfd_relax_section ppc_elf_relax_section #define bfd_elf32_bfd_reloc_type_lookup ppc_elf_reloc_type_lookup diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf32-ppc.h binutils-2.14.90.0.5/bfd/elf32-ppc.h --- binutils-2.14.90.0.4.1/bfd/elf32-ppc.h 2003-03-19 09:19:13.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/elf32-ppc.h 2003-07-23 08:08:08.000000000 -0700 @@ -17,7 +17,5 @@ You should have received a copy of the G along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -bfd_boolean ppc_elf_tls_setup - PARAMS ((bfd *, struct bfd_link_info *)); -bfd_boolean ppc_elf_tls_optimize - PARAMS ((bfd *, struct bfd_link_info *)); +bfd_boolean ppc_elf_tls_setup (bfd *, struct bfd_link_info *); +bfd_boolean ppc_elf_tls_optimize (bfd *, struct bfd_link_info *); diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf32-s390.c binutils-2.14.90.0.5/bfd/elf32-s390.c --- binutils-2.14.90.0.4.1/bfd/elf32-s390.c 2003-05-15 13:42:24.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/elf32-s390.c 2003-07-23 08:08:08.000000000 -0700 @@ -88,6 +88,8 @@ static bfd_vma tpoff PARAMS ((struct bfd_link_info *, bfd_vma)); static void invalid_tls_insn PARAMS ((bfd *, asection *, Elf_Internal_Rela *)); +static bfd_reloc_status_type s390_elf_ldisp_reloc + PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); #include "elf/s390.h" @@ -119,7 +121,7 @@ static reloc_howto_type elf_howto_table[ bfd_elf_generic_reloc, "R_390_32", FALSE, 0,0xffffffff, FALSE), HOWTO(R_390_PC32, 0, 2, 32, TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PC32", FALSE, 0,0xffffffff, TRUE), - HOWTO(R_390_GOT12, 0, 1, 12, FALSE, 0, complain_overflow_dont, + HOWTO(R_390_GOT12, 0, 1, 12, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GOT12", FALSE, 0,0x00000fff, FALSE), HOWTO(R_390_GOT32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GOT32", FALSE, 0,0xffffffff, FALSE), @@ -208,6 +210,14 @@ static reloc_howto_type elf_howto_table[ bfd_elf_generic_reloc, "R_390_TLS_DTPOFF", FALSE, 0, 0xffffffff, FALSE), HOWTO(R_390_TLS_TPOFF, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_TLS_TPOFF", FALSE, 0, 0xffffffff, FALSE), + HOWTO(R_390_20, 0, 2, 20, FALSE, 8, complain_overflow_dont, + s390_elf_ldisp_reloc, "R_390_20", FALSE, 0,0x0fffff00, FALSE), + HOWTO(R_390_GOT20, 0, 2, 20, FALSE, 8, complain_overflow_dont, + s390_elf_ldisp_reloc, "R_390_GOT20", FALSE, 0,0x0fffff00, FALSE), + HOWTO(R_390_GOTPLT20, 0, 2, 20, FALSE, 8, complain_overflow_dont, + s390_elf_ldisp_reloc, "R_390_GOTPLT20", FALSE, 0,0x0fffff00, FALSE), + HOWTO(R_390_TLS_GOTIE20, 0, 2, 20, FALSE, 8, complain_overflow_dont, + s390_elf_ldisp_reloc, "R_390_TLS_GOTIE20", FALSE, 0,0x0fffff00, FALSE), }; /* GNU extension to record C++ vtable hierarchy. */ @@ -313,6 +323,14 @@ elf_s390_reloc_type_lookup (abfd, code) return &elf_howto_table[(int) R_390_TLS_DTPOFF]; case BFD_RELOC_390_TLS_TPOFF: return &elf_howto_table[(int) R_390_TLS_TPOFF]; + case BFD_RELOC_390_20: + return &elf_howto_table[(int) R_390_20]; + case BFD_RELOC_390_GOT20: + return &elf_howto_table[(int) R_390_GOT20]; + case BFD_RELOC_390_GOTPLT20: + return &elf_howto_table[(int) R_390_GOTPLT20]; + case BFD_RELOC_390_TLS_GOTIE20: + return &elf_howto_table[(int) R_390_TLS_GOTIE20]; case BFD_RELOC_VTABLE_INHERIT: return &elf32_s390_vtinherit_howto; case BFD_RELOC_VTABLE_ENTRY: @@ -365,6 +383,59 @@ s390_tls_reloc (abfd, reloc_entry, symbo return bfd_reloc_ok; } +/* Handle the large displacement relocs. */ +static bfd_reloc_status_type +s390_elf_ldisp_reloc (abfd, reloc_entry, symbol, data, input_section, + output_bfd, error_message) + bfd *abfd ATTRIBUTE_UNUSED; + arelent *reloc_entry; + asymbol *symbol; + PTR data ATTRIBUTE_UNUSED; + asection *input_section; + bfd *output_bfd; + char **error_message ATTRIBUTE_UNUSED; +{ + reloc_howto_type *howto = reloc_entry->howto; + bfd_vma relocation; + bfd_vma insn; + + if (output_bfd != (bfd *) NULL + && (symbol->flags & BSF_SECTION_SYM) == 0 + && (! howto->partial_inplace + || reloc_entry->addend == 0)) + { + reloc_entry->address += input_section->output_offset; + return bfd_reloc_ok; + } + + if (output_bfd != NULL) + return bfd_reloc_continue; + + if (reloc_entry->address > input_section->_cooked_size) + return bfd_reloc_outofrange; + + relocation = (symbol->value + + symbol->section->output_section->vma + + symbol->section->output_offset); + relocation += reloc_entry->addend; + if (howto->pc_relative) + { + relocation -= (input_section->output_section->vma + + input_section->output_offset); + relocation -= reloc_entry->address; + } + + insn = bfd_get_32 (abfd, (bfd_byte *) data + reloc_entry->address); + insn |= (relocation & 0xfff) << 16 | (relocation & 0xff000) >> 4; + bfd_put_32 (abfd, insn, (bfd_byte *) data + reloc_entry->address); + + if ((bfd_signed_vma) relocation < - 0x80000 + || (bfd_signed_vma) relocation > 0x7ffff) + return bfd_reloc_overflow; + else + return bfd_reloc_ok; +} + static bfd_boolean elf_s390_is_local_label_name (abfd, name) bfd *abfd; @@ -895,7 +966,7 @@ elf_s390_check_relocs (abfd, info, sec, bfd_signed_vma *local_got_refcounts; int tls_type, old_tls_type; - if (info->relocateable) + if (info->relocatable) return TRUE; htab = elf_s390_hash_table (info); @@ -936,14 +1007,17 @@ elf_s390_check_relocs (abfd, info, sec, { case R_390_GOT12: case R_390_GOT16: + case R_390_GOT20: case R_390_GOT32: case R_390_GOTENT: case R_390_GOTPLT12: case R_390_GOTPLT16: + case R_390_GOTPLT20: case R_390_GOTPLT32: case R_390_GOTPLTENT: case R_390_TLS_GD32: case R_390_TLS_GOTIE12: + case R_390_TLS_GOTIE20: case R_390_TLS_GOTIE32: case R_390_TLS_IEENT: case R_390_TLS_IE32: @@ -1009,6 +1083,7 @@ elf_s390_check_relocs (abfd, info, sec, case R_390_GOTPLT12: case R_390_GOTPLT16: + case R_390_GOTPLT20: case R_390_GOTPLT32: case R_390_GOTPLTENT: /* This symbol requires either a procedure linkage table entry @@ -1035,6 +1110,7 @@ elf_s390_check_relocs (abfd, info, sec, case R_390_TLS_IE32: case R_390_TLS_GOTIE12: + case R_390_TLS_GOTIE20: case R_390_TLS_GOTIE32: case R_390_TLS_IEENT: if (info->shared) @@ -1043,6 +1119,7 @@ elf_s390_check_relocs (abfd, info, sec, case R_390_GOT12: case R_390_GOT16: + case R_390_GOT20: case R_390_GOT32: case R_390_GOTENT: case R_390_TLS_GD32: @@ -1052,6 +1129,7 @@ elf_s390_check_relocs (abfd, info, sec, default: case R_390_GOT12: case R_390_GOT16: + case R_390_GOT20: case R_390_GOT32: case R_390_GOTENT: tls_type = GOT_NORMAL; @@ -1064,6 +1142,7 @@ elf_s390_check_relocs (abfd, info, sec, tls_type = GOT_TLS_IE; break; case R_390_TLS_GOTIE12: + case R_390_TLS_GOTIE20: case R_390_TLS_IEENT: tls_type = GOT_TLS_IE_NLT; break; @@ -1390,10 +1469,12 @@ elf_s390_gc_sweep_hook (abfd, info, sec, case R_390_TLS_GD32: case R_390_TLS_IE32: case R_390_TLS_GOTIE12: + case R_390_TLS_GOTIE20: case R_390_TLS_GOTIE32: case R_390_TLS_IEENT: case R_390_GOT12: case R_390_GOT16: + case R_390_GOT20: case R_390_GOT32: case R_390_GOTOFF16: case R_390_GOTOFF32: @@ -1415,6 +1496,7 @@ elf_s390_gc_sweep_hook (abfd, info, sec, case R_390_8: case R_390_12: case R_390_16: + case R_390_20: case R_390_32: case R_390_PC16: case R_390_PC16DBL: @@ -1438,6 +1520,7 @@ elf_s390_gc_sweep_hook (abfd, info, sec, case R_390_GOTPLT12: case R_390_GOTPLT16: + case R_390_GOTPLT20: case R_390_GOTPLT32: case R_390_GOTPLTENT: if (h != NULL) @@ -1927,7 +2010,7 @@ elf_s390_size_dynamic_sections (output_b if (htab->elf.dynamic_sections_created) { /* Set the contents of the .interp section to the interpreter. */ - if (! info->shared) + if (info->executable) { s = bfd_get_section_by_name (dynobj, ".interp"); if (s == NULL) @@ -2085,7 +2168,7 @@ elf_s390_size_dynamic_sections (output_b #define add_dynamic_entry(TAG, VAL) \ bfd_elf32_add_dynamic_entry (info, (bfd_vma) (TAG), (bfd_vma) (VAL)) - if (! info->shared) + if (info->executable) { if (!add_dynamic_entry (DT_DEBUG, 0)) return FALSE; @@ -2198,7 +2281,7 @@ elf_s390_relocate_section (output_bfd, i Elf_Internal_Rela *rel; Elf_Internal_Rela *relend; - if (info->relocateable) + if (info->relocatable) return TRUE; htab = elf_s390_hash_table (info); @@ -2273,7 +2356,7 @@ elf_s390_relocate_section (output_bfd, i } else if (h->root.type == bfd_link_hash_undefweak) relocation = 0; - else if (info->shared + else if (!info->executable && !info->no_undefined && ELF_ST_VISIBILITY (h->other) == STV_DEFAULT) relocation = 0; @@ -2293,6 +2376,7 @@ elf_s390_relocate_section (output_bfd, i { case R_390_GOTPLT12: case R_390_GOTPLT16: + case R_390_GOTPLT20: case R_390_GOTPLT32: case R_390_GOTPLTENT: /* There are three cases for a GOTPLT relocation. 1) The @@ -2326,6 +2410,7 @@ elf_s390_relocate_section (output_bfd, i case R_390_GOT12: case R_390_GOT16: + case R_390_GOT20: case R_390_GOT32: case R_390_GOTENT: /* Relocation is to the entry for this symbol in the global @@ -2732,6 +2817,7 @@ elf_s390_relocate_section (output_bfd, i break; case R_390_TLS_GOTIE12: + case R_390_TLS_GOTIE20: case R_390_TLS_IEENT: if (h == NULL) { @@ -2939,9 +3025,21 @@ elf_s390_relocate_section (output_bfd, i (long) rel->r_offset, h->root.root.string); - r = _bfd_final_link_relocate (howto, input_bfd, input_section, - contents, rel->r_offset, - relocation, rel->r_addend); + if (r_type == R_390_20 + || r_type == R_390_GOT20 + || r_type == R_390_GOTPLT20 + || r_type == R_390_TLS_GOTIE20) + { + relocation += rel->r_addend; + relocation = (relocation&0xfff) << 8 | (relocation&0xff000) >> 12; + r = _bfd_final_link_relocate (howto, input_bfd, input_section, + contents, rel->r_offset, + relocation, 0); + } + else + r = _bfd_final_link_relocate (howto, input_bfd, input_section, + contents, rel->r_offset, + relocation, rel->r_addend); if (r != bfd_reloc_ok) { diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf32-sh.c binutils-2.14.90.0.5/bfd/elf32-sh.c --- binutils-2.14.90.0.4.1/bfd/elf32-sh.c 2003-05-15 13:42:25.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/elf32-sh.c 2003-07-23 08:08:08.000000000 -0700 @@ -2034,7 +2034,7 @@ sh_elf_relax_section (abfd, sec, link_in *again = FALSE; - if (link_info->relocateable + if (link_info->relocatable || (sec->flags & SEC_RELOC) == 0 || sec->reloc_count == 0) return TRUE; @@ -3754,6 +3754,8 @@ sh_elf_create_dynamic_sections (abfd, in } htab = sh_elf_hash_table (info); + if (htab->root.dynamic_sections_created) + return TRUE; /* We need to create .plt, .rel[a].plt, .got, .got.plt, .dynbss, and .rel[a].bss sections. */ @@ -3805,7 +3807,8 @@ sh_elf_create_dynamic_sections (abfd, in || ! bfd_set_section_alignment (abfd, s, ptralign)) return FALSE; - if (! create_got_section (abfd, info)) + if (htab->sgot == NULL + && !create_got_section (abfd, info)) return FALSE; { @@ -3824,6 +3827,8 @@ sh_elf_create_dynamic_sections (abfd, in relname = (char *) bfd_malloc ((bfd_size_type) strlen (secname) + 6); strcpy (relname, ".rela"); strcat (relname, secname); + if (bfd_get_section_by_name (abfd, secname)) + continue; s = bfd_make_section (abfd, relname); if (s == NULL || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY) @@ -3887,14 +3892,13 @@ sh_elf_adjust_dynamic_symbol (info, 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; - dynobj = elf_hash_table (info)->dynobj; + htab = sh_elf_hash_table (info); /* Make sure we know what is going on here. */ - BFD_ASSERT (dynobj != NULL + BFD_ASSERT (htab->root.dynobj != NULL && ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_PLT) || h->weakdef != NULL || ((h->elf_link_hash_flags @@ -3996,7 +4000,6 @@ 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. */ - htab = sh_elf_hash_table (info); s = htab->sdynbss; BFD_ASSERT (s != NULL); @@ -4022,9 +4025,9 @@ sh_elf_adjust_dynamic_symbol (info, h) /* Apply the required alignment. */ 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 (power_of_two > bfd_get_section_alignment (htab->root.dynobj, s)) { - if (! bfd_set_section_alignment (dynobj, s, power_of_two)) + if (! bfd_set_section_alignment (htab->root.dynobj, s, power_of_two)) return FALSE; } @@ -4338,7 +4341,7 @@ sh_elf_size_dynamic_sections (output_bfd if (htab->root.dynamic_sections_created) { /* Set the contents of the .interp section to the interpreter. */ - if (! info->shared) + if (info->executable) { s = bfd_get_section_by_name (dynobj, ".interp"); BFD_ASSERT (s != NULL); @@ -4500,7 +4503,7 @@ sh_elf_size_dynamic_sections (output_bfd #define add_dynamic_entry(TAG, VAL) \ bfd_elf32_add_dynamic_entry (info, (bfd_vma) (TAG), (bfd_vma) (VAL)) - if (! info->shared) + if (info->executable) { if (! add_dynamic_entry (DT_DEBUG, 0)) return FALSE; @@ -4650,9 +4653,9 @@ sh_elf_relocate_section (output_bfd, inf (info, _("Unexpected STO_SH5_ISA32 on local symbol is not handled"), input_bfd, input_section, rel->r_offset)); - if (info->relocateable) + if (info->relocatable) { - /* This is a relocateable link. We don't have to change + /* This is a relocatable link. We don't have to change anything, unless the reloc is against a section symbol, in which case we have to adjust according to where the section symbol winds up in the output section. */ @@ -4721,8 +4724,8 @@ sh_elf_relocate_section (output_bfd, inf { /* Section symbol are never (?) placed in the hash table, so we can just ignore hash relocations when creating a - relocateable object file. */ - if (info->relocateable) + relocatable object file. */ + if (info->relocatable) continue; h = sym_hashes[r_symndx - symtab_hdr->sh_info]; @@ -5718,12 +5721,12 @@ sh_elf_relocate_section (output_bfd, inf static bfd_byte * sh_elf_get_relocated_section_contents (output_bfd, link_info, link_order, - data, relocateable, symbols) + data, relocatable, symbols) bfd *output_bfd; struct bfd_link_info *link_info; struct bfd_link_order *link_order; bfd_byte *data; - bfd_boolean relocateable; + bfd_boolean relocatable; asymbol **symbols; { Elf_Internal_Shdr *symtab_hdr; @@ -5735,11 +5738,11 @@ sh_elf_get_relocated_section_contents (o /* We only need to handle the case of relaxing, or of having a particular set of section contents, specially. */ - if (relocateable + if (relocatable || elf_section_data (input_section)->this_hdr.contents == NULL) return bfd_generic_get_relocated_section_contents (output_bfd, link_info, link_order, data, - relocateable, + relocatable, symbols); symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr; @@ -6199,7 +6202,6 @@ sh_elf_check_relocs (abfd, info, sec, re struct elf_sh_link_hash_table *htab; const Elf_Internal_Rela *rel; const Elf_Internal_Rela *rel_end; - bfd *dynobj; bfd_vma *local_got_offsets; asection *sgot; asection *srelgot; @@ -6211,7 +6213,7 @@ sh_elf_check_relocs (abfd, info, sec, re srelgot = NULL; sreloc = NULL; - if (info->relocateable) + if (info->relocatable) return TRUE; symtab_hdr = &elf_tdata (abfd)->symtab_hdr; @@ -6221,7 +6223,6 @@ sh_elf_check_relocs (abfd, info, sec, re sym_hashes_end -= symtab_hdr->sh_info; htab = sh_elf_hash_table (info); - dynobj = htab->root.dynobj; local_got_offsets = elf_local_got_offsets (abfd); rel_end = relocs + sec->reloc_count; @@ -6295,10 +6296,13 @@ sh_elf_check_relocs (abfd, info, sec, re case R_SH_TLS_GD_32: case R_SH_TLS_LD_32: case R_SH_TLS_IE_32: - if (dynobj == NULL) - htab->root.dynobj = dynobj = abfd; - if (! create_got_section (dynobj, info)) - return FALSE; + if (htab->sgot == NULL) + { + if (htab->root.dynobj == NULL) + htab->root.dynobj = abfd; + if (!create_got_section (htab->root.dynobj, info)) + return FALSE; + } break; default: @@ -6535,8 +6539,8 @@ sh_elf_check_relocs (abfd, info, sec, re struct elf_sh_dyn_relocs *p; struct elf_sh_dyn_relocs **head; - if (dynobj == NULL) - htab->root.dynobj = dynobj = abfd; + if (htab->root.dynobj == NULL) + htab->root.dynobj = abfd; /* When creating a shared object, we must copy these reloc types into the output file. We create a reloc @@ -6556,19 +6560,21 @@ sh_elf_check_relocs (abfd, info, sec, re && strcmp (bfd_get_section_name (abfd, sec), name + 5) == 0); - sreloc = bfd_get_section_by_name (dynobj, name); + sreloc = bfd_get_section_by_name (htab->root.dynobj, name); if (sreloc == NULL) { flagword flags; - sreloc = bfd_make_section (dynobj, name); + sreloc = bfd_make_section (htab->root.dynobj, name); flags = (SEC_HAS_CONTENTS | SEC_READONLY | SEC_IN_MEMORY | SEC_LINKER_CREATED); if ((sec->flags & SEC_ALLOC) != 0) flags |= SEC_ALLOC | SEC_LOAD; if (sreloc == NULL - || ! bfd_set_section_flags (dynobj, sreloc, flags) - || ! bfd_set_section_alignment (dynobj, sreloc, 2)) + || ! bfd_set_section_flags (htab->root.dynobj, + sreloc, flags) + || ! bfd_set_section_alignment (htab->root.dynobj, + sreloc, 2)) return FALSE; } if (sec->flags & SEC_READONLY) @@ -6598,7 +6604,7 @@ sh_elf_check_relocs (abfd, info, sec, re if (p == NULL || p->sec != sec) { bfd_size_type amt = sizeof (*p); - p = ((struct elf_sh_dyn_relocs *) bfd_alloc (dynobj, amt)); + p = bfd_alloc (htab->root.dynobj, amt); if (p == NULL) return FALSE; p->next = *head; @@ -6788,10 +6794,8 @@ sh_elf_finish_dynamic_symbol (output_bfd Elf_Internal_Sym *sym; { struct elf_sh_link_hash_table *htab; - bfd *dynobj; htab = sh_elf_hash_table (info); - dynobj = htab->root.dynobj; if (h->plt.offset != (bfd_vma) -1) { @@ -7076,15 +7080,12 @@ sh_elf_finish_dynamic_sections (output_b struct bfd_link_info *info; { struct elf_sh_link_hash_table *htab; - bfd *dynobj; asection *sgot; asection *sdyn; htab = sh_elf_hash_table (info); - dynobj = htab->root.dynobj; - sgot = htab->sgotplt; - sdyn = bfd_get_section_by_name (dynobj, ".dynamic"); + sdyn = bfd_get_section_by_name (htab->root.dynobj, ".dynamic"); if (htab->root.dynamic_sections_created) { @@ -7103,7 +7104,7 @@ sh_elf_finish_dynamic_sections (output_b const char *name; #endif - bfd_elf32_swap_dyn_in (dynobj, dyncon, &dyn); + bfd_elf32_swap_dyn_in (htab->root.dynobj, dyncon, &dyn); switch (dyn.d_tag) { @@ -7330,7 +7331,11 @@ elf32_shlin_grok_psinfo (abfd, note) #define TARGET_LITTLE_NAME "elf32-shl" #define ELF_ARCH bfd_arch_sh #define ELF_MACHINE_CODE EM_SH -#define ELF_MAXPAGESIZE 128 +#ifdef __QNXTARGET__ +#define ELF_MAXPAGESIZE 0x1000 +#else +#define ELF_MAXPAGESIZE 0x80 +#endif #define elf_symbol_leading_char '_' diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf32-sh64.c binutils-2.14.90.0.5/bfd/elf32-sh64.c --- binutils-2.14.90.0.4.1/bfd/elf32-sh64.c 2003-05-05 14:46:46.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/elf32-sh64.c 2003-07-23 08:08:08.000000000 -0700 @@ -403,11 +403,11 @@ sh64_elf_add_symbol_hook (abfd, info, sy { struct elf_link_hash_entry *h; - /* For relocateable links, we register the DataLabel sym in its own + /* For relocatable links, we register the DataLabel sym in its own right, and tweak the name when it's output. Otherwise, we make an indirect symbol of it. */ flagword flags - = info->relocateable || info->emitrelocations + = info->relocatable || info->emitrelocations ? BSF_GLOBAL : BSF_GLOBAL | BSF_INDIRECT; char *dl_name @@ -451,9 +451,9 @@ sh64_elf_add_symbol_hook (abfd, info, sy free (dl_name); if (h->type != STT_DATALABEL - || ((info->relocateable || info->emitrelocations) + || ((info->relocatable || info->emitrelocations) && h->root.type != bfd_link_hash_undefined) - || (! info->relocateable && !info->emitrelocations + || (! info->relocatable && !info->emitrelocations && h->root.type != bfd_link_hash_indirect)) { /* Make sure we don't get confused on invalid input. */ @@ -498,7 +498,7 @@ sh64_elf_link_output_symbol_hook (abfd, { char *name = (char *) cname; - if (info->relocateable || info->emitrelocations) + if (info->relocatable || info->emitrelocations) { if (ELF_ST_TYPE (sym->st_info) == STT_DATALABEL) name[strlen (name) - strlen (DATALABEL_SUFFIX)] = 0; diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf32-sparc.c binutils-2.14.90.0.5/bfd/elf32-sparc.c --- binutils-2.14.90.0.4.1/bfd/elf32-sparc.c 2003-03-19 09:19:13.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/elf32-sparc.c 2003-07-23 08:08:08.000000000 -0700 @@ -862,7 +862,7 @@ elf32_sparc_check_relocs (abfd, info, se asection *sreloc; bfd_boolean checked_tlsgd = FALSE; - if (info->relocateable) + if (info->relocatable) return TRUE; htab = elf32_sparc_hash_table (info); @@ -1024,10 +1024,13 @@ elf32_sparc_check_relocs (abfd, info, se } } - if (htab->elf.dynobj == NULL) - htab->elf.dynobj = abfd; - if (!create_got_section (htab->elf.dynobj, info)) - return FALSE; + if (htab->sgot == NULL) + { + if (htab->elf.dynobj == NULL) + htab->elf.dynobj = abfd; + if (!create_got_section (htab->elf.dynobj, info)) + return FALSE; + } break; case R_SPARC_TLS_GD_CALL: @@ -1820,7 +1823,7 @@ elf32_sparc_size_dynamic_sections (outpu if (elf_hash_table (info)->dynamic_sections_created) { /* Set the contents of the .interp section to the interpreter. */ - if (! info->shared) + if (info->executable) { s = bfd_get_section_by_name (dynobj, ".interp"); BFD_ASSERT (s != NULL); @@ -1997,7 +2000,7 @@ elf32_sparc_size_dynamic_sections (outpu #define add_dynamic_entry(TAG, VAL) \ bfd_elf32_add_dynamic_entry (info, (bfd_vma) (TAG), (bfd_vma) (VAL)) - if (!info->shared) + if (info->executable) { if (!add_dynamic_entry (DT_DEBUG, 0)) return FALSE; @@ -2126,7 +2129,7 @@ elf32_sparc_relocate_section (output_bfd Elf_Internal_Rela *rel; Elf_Internal_Rela *relend; - if (info->relocateable) + if (info->relocatable) return TRUE; htab = elf32_sparc_hash_table (info); @@ -2206,7 +2209,7 @@ elf32_sparc_relocate_section (output_bfd } else if (h->root.type == bfd_link_hash_undefweak) ; - else if (info->shared + else if (!info->executable && !info->no_undefined && ELF_ST_VISIBILITY (h->other) == STV_DEFAULT) ; diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf32-v850.c binutils-2.14.90.0.5/bfd/elf32-v850.c --- binutils-2.14.90.0.4.1/bfd/elf32-v850.c 2003-05-15 13:42:25.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/elf32-v850.c 2003-07-23 08:08:08.000000000 -0700 @@ -189,7 +189,7 @@ static reloc_howto_type v850_elf_howto_t FALSE), /* pcrel_offset */ /* Simple 32bit reloc. */ - HOWTO (R_V850_32, /* type */ + HOWTO (R_V850_ABS32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ @@ -197,7 +197,7 @@ static reloc_howto_type v850_elf_howto_t 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ v850_elf_reloc, /* special_function */ - "R_V850_32", /* name */ + "R_V850_ABS32", /* name */ FALSE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ @@ -518,6 +518,21 @@ static reloc_howto_type v850_elf_howto_t 0, /* src_mask */ 0, /* dst_mask */ TRUE), /* pcrel_offset */ + + /* Simple pc-relative 32bit reloc. */ + HOWTO (R_V850_REL32, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 32, /* bitsize */ + TRUE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_dont, /* complain_on_overflow */ + v850_elf_reloc, /* special_function */ + "R_V850_REL32", /* name */ + FALSE, /* partial_inplace */ + 0xffffffff, /* src_mask */ + 0xffffffff, /* dst_mask */ + FALSE), /* pcrel_offset */ }; /* Map BFD reloc types to V850 ELF reloc types. */ @@ -538,7 +553,8 @@ static const struct v850_elf_reloc_map v { 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_32, R_V850_ABS32 }, + { BFD_RELOC_32_PCREL, R_V850_REL32 }, { 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 }, @@ -636,7 +652,7 @@ v850_elf_check_relocs (abfd, info, sec, int other = 0; const char *common = (const char *)0; - if (info->relocateable) + if (info->relocatable) return TRUE; #ifdef DEBUG @@ -672,7 +688,8 @@ v850_elf_check_relocs (abfd, info, sec, case R_V850_HI16_S: case R_V850_HI16: case R_V850_LO16: - case R_V850_32: + case R_V850_ABS32: + case R_V850_REL32: case R_V850_16: case R_V850_8: case R_V850_CALLT_6_7_OFFSET: @@ -905,7 +922,8 @@ v850_elf_perform_relocation (abfd, r_typ /* fprintf (stderr, "reloc type %d not SUPPORTED\n", r_type ); */ return bfd_reloc_notsupported; - case R_V850_32: + case R_V850_REL32: + case R_V850_ABS32: bfd_put_32 (abfd, addend, address); return bfd_reloc_ok; @@ -1466,11 +1484,17 @@ v850_elf_final_link_relocate (howto, inp value = SEXT24 (value); break; + case R_V850_REL32: + value -= (input_section->output_section->vma + + input_section->output_offset + + offset); + break; + case R_V850_HI16_S: case R_V850_HI16: case R_V850_LO16: case R_V850_16: - case R_V850_32: + case R_V850_ABS32: case R_V850_8: break; @@ -1608,7 +1632,7 @@ v850_elf_relocate_section (output_bfd, i Elf_Internal_Rela *rel; Elf_Internal_Rela *relend; - if (info->relocateable) + if (info->relocatable) return TRUE; symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr; @@ -2496,7 +2520,7 @@ v850_elf_relax_section (abfd, sec, link_ *again = FALSE; - if (link_info->relocateable + if (link_info->relocatable || (sec->flags & SEC_RELOC) == 0 || sec->reloc_count == 0) return TRUE; diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf32-vax.c binutils-2.14.90.0.5/bfd/elf32-vax.c --- binutils-2.14.90.0.4.1/bfd/elf32-vax.c 2003-03-19 09:19:13.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/elf32-vax.c 2003-07-23 08:08:09.000000000 -0700 @@ -578,7 +578,7 @@ elf_vax_check_relocs (abfd, info, sec, r asection *srelgot; asection *sreloc; - if (info->relocateable) + if (info->relocatable) return TRUE; dynobj = elf_hash_table (info)->dynobj; @@ -1440,7 +1440,7 @@ elf_vax_relocate_section (output_bfd, in Elf_Internal_Rela *rel; Elf_Internal_Rela *relend; - if (info->relocateable) + if (info->relocatable) return TRUE; dynobj = elf_hash_table (info)->dynobj; diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf32-xstormy16.c binutils-2.14.90.0.5/bfd/elf32-xstormy16.c --- binutils-2.14.90.0.4.1/bfd/elf32-xstormy16.c 2003-05-23 07:18:52.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/elf32-xstormy16.c 2003-07-23 08:08:09.000000000 -0700 @@ -1,5 +1,5 @@ /* XSTORMY16-specific support for 32-bit ELF. - Copyright 2000, 2001, 2002 Free Software Foundation, Inc. + Copyright 2000, 2001, 2002, 2003 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -423,7 +423,7 @@ xstormy16_elf_check_relocs (abfd, info, asection *splt; bfd *dynobj; - if (info->relocateable) + if (info->relocatable) return TRUE; symtab_hdr = &elf_tdata(abfd)->symtab_hdr; @@ -609,7 +609,7 @@ xstormy16_elf_relax_section (dynobj, spl /* Assume nothing changes. */ *again = FALSE; - if (info->relocateable) + if (info->relocatable) return TRUE; /* We only relax the .plt section at the moment. */ @@ -739,7 +739,7 @@ xstormy16_elf_always_size_sections (outp bfd *dynobj; asection *splt; - if (info->relocateable) + if (info->relocatable) return TRUE; dynobj = elf_hash_table (info)->dynobj; @@ -766,7 +766,7 @@ xstormy16_elf_always_size_sections (outp zero. This function is responsible for adjusting the section contents as - necessary, and (if using Rela relocs and generating a relocateable + necessary, and (if using Rela relocs and generating a relocatable output file) adjusting the reloc addend as necessary. This function does not have to worry about setting the reloc @@ -780,7 +780,7 @@ xstormy16_elf_always_size_sections (outp The global hash table entry for the global symbols can be found via elf_sym_hashes (input_bfd). - When generating relocateable output, this function must handle + When generating relocatable output, this function must handle STB_LOCAL/STT_SECTION symbols specially. The output symbol is going to be the section symbol corresponding to the output section, which means that the addend must be adjusted @@ -805,7 +805,7 @@ xstormy16_elf_relocate_section (output_b bfd *dynobj; asection *splt; - if (info->relocateable) + if (info->relocatable) return TRUE; symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr; diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf32-xtensa.c binutils-2.14.90.0.5/bfd/elf32-xtensa.c --- binutils-2.14.90.0.4.1/bfd/elf32-xtensa.c 2003-05-15 13:42:25.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/elf32-xtensa.c 2003-07-23 08:08:09.000000000 -0700 @@ -127,7 +127,7 @@ static char *build_encoding_error_messag PARAMS ((xtensa_opcode, xtensa_encode_result)); static bfd_reloc_status_type bfd_elf_xtensa_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); -static void do_fix_for_relocateable_link +static void do_fix_for_relocatable_link PARAMS ((Elf_Internal_Rela *, bfd *, asection *)); static void do_fix_for_final_link PARAMS ((Elf_Internal_Rela *, asection *, bfd_vma *)); @@ -136,7 +136,7 @@ static bfd_boolean xtensa_elf_dynamic_sy static bfd_vma elf_xtensa_create_plt_entry PARAMS ((bfd *, bfd *, unsigned)); static int elf_xtensa_combine_prop_entries - PARAMS ((bfd *, const char *)); + PARAMS ((bfd *, asection *, asection *)); static bfd_boolean elf_xtensa_discard_info_for_section PARAMS ((bfd *, struct elf_reloc_cookie *, struct bfd_link_info *, asection *)); @@ -206,6 +206,8 @@ static bfd_boolean pcrel_reloc_fits PARAMS ((xtensa_operand, bfd_vma, bfd_vma)); static bfd_boolean xtensa_is_property_section PARAMS ((asection *)); +static bfd_boolean xtensa_is_littable_section + PARAMS ((asection *)); static bfd_boolean is_literal_section PARAMS ((asection *)); static int internal_reloc_compare @@ -609,7 +611,7 @@ elf_xtensa_check_relocs (abfd, info, sec property_table_entry *lit_table; int ltblsize; - if (info->relocateable) + if (info->relocatable) return TRUE; symtab_hdr = &elf_tdata (abfd)->symtab_hdr; @@ -904,7 +906,7 @@ elf_xtensa_create_dynamic_sections (dyno bfd *dynobj; struct bfd_link_info *info; { - flagword flags; + flagword flags, noalloc_flags; asection *s; /* First do all the standard stuff. */ @@ -916,8 +918,9 @@ elf_xtensa_create_dynamic_sections (dyno if (!add_extra_plt_sections (dynobj, plt_reloc_count)) return FALSE; - flags = (SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS | SEC_IN_MEMORY - | SEC_LINKER_CREATED | SEC_READONLY); + noalloc_flags = (SEC_HAS_CONTENTS | SEC_IN_MEMORY + | SEC_LINKER_CREATED | SEC_READONLY); + flags = noalloc_flags | SEC_ALLOC | SEC_LOAD; /* Mark the ".got.plt" section READONLY. */ s = bfd_get_section_by_name (dynobj, ".got.plt"); @@ -932,10 +935,17 @@ elf_xtensa_create_dynamic_sections (dyno || ! bfd_set_section_alignment (dynobj, s, 2)) return FALSE; + /* Create ".got.loc" (literal tables for use by dynamic linker). */ + s = bfd_make_section (dynobj, ".got.loc"); + if (s == NULL + || ! bfd_set_section_flags (dynobj, s, flags) + || ! bfd_set_section_alignment (dynobj, s, 2)) + return FALSE; + /* Create ".xt.lit.plt" (literal table for ".got.plt*"). */ s = bfd_make_section (dynobj, ".xt.lit.plt"); if (s == NULL - || ! bfd_set_section_flags (dynobj, s, flags) + || ! bfd_set_section_flags (dynobj, s, noalloc_flags) || ! bfd_set_section_alignment (dynobj, s, 2)) return FALSE; @@ -1136,8 +1146,8 @@ elf_xtensa_size_dynamic_sections (output bfd *output_bfd ATTRIBUTE_UNUSED; struct bfd_link_info *info; { - bfd *dynobj; - asection *s, *srelplt, *splt, *sgotplt, *srelgot, *spltlittbl; + bfd *dynobj, *abfd; + asection *s, *srelplt, *splt, *sgotplt, *srelgot, *spltlittbl, *sgotloc; bfd_boolean relplt, relgot; int plt_entries, plt_chunks, chunk; @@ -1241,6 +1251,28 @@ elf_xtensa_size_dynamic_sections (output splt->_raw_size = 0; } } + + /* Allocate space in ".got.loc" to match the total size of all the + literal tables. */ + sgotloc = bfd_get_section_by_name (dynobj, ".got.loc"); + if (sgotloc == NULL) + abort (); + sgotloc->_raw_size = spltlittbl->_raw_size; + for (abfd = info->input_bfds; abfd != NULL; abfd = abfd->link_next) + { + if (abfd->flags & DYNAMIC) + continue; + for (s = abfd->sections; s != NULL; s = s->next) + { + /* Skip input sections that are being discarded. */ + if (!bfd_is_abs_section (s) + && bfd_is_abs_section (s->output_section)) + continue; + + if (xtensa_is_littable_section (s) && s != spltlittbl) + sgotloc->_raw_size += s->_raw_size; + } + } } /* Allocate memory for dynamic sections. */ @@ -1291,7 +1323,8 @@ elf_xtensa_size_dynamic_sections (output else if (strcmp (name, ".got") != 0 && strcmp (name, ".plt") != 0 && strcmp (name, ".got.plt") != 0 - && strcmp (name, ".xt.lit.plt") != 0) + && strcmp (name, ".xt.lit.plt") != 0 + && strcmp (name, ".got.loc") != 0) { /* It's not one of our sections, so don't allocate space. */ continue; @@ -1662,7 +1695,7 @@ bfd_elf_xtensa_reloc (abfd, reloc_entry, asection *reloc_target_output_section; bfd_boolean is_weak_undef; - /* ELF relocs are against symbols. If we are producing relocateable + /* ELF relocs are against symbols. If we are producing relocatable output, and the reloc is against an external symbol, the resulting reloc will also be against the same symbol. In such a case, we don't want to change anything about the way the reloc is handled, @@ -1805,43 +1838,14 @@ xtensa_elf_dynamic_symbol_p (info, h) struct bfd_link_info *info; struct elf_link_hash_entry *h; { - if (h == NULL) - return FALSE; - - while (h->root.type == bfd_link_hash_indirect - || h->root.type == bfd_link_hash_warning) - h = (struct elf_link_hash_entry *) h->root.u.i.link; - - if (h->dynindx == -1) - return FALSE; - - if (h->root.type == bfd_link_hash_undefweak - || h->root.type == bfd_link_hash_defweak) - return TRUE; - - switch (ELF_ST_VISIBILITY (h->other)) - { - case STV_DEFAULT: - break; - case STV_HIDDEN: - case STV_INTERNAL: - return FALSE; - case STV_PROTECTED: - if (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) - return FALSE; - break; - } - - if ((info->shared && !info->symbolic) - || (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0) - return TRUE; - - return FALSE; + /* ??? What, if anything, needs to happen wrt STV_PROTECTED and PLT + entries? For now assume the worst. */ + return _bfd_elf_dynamic_symbol_p (h, info, 1); } /* Relocate an Xtensa ELF section. This is invoked by the linker for - both relocateable and final links. */ + both relocatable and final links. */ static bfd_boolean elf_xtensa_relocate_section (output_bfd, info, input_bfd, @@ -1909,9 +1913,9 @@ elf_xtensa_relocate_section (output_bfd, r_symndx = ELF32_R_SYM (rel->r_info); - if (info->relocateable) + if (info->relocatable) { - /* This is a relocateable link. + /* This is a relocatable link. 1) If the reloc is against a section symbol, adjust according to the output section. 2) If there is a new target for this relocation, @@ -1922,7 +1926,7 @@ elf_xtensa_relocate_section (output_bfd, if (relaxing_section) { /* Check if this references a section in another input file. */ - do_fix_for_relocateable_link (rel, input_bfd, input_section); + do_fix_for_relocatable_link (rel, input_bfd, input_section); r_type = ELF32_R_TYPE (rel->r_info); } @@ -1934,7 +1938,7 @@ elf_xtensa_relocate_section (output_bfd, r_type = ELF32_R_TYPE (rel->r_info); } - /* This is a relocateable link, so we don't have to change + /* This is a relocatable link, so we don't have to change anything unless the reloc is against a section symbol, in which case we have to adjust according to where the section symbol winds up in the output section. */ @@ -1950,7 +1954,7 @@ elf_xtensa_relocate_section (output_bfd, /* If there is an addend with a partial_inplace howto, then move the addend to the contents. This is a hack - to work around problems with DWARF in relocateable links + to work around problems with DWARF in relocatable links with some previous version of BFD. Now we can't easily get rid of the hack without breaking backward compatibility.... */ if (rel->r_addend) @@ -1973,7 +1977,7 @@ elf_xtensa_relocate_section (output_bfd, } } - /* Done with work for relocateable link; continue with next reloc. */ + /* Done with work for relocatable link; continue with next reloc. */ continue; } @@ -2236,25 +2240,27 @@ elf_xtensa_finish_dynamic_symbol (output on error. */ static int -elf_xtensa_combine_prop_entries (output_bfd, secname) +elf_xtensa_combine_prop_entries (output_bfd, sxtlit, sgotloc) bfd *output_bfd; - const char *secname; + asection *sxtlit; + asection *sgotloc; { - asection *sec; bfd_byte *contents; property_table_entry *table; - bfd_size_type section_size; + bfd_size_type section_size, sgotloc_size; bfd_vma offset; int n, m, num; - sec = bfd_get_section_by_name (output_bfd, secname); - if (!sec) - return -1; - - section_size = (sec->_cooked_size != 0 ? sec->_cooked_size : sec->_raw_size); + section_size = (sxtlit->_cooked_size != 0 + ? sxtlit->_cooked_size : sxtlit->_raw_size); BFD_ASSERT (section_size % 8 == 0); num = section_size / 8; + sgotloc_size = (sgotloc->_cooked_size != 0 + ? sgotloc->_cooked_size : sgotloc->_raw_size); + if (sgotloc_size != section_size) + return -1; + contents = (bfd_byte *) bfd_malloc (section_size); table = (property_table_entry *) bfd_malloc (num * sizeof (property_table_entry)); @@ -2264,9 +2270,10 @@ elf_xtensa_combine_prop_entries (output_ /* The ".xt.lit.plt" section has the SEC_IN_MEMORY flag set and this propagates to the output section, where it doesn't really apply and where it breaks the following call to bfd_get_section_contents. */ - sec->flags &= ~SEC_IN_MEMORY; + sxtlit->flags &= ~SEC_IN_MEMORY; - if (! bfd_get_section_contents (output_bfd, sec, contents, 0, section_size)) + if (! bfd_get_section_contents (output_bfd, sxtlit, contents, 0, + section_size)) return -1; /* There should never be any relocations left at this point, so this @@ -2321,12 +2328,16 @@ elf_xtensa_combine_prop_entries (output_ if ((bfd_size_type) (num * 8) < section_size) { memset (&contents[num * 8], 0, section_size - num * 8); - sec->_cooked_size = num * 8; + sxtlit->_cooked_size = num * 8; } - if (! bfd_set_section_contents (output_bfd, sec, contents, 0, section_size)) + if (! bfd_set_section_contents (output_bfd, sxtlit, contents, 0, + section_size)) return -1; + /* Copy the contents to ".got.loc". */ + memcpy (sgotloc->contents, contents, section_size); + free (contents); return num; } @@ -2340,7 +2351,7 @@ elf_xtensa_finish_dynamic_sections (outp struct bfd_link_info *info; { bfd *dynobj; - asection *sdyn, *srelplt, *sgot; + asection *sdyn, *srelplt, *sgot, *sxtlit, *sgotloc; Elf32_External_Dyn *dyncon, *dynconend; int num_xtlit_entries; @@ -2465,8 +2476,13 @@ elf_xtensa_finish_dynamic_sections (outp } /* Combine adjacent literal table entries. */ - BFD_ASSERT (! info->relocateable); - num_xtlit_entries = elf_xtensa_combine_prop_entries (output_bfd, ".xt.lit"); + BFD_ASSERT (! info->relocatable); + sxtlit = bfd_get_section_by_name (output_bfd, ".xt.lit"); + sgotloc = bfd_get_section_by_name (dynobj, ".got.loc"); + if (!sxtlit || !sgotloc) + return FALSE; + num_xtlit_entries = + elf_xtensa_combine_prop_entries (output_bfd, sxtlit, sgotloc); if (num_xtlit_entries < 0) return FALSE; @@ -2486,13 +2502,11 @@ elf_xtensa_finish_dynamic_sections (outp break; case DT_XTENSA_GOT_LOC_SZ: - s = bfd_get_section_by_name (output_bfd, ".xt.lit"); - BFD_ASSERT (s); dyn.d_un.d_val = num_xtlit_entries; break; case DT_XTENSA_GOT_LOC_OFF: - name = ".xt.lit"; + name = ".got.loc"; goto get_vma; case DT_PLTGOT: name = ".got"; @@ -4431,10 +4445,10 @@ is_resolvable_asm_expansion (abfd, sec, if (!target_sec->output_section) return FALSE; - /* For relocateable sections, we can only simplify when the output + /* For relocatable sections, we can only simplify when the output section of the target is the same as the output section of the source. */ - if (link_info->relocateable + if (link_info->relocatable && (target_sec->output_section != sec->output_section)) return FALSE; @@ -5264,9 +5278,27 @@ relax_property_section (abfd, sec, link_ relaxed; shrinking _raw_size means that these checks will not be unnecessarily lax.) */ sec->_raw_size = sec->_cooked_size; + + if (xtensa_is_littable_section (sec)) + { + bfd *dynobj = elf_hash_table (link_info)->dynobj; + if (dynobj) + { + asection *sgotloc = + bfd_get_section_by_name (dynobj, ".got.loc"); + if (sgotloc) + { + bfd_size_type sgotloc_size = + (sgotloc->_cooked_size ? sgotloc->_cooked_size + : sgotloc->_raw_size); + sgotloc->_cooked_size = sgotloc_size - removed_bytes; + sgotloc->_raw_size = sgotloc_size - removed_bytes; + } + } + } } } - + error_return: release_internal_relocs (sec, internal_relocs); release_contents (sec, contents); @@ -5345,7 +5377,7 @@ relax_section_symbols (abfd, sec) /* "Fix" handling functions, called while performing relocations. */ static void -do_fix_for_relocateable_link (rel, input_bfd, input_section) +do_fix_for_relocatable_link (rel, input_bfd, input_section) Elf_Internal_Rela *rel; bfd *input_bfd; asection *input_section; @@ -5584,12 +5616,42 @@ static bfd_boolean xtensa_is_property_section (sec) asection *sec; { - static int len = sizeof (".gnu.linkonce.t.") - 1; + static int linkonce_len = sizeof (".gnu.linkonce.") - 1; - return (strcmp (".xt.insn", sec->name) == 0 - || strcmp (".xt.lit", sec->name) == 0 - || strncmp (".gnu.linkonce.x.", sec->name, len) == 0 - || strncmp (".gnu.linkonce.p.", sec->name, len) == 0); + if (strncmp (".xt.insn", sec->name, 8) == 0 + || strncmp (".xt.lit", sec->name, 7) == 0) + return TRUE; + + if (strncmp (".gnu.linkonce.", sec->name, linkonce_len) == 0) + { + if (strncmp ("x.", sec->name + linkonce_len, 2) == 0 + || strncmp ("p.", sec->name + linkonce_len, 2) == 0) + return TRUE; + if (strstr (sec->name + linkonce_len, ".xt.insn") != NULL + || strstr (sec->name + linkonce_len, ".xt.lit") != NULL) + return TRUE; + } + return FALSE; +} + + +static bfd_boolean +xtensa_is_littable_section (sec) + asection *sec; +{ + static int linkonce_len = sizeof (".gnu.linkonce.") - 1; + + if (strncmp (".xt.lit", sec->name, 7) == 0) + return TRUE; + + if (strncmp (".gnu.linkonce.", sec->name, linkonce_len) == 0) + { + if (strncmp ("p.", sec->name + linkonce_len, 2) == 0) + return TRUE; + if (strstr (sec->name + linkonce_len, ".xt.lit") != NULL) + return TRUE; + } + return FALSE; } diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf64-alpha.c binutils-2.14.90.0.5/bfd/elf64-alpha.c --- binutils-2.14.90.0.4.1/bfd/elf64-alpha.c 2003-05-15 13:42:25.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/elf64-alpha.c 2003-07-23 08:08:09.000000000 -0700 @@ -47,7 +47,7 @@ #define ECOFF_64 #include "ecoffswap.h" -static int alpha_elf_dynamic_symbol_p +static bfd_boolean alpha_elf_dynamic_symbol_p PARAMS ((struct elf_link_hash_entry *, struct bfd_link_info *)); static struct bfd_hash_entry * elf64_alpha_link_hash_newfunc PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); @@ -269,49 +269,17 @@ struct alpha_elf_link_hash_table #define alpha_elf_sym_hashes(abfd) \ ((struct alpha_elf_link_hash_entry **)elf_sym_hashes(abfd)) -/* Should we do dynamic things to this symbol? */ +/* Should we do dynamic things to this symbol? This differs from the + generic version in that we never need to consider function pointer + equality wrt PLT entries -- we don't create a PLT entry if a symbol's + address is ever taken. */ -static int +static inline bfd_boolean alpha_elf_dynamic_symbol_p (h, info) struct elf_link_hash_entry *h; struct bfd_link_info *info; { - if (h == NULL) - return FALSE; - - while (h->root.type == bfd_link_hash_indirect - || h->root.type == bfd_link_hash_warning) - h = (struct elf_link_hash_entry *) h->root.u.i.link; - - if (h->dynindx == -1) - return FALSE; - - if (h->root.type == bfd_link_hash_undefweak - || h->root.type == bfd_link_hash_defweak) - return TRUE; - - switch (ELF_ST_VISIBILITY (h->other)) - { - case STV_DEFAULT: - break; - case STV_HIDDEN: - case STV_INTERNAL: - return FALSE; - case STV_PROTECTED: - if (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) - return FALSE; - break; - } - - if ((info->shared && !info->symbolic) - || ((h->elf_link_hash_flags - & (ELF_LINK_HASH_DEF_DYNAMIC - | ELF_LINK_HASH_DEF_REGULAR - | ELF_LINK_HASH_REF_REGULAR)) - == (ELF_LINK_HASH_DEF_DYNAMIC | ELF_LINK_HASH_REF_REGULAR))) - return TRUE; - - return FALSE; + return _bfd_elf_dynamic_symbol_p (h, info, 0); } /* Create an entry in a Alpha ELF linker hash table. */ @@ -2058,7 +2026,7 @@ elf64_alpha_relax_section (abfd, sec, li /* We are not currently changing any sizes, so only one pass. */ *again = FALSE; - if (link_info->relocateable + if (link_info->relocatable || (sec->flags & SEC_RELOC) == 0 || sec->reloc_count == 0) return TRUE; @@ -2465,7 +2433,7 @@ elf64_alpha_add_symbol_hook (abfd, info, bfd_vma *valp; { if (sym->st_shndx == SHN_COMMON - && !info->relocateable + && !info->relocatable && sym->st_size <= elf_gp_size (abfd)) { /* Common symbols less than or equal to -G nn bytes are @@ -3057,7 +3025,7 @@ elf64_alpha_check_relocs (abfd, info, se bfd_boolean got_created; bfd_size_type amt; - if (info->relocateable) + if (info->relocatable) return TRUE; dynobj = elf_hash_table(info)->dynobj; @@ -3863,7 +3831,7 @@ elf64_alpha_always_size_sections (output { bfd *i; - if (info->relocateable) + if (info->relocatable) return TRUE; /* First, take care of the indirect symbols created by versioning. */ @@ -4090,7 +4058,7 @@ elf64_alpha_size_dynamic_sections (outpu if (elf_hash_table (info)->dynamic_sections_created) { /* Set the contents of the .interp section to the interpreter. */ - if (!info->shared) + if (info->executable) { s = bfd_get_section_by_name (dynobj, ".interp"); BFD_ASSERT (s != NULL); @@ -4176,7 +4144,7 @@ elf64_alpha_size_dynamic_sections (outpu #define add_dynamic_entry(TAG, VAL) \ bfd_elf64_add_dynamic_entry (info, (bfd_vma) (TAG), (bfd_vma) (VAL)) - if (!info->shared) + if (info->executable) { if (!add_dynamic_entry (DT_DEBUG, 0)) return FALSE; @@ -4330,7 +4298,7 @@ elf64_alpha_relocate_section (output_bfd const char *section_name; /* Handle relocatable links with a smaller loop. */ - if (info->relocateable) + if (info->relocatable) return elf64_alpha_relocate_section_r (output_bfd, info, input_bfd, input_section, contents, relocs, local_syms, local_sections); @@ -4504,7 +4472,7 @@ elf64_alpha_relocate_section (output_bfd } else if (h->root.root.type == bfd_link_hash_undefweak) undef_weak_ref = TRUE; - else if (info->shared + else if (!info->executable && !info->no_undefined && ELF_ST_VISIBILITY (h->root.other) == STV_DEFAULT) ; diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf64-hppa.c binutils-2.14.90.0.5/bfd/elf64-hppa.c --- binutils-2.14.90.0.4.1/bfd/elf64-hppa.c 2003-05-15 13:42:25.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/elf64-hppa.c 2003-07-23 08:08:09.000000000 -0700 @@ -599,7 +599,7 @@ elf64_hppa_check_relocs (abfd, info, sec size_t buf_len; int sec_symndx; - if (info->relocateable) + if (info->relocatable) return TRUE; /* If this is the first dynamic object found in the link, create @@ -956,30 +956,19 @@ elf64_hppa_dynamic_symbol_p (h, info) struct elf_link_hash_entry *h; struct bfd_link_info *info; { - if (h == NULL) - return FALSE; - - while (h->root.type == bfd_link_hash_indirect - || h->root.type == bfd_link_hash_warning) - h = (struct elf_link_hash_entry *) h->root.u.i.link; - - if (h->dynindx == -1) - return FALSE; - - if (h->root.type == bfd_link_hash_undefweak - || h->root.type == bfd_link_hash_defweak) - return TRUE; + /* ??? What, if anything, needs to happen wrt STV_PROTECTED symbols + and relocations that retrieve a function descriptor? Assume the + worst for now. */ + if (_bfd_elf_dynamic_symbol_p (h, info, 1)) + { + /* ??? Why is this here and not elsewhere is_local_label_name. */ + if (h->root.root.string[0] == '$' && h->root.root.string[1] == '$') + return FALSE; - if (h->root.root.string[0] == '$' && h->root.root.string[1] == '$') + return TRUE; + } + else return FALSE; - - if ((info->shared && (!info->symbolic || info->allow_shlib_undefined)) - || ((h->elf_link_hash_flags - & (ELF_LINK_HASH_DEF_DYNAMIC | ELF_LINK_HASH_REF_REGULAR)) - == (ELF_LINK_HASH_DEF_DYNAMIC | ELF_LINK_HASH_REF_REGULAR))) - return TRUE; - - return FALSE; } /* Mark all funtions exported by this file so that we can later allocate diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf64-mips.c binutils-2.14.90.0.5/bfd/elf64-mips.c --- binutils-2.14.90.0.4.1/bfd/elf64-mips.c 2003-05-23 07:18:52.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/elf64-mips.c 2003-07-23 08:08:09.000000000 -0700 @@ -1447,15 +1447,17 @@ mips_elf64_hi16_reloc (abfd, reloc_entry want to change anything. */ if (output_bfd != (bfd *) NULL && (symbol->flags & BSF_SECTION_SYM) == 0 - && (! reloc_entry->howto->partial_inplace - || reloc_entry->addend == 0)) + && (symbol->flags & BSF_LOCAL) != 0) { reloc_entry->address += input_section->output_offset; return bfd_reloc_ok; } - if (((reloc_entry->addend & 0xffff) + 0x8000) & ~0xffff) - reloc_entry->addend += 0x8000; + if (reloc_entry->howto->partial_inplace) + { + if (((reloc_entry->addend & 0xffff) + 0x8000) & ~0xffff) + reloc_entry->addend += 0x8000; + } return bfd_reloc_continue; } @@ -1488,7 +1490,8 @@ mips_elf64_got16_reloc (abfd, reloc_entr /* If we're relocating, and this is a local symbol, we can handle it just like an R_MIPS_HI16. */ if (output_bfd != (bfd *) NULL - && (symbol->flags & BSF_SECTION_SYM) != 0) + && ((symbol->flags & BSF_SECTION_SYM) != 0 + || (symbol->flags & BSF_LOCAL) == 0)) return mips_elf64_hi16_reloc (abfd, reloc_entry, symbol, data, input_section, output_bfd, error_message); @@ -1553,18 +1556,18 @@ mips_elf64_assign_gp (output_bfd, pgp) symbol value correctly. We look up the symbol _gp in the output BFD. If we can't find it, we're stuck. We cache it in the ELF target data. We don't need to adjust the symbol value for an - external symbol if we are producing relocateable output. */ + external symbol if we are producing relocatable output. */ static bfd_reloc_status_type -mips_elf64_final_gp (output_bfd, symbol, relocateable, error_message, pgp) +mips_elf64_final_gp (output_bfd, symbol, relocatable, error_message, pgp) bfd *output_bfd; asymbol *symbol; - bfd_boolean relocateable; + bfd_boolean relocatable; char **error_message; bfd_vma *pgp; { if (bfd_is_und_section (symbol->section) - && ! relocateable) + && ! relocatable) { *pgp = 0; return bfd_reloc_undefined; @@ -1572,10 +1575,10 @@ mips_elf64_final_gp (output_bfd, symbol, *pgp = _bfd_get_gp_value (output_bfd); if (*pgp == 0 - && (! relocateable + && (! relocatable || (symbol->flags & BSF_SECTION_SYM) != 0)) { - if (relocateable) + if (relocatable) { /* Make up a value. */ *pgp = symbol->section->output_section->vma /*+ 0x4000*/; @@ -1606,38 +1609,35 @@ mips_elf64_gprel16_reloc (abfd, reloc_en bfd *output_bfd; char **error_message; { - bfd_boolean relocateable; + bfd_boolean relocatable; bfd_reloc_status_type ret; bfd_vma gp; - /* If we're relocating, and this is an external symbol with no - addend, we don't want to change anything. We will only have an - addend if this is a newly created reloc, not read from an ELF - file. */ + /* If we're relocating, and this is an external symbol, we don't want + to change anything. */ if (output_bfd != (bfd *) NULL && (symbol->flags & BSF_SECTION_SYM) == 0 - && (! reloc_entry->howto->partial_inplace - || reloc_entry->addend == 0)) + && (symbol->flags & BSF_LOCAL) != 0) { reloc_entry->address += input_section->output_offset; return bfd_reloc_ok; } if (output_bfd != (bfd *) NULL) - relocateable = TRUE; + relocatable = TRUE; else { - relocateable = FALSE; + relocatable = FALSE; output_bfd = symbol->section->output_section->owner; } - ret = mips_elf64_final_gp (output_bfd, symbol, relocateable, error_message, + ret = mips_elf64_final_gp (output_bfd, symbol, relocatable, error_message, &gp); if (ret != bfd_reloc_ok) return ret; return _bfd_mips_elf_gprel16_with_gp (abfd, symbol, reloc_entry, - input_section, relocateable, + input_section, relocatable, data, gp); } @@ -1654,7 +1654,7 @@ mips_elf64_literal_reloc (abfd, reloc_en bfd *output_bfd; char **error_message; { - bfd_boolean relocateable; + bfd_boolean relocatable; bfd_reloc_status_type ret; bfd_vma gp; @@ -1662,8 +1662,7 @@ mips_elf64_literal_reloc (abfd, reloc_en want to change anything. */ if (output_bfd != (bfd *) NULL && (symbol->flags & BSF_SECTION_SYM) == 0 - && (! reloc_entry->howto->partial_inplace - || reloc_entry->addend == 0)) + && (symbol->flags & BSF_LOCAL) != 0) { reloc_entry->address += input_section->output_offset; return bfd_reloc_ok; @@ -1671,20 +1670,20 @@ mips_elf64_literal_reloc (abfd, reloc_en /* FIXME: The entries in the .lit8 and .lit4 sections should be merged. */ if (output_bfd != (bfd *) NULL) - relocateable = TRUE; + relocatable = TRUE; else { - relocateable = FALSE; + relocatable = FALSE; output_bfd = symbol->section->output_section->owner; } - ret = mips_elf64_final_gp (output_bfd, symbol, relocateable, error_message, + ret = mips_elf64_final_gp (output_bfd, symbol, relocatable, error_message, &gp); if (ret != bfd_reloc_ok) return ret; return _bfd_mips_elf_gprel16_with_gp (abfd, symbol, reloc_entry, - input_section, relocateable, + input_section, relocatable, data, gp); } @@ -1702,19 +1701,17 @@ mips_elf64_gprel32_reloc (abfd, reloc_en bfd *output_bfd; char **error_message; { - bfd_boolean relocateable; + bfd_boolean relocatable; bfd_reloc_status_type ret; bfd_vma gp; bfd_vma relocation; - unsigned long val; + bfd_vma val; - /* If we're relocating, and this is an external symbol with no - addend, we don't want to change anything. We will only have an - addend if this is a newly created reloc, not read from an ELF - file. */ + /* If we're relocating, and this is an external symbol, we don't want + to change anything. */ if (output_bfd != (bfd *) NULL && (symbol->flags & BSF_SECTION_SYM) == 0 - && reloc_entry->addend == 0) + && (symbol->flags & BSF_LOCAL) != 0) { *error_message = (char *) _("32bits gp relative relocation occurs for an external symbol"); @@ -1722,21 +1719,18 @@ mips_elf64_gprel32_reloc (abfd, reloc_en } if (output_bfd != (bfd *) NULL) - { - relocateable = TRUE; - gp = _bfd_get_gp_value (output_bfd); - } + relocatable = TRUE; else { - relocateable = FALSE; + relocatable = FALSE; output_bfd = symbol->section->output_section->owner; - - ret = mips_elf64_final_gp (output_bfd, symbol, relocateable, - error_message, &gp); - if (ret != bfd_reloc_ok) - return ret; } + ret = mips_elf64_final_gp (output_bfd, symbol, relocatable, + error_message, &gp); + if (ret != bfd_reloc_ok) + return ret; + if (bfd_is_com_section (symbol->section)) relocation = 0; else @@ -1748,27 +1742,25 @@ mips_elf64_gprel32_reloc (abfd, reloc_en if (reloc_entry->address > input_section->_cooked_size) return bfd_reloc_outofrange; - if (reloc_entry->howto->src_mask == 0) - { - /* This case arises with the 64-bit MIPS ELF ABI. */ - val = 0; - } - else - val = bfd_get_32 (abfd, (bfd_byte *) data + reloc_entry->address); - /* Set val to the offset into the section or symbol. */ - val += reloc_entry->addend; + val = reloc_entry->addend; + + if (reloc_entry->howto->partial_inplace) + val += bfd_get_32 (abfd, (bfd_byte *) data + reloc_entry->address); /* Adjust val for the final section location and GP value. If we - are producing relocateable output, we don't want to do this for + are producing relocatable output, we don't want to do this for an external symbol. */ - if (! relocateable + if (! relocatable || (symbol->flags & BSF_SECTION_SYM) != 0) val += relocation - gp; - bfd_put_32 (abfd, val, (bfd_byte *) data + reloc_entry->address); + if (reloc_entry->howto->partial_inplace) + bfd_put_32 (abfd, val, (bfd_byte *) data + reloc_entry->address); + else + reloc_entry->addend = val; - if (relocateable) + if (relocatable) reloc_entry->address += input_section->output_offset; return bfd_reloc_ok; @@ -1792,15 +1784,17 @@ mips_elf64_shift6_reloc (abfd, reloc_ent want to change anything. */ if (output_bfd != (bfd *) NULL && (symbol->flags & BSF_SECTION_SYM) == 0 - && (! reloc_entry->howto->partial_inplace - || reloc_entry->addend == 0)) + && (symbol->flags & BSF_LOCAL) != 0) { reloc_entry->address += input_section->output_offset; return bfd_reloc_ok; } - reloc_entry->addend = (reloc_entry->addend & 0x00007c0) - | (reloc_entry->addend & 0x00000800) >> 9; + if (reloc_entry->howto->partial_inplace) + { + reloc_entry->addend = ((reloc_entry->addend & 0x00007c0) + | (reloc_entry->addend & 0x00000800) >> 9); + } return bfd_reloc_continue; } @@ -1854,33 +1848,33 @@ mips16_gprel_reloc (abfd, reloc_entry, s bfd *output_bfd; char **error_message; { - bfd_boolean relocateable; + bfd_boolean relocatable; bfd_reloc_status_type ret; bfd_vma gp; - unsigned short extend, insn; - unsigned long final; + unsigned short extend = 0; + unsigned short insn = 0; + bfd_signed_vma val; + bfd_vma relocation; /* If we're relocating, and this is an external symbol with no - addend, we don't want to change anything. We will only have an - addend if this is a newly created reloc, not read from an ELF - file. */ + addend, we don't want to change anything. */ if (output_bfd != NULL && (symbol->flags & BSF_SECTION_SYM) == 0 - && reloc_entry->addend == 0) + && (symbol->flags & BSF_LOCAL) != 0) { reloc_entry->address += input_section->output_offset; return bfd_reloc_ok; } if (output_bfd != NULL) - relocateable = TRUE; + relocatable = TRUE; else { - relocateable = FALSE; + relocatable = FALSE; output_bfd = symbol->section->output_section->owner; } - ret = mips_elf64_final_gp (output_bfd, symbol, relocateable, error_message, + ret = mips_elf64_final_gp (output_bfd, symbol, relocatable, error_message, &gp); if (ret != bfd_reloc_ok) return ret; @@ -1888,33 +1882,55 @@ mips16_gprel_reloc (abfd, reloc_entry, s if (reloc_entry->address > input_section->_cooked_size) return bfd_reloc_outofrange; - /* Pick up the mips16 extend instruction and the real instruction. */ - extend = bfd_get_16 (abfd, (bfd_byte *) data + reloc_entry->address); - insn = bfd_get_16 (abfd, (bfd_byte *) data + reloc_entry->address + 2); - - /* Stuff the current addend back as a 32 bit value, do the usual - relocation, and then clean up. */ - bfd_put_32 (abfd, - (bfd_vma) (((extend & 0x1f) << 11) - | (extend & 0x7e0) - | (insn & 0x1f)), - (bfd_byte *) data + reloc_entry->address); - - ret = _bfd_mips_elf_gprel16_with_gp (abfd, symbol, reloc_entry, - input_section, relocateable, data, gp); - - final = bfd_get_32 (abfd, (bfd_byte *) data + reloc_entry->address); - bfd_put_16 (abfd, - (bfd_vma) ((extend & 0xf800) - | ((final >> 11) & 0x1f) - | (final & 0x7e0)), - (bfd_byte *) data + reloc_entry->address); - bfd_put_16 (abfd, - (bfd_vma) ((insn & 0xffe0) - | (final & 0x1f)), - (bfd_byte *) data + reloc_entry->address + 2); + if (bfd_is_com_section (symbol->section)) + relocation = 0; + else + relocation = symbol->value; - return ret; + relocation += symbol->section->output_section->vma; + relocation += symbol->section->output_offset; + + /* Set val to the offset into the section or symbol. */ + val = reloc_entry->addend; + + if (reloc_entry->howto->partial_inplace) + { + /* Pick up the mips16 extend instruction and the real instruction. */ + extend = bfd_get_16 (abfd, (bfd_byte *) data + reloc_entry->address); + insn = bfd_get_16 (abfd, (bfd_byte *) data + reloc_entry->address + 2); + val += ((extend & 0x1f) << 11) | (extend & 0x7e0) | (insn & 0x1f); + } + + _bfd_mips_elf_sign_extend(val, 16); + + /* Adjust val for the final section location and GP value. If we + are producing relocatable output, we don't want to do this for + an external symbol. */ + if (! relocatable + || (symbol->flags & BSF_SECTION_SYM) != 0) + val += relocation - gp; + + if (reloc_entry->howto->partial_inplace) + { + bfd_put_16 (abfd, + (bfd_vma) ((extend & 0xf800) + | ((val >> 11) & 0x1f) + | (val & 0x7e0)), + (bfd_byte *) data + reloc_entry->address); + bfd_put_16 (abfd, + (bfd_vma) ((insn & 0xffe0) + | (val & 0x1f)), + (bfd_byte *) data + reloc_entry->address + 2); + } + else + reloc_entry->addend = val; + + if (relocatable) + reloc_entry->address += input_section->output_offset; + else if (((val & ~0xffff) != ~0xffff) && ((val & ~0xffff) != 0)) + return bfd_reloc_overflow; + + return bfd_reloc_ok; } /* A mapping from BFD reloc types to MIPS ELF reloc types. */ diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf64-mmix.c binutils-2.14.90.0.5/bfd/elf64-mmix.c --- binutils-2.14.90.0.4.1/bfd/elf64-mmix.c 2003-05-15 13:42:25.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/elf64-mmix.c 2003-07-23 08:08:09.000000000 -0700 @@ -1229,9 +1229,9 @@ mmix_elf_relocate_section (output_bfd, i r_symndx = ELF64_R_SYM (rel->r_info); - if (info->relocateable) + if (info->relocatable) { - /* This is a relocateable link. We don't have to change + /* This is a relocatable link. We don't have to change anything, unless the reloc is against a section symbol, in which case we have to adjust according to where the section symbol winds up in the output section. */ @@ -1669,7 +1669,7 @@ mmix_elf_check_common_relocs (abfd, inf const Elf_Internal_Rela *rel; const Elf_Internal_Rela *rel_end; - if (info->relocateable) + if (info->relocatable) return TRUE; /* We currently have to abuse this COFF-specific member, since there's @@ -1780,7 +1780,7 @@ mmix_elf_check_relocs (abfd, info, sec, const Elf_Internal_Rela *rel; const Elf_Internal_Rela *rel_end; - if (info->relocateable) + if (info->relocatable) return TRUE; symtab_hdr = &elf_tdata (abfd)->symtab_hdr; @@ -2352,10 +2352,10 @@ mmix_elf_relax_section (abfd, sec, link_ if (sec->_cooked_size == 0) sec->_cooked_size = sec->_raw_size; - /* We don't have to do anything for a relocateable link, if + /* We don't have to do anything for a relocatable link, if this section does not have relocs, or if this is not a code section. */ - if (link_info->relocateable + if (link_info->relocatable || (sec->flags & SEC_RELOC) == 0 || sec->reloc_count == 0 || (sec->flags & SEC_CODE) == 0 diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf64-ppc.c binutils-2.14.90.0.5/bfd/elf64-ppc.c --- binutils-2.14.90.0.4.1/bfd/elf64-ppc.c 2003-05-23 07:18:52.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/elf64-ppc.c 2003-07-23 08:08:09.000000000 -0700 @@ -15,12 +15,13 @@ 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 is based on the 64-bit PowerPC ELF ABI. It is also based - on the file elf32-ppc.c. */ + 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. */ + +/* The 64-bit PowerPC ELF ABI may be found at + http://www.linuxbase.org/spec/ELF/ppc64/PPC-elf64abi.txt, and + http://www.linuxbase.org/spec/ELF/ppc64/spec/book1.html */ #include "bfd.h" #include "sysdep.h" @@ -30,35 +31,65 @@ #include "elf/ppc64.h" #include "elf64-ppc.h" -static void ppc_howto_init - PARAMS ((void)); -static reloc_howto_type *ppc64_elf_reloc_type_lookup - PARAMS ((bfd *abfd, bfd_reloc_code_real_type code)); -static void ppc64_elf_info_to_howto - PARAMS ((bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst)); static bfd_reloc_status_type ppc64_elf_ha_reloc - PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); + (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **); static bfd_reloc_status_type ppc64_elf_brtaken_reloc - PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); + (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **); static bfd_reloc_status_type ppc64_elf_sectoff_reloc - PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); + (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **); static bfd_reloc_status_type ppc64_elf_sectoff_ha_reloc - PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); + (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **); static bfd_reloc_status_type ppc64_elf_toc_reloc - PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); + (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **); static bfd_reloc_status_type ppc64_elf_toc_ha_reloc - PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); + (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **); static bfd_reloc_status_type ppc64_elf_toc64_reloc - PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); + (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **); static bfd_reloc_status_type ppc64_elf_unhandled_reloc - PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); -static bfd_boolean ppc64_elf_object_p - PARAMS ((bfd *)); -static bfd_boolean ppc64_elf_merge_private_bfd_data - PARAMS ((bfd *, bfd *)); -static bfd_boolean ppc64_elf_new_section_hook - PARAMS ((bfd *, asection *)); + (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **); + +#define TARGET_LITTLE_SYM bfd_elf64_powerpcle_vec +#define TARGET_LITTLE_NAME "elf64-powerpcle" +#define TARGET_BIG_SYM bfd_elf64_powerpc_vec +#define TARGET_BIG_NAME "elf64-powerpc" +#define ELF_ARCH bfd_arch_powerpc +#define ELF_MACHINE_CODE EM_PPC64 +#define ELF_MAXPAGESIZE 0x10000 +#define elf_info_to_howto ppc64_elf_info_to_howto + +#define elf_backend_want_got_sym 0 +#define elf_backend_want_plt_sym 0 +#define elf_backend_plt_alignment 3 +#define elf_backend_plt_not_loaded 1 +#define elf_backend_got_symbol_offset 0 +#define elf_backend_got_header_size 8 +#define elf_backend_plt_header_size PLT_INITIAL_ENTRY_SIZE +#define elf_backend_can_gc_sections 1 +#define elf_backend_can_refcount 1 +#define elf_backend_rela_normal 1 + +#define bfd_elf64_mkobject ppc64_elf_mkobject +#define bfd_elf64_bfd_reloc_type_lookup ppc64_elf_reloc_type_lookup +#define bfd_elf64_bfd_merge_private_bfd_data ppc64_elf_merge_private_bfd_data +#define bfd_elf64_new_section_hook ppc64_elf_new_section_hook +#define bfd_elf64_bfd_link_hash_table_create ppc64_elf_link_hash_table_create +#define bfd_elf64_bfd_link_hash_table_free ppc64_elf_link_hash_table_free + +#define elf_backend_object_p ppc64_elf_object_p +#define elf_backend_create_dynamic_sections ppc64_elf_create_dynamic_sections +#define elf_backend_copy_indirect_symbol ppc64_elf_copy_indirect_symbol +#define elf_backend_check_relocs ppc64_elf_check_relocs +#define elf_backend_gc_mark_hook ppc64_elf_gc_mark_hook +#define elf_backend_gc_sweep_hook ppc64_elf_gc_sweep_hook +#define elf_backend_adjust_dynamic_symbol ppc64_elf_adjust_dynamic_symbol +#define elf_backend_hide_symbol ppc64_elf_hide_symbol +#define elf_backend_always_size_sections ppc64_elf_func_desc_adjust +#define elf_backend_size_dynamic_sections ppc64_elf_size_dynamic_sections +#define elf_backend_relocate_section ppc64_elf_relocate_section +#define elf_backend_finish_dynamic_symbol ppc64_elf_finish_dynamic_symbol +#define elf_backend_reloc_type_class ppc64_elf_reloc_type_class +#define elf_backend_finish_dynamic_sections ppc64_elf_finish_dynamic_sections /* The name of the dynamic interpreter. This is put in the .interp section. */ @@ -77,7 +108,10 @@ static bfd_boolean ppc64_elf_new_section #define TP_OFFSET 0x7000 #define DTP_OFFSET 0x8000 -/* .plt call stub instructions. */ +/* .plt call stub instructions. The normal stub is like this, but + sometimes the .plt entry crosses a 64k boundary and we need to + insert an addis to adjust r12. */ +#define PLT_CALL_STUB_SIZE (7*4) #define ADDIS_R12_R2 0x3d820000 /* addis %r12,%r2,xxx@ha */ #define STD_R2_40R1 0xf8410028 /* std %r2,40(%r1) */ #define LD_R11_0R12 0xe96c0000 /* ld %r11,xxx+0@l(%r12) */ @@ -86,19 +120,31 @@ static bfd_boolean ppc64_elf_new_section /* ld %r11,xxx+16@l(%r12) */ #define BCTR 0x4e800420 /* bctr */ -/* The normal stub is this size. */ -#define PLT_CALL_STUB_SIZE (7*4) -/* But sometimes the .plt entry crosses a 64k boundary, and we need - to adjust the high word with this insn. */ -#define ADDIS_R12_R12_1 0x3d8c0001 /* addis %r12,%r12,1 */ - -/* The .glink fixup call stub is the same as the .plt call stub, but - the first instruction restores r2, and the std is omitted. */ -#define LD_R2_40R1 0xe8410028 /* ld %r2,40(%r1) */ +#define ADDIS_R2_R2 0x3c420000 /* addis %r2,%r2,off@ha */ +#define ADDI_R2_R2 0x38420000 /* addi %r2,%r2,off@l */ + +#define LD_R2_40R1 0xe8410028 /* ld %r2,40(%r1) */ -/* Always allow this much space. */ -#define GLINK_CALL_STUB_SIZE (8*4) +/* glink call stub instructions. We enter with the index in R0, and the + address of glink entry in CTR. From that, we can calculate PLT0. */ +#define GLINK_CALL_STUB_SIZE (16*4) +#define MFCTR_R12 0x7d8902a6 /* mfctr %r12 */ +#define SLDI_R11_R0_3 0x780b1f24 /* sldi %r11,%r0,3 */ +#define ADDIC_R2_R0_32K 0x34408000 /* addic. %r2,%r0,-32768 */ +#define SUB_R12_R12_R11 0x7d8b6050 /* sub %r12,%r12,%r11 */ +#define SRADI_R2_R2_63 0x7c42fe76 /* sradi %r2,%r2,63 */ +#define SLDI_R11_R0_2 0x780b1764 /* sldi %r11,%r0,2 */ +#define AND_R2_R2_R11 0x7c425838 /* and %r2,%r2,%r11 */ + /* sub %r12,%r12,%r11 */ +#define ADD_R12_R12_R2 0x7d8c1214 /* add %r12,%r12,%r2 */ +#define ADDIS_R12_R12 0x3d8c0000 /* addis %r12,%r12,xxx@ha */ + /* ld %r11,xxx@l(%r12) */ +#define ADDI_R12_R12 0x398c0000 /* addi %r12,%r12,xxx@l */ + /* ld %r2,8(%r12) */ + /* mtctr %r11 */ + /* ld %r11,16(%r12) */ + /* bctr */ /* Pad with this. */ #define NOP 0x60000000 @@ -1718,7 +1764,7 @@ static reloc_howto_type ppc64_elf_howto_ "R_PPC64_GOT_TPREL16_DS", /* name */ FALSE, /* partial_inplace */ 0, /* src_mask */ - 0xffff, /* dst_mask */ + 0xfffc, /* dst_mask */ FALSE), /* pcrel_offset */ /* Like GOT_TPREL16_DS, but no overflow. */ @@ -1733,7 +1779,7 @@ static reloc_howto_type ppc64_elf_howto_ "R_PPC64_GOT_TPREL16_LO_DS", /* name */ FALSE, /* partial_inplace */ 0, /* src_mask */ - 0xffff, /* dst_mask */ + 0xfffc, /* dst_mask */ FALSE), /* pcrel_offset */ /* Like GOT_TPREL16_LO_DS, but next higher group of 16 bits. */ @@ -1802,7 +1848,7 @@ static reloc_howto_type ppc64_elf_howto_ be done. */ static void -ppc_howto_init () +ppc_howto_init (void) { unsigned int i, type; @@ -1818,9 +1864,8 @@ ppc_howto_init () } static reloc_howto_type * -ppc64_elf_reloc_type_lookup (abfd, code) - bfd *abfd ATTRIBUTE_UNUSED; - bfd_reloc_code_real_type code; +ppc64_elf_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED, + bfd_reloc_code_real_type code) { enum elf_ppc64_reloc_type r = R_PPC64_NONE; @@ -1828,10 +1873,10 @@ ppc64_elf_reloc_type_lookup (abfd, code) /* Initialize howto table if needed. */ ppc_howto_init (); - switch ((int) code) + switch (code) { default: - return (reloc_howto_type *) NULL; + return NULL; case BFD_RELOC_NONE: r = R_PPC64_NONE; break; @@ -2037,16 +2082,14 @@ ppc64_elf_reloc_type_lookup (abfd, code) break; } - return ppc64_elf_howto_table[(int) r]; + return ppc64_elf_howto_table[r]; }; /* Set the howto pointer for a PowerPC ELF reloc. */ static void -ppc64_elf_info_to_howto (abfd, cache_ptr, dst) - bfd *abfd ATTRIBUTE_UNUSED; - arelent *cache_ptr; - Elf_Internal_Rela *dst; +ppc64_elf_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, arelent *cache_ptr, + Elf_Internal_Rela *dst) { unsigned int type; @@ -2063,15 +2106,9 @@ ppc64_elf_info_to_howto (abfd, cache_ptr /* Handle the R_PPC64_ADDR16_HA and similar relocs. */ static bfd_reloc_status_type -ppc64_elf_ha_reloc (abfd, reloc_entry, symbol, data, - input_section, output_bfd, error_message) - bfd *abfd; - arelent *reloc_entry; - asymbol *symbol; - PTR data; - asection *input_section; - bfd *output_bfd; - char **error_message; +ppc64_elf_ha_reloc (bfd *abfd, arelent *reloc_entry, asymbol *symbol, + void *data, asection *input_section, + bfd *output_bfd, char **error_message) { /* If this is a relocatable link (output_bfd test tells us), just call the generic function. Any adjustment will be done at final @@ -2088,15 +2125,9 @@ ppc64_elf_ha_reloc (abfd, reloc_entry, s } static bfd_reloc_status_type -ppc64_elf_brtaken_reloc (abfd, reloc_entry, symbol, data, - input_section, output_bfd, error_message) - bfd *abfd; - arelent *reloc_entry; - asymbol *symbol; - PTR data; - asection *input_section; - bfd *output_bfd; - char **error_message; +ppc64_elf_brtaken_reloc (bfd *abfd, arelent *reloc_entry, asymbol *symbol, + void *data, asection *input_section, + bfd *output_bfd, char **error_message) { long insn; enum elf_ppc64_reloc_type r_type; @@ -2114,7 +2145,7 @@ ppc64_elf_brtaken_reloc (abfd, reloc_ent octets = reloc_entry->address * bfd_octets_per_byte (abfd); insn = bfd_get_32 (abfd, (bfd_byte *) data + octets); insn &= ~(0x01 << 21); - r_type = (enum elf_ppc64_reloc_type) reloc_entry->howto->type; + r_type = reloc_entry->howto->type; if (r_type == R_PPC64_ADDR14_BRTAKEN || r_type == R_PPC64_REL14_BRTAKEN) insn |= 0x01 << 21; /* 'y' or 't' bit, lowest bit of BO field. */ @@ -2150,20 +2181,14 @@ ppc64_elf_brtaken_reloc (abfd, reloc_ent if ((bfd_signed_vma) (target - from) < 0) insn ^= 0x01 << 21; } - bfd_put_32 (abfd, (bfd_vma) insn, (bfd_byte *) data + octets); + bfd_put_32 (abfd, insn, (bfd_byte *) data + octets); return bfd_reloc_continue; } static bfd_reloc_status_type -ppc64_elf_sectoff_reloc (abfd, reloc_entry, symbol, data, - input_section, output_bfd, error_message) - bfd *abfd; - arelent *reloc_entry; - asymbol *symbol; - PTR data; - asection *input_section; - bfd *output_bfd; - char **error_message; +ppc64_elf_sectoff_reloc (bfd *abfd, arelent *reloc_entry, asymbol *symbol, + void *data, asection *input_section, + bfd *output_bfd, char **error_message) { /* If this is a relocatable link (output_bfd test tells us), just call the generic function. Any adjustment will be done at final @@ -2178,15 +2203,9 @@ ppc64_elf_sectoff_reloc (abfd, reloc_ent } static bfd_reloc_status_type -ppc64_elf_sectoff_ha_reloc (abfd, reloc_entry, symbol, data, - input_section, output_bfd, error_message) - bfd *abfd; - arelent *reloc_entry; - asymbol *symbol; - PTR data; - asection *input_section; - bfd *output_bfd; - char **error_message; +ppc64_elf_sectoff_ha_reloc (bfd *abfd, arelent *reloc_entry, asymbol *symbol, + void *data, asection *input_section, + bfd *output_bfd, char **error_message) { /* If this is a relocatable link (output_bfd test tells us), just call the generic function. Any adjustment will be done at final @@ -2204,15 +2223,9 @@ ppc64_elf_sectoff_ha_reloc (abfd, reloc_ } static bfd_reloc_status_type -ppc64_elf_toc_reloc (abfd, reloc_entry, symbol, data, - input_section, output_bfd, error_message) - bfd *abfd; - arelent *reloc_entry; - asymbol *symbol; - PTR data; - asection *input_section; - bfd *output_bfd; - char **error_message; +ppc64_elf_toc_reloc (bfd *abfd, arelent *reloc_entry, asymbol *symbol, + void *data, asection *input_section, + bfd *output_bfd, char **error_message) { bfd_vma TOCstart; @@ -2233,15 +2246,9 @@ ppc64_elf_toc_reloc (abfd, reloc_entry, } static bfd_reloc_status_type -ppc64_elf_toc_ha_reloc (abfd, reloc_entry, symbol, data, - input_section, output_bfd, error_message) - bfd *abfd; - arelent *reloc_entry; - asymbol *symbol; - PTR data; - asection *input_section; - bfd *output_bfd; - char **error_message; +ppc64_elf_toc_ha_reloc (bfd *abfd, arelent *reloc_entry, asymbol *symbol, + void *data, asection *input_section, + bfd *output_bfd, char **error_message) { bfd_vma TOCstart; @@ -2265,15 +2272,9 @@ ppc64_elf_toc_ha_reloc (abfd, reloc_entr } static bfd_reloc_status_type -ppc64_elf_toc64_reloc (abfd, reloc_entry, symbol, data, - input_section, output_bfd, error_message) - bfd *abfd; - arelent *reloc_entry; - asymbol *symbol; - PTR data; - asection *input_section; - bfd *output_bfd; - char **error_message; +ppc64_elf_toc64_reloc (bfd *abfd, arelent *reloc_entry, asymbol *symbol, + void *data, asection *input_section, + bfd *output_bfd, char **error_message) { bfd_vma TOCstart; bfd_size_type octets; @@ -2295,15 +2296,9 @@ ppc64_elf_toc64_reloc (abfd, reloc_entry } static bfd_reloc_status_type -ppc64_elf_unhandled_reloc (abfd, reloc_entry, symbol, data, - input_section, output_bfd, error_message) - bfd *abfd; - arelent *reloc_entry; - asymbol *symbol; - PTR data; - asection *input_section; - bfd *output_bfd; - char **error_message; +ppc64_elf_unhandled_reloc (bfd *abfd, arelent *reloc_entry, asymbol *symbol, + void *data, asection *input_section, + bfd *output_bfd, char **error_message) { /* If this is a relocatable link (output_bfd test tells us), just call the generic function. Any adjustment will be done at final @@ -2322,12 +2317,45 @@ ppc64_elf_unhandled_reloc (abfd, reloc_e return bfd_reloc_dangerous; } +struct ppc64_elf_obj_tdata +{ + struct elf_obj_tdata elf; + + /* Shortcuts to dynamic linker sections. */ + asection *got; + asection *relgot; + + /* TLS local dynamic got entry handling. Suppose for multiple GOT + sections means we potentially need one of these for each input bfd. */ + union { + bfd_signed_vma refcount; + bfd_vma offset; + } tlsld_got; +}; + +#define ppc64_elf_tdata(bfd) \ + ((struct ppc64_elf_obj_tdata *) (bfd)->tdata.any) + +#define ppc64_tlsld_got(bfd) \ + (&ppc64_elf_tdata (bfd)->tlsld_got) + +/* Override the generic function because we store some extras. */ + +static bfd_boolean +ppc64_elf_mkobject (bfd *abfd) +{ + bfd_size_type amt = sizeof (struct ppc64_elf_obj_tdata); + abfd->tdata.any = bfd_zalloc (abfd, amt); + if (abfd->tdata.any == NULL) + return FALSE; + return TRUE; +} + /* Fix bad default arch selected for a 64 bit input bfd when the default is 32 bit. */ static bfd_boolean -ppc64_elf_object_p (abfd) - bfd *abfd; +ppc64_elf_object_p (bfd *abfd) { if (abfd->arch_info->the_default && abfd->arch_info->bits_per_word == 32) { @@ -2347,9 +2375,7 @@ ppc64_elf_object_p (abfd) object file when linking. */ static bfd_boolean -ppc64_elf_merge_private_bfd_data (ibfd, obfd) - bfd *ibfd; - bfd *obfd; +ppc64_elf_merge_private_bfd_data (bfd *ibfd, bfd *obfd) { /* Check if we have the same endianess. */ if (ibfd->xvec->byteorder != obfd->xvec->byteorder @@ -2359,9 +2385,11 @@ ppc64_elf_merge_private_bfd_data (ibfd, const char *msg; if (bfd_big_endian (ibfd)) - msg = _("%s: compiled for a big endian system and target is little endian"); + msg = _("%s: compiled for a big endian system " + "and target is little endian"); else - msg = _("%s: compiled for a little endian system and target is big endian"); + msg = _("%s: compiled for a little endian system " + "and target is big endian"); (*_bfd_error_handler) (msg, bfd_archive_filename (ibfd)); @@ -2394,17 +2422,15 @@ struct _ppc64_elf_section_data ((struct _ppc64_elf_section_data *) elf_section_data (sec)) static bfd_boolean -ppc64_elf_new_section_hook (abfd, sec) - bfd *abfd; - asection *sec; +ppc64_elf_new_section_hook (bfd *abfd, asection *sec) { struct _ppc64_elf_section_data *sdata; bfd_size_type amt = sizeof (*sdata); - sdata = (struct _ppc64_elf_section_data *) bfd_zalloc (abfd, amt); + sdata = bfd_zalloc (abfd, amt); if (sdata == NULL) return FALSE; - sec->used_by_bfd = (PTR) sdata; + sec->used_by_bfd = sdata; return _bfd_elf_new_section_hook (abfd, sec); } @@ -2506,16 +2532,24 @@ struct got_entry /* The symbol addend that we'll be placing in the GOT. */ bfd_vma addend; + /* Unlike other ELF targets, we use separate GOT entries for the same + symbol referenced from different input files. This is to support + automatic multiple TOC/GOT sections, where the TOC base can vary + from one input file to another. + + Point to the BFD owning this GOT entry. */ + bfd *owner; + + /* Zero for non-tls entries, or TLS_TLS and one of TLS_GD, TLS_LD, + TLS_TPREL or TLS_DTPREL for tls entries. */ + char tls_type; + /* Reference count until size_dynamic_sections, GOT offset thereafter. */ union { bfd_signed_vma refcount; bfd_vma offset; } got; - - /* Zero for non-tls entries, or TLS_TLS and one of TLS_GD, TLS_LD, - TLS_TPREL or TLS_DTPREL for tls entries. */ - char tls_type; }; /* The same for PLT. */ @@ -2574,12 +2608,31 @@ struct plt_entry . mtctr %r11 . ld %r11,xxx+16@toc@l(%r12) . bctr + + ppc_stub_long_branch and ppc_stub_plt_branch may also have additional + code to adjust the value and save r2 to support multiple toc sections. + A ppc_stub_long_branch with an r2 offset looks like: + . std %r2,40(%r1) + . addis %r2,%r2,off@ha + . addi %r2,%r2,off@l + . b dest + + A ppc_stub_plt_branch with an r2 offset looks like: + . std %r2,40(%r1) + . addis %r12,%r2,xxx@toc@ha + . ld %r11,xxx@toc@l(%r12) + . addis %r2,%r2,off@ha + . addi %r2,%r2,off@l + . mtctr %r11 + . bctr */ enum ppc_stub_type { ppc_stub_none, ppc_stub_long_branch, + ppc_stub_long_branch_r2off, ppc_stub_plt_branch, + ppc_stub_plt_branch_r2off, ppc_stub_plt_call }; @@ -2588,6 +2641,8 @@ struct ppc_stub_hash_entry { /* Base hash table entry structure. */ struct bfd_hash_entry root; + enum ppc_stub_type stub_type; + /* The stub section. */ asection *stub_sec; @@ -2599,8 +2654,6 @@ struct ppc_stub_hash_entry { bfd_vma target_value; asection *target_section; - enum ppc_stub_type stub_type; - /* The symbol table entry, if any, that this was derived from. */ struct ppc_link_hash_entry *h; @@ -2677,8 +2730,8 @@ struct ppc_link_hash_table bfd *stub_bfd; /* Linker call-backs. */ - asection * (*add_stub_section) PARAMS ((const char *, asection *)); - void (*layout_sections_again) PARAMS ((void)); + asection * (*add_stub_section) (const char *, asection *); + void (*layout_sections_again) (void); /* Array to keep track of which stub sections have been created, and information on stub grouping. */ @@ -2687,23 +2740,36 @@ struct ppc_link_hash_table asection *link_sec; /* The stub section. */ asection *stub_sec; + /* Along with elf_gp, specifies the TOC pointer used in this group. */ + bfd_vma toc_off; } *stub_group; - /* Assorted information used by ppc64_elf_size_stubs. */ + /* Support for multiple toc sections. */ + unsigned int no_multi_toc; + unsigned int multi_toc_needed; + + /* Temp used when calculating TOC pointers. */ + bfd_vma toc_curr; + + /* Highest input section id. */ + int top_id; + + /* Highest output section index. */ int top_index; + + /* List of input sections for each output section. */ asection **input_list; /* Short-cuts to get to dynamic linker sections. */ - asection *sgot; - asection *srelgot; - asection *splt; - asection *srelplt; - asection *sdynbss; - asection *srelbss; - asection *sglink; + asection *got; + asection *plt; + asection *relplt; + asection *dynbss; + asection *relbss; + asection *glink; asection *sfpr; - asection *sbrlt; - asection *srelbrlt; + asection *brlt; + asection *relbrlt; /* Short-cut to first output tls section. */ asection *tls_sec; @@ -2711,11 +2777,11 @@ struct ppc_link_hash_table /* Shortcut to .__tls_get_addr. */ struct elf_link_hash_entry *tls_get_addr; - /* TLS local dynamic got entry handling. */ - union { - bfd_signed_vma refcount; - bfd_vma offset; - } tlsld_got; + /* Statistics. */ + unsigned long stub_count[ppc_stub_plt_call]; + + /* Set if we should emit symbols for stubs. */ + unsigned int emit_stub_syms; /* Set on error. */ unsigned int stub_error; @@ -2734,88 +2800,6 @@ struct ppc_link_hash_table struct sym_sec_cache sym_sec; }; -static struct bfd_hash_entry *stub_hash_newfunc - PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); -static struct bfd_hash_entry *branch_hash_newfunc - PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); -static struct bfd_hash_entry *link_hash_newfunc - PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); -static struct bfd_link_hash_table *ppc64_elf_link_hash_table_create - PARAMS ((bfd *)); -static void ppc64_elf_link_hash_table_free - PARAMS ((struct bfd_link_hash_table *)); -static char *ppc_stub_name - PARAMS ((const asection *, const asection *, - const struct ppc_link_hash_entry *, const Elf_Internal_Rela *)); -static struct ppc_stub_hash_entry *ppc_get_stub_entry - PARAMS ((const asection *, const asection *, struct elf_link_hash_entry *, - const Elf_Internal_Rela *, struct ppc_link_hash_table *)); -static struct ppc_stub_hash_entry *ppc_add_stub - PARAMS ((const char *, asection *, struct ppc_link_hash_table *)); -static bfd_boolean create_linkage_sections - PARAMS ((bfd *, struct bfd_link_info *)); -static bfd_boolean create_got_section - PARAMS ((bfd *, struct bfd_link_info *)); -static bfd_boolean ppc64_elf_create_dynamic_sections - PARAMS ((bfd *, struct bfd_link_info *)); -static void ppc64_elf_copy_indirect_symbol - PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *, - struct elf_link_hash_entry *)); -static bfd_boolean update_local_sym_info - PARAMS ((bfd *, Elf_Internal_Shdr *, unsigned long, bfd_vma, int)); -static bfd_boolean update_plt_info - PARAMS ((bfd *, struct ppc_link_hash_entry *, bfd_vma)); -static bfd_boolean ppc64_elf_check_relocs - PARAMS ((bfd *, struct bfd_link_info *, asection *, - const Elf_Internal_Rela *)); -static asection * ppc64_elf_gc_mark_hook - PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *, - struct elf_link_hash_entry *, Elf_Internal_Sym *)); -static bfd_boolean ppc64_elf_gc_sweep_hook - PARAMS ((bfd *, struct bfd_link_info *, asection *, - const Elf_Internal_Rela *)); -static bfd_boolean func_desc_adjust - PARAMS ((struct elf_link_hash_entry *, PTR)); -static bfd_boolean ppc64_elf_func_desc_adjust - PARAMS ((bfd *, struct bfd_link_info *)); -static bfd_boolean ppc64_elf_adjust_dynamic_symbol - PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *)); -static void ppc64_elf_hide_symbol - PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *, bfd_boolean)); -static bfd_boolean get_sym_h - PARAMS ((struct elf_link_hash_entry **, Elf_Internal_Sym **, asection **, - char **, Elf_Internal_Sym **, unsigned long, bfd *)); -static int get_tls_mask - PARAMS ((char **, Elf_Internal_Sym **, const Elf_Internal_Rela *, bfd *)); -static bfd_boolean allocate_dynrelocs - PARAMS ((struct elf_link_hash_entry *, PTR)); -static bfd_boolean readonly_dynrelocs - PARAMS ((struct elf_link_hash_entry *, PTR)); -static enum elf_reloc_type_class ppc64_elf_reloc_type_class - PARAMS ((const Elf_Internal_Rela *)); -static bfd_boolean ppc64_elf_size_dynamic_sections - PARAMS ((bfd *, struct bfd_link_info *)); -static enum ppc_stub_type ppc_type_of_stub - PARAMS ((asection *, const Elf_Internal_Rela *, - struct ppc_link_hash_entry **, bfd_vma)); -static bfd_byte *build_plt_stub - PARAMS ((bfd *, bfd_byte *, int, int)); -static bfd_boolean ppc_build_one_stub - PARAMS ((struct bfd_hash_entry *, PTR)); -static bfd_boolean ppc_size_one_stub - PARAMS ((struct bfd_hash_entry *, PTR)); -static void group_sections - PARAMS ((struct ppc_link_hash_table *, bfd_size_type, bfd_boolean)); -static bfd_boolean ppc64_elf_relocate_section - PARAMS ((bfd *, struct bfd_link_info *info, bfd *, asection *, bfd_byte *, - Elf_Internal_Rela *relocs, Elf_Internal_Sym *local_syms, - asection **)); -static bfd_boolean ppc64_elf_finish_dynamic_symbol - PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *, - Elf_Internal_Sym *)); -static bfd_boolean ppc64_elf_finish_dynamic_sections - PARAMS ((bfd *, struct bfd_link_info *)); - /* Get the ppc64 ELF linker hash table from a link_info structure. */ #define ppc_hash_table(p) \ @@ -2832,10 +2816,9 @@ static bfd_boolean ppc64_elf_finish_dyna /* Create an entry in the stub hash table. */ static struct bfd_hash_entry * -stub_hash_newfunc (entry, table, string) - struct bfd_hash_entry *entry; - struct bfd_hash_table *table; - const char *string; +stub_hash_newfunc (struct bfd_hash_entry *entry, + struct bfd_hash_table *table, + const char *string) { /* Allocate the structure if it has not already been allocated by a subclass. */ @@ -2854,11 +2837,11 @@ stub_hash_newfunc (entry, table, string) /* Initialize the local fields. */ eh = (struct ppc_stub_hash_entry *) entry; + eh->stub_type = ppc_stub_none; eh->stub_sec = NULL; eh->stub_offset = 0; eh->target_value = 0; eh->target_section = NULL; - eh->stub_type = ppc_stub_none; eh->h = NULL; eh->id_sec = NULL; } @@ -2869,10 +2852,9 @@ stub_hash_newfunc (entry, table, string) /* Create an entry in the branch hash table. */ static struct bfd_hash_entry * -branch_hash_newfunc (entry, table, string) - struct bfd_hash_entry *entry; - struct bfd_hash_table *table; - const char *string; +branch_hash_newfunc (struct bfd_hash_entry *entry, + struct bfd_hash_table *table, + const char *string) { /* Allocate the structure if it has not already been allocated by a subclass. */ @@ -2901,10 +2883,9 @@ branch_hash_newfunc (entry, table, strin /* Create an entry in a ppc64 ELF linker hash table. */ static struct bfd_hash_entry * -link_hash_newfunc (entry, table, string) - struct bfd_hash_entry *entry; - struct bfd_hash_table *table; - const char *string; +link_hash_newfunc (struct bfd_hash_entry *entry, + struct bfd_hash_table *table, + const char *string) { /* Allocate the structure if it has not already been allocated by a subclass. */ @@ -2936,13 +2917,12 @@ link_hash_newfunc (entry, table, string) /* Create a ppc64 ELF linker hash table. */ static struct bfd_link_hash_table * -ppc64_elf_link_hash_table_create (abfd) - bfd *abfd; +ppc64_elf_link_hash_table_create (bfd *abfd) { struct ppc_link_hash_table *htab; bfd_size_type amt = sizeof (struct ppc_link_hash_table); - htab = (struct ppc_link_hash_table *) bfd_malloc (amt); + htab = bfd_zmalloc (amt); if (htab == NULL) return NULL; @@ -2960,28 +2940,6 @@ ppc64_elf_link_hash_table_create (abfd) if (!bfd_hash_table_init (&htab->branch_hash_table, branch_hash_newfunc)) return NULL; - htab->stub_bfd = NULL; - htab->add_stub_section = NULL; - htab->layout_sections_again = NULL; - htab->stub_group = NULL; - htab->sgot = NULL; - htab->srelgot = NULL; - htab->splt = NULL; - htab->srelplt = NULL; - htab->sdynbss = NULL; - htab->srelbss = NULL; - htab->sglink = NULL; - htab->sfpr = NULL; - htab->sbrlt = NULL; - htab->srelbrlt = NULL; - htab->tls_sec = NULL; - htab->tls_get_addr = NULL; - htab->tlsld_got.refcount = 0; - htab->stub_error = 0; - htab->has_14bit_branch = 0; - htab->have_undefweak = 0; - htab->stub_iteration = 0; - htab->sym_sec.abfd = NULL; /* Initializing two fields of the union is just cosmetic. We really only care about glist, but when compiled on a 32-bit host the bfd_vma fields are larger. Setting the bfd_vma to zero makes @@ -2997,8 +2955,7 @@ ppc64_elf_link_hash_table_create (abfd) /* Free the derived linker hash table. */ static void -ppc64_elf_link_hash_table_free (hash) - struct bfd_link_hash_table *hash; +ppc64_elf_link_hash_table_free (struct bfd_link_hash_table *hash) { struct ppc_link_hash_table *ret = (struct ppc_link_hash_table *) hash; @@ -3007,14 +2964,30 @@ ppc64_elf_link_hash_table_free (hash) _bfd_generic_link_hash_table_free (hash); } +/* Satisfy the ELF linker by filling in some fields in our fake bfd. */ + +void +ppc64_elf_init_stub_bfd (bfd *abfd, struct bfd_link_info *info) +{ + struct ppc_link_hash_table *htab; + + elf_elfheader (abfd)->e_ident[EI_CLASS] = ELFCLASS64; + +/* Always hook our dynamic sections into the first bfd, which is the + linker created stub bfd. This ensures that the GOT header is at + the start of the output TOC section. */ + htab = ppc_hash_table (info); + htab->stub_bfd = abfd; + htab->elf.dynobj = abfd; +} + /* Build a name for an entry in the stub hash table. */ static char * -ppc_stub_name (input_section, sym_sec, h, rel) - const asection *input_section; - const asection *sym_sec; - const struct ppc_link_hash_entry *h; - const Elf_Internal_Rela *rel; +ppc_stub_name (const asection *input_section, + const asection *sym_sec, + const struct ppc_link_hash_entry *h, + const Elf_Internal_Rela *rel) { char *stub_name; bfd_size_type len; @@ -3038,7 +3011,7 @@ ppc_stub_name (input_section, sym_sec, h } else { - len = 8 + 1 + 8 + 1 + 8 + 1 + 16 + 1; + len = 8 + 1 + 8 + 1 + 8 + 1 + 8 + 1; stub_name = bfd_malloc (len); if (stub_name != NULL) { @@ -3056,12 +3029,11 @@ ppc_stub_name (input_section, sym_sec, h creating the stub name takes a bit of time. */ static struct ppc_stub_hash_entry * -ppc_get_stub_entry (input_section, sym_sec, hash, rel, htab) - const asection *input_section; - const asection *sym_sec; - struct elf_link_hash_entry *hash; - const Elf_Internal_Rela *rel; - struct ppc_link_hash_table *htab; +ppc_get_stub_entry (const asection *input_section, + const asection *sym_sec, + struct elf_link_hash_entry *hash, + const Elf_Internal_Rela *rel, + struct ppc_link_hash_table *htab) { struct ppc_stub_hash_entry *stub_entry; struct ppc_link_hash_entry *h = (struct ppc_link_hash_entry *) hash; @@ -3103,10 +3075,9 @@ ppc_get_stub_entry (input_section, sym_s stub entry are initialised. */ static struct ppc_stub_hash_entry * -ppc_add_stub (stub_name, section, htab) - const char *stub_name; - asection *section; - struct ppc_link_hash_table *htab; +ppc_add_stub (const char *stub_name, + asection *section, + struct ppc_link_hash_table *htab) { asection *link_sec; asection *stub_sec; @@ -3159,9 +3130,7 @@ ppc_add_stub (stub_name, section, htab) /* Create sections for linker generated code. */ static bfd_boolean -create_linkage_sections (dynobj, info) - bfd *dynobj; - struct bfd_link_info *info; +create_linkage_sections (bfd *dynobj, struct bfd_link_info *info) { struct ppc_link_hash_table *htab; flagword flags; @@ -3178,87 +3147,95 @@ create_linkage_sections (dynobj, info) return FALSE; /* Create .glink for lazy dynamic linking support. */ - htab->sglink = bfd_make_section_anyway (dynobj, ".glink"); - if (htab->sglink == NULL - || ! bfd_set_section_flags (dynobj, htab->sglink, flags) - || ! bfd_set_section_alignment (dynobj, htab->sglink, 2)) + htab->glink = bfd_make_section_anyway (dynobj, ".glink"); + if (htab->glink == NULL + || ! bfd_set_section_flags (dynobj, htab->glink, flags) + || ! bfd_set_section_alignment (dynobj, htab->glink, 2)) return FALSE; /* Create .branch_lt for plt_branch stubs. */ flags = (SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS | SEC_IN_MEMORY | SEC_LINKER_CREATED); - htab->sbrlt = bfd_make_section_anyway (dynobj, ".branch_lt"); - if (htab->sbrlt == NULL - || ! bfd_set_section_flags (dynobj, htab->sbrlt, flags) - || ! bfd_set_section_alignment (dynobj, htab->sbrlt, 3)) + htab->brlt = bfd_make_section_anyway (dynobj, ".branch_lt"); + if (htab->brlt == NULL + || ! bfd_set_section_flags (dynobj, htab->brlt, flags) + || ! bfd_set_section_alignment (dynobj, htab->brlt, 3)) return FALSE; if (info->shared) { flags = (SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_HAS_CONTENTS | SEC_IN_MEMORY | SEC_LINKER_CREATED); - htab->srelbrlt = bfd_make_section_anyway (dynobj, ".rela.branch_lt"); - if (!htab->srelbrlt - || ! bfd_set_section_flags (dynobj, htab->srelbrlt, flags) - || ! bfd_set_section_alignment (dynobj, htab->srelbrlt, 3)) + htab->relbrlt = bfd_make_section_anyway (dynobj, ".rela.branch_lt"); + if (!htab->relbrlt + || ! bfd_set_section_flags (dynobj, htab->relbrlt, flags) + || ! bfd_set_section_alignment (dynobj, htab->relbrlt, 3)) return FALSE; } return TRUE; } -/* Create .got and .rela.got sections in DYNOBJ, and set up - shortcuts to them in our hash table. */ +/* Create .got and .rela.got sections in ABFD, and .got in dynobj if + not already done. */ static bfd_boolean -create_got_section (dynobj, info) - bfd *dynobj; - struct bfd_link_info *info; +create_got_section (bfd *abfd, struct bfd_link_info *info) { - struct ppc_link_hash_table *htab; + asection *got, *relgot; + flagword flags; + struct ppc_link_hash_table *htab = ppc_hash_table (info); - if (! _bfd_elf_create_got_section (dynobj, info)) - return FALSE; + if (!htab->got) + { + if (! _bfd_elf_create_got_section (htab->elf.dynobj, info)) + return FALSE; - htab = ppc_hash_table (info); - htab->sgot = bfd_get_section_by_name (dynobj, ".got"); - if (!htab->sgot) - abort (); + htab->got = bfd_get_section_by_name (htab->elf.dynobj, ".got"); + if (!htab->got) + abort (); + } + + flags = (SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS | SEC_IN_MEMORY + | SEC_LINKER_CREATED); + + got = bfd_make_section (abfd, ".got"); + if (!got + || !bfd_set_section_flags (abfd, got, flags) + || !bfd_set_section_alignment (abfd, got, 3)) + return FALSE; - htab->srelgot = bfd_make_section (dynobj, ".rela.got"); - if (!htab->srelgot - || ! 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, 3)) + relgot = bfd_make_section (abfd, ".rela.got"); + if (!relgot + || ! bfd_set_section_flags (abfd, relgot, flags | SEC_READONLY) + || ! bfd_set_section_alignment (abfd, relgot, 3)) return FALSE; + + ppc64_elf_tdata (abfd)->got = got; + ppc64_elf_tdata (abfd)->relgot = relgot; return TRUE; } /* Create the dynamic sections, and set up shortcuts. */ static bfd_boolean -ppc64_elf_create_dynamic_sections (dynobj, info) - bfd *dynobj; - struct bfd_link_info *info; +ppc64_elf_create_dynamic_sections (bfd *dynobj, struct bfd_link_info *info) { struct ppc_link_hash_table *htab; - htab = ppc_hash_table (info); - if (!htab->sgot && !create_got_section (dynobj, info)) - return FALSE; - if (!_bfd_elf_create_dynamic_sections (dynobj, info)) return FALSE; - htab->splt = bfd_get_section_by_name (dynobj, ".plt"); - htab->srelplt = bfd_get_section_by_name (dynobj, ".rela.plt"); - htab->sdynbss = bfd_get_section_by_name (dynobj, ".dynbss"); + htab = ppc_hash_table (info); + if (!htab->got) + htab->got = bfd_get_section_by_name (dynobj, ".got"); + htab->plt = bfd_get_section_by_name (dynobj, ".plt"); + htab->relplt = bfd_get_section_by_name (dynobj, ".rela.plt"); + htab->dynbss = bfd_get_section_by_name (dynobj, ".dynbss"); if (!info->shared) - htab->srelbss = bfd_get_section_by_name (dynobj, ".rela.bss"); + htab->relbss = bfd_get_section_by_name (dynobj, ".rela.bss"); - if (!htab->splt || !htab->srelplt || !htab->sdynbss - || (!info->shared && !htab->srelbss)) + if (!htab->got || !htab->plt || !htab->relplt || !htab->dynbss + || (!info->shared && !htab->relbss)) abort (); return TRUE; @@ -3267,9 +3244,9 @@ 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 (bed, dir, ind) - struct elf_backend_data *bed ATTRIBUTE_UNUSED; - struct elf_link_hash_entry *dir, *ind; +ppc64_elf_copy_indirect_symbol (struct elf_backend_data *bed ATTRIBUTE_UNUSED, + struct elf_link_hash_entry *dir, + struct elf_link_hash_entry *ind) { struct ppc_link_hash_entry *edir, *eind; flagword mask; @@ -3348,6 +3325,7 @@ ppc64_elf_copy_indirect_symbol (bed, dir for (dent = edir->elf.got.glist; dent != NULL; dent = dent->next) if (dent->addend == ent->addend + && dent->owner == ent->owner && dent->tls_type == ent->tls_type) { dent->got.refcount += ent->got.refcount; @@ -3408,8 +3386,7 @@ ppc64_elf_copy_indirect_symbol (bed, dir symbols undefined on the command-line. */ bfd_boolean -ppc64_elf_mark_entry_syms (info) - struct bfd_link_info *info; +ppc64_elf_mark_entry_syms (struct bfd_link_info *info) { struct ppc_link_hash_table *htab; struct bfd_sym_chain *sym; @@ -3427,12 +3404,8 @@ ppc64_elf_mark_entry_syms (info) } static bfd_boolean -update_local_sym_info (abfd, symtab_hdr, r_symndx, r_addend, tls_type) - bfd *abfd; - Elf_Internal_Shdr *symtab_hdr; - unsigned long r_symndx; - bfd_vma r_addend; - int tls_type; +update_local_sym_info (bfd *abfd, Elf_Internal_Shdr *symtab_hdr, + unsigned long r_symndx, bfd_vma r_addend, int tls_type) { struct got_entry **local_got_ents = elf_local_got_ents (abfd); char *local_got_tls_masks; @@ -3442,7 +3415,7 @@ update_local_sym_info (abfd, symtab_hdr, bfd_size_type size = symtab_hdr->sh_info; size *= sizeof (*local_got_ents) + sizeof (*local_got_tls_masks); - local_got_ents = (struct got_entry **) bfd_zalloc (abfd, size); + local_got_ents = bfd_zalloc (abfd, size); if (local_got_ents == NULL) return FALSE; elf_local_got_ents (abfd) = local_got_ents; @@ -3453,16 +3426,19 @@ update_local_sym_info (abfd, symtab_hdr, struct got_entry *ent; for (ent = local_got_ents[r_symndx]; ent != NULL; ent = ent->next) - if (ent->addend == r_addend && ent->tls_type == tls_type) + if (ent->addend == r_addend + && ent->owner == abfd + && ent->tls_type == tls_type) break; if (ent == NULL) { bfd_size_type amt = sizeof (*ent); - ent = (struct got_entry *) bfd_alloc (abfd, amt); + ent = bfd_alloc (abfd, amt); if (ent == NULL) return FALSE; ent->next = local_got_ents[r_symndx]; ent->addend = r_addend; + ent->owner = abfd; ent->tls_type = tls_type; ent->got.refcount = 0; local_got_ents[r_symndx] = ent; @@ -3476,10 +3452,7 @@ update_local_sym_info (abfd, symtab_hdr, } static bfd_boolean -update_plt_info (abfd, eh, addend) - bfd *abfd; - struct ppc_link_hash_entry *eh; - bfd_vma addend; +update_plt_info (bfd *abfd, struct ppc_link_hash_entry *eh, bfd_vma addend) { struct plt_entry *ent; @@ -3489,7 +3462,7 @@ update_plt_info (abfd, eh, addend) if (ent == NULL) { bfd_size_type amt = sizeof (*ent); - ent = (struct plt_entry *) bfd_alloc (abfd, amt); + ent = bfd_alloc (abfd, amt); if (ent == NULL) return FALSE; ent->next = eh->elf.plt.plist; @@ -3508,11 +3481,8 @@ update_plt_info (abfd, eh, addend) linkage table, and dynamic reloc sections. */ static bfd_boolean -ppc64_elf_check_relocs (abfd, info, sec, relocs) - bfd *abfd; - struct bfd_link_info *info; - asection *sec; - const Elf_Internal_Rela *relocs; +ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info, + asection *sec, const Elf_Internal_Rela *relocs) { struct ppc_link_hash_table *htab; Elf_Internal_Shdr *symtab_hdr; @@ -3522,7 +3492,7 @@ ppc64_elf_check_relocs (abfd, info, sec, asection *sreloc; asection **opd_sym_map; - if (info->relocateable) + if (info->relocatable) return TRUE; htab = ppc_hash_table (info); @@ -3553,14 +3523,12 @@ ppc64_elf_check_relocs (abfd, info, sec, bfd_size_type amt; amt = sec->_raw_size * sizeof (union opd_info) / 24; - opd_sym_map = (asection **) bfd_zalloc (abfd, amt); + opd_sym_map = bfd_zalloc (abfd, amt); if (opd_sym_map == NULL) return FALSE; ppc64_elf_section_data (sec)->opd.func_sec = opd_sym_map; } - if (htab->elf.dynobj == NULL) - htab->elf.dynobj = abfd; if (htab->sfpr == NULL && !create_linkage_sections (htab->elf.dynobj, info)) return FALSE; @@ -3579,14 +3547,14 @@ ppc64_elf_check_relocs (abfd, info, sec, else h = sym_hashes[r_symndx - symtab_hdr->sh_info]; - r_type = (enum elf_ppc64_reloc_type) ELF64_R_TYPE (rel->r_info); + r_type = ELF64_R_TYPE (rel->r_info); switch (r_type) { case R_PPC64_GOT_TLSLD16: case R_PPC64_GOT_TLSLD16_LO: case R_PPC64_GOT_TLSLD16_HI: case R_PPC64_GOT_TLSLD16_HA: - htab->tlsld_got.refcount += 1; + ppc64_tlsld_got (abfd)->refcount += 1; tls_type = TLS_TLS | TLS_LD; goto dogottls; @@ -3622,8 +3590,9 @@ ppc64_elf_check_relocs (abfd, info, sec, case R_PPC64_GOT16_LO: case R_PPC64_GOT16_LO_DS: /* This symbol requires a global offset table entry. */ - if (htab->sgot == NULL - && !create_got_section (htab->elf.dynobj, info)) + sec->has_gp_reloc = 1; + if (ppc64_elf_tdata (abfd)->got == NULL + && !create_got_section (abfd, info)) return FALSE; if (h != NULL) @@ -3634,16 +3603,18 @@ ppc64_elf_check_relocs (abfd, info, sec, eh = (struct ppc_link_hash_entry *) h; for (ent = eh->elf.got.glist; ent != NULL; ent = ent->next) if (ent->addend == rel->r_addend + && ent->owner == abfd && ent->tls_type == tls_type) break; if (ent == NULL) { bfd_size_type amt = sizeof (*ent); - ent = (struct got_entry *) bfd_alloc (abfd, amt); + ent = bfd_alloc (abfd, amt); if (ent == NULL) return FALSE; ent->next = eh->elf.got.glist; ent->addend = rel->r_addend; + ent->owner = abfd; ent->tls_type = tls_type; ent->got.refcount = 0; eh->elf.got.glist = ent; @@ -3690,12 +3661,6 @@ ppc64_elf_check_relocs (abfd, info, sec, case R_PPC64_SECTOFF_HA: case R_PPC64_SECTOFF_DS: case R_PPC64_SECTOFF_LO_DS: - case R_PPC64_TOC16: - case R_PPC64_TOC16_LO: - case R_PPC64_TOC16_HI: - case R_PPC64_TOC16_HA: - case R_PPC64_TOC16_DS: - case R_PPC64_TOC16_LO_DS: case R_PPC64_DTPREL16: case R_PPC64_DTPREL16_LO: case R_PPC64_DTPREL16_HI: @@ -3708,6 +3673,16 @@ ppc64_elf_check_relocs (abfd, info, sec, case R_PPC64_DTPREL16_HIGHESTA: break; + /* Nor do these. */ + case R_PPC64_TOC16: + case R_PPC64_TOC16_LO: + case R_PPC64_TOC16_HI: + case R_PPC64_TOC16_HA: + case R_PPC64_TOC16_DS: + case R_PPC64_TOC16_LO_DS: + sec->has_gp_reloc = 1; + break; + /* This relocation describes the C++ object vtable hierarchy. Reconstruct it for later use during GC. */ case R_PPC64_GNU_VTINHERIT: @@ -3792,8 +3767,7 @@ ppc64_elf_check_relocs (abfd, info, sec, { /* One extra to simplify get_tls_mask. */ bfd_size_type amt = sec->_raw_size * sizeof (unsigned) / 8 + 1; - ppc64_elf_section_data (sec)->t_symndx - = (unsigned *) bfd_zalloc (abfd, amt); + ppc64_elf_section_data (sec)->t_symndx = bfd_zalloc (abfd, amt); if (ppc64_elf_section_data (sec)->t_symndx == NULL) return FALSE; } @@ -3846,8 +3820,7 @@ ppc64_elf_check_relocs (abfd, info, sec, if (opd_sym_map != NULL && h == NULL && rel + 1 < rel_end - && ((enum elf_ppc64_reloc_type) ELF64_R_TYPE ((rel + 1)->r_info) - == R_PPC64_TOC)) + && ELF64_R_TYPE ((rel + 1)->r_info) == R_PPC64_TOC) { asection *s; @@ -4002,9 +3975,7 @@ ppc64_elf_check_relocs (abfd, info, sec, p = *head; if (p == NULL || p->sec != sec) { - p = ((struct ppc_dyn_relocs *) - bfd_alloc (htab->elf.dynobj, - (bfd_size_type) sizeof *p)); + p = bfd_alloc (htab->elf.dynobj, sizeof *p); if (p == NULL) return FALSE; p->next = *head; @@ -4032,12 +4003,11 @@ ppc64_elf_check_relocs (abfd, info, sec, relocation. */ static asection * -ppc64_elf_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; - Elf_Internal_Sym *sym; +ppc64_elf_gc_mark_hook (asection *sec, + struct bfd_link_info *info ATTRIBUTE_UNUSED, + Elf_Internal_Rela *rel, + struct elf_link_hash_entry *h, + Elf_Internal_Sym *sym) { asection *rsec = NULL; @@ -4046,7 +4016,7 @@ ppc64_elf_gc_mark_hook (sec, info, rel, enum elf_ppc64_reloc_type r_type; struct ppc_link_hash_entry *fdh; - r_type = (enum elf_ppc64_reloc_type) ELF64_R_TYPE (rel->r_info); + r_type = ELF64_R_TYPE (rel->r_info); switch (r_type) { case R_PPC64_GNU_VTINHERIT: @@ -4103,11 +4073,8 @@ ppc64_elf_gc_mark_hook (sec, info, rel, section being removed. */ static bfd_boolean -ppc64_elf_gc_sweep_hook (abfd, info, sec, relocs) - bfd *abfd; - struct bfd_link_info *info; - asection *sec; - const Elf_Internal_Rela *relocs; +ppc64_elf_gc_sweep_hook (bfd *abfd, struct bfd_link_info *info, + asection *sec, const Elf_Internal_Rela *relocs) { struct ppc_link_hash_table *htab; Elf_Internal_Shdr *symtab_hdr; @@ -4131,7 +4098,7 @@ ppc64_elf_gc_sweep_hook (abfd, info, sec char tls_type = 0; r_symndx = ELF64_R_SYM (rel->r_info); - r_type = (enum elf_ppc64_reloc_type) ELF64_R_TYPE (rel->r_info); + r_type = ELF64_R_TYPE (rel->r_info); if (r_symndx >= symtab_hdr->sh_info) { struct ppc_link_hash_entry *eh; @@ -4156,7 +4123,7 @@ ppc64_elf_gc_sweep_hook (abfd, info, sec case R_PPC64_GOT_TLSLD16_LO: case R_PPC64_GOT_TLSLD16_HI: case R_PPC64_GOT_TLSLD16_HA: - htab->tlsld_got.refcount -= 1; + ppc64_tlsld_got (abfd)->refcount -= 1; tls_type = TLS_TLS | TLS_LD; goto dogot; @@ -4198,6 +4165,7 @@ ppc64_elf_gc_sweep_hook (abfd, info, sec for (; ent != NULL; ent = ent->next) if (ent->addend == rel->r_addend + && ent->owner == abfd && ent->tls_type == tls_type) break; if (ent == NULL) @@ -4241,9 +4209,7 @@ ppc64_elf_gc_sweep_hook (abfd, info, sec information on function code symbol entries to their corresponding function descriptor symbol entries. */ static bfd_boolean -func_desc_adjust (h, inf) - struct elf_link_hash_entry *h; - PTR inf; +func_desc_adjust (struct elf_link_hash_entry *h, void *inf) { struct bfd_link_info *info; struct ppc_link_hash_table *htab; @@ -4255,7 +4221,7 @@ func_desc_adjust (h, inf) if (h->root.type == bfd_link_hash_warning) h = (struct elf_link_hash_entry *) h->root.u.i.link; - info = (struct bfd_link_info *) inf; + info = inf; htab = ppc_hash_table (info); /* If this is a function code symbol, transfer dynamic linking @@ -4317,7 +4283,9 @@ func_desc_adjust (h, inf) && (fdh->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0 && (info->shared || (fdh->elf_link_hash_flags & ELF_LINK_HASH_DEF_DYNAMIC) != 0 - || (fdh->elf_link_hash_flags & ELF_LINK_HASH_REF_DYNAMIC) != 0)) + || (fdh->elf_link_hash_flags & ELF_LINK_HASH_REF_DYNAMIC) != 0 + || (fdh->root.type == bfd_link_hash_undefweak + && ELF_ST_VISIBILITY (fdh->other) == STV_DEFAULT))) { if (fdh->dynindx == -1) if (! bfd_elf64_link_record_dynamic_symbol (info, fdh)) @@ -4366,9 +4334,8 @@ func_desc_adjust (h, inf) dynamic linking information gathered so far on function code symbol entries, to their corresponding function descriptor symbol entries. */ static bfd_boolean -ppc64_elf_func_desc_adjust (obfd, info) - bfd *obfd ATTRIBUTE_UNUSED; - struct bfd_link_info *info; +ppc64_elf_func_desc_adjust (bfd *obfd ATTRIBUTE_UNUSED, + struct bfd_link_info *info) { struct ppc_link_hash_table *htab; unsigned int lowest_savef = MAX_SAVE_FPR + 2; @@ -4392,7 +4359,7 @@ ppc64_elf_func_desc_adjust (obfd, info) sym[8] = i % 10 + '0'; h = elf_link_hash_lookup (&htab->elf, sym, FALSE, FALSE, TRUE); if (h != NULL - && h->root.type == bfd_link_hash_undefined) + && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0) { if (lowest_savef > i) lowest_savef = i; @@ -4401,7 +4368,7 @@ ppc64_elf_func_desc_adjust (obfd, info) h->root.u.def.value = (i - lowest_savef) * 4; h->type = STT_FUNC; h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR; - _bfd_elf_link_hash_hide_symbol (info, h, info->shared); + _bfd_elf_link_hash_hide_symbol (info, h, TRUE); } } @@ -4412,7 +4379,7 @@ ppc64_elf_func_desc_adjust (obfd, info) sym[8] = i % 10 + '0'; h = elf_link_hash_lookup (&htab->elf, sym, FALSE, FALSE, TRUE); if (h != NULL - && h->root.type == bfd_link_hash_undefined) + && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0) { if (lowest_restf > i) lowest_restf = i; @@ -4422,11 +4389,11 @@ ppc64_elf_func_desc_adjust (obfd, info) + (i - lowest_restf) * 4); h->type = STT_FUNC; h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR; - _bfd_elf_link_hash_hide_symbol (info, h, info->shared); + _bfd_elf_link_hash_hide_symbol (info, h, TRUE); } } - elf_link_hash_traverse (&htab->elf, func_desc_adjust, (PTR) info); + elf_link_hash_traverse (&htab->elf, func_desc_adjust, info); htab->sfpr->_raw_size = ((MAX_SAVE_FPR + 2 - lowest_savef) * 4 + (MAX_SAVE_FPR + 2 - lowest_restf) * 4); @@ -4442,7 +4409,7 @@ ppc64_elf_func_desc_adjust (obfd, info) htab->sfpr->_raw_size = 4; } - p = (bfd_byte *) bfd_alloc (htab->elf.dynobj, htab->sfpr->_raw_size); + p = bfd_alloc (htab->elf.dynobj, htab->sfpr->_raw_size); if (p == NULL) return FALSE; htab->sfpr->contents = p; @@ -4483,9 +4450,8 @@ ppc64_elf_func_desc_adjust (obfd, info) understand. */ static bfd_boolean -ppc64_elf_adjust_dynamic_symbol (info, h) - struct bfd_link_info *info; - struct elf_link_hash_entry *h; +ppc64_elf_adjust_dynamic_symbol (struct bfd_link_info *info, + struct elf_link_hash_entry *h) { struct ppc_link_hash_table *htab; asection *s; @@ -4585,7 +4551,7 @@ ppc64_elf_adjust_dynamic_symbol (info, h .rela.bss section we are going to use. */ if ((h->root.u.def.section->flags & SEC_ALLOC) != 0) { - htab->srelbss->_raw_size += sizeof (Elf64_External_Rela); + htab->relbss->_raw_size += sizeof (Elf64_External_Rela); h->elf_link_hash_flags |= ELF_LINK_HASH_NEEDS_COPY; } @@ -4596,7 +4562,7 @@ ppc64_elf_adjust_dynamic_symbol (info, h power_of_two = 4; /* Apply the required alignment. */ - s = htab->sdynbss; + s = htab->dynbss; s->_raw_size = BFD_ALIGN (s->_raw_size, (bfd_size_type) (1 << power_of_two)); if (power_of_two > bfd_get_section_alignment (htab->elf.dynobj, s)) { @@ -4617,10 +4583,9 @@ ppc64_elf_adjust_dynamic_symbol (info, h /* If given a function descriptor symbol, hide both the function code sym and the descriptor. */ static void -ppc64_elf_hide_symbol (info, h, force_local) - struct bfd_link_info *info; - struct elf_link_hash_entry *h; - bfd_boolean force_local; +ppc64_elf_hide_symbol (struct bfd_link_info *info, + struct elf_link_hash_entry *h, + bfd_boolean force_local) { _bfd_elf_link_hash_hide_symbol (info, h, force_local); @@ -4674,14 +4639,9 @@ ppc64_elf_hide_symbol (info, h, force_lo } static bfd_boolean -get_sym_h (hp, symp, symsecp, tls_maskp, locsymsp, r_symndx, ibfd) - struct elf_link_hash_entry **hp; - Elf_Internal_Sym **symp; - asection **symsecp; - char **tls_maskp; - Elf_Internal_Sym **locsymsp; - unsigned long r_symndx; - bfd *ibfd; +get_sym_h (struct elf_link_hash_entry **hp, Elf_Internal_Sym **symp, + asection **symsecp, char **tls_maskp, Elf_Internal_Sym **locsymsp, + unsigned long r_symndx, bfd *ibfd) { Elf_Internal_Shdr *symtab_hdr = &elf_tdata (ibfd)->symtab_hdr; @@ -4772,14 +4732,11 @@ get_sym_h (hp, symp, symsecp, tls_maskp, /* Returns TLS_MASKP for the given REL symbol. Function return is 0 on error, 2 on a toc GD type suitable for optimization, 3 on a toc LD - type suitable for optimization, and 1 otherwise. */ + type suitable for optimization, and 1 otherwise. */ static int -get_tls_mask (tls_maskp, locsymsp, rel, ibfd) - char **tls_maskp; - Elf_Internal_Sym **locsymsp; - const Elf_Internal_Rela *rel; - bfd *ibfd; +get_tls_mask (char **tls_maskp, Elf_Internal_Sym **locsymsp, + const Elf_Internal_Rela *rel, bfd *ibfd) { unsigned long r_symndx; unsigned int next_r; @@ -4826,9 +4783,7 @@ get_tls_mask (tls_maskp, locsymsp, rel, } bfd_boolean -ppc64_elf_edit_opd (obfd, info) - bfd *obfd; - struct bfd_link_info *info; +ppc64_elf_edit_opd (bfd *obfd, struct bfd_link_info *info) { bfd *ibfd; @@ -4854,10 +4809,10 @@ ppc64_elf_edit_opd (obfd, info) { /* Must be a ld -r link. ie. check_relocs hasn't been called. */ - adjust = (long *) bfd_zalloc (obfd, amt); + adjust = bfd_zalloc (obfd, amt); ppc64_elf_section_data (sec)->opd.adjust = adjust; } - memset (adjust, 0, (size_t) amt); + memset (adjust, 0, amt); if (sec->output_section == bfd_abs_section_ptr) continue; @@ -4871,8 +4826,7 @@ ppc64_elf_edit_opd (obfd, info) sym_hashes = elf_sym_hashes (ibfd); /* Read the relocations. */ - relstart = _bfd_elf_link_read_relocs (ibfd, sec, (PTR) NULL, - (Elf_Internal_Rela *) NULL, + relstart = _bfd_elf_link_read_relocs (ibfd, sec, NULL, NULL, info->keep_memory); if (relstart == NULL) return FALSE; @@ -4893,7 +4847,7 @@ ppc64_elf_edit_opd (obfd, info) /* .opd contains a regular array of 24 byte entries. We're only interested in the reloc pointing to a function entry point. */ - r_type = (enum elf_ppc64_reloc_type) ELF64_R_TYPE (rel->r_info); + r_type = ELF64_R_TYPE (rel->r_info); if (r_type == R_PPC64_TOC) continue; @@ -4908,7 +4862,7 @@ ppc64_elf_edit_opd (obfd, info) if (rel + 1 >= relend) continue; - r_type = (enum elf_ppc64_reloc_type) ELF64_R_TYPE ((rel + 1)->r_info); + r_type = ELF64_R_TYPE ((rel + 1)->r_info); if (r_type != R_PPC64_TOC) continue; @@ -4975,7 +4929,7 @@ ppc64_elf_edit_opd (obfd, info) { bfd_byte *loc = bfd_alloc (ibfd, sec->_raw_size); if (loc == NULL - || !bfd_get_section_contents (ibfd, sec, loc, (bfd_vma) 0, + || !bfd_get_section_contents (ibfd, sec, loc, 0, sec->_raw_size)) { if (local_syms != NULL @@ -5134,9 +5088,7 @@ ppc64_elf_edit_opd (obfd, info) /* Set htab->tls_sec. */ bfd_boolean -ppc64_elf_tls_setup (obfd, info) - bfd *obfd; - struct bfd_link_info *info; +ppc64_elf_tls_setup (bfd *obfd, struct bfd_link_info *info) { asection *tls; struct ppc_link_hash_table *htab; @@ -5171,15 +5123,13 @@ ppc64_elf_tls_setup (obfd, info) dynamic relocations. */ bfd_boolean -ppc64_elf_tls_optimize (obfd, info) - bfd *obfd ATTRIBUTE_UNUSED; - struct bfd_link_info *info; +ppc64_elf_tls_optimize (bfd *obfd ATTRIBUTE_UNUSED, struct bfd_link_info *info) { bfd *ibfd; asection *sec; struct ppc_link_hash_table *htab; - if (info->relocateable || info->shared) + if (info->relocatable || info->shared) return TRUE; htab = ppc_hash_table (info); @@ -5194,8 +5144,7 @@ ppc64_elf_tls_optimize (obfd, info) int expecting_tls_get_addr; /* Read the relocations. */ - relstart = _bfd_elf_link_read_relocs (ibfd, sec, (PTR) NULL, - (Elf_Internal_Rela *) NULL, + relstart = _bfd_elf_link_read_relocs (ibfd, sec, NULL, NULL, info->keep_memory); if (relstart == NULL) return FALSE; @@ -5251,8 +5200,7 @@ ppc64_elf_tls_optimize (obfd, info) < (bfd_vma) 1 << 32); } - r_type - = (enum elf_ppc64_reloc_type) ELF64_R_TYPE (rel->r_info); + r_type = ELF64_R_TYPE (rel->r_info); switch (r_type) { case R_PPC64_GOT_TLSLD16: @@ -5262,7 +5210,7 @@ ppc64_elf_tls_optimize (obfd, info) /* These relocs should never be against a symbol defined in a shared lib. Leave them alone if that turns out to be the case. */ - htab->tlsld_got.refcount -= 1; + ppc64_tlsld_got (ibfd)->refcount -= 1; if (!is_local) continue; @@ -5400,6 +5348,7 @@ ppc64_elf_tls_optimize (obfd, info) for (; ent != NULL; ent = ent->next) if (ent->addend == rel->r_addend + && ent->owner == ibfd && ent->tls_type == tls_type) break; if (ent == NULL) @@ -5473,9 +5422,7 @@ ppc64_elf_tls_optimize (obfd, info) dynamic relocs. */ static bfd_boolean -allocate_dynrelocs (h, inf) - struct elf_link_hash_entry *h; - PTR inf; +allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf) { struct bfd_link_info *info; struct ppc_link_hash_table *htab; @@ -5506,7 +5453,7 @@ allocate_dynrelocs (h, inf) /* If this is the first .plt entry, make room for the special first entry. */ - s = htab->splt; + s = htab->plt; if (s->_raw_size == 0) s->_raw_size += PLT_INITIAL_ENTRY_SIZE; @@ -5516,7 +5463,7 @@ allocate_dynrelocs (h, inf) s->_raw_size += PLT_ENTRY_SIZE; /* Make room for the .glink code. */ - s = htab->sglink; + s = htab->glink; if (s->_raw_size == 0) s->_raw_size += GLINK_CALL_STUB_SIZE; /* We need bigger stubs past index 32767. */ @@ -5525,7 +5472,7 @@ allocate_dynrelocs (h, inf) s->_raw_size += 2*4; /* We also need to make an entry in the .rela.plt section. */ - s = htab->srelplt; + s = htab->relplt; s->_raw_size += sizeof (Elf64_External_Rela); doneone = TRUE; } @@ -5557,7 +5504,8 @@ allocate_dynrelocs (h, inf) for (ent = h->got.glist; ent != NULL; ent = ent->next) if (ent->got.refcount > 0 && (ent->tls_type & TLS_TPREL) != 0 - && ent->addend == gent->addend) + && ent->addend == gent->addend + && ent->owner == gent->owner) { gent->got.refcount = 0; break; @@ -5586,11 +5534,11 @@ allocate_dynrelocs (h, inf) if ((gent->tls_type & TLS_LD) != 0 && !(h->elf_link_hash_flags & ELF_LINK_HASH_DEF_DYNAMIC)) { - gent->got.offset = htab->tlsld_got.offset; + gent->got.offset = ppc64_tlsld_got (gent->owner)->offset; continue; } - s = htab->sgot; + s = ppc64_elf_tdata (gent->owner)->got; gent->got.offset = s->_raw_size; s->_raw_size += (gent->tls_type & eh->tls_mask & (TLS_GD | TLS_LD)) ? 16 : 8; @@ -5599,7 +5547,7 @@ allocate_dynrelocs (h, inf) || WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, 0, h)) && (ELF_ST_VISIBILITY (h->other) == STV_DEFAULT || h->root.type != bfd_link_hash_undefweak)) - htab->srelgot->_raw_size + ppc64_elf_tdata (gent->owner)->relgot->_raw_size += (gent->tls_type & eh->tls_mask & TLS_GD ? 2 * sizeof (Elf64_External_Rela) : sizeof (Elf64_External_Rela)); @@ -5688,9 +5636,7 @@ allocate_dynrelocs (h, inf) /* Find any dynamic relocs that apply to read-only sections. */ static bfd_boolean -readonly_dynrelocs (h, inf) - struct elf_link_hash_entry *h; - PTR inf; +readonly_dynrelocs (struct elf_link_hash_entry *h, void *inf) { struct ppc_link_hash_entry *eh; struct ppc_dyn_relocs *p; @@ -5705,7 +5651,7 @@ readonly_dynrelocs (h, inf) if (s != NULL && (s->flags & SEC_READONLY) != 0) { - struct bfd_link_info *info = (struct bfd_link_info *) inf; + struct bfd_link_info *info = inf; info->flags |= DF_TEXTREL; @@ -5719,9 +5665,8 @@ readonly_dynrelocs (h, inf) /* Set the sizes of the dynamic sections. */ static bfd_boolean -ppc64_elf_size_dynamic_sections (output_bfd, info) - bfd *output_bfd ATTRIBUTE_UNUSED; - struct bfd_link_info *info; +ppc64_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, + struct bfd_link_info *info) { struct ppc_link_hash_table *htab; bfd *dynobj; @@ -5737,7 +5682,7 @@ ppc64_elf_size_dynamic_sections (output_ if (htab->elf.dynamic_sections_created) { /* Set the contents of the .interp section to the interpreter. */ - if (! info->shared) + if (info->executable) { s = bfd_get_section_by_name (dynobj, ".interp"); if (s == NULL) @@ -5747,16 +5692,6 @@ ppc64_elf_size_dynamic_sections (output_ } } - if (htab->tlsld_got.refcount > 0) - { - htab->tlsld_got.offset = htab->sgot->_raw_size; - htab->sgot->_raw_size += 16; - if (info->shared) - htab->srelgot->_raw_size += sizeof (Elf64_External_Rela); - } - else - htab->tlsld_got.offset = (bfd_vma) -1; - /* Set up .got offsets for local syms, and space for local dynamic relocs. */ for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) @@ -5771,6 +5706,20 @@ ppc64_elf_size_dynamic_sections (output_ if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour) continue; + if (ppc64_tlsld_got (ibfd)->refcount > 0) + { + s = ppc64_elf_tdata (ibfd)->got; + ppc64_tlsld_got (ibfd)->offset = s->_raw_size; + s->_raw_size += 16; + if (info->shared) + { + srel = ppc64_elf_tdata (ibfd)->relgot; + srel->_raw_size += sizeof (Elf64_External_Rela); + } + } + else + ppc64_tlsld_got (ibfd)->offset = (bfd_vma) -1; + for (s = ibfd->sections; s != NULL; s = s->next) { struct ppc_dyn_relocs *p; @@ -5806,8 +5755,8 @@ ppc64_elf_size_dynamic_sections (output_ locsymcount = symtab_hdr->sh_info; end_lgot_ents = lgot_ents + locsymcount; lgot_masks = (char *) end_lgot_ents; - s = htab->sgot; - srel = htab->srelgot; + s = ppc64_elf_tdata (ibfd)->got; + srel = ppc64_elf_tdata (ibfd)->relgot; for (; lgot_ents < end_lgot_ents; ++lgot_ents, ++lgot_masks) { struct got_entry *ent; @@ -5817,14 +5766,14 @@ ppc64_elf_size_dynamic_sections (output_ { if ((ent->tls_type & *lgot_masks & TLS_LD) != 0) { - if (htab->tlsld_got.offset == (bfd_vma) -1) + if (ppc64_tlsld_got (ibfd)->offset == (bfd_vma) -1) { - htab->tlsld_got.offset = s->_raw_size; + ppc64_tlsld_got (ibfd)->offset = s->_raw_size; s->_raw_size += 16; if (info->shared) srel->_raw_size += sizeof (Elf64_External_Rela); } - ent->got.offset = htab->tlsld_got.offset; + ent->got.offset = ppc64_tlsld_got (ibfd)->offset; } else { @@ -5850,7 +5799,7 @@ ppc64_elf_size_dynamic_sections (output_ /* Allocate global sym .plt and .got entries, and space for global sym dynamic relocs. */ - elf_link_hash_traverse (&htab->elf, allocate_dynrelocs, (PTR) info); + elf_link_hash_traverse (&htab->elf, allocate_dynrelocs, info); /* We now have determined the sizes of the various dynamic sections. Allocate memory for them. */ @@ -5864,12 +5813,12 @@ ppc64_elf_size_dynamic_sections (output_ and a non-zero _cooked_size sticks. */ s->_cooked_size = 0; - if (s == htab->sbrlt || s == htab->srelbrlt) + if (s == htab->brlt || s == htab->relbrlt) /* These haven't been allocated yet; don't strip. */ continue; - else if (s == htab->splt - || s == htab->sgot - || s == htab->sglink) + else if (s == htab->got + || s == htab->plt + || s == htab->glink) { /* Strip this section if we don't need it; see the comment below. */ @@ -5890,7 +5839,7 @@ ppc64_elf_size_dynamic_sections (output_ } else { - if (s != htab->srelplt) + if (s != htab->relplt) relocs = TRUE; /* We use the reloc_count field as a counter if we need @@ -5921,11 +5870,43 @@ ppc64_elf_size_dynamic_sections (output_ sections instead of garbage. We also rely on the section contents being zero when writing the GOT. */ - s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->_raw_size); + s->contents = bfd_zalloc (dynobj, s->_raw_size); if (s->contents == NULL) return FALSE; } + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + { + s = ppc64_elf_tdata (ibfd)->got; + if (s != NULL && s != htab->got) + { + s->_cooked_size = 0; + if (s->_raw_size == 0) + _bfd_strip_section_from_output (info, s); + else + { + s->contents = bfd_zalloc (ibfd, s->_raw_size); + if (s->contents == NULL) + return FALSE; + } + } + s = ppc64_elf_tdata (ibfd)->relgot; + if (s != NULL) + { + s->_cooked_size = 0; + if (s->_raw_size == 0) + _bfd_strip_section_from_output (info, s); + else + { + s->contents = bfd_zalloc (ibfd, s->_raw_size); + if (s->contents == NULL) + return FALSE; + relocs = TRUE; + s->reloc_count = 0; + } + } + } + if (htab->elf.dynamic_sections_created) { /* Add some entries to the .dynamic section. We fill in the @@ -5934,15 +5915,15 @@ ppc64_elf_size_dynamic_sections (output_ the .dynamic section. The DT_DEBUG entry is filled in by the dynamic linker and used by the debugger. */ #define add_dynamic_entry(TAG, VAL) \ - bfd_elf64_add_dynamic_entry (info, (bfd_vma) (TAG), (bfd_vma) (VAL)) + bfd_elf64_add_dynamic_entry (info, (TAG), (VAL)) - if (!info->shared) + if (info->executable) { if (!add_dynamic_entry (DT_DEBUG, 0)) return FALSE; } - if (htab->splt != NULL && htab->splt->_raw_size != 0) + if (htab->plt != NULL && htab->plt->_raw_size != 0) { if (!add_dynamic_entry (DT_PLTGOT, 0) || !add_dynamic_entry (DT_PLTRELSZ, 0) @@ -5969,8 +5950,7 @@ ppc64_elf_size_dynamic_sections (output_ /* 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->elf, readonly_dynrelocs, - (PTR) info); + elf_link_hash_traverse (&htab->elf, readonly_dynrelocs, info); if ((info->flags & DF_TEXTREL) != 0) { @@ -5986,18 +5966,17 @@ ppc64_elf_size_dynamic_sections (output_ /* Determine the type of stub needed, if any, for a call. */ -static INLINE enum ppc_stub_type -ppc_type_of_stub (input_sec, rel, hash, destination) - asection *input_sec; - const Elf_Internal_Rela *rel; - struct ppc_link_hash_entry **hash; - bfd_vma destination; +static inline enum ppc_stub_type +ppc_type_of_stub (asection *input_sec, + const Elf_Internal_Rela *rel, + struct ppc_link_hash_entry **hash, + bfd_vma destination) { struct ppc_link_hash_entry *h = *hash; bfd_vma location; bfd_vma branch_offset; bfd_vma max_branch_offset; - unsigned int r_type; + enum elf_ppc64_reloc_type r_type; if (h != NULL) { @@ -6014,8 +5993,8 @@ ppc_type_of_stub (input_sec, rel, hash, } } - if (h->elf.root.type == bfd_link_hash_undefweak - || h->elf.root.type == bfd_link_hash_undefined) + if (h->elf.root.type != bfd_link_hash_defined + && h->elf.root.type != bfd_link_hash_defweak) return ppc_stub_none; } @@ -6029,7 +6008,7 @@ ppc_type_of_stub (input_sec, rel, hash, /* Determine if a long branch stub is needed. */ max_branch_offset = 1 << 25; - if (r_type != (unsigned int) R_PPC64_REL24) + if (r_type != R_PPC64_REL24) max_branch_offset = 1 << 15; if (branch_offset + max_branch_offset >= 2 * max_branch_offset) @@ -6042,29 +6021,22 @@ ppc_type_of_stub (input_sec, rel, hash, /* Build a .plt call stub. */ -static bfd_byte * -build_plt_stub (obfd, p, offset, glink) - bfd *obfd; - bfd_byte *p; - int offset; - int glink; +static inline bfd_byte * +build_plt_stub (bfd *obfd, bfd_byte *p, int offset) { #define PPC_LO(v) ((v) & 0xffff) #define PPC_HI(v) (((v) >> 16) & 0xffff) #define PPC_HA(v) PPC_HI ((v) + 0x8000) - if (glink) - bfd_put_32 (obfd, LD_R2_40R1, p), p += 4; bfd_put_32 (obfd, ADDIS_R12_R2 | PPC_HA (offset), p), p += 4; - if (!glink) - bfd_put_32 (obfd, STD_R2_40R1, p), p += 4; + bfd_put_32 (obfd, STD_R2_40R1, p), p += 4; bfd_put_32 (obfd, LD_R11_0R12 | PPC_LO (offset), p), p += 4; if (PPC_HA (offset + 8) != PPC_HA (offset)) - bfd_put_32 (obfd, ADDIS_R12_R12_1, p), p += 4; + bfd_put_32 (obfd, ADDIS_R12_R12 | 1, p), p += 4; offset += 8; bfd_put_32 (obfd, LD_R2_0R12 | PPC_LO (offset), p), p += 4; if (PPC_HA (offset + 8) != PPC_HA (offset)) - bfd_put_32 (obfd, ADDIS_R12_R12_1, p), p += 4; + bfd_put_32 (obfd, ADDIS_R12_R12 | 1, p), p += 4; offset += 8; bfd_put_32 (obfd, MTCTR_R11, p), p += 4; bfd_put_32 (obfd, LD_R11_0R12 | PPC_LO (offset), p), p += 4; @@ -6073,9 +6045,7 @@ build_plt_stub (obfd, p, offset, glink) } static bfd_boolean -ppc_build_one_stub (gen_entry, in_arg) - struct bfd_hash_entry *gen_entry; - PTR in_arg; +ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg) { struct ppc_stub_hash_entry *stub_entry; struct ppc_branch_hash_entry *br_entry; @@ -6092,7 +6062,7 @@ ppc_build_one_stub (gen_entry, in_arg) /* Massage our args to the form they really have. */ stub_entry = (struct ppc_stub_hash_entry *) gen_entry; - info = (struct bfd_link_info *) in_arg; + info = in_arg; htab = ppc_hash_table (info); stub_sec = stub_entry->stub_sec; @@ -6101,11 +6071,29 @@ ppc_build_one_stub (gen_entry, in_arg) stub_entry->stub_offset = stub_sec->_cooked_size; loc = stub_sec->contents + stub_entry->stub_offset; + if (htab->emit_stub_syms) + { + struct elf_link_hash_entry *h; + h = elf_link_hash_lookup (&htab->elf, stub_entry->root.string, + TRUE, FALSE, FALSE); + if (h == NULL) + return FALSE; + h->root.type = bfd_link_hash_defined; + h->root.u.def.section = stub_entry->stub_sec; + h->root.u.def.value = stub_entry->stub_offset; + h->elf_link_hash_flags = (ELF_LINK_HASH_REF_REGULAR + | ELF_LINK_HASH_DEF_REGULAR + | ELF_LINK_HASH_REF_REGULAR_NONWEAK + | ELF_LINK_FORCED_LOCAL); + } + stub_bfd = stub_sec->owner; + htab->stub_count[stub_entry->stub_type - 1] += 1; switch (stub_entry->stub_type) { case ppc_stub_long_branch: + case ppc_stub_long_branch_r2off: /* Branches are relative. This is where we are going to. */ off = (stub_entry->target_value + stub_entry->target_section->output_offset @@ -6116,13 +6104,30 @@ ppc_build_one_stub (gen_entry, in_arg) + stub_sec->output_offset + stub_sec->output_section->vma); - BFD_ASSERT (off + (1 << 25) < (bfd_vma) (1 << 26)); + if (stub_entry->stub_type != ppc_stub_long_branch_r2off) + size = 4; + else + { + bfd_vma r2off; - bfd_put_32 (stub_bfd, (bfd_vma) B_DOT | (off & 0x3fffffc), loc); - size = 4; + r2off = (htab->stub_group[stub_entry->target_section->id].toc_off + - htab->stub_group[stub_entry->id_sec->id].toc_off); + bfd_put_32 (stub_bfd, STD_R2_40R1, loc); + loc += 4; + bfd_put_32 (stub_bfd, ADDIS_R2_R2 | PPC_HA (r2off), loc); + loc += 4; + bfd_put_32 (stub_bfd, ADDI_R2_R2 | PPC_LO (r2off), loc); + loc += 4; + off -= 12; + size = 16; + } + bfd_put_32 (stub_bfd, B_DOT | (off & 0x3fffffc), loc); + + BFD_ASSERT (off + (1 << 25) < (bfd_vma) (1 << 26)); break; case ppc_stub_plt_branch: + case ppc_stub_plt_branch_r2off: br_entry = ppc_branch_hash_lookup (&htab->branch_hash_table, stub_entry->root.string + 9, FALSE, FALSE); @@ -6138,33 +6143,33 @@ ppc_build_one_stub (gen_entry, in_arg) + stub_entry->target_section->output_offset + stub_entry->target_section->output_section->vma); - bfd_put_64 (htab->sbrlt->owner, off, - htab->sbrlt->contents + br_entry->offset); + bfd_put_64 (htab->brlt->owner, off, + htab->brlt->contents + br_entry->offset); if (info->shared) { /* Create a reloc for the branch lookup table entry. */ Elf_Internal_Rela rela; - bfd_byte *loc; + bfd_byte *rl; rela.r_offset = (br_entry->offset - + htab->sbrlt->output_offset - + htab->sbrlt->output_section->vma); + + htab->brlt->output_offset + + htab->brlt->output_section->vma); rela.r_info = ELF64_R_INFO (0, R_PPC64_RELATIVE); rela.r_addend = off; - loc = htab->srelbrlt->contents; - loc += htab->srelbrlt->reloc_count++ * sizeof (Elf64_External_Rela); - bfd_elf64_swap_reloca_out (htab->srelbrlt->owner, &rela, loc); + rl = htab->relbrlt->contents; + rl += htab->relbrlt->reloc_count++ * sizeof (Elf64_External_Rela); + bfd_elf64_swap_reloca_out (htab->relbrlt->owner, &rela, rl); } off = (br_entry->offset - + htab->sbrlt->output_offset - + htab->sbrlt->output_section->vma - - elf_gp (htab->sbrlt->output_section->owner) - - TOC_BASE_OFF); + + htab->brlt->output_offset + + htab->brlt->output_section->vma + - elf_gp (htab->brlt->output_section->owner) + - htab->stub_group[stub_entry->id_sec->id].toc_off); - if (off + 0x80000000 > 0xffffffff || (off & 7) != 0) + if (off + 0x80008000 > 0xffffffff || (off & 7) != 0) { (*_bfd_error_handler) (_("linkage table error against `%s'"), @@ -6175,11 +6180,34 @@ ppc_build_one_stub (gen_entry, in_arg) } indx = off; - bfd_put_32 (stub_bfd, (bfd_vma) ADDIS_R12_R2 | PPC_HA (indx), loc); - bfd_put_32 (stub_bfd, (bfd_vma) LD_R11_0R12 | PPC_LO (indx), loc + 4); - bfd_put_32 (stub_bfd, (bfd_vma) MTCTR_R11, loc + 8); - bfd_put_32 (stub_bfd, (bfd_vma) BCTR, loc + 12); - size = 16; + if (stub_entry->stub_type != ppc_stub_plt_branch_r2off) + { + bfd_put_32 (stub_bfd, ADDIS_R12_R2 | PPC_HA (indx), loc); + loc += 4; + bfd_put_32 (stub_bfd, LD_R11_0R12 | PPC_LO (indx), loc); + size = 16; + } + else + { + bfd_vma r2off; + + r2off = (htab->stub_group[stub_entry->target_section->id].toc_off + - htab->stub_group[stub_entry->id_sec->id].toc_off); + bfd_put_32 (stub_bfd, STD_R2_40R1, loc); + loc += 4; + bfd_put_32 (stub_bfd, ADDIS_R12_R2 | PPC_HA (indx), loc); + loc += 4; + bfd_put_32 (stub_bfd, LD_R11_0R12 | PPC_LO (indx), loc); + loc += 4; + bfd_put_32 (stub_bfd, ADDIS_R2_R2 | PPC_HA (r2off), loc); + loc += 4; + bfd_put_32 (stub_bfd, ADDI_R2_R2 | PPC_LO (r2off), loc); + size = 28; + } + loc += 4; + bfd_put_32 (stub_bfd, MTCTR_R11, loc); + loc += 4; + bfd_put_32 (stub_bfd, BCTR, loc); break; case ppc_stub_plt_call: @@ -6191,7 +6219,9 @@ ppc_build_one_stub (gen_entry, in_arg) { /* Point the symbol at the stub. There may be multiple stubs, we don't really care; The main thing is to make this sym - defined somewhere. */ + defined somewhere. Maybe defining the symbol in the stub + section is a silly idea. If we didn't do this, htab->top_id + could disappear. */ stub_entry->h->oh->root.type = bfd_link_hash_defined; stub_entry->h->oh->root.u.def.section = stub_entry->stub_sec; stub_entry->h->oh->root.u.def.value = stub_entry->stub_offset; @@ -6209,12 +6239,12 @@ ppc_build_one_stub (gen_entry, in_arg) abort (); off &= ~ (bfd_vma) 1; - off += (htab->splt->output_offset - + htab->splt->output_section->vma - - elf_gp (htab->splt->output_section->owner) - - TOC_BASE_OFF); + off += (htab->plt->output_offset + + htab->plt->output_section->vma + - elf_gp (htab->plt->output_section->owner) + - htab->stub_group[stub_entry->id_sec->id].toc_off); - if (off + 0x80000000 > 0xffffffff || (off & 7) != 0) + if (off + 0x80008000 > 0xffffffff || (off & 7) != 0) { (*_bfd_error_handler) (_("linkage table error against `%s'"), @@ -6224,7 +6254,7 @@ ppc_build_one_stub (gen_entry, in_arg) return FALSE; } - p = build_plt_stub (stub_bfd, loc, (int) off, 0); + p = build_plt_stub (stub_bfd, loc, off); size = p - loc; break; @@ -6242,9 +6272,7 @@ ppc_build_one_stub (gen_entry, in_arg) long_branch stubs won't do. */ static bfd_boolean -ppc_size_one_stub (gen_entry, in_arg) - struct bfd_hash_entry *gen_entry; - PTR in_arg; +ppc_size_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg) { struct ppc_stub_hash_entry *stub_entry; struct ppc_link_hash_table *htab; @@ -6253,7 +6281,7 @@ ppc_size_one_stub (gen_entry, in_arg) /* Massage our args to the form they really have. */ stub_entry = (struct ppc_stub_hash_entry *) gen_entry; - htab = (struct ppc_link_hash_table *) in_arg; + htab = in_arg; if (stub_entry->stub_type == ppc_stub_plt_call) { @@ -6267,21 +6295,19 @@ ppc_size_one_stub (gen_entry, in_arg) } if (off >= (bfd_vma) -2) abort (); - off += (htab->splt->output_offset - + htab->splt->output_section->vma - - elf_gp (htab->splt->output_section->owner) - - TOC_BASE_OFF); + off += (htab->plt->output_offset + + htab->plt->output_section->vma + - elf_gp (htab->plt->output_section->owner) + - htab->stub_group[stub_entry->id_sec->id].toc_off); - size = 28; - if (PPC_HA ((int) off + 16) != PPC_HA ((int) off)) + size = PLT_CALL_STUB_SIZE; + if (PPC_HA (off + 16) != PPC_HA (off)) size += 4; } else { - /* ppc_stub_long_branch or ppc_stub_plt_branch. */ - stub_entry->stub_type = ppc_stub_long_branch; - size = 4; - + /* ppc_stub_long_branch or ppc_stub_plt_branch, or their r2off + variants. */ off = (stub_entry->target_value + stub_entry->target_section->output_offset + stub_entry->target_section->output_section->vma); @@ -6289,6 +6315,19 @@ ppc_size_one_stub (gen_entry, in_arg) + stub_entry->stub_sec->output_offset + stub_entry->stub_sec->output_section->vma); + /* Reset the stub type from the plt variant in case we now + can reach with a shorter stub. */ + if (stub_entry->stub_type >= ppc_stub_plt_branch) + stub_entry->stub_type += ppc_stub_long_branch - ppc_stub_plt_branch; + + size = 4; + if (stub_entry->stub_type == ppc_stub_long_branch_r2off) + { + off -= 12; + size = 16; + } + + /* If the branch offset if too big, use a ppc_stub_plt_branch. */ if (off + (1 << 25) >= (bfd_vma) (1 << 26)) { struct ppc_branch_hash_entry *br_entry; @@ -6307,11 +6346,14 @@ ppc_size_one_stub (gen_entry, in_arg) if (br_entry->iter != htab->stub_iteration) { br_entry->iter = htab->stub_iteration; - br_entry->offset = htab->sbrlt->_raw_size; - htab->sbrlt->_raw_size += 8; + br_entry->offset = htab->brlt->_raw_size; + htab->brlt->_raw_size += 8; } - stub_entry->stub_type = ppc_stub_plt_branch; + + stub_entry->stub_type += ppc_stub_plt_branch - ppc_stub_long_branch; size = 16; + if (stub_entry->stub_type != ppc_stub_plt_branch) + size = 28; } } @@ -6324,23 +6366,20 @@ ppc_size_one_stub (gen_entry, in_arg) 0 when no stubs will be needed, and 1 on success. */ int -ppc64_elf_setup_section_lists (output_bfd, info) - bfd *output_bfd; - struct bfd_link_info *info; +ppc64_elf_setup_section_lists (bfd *output_bfd, struct bfd_link_info *info) { bfd *input_bfd; - int top_id, top_index; + int top_id, top_index, id; asection *section; - asection **input_list, **list; + asection **input_list; bfd_size_type amt; struct ppc_link_hash_table *htab = ppc_hash_table (info); - if (htab->elf.root.creator->flavour != bfd_target_elf_flavour - || htab->sbrlt == NULL) + if (htab->brlt == NULL) return 0; /* Find the top input section id. */ - for (input_bfd = info->input_bfds, top_id = 0; + for (input_bfd = info->input_bfds, top_id = 3; input_bfd != NULL; input_bfd = input_bfd->link_next) { @@ -6353,11 +6392,18 @@ ppc64_elf_setup_section_lists (output_bf } } + htab->top_id = top_id; amt = sizeof (struct map_stub) * (top_id + 1); - htab->stub_group = (struct map_stub *) bfd_zmalloc (amt); + htab->stub_group = bfd_zmalloc (amt); if (htab->stub_group == NULL) return -1; + /* Set toc_off for com, und, abs and ind sections. */ + for (id = 0; id < 3; id++) + htab->stub_group[id].toc_off = TOC_BASE_OFF; + + elf_gp (output_bfd) = htab->toc_curr = ppc64_elf_toc (output_bfd); + /* We can't use output_bfd->section_count here to find the top output section index as some sections may have been removed, and _bfd_strip_section_from_output doesn't renumber the indices. */ @@ -6371,27 +6417,111 @@ ppc64_elf_setup_section_lists (output_bf htab->top_index = top_index; amt = sizeof (asection *) * (top_index + 1); - input_list = (asection **) bfd_malloc (amt); + input_list = bfd_zmalloc (amt); htab->input_list = input_list; if (input_list == NULL) return -1; - /* For sections we aren't interested in, mark their entries with a - value we can check later. */ - list = input_list + top_index; - do - *list = bfd_abs_section_ptr; - while (list-- != input_list); + return 1; +} - for (section = output_bfd->sections; - section != NULL; - section = section->next) +/* The linker repeatedly calls this function for each TOC input section + and linker generated GOT section. Group input bfds such that the toc + within a group is less than 64k in size. Will break with cute linker + scripts that play games with dot in the output toc section. */ + +void +ppc64_elf_next_toc_section (struct bfd_link_info *info, asection *isec) +{ + struct ppc_link_hash_table *htab = ppc_hash_table (info); + + if (!htab->no_multi_toc) { - if ((section->flags & SEC_CODE) != 0) - input_list[section->index] = NULL; + bfd_vma addr = isec->output_offset + isec->output_section->vma; + bfd_vma off = addr - htab->toc_curr; + if (off + isec->_raw_size > 0x10000) + { + htab->toc_curr = addr; + htab->multi_toc_needed = 1; + } + elf_gp (isec->owner) = (htab->toc_curr + - elf_gp (isec->output_section->owner) + + TOC_BASE_OFF); } +} - return 1; +/* Called after the last call to the above function. */ + +void +ppc64_elf_reinit_toc (bfd *output_bfd ATTRIBUTE_UNUSED, + struct bfd_link_info *info) +{ + struct ppc_link_hash_table *htab = ppc_hash_table (info); + + /* toc_curr tracks the TOC offset used for code sections below in + ppc64_elf_next_input_section. Start off at 0x8000. */ + htab->toc_curr = TOC_BASE_OFF; +} + +/* No toc references were found in ISEC. If the code in ISEC makes no + calls, then there's no need to use toc adjusting stubs when branching + into ISEC. Actually, indirect calls from ISEC are OK as they will + load r2. */ + +static int +toc_adjusting_stub_needed (struct bfd_link_info *info, asection *isec) +{ + bfd_byte *contents; + bfd_size_type i; + int ret; + int branch_ok; + + /* We know none of our code bearing sections will need toc stubs. */ + if ((isec->flags & SEC_LINKER_CREATED) != 0) + return 0; + + /* Hack for linux kernel. .fixup contains branches, but only back to + the function that hit an exception. */ + branch_ok = strcmp (isec->name, ".fixup") == 0; + + contents = elf_section_data (isec)->this_hdr.contents; + if (contents == NULL) + { + contents = bfd_malloc (isec->_raw_size); + if (contents == NULL) + return -1; + if (! bfd_get_section_contents (isec->owner, isec, contents, + 0, isec->_raw_size)) + { + free (contents); + return -1; + } + if (info->keep_memory) + elf_section_data (isec)->this_hdr.contents = contents; + } + + /* Code scan, because we don't necessarily have relocs on calls to + static functions. */ + ret = 0; + for (i = 0; i < isec->_raw_size; i += 4) + { + unsigned long insn = bfd_get_32 (isec->owner, contents + i); + /* Is this a branch? */ + if ((insn & (0x3f << 26)) == (18 << 26) + /* If branch and link, it's a function call. */ + && ((insn & 1) != 0 + /* Sibling calls use a plain branch. I don't know a way + of deciding whether a branch is really a sibling call. */ + || !branch_ok)) + { + ret = 1; + break; + } + } + + if (elf_section_data (isec)->this_hdr.contents != contents) + free (contents); + return ret; } /* The linker repeatedly calls this function for each input section, @@ -6399,26 +6529,42 @@ ppc64_elf_setup_section_lists (output_bf Build lists of input sections to determine groupings between which we may insert linker stubs. */ -void -ppc64_elf_next_input_section (info, isec) - struct bfd_link_info *info; - asection *isec; +bfd_boolean +ppc64_elf_next_input_section (struct bfd_link_info *info, asection *isec) { struct ppc_link_hash_table *htab = ppc_hash_table (info); + int ret; - if (isec->output_section->index <= htab->top_index) + if ((isec->output_section->flags & SEC_CODE) != 0 + && isec->output_section->index <= htab->top_index) { asection **list = htab->input_list + isec->output_section->index; - if (*list != bfd_abs_section_ptr) - { - /* Steal the link_sec pointer for our list. */ + /* Steal the link_sec pointer for our list. */ #define PREV_SEC(sec) (htab->stub_group[(sec)->id].link_sec) - /* This happens to make the list in reverse order, - which is what we want. */ - PREV_SEC (isec) = *list; - *list = isec; - } + /* This happens to make the list in reverse order, + which is what we want. */ + PREV_SEC (isec) = *list; + *list = isec; + } + + /* If a code section has a function that uses the TOC then we need + to use the right TOC (obviously). Also, make sure that .opd gets + the correct TOC value. */ + if (isec->has_gp_reloc || (isec->flags & SEC_CODE) == 0) + { + if (elf_gp (isec->owner) != 0) + htab->toc_curr = elf_gp (isec->owner); } + else if ((ret = toc_adjusting_stub_needed (info, isec)) < 0) + return FALSE; + else + isec->has_gp_reloc = ret; + + /* Functions that don't use the TOC can belong in any TOC group. + Use the last TOC base. This happens to make _init and _fini + pasting work. */ + htab->stub_group[isec->id].toc_off = htab->toc_curr; + return TRUE; } /* See whether we can group stub sections together. Grouping stub @@ -6429,23 +6575,21 @@ ppc64_elf_next_input_section (info, isec the middle of a function is not a good idea. */ static void -group_sections (htab, stub_group_size, stubs_always_before_branch) - struct ppc_link_hash_table *htab; - bfd_size_type stub_group_size; - bfd_boolean stubs_always_before_branch; +group_sections (struct ppc_link_hash_table *htab, + bfd_size_type stub_group_size, + bfd_boolean stubs_always_before_branch) { asection **list = htab->input_list + htab->top_index; do { asection *tail = *list; - if (tail == bfd_abs_section_ptr) - continue; while (tail != NULL) { asection *curr; asection *prev; bfd_size_type total; bfd_boolean big_sec; + bfd_vma curr_toc; curr = tail; if (tail->_cooked_size) @@ -6453,10 +6597,12 @@ group_sections (htab, stub_group_size, s else total = tail->_raw_size; big_sec = total >= stub_group_size; + curr_toc = htab->stub_group[tail->id].toc_off; while ((prev = PREV_SEC (curr)) != NULL && ((total += curr->output_offset - prev->output_offset) - < stub_group_size)) + < stub_group_size) + && htab->stub_group[prev->id].toc_off == curr_toc) curr = prev; /* OK, the size from the start of CURR to the end is less @@ -6487,7 +6633,8 @@ group_sections (htab, stub_group_size, s total = 0; while (prev != NULL && ((total += tail->output_offset - prev->output_offset) - < stub_group_size)) + < stub_group_size) + && htab->stub_group[prev->id].toc_off == curr_toc) { tail = prev; prev = PREV_SEC (tail); @@ -6509,21 +6656,17 @@ group_sections (htab, stub_group_size, s instruction. */ bfd_boolean -ppc64_elf_size_stubs (output_bfd, stub_bfd, info, group_size, - add_stub_section, layout_sections_again) - bfd *output_bfd; - bfd *stub_bfd; - struct bfd_link_info *info; - bfd_signed_vma group_size; - asection * (*add_stub_section) PARAMS ((const char *, asection *)); - void (*layout_sections_again) PARAMS ((void)); +ppc64_elf_size_stubs (bfd *output_bfd, + struct bfd_link_info *info, + bfd_signed_vma group_size, + asection *(*add_stub_section) (const char *, asection *), + void (*layout_sections_again) (void)) { bfd_size_type stub_group_size; bfd_boolean stubs_always_before_branch; struct ppc_link_hash_table *htab = ppc_hash_table (info); /* Stash our params away. */ - htab->stub_bfd = stub_bfd; htab->add_stub_section = add_stub_section; htab->layout_sections_again = layout_sections_again; stubs_always_before_branch = group_size < 0; @@ -6594,8 +6737,7 @@ ppc64_elf_size_stubs (output_bfd, stub_b /* Get the relocs. */ internal_relocs - = _bfd_elf_link_read_relocs (input_bfd, section, NULL, - (Elf_Internal_Rela *) NULL, + = _bfd_elf_link_read_relocs (input_bfd, section, NULL, NULL, info->keep_memory); if (internal_relocs == NULL) goto error_ret_free_local; @@ -6605,7 +6747,8 @@ ppc64_elf_size_stubs (output_bfd, stub_b irelaend = irela + section->reloc_count; for (; irela < irelaend; irela++) { - unsigned int r_type, r_indx; + enum elf_ppc64_reloc_type r_type; + unsigned int r_indx; enum ppc_stub_type stub_type; struct ppc_stub_hash_entry *stub_entry; asection *sym_sec; @@ -6620,17 +6763,17 @@ ppc64_elf_size_stubs (output_bfd, stub_b r_type = ELF64_R_TYPE (irela->r_info); r_indx = ELF64_R_SYM (irela->r_info); - if (r_type >= (unsigned int) R_PPC64_max) + if (r_type >= R_PPC64_max) { bfd_set_error (bfd_error_bad_value); goto error_ret_free_internal; } /* Only look for stubs on branch instructions. */ - if (r_type != (unsigned int) R_PPC64_REL24 - && r_type != (unsigned int) R_PPC64_REL14 - && r_type != (unsigned int) R_PPC64_REL14_BRTAKEN - && r_type != (unsigned int) R_PPC64_REL14_BRNTAKEN) + if (r_type != R_PPC64_REL24 + && r_type != R_PPC64_REL14 + && r_type != R_PPC64_REL14_BRTAKEN + && r_type != R_PPC64_REL14_BRNTAKEN) continue; /* Now determine the call target, its name, value, @@ -6676,6 +6819,24 @@ ppc64_elf_size_stubs (output_bfd, stub_b /* Determine what (if any) linker stub is needed. */ stub_type = ppc_type_of_stub (section, irela, &hash, destination); + + if (stub_type != ppc_stub_plt_call) + { + /* Check whether we need a TOC adjusting stub. + Since the linker pastes together pieces from + different object files when creating the + _init and _fini functions, it may be that a + call to what looks like a local sym is in + fact a call needing a TOC adjustment. */ + if (sym_sec != NULL + && sym_sec->output_section != NULL + && (htab->stub_group[sym_sec->id].toc_off + != htab->stub_group[section->id].toc_off) + && sym_sec->has_gp_reloc + && section->has_gp_reloc) + stub_type = ppc_stub_long_branch_r2off; + } + if (stub_type == ppc_stub_none) continue; @@ -6728,9 +6889,9 @@ ppc64_elf_size_stubs (output_bfd, stub_b return FALSE; } + stub_entry->stub_type = stub_type; stub_entry->target_value = sym_value; stub_entry->target_section = sym_sec; - stub_entry->stub_type = stub_type; stub_entry->h = hash; stub_entry->addend = irela->r_addend; stub_changed = TRUE; @@ -6759,12 +6920,13 @@ ppc64_elf_size_stubs (output_bfd, stub_b for (stub_sec = htab->stub_bfd->sections; stub_sec != NULL; stub_sec = stub_sec->next) - { - stub_sec->_raw_size = 0; - stub_sec->_cooked_size = 0; - } - htab->sbrlt->_raw_size = 0; - htab->sbrlt->_cooked_size = 0; + if ((stub_sec->flags & SEC_LINKER_CREATED) == 0) + { + stub_sec->_raw_size = 0; + stub_sec->_cooked_size = 0; + } + htab->brlt->_raw_size = 0; + htab->brlt->_cooked_size = 0; bfd_hash_traverse (&htab->stub_hash_table, ppc_size_one_stub, htab); @@ -6784,8 +6946,7 @@ ppc64_elf_size_stubs (output_bfd, stub_b move, we'll be called again. Provide a value for TOCstart. */ bfd_vma -ppc64_elf_toc (obfd) - bfd *obfd; +ppc64_elf_toc (bfd *obfd) { asection *s; bfd_vma TOCstart; @@ -6842,77 +7003,115 @@ ppc64_elf_toc (obfd) hash table. This function is called via gldelf64ppc_finish. */ bfd_boolean -ppc64_elf_build_stubs (info) - struct bfd_link_info *info; +ppc64_elf_build_stubs (bfd_boolean emit_stub_syms, + struct bfd_link_info *info, + char **stats) { struct ppc_link_hash_table *htab = ppc_hash_table (info); asection *stub_sec; - bfd_vma plt_r2; bfd_byte *p; + int stub_sec_count = 0; + htab->emit_stub_syms = emit_stub_syms; for (stub_sec = htab->stub_bfd->sections; stub_sec != NULL; stub_sec = stub_sec->next) - { - bfd_size_type size; + if ((stub_sec->flags & SEC_LINKER_CREATED) == 0) + { + bfd_size_type size; - /* Allocate memory to hold the linker stubs. */ - size = stub_sec->_raw_size; - if (size != 0) - { - stub_sec->contents = (bfd_byte *) bfd_zalloc (htab->stub_bfd, size); - if (stub_sec->contents == NULL) - return FALSE; - } - stub_sec->_cooked_size = 0; - } + /* Allocate memory to hold the linker stubs. */ + size = stub_sec->_raw_size; + if (size != 0) + { + stub_sec->contents = bfd_zalloc (htab->stub_bfd, size); + if (stub_sec->contents == NULL) + return FALSE; + } + stub_sec->_cooked_size = 0; + } - if (htab->splt != NULL) + if (htab->plt != NULL) { unsigned int indx; + bfd_vma plt0; /* Build the .glink plt call stub. */ - plt_r2 = (htab->splt->output_offset - + htab->splt->output_section->vma - - elf_gp (htab->splt->output_section->owner) - - 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) + plt0 = (htab->plt->output_section->vma + + htab->plt->output_offset + - (htab->glink->output_section->vma + + htab->glink->output_offset + + GLINK_CALL_STUB_SIZE)); + if (plt0 + 0x80008000 > 0xffffffff) { - bfd_put_32 (htab->sglink->owner, NOP, p); - p += 4; + (*_bfd_error_handler) (_(".glink and .plt too far apart")); + bfd_set_error (bfd_error_bad_value); + return FALSE; } + p = htab->glink->contents; + bfd_put_32 (htab->glink->owner, MFCTR_R12, p); + p += 4; + bfd_put_32 (htab->glink->owner, SLDI_R11_R0_3, p); + p += 4; + bfd_put_32 (htab->glink->owner, ADDIC_R2_R0_32K, p); + p += 4; + bfd_put_32 (htab->glink->owner, SUB_R12_R12_R11, p); + p += 4; + bfd_put_32 (htab->glink->owner, SRADI_R2_R2_63, p); + p += 4; + bfd_put_32 (htab->glink->owner, SLDI_R11_R0_2, p); + p += 4; + bfd_put_32 (htab->glink->owner, AND_R2_R2_R11, p); + p += 4; + bfd_put_32 (htab->glink->owner, SUB_R12_R12_R11, p); + p += 4; + bfd_put_32 (htab->glink->owner, ADD_R12_R12_R2, p); + p += 4; + bfd_put_32 (htab->glink->owner, ADDIS_R12_R12 | PPC_HA (plt0), p); + p += 4; + bfd_put_32 (htab->glink->owner, LD_R11_0R12 | PPC_LO (plt0), p); + p += 4; + bfd_put_32 (htab->glink->owner, ADDI_R12_R12 | PPC_LO (plt0), p); + p += 4; + bfd_put_32 (htab->glink->owner, LD_R2_0R12 | 8, p); + p += 4; + bfd_put_32 (htab->glink->owner, MTCTR_R11, p); + p += 4; + bfd_put_32 (htab->glink->owner, LD_R11_0R12 | 16, p); + p += 4; + bfd_put_32 (htab->glink->owner, BCTR, p); + p += 4; + /* Build the .glink lazy link call stubs. */ indx = 0; - while (p < htab->sglink->contents + htab->sglink->_raw_size) + while (p < htab->glink->contents + htab->glink->_raw_size) { if (indx < 0x8000) { - bfd_put_32 (htab->sglink->owner, LI_R0_0 | indx, p); + bfd_put_32 (htab->glink->owner, LI_R0_0 | indx, p); p += 4; } else { - bfd_put_32 (htab->sglink->owner, LIS_R0_0 | PPC_HI (indx), p); + bfd_put_32 (htab->glink->owner, LIS_R0_0 | PPC_HI (indx), p); p += 4; - bfd_put_32 (htab->sglink->owner, ORI_R0_R0_0 | PPC_LO (indx), p); + bfd_put_32 (htab->glink->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); + bfd_put_32 (htab->glink->owner, + B_DOT | ((htab->glink->contents - p) & 0x3fffffc), p); indx++; p += 4; } - htab->sglink->_cooked_size = p - htab->sglink->contents; + htab->glink->_cooked_size = p - htab->glink->contents; } - if (htab->sbrlt->_raw_size != 0) + if (htab->brlt->_raw_size != 0) { - htab->sbrlt->contents = (bfd_byte *) bfd_zalloc (htab->sbrlt->owner, - htab->sbrlt->_raw_size); - if (htab->sbrlt->contents == NULL) + htab->brlt->contents = bfd_zalloc (htab->brlt->owner, + htab->brlt->_raw_size); + if (htab->brlt->contents == NULL) return FALSE; } @@ -6922,19 +7121,43 @@ ppc64_elf_build_stubs (info) for (stub_sec = htab->stub_bfd->sections; stub_sec != NULL; stub_sec = stub_sec->next) - { - if (stub_sec->_raw_size != stub_sec->_cooked_size) - break; - } + if ((stub_sec->flags & SEC_LINKER_CREATED) == 0) + { + stub_sec_count += 1; + if (stub_sec->_raw_size != stub_sec->_cooked_size) + break; + } if (stub_sec != NULL - || htab->sglink->_raw_size != htab->sglink->_cooked_size) + || htab->glink->_raw_size != htab->glink->_cooked_size) { htab->stub_error = TRUE; (*_bfd_error_handler) (_("stubs don't match calculated size")); } - return !htab->stub_error; + if (htab->stub_error) + return FALSE; + + if (stats != NULL) + { + *stats = bfd_malloc (500); + if (*stats == NULL) + return FALSE; + + sprintf (*stats, _("linker stubs in %u groups\n" + " branch %lu\n" + " toc adjust %lu\n" + " long branch %lu\n" + " long toc adj %lu\n" + " plt call %lu"), + stub_sec_count, + htab->stub_count[ppc_stub_long_branch - 1], + htab->stub_count[ppc_stub_long_branch_r2off - 1], + htab->stub_count[ppc_stub_plt_branch - 1], + htab->stub_count[ppc_stub_plt_branch_r2off - 1], + htab->stub_count[ppc_stub_plt_call - 1]); + } + return TRUE; } /* The RELOCATE_SECTION function is called by the ELF backend linker @@ -6946,7 +7169,7 @@ ppc64_elf_build_stubs (info) This function is responsible for adjust the section contents as necessary, and (if using Rela relocs and generating a - relocateable output file) adjusting the reloc addend as + relocatable output file) adjusting the reloc addend as necessary. This function does not have to worry about setting the reloc @@ -6960,23 +7183,21 @@ ppc64_elf_build_stubs (info) The global hash table entry for the global symbols can be found via elf_sym_hashes (input_bfd). - When generating relocateable output, this function must handle + When generating relocatable output, this function must handle STB_LOCAL/STT_SECTION symbols specially. The output symbol is going to be the section symbol corresponding to the output section, which means that the addend must be adjusted accordingly. */ static bfd_boolean -ppc64_elf_relocate_section (output_bfd, info, input_bfd, input_section, - contents, relocs, local_syms, local_sections) - 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; +ppc64_elf_relocate_section (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) { struct ppc_link_hash_table *htab; Elf_Internal_Shdr *symtab_hdr; @@ -6992,7 +7213,7 @@ ppc64_elf_relocate_section (output_bfd, /* Disabled until we sort out how ld should choose 'y' vs 'at'. */ bfd_boolean is_power4 = FALSE; - if (info->relocateable) + if (info->relocatable) return TRUE; /* Initialize howto table if needed. */ @@ -7023,26 +7244,21 @@ ppc64_elf_relocate_section (output_bfd, bfd_vma relocation; bfd_boolean unresolved_reloc; bfd_boolean warned; - long insn; + long insn, mask; struct ppc_stub_hash_entry *stub_entry; bfd_vma max_br_offset; bfd_vma from; - r_type = (enum elf_ppc64_reloc_type) ELF64_R_TYPE (rel->r_info); + r_type = ELF64_R_TYPE (rel->r_info); r_symndx = ELF64_R_SYM (rel->r_info); - sym = (Elf_Internal_Sym *) 0; - sec = (asection *) 0; - h = (struct elf_link_hash_entry *) 0; - sym_name = (const char *) 0; + sym = NULL; + sec = NULL; + h = NULL; + sym_name = NULL; unresolved_reloc = FALSE; warned = FALSE; - if (r_type == R_PPC64_TOC) - { - /* Relocation value is TOC base. Symbol is ignored. */ - relocation = TOCstart + TOC_BASE_OFF; - } - else if (r_symndx < symtab_hdr->sh_info) + if (r_symndx < symtab_hdr->sh_info) { /* It's a local symbol. */ sym = local_syms + r_symndx; @@ -7084,7 +7300,7 @@ ppc64_elf_relocate_section (output_bfd, } else if (h->root.type == bfd_link_hash_undefweak) ; - else if (info->shared + else if (!info->executable && !info->no_undefined && ELF_ST_VISIBILITY (h->other) == STV_DEFAULT) ; @@ -7153,7 +7369,11 @@ ppc64_elf_relocate_section (output_bfd, tls_mask = *toc_tls; if (r_type == R_PPC64_TOC16_DS || r_type == R_PPC64_TOC16_LO_DS) - goto toctprel; + { + if (tls_mask != 0 + && (tls_mask & (TLS_DTPREL | TLS_TPREL)) == 0) + goto toctprel; + } else { /* If we found a GD reloc pair, then we might be @@ -7176,11 +7396,11 @@ ppc64_elf_relocate_section (output_bfd, case R_PPC64_GOT_TPREL16_DS: case R_PPC64_GOT_TPREL16_LO_DS: - toctprel: if (tls_mask != 0 && (tls_mask & TLS_TPREL) == 0) { bfd_vma insn; + toctprel: insn = bfd_get_32 (output_bfd, contents + rel->r_offset - 2); insn &= 31 << 21; insn |= 0x3c0d0000; /* addis 0,13,0 */ @@ -7207,10 +7427,10 @@ ppc64_elf_relocate_section (output_bfd, { bfd_vma insn, rtra; insn = bfd_get_32 (output_bfd, contents + rel->r_offset); - if ((insn & ((31 << 26) | (31 << 11))) + if ((insn & ((0x3f << 26) | (31 << 11))) == ((31 << 26) | (13 << 11))) rtra = insn & ((1 << 26) - (1 << 16)); - else if ((insn & ((31 << 26) | (31 << 16))) + else if ((insn & ((0x3f << 26) | (31 << 16))) == ((31 << 26) | (13 << 16))) rtra = (insn & (31 << 21)) | ((insn & (31 << 11)) << 5); else @@ -7292,8 +7512,7 @@ ppc64_elf_relocate_section (output_bfd, /* The next instruction should be a call to __tls_get_addr. Peek at the reloc to be sure. */ - r_type2 - = (enum elf_ppc64_reloc_type) ELF64_R_TYPE (rel[1].r_info); + r_type2 = ELF64_R_TYPE (rel[1].r_info); r_symndx2 = ELF64_R_SYM (rel[1].r_info); if (r_symndx2 < symtab_hdr->sh_info || (r_type2 != R_PPC64_REL14 @@ -7360,7 +7579,7 @@ ppc64_elf_relocate_section (output_bfd, if (tls_gd == 0) { /* We changed the symbol on an LD reloc. Start over - in order to get h, sym, sec etc. right. */ + in order to get h, sym, sec etc. right. */ rel--; continue; } @@ -7380,8 +7599,7 @@ ppc64_elf_relocate_section (output_bfd, r_type = R_PPC64_TPREL64; else { - bfd_put_64 (output_bfd, (bfd_vma) 1, - contents + rel->r_offset); + bfd_put_64 (output_bfd, 1, contents + rel->r_offset); r_type = R_PPC64_NONE; } rel->r_info = ELF64_R_INFO (r_symndx, r_type); @@ -7391,8 +7609,7 @@ ppc64_elf_relocate_section (output_bfd, { if ((tls_mask & TLS_LD) == 0) { - bfd_put_64 (output_bfd, (bfd_vma) 1, - contents + rel->r_offset); + bfd_put_64 (output_bfd, 1, contents + rel->r_offset); r_type = R_PPC64_NONE; rel->r_info = ELF64_R_INFO (r_symndx, r_type); } @@ -7449,20 +7666,28 @@ ppc64_elf_relocate_section (output_bfd, insn ^= 0x01 << 21; } - bfd_put_32 (output_bfd, (bfd_vma) insn, contents + rel->r_offset); + bfd_put_32 (output_bfd, insn, contents + rel->r_offset); break; case R_PPC64_REL24: - /* A REL24 branching to a linkage function is followed by a - nop. We replace the nop with a ld in order to restore - the TOC base pointer. Only calls to shared objects need - to alter the TOC base. These are recognized by their - need for a PLT entry. */ - if (h != NULL - && (fdh = ((struct ppc_link_hash_entry *) h)->oh) != NULL - && fdh->plt.plist != NULL + /* Calls to functions with a different TOC, such as calls to + shared objects, need to alter the TOC pointer. This is + done using a linkage stub. A REL24 branching to these + linkage stubs needs to be followed by a nop, as the nop + will be replaced with an instruction to restore the TOC + base pointer. */ + if (((h != NULL + && (fdh = ((struct ppc_link_hash_entry *) h)->oh) != NULL + && fdh->plt.plist != NULL) + || ((fdh = h, sec) != NULL + && sec->output_section != NULL + && (htab->stub_group[sec->id].toc_off + != htab->stub_group[input_section->id].toc_off))) && (stub_entry = ppc_get_stub_entry (input_section, sec, fdh, - rel, htab)) != NULL) + rel, htab)) != NULL + && (stub_entry->stub_type == ppc_stub_plt_call + || stub_entry->stub_type == ppc_stub_plt_branch_r2off + || stub_entry->stub_type == ppc_stub_long_branch_r2off)) { bfd_boolean can_plt_call = 0; @@ -7472,7 +7697,7 @@ ppc64_elf_relocate_section (output_bfd, if (insn == NOP || insn == CROR_151515 || insn == CROR_313131) { - bfd_put_32 (input_bfd, (bfd_vma) LD_R2_40R1, + bfd_put_32 (input_bfd, LD_R2_40R1, contents + rel->r_offset + 4); can_plt_call = 1; } @@ -7480,11 +7705,42 @@ ppc64_elf_relocate_section (output_bfd, if (!can_plt_call) { - /* If this is a plain branch rather than a branch - and link, don't require a nop. */ - insn = bfd_get_32 (input_bfd, contents + rel->r_offset); - if ((insn & 1) == 0) - can_plt_call = 1; + if (stub_entry->stub_type == ppc_stub_plt_call) + { + /* If this is a plain branch rather than a branch + and link, don't require a nop. */ + insn = bfd_get_32 (input_bfd, contents + rel->r_offset); + if ((insn & 1) == 0) + can_plt_call = 1; + } + else + { + if (strcmp (input_section->output_section->name, + ".init") == 0 + || strcmp (input_section->output_section->name, + ".fini") == 0) + (*_bfd_error_handler) + (_("%s(%s+0x%lx): automatic multiple TOCs " + "not supported using your crt files; " + "recompile with -mminimal-toc or upgrade gcc"), + bfd_archive_filename (input_bfd), + input_section->name, + (long) rel->r_offset); + else + (*_bfd_error_handler) + (_("%s(%s+0x%lx): sibling call optimization to `%s' " + "does not allow automatic multiple TOCs; " + "recompile with -mminimal-toc or " + "-fno-optimize-sibling-calls, " + "or make `%s' extern"), + bfd_archive_filename (input_bfd), + input_section->name, + (long) rel->r_offset, + sym_name, + sym_name); + bfd_set_error (bfd_error_bad_value); + ret = FALSE; + } } if (can_plt_call) @@ -7492,7 +7748,8 @@ ppc64_elf_relocate_section (output_bfd, relocation = (stub_entry->stub_offset + stub_entry->stub_sec->output_offset + stub_entry->stub_sec->output_section->vma); - unresolved_reloc = FALSE; + if (stub_entry->stub_type == ppc_stub_plt_call) + unresolved_reloc = FALSE; } } @@ -7584,17 +7841,15 @@ ppc64_elf_relocate_section (output_bfd, { /* Relocation is to the entry for this symbol in the global offset table. */ + asection *got; bfd_vma *offp; bfd_vma off; unsigned long indx = 0; - if (htab->sgot == NULL) - abort (); - if (tls_type == (TLS_TLS | TLS_LD) && (h == NULL || !(h->elf_link_hash_flags & ELF_LINK_HASH_DEF_DYNAMIC))) - offp = &htab->tlsld_got.offset; + offp = &ppc64_tlsld_got (input_bfd)->offset; else { struct got_entry *ent; @@ -7626,6 +7881,7 @@ ppc64_elf_relocate_section (output_bfd, for (; ent != NULL; ent = ent->next) if (ent->addend == rel->r_addend + && ent->owner == input_bfd && ent->tls_type == tls_type) break; if (ent == NULL) @@ -7633,6 +7889,10 @@ ppc64_elf_relocate_section (output_bfd, offp = &ent->got.offset; } + got = ppc64_elf_tdata (input_bfd)->got; + if (got == NULL) + abort (); + /* The offset must always be a multiple of 8. We use the least significant bit to record whether we have already processed this entry. */ @@ -7644,27 +7904,31 @@ ppc64_elf_relocate_section (output_bfd, /* Generate relocs for the dynamic linker, except in the case of TLSLD where we'll use one entry per module. */ + asection *relgot = ppc64_elf_tdata (input_bfd)->relgot; + *offp = off | 1; if ((info->shared || indx != 0) && (h == NULL || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT || h->root.type != bfd_link_hash_undefweak)) { - outrel.r_offset = (htab->sgot->output_section->vma - + htab->sgot->output_offset + outrel.r_offset = (got->output_section->vma + + got->output_offset + off); + outrel.r_addend = rel->r_addend; if (tls_type & (TLS_LD | TLS_GD)) { outrel.r_addend = 0; outrel.r_info = ELF64_R_INFO (indx, R_PPC64_DTPMOD64); if (tls_type == (TLS_TLS | TLS_GD)) { - loc = htab->srelgot->contents; - loc += (htab->srelgot->reloc_count++ + loc = relgot->contents; + loc += (relgot->reloc_count++ * sizeof (Elf64_External_Rela)); bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc); outrel.r_offset += 8; + outrel.r_addend = rel->r_addend; outrel.r_info = ELF64_R_INFO (indx, R_PPC64_DTPREL64); } @@ -7674,23 +7938,31 @@ ppc64_elf_relocate_section (output_bfd, else if (tls_type == (TLS_TLS | TLS_TPREL)) outrel.r_info = ELF64_R_INFO (indx, R_PPC64_TPREL64); else if (indx == 0) - outrel.r_info = ELF64_R_INFO (indx, R_PPC64_RELATIVE); + { + outrel.r_info = ELF64_R_INFO (indx, R_PPC64_RELATIVE); + + /* Write the .got section contents for the sake + of prelink. */ + loc = got->contents + off; + bfd_put_64 (output_bfd, outrel.r_addend + relocation, + loc); + } else outrel.r_info = ELF64_R_INFO (indx, R_PPC64_GLOB_DAT); - outrel.r_addend = rel->r_addend; - if (indx == 0) + + if (indx == 0 && tls_type != (TLS_TLS | TLS_LD)) { outrel.r_addend += relocation; if (tls_type & (TLS_GD | TLS_DTPREL | TLS_TPREL)) outrel.r_addend -= htab->tls_sec->vma; } - loc = htab->srelgot->contents; - loc += (htab->srelgot->reloc_count++ + loc = relgot->contents; + loc += (relgot->reloc_count++ * sizeof (Elf64_External_Rela)); bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc); } - /* Init the .got section contents if we're not + /* Init the .got section contents here if we're not emitting a reloc. */ else { @@ -7706,23 +7978,23 @@ ppc64_elf_relocate_section (output_bfd, if (tls_type == (TLS_TLS | TLS_GD)) { bfd_put_64 (output_bfd, relocation, - htab->sgot->contents + off + 8); + got->contents + off + 8); relocation = 1; } } bfd_put_64 (output_bfd, relocation, - htab->sgot->contents + off); + got->contents + off); } } if (off >= (bfd_vma) -2) abort (); - relocation = htab->sgot->output_offset + off; + relocation = got->output_offset + off; /* TOC base (r2) is TOC start plus 0x8000. */ - addend = - TOC_BASE_OFF; + addend = -TOC_BASE_OFF; } break; @@ -7743,21 +8015,32 @@ ppc64_elf_relocate_section (output_bfd, symbol. This happens when statically linking PIC code, or when using -Bsymbolic. Go find a match if there is a PLT entry. */ - if (htab->splt != NULL) + if (htab->plt != NULL) { struct plt_entry *ent; for (ent = h->plt.plist; ent != NULL; ent = ent->next) if (ent->addend == rel->r_addend && ent->plt.offset != (bfd_vma) -1) { - relocation = (htab->splt->output_section->vma - + htab->splt->output_offset + relocation = (htab->plt->output_section->vma + + htab->plt->output_offset + ent->plt.offset); unresolved_reloc = FALSE; } } break; + case R_PPC64_TOC: + /* Relocation value is TOC base. */ + relocation = TOCstart; + if (r_symndx == 0) + relocation += htab->stub_group[input_section->id].toc_off; + else if (sec != NULL && !unresolved_reloc) + relocation += htab->stub_group[sec->id].toc_off; + else + unresolved_reloc = TRUE; + goto dodyn2; + /* TOC16 relocs. We want the offset relative to the TOC base, which is the address of the start of the TOC plus 0x8000. The TOC consists of sections .got, .toc, .tocbss, and .plt, @@ -7768,7 +8051,7 @@ ppc64_elf_relocate_section (output_bfd, case R_PPC64_TOC16_DS: case R_PPC64_TOC16_LO_DS: case R_PPC64_TOC16_HA: - addend -= TOCstart + TOC_BASE_OFF; + addend -= TOCstart + htab->stub_group[input_section->id].toc_off; break; /* Relocate against the beginning of the section. */ @@ -7778,7 +8061,7 @@ ppc64_elf_relocate_section (output_bfd, case R_PPC64_SECTOFF_DS: case R_PPC64_SECTOFF_LO_DS: case R_PPC64_SECTOFF_HA: - if (sec != (asection *) 0) + if (sec != NULL) addend -= sec->output_section->vma; break; @@ -7864,7 +8147,7 @@ ppc64_elf_relocate_section (output_bfd, break; /* Fall thru. */ - case R_PPC64_TOC: + dodyn2: if ((input_section->flags & SEC_ALLOC) == 0) break; @@ -7876,8 +8159,7 @@ ppc64_elf_relocate_section (output_bfd, || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT || h->root.type != bfd_link_hash_undefweak) && (MUST_BE_DYN_RELOC (r_type) - || (h != NULL - && !SYMBOL_CALLS_LOCAL (info, h)))) + || !SYMBOL_CALLS_LOCAL (info, h))) || (ELIMINATE_COPY_RELOCS && !info->shared && h != NULL @@ -7890,6 +8172,7 @@ ppc64_elf_relocate_section (output_bfd, bfd_boolean skip, relocate; asection *sreloc; bfd_byte *loc; + bfd_vma out_off; /* When generating a dynamic object, these relocations are copied into the output file to be resolved at run @@ -7898,22 +8181,33 @@ ppc64_elf_relocate_section (output_bfd, skip = FALSE; relocate = FALSE; - outrel.r_offset = - _bfd_elf_section_offset (output_bfd, info, input_section, - rel->r_offset); - if (outrel.r_offset == (bfd_vma) -1) + out_off = _bfd_elf_section_offset (output_bfd, info, + input_section, rel->r_offset); + if (out_off == (bfd_vma) -1) skip = TRUE; - else if (outrel.r_offset == (bfd_vma) -2) + else if (out_off == (bfd_vma) -2) skip = TRUE, relocate = TRUE; - outrel.r_offset += (input_section->output_section->vma - + input_section->output_offset); + out_off += (input_section->output_section->vma + + input_section->output_offset); + outrel.r_offset = out_off; outrel.r_addend = rel->r_addend; + /* Optimize unaligned reloc use. */ + if ((r_type == R_PPC64_ADDR64 && (out_off & 7) != 0) + || (r_type == R_PPC64_UADDR64 && (out_off & 7) == 0)) + r_type ^= R_PPC64_ADDR64 ^ R_PPC64_UADDR64; + else if ((r_type == R_PPC64_ADDR32 && (out_off & 3) != 0) + || (r_type == R_PPC64_UADDR32 && (out_off & 3) == 0)) + r_type ^= R_PPC64_ADDR32 ^ R_PPC64_UADDR32; + else if ((r_type == R_PPC64_ADDR16 && (out_off & 1) != 0) + || (r_type == R_PPC64_UADDR16 && (out_off & 1) == 0)) + r_type ^= R_PPC64_ADDR16 ^ R_PPC64_UADDR16; + if (skip) memset (&outrel, 0, sizeof outrel); - else if (h != NULL - && !SYMBOL_REFERENCES_LOCAL (info, h) - && !is_opd) + else if (!SYMBOL_REFERENCES_LOCAL (info, h) + && !is_opd + && r_type != R_PPC64_TOC) outrel.r_info = ELF64_R_INFO (h->dynindx, r_type); else { @@ -7921,8 +8215,6 @@ ppc64_elf_relocate_section (output_bfd, or this is an opd section reloc which must point at a local function. */ outrel.r_addend += relocation; - /* ??? why? */ - relocate = TRUE; if (r_type == R_PPC64_ADDR64 || r_type == R_PPC64_TOC) { if (is_opd && h != NULL) @@ -7940,6 +8232,12 @@ ppc64_elf_relocate_section (output_bfd, unresolved_reloc = FALSE; } outrel.r_info = ELF64_R_INFO (0, R_PPC64_RELATIVE); + + /* We need to relocate .opd contents for ld.so. + Prelink also wants simple and consistent rules + for relocs. This make all RELATIVE relocs have + *r_offset equal to r_addend. */ + relocate = TRUE; } else { @@ -7981,9 +8279,29 @@ ppc64_elf_relocate_section (output_bfd, /* If this reloc is against an external symbol, it will be computed at runtime, so there's no need to do - anything now. */ + anything now. However, for the sake of prelink ensure + that the section contents are a known value. */ if (! relocate) - continue; + { + unresolved_reloc = FALSE; + /* The value chosen here is quite arbitrary as ld.so + ignores section contents except for the special + case of .opd where the contents might be accessed + before relocation. Choose zero, as that won't + cause reloc overflow. */ + relocation = 0; + addend = 0; + /* Use *r_offset == r_addend for R_PPC64_ADDR64 relocs + to improve backward compatibility with older + versions of ld. */ + if (r_type == R_PPC64_ADDR64) + addend = outrel.r_addend; + /* Adjust pc_relative relocs to have zero in *r_offset. */ + else if (ppc64_elf_howto_table[r_type]->pc_relative) + addend = (input_section->output_section->vma + + input_section->output_offset + + rel->r_offset); + } } break; @@ -8008,7 +8326,7 @@ ppc64_elf_relocate_section (output_bfd, (*_bfd_error_handler) (_("%s: relocation %s is not supported for symbol %s."), bfd_archive_filename (input_bfd), - ppc64_elf_howto_table[(int) r_type]->name, sym_name); + ppc64_elf_howto_table[r_type]->name, sym_name); bfd_set_error (bfd_error_invalid_operation); ret = FALSE; @@ -8072,12 +8390,23 @@ ppc64_elf_relocate_section (output_bfd, case R_PPC64_TPREL16_LO_DS: case R_PPC64_DTPREL16_DS: case R_PPC64_DTPREL16_LO_DS: - if (((relocation + addend) & 3) != 0) + insn = bfd_get_32 (input_bfd, contents + (rel->r_offset & ~3)); + mask = 3; + /* If this reloc is against an lq insn, then the value must be + a multiple of 16. This is somewhat of a hack, but the + "correct" way to do this by defining _DQ forms of all the + _DS relocs bloats all reloc switches in this file. It + doesn't seem to make much sense to use any of these relocs + in data, so testing the insn should be safe. */ + if ((insn & (0x3f << 26)) == (56 << 26)) + mask = 15; + if (((relocation + addend) & mask) != 0) { (*_bfd_error_handler) - (_("%s: error: relocation %s not a multiple of 4"), + (_("%s: error: relocation %s not a multiple of %d"), bfd_archive_filename (input_bfd), - ppc64_elf_howto_table[(int) r_type]->name); + ppc64_elf_howto_table[r_type]->name, + mask + 1); bfd_set_error (bfd_error_bad_value); ret = FALSE; continue; @@ -8094,12 +8423,18 @@ ppc64_elf_relocate_section (output_bfd, max_br_offset = 1 << 25; branch_check: - /* If the branch is out of reach, then redirect the - call to the local stub for this function. */ + /* If the branch is out of reach or the TOC register needs + adjusting, then redirect the call to the local stub for + this function. */ from = (rel->r_offset + input_section->output_offset + input_section->output_section->vma); - if (relocation + addend - from + max_br_offset >= 2 * max_br_offset + if ((relocation + addend - from + max_br_offset >= 2 * max_br_offset + || (sec != NULL + && sec->output_section != NULL + && sec->id <= htab->top_id + && (htab->stub_group[sec->id].toc_off + != htab->stub_group[input_section->id].toc_off))) && (stub_entry = ppc_get_stub_entry (input_section, sec, h, rel, htab)) != NULL) { @@ -8148,7 +8483,7 @@ ppc64_elf_relocate_section (output_bfd, continue; if (h != NULL && h->root.type == bfd_link_hash_undefweak - && ppc64_elf_howto_table[(int) r_type]->pc_relative) + && ppc64_elf_howto_table[r_type]->pc_relative) { /* Assume this is a call protected by other code that detects the symbol is undefined. If this is the case, @@ -8160,7 +8495,7 @@ ppc64_elf_relocate_section (output_bfd, } if (!((*info->callbacks->reloc_overflow) - (info, sym_name, ppc64_elf_howto_table[(int) r_type]->name, + (info, sym_name, ppc64_elf_howto_table[r_type]->name, rel->r_addend, input_bfd, input_section, rel->r_offset))) return FALSE; } @@ -8171,7 +8506,7 @@ ppc64_elf_relocate_section (output_bfd, bfd_archive_filename (input_bfd), bfd_get_section_name (input_bfd, input_section), (long) rel->r_offset, - ppc64_elf_howto_table[(int) r_type]->name, + ppc64_elf_howto_table[r_type]->name, sym_name, (int) r); ret = FALSE; @@ -8186,11 +8521,10 @@ ppc64_elf_relocate_section (output_bfd, dynamic sections here. */ static bfd_boolean -ppc64_elf_finish_dynamic_symbol (output_bfd, info, h, sym) - bfd *output_bfd; - struct bfd_link_info *info; - struct elf_link_hash_entry *h; - Elf_Internal_Sym *sym; +ppc64_elf_finish_dynamic_symbol (bfd *output_bfd, + struct bfd_link_info *info, + struct elf_link_hash_entry *h, + Elf_Internal_Sym *sym) { struct ppc_link_hash_table *htab; bfd *dynobj; @@ -8210,20 +8544,20 @@ ppc64_elf_finish_dynamic_symbol (output_ /* This symbol has an entry in the procedure linkage table. Set it up. */ - if (htab->splt == NULL - || htab->srelplt == NULL - || htab->sglink == NULL) + if (htab->plt == NULL + || htab->relplt == NULL + || htab->glink == NULL) abort (); /* Create a JMP_SLOT reloc to inform the dynamic linker to fill in the PLT entry. */ - rela.r_offset = (htab->splt->output_section->vma - + htab->splt->output_offset + rela.r_offset = (htab->plt->output_section->vma + + htab->plt->output_offset + ent->plt.offset); rela.r_info = ELF64_R_INFO (h->dynindx, R_PPC64_JMP_SLOT); rela.r_addend = ent->addend; - loc = htab->srelplt->contents; + loc = htab->relplt->contents; loc += ((ent->plt.offset - PLT_INITIAL_ENTRY_SIZE) / PLT_ENTRY_SIZE * sizeof (Elf64_External_Rela)); bfd_elf64_swap_reloca_out (output_bfd, &rela, loc); @@ -8240,7 +8574,7 @@ ppc64_elf_finish_dynamic_symbol (output_ if (h->dynindx == -1 || (h->root.type != bfd_link_hash_defined && h->root.type != bfd_link_hash_defweak) - || htab->srelbss == NULL) + || htab->relbss == NULL) abort (); rela.r_offset = (h->root.u.def.value @@ -8248,8 +8582,8 @@ ppc64_elf_finish_dynamic_symbol (output_ + h->root.u.def.section->output_offset); rela.r_info = ELF64_R_INFO (h->dynindx, R_PPC64_COPY); rela.r_addend = 0; - loc = htab->srelbss->contents; - loc += htab->srelbss->reloc_count++ * sizeof (Elf64_External_Rela); + loc = htab->relbss->contents; + loc += htab->relbss->reloc_count++ * sizeof (Elf64_External_Rela); bfd_elf64_swap_reloca_out (output_bfd, &rela, loc); } @@ -8264,12 +8598,11 @@ ppc64_elf_finish_dynamic_symbol (output_ dynamic linker, before writing them out. */ static enum elf_reloc_type_class -ppc64_elf_reloc_type_class (rela) - const Elf_Internal_Rela *rela; +ppc64_elf_reloc_type_class (const Elf_Internal_Rela *rela) { enum elf_ppc64_reloc_type r_type; - r_type = (enum elf_ppc64_reloc_type) ELF64_R_TYPE (rela->r_info); + r_type = ELF64_R_TYPE (rela->r_info); switch (r_type) { case R_PPC64_RELATIVE: @@ -8286,9 +8619,8 @@ ppc64_elf_reloc_type_class (rela) /* Finish up the dynamic sections. */ static bfd_boolean -ppc64_elf_finish_dynamic_sections (output_bfd, info) - bfd *output_bfd; - struct bfd_link_info *info; +ppc64_elf_finish_dynamic_sections (bfd *output_bfd, + struct bfd_link_info *info) { struct ppc_link_hash_table *htab; bfd *dynobj; @@ -8302,7 +8634,7 @@ ppc64_elf_finish_dynamic_sections (outpu { Elf64_External_Dyn *dyncon, *dynconend; - if (sdyn == NULL || htab->sgot == NULL) + if (sdyn == NULL || htab->got == NULL) abort (); dyncon = (Elf64_External_Dyn *) sdyn->contents; @@ -8320,8 +8652,13 @@ ppc64_elf_finish_dynamic_sections (outpu continue; case DT_PPC64_GLINK: - s = htab->sglink; + s = htab->glink; dyn.d_un.d_ptr = s->output_section->vma + s->output_offset; + /* We stupidly defined DT_PPC64_GLINK to be the start + of glink rather than the first entry point, which is + what ld.so needs, and now have a bigger stub to + support automatic multiple TOCs. */ + dyn.d_un.d_ptr += GLINK_CALL_STUB_SIZE - 32; break; case DT_PPC64_OPD: @@ -8339,23 +8676,23 @@ ppc64_elf_finish_dynamic_sections (outpu break; case DT_PLTGOT: - s = htab->splt; + s = htab->plt; dyn.d_un.d_ptr = s->output_section->vma + s->output_offset; break; case DT_JMPREL: - s = htab->srelplt; + s = htab->relplt; dyn.d_un.d_ptr = s->output_section->vma + s->output_offset; break; case DT_PLTRELSZ: - dyn.d_un.d_val = htab->srelplt->_raw_size; + dyn.d_un.d_val = htab->relplt->_raw_size; break; case DT_RELASZ: /* Don't count procedure linkage table relocs in the overall reloc count. */ - s = htab->srelplt; + s = htab->relplt; if (s == NULL) continue; dyn.d_un.d_val -= s->_raw_size; @@ -8365,7 +8702,7 @@ ppc64_elf_finish_dynamic_sections (outpu /* We may not be using the standard ELF linker script. If .rela.plt is the first .rela section, we adjust DT_RELA to not include it. */ - s = htab->srelplt; + s = htab->relplt; if (s == NULL) continue; if (dyn.d_un.d_ptr != s->output_section->vma + s->output_offset) @@ -8378,75 +8715,49 @@ ppc64_elf_finish_dynamic_sections (outpu } } - if (htab->sgot != NULL && htab->sgot->_raw_size != 0) + if (htab->got != NULL && htab->got->_raw_size != 0) { /* Fill in the first entry in the global offset table. We use it to hold the link-time TOCbase. */ bfd_put_64 (output_bfd, elf_gp (output_bfd) + TOC_BASE_OFF, - htab->sgot->contents); + htab->got->contents); /* Set .got entry size. */ - elf_section_data (htab->sgot->output_section)->this_hdr.sh_entsize = 8; + elf_section_data (htab->got->output_section)->this_hdr.sh_entsize = 8; } - if (htab->splt != NULL && htab->splt->_raw_size != 0) + if (htab->plt != NULL && htab->plt->_raw_size != 0) { /* Set .plt entry size. */ - elf_section_data (htab->splt->output_section)->this_hdr.sh_entsize + elf_section_data (htab->plt->output_section)->this_hdr.sh_entsize = PLT_ENTRY_SIZE; } + /* We need to handle writing out multiple GOT sections ourselves, + since we didn't add them to DYNOBJ. */ + while ((dynobj = dynobj->link_next) != NULL) + { + asection *s; + s = ppc64_elf_tdata (dynobj)->got; + if (s != NULL + && s->_raw_size != 0 + && s->output_section != bfd_abs_section_ptr + && !bfd_set_section_contents (output_bfd, s->output_section, + s->contents, s->output_offset, + s->_raw_size)) + return FALSE; + s = ppc64_elf_tdata (dynobj)->relgot; + if (s != NULL + && s->_raw_size != 0 + && s->output_section != bfd_abs_section_ptr + && !bfd_set_section_contents (output_bfd, s->output_section, + s->contents, s->output_offset, + s->_raw_size)) + return FALSE; + } + return TRUE; } -#define TARGET_LITTLE_SYM bfd_elf64_powerpcle_vec -#define TARGET_LITTLE_NAME "elf64-powerpcle" -#define TARGET_BIG_SYM bfd_elf64_powerpc_vec -#define TARGET_BIG_NAME "elf64-powerpc" -#define ELF_ARCH bfd_arch_powerpc -#define ELF_MACHINE_CODE EM_PPC64 -#define ELF_MAXPAGESIZE 0x10000 -#define elf_info_to_howto ppc64_elf_info_to_howto - -#ifdef EM_CYGNUS_POWERPC -#define ELF_MACHINE_ALT1 EM_CYGNUS_POWERPC -#endif - -#ifdef EM_PPC_OLD -#define ELF_MACHINE_ALT2 EM_PPC_OLD -#endif - -#define elf_backend_want_got_sym 0 -#define elf_backend_want_plt_sym 0 -#define elf_backend_plt_alignment 3 -#define elf_backend_plt_not_loaded 1 -#define elf_backend_got_symbol_offset 0 -#define elf_backend_got_header_size 8 -#define elf_backend_plt_header_size PLT_INITIAL_ENTRY_SIZE -#define elf_backend_can_gc_sections 1 -#define elf_backend_can_refcount 1 -#define elf_backend_rela_normal 1 - -#define bfd_elf64_bfd_reloc_type_lookup ppc64_elf_reloc_type_lookup -#define bfd_elf64_bfd_merge_private_bfd_data ppc64_elf_merge_private_bfd_data -#define bfd_elf64_new_section_hook ppc64_elf_new_section_hook -#define bfd_elf64_bfd_link_hash_table_create ppc64_elf_link_hash_table_create -#define bfd_elf64_bfd_link_hash_table_free ppc64_elf_link_hash_table_free - -#define elf_backend_object_p ppc64_elf_object_p -#define elf_backend_create_dynamic_sections ppc64_elf_create_dynamic_sections -#define elf_backend_copy_indirect_symbol ppc64_elf_copy_indirect_symbol -#define elf_backend_check_relocs ppc64_elf_check_relocs -#define elf_backend_gc_mark_hook ppc64_elf_gc_mark_hook -#define elf_backend_gc_sweep_hook ppc64_elf_gc_sweep_hook -#define elf_backend_adjust_dynamic_symbol ppc64_elf_adjust_dynamic_symbol -#define elf_backend_hide_symbol ppc64_elf_hide_symbol -#define elf_backend_always_size_sections ppc64_elf_func_desc_adjust -#define elf_backend_size_dynamic_sections ppc64_elf_size_dynamic_sections -#define elf_backend_relocate_section ppc64_elf_relocate_section -#define elf_backend_finish_dynamic_symbol ppc64_elf_finish_dynamic_symbol -#define elf_backend_reloc_type_class ppc64_elf_reloc_type_class -#define elf_backend_finish_dynamic_sections ppc64_elf_finish_dynamic_sections - #include "elf64-target.h" diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf64-ppc.h binutils-2.14.90.0.5/bfd/elf64-ppc.h --- binutils-2.14.90.0.4.1/bfd/elf64-ppc.h 2003-03-19 09:19:13.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/elf64-ppc.h 2003-07-23 08:08:09.000000000 -0700 @@ -17,22 +17,28 @@ You should have received a copy of the G along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +void ppc64_elf_init_stub_bfd + (bfd *, struct bfd_link_info *); bfd_boolean ppc64_elf_mark_entry_syms - PARAMS ((struct bfd_link_info *)); + (struct bfd_link_info *); bfd_boolean ppc64_elf_edit_opd - PARAMS ((bfd *, struct bfd_link_info *)); + (bfd *, struct bfd_link_info *); bfd_boolean ppc64_elf_tls_setup - PARAMS ((bfd *, struct bfd_link_info *)); + (bfd *, struct bfd_link_info *); bfd_boolean ppc64_elf_tls_optimize - PARAMS ((bfd *, struct bfd_link_info *)); + (bfd *, struct bfd_link_info *); bfd_vma ppc64_elf_toc - PARAMS ((bfd *)); + (bfd *); int ppc64_elf_setup_section_lists - PARAMS ((bfd *, struct bfd_link_info *)); -void ppc64_elf_next_input_section - PARAMS ((struct bfd_link_info *, asection *)); + (bfd *, struct bfd_link_info *); +void ppc64_elf_next_toc_section + (struct bfd_link_info *, asection *); +void ppc64_elf_reinit_toc + (bfd *, struct bfd_link_info *); +bfd_boolean ppc64_elf_next_input_section + (struct bfd_link_info *, asection *); bfd_boolean ppc64_elf_size_stubs - PARAMS ((bfd *, bfd *, struct bfd_link_info *, bfd_signed_vma, - asection *(*) (const char *, asection *), void (*) (void))); + (bfd *, struct bfd_link_info *, bfd_signed_vma, + asection *(*) (const char *, asection *), void (*) (void)); bfd_boolean ppc64_elf_build_stubs - PARAMS ((struct bfd_link_info *)); + (bfd_boolean, struct bfd_link_info *, char **); diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf64-s390.c binutils-2.14.90.0.5/bfd/elf64-s390.c --- binutils-2.14.90.0.4.1/bfd/elf64-s390.c 2003-05-15 13:42:25.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/elf64-s390.c 2003-07-23 08:08:09.000000000 -0700 @@ -86,6 +86,8 @@ static bfd_vma tpoff PARAMS ((struct bfd_link_info *, bfd_vma)); static void invalid_tls_insn PARAMS ((bfd *, asection *, Elf_Internal_Rela *)); +static bfd_reloc_status_type s390_elf_ldisp_reloc + PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); #include "elf/s390.h" @@ -120,7 +122,7 @@ static reloc_howto_type elf_howto_table[ bfd_elf_generic_reloc, "R_390_32", FALSE, 0,0xffffffff, FALSE), HOWTO(R_390_PC32, 0, 2, 32, TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PC32", FALSE, 0,0xffffffff, TRUE), - HOWTO(R_390_GOT12, 0, 1, 12, FALSE, 0, complain_overflow_dont, + HOWTO(R_390_GOT12, 0, 1, 12, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GOT12", FALSE, 0,0x00000fff, FALSE), HOWTO(R_390_GOT32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GOT32", FALSE, 0,0xffffffff, FALSE), @@ -216,6 +218,14 @@ static reloc_howto_type elf_howto_table[ bfd_elf_generic_reloc, "R_390_TLS_DTPOFF", FALSE, 0, MINUS_ONE, FALSE), HOWTO(R_390_TLS_TPOFF, 0, 4, 64, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_TLS_TPOFF", FALSE, 0, MINUS_ONE, FALSE), + HOWTO(R_390_20, 0, 2, 20, FALSE, 8, complain_overflow_dont, + s390_elf_ldisp_reloc, "R_390_20", FALSE, 0,0x0fffff00, FALSE), + HOWTO(R_390_GOT20, 0, 2, 20, FALSE, 8, complain_overflow_dont, + s390_elf_ldisp_reloc, "R_390_GOT20", FALSE, 0,0x0fffff00, FALSE), + HOWTO(R_390_GOTPLT20, 0, 2, 20, FALSE, 8, complain_overflow_dont, + s390_elf_ldisp_reloc, "R_390_GOTPLT20", FALSE, 0,0x0fffff00, FALSE), + HOWTO(R_390_TLS_GOTIE20, 0, 2, 20, FALSE, 8, complain_overflow_dont, + s390_elf_ldisp_reloc, "R_390_TLS_GOTIE20", FALSE, 0,0x0fffff00, FALSE), }; /* GNU extension to record C++ vtable hierarchy. */ @@ -335,6 +345,14 @@ elf_s390_reloc_type_lookup (abfd, code) return &elf_howto_table[(int) R_390_TLS_DTPOFF]; case BFD_RELOC_390_TLS_TPOFF: return &elf_howto_table[(int) R_390_TLS_TPOFF]; + case BFD_RELOC_390_20: + return &elf_howto_table[(int) R_390_20]; + case BFD_RELOC_390_GOT20: + return &elf_howto_table[(int) R_390_GOT20]; + case BFD_RELOC_390_GOTPLT20: + return &elf_howto_table[(int) R_390_GOTPLT20]; + case BFD_RELOC_390_TLS_GOTIE20: + return &elf_howto_table[(int) R_390_TLS_GOTIE20]; case BFD_RELOC_VTABLE_INHERIT: return &elf64_s390_vtinherit_howto; case BFD_RELOC_VTABLE_ENTRY: @@ -387,6 +405,58 @@ s390_tls_reloc (abfd, reloc_entry, symbo return bfd_reloc_ok; } +/* Handle the large displacement relocs. */ +static bfd_reloc_status_type +s390_elf_ldisp_reloc (abfd, reloc_entry, symbol, data, input_section, + output_bfd, error_message) + bfd *abfd; + arelent *reloc_entry; + asymbol *symbol; + PTR data; + asection *input_section; + bfd *output_bfd; + char **error_message ATTRIBUTE_UNUSED; +{ + reloc_howto_type *howto = reloc_entry->howto; + bfd_vma relocation; + bfd_vma insn; + + if (output_bfd != (bfd *) NULL + && (symbol->flags & BSF_SECTION_SYM) == 0 + && (! howto->partial_inplace + || reloc_entry->addend == 0)) + { + reloc_entry->address += input_section->output_offset; + return bfd_reloc_ok; + } + if (output_bfd != NULL) + return bfd_reloc_continue; + + if (reloc_entry->address > input_section->_cooked_size) + return bfd_reloc_outofrange; + + relocation = (symbol->value + + symbol->section->output_section->vma + + symbol->section->output_offset); + relocation += reloc_entry->addend; + if (howto->pc_relative) + { + relocation -= (input_section->output_section->vma + + input_section->output_offset); + relocation -= reloc_entry->address; + } + + insn = bfd_get_32 (abfd, (bfd_byte *) data + reloc_entry->address); + insn |= (relocation & 0xfff) << 16 | (relocation & 0xff000) >> 4; + bfd_put_32 (abfd, insn, (bfd_byte *) data + reloc_entry->address); + + if ((bfd_signed_vma) relocation < - 0x80000 + || (bfd_signed_vma) relocation > 0x7ffff) + return bfd_reloc_overflow; + else + return bfd_reloc_ok; +} + static bfd_boolean elf_s390_is_local_label_name (abfd, name) bfd *abfd; @@ -849,7 +919,7 @@ elf_s390_check_relocs (abfd, info, sec, bfd_signed_vma *local_got_refcounts; int tls_type, old_tls_type; - if (info->relocateable) + if (info->relocatable) return TRUE; htab = elf_s390_hash_table (info); @@ -890,16 +960,19 @@ elf_s390_check_relocs (abfd, info, sec, { case R_390_GOT12: case R_390_GOT16: + case R_390_GOT20: case R_390_GOT32: case R_390_GOT64: case R_390_GOTENT: case R_390_GOTPLT12: case R_390_GOTPLT16: + case R_390_GOTPLT20: case R_390_GOTPLT32: case R_390_GOTPLT64: case R_390_GOTPLTENT: case R_390_TLS_GD64: case R_390_TLS_GOTIE12: + case R_390_TLS_GOTIE20: case R_390_TLS_GOTIE64: case R_390_TLS_IEENT: case R_390_TLS_IE64: @@ -969,6 +1042,7 @@ elf_s390_check_relocs (abfd, info, sec, case R_390_GOTPLT12: case R_390_GOTPLT16: + case R_390_GOTPLT20: case R_390_GOTPLT32: case R_390_GOTPLT64: case R_390_GOTPLTENT: @@ -996,6 +1070,7 @@ elf_s390_check_relocs (abfd, info, sec, case R_390_TLS_IE64: case R_390_TLS_GOTIE12: + case R_390_TLS_GOTIE20: case R_390_TLS_GOTIE64: case R_390_TLS_IEENT: if (info->shared) @@ -1004,6 +1079,7 @@ elf_s390_check_relocs (abfd, info, sec, case R_390_GOT12: case R_390_GOT16: + case R_390_GOT20: case R_390_GOT32: case R_390_GOT64: case R_390_GOTENT: @@ -1014,6 +1090,7 @@ elf_s390_check_relocs (abfd, info, sec, default: case R_390_GOT12: case R_390_GOT16: + case R_390_GOT20: case R_390_GOT32: case R_390_GOTENT: tls_type = GOT_NORMAL; @@ -1026,6 +1103,7 @@ elf_s390_check_relocs (abfd, info, sec, tls_type = GOT_TLS_IE; break; case R_390_TLS_GOTIE12: + case R_390_TLS_GOTIE20: case R_390_TLS_IEENT: tls_type = GOT_TLS_IE_NLT; break; @@ -1355,10 +1433,12 @@ elf_s390_gc_sweep_hook (abfd, info, sec, case R_390_TLS_GD64: case R_390_TLS_IE64: case R_390_TLS_GOTIE12: + case R_390_TLS_GOTIE20: case R_390_TLS_GOTIE64: case R_390_TLS_IEENT: case R_390_GOT12: case R_390_GOT16: + case R_390_GOT20: case R_390_GOT32: case R_390_GOT64: case R_390_GOTOFF16: @@ -1382,6 +1462,7 @@ elf_s390_gc_sweep_hook (abfd, info, sec, case R_390_8: case R_390_12: case R_390_16: + case R_390_20: case R_390_32: case R_390_64: case R_390_PC16: @@ -1409,6 +1490,7 @@ elf_s390_gc_sweep_hook (abfd, info, sec, case R_390_GOTPLT12: case R_390_GOTPLT16: + case R_390_GOTPLT20: case R_390_GOTPLT32: case R_390_GOTPLT64: case R_390_GOTPLTENT: @@ -1898,7 +1980,7 @@ elf_s390_size_dynamic_sections (output_b if (htab->elf.dynamic_sections_created) { /* Set the contents of the .interp section to the interpreter. */ - if (! info->shared) + if (info->executable) { s = bfd_get_section_by_name (dynobj, ".interp"); if (s == NULL) @@ -2056,7 +2138,7 @@ elf_s390_size_dynamic_sections (output_b #define add_dynamic_entry(TAG, VAL) \ bfd_elf64_add_dynamic_entry (info, (bfd_vma) (TAG), (bfd_vma) (VAL)) - if (! info->shared) + if (info->executable) { if (!add_dynamic_entry (DT_DEBUG, 0)) return FALSE; @@ -2169,7 +2251,7 @@ elf_s390_relocate_section (output_bfd, i Elf_Internal_Rela *rel; Elf_Internal_Rela *relend; - if (info->relocateable) + if (info->relocatable) return TRUE; htab = elf_s390_hash_table (info); @@ -2244,7 +2326,7 @@ elf_s390_relocate_section (output_bfd, i } else if (h->root.type == bfd_link_hash_undefweak) relocation = 0; - else if (info->shared + else if (!info->executable && !info->no_undefined && ELF_ST_VISIBILITY (h->other) == STV_DEFAULT) relocation = 0; @@ -2264,6 +2346,7 @@ elf_s390_relocate_section (output_bfd, i { case R_390_GOTPLT12: case R_390_GOTPLT16: + case R_390_GOTPLT20: case R_390_GOTPLT32: case R_390_GOTPLT64: case R_390_GOTPLTENT: @@ -2298,6 +2381,7 @@ elf_s390_relocate_section (output_bfd, i case R_390_GOT12: case R_390_GOT16: + case R_390_GOT20: case R_390_GOT32: case R_390_GOT64: case R_390_GOTENT: @@ -2713,6 +2797,7 @@ elf_s390_relocate_section (output_bfd, i break; case R_390_TLS_GOTIE12: + case R_390_TLS_GOTIE20: case R_390_TLS_IEENT: if (h == NULL) { @@ -2936,7 +3021,19 @@ elf_s390_relocate_section (output_bfd, i (long) rel->r_offset, h->root.root.string); - r = _bfd_final_link_relocate (howto, input_bfd, input_section, + if (r_type == R_390_20 + || r_type == R_390_GOT20 + || r_type == R_390_GOTPLT20 + || r_type == R_390_TLS_GOTIE20) + { + relocation += rel->r_addend; + relocation = (relocation&0xfff) << 8 | (relocation&0xff000) >> 12; + r = _bfd_final_link_relocate (howto, input_bfd, input_section, + contents, rel->r_offset, + relocation, 0); + } + else + r = _bfd_final_link_relocate (howto, input_bfd, input_section, contents, rel->r_offset, relocation, rel->r_addend); diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf64-sh64.c binutils-2.14.90.0.5/bfd/elf64-sh64.c --- binutils-2.14.90.0.4.1/bfd/elf64-sh64.c 2003-05-15 13:42:25.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/elf64-sh64.c 2003-07-23 08:08:09.000000000 -0700 @@ -1585,9 +1585,9 @@ sh_elf64_relocate_section (output_bfd, i _("Unexpected STO_SH5_ISA32 on local symbol is not handled"), input_bfd, input_section, rel->r_offset)); - if (info->relocateable) + if (info->relocatable) { - /* This is a relocateable link. We don't have to change + /* This is a relocatable link. We don't have to change anything, unless the reloc is against a section symbol, in which case we have to adjust according to where the section symbol winds up in the output section. */ @@ -1631,8 +1631,8 @@ sh_elf64_relocate_section (output_bfd, i { /* Section symbols are never (?) placed in the hash table, so we can just ignore hash relocations when creating a - relocateable object file. */ - if (info->relocateable) + relocatable object file. */ + if (info->relocatable) continue; h = sym_hashes[r_symndx - symtab_hdr->sh_info]; @@ -2178,12 +2178,12 @@ sh_elf64_relocate_section (output_bfd, i static bfd_byte * sh_elf64_get_relocated_section_contents (output_bfd, link_info, link_order, - data, relocateable, symbols) + data, relocatable, symbols) bfd *output_bfd; struct bfd_link_info *link_info; struct bfd_link_order *link_order; bfd_byte *data; - bfd_boolean relocateable; + bfd_boolean relocatable; asymbol **symbols; { Elf_Internal_Shdr *symtab_hdr; @@ -2195,11 +2195,11 @@ sh_elf64_get_relocated_section_contents /* We only need to handle the case of relaxing, or of having a particular set of section contents, specially. */ - if (relocateable + if (relocatable || elf_section_data (input_section)->this_hdr.contents == NULL) return bfd_generic_get_relocated_section_contents (output_bfd, link_info, link_order, data, - relocateable, + relocatable, symbols); symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr; @@ -2527,7 +2527,7 @@ sh_elf64_check_relocs (abfd, info, sec, srelgot = NULL; sreloc = NULL; - if (info->relocateable) + if (info->relocatable) return TRUE; symtab_hdr = &elf_tdata (abfd)->symtab_hdr; @@ -2932,11 +2932,11 @@ sh64_elf64_add_symbol_hook (abfd, info, { struct elf_link_hash_entry *h; - /* For relocateable links, we register the DataLabel sym in its own + /* For relocatable links, we register the DataLabel sym in its own right, and tweak the name when it's output. Otherwise, we make an indirect symbol of it. */ flagword flags - = info->relocateable || info->emitrelocations + = info->relocatable || info->emitrelocations ? BSF_GLOBAL : BSF_GLOBAL | BSF_INDIRECT; char *dl_name @@ -2980,9 +2980,9 @@ sh64_elf64_add_symbol_hook (abfd, info, free (dl_name); if (h->type != STT_DATALABEL - || ((info->relocateable || info->emitrelocations) + || ((info->relocatable || info->emitrelocations) && h->root.type != bfd_link_hash_undefined) - || (! info->relocateable && !info->emitrelocations + || (! info->relocatable && !info->emitrelocations && h->root.type != bfd_link_hash_indirect)) { /* Make sure we don't get confused on invalid input. */ @@ -3027,7 +3027,7 @@ sh64_elf64_link_output_symbol_hook (abfd { char *name = (char *) cname; - if (info->relocateable || info->emitrelocations) + if (info->relocatable || info->emitrelocations) { if (ELF_ST_TYPE (sym->st_info) == STT_DATALABEL) name[strlen (name) - strlen (DATALABEL_SUFFIX)] = 0; @@ -3643,7 +3643,7 @@ sh64_elf64_size_dynamic_sections (output if (elf_hash_table (info)->dynamic_sections_created) { /* Set the contents of the .interp section to the interpreter. */ - if (! info->shared) + if (info->executable) { s = bfd_get_section_by_name (dynobj, ".interp"); BFD_ASSERT (s != NULL); @@ -3777,7 +3777,7 @@ sh64_elf64_size_dynamic_sections (output must add the entries now so that we get the correct size for the .dynamic section. The DT_DEBUG entry is filled in by the dynamic linker and used by the debugger. */ - if (! info->shared) + if (info->executable) { if (! bfd_elf64_add_dynamic_entry (info, DT_DEBUG, 0)) return FALSE; diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf64-sparc.c binutils-2.14.90.0.5/bfd/elf64-sparc.c --- binutils-2.14.90.0.4.1/bfd/elf64-sparc.c 2003-05-15 13:42:25.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/elf64-sparc.c 2003-07-23 08:08:09.000000000 -0700 @@ -1101,7 +1101,7 @@ sparc64_elf_check_relocs (abfd, info, se asection *srelgot; asection *sreloc; - if (info->relocateable || !(sec->flags & SEC_ALLOC)) + if (info->relocatable || !(sec->flags & SEC_ALLOC)) return TRUE; dynobj = elf_hash_table (info)->dynobj; @@ -1781,7 +1781,7 @@ sparc64_elf_size_dynamic_sections (outpu if (elf_hash_table (info)->dynamic_sections_created) { /* Set the contents of the .interp section to the interpreter. */ - if (! info->shared) + if (info->executable) { s = bfd_get_section_by_name (dynobj, ".interp"); BFD_ASSERT (s != NULL); @@ -1880,7 +1880,7 @@ sparc64_elf_size_dynamic_sections (outpu struct elf_strtab_hash *dynstr; struct elf_link_hash_table *eht = elf_hash_table (info); - if (!info->shared) + if (info->executable) { if (!add_dynamic_entry (DT_DEBUG, 0)) return FALSE; @@ -2022,7 +2022,7 @@ sparc64_elf_relocate_section (output_bfd Elf_Internal_Rela *rel; Elf_Internal_Rela *relend; - if (info->relocateable) + if (info->relocatable) return TRUE; dynobj = elf_hash_table (info)->dynobj; @@ -2097,7 +2097,7 @@ sparc64_elf_relocate_section (output_bfd } else if (h->root.type == bfd_link_hash_undefweak) ; - else if (info->shared + else if (!info->executable && !info->no_undefined && ELF_ST_VISIBILITY (h->other) == STV_DEFAULT) ; @@ -2684,7 +2684,7 @@ sparc64_elf_relocate_section (output_bfd overflows. We don't, but this breaks stabs debugging info, whose relocations are only 32-bits wide. Ignore overflows for discarded entries. */ - if (r_type == R_SPARC_32 + if ((r_type == R_SPARC_32 || r_type == R_SPARC_DISP32) && _bfd_elf_section_offset (output_bfd, info, input_section, rel->r_offset) == (bfd_vma) -1) break; diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elf64-x86-64.c binutils-2.14.90.0.5/bfd/elf64-x86-64.c --- binutils-2.14.90.0.4.1/bfd/elf64-x86-64.c 2003-05-05 14:46:47.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/elf64-x86-64.c 2003-07-23 08:08:09.000000000 -0700 @@ -150,72 +150,14 @@ static const struct elf_reloc_map x86_64 { BFD_RELOC_VTABLE_ENTRY, R_X86_64_GNU_VTENTRY, }, }; -static reloc_howto_type *elf64_x86_64_reloc_type_lookup - PARAMS ((bfd *, bfd_reloc_code_real_type)); -static void elf64_x86_64_info_to_howto - PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); -static bfd_boolean elf64_x86_64_grok_prstatus - PARAMS ((bfd *, Elf_Internal_Note *)); -static bfd_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 bfd_boolean elf64_x86_64_mkobject - PARAMS((bfd *)); -static bfd_boolean elf64_x86_64_elf_object_p PARAMS ((bfd *abfd)); -static bfd_boolean create_got_section - PARAMS((bfd *, struct bfd_link_info *)); -static bfd_boolean elf64_x86_64_create_dynamic_sections - PARAMS((bfd *, struct bfd_link_info *)); -static void elf64_x86_64_copy_indirect_symbol - PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *, - struct elf_link_hash_entry *)); -static bfd_boolean elf64_x86_64_check_relocs - PARAMS ((bfd *, struct bfd_link_info *, asection *sec, - const Elf_Internal_Rela *)); -static asection *elf64_x86_64_gc_mark_hook - PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *, - struct elf_link_hash_entry *, Elf_Internal_Sym *)); - -static bfd_boolean elf64_x86_64_gc_sweep_hook - PARAMS ((bfd *, struct bfd_link_info *, asection *, - const Elf_Internal_Rela *)); - -static struct bfd_hash_entry *link_hash_newfunc - PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); -static bfd_boolean elf64_x86_64_adjust_dynamic_symbol - PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *)); - -static bfd_boolean allocate_dynrelocs - PARAMS ((struct elf_link_hash_entry *, PTR)); -static bfd_boolean readonly_dynrelocs - PARAMS ((struct elf_link_hash_entry *, PTR)); -static bfd_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 bfd_boolean elf64_x86_64_relocate_section - PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, - Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)); -static bfd_boolean elf64_x86_64_finish_dynamic_symbol - PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *, - Elf_Internal_Sym *sym)); -static bfd_boolean elf64_x86_64_finish_dynamic_sections - PARAMS ((bfd *, struct bfd_link_info *)); -static enum elf_reloc_type_class elf64_x86_64_reloc_type_class - PARAMS ((const Elf_Internal_Rela *)); /* Given a BFD reloc type, return a HOWTO structure. */ static reloc_howto_type * -elf64_x86_64_reloc_type_lookup (abfd, code) - bfd *abfd ATTRIBUTE_UNUSED; - bfd_reloc_code_real_type code; +elf64_x86_64_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED, + bfd_reloc_code_real_type code) { unsigned int i; + for (i = 0; i < sizeof (x86_64_reloc_map) / sizeof (struct elf_reloc_map); i++) { @@ -228,10 +170,8 @@ elf64_x86_64_reloc_type_lookup (abfd, co /* Given an x86_64 ELF reloc type, fill in an arelent structure. */ static void -elf64_x86_64_info_to_howto (abfd, cache_ptr, dst) - bfd *abfd ATTRIBUTE_UNUSED; - arelent *cache_ptr; - Elf_Internal_Rela *dst; +elf64_x86_64_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, arelent *cache_ptr, + Elf_Internal_Rela *dst) { unsigned r_type, i; @@ -252,9 +192,7 @@ elf64_x86_64_info_to_howto (abfd, cache_ /* Support for core dump NOTE sections. */ static bfd_boolean -elf64_x86_64_grok_prstatus (abfd, note) - bfd *abfd; - Elf_Internal_Note *note; +elf64_x86_64_grok_prstatus (bfd *abfd, Elf_Internal_Note *note) { int offset; size_t raw_size; @@ -286,9 +224,7 @@ elf64_x86_64_grok_prstatus (abfd, note) } static bfd_boolean -elf64_x86_64_grok_psinfo (abfd, note) - bfd *abfd; - Elf_Internal_Note *note; +elf64_x86_64_grok_psinfo (bfd *abfd, Elf_Internal_Note *note) { switch (note->descsz) { @@ -447,10 +383,8 @@ struct elf64_x86_64_link_hash_table /* Create an entry in an x86-64 ELF linker hash table. */ static struct bfd_hash_entry * -link_hash_newfunc (entry, table, string) - struct bfd_hash_entry *entry; - struct bfd_hash_table *table; - const char *string; +link_hash_newfunc (struct bfd_hash_entry *entry, struct bfd_hash_table *table, + const char *string) { /* Allocate the structure if it has not already been allocated by a subclass. */ @@ -479,8 +413,7 @@ link_hash_newfunc (entry, table, string) /* Create an X86-64 ELF linker hash table. */ static struct bfd_link_hash_table * -elf64_x86_64_link_hash_table_create (abfd) - bfd *abfd; +elf64_x86_64_link_hash_table_create (bfd *abfd) { struct elf64_x86_64_link_hash_table *ret; bfd_size_type amt = sizeof (struct elf64_x86_64_link_hash_table); @@ -512,9 +445,7 @@ elf64_x86_64_link_hash_table_create (abf shortcuts to them in our hash table. */ static bfd_boolean -create_got_section (dynobj, info) - bfd *dynobj; - struct bfd_link_info *info; +create_got_section (bfd *dynobj, struct bfd_link_info *info) { struct elf64_x86_64_link_hash_table *htab; @@ -543,9 +474,7 @@ create_got_section (dynobj, info) hash table. */ static bfd_boolean -elf64_x86_64_create_dynamic_sections (dynobj, info) - bfd *dynobj; - struct bfd_link_info *info; +elf64_x86_64_create_dynamic_sections (bfd *dynobj, struct bfd_link_info *info) { struct elf64_x86_64_link_hash_table *htab; @@ -572,9 +501,9 @@ 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 (bed, dir, ind) - struct elf_backend_data *bed; - struct elf_link_hash_entry *dir, *ind; +elf64_x86_64_copy_indirect_symbol (struct elf_backend_data *bed, + struct elf_link_hash_entry *dir, + struct elf_link_hash_entry *ind) { struct elf64_x86_64_link_hash_entry *edir, *eind; @@ -637,8 +566,7 @@ elf64_x86_64_copy_indirect_symbol (bed, } static bfd_boolean -elf64_x86_64_mkobject (abfd) - bfd *abfd; +elf64_x86_64_mkobject (bfd *abfd) { bfd_size_type amt = sizeof (struct elf64_x86_64_obj_tdata); abfd->tdata.any = bfd_zalloc (abfd, amt); @@ -648,8 +576,7 @@ elf64_x86_64_mkobject (abfd) } static bfd_boolean -elf64_x86_64_elf_object_p (abfd) - bfd *abfd; +elf64_x86_64_elf_object_p (bfd *abfd) { /* Allocate our special target data. */ struct elf64_x86_64_obj_tdata *new_tdata; @@ -665,10 +592,7 @@ elf64_x86_64_elf_object_p (abfd) } static int -elf64_x86_64_tls_transition (info, r_type, is_local) - struct bfd_link_info *info; - int r_type; - int is_local; +elf64_x86_64_tls_transition (struct bfd_link_info *info, int r_type, int is_local) { if (info->shared) return r_type; @@ -692,11 +616,8 @@ elf64_x86_64_tls_transition (info, r_typ linkage table, and dynamic reloc sections. */ static bfd_boolean -elf64_x86_64_check_relocs (abfd, info, sec, relocs) - bfd *abfd; - struct bfd_link_info *info; - asection *sec; - const Elf_Internal_Rela *relocs; +elf64_x86_64_check_relocs (bfd *abfd, struct bfd_link_info *info, asection *sec, + const Elf_Internal_Rela *relocs) { struct elf64_x86_64_link_hash_table *htab; Elf_Internal_Shdr *symtab_hdr; @@ -705,7 +626,7 @@ elf64_x86_64_check_relocs (abfd, info, s const Elf_Internal_Rela *rel_end; asection *sreloc; - if (info->relocateable) + if (info->relocatable) return TRUE; htab = elf64_x86_64_hash_table (info); @@ -1060,12 +981,11 @@ elf64_x86_64_check_relocs (abfd, info, s relocation. */ static asection * -elf64_x86_64_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; - Elf_Internal_Sym *sym; +elf64_x86_64_gc_mark_hook (asection *sec, + struct bfd_link_info *info ATTRIBUTE_UNUSED, + Elf_Internal_Rela *rel, + struct elf_link_hash_entry *h, + Elf_Internal_Sym *sym) { if (h != NULL) { @@ -1099,11 +1019,8 @@ elf64_x86_64_gc_mark_hook (sec, info, re /* Update the got entry reference counts for the section being removed. */ static bfd_boolean -elf64_x86_64_gc_sweep_hook (abfd, info, sec, relocs) - bfd *abfd; - struct bfd_link_info *info; - asection *sec; - const Elf_Internal_Rela *relocs; +elf64_x86_64_gc_sweep_hook (bfd *abfd, struct bfd_link_info *info, + asection *sec, const Elf_Internal_Rela *relocs) { Elf_Internal_Shdr *symtab_hdr; struct elf_link_hash_entry **sym_hashes; @@ -1202,9 +1119,8 @@ elf64_x86_64_gc_sweep_hook (abfd, info, understand. */ static bfd_boolean -elf64_x86_64_adjust_dynamic_symbol (info, h) - struct bfd_link_info *info; - struct elf_link_hash_entry *h; +elf64_x86_64_adjust_dynamic_symbol (struct bfd_link_info *info, + struct elf_link_hash_entry *h) { struct elf64_x86_64_link_hash_table *htab; asection *s; @@ -1217,11 +1133,9 @@ elf64_x86_64_adjust_dynamic_symbol (info || (h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_PLT) != 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)) + || SYMBOL_CALLS_LOCAL (info, h) + || (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT + && h->root.type == bfd_link_hash_undefweak)) { /* This case can occur if we saw a PLT32 reloc in an input file, but the symbol was never referred to by a dynamic @@ -1355,9 +1269,9 @@ elf64_x86_64_adjust_dynamic_symbol (info 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 elf64_x86_64_relocate_section. */ -#define WILL_CALL_FINISH_DYNAMIC_SYMBOL(DYN, INFO, H) \ +#define WILL_CALL_FINISH_DYNAMIC_SYMBOL(DYN, SHARED, H) \ ((DYN) \ - && ((INFO)->shared \ + && ((SHARED) \ || ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) \ && ((H)->dynindx != -1 \ || ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0)) @@ -1366,9 +1280,7 @@ elf64_x86_64_adjust_dynamic_symbol (info dynamic relocs. */ static bfd_boolean -allocate_dynrelocs (h, inf) - struct elf_link_hash_entry *h; - PTR inf; +allocate_dynrelocs (struct elf_link_hash_entry *h, void * inf) { struct bfd_link_info *info; struct elf64_x86_64_link_hash_table *htab; @@ -1385,9 +1297,7 @@ allocate_dynrelocs (h, inf) htab = elf64_x86_64_hash_table (info); if (htab->elf.dynamic_sections_created - && h->plt.refcount > 0 - && (ELF_ST_VISIBILITY (h->other) == STV_DEFAULT - || h->root.type != bfd_link_hash_undefweak)) + && h->plt.refcount > 0) { /* Make sure this symbol is output as a dynamic symbol. Undefined weak syms won't yet be marked as dynamic. */ @@ -1398,7 +1308,8 @@ allocate_dynrelocs (h, inf) return FALSE; } - if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (1, info, h)) + if (info->shared + || WILL_CALL_FINISH_DYNAMIC_SYMBOL (1, 0, h)) { asection *s = htab->splt; @@ -1482,7 +1393,8 @@ allocate_dynrelocs (h, inf) htab->srelgot->_raw_size += 2 * sizeof (Elf64_External_Rela); else if ((ELF_ST_VISIBILITY (h->other) == STV_DEFAULT || h->root.type != bfd_link_hash_undefweak) - && WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, info, h)) + && (info->shared + || WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, 0, h))) htab->srelgot->_raw_size += sizeof (Elf64_External_Rela); } else @@ -1500,9 +1412,13 @@ allocate_dynrelocs (h, inf) 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)) + /* Relocs that use pc_count are those that appear on a call + insn, or certain REL relocs that can generated via assembly. + We want calls to protected symbols to resolve directly to the + function rather than going via the plt. If people want + function pointer comparisons to work as expected then they + should avoid writing weird assembly. */ + if (SYMBOL_CALLS_LOCAL (info, h)) { struct elf64_x86_64_dyn_relocs **pp; @@ -1569,9 +1485,7 @@ allocate_dynrelocs (h, inf) /* Find any dynamic relocs that apply to read-only sections. */ static bfd_boolean -readonly_dynrelocs (h, inf) - struct elf_link_hash_entry *h; - PTR inf; +readonly_dynrelocs (struct elf_link_hash_entry *h, void * inf) { struct elf64_x86_64_link_hash_entry *eh; struct elf64_x86_64_dyn_relocs *p; @@ -1600,9 +1514,8 @@ readonly_dynrelocs (h, inf) /* Set the sizes of the dynamic sections. */ static bfd_boolean -elf64_x86_64_size_dynamic_sections (output_bfd, info) - bfd *output_bfd ATTRIBUTE_UNUSED; - struct bfd_link_info *info; +elf64_x86_64_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, + struct bfd_link_info *info) { struct elf64_x86_64_link_hash_table *htab; bfd *dynobj; @@ -1618,7 +1531,7 @@ elf64_x86_64_size_dynamic_sections (outp if (htab->elf.dynamic_sections_created) { /* Set the contents of the .interp section to the interpreter. */ - if (! info->shared) + if (info->executable) { s = bfd_get_section_by_name (dynobj, ".interp"); if (s == NULL) @@ -1779,7 +1692,7 @@ elf64_x86_64_size_dynamic_sections (outp #define add_dynamic_entry(TAG, VAL) \ bfd_elf64_add_dynamic_entry (info, (bfd_vma) (TAG), (bfd_vma) (VAL)) - if (! info->shared) + if (info->executable) { if (!add_dynamic_entry (DT_DEBUG, 0)) return FALSE; @@ -1824,8 +1737,7 @@ elf64_x86_64_size_dynamic_sections (outp This is PT_TLS segment p_vaddr. */ static bfd_vma -dtpoff_base (info) - struct bfd_link_info *info; +dtpoff_base (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) @@ -1837,9 +1749,7 @@ dtpoff_base (info) if STT_TLS virtual address is ADDRESS. */ static bfd_vma -tpoff (info, address) - struct bfd_link_info *info; - bfd_vma address; +tpoff (struct bfd_link_info *info, bfd_vma address) { struct elf_link_tls_segment *tls_segment = elf_hash_table (info)->tls_segment; @@ -1854,16 +1764,11 @@ tpoff (info, address) /* Relocate an x86_64 ELF section. */ static bfd_boolean -elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section, - contents, relocs, local_syms, local_sections) - 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; +elf64_x86_64_relocate_section (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) { struct elf64_x86_64_link_hash_table *htab; Elf_Internal_Shdr *symtab_hdr; @@ -1872,7 +1777,7 @@ elf64_x86_64_relocate_section (output_bf Elf_Internal_Rela *rel; Elf_Internal_Rela *relend; - if (info->relocateable) + if (info->relocatable) return TRUE; htab = elf64_x86_64_hash_table (info); @@ -1947,7 +1852,7 @@ elf64_x86_64_relocate_section (output_bf } else if (h->root.type == bfd_link_hash_undefweak) relocation = 0; - else if (info->shared + else if (!info->executable && !info->no_undefined && ELF_ST_VISIBILITY (h->other) == STV_DEFAULT) relocation = 0; @@ -1981,12 +1886,9 @@ elf64_x86_64_relocate_section (output_bf off = h->got.offset; dyn = htab->elf.dynamic_sections_created; - if (! WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, info, h) + if (! WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, info->shared, h) || (info->shared - && (info->symbolic - || h->dynindx == -1 - || (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL)) - && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR)) + && SYMBOL_REFERENCES_LOCAL (info, h)) || (ELF_ST_VISIBILITY (h->other) && h->root.type == bfd_link_hash_undefweak)) { @@ -2113,11 +2015,7 @@ elf64_x86_64_relocate_section (output_bf && ((r_type != R_X86_64_PC8 && r_type != R_X86_64_PC16 && r_type != R_X86_64_PC32) - || (h != NULL - && h->dynindx != -1 - && (! info->symbolic - || (h->elf_link_hash_flags - & ELF_LINK_HASH_DEF_REGULAR) == 0)))) + || !SYMBOL_CALLS_LOCAL (info, h))) || (ELIMINATE_COPY_RELOCS && !info->shared && h != NULL @@ -2604,11 +2502,10 @@ elf64_x86_64_relocate_section (output_bf dynamic sections here. */ static bfd_boolean -elf64_x86_64_finish_dynamic_symbol (output_bfd, info, h, sym) - bfd *output_bfd; - struct bfd_link_info *info; - struct elf_link_hash_entry *h; - Elf_Internal_Sym *sym; +elf64_x86_64_finish_dynamic_symbol (bfd *output_bfd, + struct bfd_link_info *info, + struct elf_link_hash_entry *h, + Elf_Internal_Sym *sym) { struct elf64_x86_64_link_hash_table *htab; @@ -2714,10 +2611,7 @@ elf64_x86_64_finish_dynamic_symbol (outp 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 - || (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL)) - && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR)) + && SYMBOL_REFERENCES_LOCAL (info, h)) { BFD_ASSERT((h->got.offset & 1) != 0); rela.r_info = ELF64_R_INFO (0, R_X86_64_RELATIVE); @@ -2774,8 +2668,7 @@ elf64_x86_64_finish_dynamic_symbol (outp dynamic linker, before writing them out. */ static enum elf_reloc_type_class -elf64_x86_64_reloc_type_class (rela) - const Elf_Internal_Rela *rela; +elf64_x86_64_reloc_type_class (const Elf_Internal_Rela *rela) { switch ((int) ELF64_R_TYPE (rela->r_info)) { @@ -2793,9 +2686,7 @@ elf64_x86_64_reloc_type_class (rela) /* Finish up the dynamic sections. */ static bfd_boolean -elf64_x86_64_finish_dynamic_sections (output_bfd, info) - bfd *output_bfd; - struct bfd_link_info *info; +elf64_x86_64_finish_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info) { struct elf64_x86_64_link_hash_table *htab; bfd *dynobj; diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elfcode.h binutils-2.14.90.0.5/bfd/elfcode.h --- binutils-2.14.90.0.4.1/bfd/elfcode.h 2003-05-23 07:18:52.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/elfcode.h 2003-07-23 08:08:09.000000000 -0700 @@ -125,8 +125,6 @@ Foundation, Inc., 59 Temple Place - Suit #define elf_reloc_symbol_deleted_p NAME(_bfd_elf,reloc_symbol_deleted_p) #define elf_link_record_dynamic_symbol _bfd_elf_link_record_dynamic_symbol #define elf_bfd_final_link NAME(bfd_elf,bfd_final_link) -#define elf_create_pointer_linker_section NAME(bfd_elf,create_pointer_linker_section) -#define elf_finish_pointer_linker_section NAME(bfd_elf,finish_pointer_linker_section) #define elf_gc_sections NAME(_bfd_elf,gc_sections) #define elf_gc_common_finalize_got_offsets \ NAME(_bfd_elf,gc_common_finalize_got_offsets) @@ -572,17 +570,15 @@ elf_object_p (abfd) goto got_wrong_format_error; } + if (!bfd_preserve_save (abfd, &preserve)) + goto got_no_match; + /* Allocate an instance of the elf_obj_tdata structure and hook it up to the tdata pointer in the bfd. */ - amt = sizeof (struct elf_obj_tdata); - preserve.marker = bfd_zalloc (abfd, amt); - if (preserve.marker == NULL) + if (! (*abfd->xvec->_bfd_set_format[bfd_object]) (abfd)) goto got_no_match; - if (!bfd_preserve_save (abfd, &preserve)) - goto got_no_match; - - elf_tdata (abfd) = preserve.marker; + preserve.marker = elf_tdata (abfd); /* Now that we know the byte order, swap in the rest of the header */ i_ehdrp = elf_elfheader (abfd); @@ -1187,7 +1183,7 @@ elf_slurp_symbol_table (abfd, symptrs, d else sym->symbol.section = bfd_abs_section_ptr; - /* If this is a relocateable file, then the symbol value is + /* If this is a relocatable file, then the symbol value is already section relative. */ if ((abfd->flags & (EXEC_P | DYNAMIC)) != 0) sym->symbol.value -= sym->symbol.section->vma; @@ -1363,7 +1359,9 @@ elf_slurp_reloc_table_from_section (abfd relent->addend = rela.r_addend; - if (entsize == sizeof (Elf_External_Rela)) + if ((entsize == sizeof (Elf_External_Rela) + && ebd->elf_info_to_howto != NULL) + || ebd->elf_info_to_howto_rel == NULL) (*ebd->elf_info_to_howto) (abfd, relent, &rela); else (*ebd->elf_info_to_howto_rel) (abfd, relent, &rela); diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elfcore.h binutils-2.14.90.0.5/bfd/elfcore.h --- binutils-2.14.90.0.4.1/bfd/elfcore.h 2003-03-19 09:19:13.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/elfcore.h 2003-07-23 08:08:09.000000000 -0700 @@ -122,15 +122,13 @@ elf_core_file_p (abfd) goto wrong; } - /* Give abfd an elf_obj_tdata. */ - amt = sizeof (struct elf_obj_tdata); - preserve.marker = bfd_zalloc (abfd, amt); - if (preserve.marker == NULL) - goto fail; if (!bfd_preserve_save (abfd, &preserve)) goto fail; - elf_tdata (abfd) = preserve.marker; + /* Give abfd an elf_obj_tdata. */ + if (! (*abfd->xvec->_bfd_set_format[bfd_core]) (abfd)) + goto fail; + preserve.marker = elf_tdata (abfd); /* Swap in the rest of the header, now that we have the byte order. */ i_ehdrp = elf_elfheader (abfd); diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elflink.c binutils-2.14.90.0.5/bfd/elflink.c --- binutils-2.14.90.0.4.1/bfd/elflink.c 2003-05-23 07:18:52.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/elflink.c 2003-07-23 08:08:09.000000000 -0700 @@ -94,7 +94,7 @@ _bfd_elf_create_got_section (abfd, info) h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR; h->type = STT_OBJECT; - if (info->shared + if (! info->executable && ! _bfd_elf_link_record_dynamic_symbol (info, h)) return FALSE; @@ -144,7 +144,7 @@ _bfd_elf_link_create_dynamic_sections (a /* A dynamically linked executable has a .interp section, but a shared library does not. */ - if (! info->shared) + if (info->executable) { s = bfd_make_section (abfd, ".interp"); if (s == NULL @@ -227,7 +227,7 @@ _bfd_elf_link_create_dynamic_sections (a h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR; h->type = STT_OBJECT; - if (info->shared + if (! info->executable && ! _bfd_elf_link_record_dynamic_symbol (info, h)) return FALSE; @@ -295,7 +295,7 @@ _bfd_elf_create_dynamic_sections (abfd, h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR; h->type = STT_OBJECT; - if (info->shared + if (! info->executable && ! _bfd_elf_link_record_dynamic_symbol (info, h)) return FALSE; } @@ -1760,7 +1760,7 @@ _bfd_elf_link_assign_sym_version (h, dat /* If we are building an application, we need to create a version node for this version. */ - if (t == NULL && ! info->shared) + if (t == NULL && info->executable) { struct bfd_elf_version_tree **pp; int version_index; @@ -1896,179 +1896,6 @@ _bfd_elf_link_assign_sym_version (h, dat return TRUE; } -/* Create a special linker section, or return a pointer to a linker - section already created */ - -elf_linker_section_t * -_bfd_elf_create_linker_section (abfd, info, which, defaults) - bfd *abfd; - struct bfd_link_info *info; - enum elf_linker_section_enum which; - elf_linker_section_t *defaults; -{ - bfd *dynobj = elf_hash_table (info)->dynobj; - elf_linker_section_t *lsect; - - /* Record the first bfd section that needs the special section */ - if (!dynobj) - dynobj = elf_hash_table (info)->dynobj = abfd; - - /* If this is the first time, create the section */ - lsect = elf_linker_section (dynobj, which); - if (!lsect) - { - asection *s; - bfd_size_type amt = sizeof (elf_linker_section_t); - - lsect = (elf_linker_section_t *) bfd_alloc (dynobj, amt); - - *lsect = *defaults; - elf_linker_section (dynobj, which) = lsect; - lsect->which = which; - lsect->hole_written_p = FALSE; - - /* See if the sections already exist */ - lsect->section = s = bfd_get_section_by_name (dynobj, lsect->name); - if (!s || (s->flags & defaults->flags) != defaults->flags) - { - lsect->section = s = bfd_make_section_anyway (dynobj, lsect->name); - - if (s == NULL) - return (elf_linker_section_t *)0; - - bfd_set_section_flags (dynobj, s, defaults->flags); - bfd_set_section_alignment (dynobj, s, lsect->alignment); - } - else if (bfd_get_section_alignment (dynobj, s) < lsect->alignment) - bfd_set_section_alignment (dynobj, s, lsect->alignment); - - s->_raw_size = align_power (s->_raw_size, lsect->alignment); - - /* Is there a hole we have to provide? If so check whether the - segment is too big already */ - if (lsect->hole_size) - { - lsect->hole_offset = s->_raw_size; - s->_raw_size += lsect->hole_size; - if (lsect->hole_offset > lsect->max_hole_offset) - { - (*_bfd_error_handler) - (_("%s: Section %s is too large to add hole of %ld bytes"), - bfd_get_filename (abfd), - lsect->name, - (long) lsect->hole_size); - - bfd_set_error (bfd_error_bad_value); - return (elf_linker_section_t *)0; - } - } - -#ifdef DEBUG - fprintf (stderr, "Creating section %s, current size = %ld\n", - lsect->name, (long)s->_raw_size); -#endif - - if (lsect->sym_name) - { - struct elf_link_hash_entry *h; - struct bfd_link_hash_entry *bh; - -#ifdef DEBUG - fprintf (stderr, "Adding %s to section %s\n", - lsect->sym_name, - lsect->name); -#endif - bh = bfd_link_hash_lookup (info->hash, lsect->sym_name, - FALSE, FALSE, FALSE); - - if ((bh == NULL || bh->type == bfd_link_hash_undefined) - && !(_bfd_generic_link_add_one_symbol - (info, abfd, lsect->sym_name, BSF_GLOBAL, s, - (lsect->hole_size - ? s->_raw_size - lsect->hole_size + lsect->sym_offset - : lsect->sym_offset), - (const char *) NULL, FALSE, - get_elf_backend_data (abfd)->collect, &bh))) - return (elf_linker_section_t *) 0; - h = (struct elf_link_hash_entry *) bh; - - if ((defaults->which != LINKER_SECTION_SDATA) - && (defaults->which != LINKER_SECTION_SDATA2)) - h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_DYNAMIC; - - h->type = STT_OBJECT; - lsect->sym_hash = h; - - if (info->shared - && ! _bfd_elf_link_record_dynamic_symbol (info, h)) - return (elf_linker_section_t *) 0; - } - } - -#if 0 - /* This does not make sense. The sections which may exist in the - object file have nothing to do with the sections we want to - create. */ - - /* Find the related sections if they have been created */ - if (lsect->bss_name && !lsect->bss_section) - lsect->bss_section = bfd_get_section_by_name (dynobj, lsect->bss_name); - - if (lsect->rel_name && !lsect->rel_section) - lsect->rel_section = bfd_get_section_by_name (dynobj, lsect->rel_name); -#endif - - return lsect; -} - -/* Find a linker generated pointer with a given addend and type. */ - -elf_linker_section_pointers_t * -_bfd_elf_find_pointer_linker_section (linker_pointers, addend, which) - elf_linker_section_pointers_t *linker_pointers; - bfd_vma addend; - elf_linker_section_enum_t which; -{ - for ( ; linker_pointers != NULL; linker_pointers = linker_pointers->next) - { - if (which == linker_pointers->which && addend == linker_pointers->addend) - return linker_pointers; - } - - return (elf_linker_section_pointers_t *)0; -} - -/* Make the .rela section corresponding to the generated linker section. */ - -bfd_boolean -_bfd_elf_make_linker_section_rela (dynobj, lsect, alignment) - bfd *dynobj; - elf_linker_section_t *lsect; - int alignment; -{ - if (lsect->rel_section) - return TRUE; - - lsect->rel_section = bfd_get_section_by_name (dynobj, lsect->rel_name); - if (lsect->rel_section == NULL) - { - lsect->rel_section = bfd_make_section (dynobj, lsect->rel_name); - if (lsect->rel_section == NULL - || ! bfd_set_section_flags (dynobj, - lsect->rel_section, - (SEC_ALLOC - | SEC_LOAD - | SEC_HAS_CONTENTS - | SEC_IN_MEMORY - | SEC_LINKER_CREATED - | SEC_READONLY)) - || ! bfd_set_section_alignment (dynobj, lsect->rel_section, alignment)) - return FALSE; - } - - return TRUE; -} - /* Read and swap the relocs from the section indicated by SHDR. This may be either a REL or a RELA section. The relocations are translated into RELA relocations and stored in INTERNAL_RELOCS, @@ -2647,3 +2474,108 @@ _bfd_elf_link_sec_merge_syms (h, data) return TRUE; } + +/* Returns false if the symbol referred to by H should be considered + to resolve local to the current module, and true if it should be + considered to bind dynamically. */ + +bfd_boolean +_bfd_elf_dynamic_symbol_p (h, info, ignore_protected) + struct elf_link_hash_entry *h; + struct bfd_link_info *info; + bfd_boolean ignore_protected; +{ + bfd_boolean binding_stays_local_p; + + if (h == NULL) + return FALSE; + + while (h->root.type == bfd_link_hash_indirect + || h->root.type == bfd_link_hash_warning) + h = (struct elf_link_hash_entry *) h->root.u.i.link; + + /* If it was forced local, then clearly it's not dynamic. */ + if (h->dynindx == -1) + return FALSE; + if (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) + return FALSE; + + /* Identify the cases where name binding rules say that a + visible symbol resolves locally. */ + binding_stays_local_p = info->executable || info->symbolic; + + switch (ELF_ST_VISIBILITY (h->other)) + { + case STV_INTERNAL: + case STV_HIDDEN: + return FALSE; + + case STV_PROTECTED: + /* Proper resolution for function pointer equality may require + that these symbols perhaps be resolved dynamically, even though + we should be resolving them to the current module. */ + if (!ignore_protected) + binding_stays_local_p = TRUE; + break; + + default: + break; + } + + /* If it isn't defined locally, then clearly it's dynamic. */ + if ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0) + return TRUE; + + /* Otherwise, the symbol is dynamic if binding rules don't tell + us that it remains local. */ + return !binding_stays_local_p; +} + +/* Return true if the symbol referred to by H should be considered + to resolve local to the current module, and false otherwise. Differs + from (the inverse of) _bfd_elf_dynamic_symbol_p in the treatment of + undefined symbols and weak symbols. */ + +bfd_boolean +_bfd_elf_symbol_refs_local_p (h, info, local_protected) + struct elf_link_hash_entry *h; + struct bfd_link_info *info; + bfd_boolean local_protected; +{ + /* If it's a local sym, of course we resolve locally. */ + if (h == NULL) + return TRUE; + + /* If we don't have a definition in a regular file, then we can't + resolve locally. The sym is either undefined or dynamic. */ + if ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0) + return FALSE; + + /* Forced local symbols resolve locally. */ + if ((h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0) + return TRUE; + + /* As do non-dynamic symbols. */ + if (h->dynindx == -1) + return TRUE; + + /* At this point, we know the symbol is defined and dynamic. In an + executable it must resolve locally, likewise when building symbolic + shared libraries. */ + if (info->executable || info->symbolic) + return TRUE; + + /* Now deal with defined dynamic symbols in shared libraries. Ones + with default visibility might not resolve locally. */ + if (ELF_ST_VISIBILITY (h->other) == STV_DEFAULT) + return FALSE; + + /* However, STV_HIDDEN or STV_INTERNAL ones must be local. */ + if (ELF_ST_VISIBILITY (h->other) != STV_PROTECTED) + return TRUE; + + /* Function pointer equality tests may require that STV_PROTECTED + symbols be treated as dynamic symbols, even when we know that the + dynamic linker will resolve them locally. */ + return local_protected; +} diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elflink.h binutils-2.14.90.0.5/bfd/elflink.h --- binutils-2.14.90.0.4.1/bfd/elflink.h 2003-05-23 07:18:52.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/elflink.h 2003-07-23 08:08:09.000000000 -0700 @@ -463,7 +463,7 @@ elf_link_add_object_symbols (abfd, info) /* You can't use -r against a dynamic object. Also, there's no hope of using a dynamic object which does not exactly match the format of the output file. */ - if (info->relocateable || info->hash->creator != abfd->xvec) + if (info->relocatable || info->hash->creator != abfd->xvec) { bfd_set_error (bfd_error_invalid_operation); goto error_return; @@ -474,7 +474,7 @@ elf_link_add_object_symbols (abfd, info) .gnu.warning.SYMBOL are treated as warning symbols for the given symbol. This differs from .gnu.warning sections, which generate warnings when they are included in an output file. */ - if (! info->shared) + if (info->executable) { asection *s; @@ -534,7 +534,7 @@ elf_link_add_object_symbols (abfd, info) FALSE, collect, (struct bfd_link_hash_entry **) NULL))) goto error_return; - if (! info->relocateable) + if (! info->relocatable) { /* Clobber the section size so that the warning does not get copied into the output file. */ @@ -1321,7 +1321,7 @@ elf_link_add_object_symbols (abfd, info) } else new_flag = ELF_LINK_HASH_DEF_REGULAR; - if (info->shared + if (! info->executable || (old_flags & (ELF_LINK_HASH_DEF_DYNAMIC | ELF_LINK_HASH_REF_DYNAMIC)) != 0) dynsym = TRUE; @@ -1658,7 +1658,7 @@ elf_link_add_object_symbols (abfd, info) } } - if (! info->relocateable && ! dynamic + if (! info->relocatable && ! dynamic && is_elf_hash_table (info)) { asection *s; @@ -1937,6 +1937,43 @@ NAME(bfd_elf,size_dynamic_sections) (out if (! is_elf_hash_table (info)) return TRUE; + if (info->execstack) + elf_tdata (output_bfd)->stack_flags = PF_R | PF_W | PF_X; + else if (info->noexecstack) + elf_tdata (output_bfd)->stack_flags = PF_R | PF_W; + else + { + bfd *inputobj; + asection *notesec = NULL; + int exec = 0; + + for (inputobj = info->input_bfds; + inputobj; + inputobj = inputobj->link_next) + { + asection *s; + + if (inputobj->flags & DYNAMIC) + continue; + s = bfd_get_section_by_name (inputobj, ".note.GNU-stack"); + if (s) + { + if (s->flags & SEC_CODE) + exec = PF_X; + notesec = s; + } + else + exec = PF_X; + } + if (notesec) + { + elf_tdata (output_bfd)->stack_flags = PF_R | PF_W | exec; + if (exec && info->relocatable + && notesec->output_section != bfd_abs_section_ptr) + notesec->output_section->flags |= SEC_CODE; + } + } + /* Any syms created from now on start with -1 in got.refcount/offset and plt.refcount/offset. */ elf_hash_table (info)->init_refcount = elf_hash_table (info)->init_offset; @@ -2174,7 +2211,7 @@ NAME(bfd_elf,size_dynamic_sections) (out if (bfd_get_section_by_name (output_bfd, ".preinit_array") != NULL) { /* DT_PREINIT_ARRAY is not allowed in shared library. */ - if (info->shared) + if (! info->executable) { bfd *sub; asection *o; @@ -2440,7 +2477,7 @@ NAME(bfd_elf,size_dynamic_sections) (out if (info->flags_1) { - if (! info->shared) + if (info->executable) info->flags_1 &= ~ (DF_1_INITFIRST | DF_1_NODELETE | DF_1_NOOPEN); @@ -2872,7 +2909,7 @@ struct elf_outext_info struct elf_final_link_info *finfo; }; -/* When performing a relocateable link, the input relocations are +/* When performing a relocatable link, the input relocations are preserved. But, if they reference global symbols, the indices referenced must be updated. Update all the relocations in REL_HDR (there are COUNT of them), using the data in REL_HASH. */ @@ -2992,8 +3029,7 @@ elf_link_sort_relocs (abfd, info, psec) struct bfd_link_info *info; asection **psec; { - bfd *dynobj = elf_hash_table (info)->dynobj; - asection *reldyn, *o; + asection *reldyn; bfd_size_type count, size; size_t i, ret, sort_elt, ext_size; bfd_byte *sort, *s_non_relative, *p; @@ -3002,6 +3038,7 @@ elf_link_sort_relocs (abfd, info, psec) int i2e = bed->s->int_rels_per_ext_rel; void (*swap_in) PARAMS ((bfd *, const bfd_byte *, Elf_Internal_Rela *)); void (*swap_out) PARAMS ((bfd *, const Elf_Internal_Rela *, bfd_byte *)); + struct bfd_link_order *lo; reldyn = bfd_get_section_by_name (abfd, ".rela.dyn"); if (reldyn == NULL || reldyn->_raw_size == 0) @@ -3022,11 +3059,12 @@ elf_link_sort_relocs (abfd, info, psec) count = reldyn->_raw_size / ext_size; size = 0; - for (o = dynobj->sections; o != NULL; o = o->next) - if ((o->flags & (SEC_HAS_CONTENTS|SEC_LINKER_CREATED)) - == (SEC_HAS_CONTENTS|SEC_LINKER_CREATED) - && o->output_section == reldyn) - size += o->_raw_size; + for (lo = reldyn->link_order_head; lo != NULL; lo = lo->next) + if (lo->type == bfd_indirect_link_order) + { + asection *o = lo->u.indirect.section; + size += o->_raw_size; + } if (size != reldyn->_raw_size) return 0; @@ -3042,12 +3080,11 @@ elf_link_sort_relocs (abfd, info, psec) return 0; } - for (o = dynobj->sections; o != NULL; o = o->next) - if ((o->flags & (SEC_HAS_CONTENTS|SEC_LINKER_CREATED)) - == (SEC_HAS_CONTENTS|SEC_LINKER_CREATED) - && o->output_section == reldyn) + for (lo = reldyn->link_order_head; lo != NULL; lo = lo->next) + if (lo->type == bfd_indirect_link_order) { bfd_byte *erel, *erelend; + asection *o = lo->u.indirect.section; erel = o->contents; erelend = o->contents + o->_raw_size; @@ -3084,12 +3121,11 @@ elf_link_sort_relocs (abfd, info, psec) qsort (s_non_relative, (size_t) count - ret, sort_elt, elf_link_sort_cmp2); - for (o = dynobj->sections; o != NULL; o = o->next) - if ((o->flags & (SEC_HAS_CONTENTS|SEC_LINKER_CREATED)) - == (SEC_HAS_CONTENTS|SEC_LINKER_CREATED) - && o->output_section == reldyn) + for (lo = reldyn->link_order_head; lo != NULL; lo = lo->next) + if (lo->type == bfd_indirect_link_order) { bfd_byte *erel, *erelend; + asection *o = lo->u.indirect.section; erel = o->contents; erelend = o->contents + o->_raw_size; @@ -3149,7 +3185,7 @@ elf_bfd_final_link (abfd, info) dynamic = elf_hash_table (info)->dynamic_sections_created; dynobj = elf_hash_table (info)->dynobj; - emit_relocs = (info->relocateable + emit_relocs = (info->relocatable || info->emitrelocations || bed->elf_backend_emit_relocs); @@ -3234,7 +3270,7 @@ elf_bfd_final_link (abfd, info) if (sec->flags & SEC_MERGE) merged = TRUE; - if (info->relocateable || info->emitrelocations) + if (info->relocatable || info->emitrelocations) reloc_count = sec->reloc_count; else if (bed->elf_backend_count_relocs) { @@ -3359,7 +3395,7 @@ elf_bfd_final_link (abfd, info) o->vma = 0; } - if (! info->relocateable && merged) + if (! info->relocatable && merged) elf_link_hash_traverse (elf_hash_table (info), _bfd_elf_link_sec_merge_syms, (PTR) abfd); @@ -3487,7 +3523,7 @@ elf_bfd_final_link (abfd, info) if (o != NULL) o->target_index = bfd_get_symcount (abfd); elfsym.st_shndx = i; - if (info->relocateable || o == NULL) + if (info->relocatable || o == NULL) elfsym.st_value = 0; else elfsym.st_value = o->vma; @@ -3598,13 +3634,13 @@ elf_bfd_final_link (abfd, info) Unfortunately, there is no way to know the total number of local symbols until we have seen all of them, and the local symbol indices precede the global symbol indices. This means that when - we are generating relocateable output, and we see a reloc against + we are generating relocatable output, and we see a reloc against a global symbol, we can not know the symbol index until we have finished examining all the local symbols to see which ones we are going to output. To deal with this, we keep the relocations in memory, and don't output them until the end of the link. This is an unfortunate waste of memory, but I don't see a good way around - it. Fortunately, it only happens when performing a relocateable + it. Fortunately, it only happens when performing a relocatable link, which is not the common case. FIXME: If keep_memory is set we could write the relocs out and then read them again; I don't know how bad the memory loss will be. */ @@ -4044,7 +4080,7 @@ elf_bfd_final_link (abfd, info) } } - if (info->relocateable) + if (info->relocatable) { bfd_boolean failed = FALSE; @@ -4416,8 +4452,9 @@ elf_link_output_extsym (h, data) program is run. We don't have to worry about symbols that are referenced by regular files, because we will already have issued warnings for them. */ - if (! finfo->info->relocateable - && (! finfo->info->shared || ! finfo->info->allow_shlib_undefined) + if (! finfo->info->relocatable + && (finfo->info->executable + || ! finfo->info->allow_shlib_undefined) && h->root.type == bfd_link_hash_undefined && (h->elf_link_hash_flags & ELF_LINK_HASH_REF_DYNAMIC) != 0 && (h->elf_link_hash_flags & ELF_LINK_HASH_REF_REGULAR) == 0 @@ -4434,7 +4471,7 @@ elf_link_output_extsym (h, data) /* We should also warn if a forced local symbol is referenced from shared libraries. */ - if (! finfo->info->relocateable + if (! finfo->info->relocatable && (! finfo->info->shared || ! finfo->info->allow_shlib_undefined) && (h->elf_link_hash_flags & (ELF_LINK_FORCED_LOCAL | ELF_LINK_HASH_REF_DYNAMIC @@ -4532,11 +4569,11 @@ elf_link_output_extsym (h, data) return FALSE; } - /* ELF symbols in relocateable files are section relative, - but in nonrelocateable files they are virtual + /* ELF symbols in relocatable files are section relative, + but in nonrelocatable files they are virtual addresses. */ sym.st_value = h->root.u.def.value + input_sec->output_offset; - if (! finfo->info->relocateable) + if (! finfo->info->relocatable) { sym.st_value += input_sec->output_section->vma; if (h->type == STT_TLS) @@ -4619,7 +4656,7 @@ elf_link_output_extsym (h, data) /* If a non-weak symbol with non-default visibility is not defined locally, it is a fatal error. */ - if (! finfo->info->relocateable + if (! finfo->info->relocatable && ELF_ST_VISIBILITY (sym.st_other) != STV_DEFAULT && ELF_ST_BIND (sym.st_info) != STB_WEAK && h->root.type == bfd_link_hash_undefined @@ -4749,7 +4786,7 @@ elf_link_input_bfd (finfo, input_bfd) if ((input_bfd->flags & DYNAMIC) != 0) return TRUE; - emit_relocs = (finfo->info->relocateable + emit_relocs = (finfo->info->relocatable || finfo->info->emitrelocations || bed->elf_backend_emit_relocs); @@ -4844,7 +4881,7 @@ elf_link_input_bfd (finfo, input_bfd) continue; /* If we are discarding all local symbols, we don't want to - output this one. If we are generating a relocateable output + output this one. If we are generating a relocatable output file, then some of the local symbols may be required by relocs; we output them below as we discover that they are needed. */ @@ -4859,7 +4896,7 @@ elf_link_input_bfd (finfo, input_bfd) if ((isym->st_shndx < SHN_LORESERVE || isym->st_shndx > SHN_HIRESERVE) && isec != NULL && ((! isec->linker_mark && (isec->flags & SEC_HAS_CONTENTS) != 0) - || (! finfo->info->relocateable + || (! finfo->info->relocatable && (isec->flags & SEC_EXCLUDE) != 0))) continue; @@ -4874,7 +4911,7 @@ elf_link_input_bfd (finfo, input_bfd) && (bfd_hash_lookup (finfo->info->keep_hash, name, FALSE, FALSE) == NULL)) || (((finfo->info->discard == discard_sec_merge - && (isec->flags & SEC_MERGE) && ! finfo->info->relocateable) + && (isec->flags & SEC_MERGE) && ! finfo->info->relocatable) || finfo->info->discard == discard_l) && bfd_is_local_label_name (input_bfd, name))) continue; @@ -4891,7 +4928,7 @@ elf_link_input_bfd (finfo, input_bfd) *pindex = bfd_get_symcount (output_bfd); - /* ELF symbols in relocateable files are section relative, but + /* ELF symbols in relocatable files are section relative, but in executable files they are virtual addresses. Note that this code assumes that all ELF sections have an associated BFD section with a reasonable value for output_offset; below @@ -4899,7 +4936,7 @@ elf_link_input_bfd (finfo, input_bfd) output_section. Any special sections must be set up to meet these requirements. */ osym.st_value += isec->output_offset; - if (! finfo->info->relocateable) + if (! finfo->info->relocatable) { osym.st_value += isec->output_section->vma; if (ELF_ST_TYPE (osym.st_info) == STT_TLS) @@ -4967,9 +5004,9 @@ elf_link_input_bfd (finfo, input_bfd) from discarded sections and section symbols from removed link-once sections. Complain about relocs against discarded sections. Zero relocs against removed - link-once sections. */ - if (!finfo->info->relocateable - && !elf_section_ignore_discarded_relocs (o)) + link-once sections. Preserve debug information as much + as we can. */ + if (!elf_section_ignore_discarded_relocs (o)) { Elf_Internal_Rela *rel, *relend; @@ -4978,6 +5015,7 @@ elf_link_input_bfd (finfo, input_bfd) for ( ; rel < relend; rel++) { unsigned long r_symndx = ELF_R_SYM (rel->r_info); + asection *sec; if (r_symndx >= locsymcount || (elf_bad_symtab (input_bfd) @@ -4992,28 +5030,36 @@ elf_link_input_bfd (finfo, input_bfd) /* Complain if the definition comes from a discarded section. */ + sec = h->root.u.def.section; if ((h->root.type == bfd_link_hash_defined || h->root.type == bfd_link_hash_defweak) - && elf_discarded_section (h->root.u.def.section)) + && elf_discarded_section (sec)) { if ((o->flags & SEC_DEBUGGING) != 0) { BFD_ASSERT (r_symndx != 0); - memset (rel, 0, sizeof (*rel)); + /* Try to preserve debug information. */ + if ((o->flags & SEC_DEBUGGING) != 0 + && sec->kept_section != NULL + && sec->_raw_size == sec->kept_section->_raw_size) + h->root.u.def.section + = sec->kept_section; + else + memset (rel, 0, sizeof (*rel)); } else - { - if (! ((*finfo->info->callbacks->undefined_symbol) - (finfo->info, h->root.root.string, - input_bfd, o, rel->r_offset, - TRUE))) - return FALSE; - } + finfo->info->callbacks->error_handler + (LD_DEFINITION_IN_DISCARDED_SECTION, + _("%T: discarded in section `%s' from %s\n"), + h->root.root.string, + h->root.root.string, + h->root.u.def.section->name, + bfd_archive_filename (h->root.u.def.section->owner)); } } else { - asection *sec = finfo->sections[r_symndx]; + sec = finfo->sections[r_symndx]; if (sec != NULL && elf_discarded_section (sec)) { @@ -5021,32 +5067,36 @@ elf_link_input_bfd (finfo, input_bfd) || (sec->flags & SEC_LINK_ONCE) != 0) { BFD_ASSERT (r_symndx != 0); - rel->r_info - = ELF_R_INFO (0, ELF_R_TYPE (rel->r_info)); - rel->r_addend = 0; + /* Try to preserve debug information. */ + if ((o->flags & SEC_DEBUGGING) != 0 + && sec->kept_section != NULL + && sec->_raw_size == sec->kept_section->_raw_size) + finfo->sections[r_symndx] + = sec->kept_section; + else + { + rel->r_info + = ELF_R_INFO (0, ELF_R_TYPE (rel->r_info)); + rel->r_addend = 0; + } } else { - bfd_boolean ok; - const char *msg - = _("local symbols in discarded section %s"); - bfd_size_type amt - = strlen (sec->name) + strlen (msg) - 1; - char *buf = (char *) bfd_malloc (amt); - - if (buf != NULL) - sprintf (buf, msg, sec->name); - else - buf = (char *) sec->name; - ok = (*finfo->info->callbacks - ->undefined_symbol) (finfo->info, buf, - input_bfd, o, - rel->r_offset, - TRUE); - if (buf != sec->name) + static int count; + int ok; + char *buf; + + ok = asprintf (&buf, "local symbol %d", + count++); + if (ok <= 0) + buf = (char *) "local symbol"; + finfo->info->callbacks->error_handler + (LD_DEFINITION_IN_DISCARDED_SECTION, + _("%T: discarded in section `%s' from %s\n"), + buf, buf, sec->name, + bfd_archive_filename (input_bfd)); + if (ok != -1) free (buf); - if (!ok) - return FALSE; } } } @@ -5057,7 +5107,7 @@ elf_link_input_bfd (finfo, input_bfd) The back end routine is responsible for adjusting the section contents as necessary, and (if using Rela relocs - and generating a relocateable output file) adjusting the + and generating a relocatable output file) adjusting the reloc addend as necessary. The back end routine does not have to worry about setting @@ -5067,7 +5117,7 @@ elf_link_input_bfd (finfo, input_bfd) internal symbols, and can access the hash table entries for the external symbols via elf_sym_hashes (input_bfd). - When generating relocateable output, the back end routine + When generating relocatable output, the back end routine must handle STB_LOCAL/STT_SECTION symbols specially. The output symbol is going to be a section symbol corresponding to the output section, which will require @@ -5106,7 +5156,7 @@ elf_link_input_bfd (finfo, input_bfd) + elf_section_data (o->output_section)->rel_count + elf_section_data (o->output_section)->rel_count2); last_offset = o->output_offset; - if (!finfo->info->relocateable) + if (!finfo->info->relocatable) last_offset += o->output_section->vma; for (next_erel = 0; irela < irelaend; irela++, next_erel++) { @@ -5139,7 +5189,7 @@ elf_link_input_bfd (finfo, input_bfd) irela->r_offset += o->output_offset; /* Relocs in an executable have to be virtual addresses. */ - if (!finfo->info->relocateable) + if (!finfo->info->relocatable) irela->r_offset += o->output_section->vma; last_offset = irela->r_offset; @@ -5243,7 +5293,7 @@ elf_link_input_bfd (finfo, input_bfd) return FALSE; sym.st_value += sec->output_offset; - if (! finfo->info->relocateable) + if (! finfo->info->relocatable) { sym.st_value += osec->vma; if (ELF_ST_TYPE (sym.st_info) == STT_TLS) @@ -5271,7 +5321,7 @@ elf_link_input_bfd (finfo, input_bfd) /* Swap out the relocs. */ if (bed->elf_backend_emit_relocs - && !(finfo->info->relocateable + && !(finfo->info->relocatable || finfo->info->emitrelocations)) reloc_emitter = bed->elf_backend_emit_relocs; else @@ -5471,10 +5521,10 @@ elf_reloc_link_order (output_bfd, info, } /* The address of a reloc is relative to the section in a - relocateable file, and is a virtual address in an executable + relocatable file, and is a virtual address in an executable file. */ offset = link_order->offset; - if (! info->relocateable) + if (! info->relocatable) offset += output_section->vma; for (i = 0; i < bed->s->int_rels_per_ext_rel; i++) @@ -5506,264 +5556,6 @@ elf_reloc_link_order (output_bfd, info, return TRUE; } -/* Allocate a pointer to live in a linker created section. */ - -bfd_boolean -elf_create_pointer_linker_section (abfd, info, lsect, h, rel) - bfd *abfd; - struct bfd_link_info *info; - elf_linker_section_t *lsect; - struct elf_link_hash_entry *h; - const Elf_Internal_Rela *rel; -{ - elf_linker_section_pointers_t **ptr_linker_section_ptr = NULL; - elf_linker_section_pointers_t *linker_section_ptr; - unsigned long r_symndx = ELF_R_SYM (rel->r_info); - bfd_size_type amt; - - BFD_ASSERT (lsect != NULL); - - /* Is this a global symbol? */ - if (h != NULL) - { - /* Has this symbol already been allocated? If so, our work is done. */ - if (_bfd_elf_find_pointer_linker_section (h->linker_section_pointer, - rel->r_addend, - lsect->which)) - return TRUE; - - ptr_linker_section_ptr = &h->linker_section_pointer; - /* Make sure this symbol is output as a dynamic symbol. */ - if (h->dynindx == -1) - { - if (! elf_link_record_dynamic_symbol (info, h)) - return FALSE; - } - - if (lsect->rel_section) - lsect->rel_section->_raw_size += sizeof (Elf_External_Rela); - } - else - { - /* Allocation of a pointer to a local symbol. */ - elf_linker_section_pointers_t **ptr = elf_local_ptr_offsets (abfd); - - /* Allocate a table to hold the local symbols if first time. */ - if (!ptr) - { - unsigned int num_symbols = elf_tdata (abfd)->symtab_hdr.sh_info; - register unsigned int i; - - amt = num_symbols; - amt *= sizeof (elf_linker_section_pointers_t *); - ptr = (elf_linker_section_pointers_t **) bfd_alloc (abfd, amt); - - if (!ptr) - return FALSE; - - elf_local_ptr_offsets (abfd) = ptr; - for (i = 0; i < num_symbols; i++) - ptr[i] = (elf_linker_section_pointers_t *) 0; - } - - /* Has this symbol already been allocated? If so, our work is done. */ - if (_bfd_elf_find_pointer_linker_section (ptr[r_symndx], - rel->r_addend, - lsect->which)) - return TRUE; - - ptr_linker_section_ptr = &ptr[r_symndx]; - - if (info->shared) - { - /* If we are generating a shared object, we need to - output a R__RELATIVE reloc so that the - dynamic linker can adjust this GOT entry. */ - BFD_ASSERT (lsect->rel_section != NULL); - lsect->rel_section->_raw_size += sizeof (Elf_External_Rela); - } - } - - /* Allocate space for a pointer in the linker section, and allocate - a new pointer record from internal memory. */ - BFD_ASSERT (ptr_linker_section_ptr != NULL); - amt = sizeof (elf_linker_section_pointers_t); - linker_section_ptr = (elf_linker_section_pointers_t *) bfd_alloc (abfd, amt); - - if (!linker_section_ptr) - return FALSE; - - linker_section_ptr->next = *ptr_linker_section_ptr; - linker_section_ptr->addend = rel->r_addend; - linker_section_ptr->which = lsect->which; - linker_section_ptr->written_address_p = FALSE; - *ptr_linker_section_ptr = linker_section_ptr; - -#if 0 - if (lsect->hole_size && lsect->hole_offset < lsect->max_hole_offset) - { - linker_section_ptr->offset = (lsect->section->_raw_size - - lsect->hole_size + (ARCH_SIZE / 8)); - lsect->hole_offset += ARCH_SIZE / 8; - lsect->sym_offset += ARCH_SIZE / 8; - if (lsect->sym_hash) - { - /* Bump up symbol value if needed. */ - lsect->sym_hash->root.u.def.value += ARCH_SIZE / 8; -#ifdef DEBUG - fprintf (stderr, "Bump up %s by %ld, current value = %ld\n", - lsect->sym_hash->root.root.string, - (long) ARCH_SIZE / 8, - (long) lsect->sym_hash->root.u.def.value); -#endif - } - } - else -#endif - linker_section_ptr->offset = lsect->section->_raw_size; - - lsect->section->_raw_size += ARCH_SIZE / 8; - -#ifdef DEBUG - fprintf (stderr, - "Create pointer in linker section %s, offset = %ld, section size = %ld\n", - lsect->name, (long) linker_section_ptr->offset, - (long) lsect->section->_raw_size); -#endif - - return TRUE; -} - -#if ARCH_SIZE==64 -#define bfd_put_ptr(BFD,VAL,ADDR) bfd_put_64 (BFD, VAL, ADDR) -#endif -#if ARCH_SIZE==32 -#define bfd_put_ptr(BFD,VAL,ADDR) bfd_put_32 (BFD, VAL, ADDR) -#endif - -/* Fill in the address for a pointer generated in a linker section. */ - -bfd_vma -elf_finish_pointer_linker_section (output_bfd, input_bfd, info, lsect, h, - relocation, rel, relative_reloc) - bfd *output_bfd; - bfd *input_bfd; - struct bfd_link_info *info; - elf_linker_section_t *lsect; - struct elf_link_hash_entry *h; - bfd_vma relocation; - const Elf_Internal_Rela *rel; - int relative_reloc; -{ - elf_linker_section_pointers_t *linker_section_ptr; - - BFD_ASSERT (lsect != NULL); - - if (h != NULL) - { - /* Handle global symbol. */ - linker_section_ptr = (_bfd_elf_find_pointer_linker_section - (h->linker_section_pointer, - rel->r_addend, - lsect->which)); - - BFD_ASSERT (linker_section_ptr != NULL); - - if (! elf_hash_table (info)->dynamic_sections_created - || (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. We must initialize this entry in the - global section. - - When doing a dynamic link, we create a .rela. - relocation entry to initialize the value. This - is done in the finish_dynamic_symbol routine. */ - if (!linker_section_ptr->written_address_p) - { - linker_section_ptr->written_address_p = TRUE; - bfd_put_ptr (output_bfd, - relocation + linker_section_ptr->addend, - (lsect->section->contents - + linker_section_ptr->offset)); - } - } - } - else - { - /* Handle local symbol. */ - unsigned long r_symndx = ELF_R_SYM (rel->r_info); - BFD_ASSERT (elf_local_ptr_offsets (input_bfd) != NULL); - BFD_ASSERT (elf_local_ptr_offsets (input_bfd)[r_symndx] != NULL); - linker_section_ptr = (_bfd_elf_find_pointer_linker_section - (elf_local_ptr_offsets (input_bfd)[r_symndx], - rel->r_addend, - lsect->which)); - - BFD_ASSERT (linker_section_ptr != NULL); - - /* Write out pointer if it hasn't been rewritten out before. */ - if (!linker_section_ptr->written_address_p) - { - linker_section_ptr->written_address_p = TRUE; - bfd_put_ptr (output_bfd, relocation + linker_section_ptr->addend, - lsect->section->contents + linker_section_ptr->offset); - - if (info->shared) - { - asection *srel = lsect->rel_section; - Elf_Internal_Rela outrel[MAX_INT_RELS_PER_EXT_REL]; - bfd_byte *erel; - struct elf_backend_data *bed = get_elf_backend_data (output_bfd); - unsigned int i; - - /* We need to generate a relative reloc for the dynamic - linker. */ - if (!srel) - { - srel = bfd_get_section_by_name (elf_hash_table (info)->dynobj, - lsect->rel_name); - lsect->rel_section = srel; - } - - BFD_ASSERT (srel != NULL); - - for (i = 0; i < bed->s->int_rels_per_ext_rel; i++) - { - outrel[i].r_offset = (lsect->section->output_section->vma - + lsect->section->output_offset - + linker_section_ptr->offset); - outrel[i].r_info = 0; - outrel[i].r_addend = 0; - } - outrel[0].r_info = ELF_R_INFO (0, relative_reloc); - erel = lsect->section->contents; - erel += (elf_section_data (lsect->section)->rel_count++ - * sizeof (Elf_External_Rela)); - elf_swap_reloca_out (output_bfd, outrel, erel); - } - } - } - - relocation = (lsect->section->output_offset - + linker_section_ptr->offset - - lsect->hole_offset - - lsect->sym_offset); - -#ifdef DEBUG - fprintf (stderr, - "Finish pointer in linker section %s, offset = %ld (0x%lx)\n", - lsect->name, (long) relocation, (long) relocation); -#endif - - /* Subtract out the addend, because it will get added back in by the normal - processing. */ - return relocation - linker_section_ptr->addend; -} - /* Garbage collect unused sections. */ static bfd_boolean elf_gc_mark @@ -6138,7 +5930,7 @@ elf_gc_sections (abfd, info) struct elf_link_hash_entry *h, Elf_Internal_Sym *)); if (!get_elf_backend_data (abfd)->can_gc_sections - || info->relocateable || info->emitrelocations + || info->relocatable || info->emitrelocations || elf_hash_table (info)->dynamic_sections_created) return TRUE; @@ -6252,23 +6044,25 @@ elf_gc_record_vtentry (abfd, sec, h, add if (addend >= h->vtable_entries_size) { - size_t size, bytes; + size_t size, bytes, file_align; bfd_boolean *ptr = h->vtable_entries_used; /* While the symbol is undefined, we have to be prepared to handle a zero size. */ + file_align = 1 << log_file_align; if (h->root.type == bfd_link_hash_undefined) - size = addend; + size = addend + file_align; else { size = h->size; - if (size < addend) + if (addend >= size) { /* Oops! We've got a reference past the defined end of the table. This is probably a bug -- shall we warn? */ - size = addend; + size = addend + file_align; } } + size = (size + file_align - 1) & -file_align; /* Allocate one extra entry for use as a "done" flag for the consolidation pass. */ @@ -6546,7 +6340,7 @@ elf_bfd_discard_info (output_bfd, info) continue; eh = bfd_get_section_by_name (abfd, ".eh_frame"); - if (info->relocateable + if (info->relocatable || (eh != NULL && (eh->_raw_size == 0 || bfd_is_abs_section (eh->output_section)))) @@ -6652,7 +6446,7 @@ elf_bfd_discard_info (output_bfd, info) } if (info->eh_frame_hdr - && !info->relocateable + && !info->relocatable && _bfd_elf_discard_section_eh_frame_hdr (output_bfd, info)) ret = TRUE; diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elfn32-mips.c binutils-2.14.90.0.5/bfd/elfn32-mips.c --- binutils-2.14.90.0.4.1/bfd/elfn32-mips.c 2003-05-23 07:18:52.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/elfn32-mips.c 2003-07-23 08:08:09.000000000 -0700 @@ -1453,9 +1453,10 @@ mips_elf_got16_reloc (abfd, reloc_entry, char **error_message; { /* If we're relocating, and this is a local symbol, we can handle it - just like HI16. */ + just like an R_MIPS_HI16. */ if (output_bfd != (bfd *) NULL - && (symbol->flags & BSF_SECTION_SYM) != 0) + && ((symbol->flags & BSF_SECTION_SYM) != 0 + || (symbol->flags & BSF_LOCAL) == 0)) return mips_elf_hi16_reloc (abfd, reloc_entry, symbol, data, input_section, output_bfd, error_message); @@ -1519,18 +1520,18 @@ mips_elf_assign_gp (output_bfd, pgp) symbol value correctly. We look up the symbol _gp in the output BFD. If we can't find it, we're stuck. We cache it in the ELF target data. We don't need to adjust the symbol value for an - external symbol if we are producing relocateable output. */ + external symbol if we are producing relocatable output. */ static bfd_reloc_status_type -mips_elf_final_gp (output_bfd, symbol, relocateable, error_message, pgp) +mips_elf_final_gp (output_bfd, symbol, relocatable, error_message, pgp) bfd *output_bfd; asymbol *symbol; - bfd_boolean relocateable; + bfd_boolean relocatable; char **error_message; bfd_vma *pgp; { if (bfd_is_und_section (symbol->section) - && ! relocateable) + && ! relocatable) { *pgp = 0; return bfd_reloc_undefined; @@ -1538,10 +1539,10 @@ mips_elf_final_gp (output_bfd, symbol, r *pgp = _bfd_get_gp_value (output_bfd); if (*pgp == 0 - && (! relocateable + && (! relocatable || (symbol->flags & BSF_SECTION_SYM) != 0)) { - if (relocateable) + if (relocatable) { /* Make up a value. */ *pgp = symbol->section->output_section->vma /*+ 0x4000*/; @@ -1572,27 +1573,27 @@ mips_elf_gprel16_reloc (abfd, reloc_entr bfd *output_bfd; char **error_message ATTRIBUTE_UNUSED; { - bfd_boolean relocateable; + bfd_boolean relocatable; bfd_reloc_status_type ret; bfd_vma gp; GET_RELOC_ADDEND (output_bfd, symbol, reloc_entry, input_section) if (output_bfd != (bfd *) NULL) - relocateable = TRUE; + relocatable = TRUE; else { - relocateable = FALSE; + relocatable = FALSE; output_bfd = symbol->section->output_section->owner; } - ret = mips_elf_final_gp (output_bfd, symbol, relocateable, error_message, + ret = mips_elf_final_gp (output_bfd, symbol, relocatable, error_message, &gp); if (ret != bfd_reloc_ok) return ret; return _bfd_mips_elf_gprel16_with_gp (abfd, symbol, reloc_entry, - input_section, relocateable, + input_section, relocatable, data, gp); } @@ -1609,7 +1610,7 @@ mips_elf_literal_reloc (abfd, reloc_entr bfd *output_bfd; char **error_message; { - bfd_boolean relocateable; + bfd_boolean relocatable; bfd_reloc_status_type ret; bfd_vma gp; @@ -1617,20 +1618,20 @@ mips_elf_literal_reloc (abfd, reloc_entr /* FIXME: The entries in the .lit8 and .lit4 sections should be merged. */ if (output_bfd != (bfd *) NULL) - relocateable = TRUE; + relocatable = TRUE; else { - relocateable = FALSE; + relocatable = FALSE; output_bfd = symbol->section->output_section->owner; } - ret = mips_elf_final_gp (output_bfd, symbol, relocateable, error_message, + ret = mips_elf_final_gp (output_bfd, symbol, relocatable, error_message, &gp); if (ret != bfd_reloc_ok) return ret; return _bfd_mips_elf_gprel16_with_gp (abfd, symbol, reloc_entry, - input_section, relocateable, + input_section, relocatable, data, gp); } @@ -1648,18 +1649,16 @@ mips_elf_gprel32_reloc (abfd, reloc_entr bfd *output_bfd; char **error_message; { - bfd_boolean relocateable; + bfd_boolean relocatable; bfd_reloc_status_type ret; bfd_vma gp; GET_RELOC_ADDEND (output_bfd, symbol, reloc_entry, input_section) - /* R_MIPS_GPREL32 relocations are defined for local symbols only. - We will only have an addend if this is a newly created reloc, - not read from an ELF file. */ + /* R_MIPS_GPREL32 relocations are defined for local symbols only. */ if (output_bfd != (bfd *) NULL && (symbol->flags & BSF_SECTION_SYM) == 0 - && reloc_entry->addend == 0) + && (symbol->flags & BSF_LOCAL) != 0) { *error_message = (char *) _("32bits gp relative relocation occurs for an external symbol"); @@ -1668,32 +1667,32 @@ mips_elf_gprel32_reloc (abfd, reloc_entr if (output_bfd != (bfd *) NULL) { - relocateable = TRUE; + relocatable = TRUE; gp = _bfd_get_gp_value (output_bfd); } else { - relocateable = FALSE; + relocatable = FALSE; output_bfd = symbol->section->output_section->owner; - ret = mips_elf_final_gp (output_bfd, symbol, relocateable, + ret = mips_elf_final_gp (output_bfd, symbol, relocatable, error_message, &gp); if (ret != bfd_reloc_ok) return ret; } return gprel32_with_gp (abfd, symbol, reloc_entry, input_section, - relocateable, data, gp); + relocatable, data, gp); } static bfd_reloc_status_type -gprel32_with_gp (abfd, symbol, reloc_entry, input_section, relocateable, data, +gprel32_with_gp (abfd, symbol, reloc_entry, input_section, relocatable, data, gp) bfd *abfd; asymbol *symbol; arelent *reloc_entry; asection *input_section; - bfd_boolean relocateable; + bfd_boolean relocatable; PTR data; bfd_vma gp; { @@ -1720,15 +1719,15 @@ gprel32_with_gp (abfd, symbol, reloc_ent val += reloc_entry->addend; /* Adjust val for the final section location and GP value. If we - are producing relocateable output, we don't want to do this for + are producing relocatable output, we don't want to do this for an external symbol. */ - if (! relocateable + if (! relocatable || (symbol->flags & BSF_SECTION_SYM) != 0) val += relocation - gp; bfd_put_32 (abfd, (bfd_vma) val, (bfd_byte *) data + reloc_entry->address); - if (relocateable) + if (relocatable) reloc_entry->address += input_section->output_offset; return bfd_reloc_ok; @@ -1750,8 +1749,11 @@ mips_elf_shift6_reloc (abfd, reloc_entry { GET_RELOC_ADDEND (output_bfd, symbol, reloc_entry, input_section) - reloc_entry->addend = (reloc_entry->addend & 0x00007c0) - | (reloc_entry->addend & 0x00000800) >> 9; + if (reloc_entry->howto->partial_inplace) + { + reloc_entry->addend = ((reloc_entry->addend & 0x00007c0) + | (reloc_entry->addend & 0x00000800) >> 9); + } SET_RELOC_ADDEND (reloc_entry) @@ -1798,23 +1800,25 @@ mips16_gprel_reloc (abfd, reloc_entry, s bfd *output_bfd; char **error_message; { - bfd_boolean relocateable; + bfd_boolean relocatable; bfd_reloc_status_type ret; bfd_vma gp; - unsigned short extend, insn; - unsigned long final; + unsigned short extend = 0; + unsigned short insn = 0; + bfd_signed_vma val; + bfd_vma relocation; GET_RELOC_ADDEND (output_bfd, symbol, reloc_entry, input_section) if (output_bfd != NULL) - relocateable = TRUE; + relocatable = TRUE; else { - relocateable = FALSE; + relocatable = FALSE; output_bfd = symbol->section->output_section->owner; } - ret = mips_elf_final_gp (output_bfd, symbol, relocateable, error_message, + ret = mips_elf_final_gp (output_bfd, symbol, relocatable, error_message, &gp); if (ret != bfd_reloc_ok) return ret; @@ -1822,33 +1826,55 @@ mips16_gprel_reloc (abfd, reloc_entry, s if (reloc_entry->address > input_section->_cooked_size) return bfd_reloc_outofrange; - /* Pick up the mips16 extend instruction and the real instruction. */ - extend = bfd_get_16 (abfd, (bfd_byte *) data + reloc_entry->address); - insn = bfd_get_16 (abfd, (bfd_byte *) data + reloc_entry->address + 2); - - /* Stuff the current addend back as a 32 bit value, do the usual - relocation, and then clean up. */ - bfd_put_32 (abfd, - (bfd_vma) (((extend & 0x1f) << 11) - | (extend & 0x7e0) - | (insn & 0x1f)), - (bfd_byte *) data + reloc_entry->address); - - ret = _bfd_mips_elf_gprel16_with_gp (abfd, symbol, reloc_entry, - input_section, relocateable, data, gp); - - final = bfd_get_32 (abfd, (bfd_byte *) data + reloc_entry->address); - bfd_put_16 (abfd, - (bfd_vma) ((extend & 0xf800) - | ((final >> 11) & 0x1f) - | (final & 0x7e0)), - (bfd_byte *) data + reloc_entry->address); - bfd_put_16 (abfd, - (bfd_vma) ((insn & 0xffe0) - | (final & 0x1f)), - (bfd_byte *) data + reloc_entry->address + 2); + if (bfd_is_com_section (symbol->section)) + relocation = 0; + else + relocation = symbol->value; + + relocation += symbol->section->output_section->vma; + relocation += symbol->section->output_offset; + + /* Set val to the offset into the section or symbol. */ + val = reloc_entry->addend; + + if (reloc_entry->howto->partial_inplace) + { + /* Pick up the mips16 extend instruction and the real instruction. */ + extend = bfd_get_16 (abfd, (bfd_byte *) data + reloc_entry->address); + insn = bfd_get_16 (abfd, (bfd_byte *) data + reloc_entry->address + 2); + val += ((extend & 0x1f) << 11) | (extend & 0x7e0) | (insn & 0x1f); + } + + _bfd_mips_elf_sign_extend(val, 16); + + /* Adjust val for the final section location and GP value. If we + are producing relocatable output, we don't want to do this for + an external symbol. */ + if (! relocatable + || (symbol->flags & BSF_SECTION_SYM) != 0) + val += relocation - gp; + + if (reloc_entry->howto->partial_inplace) + { + bfd_put_16 (abfd, + (bfd_vma) ((extend & 0xf800) + | ((val >> 11) & 0x1f) + | (val & 0x7e0)), + (bfd_byte *) data + reloc_entry->address); + bfd_put_16 (abfd, + (bfd_vma) ((insn & 0xffe0) + | (val & 0x1f)), + (bfd_byte *) data + reloc_entry->address + 2); + } + else + reloc_entry->addend = val; - return ret; + if (relocatable) + reloc_entry->address += input_section->output_offset; + else if (((val & ~0xffff) != ~0xffff) && ((val & ~0xffff) != 0)) + return bfd_reloc_overflow; + + return bfd_reloc_ok; } #undef GET_RELOC_ADDEND diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elfxx-ia64.c binutils-2.14.90.0.5/bfd/elfxx-ia64.c --- binutils-2.14.90.0.4.1/bfd/elfxx-ia64.c 2003-05-15 13:42:25.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/elfxx-ia64.c 2003-07-23 08:08:09.000000000 -0700 @@ -143,6 +143,7 @@ struct elfNN_ia64_link_hash_table asection *got_sec; /* the linkage table section (or NULL) */ asection *rel_got_sec; /* dynamic relocation section for same */ asection *fptr_sec; /* function descriptor table (or NULL) */ + asection *rel_fptr_sec; /* dynamic relocation section for same */ asection *plt_sec; /* the primary plt section (or NULL) */ asection *pltoff_sec; /* private descriptors for plt (or NULL) */ asection *rel_pltoff_sec; /* dynamic relocation section for same */ @@ -192,14 +193,6 @@ static bfd_boolean elfNN_ia64_add_symbol PARAMS ((bfd *abfd, struct bfd_link_info *info, const Elf_Internal_Sym *sym, const char **namep, flagword *flagsp, asection **secp, bfd_vma *valp)); -static bfd_boolean elfNN_ia64_aix_vec - PARAMS ((const bfd_target *vec)); -static bfd_boolean elfNN_ia64_aix_add_symbol_hook - PARAMS ((bfd *abfd, struct bfd_link_info *info, const Elf_Internal_Sym *sym, - const char **namep, flagword *flagsp, asection **secp, - bfd_vma *valp)); -static bfd_boolean elfNN_ia64_aix_link_add_symbols - PARAMS ((bfd *abfd, struct bfd_link_info *info)); static int elfNN_ia64_additional_program_headers PARAMS ((bfd *abfd)); static bfd_boolean elfNN_ia64_modify_segment_map @@ -207,7 +200,7 @@ static bfd_boolean elfNN_ia64_modify_seg static bfd_boolean elfNN_ia64_is_local_label_name PARAMS ((bfd *abfd, const char *name)); static bfd_boolean elfNN_ia64_dynamic_symbol_p - PARAMS ((struct elf_link_hash_entry *h, struct bfd_link_info *info)); + PARAMS ((struct elf_link_hash_entry *h, struct bfd_link_info *info, int)); static bfd_boolean elfNN_ia64_local_hash_table_init PARAMS ((struct elfNN_ia64_local_hash_table *ht, bfd *abfd, new_hash_entry_func new)); @@ -367,7 +360,7 @@ elfNN_ia64_reloc (abfd, reloc, sym, data #define IA64_HOWTO(TYPE, NAME, SIZE, PCREL, IN) \ HOWTO (TYPE, 0, SIZE, 0, PCREL, 0, complain_overflow_signed, \ - elfNN_ia64_reloc, NAME, FALSE, 0, 0, IN) + elfNN_ia64_reloc, NAME, FALSE, 0, -1, IN) /* This table has to be sorted according to increasing number of the TYPE field. */ @@ -656,9 +649,6 @@ static const bfd_byte plt_full_entry[PLT }; #define ELF_DYNAMIC_INTERPRETER "/usr/lib/ld.so.1" -#define AIX_DYNAMIC_INTERPRETER "/usr/lib/ia64l64/libc.so.1" -#define DYNAMIC_INTERPRETER(abfd) \ - (elfNN_ia64_aix_vec (abfd->xvec) ? AIX_DYNAMIC_INTERPRETER : ELF_DYNAMIC_INTERPRETER) static const bfd_byte oor_brl[16] = { @@ -841,7 +831,7 @@ elfNN_ia64_relax_section (abfd, sec, lin } /* Can't do anything else with dynamic symbols. */ - else if (elfNN_ia64_dynamic_symbol_p (h, link_info)) + else if (elfNN_ia64_dynamic_symbol_p (h, link_info, r_type)) continue; else @@ -1341,7 +1331,7 @@ elfNN_ia64_add_symbol_hook (abfd, info, bfd_vma *valp; { if (sym->st_shndx == SHN_COMMON - && !info->relocateable + && !info->relocatable && sym->st_size <= elf_gp_size (abfd)) { /* Common symbols less than or equal to -G nn bytes are @@ -1366,114 +1356,6 @@ elfNN_ia64_add_symbol_hook (abfd, info, return TRUE; } -static bfd_boolean -elfNN_ia64_aix_vec (const bfd_target *vec) -{ - extern const bfd_target bfd_elfNN_ia64_aix_little_vec; - extern const bfd_target bfd_elfNN_ia64_aix_big_vec; - - return (/**/vec == & bfd_elfNN_ia64_aix_little_vec - || vec == & bfd_elfNN_ia64_aix_big_vec); -} - -/* Hook called by the linker routine which adds symbols from an object - file. We use it to handle OS-specific symbols. */ - -static bfd_boolean -elfNN_ia64_aix_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp) - bfd *abfd; - struct bfd_link_info *info; - const Elf_Internal_Sym *sym; - const char **namep; - flagword *flagsp; - asection **secp; - bfd_vma *valp; -{ - if (strcmp (*namep, "__GLOB_DATA_PTR") == 0) - { - /* Define __GLOB_DATA_PTR when it is encountered. This is expected to - be a linker-defined symbol by the Aix C runtime startup code. IBM sez - no one else should use it b/c it is undocumented. */ - struct elf_link_hash_entry *h; - - h = elf_link_hash_lookup (elf_hash_table (info), *namep, - FALSE, FALSE, FALSE); - if (h == NULL) - { - struct elf_backend_data *bed; - struct elfNN_ia64_link_hash_table *ia64_info; - struct bfd_link_hash_entry *bh = NULL; - - bed = get_elf_backend_data (abfd); - ia64_info = elfNN_ia64_hash_table (info); - - if (!(_bfd_generic_link_add_one_symbol - (info, abfd, *namep, BSF_GLOBAL, - bfd_get_section_by_name (abfd, ".bss"), - bed->got_symbol_offset, (const char *) NULL, FALSE, - bed->collect, &bh))) - return FALSE; - - h = (struct elf_link_hash_entry *) bh; - h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR; - h->type = STT_OBJECT; - - if (! _bfd_elf_link_record_dynamic_symbol (info, h)) - return FALSE; - } - - return TRUE; - } - else if (sym->st_shndx == SHN_LOOS) - { - unsigned int i; - - /* SHN_AIX_SYSCALL: Treat this as any other symbol. The special symbol - is only relevant when compiling code for extended system calls. - Replace the "special" section with .text, if possible. - Note that these symbols are always assumed to be in .text. */ - for (i = 1; i < elf_numsections (abfd); i++) - { - asection * sec = bfd_section_from_elf_index (abfd, i); - - if (sec && strcmp (sec->name, ".text") == 0) - { - *secp = sec; - break; - } - } - - if (*secp == NULL) - *secp = bfd_abs_section_ptr; - - *valp = sym->st_size; - - return TRUE; - } - else - { - return elfNN_ia64_add_symbol_hook (abfd, info, sym, - namep, flagsp, secp, valp); - } -} - -bfd_boolean -elfNN_ia64_aix_link_add_symbols (abfd, info) - bfd *abfd; - struct bfd_link_info *info; -{ - /* Make sure dynamic sections are always created. */ - if (! elf_hash_table (info)->dynamic_sections_created - && abfd->xvec == info->hash->creator) - { - if (! _bfd_elf_link_create_dynamic_sections (abfd, info)) - return FALSE; - } - - /* Now do the standard call. */ - return bfd_elfNN_bfd_link_add_symbols (abfd, info); -} - /* Return the number of additional phdrs we will need. */ static int @@ -1626,39 +1508,16 @@ elfNN_ia64_is_local_label_name (abfd, na /* Should we do dynamic things to this symbol? */ static bfd_boolean -elfNN_ia64_dynamic_symbol_p (h, info) +elfNN_ia64_dynamic_symbol_p (h, info, r_type) struct elf_link_hash_entry *h; struct bfd_link_info *info; + int r_type; { - if (h == NULL) - return FALSE; - - while (h->root.type == bfd_link_hash_indirect - || h->root.type == bfd_link_hash_warning) - h = (struct elf_link_hash_entry *) h->root.u.i.link; - - if (h->dynindx == -1) - return FALSE; - switch (ELF_ST_VISIBILITY (h->other)) - { - case STV_INTERNAL: - case STV_HIDDEN: - return FALSE; - default: - break; - } - - if (h->root.type == bfd_link_hash_undefweak - || h->root.type == bfd_link_hash_defweak) - return TRUE; + bfd_boolean ignore_protected + = ((r_type & 0xf8) == 0x40 /* FPTR relocs */ + || (r_type & 0xf8) == 0x50); /* LTOFF_FPTR relocs */ - if ((info->shared && (!info->symbolic || info->allow_shlib_undefined)) - || ((h->elf_link_hash_flags - & (ELF_LINK_HASH_DEF_DYNAMIC | ELF_LINK_HASH_REF_REGULAR)) - == (ELF_LINK_HASH_DEF_DYNAMIC | ELF_LINK_HASH_REF_REGULAR))) - return TRUE; - - return FALSE; + return _bfd_elf_dynamic_symbol_p (h, info, ignore_protected); } static bfd_boolean @@ -2063,7 +1922,7 @@ get_got (abfd, info, ia64_info) static asection * get_fptr (abfd, info, ia64_info) bfd *abfd; - struct bfd_link_info *info ATTRIBUTE_UNUSED; + struct bfd_link_info *info; struct elfNN_ia64_link_hash_table *ia64_info; { asection *fptr; @@ -2083,7 +1942,7 @@ get_fptr (abfd, info, ia64_info) | SEC_LOAD | SEC_HAS_CONTENTS | SEC_IN_MEMORY - | SEC_READONLY + | (info->pie ? 0 : SEC_READONLY) | SEC_LINKER_CREATED)) || !bfd_set_section_alignment (abfd, fptr, 4)) { @@ -2092,6 +1951,26 @@ get_fptr (abfd, info, ia64_info) } ia64_info->fptr_sec = fptr; + + if (info->pie) + { + asection *fptr_rel; + fptr_rel = bfd_make_section(abfd, ".rela.opd"); + if (fptr_rel == NULL + || !bfd_set_section_flags (abfd, fptr_rel, + (SEC_ALLOC | SEC_LOAD + | SEC_HAS_CONTENTS + | SEC_IN_MEMORY + | SEC_LINKER_CREATED + | SEC_READONLY)) + || !bfd_set_section_alignment (abfd, fptr_rel, 3)) + { + BFD_ASSERT (0); + return NULL; + } + + ia64_info->rel_fptr_sec = fptr_rel; + } } return fptr; @@ -2228,7 +2107,7 @@ elfNN_ia64_check_relocs (abfd, info, sec const Elf_Internal_Rela *rel; asection *got, *fptr, *srel; - if (info->relocateable) + if (info->relocatable) return TRUE; symtab_hdr = &elf_tdata (abfd)->symtab_hdr; @@ -2278,11 +2157,10 @@ elfNN_ia64_check_relocs (abfd, info, sec have yet been processed. Do something with what we know, as this may help reduce memory usage and processing time later. */ maybe_dynamic = FALSE; - if (h && ((info->shared + if (h && ((!info->executable && (!info->symbolic || info->allow_shlib_undefined)) || ! (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) - || h->root.type == bfd_link_hash_defweak - || elfNN_ia64_aix_vec (abfd->xvec))) + || h->root.type == bfd_link_hash_defweak)) maybe_dynamic = TRUE; need_entry = 0; @@ -2339,7 +2217,7 @@ elfNN_ia64_check_relocs (abfd, info, sec case R_IA64_FPTR32LSB: case R_IA64_FPTR64MSB: case R_IA64_FPTR64LSB: - if (info->shared || h || elfNN_ia64_aix_vec (abfd->xvec)) + if (info->shared || h) need_entry = NEED_FPTR | NEED_DYNREL; else need_entry = NEED_FPTR; @@ -2391,10 +2269,7 @@ elfNN_ia64_check_relocs (abfd, info, sec case R_IA64_DIR64MSB: case R_IA64_DIR64LSB: /* Shared objects will always need at least a REL relocation. */ - if (info->shared || maybe_dynamic - || (elfNN_ia64_aix_vec (abfd->xvec) - && (!h || strcmp (h->root.root.string, - "__GLOB_DATA_PTR") != 0))) + if (info->shared || maybe_dynamic) need_entry = NEED_DYNREL; dynrel_type = R_IA64_DIR64LSB; break; @@ -2468,9 +2343,7 @@ elfNN_ia64_check_relocs (abfd, info, sec /* FPTRs for shared libraries are allocated by the dynamic linker. Make sure this local symbol will appear in the dynamic symbol table. */ - if (!h && (info->shared - /* AIX also needs one */ - || elfNN_ia64_aix_vec (abfd->xvec))) + if (!h && info->shared) { if (! (_bfd_elfNN_link_record_local_dynamic_symbol (info, abfd, (long) r_symndx))) @@ -2520,10 +2393,7 @@ allocate_global_data_got (dyn_i, data) if ((dyn_i->want_got || dyn_i->want_gotx) && ! dyn_i->want_fptr - && (elfNN_ia64_dynamic_symbol_p (dyn_i->h, x->info) - || (elfNN_ia64_aix_vec (x->info->hash->creator) - && (!dyn_i->h || strcmp (dyn_i->h->root.root.string, - "__GLOB_DATA_PTR") != 0)))) + && elfNN_ia64_dynamic_symbol_p (dyn_i->h, x->info, 0)) { dyn_i->got_offset = x->ofs; x->ofs += 8; @@ -2535,7 +2405,7 @@ allocate_global_data_got (dyn_i, data) } if (dyn_i->want_dtpmod) { - if (elfNN_ia64_dynamic_symbol_p (dyn_i->h, x->info)) + if (elfNN_ia64_dynamic_symbol_p (dyn_i->h, x->info, 0)) { dyn_i->dtpmod_offset = x->ofs; x->ofs += 8; @@ -2572,8 +2442,7 @@ allocate_global_fptr_got (dyn_i, data) if (dyn_i->want_got && dyn_i->want_fptr - && (elfNN_ia64_dynamic_symbol_p (dyn_i->h, x->info) - || elfNN_ia64_aix_vec (x->info->hash->creator))) + && elfNN_ia64_dynamic_symbol_p (dyn_i->h, x->info, R_IA64_FPTR64LSB)) { dyn_i->got_offset = x->ofs; x->ofs += 8; @@ -2591,8 +2460,7 @@ allocate_local_got (dyn_i, data) struct elfNN_ia64_allocate_data *x = (struct elfNN_ia64_allocate_data *)data; if ((dyn_i->want_got || dyn_i->want_gotx) - && ! (elfNN_ia64_dynamic_symbol_p (dyn_i->h, x->info) - || elfNN_ia64_aix_vec (x->info->hash->creator))) + && !elfNN_ia64_dynamic_symbol_p (dyn_i->h, x->info, 0)) { dyn_i->got_offset = x->ofs; x->ofs += 8; @@ -2638,15 +2506,10 @@ allocate_fptr (dyn_i, data) || h->root.type == bfd_link_hash_warning) h = (struct elf_link_hash_entry *) h->root.u.i.link; - if ((x->info->shared - && (!h - || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT - || h->root.type != bfd_link_hash_undefweak)) - /* AIX needs an FPTR in this case. */ - || (elfNN_ia64_aix_vec (x->info->hash->creator) - && (!h - || h->root.type == bfd_link_hash_defined - || h->root.type == bfd_link_hash_defweak))) + if (!x->info->executable + && (!h + || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT + || h->root.type != bfd_link_hash_undefweak)) { if (h && h->dynindx == -1) { @@ -2691,7 +2554,7 @@ allocate_plt_entries (dyn_i, data) h = (struct elf_link_hash_entry *) h->root.u.i.link; /* ??? Versioned symbols seem to lose ELF_LINK_HASH_NEEDS_PLT. */ - if (elfNN_ia64_dynamic_symbol_p (h, x->info)) + if (elfNN_ia64_dynamic_symbol_p (h, x->info, 0)) { bfd_size_type offset = x->ofs; if (offset == 0) @@ -2769,11 +2632,10 @@ allocate_dynrel_entries (dyn_i, data) bfd_boolean dynamic_symbol, shared, resolved_zero; ia64_info = elfNN_ia64_hash_table (x->info); - dynamic_symbol = elfNN_ia64_dynamic_symbol_p (dyn_i->h, x->info) - || (elfNN_ia64_aix_vec (x->info->hash->creator) - /* Don't allocate an entry for __GLOB_DATA_PTR */ - && (!dyn_i->h || strcmp (dyn_i->h->root.root.string, - "__GLOB_DATA_PTR") != 0)); + + /* Note that this can't be used in relation to FPTR relocs below. */ + dynamic_symbol = elfNN_ia64_dynamic_symbol_p (dyn_i->h, x->info, 0); + shared = x->info->shared; resolved_zero = (dyn_i->h && ELF_ST_VISIBILITY (dyn_i->h->other) @@ -2788,10 +2650,11 @@ allocate_dynrel_entries (dyn_i, data) switch (rent->type) { case R_IA64_FPTR64LSB: - /* Allocate one iff !want_fptr, which by this point will - be true only if we're actually allocating one statically - in the main executable. */ - if (dyn_i->want_fptr) + /* Allocate one iff !want_fptr and not PIE, which by this point + will be true only if we're actually allocating one statically + in the main executable. Position independent executables + need a relative reloc. */ + if (dyn_i->want_fptr && !x->info->pie) continue; break; case R_IA64_PCREL64LSB: @@ -2828,13 +2691,24 @@ allocate_dynrel_entries (dyn_i, data) || (dyn_i->want_ltoff_fptr && dyn_i->h && dyn_i->h->dynindx != -1)) - ia64_info->rel_got_sec->_raw_size += sizeof (ElfNN_External_Rela); + { + if (!dyn_i->want_ltoff_fptr + || !x->info->pie + || dyn_i->h == NULL + || dyn_i->h->root.type != bfd_link_hash_undefweak) + ia64_info->rel_got_sec->_raw_size += sizeof (ElfNN_External_Rela); + } if ((dynamic_symbol || shared) && dyn_i->want_tprel) ia64_info->rel_got_sec->_raw_size += sizeof (ElfNN_External_Rela); if (dynamic_symbol && dyn_i->want_dtpmod) ia64_info->rel_got_sec->_raw_size += sizeof (ElfNN_External_Rela); if (dynamic_symbol && dyn_i->want_dtprel) ia64_info->rel_got_sec->_raw_size += sizeof (ElfNN_External_Rela); + if (ia64_info->rel_fptr_sec && dyn_i->want_fptr) + { + if (dyn_i->h == NULL || dyn_i->h->root.type != bfd_link_hash_undefweak) + ia64_info->rel_fptr_sec->_raw_size += sizeof (ElfNN_External_Rela); + } if (!resolved_zero && dyn_i->want_pltoff) { @@ -2886,7 +2760,7 @@ elfNN_ia64_adjust_dynamic_symbol (info, static bfd_boolean elfNN_ia64_size_dynamic_sections (output_bfd, info) - bfd *output_bfd; + bfd *output_bfd ATTRIBUTE_UNUSED; struct bfd_link_info *info; { struct elfNN_ia64_allocate_data data; @@ -2903,12 +2777,12 @@ elfNN_ia64_size_dynamic_sections (output /* Set the contents of the .interp section to the interpreter. */ if (ia64_info->root.dynamic_sections_created - && !info->shared) + && info->executable) { sec = bfd_get_section_by_name (dynobj, ".interp"); BFD_ASSERT (sec != NULL); - sec->contents = (bfd_byte *) DYNAMIC_INTERPRETER (output_bfd); - sec->_raw_size = strlen (DYNAMIC_INTERPRETER (output_bfd)) + 1; + sec->contents = (bfd_byte *) ELF_DYNAMIC_INTERPRETER; + sec->_raw_size = strlen (ELF_DYNAMIC_INTERPRETER) + 1; } /* Allocate the GOT entries. */ @@ -3078,7 +2952,7 @@ elfNN_ia64_size_dynamic_sections (output later (in finish_dynamic_sections) but we must add the entries now so that we get the correct size for the .dynamic section. */ - if (!info->shared) + if (info->executable) { /* The DT_DEBUG entry is filled in by the dynamic linker and used by the debugger. */ @@ -3444,14 +3318,17 @@ set_got_entry (abfd, info, dyn_i, dynind bfd_put_64 (abfd, value, got_sec->contents + got_offset); /* Install a dynamic relocation if needed. */ - if ((info->shared - && (!dyn_i->h - || ELF_ST_VISIBILITY (dyn_i->h->other) == STV_DEFAULT - || dyn_i->h->root.type != bfd_link_hash_undefweak) - && dyn_r_type != R_IA64_DTPREL64LSB) - || elfNN_ia64_dynamic_symbol_p (dyn_i->h, info) - || elfNN_ia64_aix_vec (abfd->xvec) - || (dynindx != -1 && dyn_r_type == R_IA64_FPTR64LSB)) + if (((info->shared + && (!dyn_i->h + || ELF_ST_VISIBILITY (dyn_i->h->other) == STV_DEFAULT + || dyn_i->h->root.type != bfd_link_hash_undefweak) + && dyn_r_type != R_IA64_DTPREL64LSB) + || elfNN_ia64_dynamic_symbol_p (dyn_i->h, info, dyn_r_type) + || (dynindx != -1 && dyn_r_type == R_IA64_FPTR64LSB)) + && (!dyn_i->want_ltoff_fptr + || !info->pie + || !dyn_i->h + || dyn_i->h->root.type != bfd_link_hash_undefweak)) { if (dynindx == -1 && dyn_r_type != R_IA64_TPREL64LSB @@ -3530,6 +3407,24 @@ set_fptr_entry (abfd, info, dyn_i, value bfd_put_64 (abfd, value, fptr_sec->contents + dyn_i->fptr_offset); bfd_put_64 (abfd, _bfd_get_gp_value (abfd), fptr_sec->contents + dyn_i->fptr_offset + 8); + if (ia64_info->rel_fptr_sec) + { + Elf_Internal_Rela outrel; + bfd_byte *loc; + + if (bfd_little_endian (abfd)) + outrel.r_info = ELFNN_R_INFO (0, R_IA64_IPLTLSB); + else + outrel.r_info = ELFNN_R_INFO (0, R_IA64_IPLTMSB); + outrel.r_addend = value; + outrel.r_offset = (fptr_sec->output_section->vma + + fptr_sec->output_offset + + dyn_i->fptr_offset); + loc = ia64_info->rel_fptr_sec->contents; + loc += ia64_info->rel_fptr_sec->reloc_count++ + * sizeof (ElfNN_External_Rela); + bfd_elfNN_swap_reloca_out (abfd, &outrel, loc); + } } /* Return the descriptor's address. */ @@ -3779,7 +3674,7 @@ elfNN_ia64_final_link (abfd, info) ia64_info = elfNN_ia64_hash_table (info); /* Make sure we've got ourselves a nice fat __gp value. */ - if (!info->relocateable) + if (!info->relocatable) { bfd_vma gp_val = _bfd_get_gp_value (abfd); struct elf_link_hash_entry *gp; @@ -3805,7 +3700,7 @@ elfNN_ia64_final_link (abfd, info) of the .IA_64.unwind section. Force this section to be relocated into memory rather than written immediately to the output file. */ unwind_output_sec = NULL; - if (!info->relocateable) + if (!info->relocatable) { asection *s = bfd_get_section_by_name (abfd, ELF_STRING_ia64_unwind); if (s) @@ -3863,7 +3758,7 @@ elfNN_ia64_relocate_section (output_bfd, ia64_info = elfNN_ia64_hash_table (info); /* Infect various flags from the input section to the output section. */ - if (info->relocateable) + if (info->relocatable) { bfd_vma flags; @@ -3893,7 +3788,6 @@ elfNN_ia64_relocate_section (output_bfd, asection *sym_sec; bfd_byte *hit_addr; bfd_boolean dynamic_symbol_p; - bfd_boolean local_symbol_p; bfd_boolean undef_weak_ref; r_type = ELFNN_R_TYPE (rel->r_info); @@ -3986,7 +3880,7 @@ elfNN_ia64_relocate_section (output_bfd, } else if (h->root.type == bfd_link_hash_undefweak) undef_weak_ref = TRUE; - else if (info->shared + else if (! info->executable && !info->no_undefined && ELF_ST_VISIBILITY (h->other) == STV_DEFAULT) ; @@ -4004,12 +3898,7 @@ elfNN_ia64_relocate_section (output_bfd, hit_addr = contents + rel->r_offset; value += rel->r_addend; - dynamic_symbol_p = elfNN_ia64_dynamic_symbol_p (h, info); - /* Is this symbol locally defined? A protected symbol is locallly - defined. But its function descriptor may not. Use it with - caution. */ - local_symbol_p = (! dynamic_symbol_p - || ELF_ST_VISIBILITY (h->other) != STV_DEFAULT); + dynamic_symbol_p = elfNN_ia64_dynamic_symbol_p (h, info, r_type); switch (r_type) { @@ -4025,11 +3914,7 @@ elfNN_ia64_relocate_section (output_bfd, case R_IA64_DIR64MSB: case R_IA64_DIR64LSB: /* Install a dynamic relocation for this reloc. */ - if ((dynamic_symbol_p || info->shared - || (elfNN_ia64_aix_vec (info->hash->creator) - /* Don't emit relocs for __GLOB_DATA_PTR on AIX. */ - && (!h || strcmp (h->root.root.string, - "__GLOB_DATA_PTR") != 0))) + if ((dynamic_symbol_p || info->shared) && r_symndx != 0 && (input_section->flags & SEC_ALLOC) != 0) { @@ -4042,7 +3927,7 @@ elfNN_ia64_relocate_section (output_bfd, /* If we don't need dynamic symbol lookup, find a matching RELATIVE relocation. */ dyn_r_type = r_type; - if (! local_symbol_p) + if (dynamic_symbol_p) { dynindx = h->dynindx; addend = rel->r_addend; @@ -4082,8 +3967,6 @@ elfNN_ia64_relocate_section (output_bfd, addend = value; } - if (elfNN_ia64_aix_vec (info->hash->creator)) - rel->r_addend = value; elfNN_ia64_install_dyn_reloc (output_bfd, info, input_section, srel, rel->r_offset, dyn_r_type, dynindx, addend); @@ -4146,14 +4029,36 @@ elfNN_ia64_relocate_section (output_bfd, if (!undef_weak_ref) value = set_fptr_entry (output_bfd, info, dyn_i, value); } - else + if (!dyn_i->want_fptr || info->pie) { long dynindx; + unsigned int dyn_r_type = r_type; + bfd_vma addend = rel->r_addend; /* Otherwise, we expect the dynamic linker to create the entry. */ - if (h) + if (dyn_i->want_fptr) + { + if (r_type == R_IA64_FPTR64I) + { + /* We can't represent this without a dynamic symbol. + Adjust the relocation to be against an output + section symbol, which are always present in the + dynamic symbol table. */ + /* ??? People shouldn't be doing non-pic code in + shared libraries. Hork. */ + (*_bfd_error_handler) + (_("%s: linking non-pic code in a position independent executable"), + bfd_archive_filename (input_bfd)); + ret_val = FALSE; + continue; + } + dynindx = 0; + addend = value; + dyn_r_type = r_type + R_IA64_REL64LSB - R_IA64_FPTR64LSB; + } + else if (h) { if (h->dynindx != -1) dynindx = h->dynindx; @@ -4161,17 +4066,18 @@ elfNN_ia64_relocate_section (output_bfd, dynindx = (_bfd_elf_link_lookup_local_dynindx (info, h->root.u.def.section->owner, global_sym_index (h))); + value = 0; } else { dynindx = (_bfd_elf_link_lookup_local_dynindx (info, input_bfd, (long) r_symndx)); + value = 0; } elfNN_ia64_install_dyn_reloc (output_bfd, info, input_section, - srel, rel->r_offset, r_type, - dynindx, rel->r_addend); - value = 0; + srel, rel->r_offset, dyn_r_type, + dynindx, addend); } r = elfNN_ia64_install_value (output_bfd, hit_addr, value, r_type); @@ -4225,9 +4131,7 @@ elfNN_ia64_relocate_section (output_bfd, case R_IA64_PCREL64MSB: case R_IA64_PCREL64LSB: /* Install a dynamic relocation for this reloc. */ - if ((dynamic_symbol_p - || elfNN_ia64_aix_vec (info->hash->creator)) - && r_symndx != 0) + if (dynamic_symbol_p && r_symndx != 0) { BFD_ASSERT (srel != NULL); @@ -4325,7 +4229,7 @@ elfNN_ia64_relocate_section (output_bfd, { int i; for (i = m->count - 1; i >= 0; i--) - if (m->sections[i] == sym_sec->output_section) + if (m->sections[i] == input_section->output_section) break; if (i >= 0) break; @@ -4371,7 +4275,7 @@ elfNN_ia64_relocate_section (output_bfd, /* If we don't need dynamic symbol lookup, install two RELATIVE relocations. */ - if (local_symbol_p) + if (!dynamic_symbol_p) { unsigned int dyn_r_type; @@ -4979,27 +4883,6 @@ elfNN_hpux_backend_section_from_bfd_sect #include "elfNN-target.h" -/* AIX-specific vectors. */ - -#undef TARGET_LITTLE_SYM -#define TARGET_LITTLE_SYM bfd_elfNN_ia64_aix_little_vec -#undef TARGET_LITTLE_NAME -#define TARGET_LITTLE_NAME "elfNN-ia64-aix-little" -#undef TARGET_BIG_SYM -#define TARGET_BIG_SYM bfd_elfNN_ia64_aix_big_vec -#undef TARGET_BIG_NAME -#define TARGET_BIG_NAME "elfNN-ia64-aix-big" - -#undef elf_backend_add_symbol_hook -#define elf_backend_add_symbol_hook elfNN_ia64_aix_add_symbol_hook - -#undef bfd_elfNN_bfd_link_add_symbols -#define bfd_elfNN_bfd_link_add_symbols elfNN_ia64_aix_link_add_symbols - -#define elfNN_bed elfNN_ia64_aix_bed - -#include "elfNN-target.h" - /* HPUX-specific vectors. */ #undef TARGET_LITTLE_SYM @@ -5009,14 +4892,6 @@ elfNN_hpux_backend_section_from_bfd_sect #undef TARGET_BIG_NAME #define TARGET_BIG_NAME "elfNN-ia64-hpux-big" -/* We need to undo the AIX specific functions. */ - -#undef elf_backend_add_symbol_hook -#define elf_backend_add_symbol_hook elfNN_ia64_add_symbol_hook - -#undef bfd_elfNN_bfd_link_add_symbols -#define bfd_elfNN_bfd_link_add_symbols _bfd_generic_link_add_symbols - /* These are HP-UX specific functions. */ #undef elf_backend_post_process_headers diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elfxx-mips.c binutils-2.14.90.0.5/bfd/elfxx-mips.c --- binutils-2.14.90.0.4.1/bfd/elfxx-mips.c 2003-05-23 07:18:52.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/elfxx-mips.c 2003-07-23 08:08:09.000000000 -0700 @@ -163,7 +163,7 @@ struct mips_elf_hash_sort_data long min_got_dynindx; /* The greatest dynamic symbol table index corresponding to a symbol with a GOT entry that is not referenced (e.g., a dynamic symbol - with dynamic relocations pointing to it from non-primary GOTs). */ + with dynamic relocations pointing to it from non-primary GOTs). */ long max_unref_got_dynindx; /* The greatest dynamic symbol table index not corresponding to a symbol without a GOT entry. */ @@ -188,10 +188,6 @@ struct mips_elf_link_hash_entry a readonly section. */ bfd_boolean readonly_reloc; - /* The index of the first dynamic relocation (in the .rel.dyn - section) against this symbol. */ - unsigned int min_dyn_reloc_index; - /* We must not create a stub for a symbol that has relocations related to taking the function's address, i.e. any but R_MIPS_CALL*16 ones -- see "MIPS ABI Supplement, 3rd Edition", @@ -245,7 +241,8 @@ struct mips_elf_link_hash_table struct extsym_info { - bfd *abfd; struct bfd_link_info *info; + bfd *abfd; + struct bfd_link_info *info; struct ecoff_debug_info *debug; const struct ecoff_debug_swap *swap; bfd_boolean failed; @@ -389,12 +386,6 @@ static void bfd_elf32_swap_compact_rel_o PARAMS ((bfd *, const Elf32_compact_rel *, Elf32_External_compact_rel *)); static void bfd_elf32_swap_crinfo_out PARAMS ((bfd *, const Elf32_crinfo *, Elf32_External_crinfo *)); -#if 0 -static void bfd_mips_elf_swap_msym_in - PARAMS ((bfd *, const Elf32_External_Msym *, Elf32_Internal_Msym *)); -#endif -static void bfd_mips_elf_swap_msym_out - PARAMS ((bfd *, const Elf32_Internal_Msym *, Elf32_External_Msym *)); static int sort_dynamic_relocs PARAMS ((const void *, const void *)); static int sort_dynamic_relocs_64 @@ -433,7 +424,6 @@ static const Elf_Internal_Rela *mips_elf const Elf_Internal_Rela *)); static bfd_boolean mips_elf_local_relocation_p PARAMS ((bfd *, const Elf_Internal_Rela *, asection **, bfd_boolean)); -static bfd_vma mips_elf_sign_extend PARAMS ((bfd_vma, int)); static bfd_boolean mips_elf_overflow_p PARAMS ((bfd_vma, int)); static bfd_vma mips_elf_high PARAMS ((bfd_vma)); static bfd_vma mips_elf_higher PARAMS ((bfd_vma)); @@ -442,8 +432,6 @@ static bfd_boolean mips_elf_create_compa PARAMS ((bfd *, struct bfd_link_info *)); static bfd_boolean mips_elf_create_got_section PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean)); -static asection *mips_elf_create_msym_section - PARAMS ((bfd *)); static bfd_reloc_status_type mips_elf_calculate_relocation PARAMS ((bfd *, bfd *, asection *, struct bfd_link_info *, const Elf_Internal_Rela *, bfd_vma, reloc_howto_type *, @@ -516,11 +504,11 @@ static bfd *reldyn_sorting_bfd; /* The name of the options section. */ #define MIPS_ELF_OPTIONS_SECTION_NAME(abfd) \ - (ABI_64_P (abfd) ? ".MIPS.options" : ".options") + (NEWABI_P (abfd) ? ".MIPS.options" : ".options") /* The name of the stub section. */ #define MIPS_ELF_STUB_SECTION_NAME(abfd) \ - (ABI_64_P (abfd) ? ".MIPS.stubs" : ".stub") + (NEWABI_P (abfd) ? ".MIPS.stubs" : ".stub") /* The size of an external REL relocation. */ #define MIPS_ELF_REL_SIZE(abfd) \ @@ -730,7 +718,6 @@ mips_elf_link_hash_newfunc (entry, table ret->esym.ifd = -2; ret->possibly_dynamic_relocs = 0; ret->readonly_reloc = FALSE; - ret->min_dyn_reloc_index = 0; ret->no_fn_stub = FALSE; ret->fn_stub = NULL; ret->need_fn_stub = FALSE; @@ -1080,18 +1067,18 @@ mips_elf_check_mips16_stubs (h, data) bfd_reloc_status_type _bfd_mips_elf_gprel16_with_gp (abfd, symbol, reloc_entry, input_section, - relocateable, data, gp) + relocatable, data, gp) bfd *abfd; asymbol *symbol; arelent *reloc_entry; asection *input_section; - bfd_boolean relocateable; + bfd_boolean relocatable; PTR data; bfd_vma gp; { bfd_vma relocation; - unsigned long insn; - unsigned long val; + unsigned long insn = 0; + bfd_signed_vma val; if (bfd_is_com_section (symbol->section)) relocation = 0; @@ -1104,35 +1091,36 @@ _bfd_mips_elf_gprel16_with_gp (abfd, sym if (reloc_entry->address > input_section->_cooked_size) return bfd_reloc_outofrange; - insn = bfd_get_32 (abfd, (bfd_byte *) data + reloc_entry->address); - /* Set val to the offset into the section or symbol. */ - if (reloc_entry->howto->src_mask == 0) - { - /* This case occurs with the 64-bit MIPS ELF ABI. */ - val = reloc_entry->addend; - } - else + val = reloc_entry->addend; + + if (reloc_entry->howto->partial_inplace) { - val = ((insn & 0xffff) + reloc_entry->addend) & 0xffff; - if (val & 0x8000) - val -= 0x10000; + insn = bfd_get_32 (abfd, (bfd_byte *) data + reloc_entry->address); + val += insn & 0xffff; } + _bfd_mips_elf_sign_extend(val, 16); + /* Adjust val for the final section location and GP value. If we - are producing relocateable output, we don't want to do this for + are producing relocatable output, we don't want to do this for an external symbol. */ - if (! relocateable + if (! relocatable || (symbol->flags & BSF_SECTION_SYM) != 0) val += relocation - gp; - insn = (insn & ~0xffff) | (val & 0xffff); - bfd_put_32 (abfd, insn, (bfd_byte *) data + reloc_entry->address); + if (reloc_entry->howto->partial_inplace) + { + insn = (insn & ~0xffff) | (val & 0xffff); + bfd_put_32 (abfd, (bfd_vma) insn, + (bfd_byte *) data + reloc_entry->address); + } + else + reloc_entry->addend = val; - if (relocateable) + if (relocatable) reloc_entry->address += input_section->output_offset; - - else if ((long) val >= 0x8000 || (long) val < -0x8000) + else if (((val & ~0xffff) != ~0xffff) && ((val & ~0xffff) != 0)) return bfd_reloc_overflow; return bfd_reloc_ok; @@ -1191,31 +1179,6 @@ bfd_elf32_swap_crinfo_out (abfd, in, ex) H_PUT_32 (abfd, in->konst, ex->konst); H_PUT_32 (abfd, in->vaddr, ex->vaddr); } - -#if 0 -/* Swap in an MSYM entry. */ - -static void -bfd_mips_elf_swap_msym_in (abfd, ex, in) - bfd *abfd; - const Elf32_External_Msym *ex; - Elf32_Internal_Msym *in; -{ - in->ms_hash_value = H_GET_32 (abfd, ex->ms_hash_value); - in->ms_info = H_GET_32 (abfd, ex->ms_info); -} -#endif -/* Swap out an MSYM entry. */ - -static void -bfd_mips_elf_swap_msym_out (abfd, in, ex) - bfd *abfd; - const Elf32_Internal_Msym *in; - Elf32_External_Msym *ex; -{ - H_PUT_32 (abfd, in->ms_hash_value, ex->ms_hash_value); - H_PUT_32 (abfd, in->ms_info, ex->ms_info); -} /* A .reginfo section holds a single Elf32_RegInfo structure. These routines swap this structure in and out. They are used outside of @@ -1662,7 +1625,7 @@ mips_elf_rel_dyn_section (dynobj, create | SEC_LINKER_CREATED | SEC_READONLY)) || ! bfd_set_section_alignment (dynobj, sreloc, - 4)) + MIPS_ELF_LOG_FILE_ALIGN (dynobj))) return NULL; } return sreloc; @@ -2740,8 +2703,8 @@ mips_elf_local_relocation_p (input_bfd, /* Sign-extend VALUE, which has the indicated number of BITS. */ -static bfd_vma -mips_elf_sign_extend (value, bits) +bfd_vma +_bfd_mips_elf_sign_extend (value, bits) bfd_vma value; int bits; { @@ -2869,6 +2832,8 @@ mips_elf_create_got_section (abfd, info, if (maybe_exclude) flags |= SEC_EXCLUDE; + /* We have to use an alignment of 2**4 here because this is hardcoded + in the function stub generation and in the linker script. */ s = bfd_make_section (abfd, ".got"); if (s == NULL || ! bfd_set_section_flags (abfd, s, flags) @@ -2914,34 +2879,6 @@ mips_elf_create_got_section (abfd, info, return TRUE; } - -/* Returns the .msym section for ABFD, creating it if it does not - already exist. Returns NULL to indicate error. */ - -static asection * -mips_elf_create_msym_section (abfd) - bfd *abfd; -{ - asection *s; - - s = bfd_get_section_by_name (abfd, ".msym"); - if (!s) - { - s = bfd_make_section (abfd, ".msym"); - if (!s - || !bfd_set_section_flags (abfd, s, - SEC_ALLOC - | SEC_LOAD - | SEC_HAS_CONTENTS - | SEC_LINKER_CREATED - | SEC_READONLY) - || !bfd_set_section_alignment (abfd, s, - MIPS_ELF_LOG_FILE_ALIGN (abfd))) - return NULL; - } - - return s; -} /* Calculate the value produced by the RELOCATION (which comes from the INPUT_BFD). The ADDEND is the addend to use for this @@ -3150,7 +3087,7 @@ mips_elf_calculate_relocation (abfd, inp /* If this is a 32- or 64-bit call to a 16-bit function with a stub, we need to redirect the call to the stub, unless we're already *in* a stub. */ - if (r_type != R_MIPS16_26 && !info->relocateable + if (r_type != R_MIPS16_26 && !info->relocatable && ((h != NULL && h->fn_stub != NULL) || (local_p && elf_tdata (input_bfd)->local_stubs != NULL && elf_tdata (input_bfd)->local_stubs[r_symndx] != NULL)) @@ -3171,7 +3108,7 @@ mips_elf_calculate_relocation (abfd, inp } /* If this is a 16-bit call to a 32- or 64-bit function with a stub, we need to redirect the call to the stub. */ - else if (r_type == R_MIPS16_26 && !info->relocateable + else if (r_type == R_MIPS16_26 && !info->relocatable && h != NULL && (h->call_stub != NULL || h->call_fp_stub != NULL) && !target_is_16_bit_code_p) @@ -3207,7 +3144,7 @@ mips_elf_calculate_relocation (abfd, inp /* Calls from 16-bit code to 32-bit code and vice versa require the special jalx instruction. */ - *require_jalxp = (!info->relocateable + *require_jalxp = (!info->relocatable && (((r_type == R_MIPS16_26) && !target_is_16_bit_code_p) || ((r_type == R_MIPS_26) && target_is_16_bit_code_p))); @@ -3304,7 +3241,7 @@ mips_elf_calculate_relocation (abfd, inp return bfd_reloc_continue; case R_MIPS_16: - value = symbol + mips_elf_sign_extend (addend, 16); + value = symbol + _bfd_mips_elf_sign_extend (addend, 16); overflowed_p = mips_elf_overflow_p (value, 16); break; @@ -3355,7 +3292,7 @@ mips_elf_calculate_relocation (abfd, inp break; case R_MIPS_GNU_REL16_S2: - value = symbol + mips_elf_sign_extend (addend << 2, 18) - p; + value = symbol + _bfd_mips_elf_sign_extend (addend << 2, 18) - p; overflowed_p = mips_elf_overflow_p (value, 18); value = (value >> 2) & howto->dst_mask; break; @@ -3380,7 +3317,7 @@ mips_elf_calculate_relocation (abfd, inp if (local_p) value = (((addend << 2) | ((p + 4) & 0xf0000000)) + symbol) >> 2; else - value = (mips_elf_sign_extend (addend << 2, 28) + symbol) >> 2; + value = (_bfd_mips_elf_sign_extend (addend << 2, 28) + symbol) >> 2; value &= howto->dst_mask; break; @@ -3440,7 +3377,7 @@ mips_elf_calculate_relocation (abfd, inp instruction. If the addend was separate, leave it alone, otherwise we may lose significant bits. */ if (howto->partial_inplace) - addend = mips_elf_sign_extend (addend, 16); + addend = _bfd_mips_elf_sign_extend (addend, 16); value = symbol + addend - gp; /* If the symbol was local, any earlier relocatable links will have adjusted its addend with the gp offset, so compensate @@ -3489,7 +3426,7 @@ mips_elf_calculate_relocation (abfd, inp break; case R_MIPS_PC16: - value = mips_elf_sign_extend (addend, 16) + symbol - p; + value = _bfd_mips_elf_sign_extend (addend, 16) + symbol - p; overflowed_p = mips_elf_overflow_p (value, 16); break; @@ -3649,7 +3586,7 @@ mips_elf_perform_relocation (info, howto JALX is the 5-bit value 00011. X is 0 for jal, 1 for jalx. Note that the immediate value in the first word is swapped. - When producing a relocateable object file, R_MIPS16_26 is + When producing a relocatable object file, R_MIPS16_26 is handled mostly like R_MIPS_26. In particular, the addend is stored as a straight 26-bit value in a 32-bit instruction. (gas makes life simpler for itself by never adjusting a @@ -3687,13 +3624,13 @@ mips_elf_perform_relocation (info, howto where targ26-16 is sub1 followed by sub2 (i.e., the addend field A is ((sub1 << 16) | sub2)). - When producing a relocateable object file, the calculation is + When producing a relocatable object file, the calculation is (((A < 2) | ((P + 4) & 0xf0000000) + S) >> 2) When producing a fully linked file, the calculation is let R = (((A < 2) | ((P + 4) & 0xf0000000) + S) >> 2) ((R & 0x1f0000) << 5) | ((R & 0x3e00000) >> 5) | (R & 0xffff) */ - if (!info->relocateable) + if (!info->relocatable) /* Shuffle the bits according to the formula above. */ value = (((value & 0x1f0000) << 5) | ((value & 0x3e00000) >> 5) @@ -3852,7 +3789,7 @@ mips_elf_create_dynamic_relocation (outp /* We begin by assuming that the offset for the dynamic relocation is the same as for the original relocation. We'll adjust this later to reflect the correct output offsets. */ - if (elf_section_data (input_section)->sec_info_type != ELF_INFO_TYPE_STABS) + if (input_section->sec_info_type != ELF_INFO_TYPE_STABS) { outrel[1].r_offset = rel[1].r_offset; outrel[2].r_offset = rel[2].r_offset; @@ -3872,9 +3809,17 @@ mips_elf_create_dynamic_relocation (outp } #endif - if (outrel[0].r_offset == (bfd_vma) -1 - || outrel[0].r_offset == (bfd_vma) -2) + if (outrel[0].r_offset == (bfd_vma) -1) + /* The relocation field has been deleted. */ skip = TRUE; + else if (outrel[0].r_offset == (bfd_vma) -2) + { + /* The relocation field has been converted into a relative value of + some sort. Functions like _bfd_elf_write_section_eh_frame expect + the field to be fully relocated, so add in the symbol's value. */ + skip = TRUE; + *addendp += symbol; + } /* If we've decided to skip this relocation, just output an empty record. Note that R_MIPS_NONE == 0, so that this call to memset @@ -3884,18 +3829,27 @@ mips_elf_create_dynamic_relocation (outp else { long indx; + bfd_boolean defined_p; /* We must now calculate the dynamic symbol table index to use in the relocation. */ if (h != NULL && (! info->symbolic || (h->root.elf_link_hash_flags - & ELF_LINK_HASH_DEF_REGULAR) == 0)) - { - indx = h->root.dynindx; + & ELF_LINK_HASH_DEF_REGULAR) == 0) /* h->root.dynindx may be -1 if this symbol was marked to become local. */ - if (indx == -1) - indx = 0; + && h->root.dynindx != -1) + { + indx = h->root.dynindx; + if (SGI_COMPAT (output_bfd)) + defined_p = ((h->root.elf_link_hash_flags + & ELF_LINK_HASH_DEF_REGULAR) != 0); + else + /* ??? glibc's ld.so just adds the final GOT entry to the + relocation field. It therefore treats relocs against + defined symbols in the same way as relocs against + undefined symbols. */ + defined_p = FALSE; } else { @@ -3924,14 +3878,20 @@ mips_elf_create_dynamic_relocation (outp section-relative relocations. It's not like they're useful, after all. This should be a bit more efficient as well. */ - indx = 0; + /* ??? Although this behavior is compatible with glibc's ld.so, + the ABI says that relocations against STN_UNDEF should have + a symbol value of 0. Irix rld honors this, so relocations + against STN_UNDEF have no effect. */ + if (!SGI_COMPAT (output_bfd)) + indx = 0; + defined_p = TRUE; } /* If the relocation was previously an absolute relocation and this symbol will not be referred to by the relocation, we must adjust it by the value we give it in the dynamic symbol table. Otherwise leave the job up to the dynamic linker. */ - if (!indx && r_type != R_MIPS_REL32) + if (defined_p && r_type != R_MIPS_REL32) *addendp += symbol; /* The relocation is always an REL32 relocation because we don't @@ -3982,13 +3942,6 @@ mips_elf_create_dynamic_relocation (outp (output_bfd, &outrel[0], (sreloc->contents + sreloc->reloc_count * sizeof (Elf32_External_Rel))); - /* Record the index of the first relocation referencing H. This - information is later emitted in the .msym section. */ - if (h != NULL - && (h->min_dyn_reloc_index == 0 - || sreloc->reloc_count < h->min_dyn_reloc_index)) - h->min_dyn_reloc_index = sreloc->reloc_count; - /* We've now added another relocation. */ ++sreloc->reloc_count; @@ -4638,30 +4591,11 @@ _bfd_mips_elf_fake_sections (abfd, hdr, hdr->sh_entsize = 8; } - /* The generic elf_fake_sections will set up REL_HDR using the - default kind of relocations. But, we may actually need both - kinds of relocations, so we set up the second header here. - - This is not necessary for the O32 ABI since that only uses Elf32_Rel - relocations (cf. System V ABI, MIPS RISC Processor Supplement, - 3rd Edition, p. 4-17). It breaks the IRIX 5/6 32-bit ld, since one - of the resulting empty .rela.
sections starts with - 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 (! SGI_COMPAT (abfd) && ! NEWABI_P(abfd) - && (sec->flags & SEC_RELOC) != 0) - { - struct bfd_elf_section_data *esd; - bfd_size_type amt = sizeof (Elf_Internal_Shdr); - - esd = elf_section_data (sec); - BFD_ASSERT (esd->rel_hdr2 == NULL); - esd->rel_hdr2 = (Elf_Internal_Shdr *) bfd_zalloc (abfd, amt); - if (!esd->rel_hdr2) - return FALSE; - _bfd_elf_init_reloc_shdr (abfd, esd->rel_hdr2, sec, !sec->use_rela_p); - } + /* The generic elf_fake_sections will set up REL_HDR using the default + kind of relocations. We used to set up a second header for the + non-default kind of relocations here, but only NewABI would use + these, and the IRIX ld doesn't like resulting empty RELA sections. + Thus we create those header only on demand now. */ return TRUE; } @@ -4908,13 +4842,6 @@ _bfd_mips_elf_create_dynamic_sections (a if (! mips_elf_rel_dyn_section (elf_hash_table (info)->dynobj, TRUE)) return FALSE; - /* Create the .msym section on IRIX6. It is used by the dynamic - linker to speed up dynamic relocations, and to avoid computing - the ELF hash for symbols. */ - if (IRIX_COMPAT (abfd) == ict_irix6 - && !mips_elf_create_msym_section (abfd)) - return FALSE; - /* Create .stub section. */ if (bfd_get_section_by_name (abfd, MIPS_ELF_STUB_SECTION_NAME (abfd)) == NULL) @@ -4973,19 +4900,19 @@ _bfd_mips_elf_create_dynamic_sections (a /* Change alignments of some sections. */ s = bfd_get_section_by_name (abfd, ".hash"); if (s != NULL) - bfd_set_section_alignment (abfd, s, 4); + bfd_set_section_alignment (abfd, s, MIPS_ELF_LOG_FILE_ALIGN (abfd)); s = bfd_get_section_by_name (abfd, ".dynsym"); if (s != NULL) - bfd_set_section_alignment (abfd, s, 4); + bfd_set_section_alignment (abfd, s, MIPS_ELF_LOG_FILE_ALIGN (abfd)); s = bfd_get_section_by_name (abfd, ".dynstr"); if (s != NULL) - bfd_set_section_alignment (abfd, s, 4); + bfd_set_section_alignment (abfd, s, MIPS_ELF_LOG_FILE_ALIGN (abfd)); s = bfd_get_section_by_name (abfd, ".reginfo"); if (s != NULL) - bfd_set_section_alignment (abfd, s, 4); + bfd_set_section_alignment (abfd, s, MIPS_ELF_LOG_FILE_ALIGN (abfd)); s = bfd_get_section_by_name (abfd, ".dynamic"); if (s != NULL) - bfd_set_section_alignment (abfd, s, 4); + bfd_set_section_alignment (abfd, s, MIPS_ELF_LOG_FILE_ALIGN (abfd)); } if (!info->shared) @@ -5060,7 +4987,7 @@ _bfd_mips_elf_check_relocs (abfd, info, asection *sreloc; struct elf_backend_data *bed; - if (info->relocateable) + if (info->relocatable) return TRUE; dynobj = elf_hash_table (info)->dynobj; @@ -5511,6 +5438,7 @@ _bfd_mips_elf_check_relocs (abfd, info, case R_MIPS_CALL16: case R_MIPS_CALL_HI16: case R_MIPS_CALL_LO16: + case R_MIPS_JALR: break; } @@ -5556,7 +5484,7 @@ _bfd_mips_relax_section (abfd, sec, link /* We are not currently changing any sizes, so only one pass. */ *again = FALSE; - if (link_info->relocateable) + if (link_info->relocatable) return TRUE; internal_relocs = _bfd_elf_link_read_relocs (abfd, sec, (PTR) NULL, @@ -5747,7 +5675,7 @@ _bfd_mips_elf_adjust_dynamic_symbol (inf any R_MIPS_32 or R_MIPS_REL32 relocs against it into the output file. */ hmips = (struct mips_elf_link_hash_entry *) h; - if (! info->relocateable + if (! info->relocatable && hmips->possibly_dynamic_relocs != 0 && (h->root.type == bfd_link_hash_defweak || (h->elf_link_hash_flags @@ -5845,7 +5773,7 @@ _bfd_mips_elf_always_size_sections (outp bfd_set_section_size (output_bfd, ri, (bfd_size_type) sizeof (Elf32_External_RegInfo)); - if (! (info->relocateable + if (! (info->relocatable || ! mips_elf_hash_table (info)->mips16_stubs_seen)) mips_elf_link_hash_traverse (mips_elf_hash_table (info), mips_elf_check_mips16_stubs, @@ -6076,10 +6004,6 @@ _bfd_mips_elf_size_dynamic_sections (out else if (SGI_COMPAT (output_bfd) && strncmp (name, ".compact_rel", 12) == 0) s->_raw_size += mips_elf_hash_table (info)->compact_rel_size; - else if (strcmp (name, ".msym") == 0) - s->_raw_size = (sizeof (Elf32_External_Msym) - * (elf_hash_table (info)->dynsymcount - + bfd_count_sections (output_bfd))); else if (strncmp (name, ".init", 5) != 0) { /* It's not one of our sections, so don't allocate space. */ @@ -6224,10 +6148,6 @@ _bfd_mips_elf_size_dynamic_sections (out (dynobj, MIPS_ELF_OPTIONS_SECTION_NAME (dynobj))) && !MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_MIPS_OPTIONS, 0)) return FALSE; - - if (bfd_get_section_by_name (dynobj, ".msym") - && !MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_MIPS_MSYM, 0)) - return FALSE; } return TRUE; @@ -6352,7 +6272,7 @@ _bfd_mips_elf_relocate_section (output_b input_bfd, contents); l &= lo16_howto->src_mask; l <<= lo16_howto->rightshift; - l = mips_elf_sign_extend (l, 16); + l = _bfd_mips_elf_sign_extend (l, 16); addend <<= 16; @@ -6383,7 +6303,7 @@ _bfd_mips_elf_relocate_section (output_b addend = rel->r_addend; } - if (info->relocateable) + if (info->relocatable) { Elf_Internal_Sym *sym; unsigned long r_symndx; @@ -6397,7 +6317,7 @@ _bfd_mips_elf_relocate_section (output_b they're against a section symbol, in which case we need to adjust by the section offset, or unless they're GP relative in which case we need to adjust by the amount - that we're adjusting GP in this relocateable object. */ + that we're adjusting GP in this relocatable object. */ if (! mips_elf_local_relocation_p (input_bfd, rel, local_sections, FALSE)) @@ -6660,6 +6580,7 @@ mips_elf_irix6_finish_dynamic_symbol (ab /* All of these symbols are given type STT_SECTION by the IRIX6 linker. */ sym->st_info = ELF_ST_INFO (STB_GLOBAL, STT_SECTION); + sym->st_other = STO_PROTECTED; /* The IRIX linker puts these symbols in special sections. */ if (i == 0) @@ -6684,14 +6605,11 @@ _bfd_mips_elf_finish_dynamic_symbol (out bfd *dynobj; bfd_vma gval; asection *sgot; - asection *smsym; struct mips_got_info *g, *gg; const char *name; - struct mips_elf_link_hash_entry *mh; dynobj = elf_hash_table (info)->dynobj; gval = sym->st_value; - mh = (struct mips_elf_link_hash_entry *) h; if (h->plt.offset != (bfd_vma) -1) { @@ -6747,22 +6665,7 @@ _bfd_mips_elf_finish_dynamic_symbol (out bfd_vma offset; bfd_vma value; - if (sym->st_value) - value = sym->st_value; - else - { - /* For an entity defined in a shared object, this will be - NULL. (For functions in shared objects for - which we have created stubs, ST_VALUE will be non-NULL. - That's because such the functions are now no longer defined - in a shared object.) */ - - if ((info->shared && h->root.type == bfd_link_hash_undefined) - || h->root.type == bfd_link_hash_undefweak) - value = 0; - else - value = h->root.u.def.value; - } + value = sym->st_value; offset = mips_elf_global_got_index (dynobj, output_bfd, h); MIPS_ELF_PUT_WORD (output_bfd, value, sgot->contents + offset); } @@ -6820,21 +6723,6 @@ _bfd_mips_elf_finish_dynamic_symbol (out } } - /* Create a .msym entry, if appropriate. */ - smsym = bfd_get_section_by_name (dynobj, ".msym"); - if (smsym) - { - Elf32_Internal_Msym msym; - - msym.ms_hash_value = bfd_elf_hash (h->root.root.string); - /* It is undocumented what the `1' indicates, but IRIX6 uses - this value. */ - msym.ms_info = ELF32_MS_INFO (mh->min_dyn_reloc_index, 1); - bfd_mips_elf_swap_msym_out - (dynobj, &msym, - ((Elf32_External_Msym *) smsym->contents) + h->dynindx); - } - /* Mark _DYNAMIC and _GLOBAL_OFFSET_TABLE_ as absolute. */ name = h->root.root.string; if (strcmp (name, "_DYNAMIC") == 0 @@ -7157,33 +7045,9 @@ _bfd_mips_elf_finish_dynamic_sections (o } { - asection *smsym; asection *s; Elf32_compact_rel cpt; - /* ??? The section symbols for the output sections were set up in - _bfd_elf_final_link. SGI sets the STT_NOTYPE attribute for these - symbols. Should we do so? */ - - smsym = bfd_get_section_by_name (dynobj, ".msym"); - if (smsym != NULL) - { - Elf32_Internal_Msym msym; - - msym.ms_hash_value = 0; - msym.ms_info = ELF32_MS_INFO (0, 1); - - for (s = output_bfd->sections; s != NULL; s = s->next) - { - long dynindx = elf_section_data (s)->dynindx; - - bfd_mips_elf_swap_msym_out - (output_bfd, &msym, - (((Elf32_External_Msym *) smsym->contents) - + dynindx)); - } - } - if (SGI_COMPAT (output_bfd)) { /* Write .compact_rel section out. */ @@ -7299,6 +7163,7 @@ mips_set_isa_flags (abfd) break; case bfd_mach_mips5000: + case bfd_mach_mips7000: case bfd_mach_mips8000: case bfd_mach_mips10000: case bfd_mach_mips12000: @@ -7776,10 +7641,6 @@ _bfd_mips_elf_copy_indirect_symbol (bed, dirmips->possibly_dynamic_relocs += indmips->possibly_dynamic_relocs; if (indmips->readonly_reloc) dirmips->readonly_reloc = TRUE; - if (dirmips->min_dyn_reloc_index == 0 - || (indmips->min_dyn_reloc_index != 0 - && indmips->min_dyn_reloc_index < dirmips->min_dyn_reloc_index)) - dirmips->min_dyn_reloc_index = indmips->min_dyn_reloc_index; if (indmips->no_fn_stub) dirmips->no_fn_stub = TRUE; } @@ -7798,10 +7659,10 @@ _bfd_mips_elf_hide_symbol (info, entry, h = (struct mips_elf_link_hash_entry *) entry; if (h->forced_local) return; - h->forced_local = TRUE; + h->forced_local = force_local; dynobj = elf_hash_table (info)->dynobj; - if (dynobj != NULL) + if (dynobj != NULL && force_local) { got = mips_elf_got_section (dynobj, FALSE); g = mips_elf_section_data (got)->u.got_info; @@ -7897,7 +7758,7 @@ _bfd_mips_elf_discard_info (abfd, cookie cookie->rel = cookie->rels; cookie->relend = cookie->rels + o->reloc_count; - for (i = 0, skip = 0; i < o->_raw_size; i ++) + for (i = 0, skip = 0; i < o->_raw_size / PDR_SIZE; i ++) { if (MNAME(abfd,_bfd_elf,reloc_symbol_deleted_p) (i * PDR_SIZE, cookie)) { @@ -8128,12 +7989,12 @@ _bfd_mips_elf_set_section_contents (abfd bfd_byte * _bfd_elf_mips_get_relocated_section_contents (abfd, link_info, link_order, - data, relocateable, symbols) + data, relocatable, symbols) bfd *abfd; struct bfd_link_info *link_info; struct bfd_link_order *link_order; bfd_byte *data; - bfd_boolean relocateable; + bfd_boolean relocatable; asymbol **symbols; { /* Get enough memory to hold the stuff */ @@ -8241,7 +8102,7 @@ _bfd_elf_mips_get_relocated_section_cont { /* bypass special_function call */ r = _bfd_mips_elf_gprel16_with_gp (input_bfd, sym, *parent, - input_section, relocateable, + input_section, relocatable, (PTR) data, gp); goto skip_bfd_perform_relocation; } @@ -8251,11 +8112,11 @@ _bfd_elf_mips_get_relocated_section_cont *parent, (PTR) data, input_section, - relocateable ? abfd : (bfd *) NULL, + relocatable ? abfd : (bfd *) NULL, &error_message); skip_bfd_perform_relocation: - if (relocateable) + if (relocatable) { asection *os = input_section->output_section; @@ -8462,7 +8323,7 @@ _bfd_mips_elf_final_link (abfd, info) elf_gp (abfd) = (h->u.def.value + h->u.def.section->output_section->vma + h->u.def.section->output_offset); - else if (info->relocateable) + else if (info->relocatable) { bfd_vma lo = MINUS_ONE; @@ -8783,7 +8644,7 @@ _bfd_mips_elf_final_link (abfd, info) information describing how the small data area would change depending upon the -G switch. These sections not used in executables files. */ - if (! info->relocateable) + if (! info->relocatable) { for (p = o->link_order_head; p != (struct bfd_link_order *) NULL; @@ -9085,6 +8946,7 @@ static const struct mips_mach_extension { bfd_mach_mips5, bfd_mach_mips8000 }, { bfd_mach_mips10000, bfd_mach_mips8000 }, { bfd_mach_mips5000, bfd_mach_mips8000 }, + { bfd_mach_mips7000, bfd_mach_mips8000 }, /* VR4100 extensions. */ { bfd_mach_mips4120, bfd_mach_mips4100 }, diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/elfxx-mips.h binutils-2.14.90.0.5/bfd/elfxx-mips.h --- binutils-2.14.90.0.4.1/bfd/elfxx-mips.h 2003-05-05 14:46:47.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/elfxx-mips.h 2003-07-23 08:08:09.000000000 -0700 @@ -108,6 +108,7 @@ extern bfd_reloc_status_type _bfd_mips_e PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); extern unsigned long _bfd_elf_mips_mach PARAMS ((flagword)); -extern bfd_boolean _bfd_mips_relax_section (bfd *, asection *, - struct bfd_link_info *, - bfd_boolean *); +extern bfd_boolean _bfd_mips_relax_section + PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *)); +extern bfd_vma _bfd_mips_elf_sign_extend + PARAMS ((bfd_vma, int)); diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/format.c binutils-2.14.90.0.5/bfd/format.c --- binutils-2.14.90.0.4.1/bfd/format.c 2003-05-05 14:46:47.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/format.c 2003-07-23 08:08:09.000000000 -0700 @@ -86,9 +86,7 @@ DESCRIPTION */ bfd_boolean -bfd_check_format (abfd, format) - bfd *abfd; - bfd_format format; +bfd_check_format (bfd *abfd, bfd_format format) { return bfd_check_format_matches (abfd, format, NULL); } @@ -98,8 +96,8 @@ FUNCTION bfd_check_format_matches SYNOPSIS - bfd_boolean bfd_check_format_matches (bfd *abfd, bfd_format format, - char ***matching); + bfd_boolean bfd_check_format_matches + (bfd *abfd, bfd_format format, char ***matching); DESCRIPTION Like <>, except when it returns FALSE with @@ -114,10 +112,7 @@ DESCRIPTION */ bfd_boolean -bfd_check_format_matches (abfd, format, matching) - bfd *abfd; - bfd_format format; - char ***matching; +bfd_check_format_matches (bfd *abfd, bfd_format format, char ***matching) { extern const bfd_target binary_vec; const bfd_target * const *target; @@ -148,7 +143,7 @@ bfd_check_format_matches (abfd, format, *matching = NULL; amt = sizeof (*matching_vector) * 2 * _bfd_target_vector_entries; - matching_vector = (const bfd_target **) bfd_malloc (amt); + matching_vector = bfd_malloc (amt); if (!matching_vector) return FALSE; } @@ -165,7 +160,7 @@ bfd_check_format_matches (abfd, format, if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0) /* rewind! */ { if (matching) - free ((PTR) matching_vector); + free (matching_vector); return FALSE; } @@ -176,7 +171,7 @@ bfd_check_format_matches (abfd, format, abfd->xvec = right_targ; /* Set the target as returned. */ if (matching) - free ((PTR) matching_vector); + free (matching_vector); return TRUE; /* File position has moved, BTW. */ } @@ -199,7 +194,7 @@ bfd_check_format_matches (abfd, format, abfd->format = bfd_unknown; if (matching) - free ((PTR) matching_vector); + free (matching_vector); bfd_set_error (bfd_error_file_not_recognized); @@ -220,7 +215,7 @@ bfd_check_format_matches (abfd, format, if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0) { if (matching) - free ((PTR) matching_vector); + free (matching_vector); return FALSE; } @@ -279,7 +274,7 @@ bfd_check_format_matches (abfd, format, abfd->format = bfd_unknown; if (matching) - free ((PTR) matching_vector); + free (matching_vector); return FALSE; } @@ -332,7 +327,7 @@ bfd_check_format_matches (abfd, format, abfd->xvec = right_targ; /* Change BFD's target permanently. */ if (matching) - free ((PTR) matching_vector); + free (matching_vector); return TRUE; /* File position has moved, BTW. */ } @@ -345,7 +340,7 @@ bfd_check_format_matches (abfd, format, bfd_set_error (bfd_error_file_not_recognized); if (matching) - free ((PTR) matching_vector); + free (matching_vector); } else { @@ -383,9 +378,7 @@ DESCRIPTION */ bfd_boolean -bfd_set_format (abfd, format) - bfd *abfd; - bfd_format format; +bfd_set_format (bfd *abfd, bfd_format format) { if (bfd_read_p (abfd) || (unsigned int) abfd->format >= (unsigned int) bfd_type_end) @@ -423,11 +416,10 @@ DESCRIPTION */ const char * -bfd_format_string (format) - bfd_format format; +bfd_format_string (bfd_format format) { - if (((int)format <(int) bfd_unknown) - || ((int)format >=(int) bfd_type_end)) + if (((int) format < (int) bfd_unknown) + || ((int) format >= (int) bfd_type_end)) return "invalid"; switch (format) diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/i386linux.c binutils-2.14.90.0.5/bfd/i386linux.c --- binutils-2.14.90.0.4.1/bfd/i386linux.c 2003-03-19 09:19:13.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/i386linux.c 2003-07-23 08:08:09.000000000 -0700 @@ -353,7 +353,7 @@ linux_add_one_symbol (info, abfd, name, insert = FALSE; - if (! info->relocateable + if (! info->relocatable && linux_hash_table (info)->dynobj == NULL && strcmp (name, SHARABLE_CONFLICTS) == 0 && (flags & BSF_CONSTRUCTOR) != 0 diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/ieee.c binutils-2.14.90.0.5/bfd/ieee.c --- binutils-2.14.90.0.4.1/bfd/ieee.c 2003-03-19 09:19:13.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/ieee.c 2003-07-23 08:08:09.000000000 -0700 @@ -3590,7 +3590,7 @@ static const unsigned char exten[] = 0xf0, 0x20, 0x00, 0xf1, 0xce, 0x20, 0x00, 37, 3, 3, /* Set version 3 rev 3. */ 0xf1, 0xce, 0x20, 0x00, 39, 2, /* Keep symbol in original case. */ - 0xf1, 0xce, 0x20, 0x00, 38 /* Set object type relocateable to x. */ + 0xf1, 0xce, 0x20, 0x00, 38 /* Set object type relocatable to x. */ }; static const unsigned char envi[] = diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/init.c binutils-2.14.90.0.5/bfd/init.c --- binutils-2.14.90.0.4.1/bfd/init.c 2001-03-09 11:16:01.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/init.c 2003-07-23 08:08:09.000000000 -0700 @@ -35,7 +35,7 @@ FUNCTION bfd_init SYNOPSIS - void bfd_init(void); + void bfd_init (void); DESCRIPTION This routine must be called before any other BFD function to @@ -46,6 +46,6 @@ DESCRIPTION However, someday it may be needed, so keep it around. */ void -bfd_init () +bfd_init (void) { } diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/libbfd-in.h binutils-2.14.90.0.5/bfd/libbfd-in.h --- binutils-2.14.90.0.4.1/bfd/libbfd-in.h 2002-12-16 12:22:52.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/libbfd-in.h 2003-07-23 08:08:09.000000000 -0700 @@ -1,7 +1,7 @@ /* libbfd.h -- Declarations used by bfd library *implementation*. (This include file is not for users of the library.) Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2001, 2002 + 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Written by Cygnus Support. @@ -36,7 +36,7 @@ Foundation, Inc., 59 Temple Place - Suit /* Set a tdata field. Can't use the other macros for this, since they do casts, and casting to the left of assignment isn't portable. */ -#define set_tdata(bfd, v) ((bfd)->tdata.any = (PTR) (v)) +#define set_tdata(bfd, v) ((bfd)->tdata.any = (v)) /* If BFD_IN_MEMORY is set for a BFD, then the iostream fields points to an instance of this structure. */ @@ -69,7 +69,7 @@ struct artdata { archive. */ file_ptr armap_datepos; /* Position within archive to seek to rewrite the date field. */ - PTR tdata; /* Backend specific information. */ + void *tdata; /* Backend specific information. */ }; #define bfd_ardata(bfd) ((bfd)->tdata.aout_ar_data) @@ -83,105 +83,105 @@ struct areltdata { #define arelt_size(bfd) (((struct areltdata *)((bfd)->arelt_data))->parsed_size) -extern PTR bfd_malloc - PARAMS ((bfd_size_type)); -extern PTR bfd_realloc - PARAMS ((PTR, bfd_size_type)); -extern PTR bfd_zmalloc - PARAMS ((bfd_size_type)); +extern void *bfd_malloc + (bfd_size_type); +extern void *bfd_realloc + (void *, bfd_size_type); +extern void *bfd_zmalloc + (bfd_size_type); extern bfd_error_handler_type _bfd_error_handler; /* These routines allocate and free things on the BFD's objalloc. */ -extern PTR bfd_alloc - PARAMS ((bfd *, bfd_size_type)); -extern PTR bfd_zalloc - PARAMS ((bfd *, bfd_size_type)); +extern void *bfd_alloc + (bfd *, bfd_size_type); +extern void *bfd_zalloc + (bfd *, bfd_size_type); extern void bfd_release - PARAMS ((bfd *, PTR)); + (bfd *, void *); bfd * _bfd_create_empty_archive_element_shell - PARAMS ((bfd *obfd)); + (bfd *obfd); bfd * _bfd_look_for_bfd_in_cache - PARAMS ((bfd *, file_ptr)); + (bfd *, file_ptr); bfd_boolean _bfd_add_bfd_to_archive_cache - PARAMS ((bfd *, file_ptr, bfd *)); + (bfd *, file_ptr, bfd *); bfd_boolean _bfd_generic_mkarchive - PARAMS ((bfd *abfd)); + (bfd *abfd); const bfd_target *bfd_generic_archive_p - PARAMS ((bfd *abfd)); + (bfd *abfd); bfd_boolean bfd_slurp_armap - PARAMS ((bfd *abfd)); + (bfd *abfd); bfd_boolean bfd_slurp_bsd_armap_f2 - PARAMS ((bfd *abfd)); + (bfd *abfd); #define bfd_slurp_bsd_armap bfd_slurp_armap #define bfd_slurp_coff_armap bfd_slurp_armap bfd_boolean _bfd_slurp_extended_name_table - PARAMS ((bfd *abfd)); + (bfd *abfd); extern bfd_boolean _bfd_construct_extended_name_table - PARAMS ((bfd *, bfd_boolean, char **, bfd_size_type *)); + (bfd *, bfd_boolean, char **, bfd_size_type *); bfd_boolean _bfd_write_archive_contents - PARAMS ((bfd *abfd)); + (bfd *abfd); bfd_boolean _bfd_compute_and_write_armap - PARAMS ((bfd *, unsigned int elength)); + (bfd *, unsigned int elength); bfd *_bfd_get_elt_at_filepos - PARAMS ((bfd *archive, file_ptr filepos)); + (bfd *archive, file_ptr filepos); extern bfd *_bfd_generic_get_elt_at_index - PARAMS ((bfd *, symindex)); + (bfd *, symindex); bfd * _bfd_new_bfd - PARAMS ((void)); + (void); void _bfd_delete_bfd - PARAMS ((bfd *)); + (bfd *); bfd_boolean bfd_false - PARAMS ((bfd *ignore)); + (bfd *ignore); bfd_boolean bfd_true - PARAMS ((bfd *ignore)); -PTR bfd_nullvoidptr - PARAMS ((bfd *ignore)); + (bfd *ignore); +void *bfd_nullvoidptr + (bfd *ignore); int bfd_0 - PARAMS ((bfd *ignore)); + (bfd *ignore); unsigned int bfd_0u - PARAMS ((bfd *ignore)); + (bfd *ignore); long bfd_0l - PARAMS ((bfd *ignore)); + (bfd *ignore); long _bfd_n1 - PARAMS ((bfd *ignore)); + (bfd *ignore); void bfd_void - PARAMS ((bfd *ignore)); + (bfd *ignore); bfd *_bfd_new_bfd_contained_in - PARAMS ((bfd *)); + (bfd *); const bfd_target *_bfd_dummy_target - PARAMS ((bfd *abfd)); + (bfd *abfd); void bfd_dont_truncate_arname - PARAMS ((bfd *abfd, const char *filename, char *hdr)); + (bfd *abfd, const char *filename, char *hdr); void bfd_bsd_truncate_arname - PARAMS ((bfd *abfd, const char *filename, char *hdr)); + (bfd *abfd, const char *filename, char *hdr); void bfd_gnu_truncate_arname - PARAMS ((bfd *abfd, const char *filename, char *hdr)); + (bfd *abfd, const char *filename, char *hdr); bfd_boolean bsd_write_armap - PARAMS ((bfd *arch, unsigned int elength, struct orl *map, - unsigned int orl_count, int stridx)); + (bfd *arch, unsigned int elength, struct orl *map, unsigned int orl_count, + int stridx); bfd_boolean coff_write_armap - PARAMS ((bfd *arch, unsigned int elength, struct orl *map, - unsigned int orl_count, int stridx)); + (bfd *arch, unsigned int elength, struct orl *map, unsigned int orl_count, + int stridx); -extern PTR _bfd_generic_read_ar_hdr - PARAMS ((bfd *)); +extern void *_bfd_generic_read_ar_hdr + (bfd *); -extern PTR _bfd_generic_read_ar_hdr_mag - PARAMS ((bfd *, const char *)); +extern void *_bfd_generic_read_ar_hdr_mag + (bfd *, const char *); bfd * bfd_generic_openr_next_archived_file - PARAMS ((bfd *archive, bfd *last_file)); + (bfd *archive, bfd *last_file); int bfd_generic_stat_arch_elt - PARAMS ((bfd *, struct stat *)); + (bfd *, struct stat *); #define _bfd_read_ar_hdr(abfd) \ BFD_SEND (abfd, _bfd_read_ar_hdr_fn, (abfd)) @@ -192,37 +192,37 @@ int bfd_generic_stat_arch_elt #define _bfd_generic_close_and_cleanup bfd_true #define _bfd_generic_bfd_free_cached_info bfd_true #define _bfd_generic_new_section_hook \ - ((bfd_boolean (*) PARAMS ((bfd *, asection *))) bfd_true) + ((bfd_boolean (*) (bfd *, asection *)) bfd_true) extern bfd_boolean _bfd_generic_get_section_contents - PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type)); + (bfd *, asection *, void *, file_ptr, bfd_size_type); extern bfd_boolean _bfd_generic_get_section_contents_in_window - PARAMS ((bfd *, asection *, bfd_window *, file_ptr, bfd_size_type)); + (bfd *, asection *, bfd_window *, file_ptr, bfd_size_type); /* Generic routines to use for BFD_JUMP_TABLE_COPY. Use BFD_JUMP_TABLE_COPY (_bfd_generic). */ #define _bfd_generic_bfd_copy_private_bfd_data \ - ((bfd_boolean (*) PARAMS ((bfd *, bfd *))) bfd_true) + ((bfd_boolean (*) (bfd *, bfd *)) bfd_true) #define _bfd_generic_bfd_merge_private_bfd_data \ - ((bfd_boolean (*) PARAMS ((bfd *, bfd *))) bfd_true) + ((bfd_boolean (*) (bfd *, bfd *)) bfd_true) #define _bfd_generic_bfd_set_private_flags \ - ((bfd_boolean (*) PARAMS ((bfd *, flagword))) bfd_true) + ((bfd_boolean (*) (bfd *, flagword)) bfd_true) #define _bfd_generic_bfd_copy_private_section_data \ - ((bfd_boolean (*) PARAMS ((bfd *, asection *, bfd *, asection *))) bfd_true) + ((bfd_boolean (*) (bfd *, asection *, bfd *, asection *)) bfd_true) #define _bfd_generic_bfd_copy_private_symbol_data \ - ((bfd_boolean (*) PARAMS ((bfd *, asymbol *, bfd *, asymbol *))) bfd_true) + ((bfd_boolean (*) (bfd *, asymbol *, bfd *, asymbol *)) bfd_true) #define _bfd_generic_bfd_print_private_bfd_data \ - ((bfd_boolean (*) PARAMS ((bfd *, PTR))) bfd_true) + ((bfd_boolean (*) (bfd *, void *)) bfd_true) /* Routines to use for BFD_JUMP_TABLE_CORE when there is no core file support. Use BFD_JUMP_TABLE_CORE (_bfd_nocore). */ extern char *_bfd_nocore_core_file_failing_command - PARAMS ((bfd *)); + (bfd *); extern int _bfd_nocore_core_file_failing_signal - PARAMS ((bfd *)); + (bfd *); extern bfd_boolean _bfd_nocore_core_file_matches_executable_p - PARAMS ((bfd *, bfd *)); + (bfd *, bfd *); /* Routines to use for BFD_JUMP_TABLE_ARCHIVE when there is no archive file support. Use BFD_JUMP_TABLE_ARCHIVE (_bfd_noarchive). */ @@ -230,20 +230,18 @@ extern bfd_boolean _bfd_nocore_core_file #define _bfd_noarchive_slurp_armap bfd_false #define _bfd_noarchive_slurp_extended_name_table bfd_false #define _bfd_noarchive_construct_extended_name_table \ - ((bfd_boolean (*) \ - PARAMS ((bfd *, char **, bfd_size_type *, const char **))) \ + ((bfd_boolean (*) (bfd *, char **, bfd_size_type *, const char **)) \ bfd_false) #define _bfd_noarchive_truncate_arname \ - ((void (*) PARAMS ((bfd *, const char *, char *))) bfd_void) + ((void (*) (bfd *, const char *, char *)) bfd_void) #define _bfd_noarchive_write_armap \ - ((bfd_boolean (*) \ - PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int))) \ + ((bfd_boolean (*) (bfd *, unsigned int, struct orl *, unsigned int, int)) \ bfd_false) #define _bfd_noarchive_read_ar_hdr bfd_nullvoidptr #define _bfd_noarchive_openr_next_archived_file \ - ((bfd *(*) PARAMS ((bfd *, bfd *))) bfd_nullvoidptr) + ((bfd *(*) (bfd *, bfd *)) bfd_nullvoidptr) #define _bfd_noarchive_get_elt_at_index \ - ((bfd *(*) PARAMS ((bfd *, symindex))) bfd_nullvoidptr) + ((bfd *(*) (bfd *, symindex)) bfd_nullvoidptr) #define _bfd_noarchive_generic_stat_arch_elt bfd_generic_stat_arch_elt #define _bfd_noarchive_update_armap_timestamp bfd_false @@ -254,7 +252,7 @@ extern bfd_boolean _bfd_nocore_core_file #define _bfd_archive_bsd_slurp_extended_name_table \ _bfd_slurp_extended_name_table extern bfd_boolean _bfd_archive_bsd_construct_extended_name_table - PARAMS ((bfd *, char **, bfd_size_type *, const char **)); + (bfd *, char **, bfd_size_type *, const char **); #define _bfd_archive_bsd_truncate_arname bfd_bsd_truncate_arname #define _bfd_archive_bsd_write_armap bsd_write_armap #define _bfd_archive_bsd_read_ar_hdr _bfd_generic_read_ar_hdr @@ -264,7 +262,7 @@ extern bfd_boolean _bfd_archive_bsd_cons #define _bfd_archive_bsd_generic_stat_arch_elt \ bfd_generic_stat_arch_elt extern bfd_boolean _bfd_archive_bsd_update_armap_timestamp - PARAMS ((bfd *)); + (bfd *); /* Routines to use for BFD_JUMP_TABLE_ARCHIVE to get COFF style archives. Use BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff). */ @@ -273,7 +271,7 @@ extern bfd_boolean _bfd_archive_bsd_upda #define _bfd_archive_coff_slurp_extended_name_table \ _bfd_slurp_extended_name_table extern bfd_boolean _bfd_archive_coff_construct_extended_name_table - PARAMS ((bfd *, char **, bfd_size_type *, const char **)); + (bfd *, char **, bfd_size_type *, const char **); #define _bfd_archive_coff_truncate_arname bfd_dont_truncate_arname #define _bfd_archive_coff_write_armap coff_write_armap #define _bfd_archive_coff_read_ar_hdr _bfd_generic_read_ar_hdr @@ -289,49 +287,46 @@ extern bfd_boolean _bfd_archive_coff_con #define _bfd_nosymbols_get_symtab_upper_bound _bfd_n1 #define _bfd_nosymbols_get_symtab \ - ((long (*) PARAMS ((bfd *, asymbol **))) _bfd_n1) + ((long (*) (bfd *, asymbol **)) _bfd_n1) #define _bfd_nosymbols_make_empty_symbol _bfd_generic_make_empty_symbol #define _bfd_nosymbols_print_symbol \ - ((void (*) PARAMS ((bfd *, PTR, asymbol *, bfd_print_symbol_type))) bfd_void) + ((void (*) (bfd *, void *, asymbol *, bfd_print_symbol_type)) bfd_void) #define _bfd_nosymbols_get_symbol_info \ - ((void (*) PARAMS ((bfd *, asymbol *, symbol_info *))) bfd_void) + ((void (*) (bfd *, asymbol *, symbol_info *)) bfd_void) #define _bfd_nosymbols_bfd_is_local_label_name \ - ((bfd_boolean (*) PARAMS ((bfd *, const char *))) bfd_false) + ((bfd_boolean (*) (bfd *, const char *)) bfd_false) #define _bfd_nosymbols_get_lineno \ - ((alent *(*) PARAMS ((bfd *, asymbol *))) bfd_nullvoidptr) + ((alent *(*) (bfd *, asymbol *)) bfd_nullvoidptr) #define _bfd_nosymbols_find_nearest_line \ - ((bfd_boolean (*) \ - PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **, \ - const char **, unsigned int *))) \ + ((bfd_boolean (*) (bfd *, asection *, asymbol **, bfd_vma, const char **, \ + const char **, unsigned int *)) \ bfd_false) #define _bfd_nosymbols_bfd_make_debug_symbol \ - ((asymbol *(*) PARAMS ((bfd *, PTR, unsigned long))) bfd_nullvoidptr) + ((asymbol *(*) (bfd *, void *, unsigned long)) bfd_nullvoidptr) #define _bfd_nosymbols_read_minisymbols \ - ((long (*) PARAMS ((bfd *, bfd_boolean, PTR *, unsigned int *))) _bfd_n1) + ((long (*) (bfd *, bfd_boolean, void **, unsigned int *)) _bfd_n1) #define _bfd_nosymbols_minisymbol_to_symbol \ - ((asymbol *(*) PARAMS ((bfd *, bfd_boolean, const PTR, asymbol *))) \ + ((asymbol *(*) (bfd *, bfd_boolean, const void *, asymbol *)) \ bfd_nullvoidptr) /* Routines to use for BFD_JUMP_TABLE_RELOCS when there is no reloc support. Use BFD_JUMP_TABLE_RELOCS (_bfd_norelocs). */ #define _bfd_norelocs_get_reloc_upper_bound \ - ((long (*) PARAMS ((bfd *, asection *))) _bfd_n1) + ((long (*) (bfd *, asection *)) _bfd_n1) #define _bfd_norelocs_canonicalize_reloc \ - ((long (*) PARAMS ((bfd *, asection *, arelent **, asymbol **))) _bfd_n1) + ((long (*) (bfd *, asection *, arelent **, asymbol **)) _bfd_n1) #define _bfd_norelocs_bfd_reloc_type_lookup \ - ((reloc_howto_type *(*) PARAMS ((bfd *, bfd_reloc_code_real_type))) \ - bfd_nullvoidptr) + ((reloc_howto_type *(*) (bfd *, bfd_reloc_code_real_type)) bfd_nullvoidptr) /* Routines to use for BFD_JUMP_TABLE_WRITE for targets which may not be written. Use BFD_JUMP_TABLE_WRITE (_bfd_nowrite). */ #define _bfd_nowrite_set_arch_mach \ - ((bfd_boolean (*) PARAMS ((bfd *, enum bfd_architecture, unsigned long))) \ + ((bfd_boolean (*) (bfd *, enum bfd_architecture, unsigned long)) \ bfd_false) #define _bfd_nowrite_set_section_contents \ - ((bfd_boolean (*) \ - PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type))) \ + ((bfd_boolean (*) (bfd *, asection *, void *, file_ptr, bfd_size_type)) \ bfd_false) /* Generic routines to use for BFD_JUMP_TABLE_WRITE. Use @@ -339,45 +334,41 @@ extern bfd_boolean _bfd_archive_coff_con #define _bfd_generic_set_arch_mach bfd_default_set_arch_mach extern bfd_boolean _bfd_generic_set_section_contents - PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type)); + (bfd *, asection *, void *, file_ptr, bfd_size_type); /* Routines to use for BFD_JUMP_TABLE_LINK for targets which do not support linking. Use BFD_JUMP_TABLE_LINK (_bfd_nolink). */ -#define _bfd_nolink_sizeof_headers ((int (*) PARAMS ((bfd *, bfd_boolean))) bfd_0) +#define _bfd_nolink_sizeof_headers ((int (*) (bfd *, bfd_boolean)) bfd_0) #define _bfd_nolink_bfd_get_relocated_section_contents \ - ((bfd_byte *(*) \ - PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *, \ - bfd_byte *, bfd_boolean, asymbol **))) \ + ((bfd_byte *(*) (bfd *, struct bfd_link_info *, struct bfd_link_order *, \ + bfd_byte *, bfd_boolean, asymbol **)) \ bfd_nullvoidptr) #define _bfd_nolink_bfd_relax_section \ ((bfd_boolean (*) \ - PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *))) \ + (bfd *, asection *, struct bfd_link_info *, bfd_boolean *)) \ bfd_false) #define _bfd_nolink_bfd_gc_sections \ - ((bfd_boolean (*) \ - PARAMS ((bfd *, struct bfd_link_info *))) \ + ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) \ bfd_false) #define _bfd_nolink_bfd_merge_sections \ - ((bfd_boolean (*) \ - PARAMS ((bfd *, struct bfd_link_info *))) \ + ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) \ bfd_false) #define _bfd_nolink_bfd_discard_group \ - ((bfd_boolean (*) \ - PARAMS ((bfd *, struct sec *))) \ + ((bfd_boolean (*) (bfd *, struct sec *)) \ bfd_false) #define _bfd_nolink_bfd_link_hash_table_create \ - ((struct bfd_link_hash_table *(*) PARAMS ((bfd *))) bfd_nullvoidptr) + ((struct bfd_link_hash_table *(*) (bfd *)) bfd_nullvoidptr) #define _bfd_nolink_bfd_link_hash_table_free \ - ((void (*) PARAMS ((struct bfd_link_hash_table *))) bfd_void) + ((void (*) (struct bfd_link_hash_table *)) bfd_void) #define _bfd_nolink_bfd_link_add_symbols \ - ((bfd_boolean (*) PARAMS ((bfd *, struct bfd_link_info *))) bfd_false) + ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) bfd_false) #define _bfd_nolink_bfd_link_just_syms \ - ((void (*) PARAMS ((asection *, struct bfd_link_info *))) bfd_void) + ((void (*) (asection *, struct bfd_link_info *)) bfd_void) #define _bfd_nolink_bfd_final_link \ - ((bfd_boolean (*) PARAMS ((bfd *, struct bfd_link_info *))) bfd_false) + ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) bfd_false) #define _bfd_nolink_bfd_link_split_section \ - ((bfd_boolean (*) PARAMS ((bfd *, struct sec *))) bfd_false) + ((bfd_boolean (*) (bfd *, struct sec *)) bfd_false) /* Routines to use for BFD_JUMP_TABLE_DYNAMIC for targets which do not have dynamic symbols or relocs. Use BFD_JUMP_TABLE_DYNAMIC @@ -385,195 +376,189 @@ extern bfd_boolean _bfd_generic_set_sect #define _bfd_nodynamic_get_dynamic_symtab_upper_bound _bfd_n1 #define _bfd_nodynamic_canonicalize_dynamic_symtab \ - ((long (*) PARAMS ((bfd *, asymbol **))) _bfd_n1) + ((long (*) (bfd *, asymbol **)) _bfd_n1) #define _bfd_nodynamic_get_dynamic_reloc_upper_bound _bfd_n1 #define _bfd_nodynamic_canonicalize_dynamic_reloc \ - ((long (*) PARAMS ((bfd *, arelent **, asymbol **))) _bfd_n1) + ((long (*) (bfd *, arelent **, asymbol **)) _bfd_n1) /* Generic routine to determine of the given symbol is a local label. */ extern bfd_boolean bfd_generic_is_local_label_name - PARAMS ((bfd *, const char *)); + (bfd *, const char *); /* Generic minisymbol routines. */ extern long _bfd_generic_read_minisymbols - PARAMS ((bfd *, bfd_boolean, PTR *, unsigned int *)); + (bfd *, bfd_boolean, void **, unsigned int *); extern asymbol *_bfd_generic_minisymbol_to_symbol - PARAMS ((bfd *, bfd_boolean, const PTR, asymbol *)); + (bfd *, bfd_boolean, const void *, asymbol *); /* Find the nearest line using .stab/.stabstr sections. */ extern bfd_boolean _bfd_stab_section_find_nearest_line - PARAMS ((bfd *, asymbol **, asection *, bfd_vma, bfd_boolean *, - const char **, const char **, unsigned int *, PTR *)); + (bfd *, asymbol **, asection *, bfd_vma, bfd_boolean *, + const char **, const char **, unsigned int *, void **); /* Find the neaderst line using DWARF 1 debugging information. */ extern bfd_boolean _bfd_dwarf1_find_nearest_line - PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **, - const char **, unsigned int *)); + (bfd *, asection *, asymbol **, bfd_vma, const char **, + const char **, unsigned int *); /* Find the nearest line using DWARF 2 debugging information. */ extern bfd_boolean _bfd_dwarf2_find_nearest_line - PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **, - const char **, unsigned int *, unsigned int, - PTR *)); + (bfd *, asection *, asymbol **, bfd_vma, const char **, const char **, + unsigned int *, unsigned int, void **); /* Create a new section entry. */ extern struct bfd_hash_entry *bfd_section_hash_newfunc - PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); + (struct bfd_hash_entry *, struct bfd_hash_table *, const char *); /* A routine to create entries for a bfd_link_hash_table. */ extern struct bfd_hash_entry *_bfd_link_hash_newfunc - PARAMS ((struct bfd_hash_entry *entry, - struct bfd_hash_table *table, - const char *string)); + (struct bfd_hash_entry *entry, struct bfd_hash_table *table, + const char *string); /* Initialize a bfd_link_hash_table. */ extern bfd_boolean _bfd_link_hash_table_init - PARAMS ((struct bfd_link_hash_table *, bfd *, - struct bfd_hash_entry *(*) (struct bfd_hash_entry *, - struct bfd_hash_table *, - const char *))); + (struct bfd_link_hash_table *, bfd *, + struct bfd_hash_entry *(*) (struct bfd_hash_entry *, + struct bfd_hash_table *, + const char *)); /* Generic link hash table creation routine. */ extern struct bfd_link_hash_table *_bfd_generic_link_hash_table_create - PARAMS ((bfd *)); + (bfd *); /* Generic link hash table destruction routine. */ extern void _bfd_generic_link_hash_table_free - PARAMS ((struct bfd_link_hash_table *)); + (struct bfd_link_hash_table *); /* Generic add symbol routine. */ extern bfd_boolean _bfd_generic_link_add_symbols - PARAMS ((bfd *, struct bfd_link_info *)); + (bfd *, struct bfd_link_info *); /* Generic add symbol routine. This version is used by targets for which the linker must collect constructors and destructors by name, as the collect2 program does. */ extern bfd_boolean _bfd_generic_link_add_symbols_collect - PARAMS ((bfd *, struct bfd_link_info *)); + (bfd *, struct bfd_link_info *); /* Generic archive add symbol routine. */ extern bfd_boolean _bfd_generic_link_add_archive_symbols - PARAMS ((bfd *, struct bfd_link_info *, - bfd_boolean (*) (bfd *, struct bfd_link_info *, bfd_boolean *))); + (bfd *, struct bfd_link_info *, + bfd_boolean (*) (bfd *, struct bfd_link_info *, bfd_boolean *)); /* Forward declaration to avoid prototype errors. */ typedef struct bfd_link_hash_entry _bfd_link_hash_entry; /* Generic routine to add a single symbol. */ extern bfd_boolean _bfd_generic_link_add_one_symbol - PARAMS ((struct bfd_link_info *, bfd *, const char *name, flagword, - asection *, bfd_vma, const char *, bfd_boolean copy, - bfd_boolean constructor, struct bfd_link_hash_entry **)); + (struct bfd_link_info *, bfd *, const char *name, flagword, + asection *, bfd_vma, const char *, bfd_boolean copy, + bfd_boolean constructor, struct bfd_link_hash_entry **); /* Generic routine to mark section as supplying symbols only. */ extern void _bfd_generic_link_just_syms - PARAMS ((asection *, struct bfd_link_info *)); + (asection *, struct bfd_link_info *); /* Generic link routine. */ extern bfd_boolean _bfd_generic_final_link - PARAMS ((bfd *, struct bfd_link_info *)); + (bfd *, struct bfd_link_info *); extern bfd_boolean _bfd_generic_link_split_section - PARAMS ((bfd *, struct sec *)); + (bfd *, struct sec *); /* Generic reloc_link_order processing routine. */ extern bfd_boolean _bfd_generic_reloc_link_order - PARAMS ((bfd *, struct bfd_link_info *, asection *, - struct bfd_link_order *)); + (bfd *, struct bfd_link_info *, asection *, struct bfd_link_order *); /* Default link order processing routine. */ extern bfd_boolean _bfd_default_link_order - PARAMS ((bfd *, struct bfd_link_info *, asection *, - struct bfd_link_order *)); + (bfd *, struct bfd_link_info *, asection *, struct bfd_link_order *); /* Count the number of reloc entries in a link order list. */ extern unsigned int _bfd_count_link_order_relocs - PARAMS ((struct bfd_link_order *)); + (struct bfd_link_order *); /* Final link relocation routine. */ extern bfd_reloc_status_type _bfd_final_link_relocate - PARAMS ((reloc_howto_type *, bfd *, asection *, bfd_byte *, - bfd_vma, bfd_vma, bfd_vma)); + (reloc_howto_type *, bfd *, asection *, bfd_byte *, + bfd_vma, bfd_vma, bfd_vma); /* Relocate a particular location by a howto and a value. */ extern bfd_reloc_status_type _bfd_relocate_contents - PARAMS ((reloc_howto_type *, bfd *, bfd_vma, bfd_byte *)); + (reloc_howto_type *, bfd *, bfd_vma, bfd_byte *); /* Link stabs in sections in the first pass. */ extern bfd_boolean _bfd_link_section_stabs - PARAMS ((bfd *, PTR *, asection *, asection *, PTR *)); + (bfd *, void **, asection *, asection *, void **); /* Eliminate stabs for discarded functions and symbols. */ extern bfd_boolean _bfd_discard_section_stabs - PARAMS ((bfd *, asection *, PTR, - bfd_boolean (*) (bfd_vma, PTR), PTR)); + (bfd *, asection *, void *, bfd_boolean (*) (bfd_vma, void *), void *); /* Write out the .stab section when linking stabs in sections. */ extern bfd_boolean _bfd_write_section_stabs - PARAMS ((bfd *, PTR *, asection *, PTR *, bfd_byte *)); + (bfd *, void **, asection *, void **, bfd_byte *); /* Write out the .stabstr string table when linking stabs in sections. */ extern bfd_boolean _bfd_write_stab_strings - PARAMS ((bfd *, PTR *)); + (bfd *, void **); /* Find an offset within a .stab section when linking stabs in sections. */ extern bfd_vma _bfd_stab_section_offset - PARAMS ((bfd *, PTR *, asection *, PTR *, bfd_vma)); + (bfd *, void **, asection *, void **, bfd_vma); /* Attempt to merge a SEC_MERGE section. */ extern bfd_boolean _bfd_merge_section - PARAMS ((bfd *, PTR *, asection *, PTR *)); + (bfd *, void **, asection *, void **); /* Attempt to merge SEC_MERGE sections. */ extern bfd_boolean _bfd_merge_sections - PARAMS ((bfd *, PTR, void (*)(bfd *, asection *))); + (bfd *, void *, void (*) (bfd *, asection *)); /* Write out a merged section. */ extern bfd_boolean _bfd_write_merged_section - PARAMS ((bfd *, asection *, PTR)); + (bfd *, asection *, void *); /* Find an offset within a modified SEC_MERGE section. */ extern bfd_vma _bfd_merged_section_offset - PARAMS ((bfd *, asection **, PTR, bfd_vma, bfd_vma)); + (bfd *, asection **, void *, bfd_vma, bfd_vma); /* Create a string table. */ extern struct bfd_strtab_hash *_bfd_stringtab_init - PARAMS ((void)); + (void); /* Create an XCOFF .debug section style string table. */ extern struct bfd_strtab_hash *_bfd_xcoff_stringtab_init - PARAMS ((void)); + (void); /* Free a string table. */ extern void _bfd_stringtab_free - PARAMS ((struct bfd_strtab_hash *)); + (struct bfd_strtab_hash *); /* Get the size of a string table. */ extern bfd_size_type _bfd_stringtab_size - PARAMS ((struct bfd_strtab_hash *)); + (struct bfd_strtab_hash *); /* Add a string to a string table. */ extern bfd_size_type _bfd_stringtab_add - PARAMS ((struct bfd_strtab_hash *, const char *, bfd_boolean hash, - bfd_boolean copy)); + (struct bfd_strtab_hash *, const char *, bfd_boolean hash, bfd_boolean copy); /* Write out a string table. */ extern bfd_boolean _bfd_stringtab_emit - PARAMS ((bfd *, struct bfd_strtab_hash *)); + (bfd *, struct bfd_strtab_hash *); /* Check that endianness of input and output file match. */ extern bfd_boolean _bfd_generic_verify_endian_match - PARAMS ((bfd *, bfd *)); + (bfd *, bfd *); /* Macros to tell if bfds are read or write enabled. @@ -584,20 +569,22 @@ extern bfd_boolean _bfd_generic_verify_e !bfd_read_p, and only sometimes bfd_write_p. */ -#define bfd_read_p(abfd) ((abfd)->direction == read_direction || (abfd)->direction == both_direction) -#define bfd_write_p(abfd) ((abfd)->direction == write_direction || (abfd)->direction == both_direction) +#define bfd_read_p(abfd) \ + ((abfd)->direction == read_direction || (abfd)->direction == both_direction) +#define bfd_write_p(abfd) \ + ((abfd)->direction == write_direction || (abfd)->direction == both_direction) void bfd_assert - PARAMS ((const char*,int)); + (const char*,int); #define BFD_ASSERT(x) \ -{ if (!(x)) bfd_assert(__FILE__,__LINE__); } + { if (!(x)) bfd_assert(__FILE__,__LINE__); } #define BFD_FAIL() \ -{ bfd_assert(__FILE__,__LINE__); } + { bfd_assert(__FILE__,__LINE__); } extern void _bfd_abort - PARAMS ((const char *, int, const char *)) ATTRIBUTE_NORETURN; + (const char *, int, const char *) ATTRIBUTE_NORETURN; /* if gcc >= 2.6, we can give a function name, too */ #if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 6) @@ -608,7 +595,7 @@ extern void _bfd_abort #define abort() _bfd_abort (__FILE__, __LINE__, __PRETTY_FUNCTION__) FILE * bfd_cache_lookup_worker - PARAMS ((bfd *)); + (bfd *); extern bfd *bfd_last_cache; @@ -628,26 +615,27 @@ struct ecoff_find_line; #endif extern bfd_boolean _bfd_ecoff_locate_line - PARAMS ((bfd *, asection *, bfd_vma, struct ecoff_debug_info * const, - const struct ecoff_debug_swap * const, struct ecoff_find_line *, - const char **, const char **, unsigned int *)); + (bfd *, asection *, bfd_vma, struct ecoff_debug_info * const, + const struct ecoff_debug_swap * const, struct ecoff_find_line *, + const char **, const char **, unsigned int *); extern bfd_boolean _bfd_ecoff_get_accumulated_pdr - PARAMS ((PTR, bfd_byte *)); + (void *, bfd_byte *); extern bfd_boolean _bfd_ecoff_get_accumulated_sym - PARAMS ((PTR, bfd_byte *)); + (void *, bfd_byte *); extern bfd_boolean _bfd_ecoff_get_accumulated_ss - PARAMS ((PTR, bfd_byte *)); + (void *, bfd_byte *); extern bfd_vma _bfd_get_gp_value - PARAMS ((bfd *)); + (bfd *); extern void _bfd_set_gp_value - PARAMS ((bfd *, bfd_vma)); + (bfd *, bfd_vma); /* Function shared by the COFF and ELF SH backends, which have no other common header files. */ +#ifndef _bfd_sh_align_load_span extern bfd_boolean _bfd_sh_align_load_span - PARAMS ((bfd *, asection *, bfd_byte *, - bfd_boolean (*) (bfd *, asection *, PTR, bfd_byte *, bfd_vma), - PTR, bfd_vma **, bfd_vma *, bfd_vma, bfd_vma, bfd_boolean *)); - + (bfd *, asection *, bfd_byte *, + bfd_boolean (*) (bfd *, asection *, void *, bfd_byte *, bfd_vma), + void *, bfd_vma **, bfd_vma *, bfd_vma, bfd_vma, bfd_boolean *); +#endif diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/libbfd.c binutils-2.14.90.0.5/bfd/libbfd.c --- binutils-2.14.90.0.4.1/bfd/libbfd.c 2002-12-16 12:22:52.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/libbfd.c 2003-07-23 08:08:09.000000000 -0700 @@ -1,6 +1,6 @@ /* Assorted BFD support routines, only used internally. Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2001, 2002 + 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Written by Cygnus Support. @@ -42,8 +42,7 @@ DESCRIPTION operations. */ bfd_boolean -bfd_false (ignore) - bfd *ignore ATTRIBUTE_UNUSED; +bfd_false (bfd *ignore ATTRIBUTE_UNUSED) { bfd_set_error (bfd_error_invalid_operation); return FALSE; @@ -53,8 +52,7 @@ bfd_false (ignore) which do not actually do anything. */ bfd_boolean -bfd_true (ignore) - bfd *ignore ATTRIBUTE_UNUSED; +bfd_true (bfd *ignore ATTRIBUTE_UNUSED) { return TRUE; } @@ -62,31 +60,27 @@ bfd_true (ignore) /* A routine which is used in target vectors for unsupported operations which return a pointer value. */ -PTR -bfd_nullvoidptr (ignore) - bfd *ignore ATTRIBUTE_UNUSED; +void * +bfd_nullvoidptr (bfd *ignore ATTRIBUTE_UNUSED) { bfd_set_error (bfd_error_invalid_operation); return NULL; } int -bfd_0 (ignore) - bfd *ignore ATTRIBUTE_UNUSED; +bfd_0 (bfd *ignore ATTRIBUTE_UNUSED) { return 0; } unsigned int -bfd_0u (ignore) - bfd *ignore ATTRIBUTE_UNUSED; +bfd_0u (bfd *ignore ATTRIBUTE_UNUSED) { return 0; } long -bfd_0l (ignore) - bfd *ignore ATTRIBUTE_UNUSED; +bfd_0l (bfd *ignore ATTRIBUTE_UNUSED) { return 0; } @@ -95,23 +89,21 @@ bfd_0l (ignore) operations which return -1 on error. */ long -_bfd_n1 (ignore_abfd) - bfd *ignore_abfd ATTRIBUTE_UNUSED; +_bfd_n1 (bfd *ignore_abfd ATTRIBUTE_UNUSED) { bfd_set_error (bfd_error_invalid_operation); return -1; } void -bfd_void (ignore) - bfd *ignore ATTRIBUTE_UNUSED; +bfd_void (bfd *ignore ATTRIBUTE_UNUSED) { } bfd_boolean -_bfd_nocore_core_file_matches_executable_p (ignore_core_bfd, ignore_exec_bfd) - bfd *ignore_core_bfd ATTRIBUTE_UNUSED; - bfd *ignore_exec_bfd ATTRIBUTE_UNUSED; +_bfd_nocore_core_file_matches_executable_p + (bfd *ignore_core_bfd ATTRIBUTE_UNUSED, + bfd *ignore_exec_bfd ATTRIBUTE_UNUSED) { bfd_set_error (bfd_error_invalid_operation); return FALSE; @@ -121,27 +113,24 @@ _bfd_nocore_core_file_matches_executable without core file support. */ char * -_bfd_nocore_core_file_failing_command (ignore_abfd) - bfd *ignore_abfd ATTRIBUTE_UNUSED; +_bfd_nocore_core_file_failing_command (bfd *ignore_abfd ATTRIBUTE_UNUSED) { bfd_set_error (bfd_error_invalid_operation); - return (char *)NULL; + return NULL; } /* Routine to handle core_file_failing_signal entry point for targets without core file support. */ int -_bfd_nocore_core_file_failing_signal (ignore_abfd) - bfd *ignore_abfd ATTRIBUTE_UNUSED; +_bfd_nocore_core_file_failing_signal (bfd *ignore_abfd ATTRIBUTE_UNUSED) { bfd_set_error (bfd_error_invalid_operation); return 0; } const bfd_target * -_bfd_dummy_target (ignore_abfd) - bfd *ignore_abfd ATTRIBUTE_UNUSED; +_bfd_dummy_target (bfd *ignore_abfd ATTRIBUTE_UNUSED) { bfd_set_error (bfd_error_wrong_format); return 0; @@ -149,11 +138,10 @@ _bfd_dummy_target (ignore_abfd) /* Allocate memory using malloc. */ -PTR -bfd_malloc (size) - bfd_size_type size; +void * +bfd_malloc (bfd_size_type size) { - PTR ptr; + void *ptr; if (size != (size_t) size) { @@ -161,7 +149,7 @@ bfd_malloc (size) return NULL; } - ptr = (PTR) malloc ((size_t) size); + ptr = malloc ((size_t) size); if (ptr == NULL && (size_t) size != 0) bfd_set_error (bfd_error_no_memory); @@ -170,12 +158,10 @@ bfd_malloc (size) /* Reallocate memory using realloc. */ -PTR -bfd_realloc (ptr, size) - PTR ptr; - bfd_size_type size; +void * +bfd_realloc (void *ptr, bfd_size_type size) { - PTR ret; + void *ret; if (size != (size_t) size) { @@ -184,9 +170,9 @@ bfd_realloc (ptr, size) } if (ptr == NULL) - ret = (PTR) malloc ((size_t) size); + ret = malloc ((size_t) size); else - ret = (PTR) realloc (ptr, (size_t) size); + ret = realloc (ptr, (size_t) size); if (ret == NULL && (size_t) size != 0) bfd_set_error (bfd_error_no_memory); @@ -196,11 +182,10 @@ bfd_realloc (ptr, size) /* Allocate memory using malloc and clear it. */ -PTR -bfd_zmalloc (size) - bfd_size_type size; +void * +bfd_zmalloc (bfd_size_type size) { - PTR ptr; + void *ptr; if (size != (size_t) size) { @@ -208,7 +193,7 @@ bfd_zmalloc (size) return NULL; } - ptr = (PTR) malloc ((size_t) size); + ptr = malloc ((size_t) size); if ((size_t) size != 0) { @@ -234,13 +219,11 @@ DESCRIPTION */ bfd_boolean -bfd_write_bigendian_4byte_int (abfd, i) - bfd *abfd; - unsigned int i; +bfd_write_bigendian_4byte_int (bfd *abfd, unsigned int i) { bfd_byte buffer[4]; bfd_putb32 ((bfd_vma) i, buffer); - return bfd_bwrite ((PTR) buffer, (bfd_size_type) 4, abfd) == 4; + return bfd_bwrite (buffer, (bfd_size_type) 4, abfd) == 4; } @@ -283,54 +266,54 @@ DESCRIPTION .{* Byte swapping macros for user section data. *} . .#define bfd_put_8(abfd, val, ptr) \ -. ((void) (*((unsigned char *) (ptr)) = (unsigned char) (val))) +. ((void) (*((unsigned char *) (ptr)) = (unsigned char) (val))) .#define bfd_put_signed_8 \ -. bfd_put_8 +. bfd_put_8 .#define bfd_get_8(abfd, ptr) \ -. (*(unsigned char *) (ptr) & 0xff) +. (*(unsigned char *) (ptr) & 0xff) .#define bfd_get_signed_8(abfd, ptr) \ -. (((*(unsigned char *) (ptr) & 0xff) ^ 0x80) - 0x80) +. (((*(unsigned char *) (ptr) & 0xff) ^ 0x80) - 0x80) . .#define bfd_put_16(abfd, val, ptr) \ -. BFD_SEND(abfd, bfd_putx16, ((val),(ptr))) +. BFD_SEND (abfd, bfd_putx16, ((val),(ptr))) .#define bfd_put_signed_16 \ -. bfd_put_16 +. bfd_put_16 .#define bfd_get_16(abfd, ptr) \ -. BFD_SEND(abfd, bfd_getx16, (ptr)) +. BFD_SEND (abfd, bfd_getx16, (ptr)) .#define bfd_get_signed_16(abfd, ptr) \ -. BFD_SEND (abfd, bfd_getx_signed_16, (ptr)) +. BFD_SEND (abfd, bfd_getx_signed_16, (ptr)) . .#define bfd_put_32(abfd, val, ptr) \ -. BFD_SEND(abfd, bfd_putx32, ((val),(ptr))) +. BFD_SEND (abfd, bfd_putx32, ((val),(ptr))) .#define bfd_put_signed_32 \ -. bfd_put_32 +. bfd_put_32 .#define bfd_get_32(abfd, ptr) \ -. BFD_SEND(abfd, bfd_getx32, (ptr)) +. BFD_SEND (abfd, bfd_getx32, (ptr)) .#define bfd_get_signed_32(abfd, ptr) \ -. BFD_SEND(abfd, bfd_getx_signed_32, (ptr)) +. BFD_SEND (abfd, bfd_getx_signed_32, (ptr)) . .#define bfd_put_64(abfd, val, ptr) \ -. BFD_SEND(abfd, bfd_putx64, ((val), (ptr))) +. BFD_SEND (abfd, bfd_putx64, ((val), (ptr))) .#define bfd_put_signed_64 \ -. bfd_put_64 +. bfd_put_64 .#define bfd_get_64(abfd, ptr) \ -. BFD_SEND(abfd, bfd_getx64, (ptr)) +. BFD_SEND (abfd, bfd_getx64, (ptr)) .#define bfd_get_signed_64(abfd, ptr) \ -. BFD_SEND(abfd, bfd_getx_signed_64, (ptr)) +. BFD_SEND (abfd, bfd_getx_signed_64, (ptr)) . -.#define bfd_get(bits, abfd, ptr) \ -. ( (bits) == 8 ? (bfd_vma) bfd_get_8 (abfd, ptr) \ -. : (bits) == 16 ? bfd_get_16 (abfd, ptr) \ -. : (bits) == 32 ? bfd_get_32 (abfd, ptr) \ -. : (bits) == 64 ? bfd_get_64 (abfd, ptr) \ -. : (abort (), (bfd_vma) - 1)) -. -.#define bfd_put(bits, abfd, val, ptr) \ -. ( (bits) == 8 ? bfd_put_8 (abfd, val, ptr) \ -. : (bits) == 16 ? bfd_put_16 (abfd, val, ptr) \ -. : (bits) == 32 ? bfd_put_32 (abfd, val, ptr) \ -. : (bits) == 64 ? bfd_put_64 (abfd, val, ptr) \ -. : (abort (), (void) 0)) +.#define bfd_get(bits, abfd, ptr) \ +. ((bits) == 8 ? (bfd_vma) bfd_get_8 (abfd, ptr) \ +. : (bits) == 16 ? bfd_get_16 (abfd, ptr) \ +. : (bits) == 32 ? bfd_get_32 (abfd, ptr) \ +. : (bits) == 64 ? bfd_get_64 (abfd, ptr) \ +. : (abort (), (bfd_vma) - 1)) +. +.#define bfd_put(bits, abfd, val, ptr) \ +. ((bits) == 8 ? bfd_put_8 (abfd, val, ptr) \ +. : (bits) == 16 ? bfd_put_16 (abfd, val, ptr) \ +. : (bits) == 32 ? bfd_put_32 (abfd, val, ptr) \ +. : (bits) == 64 ? bfd_put_64 (abfd, val, ptr) \ +. : (abort (), (void) 0)) . */ @@ -435,61 +418,51 @@ DESCRIPTION /* Sign extension to bfd_signed_vma. */ #define COERCE16(x) (((bfd_signed_vma) (x) ^ 0x8000) - 0x8000) -#define COERCE32(x) \ - ((bfd_signed_vma) (long) (((unsigned long) (x) ^ 0x80000000) - 0x80000000)) -#define EIGHT_GAZILLION (((BFD_HOST_64_BIT)0x80000000) << 32) +#define COERCE32(x) (((bfd_signed_vma) (x) ^ 0x80000000) - 0x80000000) +#define EIGHT_GAZILLION ((BFD_HOST_64_BIT) 1 << 63) #define COERCE64(x) \ (((bfd_signed_vma) (x) ^ EIGHT_GAZILLION) - EIGHT_GAZILLION) bfd_vma -bfd_getb16 (addr) - register const bfd_byte *addr; +bfd_getb16 (const bfd_byte *addr) { return (addr[0] << 8) | addr[1]; } bfd_vma -bfd_getl16 (addr) - register const bfd_byte *addr; +bfd_getl16 (const bfd_byte *addr) { return (addr[1] << 8) | addr[0]; } bfd_signed_vma -bfd_getb_signed_16 (addr) - register const bfd_byte *addr; +bfd_getb_signed_16 (const bfd_byte *addr) { - return COERCE16((addr[0] << 8) | addr[1]); + return COERCE16 ((addr[0] << 8) | addr[1]); } bfd_signed_vma -bfd_getl_signed_16 (addr) - register const bfd_byte *addr; +bfd_getl_signed_16 (const bfd_byte *addr) { - return COERCE16((addr[1] << 8) | addr[0]); + return COERCE16 ((addr[1] << 8) | addr[0]); } void -bfd_putb16 (data, addr) - bfd_vma data; - register bfd_byte *addr; +bfd_putb16 (bfd_vma data, bfd_byte *addr) { addr[0] = (bfd_byte) (data >> 8); addr[1] = (bfd_byte) data; } void -bfd_putl16 (data, addr) - bfd_vma data; - register bfd_byte *addr; +bfd_putl16 (bfd_vma data, bfd_byte *addr) { addr[0] = (bfd_byte) data; addr[1] = (bfd_byte) (data >> 8); } bfd_vma -bfd_getb32 (addr) - register const bfd_byte *addr; +bfd_getb32 (const bfd_byte *addr) { unsigned long v; @@ -497,12 +470,11 @@ bfd_getb32 (addr) v |= (unsigned long) addr[1] << 16; v |= (unsigned long) addr[2] << 8; v |= (unsigned long) addr[3]; - return (bfd_vma) v; + return v; } bfd_vma -bfd_getl32 (addr) - register const bfd_byte *addr; +bfd_getl32 (const bfd_byte *addr) { unsigned long v; @@ -510,12 +482,11 @@ bfd_getl32 (addr) v |= (unsigned long) addr[1] << 8; v |= (unsigned long) addr[2] << 16; v |= (unsigned long) addr[3] << 24; - return (bfd_vma) v; + return v; } bfd_signed_vma -bfd_getb_signed_32 (addr) - register const bfd_byte *addr; +bfd_getb_signed_32 (const bfd_byte *addr) { unsigned long v; @@ -527,8 +498,7 @@ bfd_getb_signed_32 (addr) } bfd_signed_vma -bfd_getl_signed_32 (addr) - register const bfd_byte *addr; +bfd_getl_signed_32 (const bfd_byte *addr) { unsigned long v; @@ -540,23 +510,21 @@ bfd_getl_signed_32 (addr) } bfd_vma -bfd_getb64 (addr) - register const bfd_byte *addr ATTRIBUTE_UNUSED; +bfd_getb64 (const bfd_byte *addr ATTRIBUTE_UNUSED) { #ifdef BFD64 - bfd_vma low, high; + bfd_vma v; - high= ((((((((addr[0]) << 8) | - addr[1]) << 8) | - addr[2]) << 8) | - addr[3]) ); - - low = (((((((((bfd_vma)addr[4]) << 8) | - addr[5]) << 8) | - addr[6]) << 8) | - addr[7])); + v = addr[0]; v <<= 8; + v |= addr[1]; v <<= 8; + v |= addr[2]; v <<= 8; + v |= addr[3]; v <<= 8; + v |= addr[4]; v <<= 8; + v |= addr[5]; v <<= 8; + v |= addr[6]; v <<= 8; + v |= addr[7]; - return high << 32 | low; + return v; #else BFD_FAIL(); return 0; @@ -564,22 +532,21 @@ bfd_getb64 (addr) } bfd_vma -bfd_getl64 (addr) - register const bfd_byte *addr ATTRIBUTE_UNUSED; +bfd_getl64 (const bfd_byte *addr ATTRIBUTE_UNUSED) { #ifdef BFD64 - bfd_vma low, high; - high= (((((((addr[7] << 8) | - addr[6]) << 8) | - addr[5]) << 8) | - addr[4])); - - low = ((((((((bfd_vma)addr[3] << 8) | - addr[2]) << 8) | - addr[1]) << 8) | - addr[0]) ); + bfd_vma v; + + v = addr[7]; v <<= 8; + v |= addr[6]; v <<= 8; + v |= addr[5]; v <<= 8; + v |= addr[4]; v <<= 8; + v |= addr[3]; v <<= 8; + v |= addr[2]; v <<= 8; + v |= addr[1]; v <<= 8; + v |= addr[0]; - return high << 32 | low; + return v; #else BFD_FAIL(); return 0; @@ -592,19 +559,18 @@ bfd_getb_signed_64 (addr) register const bfd_byte *addr ATTRIBUTE_UNUSED; { #ifdef BFD64 - bfd_vma low, high; + bfd_vma v; - high= ((((((((addr[0]) << 8) | - addr[1]) << 8) | - addr[2]) << 8) | - addr[3]) ); - - low = (((((((((bfd_vma)addr[4]) << 8) | - addr[5]) << 8) | - addr[6]) << 8) | - addr[7])); + v = addr[0]; v <<= 8; + v |= addr[1]; v <<= 8; + v |= addr[2]; v <<= 8; + v |= addr[3]; v <<= 8; + v |= addr[4]; v <<= 8; + v |= addr[5]; v <<= 8; + v |= addr[6]; v <<= 8; + v |= addr[7]; - return COERCE64(high << 32 | low); + return COERCE64 (v); #else BFD_FAIL(); return 0; @@ -616,18 +582,18 @@ bfd_getl_signed_64 (addr) register const bfd_byte *addr ATTRIBUTE_UNUSED; { #ifdef BFD64 - bfd_vma low, high; - high= (((((((addr[7] << 8) | - addr[6]) << 8) | - addr[5]) << 8) | - addr[4])); - - low = ((((((((bfd_vma)addr[3] << 8) | - addr[2]) << 8) | - addr[1]) << 8) | - addr[0]) ); + bfd_vma v; - return COERCE64(high << 32 | low); + v = addr[7]; v <<= 8; + v |= addr[6]; v <<= 8; + v |= addr[5]; v <<= 8; + v |= addr[4]; v <<= 8; + v |= addr[3]; v <<= 8; + v |= addr[2]; v <<= 8; + v |= addr[1]; v <<= 8; + v |= addr[0]; + + return COERCE64 (v); #else BFD_FAIL(); return 0; @@ -635,31 +601,25 @@ bfd_getl_signed_64 (addr) } void -bfd_putb32 (data, addr) - bfd_vma data; - register bfd_byte *addr; -{ - addr[0] = (bfd_byte) (data >> 24); - addr[1] = (bfd_byte) (data >> 16); - addr[2] = (bfd_byte) (data >> 8); - addr[3] = (bfd_byte) data; +bfd_putb32 (bfd_vma data, bfd_byte *addr) +{ + addr[0] = (bfd_byte) (data >> 24); + addr[1] = (bfd_byte) (data >> 16); + addr[2] = (bfd_byte) (data >> 8); + addr[3] = (bfd_byte) data; } void -bfd_putl32 (data, addr) - bfd_vma data; - register bfd_byte *addr; -{ - addr[0] = (bfd_byte) data; - addr[1] = (bfd_byte) (data >> 8); - addr[2] = (bfd_byte) (data >> 16); - addr[3] = (bfd_byte) (data >> 24); +bfd_putl32 (bfd_vma data, bfd_byte *addr) +{ + addr[0] = (bfd_byte) data; + addr[1] = (bfd_byte) (data >> 8); + addr[2] = (bfd_byte) (data >> 16); + addr[3] = (bfd_byte) (data >> 24); } void -bfd_putb64 (data, addr) - bfd_vma data ATTRIBUTE_UNUSED; - register bfd_byte *addr ATTRIBUTE_UNUSED; +bfd_putb64 (bfd_vma data ATTRIBUTE_UNUSED, bfd_byte *addr ATTRIBUTE_UNUSED) { #ifdef BFD64 addr[0] = (bfd_byte) (data >> (7*8)); @@ -676,9 +636,7 @@ bfd_putb64 (data, addr) } void -bfd_putl64 (data, addr) - bfd_vma data ATTRIBUTE_UNUSED; - register bfd_byte *addr ATTRIBUTE_UNUSED; +bfd_putl64 (bfd_vma data ATTRIBUTE_UNUSED, bfd_byte *addr ATTRIBUTE_UNUSED) { #ifdef BFD64 addr[7] = (bfd_byte) (data >> (7*8)); @@ -695,11 +653,7 @@ bfd_putl64 (data, addr) } void -bfd_put_bits (data, addr, bits, big_p) - bfd_vma data; - bfd_byte *addr; - int bits; - bfd_boolean big_p; +bfd_put_bits (bfd_vma data, bfd_byte *addr, int bits, bfd_boolean big_p) { int i; int bytes; @@ -718,10 +672,7 @@ bfd_put_bits (data, addr, bits, big_p) } bfd_vma -bfd_get_bits (addr, bits, big_p) - bfd_byte *addr; - int bits; - bfd_boolean big_p; +bfd_get_bits (bfd_byte *addr, int bits, bfd_boolean big_p) { bfd_vma data; int i; @@ -745,12 +696,11 @@ bfd_get_bits (addr, bits, big_p) /* Default implementation */ bfd_boolean -_bfd_generic_get_section_contents (abfd, section, location, offset, count) - bfd *abfd; - sec_ptr section; - PTR location; - file_ptr offset; - bfd_size_type count; +_bfd_generic_get_section_contents (bfd *abfd, + sec_ptr section, + void *location, + file_ptr offset, + bfd_size_type count) { if (count == 0) return TRUE; @@ -769,17 +719,18 @@ _bfd_generic_get_section_contents (abfd, } bfd_boolean -_bfd_generic_get_section_contents_in_window (abfd, section, w, offset, count) - bfd *abfd ATTRIBUTE_UNUSED; - sec_ptr section ATTRIBUTE_UNUSED; - bfd_window *w ATTRIBUTE_UNUSED; - file_ptr offset ATTRIBUTE_UNUSED; - bfd_size_type count ATTRIBUTE_UNUSED; +_bfd_generic_get_section_contents_in_window + (bfd *abfd ATTRIBUTE_UNUSED, + sec_ptr section ATTRIBUTE_UNUSED, + bfd_window *w ATTRIBUTE_UNUSED, + file_ptr offset ATTRIBUTE_UNUSED, + bfd_size_type count ATTRIBUTE_UNUSED) { #ifdef USE_MMAP if (count == 0) return TRUE; - if (abfd->xvec->_bfd_get_section_contents != _bfd_generic_get_section_contents) + if (abfd->xvec->_bfd_get_section_contents + != _bfd_generic_get_section_contents) { /* We don't know what changes the bfd's get_section_contents method may have to make. So punt trying to map the file @@ -787,11 +738,10 @@ _bfd_generic_get_section_contents_in_win /* @@ FIXME : If the internal window has a refcount of 1 and was allocated with malloc instead of mmap, just reuse it. */ bfd_free_window (w); - w->i = ((bfd_window_internal *) - bfd_zmalloc ((bfd_size_type) sizeof (bfd_window_internal))); + w->i = bfd_zmalloc (sizeof (bfd_window_internal)); if (w->i == NULL) return FALSE; - w->i->data = (PTR) bfd_malloc (count); + w->i->data = bfd_malloc (count); if (w->i->data == NULL) { free (w->i); @@ -819,12 +769,11 @@ _bfd_generic_get_section_contents_in_win in read-write files, though. See other set_section_contents functions to see why it doesn't work for new sections. */ bfd_boolean -_bfd_generic_set_section_contents (abfd, section, location, offset, count) - bfd *abfd; - sec_ptr section; - PTR location; - file_ptr offset; - bfd_size_type count; +_bfd_generic_set_section_contents (bfd *abfd, + sec_ptr section, + void *location, + file_ptr offset, + bfd_size_type count) { if (count == 0) return TRUE; @@ -849,8 +798,7 @@ DESCRIPTION */ unsigned int -bfd_log2 (x) - bfd_vma x; +bfd_log2 (bfd_vma x) { unsigned int result = 0; @@ -860,9 +808,7 @@ bfd_log2 (x) } bfd_boolean -bfd_generic_is_local_label_name (abfd, name) - bfd *abfd; - const char *name; +bfd_generic_is_local_label_name (bfd *abfd, const char *name) { char locals_prefix = (bfd_get_symbol_leading_char (abfd) == '_') ? 'L' : '.'; @@ -873,9 +819,7 @@ bfd_generic_is_local_label_name (abfd, n endianness matches between input and output file. Returns TRUE for a match, otherwise returns FALSE and emits an error. */ bfd_boolean -_bfd_generic_verify_endian_match (ibfd, obfd) - bfd *ibfd; - bfd *obfd; +_bfd_generic_verify_endian_match (bfd *ibfd, bfd *obfd) { if (ibfd->xvec->byteorder != obfd->xvec->byteorder && ibfd->xvec->byteorder != BFD_ENDIAN_UNKNOWN @@ -901,11 +845,10 @@ _bfd_generic_verify_endian_match (ibfd, old routines. */ void -warn_deprecated (what, file, line, func) - const char *what; - const char *file; - int line; - const char *func; +warn_deprecated (const char *what, + const char *file, + int line, + const char *func) { /* Poor man's tracking of functions we've already warned about. */ static size_t mask = 0; diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/libbfd.h binutils-2.14.90.0.5/bfd/libbfd.h --- binutils-2.14.90.0.4.1/bfd/libbfd.h 2003-05-05 14:46:47.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/libbfd.h 2003-07-23 08:08:09.000000000 -0700 @@ -6,7 +6,7 @@ /* libbfd.h -- Declarations used by bfd library *implementation*. (This include file is not for users of the library.) Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2001, 2002 + 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Written by Cygnus Support. @@ -41,7 +41,7 @@ Foundation, Inc., 59 Temple Place - Suit /* Set a tdata field. Can't use the other macros for this, since they do casts, and casting to the left of assignment isn't portable. */ -#define set_tdata(bfd, v) ((bfd)->tdata.any = (PTR) (v)) +#define set_tdata(bfd, v) ((bfd)->tdata.any = (v)) /* If BFD_IN_MEMORY is set for a BFD, then the iostream fields points to an instance of this structure. */ @@ -74,7 +74,7 @@ struct artdata { archive. */ file_ptr armap_datepos; /* Position within archive to seek to rewrite the date field. */ - PTR tdata; /* Backend specific information. */ + void *tdata; /* Backend specific information. */ }; #define bfd_ardata(bfd) ((bfd)->tdata.aout_ar_data) @@ -88,105 +88,105 @@ struct areltdata { #define arelt_size(bfd) (((struct areltdata *)((bfd)->arelt_data))->parsed_size) -extern PTR bfd_malloc - PARAMS ((bfd_size_type)); -extern PTR bfd_realloc - PARAMS ((PTR, bfd_size_type)); -extern PTR bfd_zmalloc - PARAMS ((bfd_size_type)); +extern void *bfd_malloc + (bfd_size_type); +extern void *bfd_realloc + (void *, bfd_size_type); +extern void *bfd_zmalloc + (bfd_size_type); extern bfd_error_handler_type _bfd_error_handler; /* These routines allocate and free things on the BFD's objalloc. */ -extern PTR bfd_alloc - PARAMS ((bfd *, bfd_size_type)); -extern PTR bfd_zalloc - PARAMS ((bfd *, bfd_size_type)); +extern void *bfd_alloc + (bfd *, bfd_size_type); +extern void *bfd_zalloc + (bfd *, bfd_size_type); extern void bfd_release - PARAMS ((bfd *, PTR)); + (bfd *, void *); bfd * _bfd_create_empty_archive_element_shell - PARAMS ((bfd *obfd)); + (bfd *obfd); bfd * _bfd_look_for_bfd_in_cache - PARAMS ((bfd *, file_ptr)); + (bfd *, file_ptr); bfd_boolean _bfd_add_bfd_to_archive_cache - PARAMS ((bfd *, file_ptr, bfd *)); + (bfd *, file_ptr, bfd *); bfd_boolean _bfd_generic_mkarchive - PARAMS ((bfd *abfd)); + (bfd *abfd); const bfd_target *bfd_generic_archive_p - PARAMS ((bfd *abfd)); + (bfd *abfd); bfd_boolean bfd_slurp_armap - PARAMS ((bfd *abfd)); + (bfd *abfd); bfd_boolean bfd_slurp_bsd_armap_f2 - PARAMS ((bfd *abfd)); + (bfd *abfd); #define bfd_slurp_bsd_armap bfd_slurp_armap #define bfd_slurp_coff_armap bfd_slurp_armap bfd_boolean _bfd_slurp_extended_name_table - PARAMS ((bfd *abfd)); + (bfd *abfd); extern bfd_boolean _bfd_construct_extended_name_table - PARAMS ((bfd *, bfd_boolean, char **, bfd_size_type *)); + (bfd *, bfd_boolean, char **, bfd_size_type *); bfd_boolean _bfd_write_archive_contents - PARAMS ((bfd *abfd)); + (bfd *abfd); bfd_boolean _bfd_compute_and_write_armap - PARAMS ((bfd *, unsigned int elength)); + (bfd *, unsigned int elength); bfd *_bfd_get_elt_at_filepos - PARAMS ((bfd *archive, file_ptr filepos)); + (bfd *archive, file_ptr filepos); extern bfd *_bfd_generic_get_elt_at_index - PARAMS ((bfd *, symindex)); + (bfd *, symindex); bfd * _bfd_new_bfd - PARAMS ((void)); + (void); void _bfd_delete_bfd - PARAMS ((bfd *)); + (bfd *); bfd_boolean bfd_false - PARAMS ((bfd *ignore)); + (bfd *ignore); bfd_boolean bfd_true - PARAMS ((bfd *ignore)); -PTR bfd_nullvoidptr - PARAMS ((bfd *ignore)); + (bfd *ignore); +void *bfd_nullvoidptr + (bfd *ignore); int bfd_0 - PARAMS ((bfd *ignore)); + (bfd *ignore); unsigned int bfd_0u - PARAMS ((bfd *ignore)); + (bfd *ignore); long bfd_0l - PARAMS ((bfd *ignore)); + (bfd *ignore); long _bfd_n1 - PARAMS ((bfd *ignore)); + (bfd *ignore); void bfd_void - PARAMS ((bfd *ignore)); + (bfd *ignore); bfd *_bfd_new_bfd_contained_in - PARAMS ((bfd *)); + (bfd *); const bfd_target *_bfd_dummy_target - PARAMS ((bfd *abfd)); + (bfd *abfd); void bfd_dont_truncate_arname - PARAMS ((bfd *abfd, const char *filename, char *hdr)); + (bfd *abfd, const char *filename, char *hdr); void bfd_bsd_truncate_arname - PARAMS ((bfd *abfd, const char *filename, char *hdr)); + (bfd *abfd, const char *filename, char *hdr); void bfd_gnu_truncate_arname - PARAMS ((bfd *abfd, const char *filename, char *hdr)); + (bfd *abfd, const char *filename, char *hdr); bfd_boolean bsd_write_armap - PARAMS ((bfd *arch, unsigned int elength, struct orl *map, - unsigned int orl_count, int stridx)); + (bfd *arch, unsigned int elength, struct orl *map, unsigned int orl_count, + int stridx); bfd_boolean coff_write_armap - PARAMS ((bfd *arch, unsigned int elength, struct orl *map, - unsigned int orl_count, int stridx)); + (bfd *arch, unsigned int elength, struct orl *map, unsigned int orl_count, + int stridx); -extern PTR _bfd_generic_read_ar_hdr - PARAMS ((bfd *)); +extern void *_bfd_generic_read_ar_hdr + (bfd *); -extern PTR _bfd_generic_read_ar_hdr_mag - PARAMS ((bfd *, const char *)); +extern void *_bfd_generic_read_ar_hdr_mag + (bfd *, const char *); bfd * bfd_generic_openr_next_archived_file - PARAMS ((bfd *archive, bfd *last_file)); + (bfd *archive, bfd *last_file); int bfd_generic_stat_arch_elt - PARAMS ((bfd *, struct stat *)); + (bfd *, struct stat *); #define _bfd_read_ar_hdr(abfd) \ BFD_SEND (abfd, _bfd_read_ar_hdr_fn, (abfd)) @@ -197,37 +197,37 @@ int bfd_generic_stat_arch_elt #define _bfd_generic_close_and_cleanup bfd_true #define _bfd_generic_bfd_free_cached_info bfd_true #define _bfd_generic_new_section_hook \ - ((bfd_boolean (*) PARAMS ((bfd *, asection *))) bfd_true) + ((bfd_boolean (*) (bfd *, asection *)) bfd_true) extern bfd_boolean _bfd_generic_get_section_contents - PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type)); + (bfd *, asection *, void *, file_ptr, bfd_size_type); extern bfd_boolean _bfd_generic_get_section_contents_in_window - PARAMS ((bfd *, asection *, bfd_window *, file_ptr, bfd_size_type)); + (bfd *, asection *, bfd_window *, file_ptr, bfd_size_type); /* Generic routines to use for BFD_JUMP_TABLE_COPY. Use BFD_JUMP_TABLE_COPY (_bfd_generic). */ #define _bfd_generic_bfd_copy_private_bfd_data \ - ((bfd_boolean (*) PARAMS ((bfd *, bfd *))) bfd_true) + ((bfd_boolean (*) (bfd *, bfd *)) bfd_true) #define _bfd_generic_bfd_merge_private_bfd_data \ - ((bfd_boolean (*) PARAMS ((bfd *, bfd *))) bfd_true) + ((bfd_boolean (*) (bfd *, bfd *)) bfd_true) #define _bfd_generic_bfd_set_private_flags \ - ((bfd_boolean (*) PARAMS ((bfd *, flagword))) bfd_true) + ((bfd_boolean (*) (bfd *, flagword)) bfd_true) #define _bfd_generic_bfd_copy_private_section_data \ - ((bfd_boolean (*) PARAMS ((bfd *, asection *, bfd *, asection *))) bfd_true) + ((bfd_boolean (*) (bfd *, asection *, bfd *, asection *)) bfd_true) #define _bfd_generic_bfd_copy_private_symbol_data \ - ((bfd_boolean (*) PARAMS ((bfd *, asymbol *, bfd *, asymbol *))) bfd_true) + ((bfd_boolean (*) (bfd *, asymbol *, bfd *, asymbol *)) bfd_true) #define _bfd_generic_bfd_print_private_bfd_data \ - ((bfd_boolean (*) PARAMS ((bfd *, PTR))) bfd_true) + ((bfd_boolean (*) (bfd *, void *)) bfd_true) /* Routines to use for BFD_JUMP_TABLE_CORE when there is no core file support. Use BFD_JUMP_TABLE_CORE (_bfd_nocore). */ extern char *_bfd_nocore_core_file_failing_command - PARAMS ((bfd *)); + (bfd *); extern int _bfd_nocore_core_file_failing_signal - PARAMS ((bfd *)); + (bfd *); extern bfd_boolean _bfd_nocore_core_file_matches_executable_p - PARAMS ((bfd *, bfd *)); + (bfd *, bfd *); /* Routines to use for BFD_JUMP_TABLE_ARCHIVE when there is no archive file support. Use BFD_JUMP_TABLE_ARCHIVE (_bfd_noarchive). */ @@ -235,20 +235,18 @@ extern bfd_boolean _bfd_nocore_core_file #define _bfd_noarchive_slurp_armap bfd_false #define _bfd_noarchive_slurp_extended_name_table bfd_false #define _bfd_noarchive_construct_extended_name_table \ - ((bfd_boolean (*) \ - PARAMS ((bfd *, char **, bfd_size_type *, const char **))) \ + ((bfd_boolean (*) (bfd *, char **, bfd_size_type *, const char **)) \ bfd_false) #define _bfd_noarchive_truncate_arname \ - ((void (*) PARAMS ((bfd *, const char *, char *))) bfd_void) + ((void (*) (bfd *, const char *, char *)) bfd_void) #define _bfd_noarchive_write_armap \ - ((bfd_boolean (*) \ - PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int))) \ + ((bfd_boolean (*) (bfd *, unsigned int, struct orl *, unsigned int, int)) \ bfd_false) #define _bfd_noarchive_read_ar_hdr bfd_nullvoidptr #define _bfd_noarchive_openr_next_archived_file \ - ((bfd *(*) PARAMS ((bfd *, bfd *))) bfd_nullvoidptr) + ((bfd *(*) (bfd *, bfd *)) bfd_nullvoidptr) #define _bfd_noarchive_get_elt_at_index \ - ((bfd *(*) PARAMS ((bfd *, symindex))) bfd_nullvoidptr) + ((bfd *(*) (bfd *, symindex)) bfd_nullvoidptr) #define _bfd_noarchive_generic_stat_arch_elt bfd_generic_stat_arch_elt #define _bfd_noarchive_update_armap_timestamp bfd_false @@ -259,7 +257,7 @@ extern bfd_boolean _bfd_nocore_core_file #define _bfd_archive_bsd_slurp_extended_name_table \ _bfd_slurp_extended_name_table extern bfd_boolean _bfd_archive_bsd_construct_extended_name_table - PARAMS ((bfd *, char **, bfd_size_type *, const char **)); + (bfd *, char **, bfd_size_type *, const char **); #define _bfd_archive_bsd_truncate_arname bfd_bsd_truncate_arname #define _bfd_archive_bsd_write_armap bsd_write_armap #define _bfd_archive_bsd_read_ar_hdr _bfd_generic_read_ar_hdr @@ -269,7 +267,7 @@ extern bfd_boolean _bfd_archive_bsd_cons #define _bfd_archive_bsd_generic_stat_arch_elt \ bfd_generic_stat_arch_elt extern bfd_boolean _bfd_archive_bsd_update_armap_timestamp - PARAMS ((bfd *)); + (bfd *); /* Routines to use for BFD_JUMP_TABLE_ARCHIVE to get COFF style archives. Use BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff). */ @@ -278,7 +276,7 @@ extern bfd_boolean _bfd_archive_bsd_upda #define _bfd_archive_coff_slurp_extended_name_table \ _bfd_slurp_extended_name_table extern bfd_boolean _bfd_archive_coff_construct_extended_name_table - PARAMS ((bfd *, char **, bfd_size_type *, const char **)); + (bfd *, char **, bfd_size_type *, const char **); #define _bfd_archive_coff_truncate_arname bfd_dont_truncate_arname #define _bfd_archive_coff_write_armap coff_write_armap #define _bfd_archive_coff_read_ar_hdr _bfd_generic_read_ar_hdr @@ -294,49 +292,46 @@ extern bfd_boolean _bfd_archive_coff_con #define _bfd_nosymbols_get_symtab_upper_bound _bfd_n1 #define _bfd_nosymbols_get_symtab \ - ((long (*) PARAMS ((bfd *, asymbol **))) _bfd_n1) + ((long (*) (bfd *, asymbol **)) _bfd_n1) #define _bfd_nosymbols_make_empty_symbol _bfd_generic_make_empty_symbol #define _bfd_nosymbols_print_symbol \ - ((void (*) PARAMS ((bfd *, PTR, asymbol *, bfd_print_symbol_type))) bfd_void) + ((void (*) (bfd *, void *, asymbol *, bfd_print_symbol_type)) bfd_void) #define _bfd_nosymbols_get_symbol_info \ - ((void (*) PARAMS ((bfd *, asymbol *, symbol_info *))) bfd_void) + ((void (*) (bfd *, asymbol *, symbol_info *)) bfd_void) #define _bfd_nosymbols_bfd_is_local_label_name \ - ((bfd_boolean (*) PARAMS ((bfd *, const char *))) bfd_false) + ((bfd_boolean (*) (bfd *, const char *)) bfd_false) #define _bfd_nosymbols_get_lineno \ - ((alent *(*) PARAMS ((bfd *, asymbol *))) bfd_nullvoidptr) + ((alent *(*) (bfd *, asymbol *)) bfd_nullvoidptr) #define _bfd_nosymbols_find_nearest_line \ - ((bfd_boolean (*) \ - PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **, \ - const char **, unsigned int *))) \ + ((bfd_boolean (*) (bfd *, asection *, asymbol **, bfd_vma, const char **, \ + const char **, unsigned int *)) \ bfd_false) #define _bfd_nosymbols_bfd_make_debug_symbol \ - ((asymbol *(*) PARAMS ((bfd *, PTR, unsigned long))) bfd_nullvoidptr) + ((asymbol *(*) (bfd *, void *, unsigned long)) bfd_nullvoidptr) #define _bfd_nosymbols_read_minisymbols \ - ((long (*) PARAMS ((bfd *, bfd_boolean, PTR *, unsigned int *))) _bfd_n1) + ((long (*) (bfd *, bfd_boolean, void **, unsigned int *)) _bfd_n1) #define _bfd_nosymbols_minisymbol_to_symbol \ - ((asymbol *(*) PARAMS ((bfd *, bfd_boolean, const PTR, asymbol *))) \ + ((asymbol *(*) (bfd *, bfd_boolean, const void *, asymbol *)) \ bfd_nullvoidptr) /* Routines to use for BFD_JUMP_TABLE_RELOCS when there is no reloc support. Use BFD_JUMP_TABLE_RELOCS (_bfd_norelocs). */ #define _bfd_norelocs_get_reloc_upper_bound \ - ((long (*) PARAMS ((bfd *, asection *))) _bfd_n1) + ((long (*) (bfd *, asection *)) _bfd_n1) #define _bfd_norelocs_canonicalize_reloc \ - ((long (*) PARAMS ((bfd *, asection *, arelent **, asymbol **))) _bfd_n1) + ((long (*) (bfd *, asection *, arelent **, asymbol **)) _bfd_n1) #define _bfd_norelocs_bfd_reloc_type_lookup \ - ((reloc_howto_type *(*) PARAMS ((bfd *, bfd_reloc_code_real_type))) \ - bfd_nullvoidptr) + ((reloc_howto_type *(*) (bfd *, bfd_reloc_code_real_type)) bfd_nullvoidptr) /* Routines to use for BFD_JUMP_TABLE_WRITE for targets which may not be written. Use BFD_JUMP_TABLE_WRITE (_bfd_nowrite). */ #define _bfd_nowrite_set_arch_mach \ - ((bfd_boolean (*) PARAMS ((bfd *, enum bfd_architecture, unsigned long))) \ + ((bfd_boolean (*) (bfd *, enum bfd_architecture, unsigned long)) \ bfd_false) #define _bfd_nowrite_set_section_contents \ - ((bfd_boolean (*) \ - PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type))) \ + ((bfd_boolean (*) (bfd *, asection *, void *, file_ptr, bfd_size_type)) \ bfd_false) /* Generic routines to use for BFD_JUMP_TABLE_WRITE. Use @@ -344,45 +339,41 @@ extern bfd_boolean _bfd_archive_coff_con #define _bfd_generic_set_arch_mach bfd_default_set_arch_mach extern bfd_boolean _bfd_generic_set_section_contents - PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type)); + (bfd *, asection *, void *, file_ptr, bfd_size_type); /* Routines to use for BFD_JUMP_TABLE_LINK for targets which do not support linking. Use BFD_JUMP_TABLE_LINK (_bfd_nolink). */ -#define _bfd_nolink_sizeof_headers ((int (*) PARAMS ((bfd *, bfd_boolean))) bfd_0) +#define _bfd_nolink_sizeof_headers ((int (*) (bfd *, bfd_boolean)) bfd_0) #define _bfd_nolink_bfd_get_relocated_section_contents \ - ((bfd_byte *(*) \ - PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *, \ - bfd_byte *, bfd_boolean, asymbol **))) \ + ((bfd_byte *(*) (bfd *, struct bfd_link_info *, struct bfd_link_order *, \ + bfd_byte *, bfd_boolean, asymbol **)) \ bfd_nullvoidptr) #define _bfd_nolink_bfd_relax_section \ ((bfd_boolean (*) \ - PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *))) \ + (bfd *, asection *, struct bfd_link_info *, bfd_boolean *)) \ bfd_false) #define _bfd_nolink_bfd_gc_sections \ - ((bfd_boolean (*) \ - PARAMS ((bfd *, struct bfd_link_info *))) \ + ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) \ bfd_false) #define _bfd_nolink_bfd_merge_sections \ - ((bfd_boolean (*) \ - PARAMS ((bfd *, struct bfd_link_info *))) \ + ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) \ bfd_false) #define _bfd_nolink_bfd_discard_group \ - ((bfd_boolean (*) \ - PARAMS ((bfd *, struct sec *))) \ + ((bfd_boolean (*) (bfd *, struct sec *)) \ bfd_false) #define _bfd_nolink_bfd_link_hash_table_create \ - ((struct bfd_link_hash_table *(*) PARAMS ((bfd *))) bfd_nullvoidptr) + ((struct bfd_link_hash_table *(*) (bfd *)) bfd_nullvoidptr) #define _bfd_nolink_bfd_link_hash_table_free \ - ((void (*) PARAMS ((struct bfd_link_hash_table *))) bfd_void) + ((void (*) (struct bfd_link_hash_table *)) bfd_void) #define _bfd_nolink_bfd_link_add_symbols \ - ((bfd_boolean (*) PARAMS ((bfd *, struct bfd_link_info *))) bfd_false) + ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) bfd_false) #define _bfd_nolink_bfd_link_just_syms \ - ((void (*) PARAMS ((asection *, struct bfd_link_info *))) bfd_void) + ((void (*) (asection *, struct bfd_link_info *)) bfd_void) #define _bfd_nolink_bfd_final_link \ - ((bfd_boolean (*) PARAMS ((bfd *, struct bfd_link_info *))) bfd_false) + ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) bfd_false) #define _bfd_nolink_bfd_link_split_section \ - ((bfd_boolean (*) PARAMS ((bfd *, struct sec *))) bfd_false) + ((bfd_boolean (*) (bfd *, struct sec *)) bfd_false) /* Routines to use for BFD_JUMP_TABLE_DYNAMIC for targets which do not have dynamic symbols or relocs. Use BFD_JUMP_TABLE_DYNAMIC @@ -390,195 +381,189 @@ extern bfd_boolean _bfd_generic_set_sect #define _bfd_nodynamic_get_dynamic_symtab_upper_bound _bfd_n1 #define _bfd_nodynamic_canonicalize_dynamic_symtab \ - ((long (*) PARAMS ((bfd *, asymbol **))) _bfd_n1) + ((long (*) (bfd *, asymbol **)) _bfd_n1) #define _bfd_nodynamic_get_dynamic_reloc_upper_bound _bfd_n1 #define _bfd_nodynamic_canonicalize_dynamic_reloc \ - ((long (*) PARAMS ((bfd *, arelent **, asymbol **))) _bfd_n1) + ((long (*) (bfd *, arelent **, asymbol **)) _bfd_n1) /* Generic routine to determine of the given symbol is a local label. */ extern bfd_boolean bfd_generic_is_local_label_name - PARAMS ((bfd *, const char *)); + (bfd *, const char *); /* Generic minisymbol routines. */ extern long _bfd_generic_read_minisymbols - PARAMS ((bfd *, bfd_boolean, PTR *, unsigned int *)); + (bfd *, bfd_boolean, void **, unsigned int *); extern asymbol *_bfd_generic_minisymbol_to_symbol - PARAMS ((bfd *, bfd_boolean, const PTR, asymbol *)); + (bfd *, bfd_boolean, const void *, asymbol *); /* Find the nearest line using .stab/.stabstr sections. */ extern bfd_boolean _bfd_stab_section_find_nearest_line - PARAMS ((bfd *, asymbol **, asection *, bfd_vma, bfd_boolean *, - const char **, const char **, unsigned int *, PTR *)); + (bfd *, asymbol **, asection *, bfd_vma, bfd_boolean *, + const char **, const char **, unsigned int *, void **); /* Find the neaderst line using DWARF 1 debugging information. */ extern bfd_boolean _bfd_dwarf1_find_nearest_line - PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **, - const char **, unsigned int *)); + (bfd *, asection *, asymbol **, bfd_vma, const char **, + const char **, unsigned int *); /* Find the nearest line using DWARF 2 debugging information. */ extern bfd_boolean _bfd_dwarf2_find_nearest_line - PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **, - const char **, unsigned int *, unsigned int, - PTR *)); + (bfd *, asection *, asymbol **, bfd_vma, const char **, const char **, + unsigned int *, unsigned int, void **); /* Create a new section entry. */ extern struct bfd_hash_entry *bfd_section_hash_newfunc - PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); + (struct bfd_hash_entry *, struct bfd_hash_table *, const char *); /* A routine to create entries for a bfd_link_hash_table. */ extern struct bfd_hash_entry *_bfd_link_hash_newfunc - PARAMS ((struct bfd_hash_entry *entry, - struct bfd_hash_table *table, - const char *string)); + (struct bfd_hash_entry *entry, struct bfd_hash_table *table, + const char *string); /* Initialize a bfd_link_hash_table. */ extern bfd_boolean _bfd_link_hash_table_init - PARAMS ((struct bfd_link_hash_table *, bfd *, - struct bfd_hash_entry *(*) (struct bfd_hash_entry *, - struct bfd_hash_table *, - const char *))); + (struct bfd_link_hash_table *, bfd *, + struct bfd_hash_entry *(*) (struct bfd_hash_entry *, + struct bfd_hash_table *, + const char *)); /* Generic link hash table creation routine. */ extern struct bfd_link_hash_table *_bfd_generic_link_hash_table_create - PARAMS ((bfd *)); + (bfd *); /* Generic link hash table destruction routine. */ extern void _bfd_generic_link_hash_table_free - PARAMS ((struct bfd_link_hash_table *)); + (struct bfd_link_hash_table *); /* Generic add symbol routine. */ extern bfd_boolean _bfd_generic_link_add_symbols - PARAMS ((bfd *, struct bfd_link_info *)); + (bfd *, struct bfd_link_info *); /* Generic add symbol routine. This version is used by targets for which the linker must collect constructors and destructors by name, as the collect2 program does. */ extern bfd_boolean _bfd_generic_link_add_symbols_collect - PARAMS ((bfd *, struct bfd_link_info *)); + (bfd *, struct bfd_link_info *); /* Generic archive add symbol routine. */ extern bfd_boolean _bfd_generic_link_add_archive_symbols - PARAMS ((bfd *, struct bfd_link_info *, - bfd_boolean (*) (bfd *, struct bfd_link_info *, bfd_boolean *))); + (bfd *, struct bfd_link_info *, + bfd_boolean (*) (bfd *, struct bfd_link_info *, bfd_boolean *)); /* Forward declaration to avoid prototype errors. */ typedef struct bfd_link_hash_entry _bfd_link_hash_entry; /* Generic routine to add a single symbol. */ extern bfd_boolean _bfd_generic_link_add_one_symbol - PARAMS ((struct bfd_link_info *, bfd *, const char *name, flagword, - asection *, bfd_vma, const char *, bfd_boolean copy, - bfd_boolean constructor, struct bfd_link_hash_entry **)); + (struct bfd_link_info *, bfd *, const char *name, flagword, + asection *, bfd_vma, const char *, bfd_boolean copy, + bfd_boolean constructor, struct bfd_link_hash_entry **); /* Generic routine to mark section as supplying symbols only. */ extern void _bfd_generic_link_just_syms - PARAMS ((asection *, struct bfd_link_info *)); + (asection *, struct bfd_link_info *); /* Generic link routine. */ extern bfd_boolean _bfd_generic_final_link - PARAMS ((bfd *, struct bfd_link_info *)); + (bfd *, struct bfd_link_info *); extern bfd_boolean _bfd_generic_link_split_section - PARAMS ((bfd *, struct sec *)); + (bfd *, struct sec *); /* Generic reloc_link_order processing routine. */ extern bfd_boolean _bfd_generic_reloc_link_order - PARAMS ((bfd *, struct bfd_link_info *, asection *, - struct bfd_link_order *)); + (bfd *, struct bfd_link_info *, asection *, struct bfd_link_order *); /* Default link order processing routine. */ extern bfd_boolean _bfd_default_link_order - PARAMS ((bfd *, struct bfd_link_info *, asection *, - struct bfd_link_order *)); + (bfd *, struct bfd_link_info *, asection *, struct bfd_link_order *); /* Count the number of reloc entries in a link order list. */ extern unsigned int _bfd_count_link_order_relocs - PARAMS ((struct bfd_link_order *)); + (struct bfd_link_order *); /* Final link relocation routine. */ extern bfd_reloc_status_type _bfd_final_link_relocate - PARAMS ((reloc_howto_type *, bfd *, asection *, bfd_byte *, - bfd_vma, bfd_vma, bfd_vma)); + (reloc_howto_type *, bfd *, asection *, bfd_byte *, + bfd_vma, bfd_vma, bfd_vma); /* Relocate a particular location by a howto and a value. */ extern bfd_reloc_status_type _bfd_relocate_contents - PARAMS ((reloc_howto_type *, bfd *, bfd_vma, bfd_byte *)); + (reloc_howto_type *, bfd *, bfd_vma, bfd_byte *); /* Link stabs in sections in the first pass. */ extern bfd_boolean _bfd_link_section_stabs - PARAMS ((bfd *, PTR *, asection *, asection *, PTR *)); + (bfd *, void **, asection *, asection *, void **); /* Eliminate stabs for discarded functions and symbols. */ extern bfd_boolean _bfd_discard_section_stabs - PARAMS ((bfd *, asection *, PTR, - bfd_boolean (*) (bfd_vma, PTR), PTR)); + (bfd *, asection *, void *, bfd_boolean (*) (bfd_vma, void *), void *); /* Write out the .stab section when linking stabs in sections. */ extern bfd_boolean _bfd_write_section_stabs - PARAMS ((bfd *, PTR *, asection *, PTR *, bfd_byte *)); + (bfd *, void **, asection *, void **, bfd_byte *); /* Write out the .stabstr string table when linking stabs in sections. */ extern bfd_boolean _bfd_write_stab_strings - PARAMS ((bfd *, PTR *)); + (bfd *, void **); /* Find an offset within a .stab section when linking stabs in sections. */ extern bfd_vma _bfd_stab_section_offset - PARAMS ((bfd *, PTR *, asection *, PTR *, bfd_vma)); + (bfd *, void **, asection *, void **, bfd_vma); /* Attempt to merge a SEC_MERGE section. */ extern bfd_boolean _bfd_merge_section - PARAMS ((bfd *, PTR *, asection *, PTR *)); + (bfd *, void **, asection *, void **); /* Attempt to merge SEC_MERGE sections. */ extern bfd_boolean _bfd_merge_sections - PARAMS ((bfd *, PTR, void (*)(bfd *, asection *))); + (bfd *, void *, void (*) (bfd *, asection *)); /* Write out a merged section. */ extern bfd_boolean _bfd_write_merged_section - PARAMS ((bfd *, asection *, PTR)); + (bfd *, asection *, void *); /* Find an offset within a modified SEC_MERGE section. */ extern bfd_vma _bfd_merged_section_offset - PARAMS ((bfd *, asection **, PTR, bfd_vma, bfd_vma)); + (bfd *, asection **, void *, bfd_vma, bfd_vma); /* Create a string table. */ extern struct bfd_strtab_hash *_bfd_stringtab_init - PARAMS ((void)); + (void); /* Create an XCOFF .debug section style string table. */ extern struct bfd_strtab_hash *_bfd_xcoff_stringtab_init - PARAMS ((void)); + (void); /* Free a string table. */ extern void _bfd_stringtab_free - PARAMS ((struct bfd_strtab_hash *)); + (struct bfd_strtab_hash *); /* Get the size of a string table. */ extern bfd_size_type _bfd_stringtab_size - PARAMS ((struct bfd_strtab_hash *)); + (struct bfd_strtab_hash *); /* Add a string to a string table. */ extern bfd_size_type _bfd_stringtab_add - PARAMS ((struct bfd_strtab_hash *, const char *, bfd_boolean hash, - bfd_boolean copy)); + (struct bfd_strtab_hash *, const char *, bfd_boolean hash, bfd_boolean copy); /* Write out a string table. */ extern bfd_boolean _bfd_stringtab_emit - PARAMS ((bfd *, struct bfd_strtab_hash *)); + (bfd *, struct bfd_strtab_hash *); /* Check that endianness of input and output file match. */ extern bfd_boolean _bfd_generic_verify_endian_match - PARAMS ((bfd *, bfd *)); + (bfd *, bfd *); /* Macros to tell if bfds are read or write enabled. @@ -589,20 +574,22 @@ extern bfd_boolean _bfd_generic_verify_e !bfd_read_p, and only sometimes bfd_write_p. */ -#define bfd_read_p(abfd) ((abfd)->direction == read_direction || (abfd)->direction == both_direction) -#define bfd_write_p(abfd) ((abfd)->direction == write_direction || (abfd)->direction == both_direction) +#define bfd_read_p(abfd) \ + ((abfd)->direction == read_direction || (abfd)->direction == both_direction) +#define bfd_write_p(abfd) \ + ((abfd)->direction == write_direction || (abfd)->direction == both_direction) void bfd_assert - PARAMS ((const char*,int)); + (const char*,int); #define BFD_ASSERT(x) \ -{ if (!(x)) bfd_assert(__FILE__,__LINE__); } + { if (!(x)) bfd_assert(__FILE__,__LINE__); } #define BFD_FAIL() \ -{ bfd_assert(__FILE__,__LINE__); } + { bfd_assert(__FILE__,__LINE__); } extern void _bfd_abort - PARAMS ((const char *, int, const char *)) ATTRIBUTE_NORETURN; + (const char *, int, const char *) ATTRIBUTE_NORETURN; /* if gcc >= 2.6, we can give a function name, too */ #if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 6) @@ -613,7 +600,7 @@ extern void _bfd_abort #define abort() _bfd_abort (__FILE__, __LINE__, __PRETTY_FUNCTION__) FILE * bfd_cache_lookup_worker - PARAMS ((bfd *)); + (bfd *); extern bfd *bfd_last_cache; @@ -633,42 +620,41 @@ struct ecoff_find_line; #endif extern bfd_boolean _bfd_ecoff_locate_line - PARAMS ((bfd *, asection *, bfd_vma, struct ecoff_debug_info * const, - const struct ecoff_debug_swap * const, struct ecoff_find_line *, - const char **, const char **, unsigned int *)); + (bfd *, asection *, bfd_vma, struct ecoff_debug_info * const, + const struct ecoff_debug_swap * const, struct ecoff_find_line *, + const char **, const char **, unsigned int *); extern bfd_boolean _bfd_ecoff_get_accumulated_pdr - PARAMS ((PTR, bfd_byte *)); + (void *, bfd_byte *); extern bfd_boolean _bfd_ecoff_get_accumulated_sym - PARAMS ((PTR, bfd_byte *)); + (void *, bfd_byte *); extern bfd_boolean _bfd_ecoff_get_accumulated_ss - PARAMS ((PTR, bfd_byte *)); + (void *, bfd_byte *); extern bfd_vma _bfd_get_gp_value - PARAMS ((bfd *)); + (bfd *); extern void _bfd_set_gp_value - PARAMS ((bfd *, bfd_vma)); + (bfd *, bfd_vma); /* Function shared by the COFF and ELF SH backends, which have no other common header files. */ +#ifndef _bfd_sh_align_load_span extern bfd_boolean _bfd_sh_align_load_span - PARAMS ((bfd *, asection *, bfd_byte *, - bfd_boolean (*) (bfd *, asection *, PTR, bfd_byte *, bfd_vma), - PTR, bfd_vma **, bfd_vma *, bfd_vma, bfd_vma, bfd_boolean *)); - + (bfd *, asection *, bfd_byte *, + bfd_boolean (*) (bfd *, asection *, void *, bfd_byte *, bfd_vma), + void *, bfd_vma **, bfd_vma *, bfd_vma, bfd_vma, bfd_boolean *); +#endif /* Extracted from init.c. */ /* Extracted from libbfd.c. */ -bfd_boolean -bfd_write_bigendian_4byte_int PARAMS ((bfd *, unsigned int)); +bfd_boolean bfd_write_bigendian_4byte_int (bfd *, unsigned int); -unsigned int -bfd_log2 PARAMS ((bfd_vma x)); +unsigned int bfd_log2 (bfd_vma x); /* Extracted from bfdio.c. */ /* Extracted from bfdwin.c. */ struct _bfd_window_internal { struct _bfd_window_internal *next; - PTR data; + void *data; bfd_size_type size; int refcount : 31; /* should be enough... */ unsigned mapped : 1; /* 1 = mmap, 0 = malloc */ @@ -681,17 +667,13 @@ extern bfd *bfd_last_cache; ((x)==bfd_last_cache? \ (FILE*) (bfd_last_cache->iostream): \ bfd_cache_lookup_worker(x)) -bfd_boolean -bfd_cache_init PARAMS ((bfd *abfd)); +bfd_boolean bfd_cache_init (bfd *abfd); -bfd_boolean -bfd_cache_close PARAMS ((bfd *abfd)); +bfd_boolean bfd_cache_close (bfd *abfd); -FILE* -bfd_open_file PARAMS ((bfd *abfd)); +FILE* bfd_open_file (bfd *abfd); -FILE * -bfd_cache_lookup_worker PARAMS ((bfd *abfd)); +FILE *bfd_cache_lookup_worker (bfd *abfd); /* Extracted from reloc.c. */ #ifdef _BFD_MAKE_TABLE_bfd_reloc_code_real @@ -881,6 +863,14 @@ static const char *const bfd_reloc_code_ "BFD_RELOC_FRV_GPREL32", "BFD_RELOC_FRV_GPRELHI", "BFD_RELOC_FRV_GPRELLO", + "BFD_RELOC_MN10300_GOTOFF24", + "BFD_RELOC_MN10300_GOT32", + "BFD_RELOC_MN10300_GOT24", + "BFD_RELOC_MN10300_GOT16", + "BFD_RELOC_MN10300_COPY", + "BFD_RELOC_MN10300_GLOB_DAT", + "BFD_RELOC_MN10300_JMP_SLOT", + "BFD_RELOC_MN10300_RELATIVE", "BFD_RELOC_386_GOT32", "BFD_RELOC_386_PLT32", @@ -1302,6 +1292,10 @@ static const char *const bfd_reloc_code_ "BFD_RELOC_390_TLS_DTPMOD", "BFD_RELOC_390_TLS_DTPOFF", "BFD_RELOC_390_TLS_TPOFF", + "BFD_RELOC_390_20", + "BFD_RELOC_390_GOT20", + "BFD_RELOC_390_GOTPLT20", + "BFD_RELOC_390_TLS_GOTIE20", "BFD_RELOC_IP2K_FR9", "BFD_RELOC_IP2K_BANK", "BFD_RELOC_IP2K_ADDR16CJP", @@ -1489,44 +1483,40 @@ static const char *const bfd_reloc_code_ }; #endif -reloc_howto_type * -bfd_default_reloc_type_lookup PARAMS ((bfd *abfd, bfd_reloc_code_real_type code)); +reloc_howto_type *bfd_default_reloc_type_lookup + (bfd *abfd, bfd_reloc_code_real_type code); -bfd_boolean -bfd_generic_relax_section PARAMS ((bfd *abfd, +bfd_boolean bfd_generic_relax_section + (bfd *abfd, asection *section, struct bfd_link_info *, - bfd_boolean *)); + bfd_boolean *); -bfd_boolean -bfd_generic_gc_sections PARAMS ((bfd *, struct bfd_link_info *)); +bfd_boolean bfd_generic_gc_sections + (bfd *, struct bfd_link_info *); -bfd_boolean -bfd_generic_merge_sections PARAMS ((bfd *, struct bfd_link_info *)); +bfd_boolean bfd_generic_merge_sections + (bfd *, struct bfd_link_info *); -bfd_byte * -bfd_generic_get_relocated_section_contents PARAMS ((bfd *abfd, +bfd_byte *bfd_generic_get_relocated_section_contents + (bfd *abfd, struct bfd_link_info *link_info, struct bfd_link_order *link_order, bfd_byte *data, - bfd_boolean relocateable, - asymbol **symbols)); + bfd_boolean relocatable, + asymbol **symbols); /* Extracted from archures.c. */ extern const bfd_arch_info_type bfd_default_arch_struct; -bfd_boolean -bfd_default_set_arch_mach PARAMS ((bfd *abfd, - enum bfd_architecture arch, - unsigned long mach)); - -const bfd_arch_info_type * -bfd_default_compatible PARAMS ((const bfd_arch_info_type *a, - const bfd_arch_info_type *b)); +bfd_boolean bfd_default_set_arch_mach + (bfd *abfd, enum bfd_architecture arch, unsigned long mach); + +const bfd_arch_info_type *bfd_default_compatible + (const bfd_arch_info_type *a, const bfd_arch_info_type *b); -bfd_boolean -bfd_default_scan PARAMS ((const struct bfd_arch_info *info, const char *string)); +bfd_boolean bfd_default_scan + (const struct bfd_arch_info *info, const char *string); /* Extracted from elf.c. */ -struct elf_internal_shdr * -bfd_elf_find_section PARAMS ((bfd *abfd, char *name)); +struct elf_internal_shdr *bfd_elf_find_section (bfd *abfd, char *name); diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/libcoff-in.h binutils-2.14.90.0.5/bfd/libcoff-in.h --- binutils-2.14.90.0.4.1/bfd/libcoff-in.h 2002-12-16 12:22:52.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/libcoff-in.h 2003-07-23 08:08:09.000000000 -0700 @@ -1,6 +1,6 @@ /* BFD COFF object file private structure. Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2001, 2002 + 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Written by Cygnus Support. @@ -434,7 +434,7 @@ struct coff_debug_merge_hash_table bfd_hash_lookup (&(table)->root, (string), (create), (copy))) /* Information we keep for each section in the output file when doing - a relocateable link. */ + a relocatable link. */ struct coff_link_section_info { @@ -461,7 +461,7 @@ struct coff_final_link_info bfd_boolean global_to_static; /* Hash table for long symbol names. */ struct bfd_strtab_hash *strtab; - /* When doing a relocateable link, an array of information kept for + /* When doing a relocatable link, an array of information kept for each output section, indexed by the target_index field. */ struct coff_link_section_info *section_info; /* Symbol index of last C_FILE symbol (-1 if none). */ diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/libcoff.h binutils-2.14.90.0.5/bfd/libcoff.h --- binutils-2.14.90.0.4.1/bfd/libcoff.h 2003-03-19 09:19:13.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/libcoff.h 2003-07-23 08:08:09.000000000 -0700 @@ -4,7 +4,7 @@ /* BFD COFF object file private structure. Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2001, 2002 + 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Written by Cygnus Support. @@ -438,7 +438,7 @@ struct coff_debug_merge_hash_table bfd_hash_lookup (&(table)->root, (string), (create), (copy))) /* Information we keep for each section in the output file when doing - a relocateable link. */ + a relocatable link. */ struct coff_link_section_info { @@ -465,7 +465,7 @@ struct coff_final_link_info bfd_boolean global_to_static; /* Hash table for long symbol names. */ struct bfd_strtab_hash *strtab; - /* When doing a relocateable link, an array of information kept for + /* When doing a relocatable link, an array of information kept for each output section, indexed by the target_index field. */ struct coff_link_section_info *section_info; /* Symbol index of last C_FILE symbol (-1 if none). */ diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/linker.c binutils-2.14.90.0.5/bfd/linker.c --- binutils-2.14.90.0.4.1/bfd/linker.c 2003-05-05 14:46:47.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/linker.c 2003-07-23 08:08:09.000000000 -0700 @@ -88,7 +88,7 @@ SUBSECTION For example, with each entry in the hash table the a.out linker keeps the index the symbol has in the final output file - (this index number is used so that when doing a relocateable + (this index number is used so that when doing a relocatable link the symbol index used in the output file can be quickly filled in when copying over a reloc). The a.out linker code defines the required structures and functions for a hash table @@ -277,7 +277,7 @@ SUBSECTION the input sections and copy the data into the output sections. It must build an output symbol table including any local symbols from the input files and the global symbols from the - hash table. When producing relocateable output, it must + hash table. When producing relocatable output, it must modify the input relocs and write them into the output file. There may also be object format dependent work to be done. @@ -317,7 +317,7 @@ SUBSUBSECTION types of information. They also describe relocs that must be created by the BFD backend, but do not correspond to any input file; this is used to support -Ur, which builds constructors - while generating a relocateable object file. + while generating a relocatable object file. INODE Relocating the section contents, Writing the symbol table, Information provided by the linker, Performing the Final Link @@ -339,7 +339,7 @@ SUBSUBSECTION input files. The <<_bfd_final_link>> function should read the contents of the section and any associated relocs, apply the relocs to the section contents, and write out the modified - section contents. If performing a relocateable link, the + section contents. If performing a relocatable link, the relocs themselves must also be modified and written out. @findex _bfd_relocate_contents @@ -406,34 +406,26 @@ SUBSUBSECTION file at the end of <>. */ -static bfd_boolean generic_link_read_symbols - PARAMS ((bfd *)); -static bfd_boolean generic_link_add_symbols - PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean collect)); static bfd_boolean generic_link_add_object_symbols - PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean collect)); + (bfd *, struct bfd_link_info *, bfd_boolean collect); +static bfd_boolean generic_link_add_symbols + (bfd *, struct bfd_link_info *, bfd_boolean); static bfd_boolean generic_link_check_archive_element_no_collect - PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean *pneeded)); + (bfd *, struct bfd_link_info *, bfd_boolean *); static bfd_boolean generic_link_check_archive_element_collect - PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean *pneeded)); + (bfd *, struct bfd_link_info *, bfd_boolean *); static bfd_boolean generic_link_check_archive_element - PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean *pneeded, - bfd_boolean collect)); + (bfd *, struct bfd_link_info *, bfd_boolean *, bfd_boolean); static bfd_boolean generic_link_add_symbol_list - PARAMS ((bfd *, struct bfd_link_info *, bfd_size_type count, asymbol **, - bfd_boolean collect)); -static bfd *hash_entry_bfd - PARAMS ((struct bfd_link_hash_entry *)); -static void set_symbol_from_hash - PARAMS ((asymbol *, struct bfd_link_hash_entry *)); + (bfd *, struct bfd_link_info *, bfd_size_type count, asymbol **, + bfd_boolean); static bfd_boolean generic_add_output_symbol - PARAMS ((bfd *, size_t *psymalloc, asymbol *)); + (bfd *, size_t *psymalloc, asymbol *); static bfd_boolean default_data_link_order - PARAMS ((bfd *, struct bfd_link_info *, asection *, - struct bfd_link_order *)); + (bfd *, struct bfd_link_info *, asection *, struct bfd_link_order *); static bfd_boolean default_indirect_link_order - PARAMS ((bfd *, struct bfd_link_info *, asection *, - struct bfd_link_order *, bfd_boolean)); + (bfd *, struct bfd_link_info *, asection *, struct bfd_link_order *, + bfd_boolean); /* The link hash table structure is defined in bfdlink.h. It provides a base hash table which the backend specific hash tables are built @@ -442,17 +434,15 @@ static bfd_boolean default_indirect_link /* Routine to create an entry in the link hash table. */ struct bfd_hash_entry * -_bfd_link_hash_newfunc (entry, table, string) - struct bfd_hash_entry *entry; - struct bfd_hash_table *table; - const char *string; +_bfd_link_hash_newfunc (struct bfd_hash_entry *entry, + struct bfd_hash_table *table, + const char *string) { /* Allocate the structure if it has not already been allocated by a subclass. */ if (entry == NULL) { - entry = (struct bfd_hash_entry *) - bfd_hash_allocate (table, sizeof (struct bfd_link_hash_entry)); + entry = bfd_hash_allocate (table, sizeof (struct bfd_link_hash_entry)); if (entry == NULL) return entry; } @@ -475,12 +465,12 @@ _bfd_link_hash_newfunc (entry, table, st responsible for creating this table. */ bfd_boolean -_bfd_link_hash_table_init (table, abfd, newfunc) - struct bfd_link_hash_table *table; - bfd *abfd; - struct bfd_hash_entry *(*newfunc) PARAMS ((struct bfd_hash_entry *, - struct bfd_hash_table *, - const char *)); +_bfd_link_hash_table_init + (struct bfd_link_hash_table *table, + bfd *abfd, + struct bfd_hash_entry *(*newfunc) (struct bfd_hash_entry *, + struct bfd_hash_table *, + const char *)) { table->creator = abfd->xvec; table->undefs = NULL; @@ -495,19 +485,18 @@ _bfd_link_hash_table_init (table, abfd, the real symbol. */ struct bfd_link_hash_entry * -bfd_link_hash_lookup (table, string, create, copy, follow) - struct bfd_link_hash_table *table; - const char *string; - bfd_boolean create; - bfd_boolean copy; - bfd_boolean follow; +bfd_link_hash_lookup (struct bfd_link_hash_table *table, + const char *string, + bfd_boolean create, + bfd_boolean copy, + bfd_boolean follow) { struct bfd_link_hash_entry *ret; ret = ((struct bfd_link_hash_entry *) bfd_hash_lookup (&table->table, string, create, copy)); - if (follow && ret != (struct bfd_link_hash_entry *) NULL) + if (follow && ret != NULL) { while (ret->type == bfd_link_hash_indirect || ret->type == bfd_link_hash_warning) @@ -522,13 +511,12 @@ bfd_link_hash_lookup (table, string, cre undefined symbol, not for definitions of a symbol. */ struct bfd_link_hash_entry * -bfd_wrapped_link_hash_lookup (abfd, info, string, create, copy, follow) - bfd *abfd; - struct bfd_link_info *info; - const char *string; - bfd_boolean create; - bfd_boolean copy; - bfd_boolean follow; +bfd_wrapped_link_hash_lookup (bfd *abfd, + struct bfd_link_info *info, + const char *string, + bfd_boolean create, + bfd_boolean copy, + bfd_boolean follow) { bfd_size_type amt; @@ -552,7 +540,7 @@ bfd_wrapped_link_hash_lookup (abfd, info references to SYM with references to __wrap_SYM. */ amt = strlen (l) + sizeof WRAP + 1; - n = (char *) bfd_malloc (amt); + n = bfd_malloc (amt); if (n == NULL) return NULL; @@ -584,7 +572,7 @@ bfd_wrapped_link_hash_lookup (abfd, info with references to SYM. */ amt = strlen (l + sizeof REAL - 1) + 2; - n = (char *) bfd_malloc (amt); + n = bfd_malloc (amt); if (n == NULL) return NULL; @@ -610,28 +598,26 @@ bfd_wrapped_link_hash_lookup (abfd, info call. */ void -bfd_link_hash_traverse (table, func, info) - struct bfd_link_hash_table *table; - bfd_boolean (*func) PARAMS ((struct bfd_link_hash_entry *, PTR)); - PTR info; +bfd_link_hash_traverse + (struct bfd_link_hash_table *table, + bfd_boolean (*func) (struct bfd_link_hash_entry *, void *), + void *info) { bfd_hash_traverse (&table->table, - ((bfd_boolean (*) PARAMS ((struct bfd_hash_entry *, PTR))) - func), + (bfd_boolean (*) (struct bfd_hash_entry *, void *)) func, info); } /* Add a symbol to the linker hash table undefs list. */ -INLINE void -bfd_link_add_undef (table, h) - struct bfd_link_hash_table *table; - struct bfd_link_hash_entry *h; +void +bfd_link_add_undef (struct bfd_link_hash_table *table, + struct bfd_link_hash_entry *h) { BFD_ASSERT (h->next == NULL); - if (table->undefs_tail != (struct bfd_link_hash_entry *) NULL) + if (table->undefs_tail != NULL) table->undefs_tail->next = h; - if (table->undefs == (struct bfd_link_hash_entry *) NULL) + if (table->undefs == NULL) table->undefs = h; table->undefs_tail = h; } @@ -639,16 +625,15 @@ bfd_link_add_undef (table, h) /* Routine to create an entry in a generic link hash table. */ struct bfd_hash_entry * -_bfd_generic_link_hash_newfunc (entry, table, string) - struct bfd_hash_entry *entry; - struct bfd_hash_table *table; - const char *string; +_bfd_generic_link_hash_newfunc (struct bfd_hash_entry *entry, + struct bfd_hash_table *table, + const char *string) { /* Allocate the structure if it has not already been allocated by a subclass. */ if (entry == NULL) { - entry = (struct bfd_hash_entry *) + entry = bfd_hash_allocate (table, sizeof (struct generic_link_hash_entry)); if (entry == NULL) return entry; @@ -672,27 +657,25 @@ _bfd_generic_link_hash_newfunc (entry, t /* Create a generic link hash table. */ struct bfd_link_hash_table * -_bfd_generic_link_hash_table_create (abfd) - bfd *abfd; +_bfd_generic_link_hash_table_create (bfd *abfd) { struct generic_link_hash_table *ret; bfd_size_type amt = sizeof (struct generic_link_hash_table); - ret = (struct generic_link_hash_table *) bfd_malloc (amt); + ret = bfd_malloc (amt); if (ret == NULL) - return (struct bfd_link_hash_table *) NULL; + return NULL; if (! _bfd_link_hash_table_init (&ret->root, abfd, _bfd_generic_link_hash_newfunc)) { free (ret); - return (struct bfd_link_hash_table *) NULL; + return NULL; } return &ret->root; } void -_bfd_generic_link_hash_table_free (hash) - struct bfd_link_hash_table *hash; +_bfd_generic_link_hash_table_free (struct bfd_link_hash_table *hash) { struct generic_link_hash_table *ret = (struct generic_link_hash_table *) hash; @@ -709,10 +692,9 @@ _bfd_generic_link_hash_table_free (hash) structure. */ static bfd_boolean -generic_link_read_symbols (abfd) - bfd *abfd; +generic_link_read_symbols (bfd *abfd) { - if (bfd_get_outsymbols (abfd) == (asymbol **) NULL) + if (bfd_get_outsymbols (abfd) == NULL) { long symsize; long symcount; @@ -720,8 +702,7 @@ generic_link_read_symbols (abfd) symsize = bfd_get_symtab_upper_bound (abfd); if (symsize < 0) return FALSE; - bfd_get_outsymbols (abfd) = - (asymbol **) bfd_alloc (abfd, (bfd_size_type) symsize); + bfd_get_outsymbols (abfd) = bfd_alloc (abfd, symsize); if (bfd_get_outsymbols (abfd) == NULL && symsize != 0) return FALSE; symcount = bfd_canonicalize_symtab (abfd, bfd_get_outsymbols (abfd)); @@ -738,9 +719,7 @@ generic_link_read_symbols (abfd) constructors by name. */ bfd_boolean -_bfd_generic_link_add_symbols (abfd, info) - bfd *abfd; - struct bfd_link_info *info; +_bfd_generic_link_add_symbols (bfd *abfd, struct bfd_link_info *info) { return generic_link_add_symbols (abfd, info, FALSE); } @@ -753,9 +732,7 @@ _bfd_generic_link_add_symbols (abfd, inf for which gcc uses collect2 and do not support stabs. */ bfd_boolean -_bfd_generic_link_add_symbols_collect (abfd, info) - bfd *abfd; - struct bfd_link_info *info; +_bfd_generic_link_add_symbols_collect (bfd *abfd, struct bfd_link_info *info) { return generic_link_add_symbols (abfd, info, TRUE); } @@ -765,9 +742,8 @@ _bfd_generic_link_add_symbols_collect (a file are absolute. */ void -_bfd_generic_link_just_syms (sec, info) - asection *sec; - struct bfd_link_info *info ATTRIBUTE_UNUSED; +_bfd_generic_link_just_syms (asection *sec, + struct bfd_link_info *info ATTRIBUTE_UNUSED) { sec->output_section = bfd_abs_section_ptr; sec->output_offset = sec->vma; @@ -776,10 +752,9 @@ _bfd_generic_link_just_syms (sec, info) /* Add symbols from an object file to the global hash table. */ static bfd_boolean -generic_link_add_symbols (abfd, info, collect) - bfd *abfd; - struct bfd_link_info *info; - bfd_boolean collect; +generic_link_add_symbols (bfd *abfd, + struct bfd_link_info *info, + bfd_boolean collect) { bfd_boolean ret; @@ -806,10 +781,9 @@ generic_link_add_symbols (abfd, info, co /* Add symbols from an object file to the global hash table. */ static bfd_boolean -generic_link_add_object_symbols (abfd, info, collect) - bfd *abfd; - struct bfd_link_info *info; - bfd_boolean collect; +generic_link_add_object_symbols (bfd *abfd, + struct bfd_link_info *info, + bfd_boolean collect) { bfd_size_type symcount; struct symbol_cache_entry **outsyms; @@ -848,30 +822,20 @@ struct archive_hash_table struct bfd_hash_table table; }; -static struct bfd_hash_entry *archive_hash_newfunc - PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); -static bfd_boolean archive_hash_table_init - PARAMS ((struct archive_hash_table *, - struct bfd_hash_entry *(*) (struct bfd_hash_entry *, - struct bfd_hash_table *, - const char *))); - /* Create a new entry for an archive hash table. */ static struct bfd_hash_entry * -archive_hash_newfunc (entry, table, string) - struct bfd_hash_entry *entry; - struct bfd_hash_table *table; - const char *string; +archive_hash_newfunc (struct bfd_hash_entry *entry, + struct bfd_hash_table *table, + const char *string) { struct archive_hash_entry *ret = (struct archive_hash_entry *) entry; /* Allocate the structure if it has not already been allocated by a subclass. */ - if (ret == (struct archive_hash_entry *) NULL) - ret = ((struct archive_hash_entry *) - bfd_hash_allocate (table, sizeof (struct archive_hash_entry))); - if (ret == (struct archive_hash_entry *) NULL) + if (ret == NULL) + ret = bfd_hash_allocate (table, sizeof (struct archive_hash_entry)); + if (ret == NULL) return NULL; /* Call the allocation method of the superclass. */ @@ -881,20 +845,20 @@ archive_hash_newfunc (entry, table, stri if (ret) { /* Initialize the local fields. */ - ret->defs = (struct archive_list *) NULL; + ret->defs = NULL; } - return (struct bfd_hash_entry *) ret; + return &ret->root; } /* Initialize an archive hash table. */ static bfd_boolean -archive_hash_table_init (table, newfunc) - struct archive_hash_table *table; - struct bfd_hash_entry *(*newfunc) PARAMS ((struct bfd_hash_entry *, - struct bfd_hash_table *, - const char *)); +archive_hash_table_init + (struct archive_hash_table *table, + struct bfd_hash_entry *(*newfunc) (struct bfd_hash_entry *, + struct bfd_hash_table *, + const char *)) { return bfd_hash_table_init (&table->table, newfunc); } @@ -947,11 +911,10 @@ archive_hash_table_init (table, newfunc) object file to be included. */ bfd_boolean -_bfd_generic_link_add_archive_symbols (abfd, info, checkfn) - bfd *abfd; - struct bfd_link_info *info; - bfd_boolean (*checkfn) - PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean *pneeded)); +_bfd_generic_link_add_archive_symbols + (bfd *abfd, + struct bfd_link_info *info, + bfd_boolean (*checkfn) (bfd *, struct bfd_link_info *, bfd_boolean *)) { carsym *arsyms; carsym *arsym_end; @@ -964,7 +927,7 @@ _bfd_generic_link_add_archive_symbols (a if (! bfd_has_map (abfd)) { /* An empty archive is a special case. */ - if (bfd_openr_next_archived_file (abfd, (bfd *) NULL) == NULL) + if (bfd_openr_next_archived_file (abfd, NULL) == NULL) return TRUE; bfd_set_error (bfd_error_no_armap); return FALSE; @@ -983,16 +946,14 @@ _bfd_generic_link_add_archive_symbols (a struct archive_list *l, **pp; arh = archive_hash_lookup (&arsym_hash, arsym->name, TRUE, FALSE); - if (arh == (struct archive_hash_entry *) NULL) + if (arh == NULL) goto error_return; l = ((struct archive_list *) archive_hash_allocate (&arsym_hash, sizeof (struct archive_list))); if (l == NULL) goto error_return; l->indx = indx; - for (pp = &arh->defs; - *pp != (struct archive_list *) NULL; - pp = &(*pp)->next) + for (pp = &arh->defs; *pp != NULL; pp = &(*pp)->next) ; *pp = l; l->next = NULL; @@ -1006,7 +967,7 @@ _bfd_generic_link_add_archive_symbols (a /* New undefined symbols are added to the end of the list, so we only need to look through it once. */ pundef = &info->hash->undefs; - while (*pundef != (struct bfd_link_hash_entry *) NULL) + while (*pundef != NULL) { struct bfd_link_hash_entry *h; struct archive_hash_entry *arh; @@ -1035,14 +996,14 @@ _bfd_generic_link_add_archive_symbols (a /* Look for this symbol in the archive symbol map. */ arh = archive_hash_lookup (&arsym_hash, h->root.string, FALSE, FALSE); - if (arh == (struct archive_hash_entry *) NULL) + if (arh == NULL) { /* If we haven't found the exact symbol we're looking for, let's look for its import thunk */ if (info->pei386_auto_import) { bfd_size_type amt = strlen (h->root.string) + 10; - char *buf = (char *) bfd_malloc (amt); + char *buf = bfd_malloc (amt); if (buf == NULL) return FALSE; @@ -1050,14 +1011,14 @@ _bfd_generic_link_add_archive_symbols (a arh = archive_hash_lookup (&arsym_hash, buf, FALSE, FALSE); free(buf); } - if (arh == (struct archive_hash_entry *) NULL) + if (arh == NULL) { pundef = &(*pundef)->next; continue; } } /* Look at all the objects which define this symbol. */ - for (l = arh->defs; l != (struct archive_list *) NULL; l = l->next) + for (l = arh->defs; l != NULL; l = l->next) { bfd *element; bfd_boolean needed; @@ -1068,7 +1029,7 @@ _bfd_generic_link_add_archive_symbols (a break; element = bfd_get_elt_at_index (abfd, l->indx); - if (element == (bfd *) NULL) + if (element == NULL) goto error_return; /* If we've already included this element, or if we've @@ -1122,10 +1083,10 @@ _bfd_generic_link_add_archive_symbols (a for finding them. */ static bfd_boolean -generic_link_check_archive_element_no_collect (abfd, info, pneeded) - bfd *abfd; - struct bfd_link_info *info; - bfd_boolean *pneeded; +generic_link_check_archive_element_no_collect ( + bfd *abfd, + struct bfd_link_info *info, + bfd_boolean *pneeded) { return generic_link_check_archive_element (abfd, info, pneeded, FALSE); } @@ -1135,10 +1096,9 @@ generic_link_check_archive_element_no_co symbol name, as collect2 does. */ static bfd_boolean -generic_link_check_archive_element_collect (abfd, info, pneeded) - bfd *abfd; - struct bfd_link_info *info; - bfd_boolean *pneeded; +generic_link_check_archive_element_collect (bfd *abfd, + struct bfd_link_info *info, + bfd_boolean *pneeded) { return generic_link_check_archive_element (abfd, info, pneeded, TRUE); } @@ -1147,11 +1107,10 @@ generic_link_check_archive_element_colle constructors. */ static bfd_boolean -generic_link_check_archive_element (abfd, info, pneeded, collect) - bfd *abfd; - struct bfd_link_info *info; - bfd_boolean *pneeded; - bfd_boolean collect; +generic_link_check_archive_element (bfd *abfd, + struct bfd_link_info *info, + bfd_boolean *pneeded, + bfd_boolean collect) { asymbol **pp, **ppend; @@ -1181,7 +1140,7 @@ generic_link_check_archive_element (abfd SVR4 ABI, p. 4-27. */ h = bfd_link_hash_lookup (info->hash, bfd_asymbol_name (p), FALSE, FALSE, TRUE); - if (h == (struct bfd_link_hash_entry *) NULL + if (h == NULL || (h->type != bfd_link_hash_undefined && h->type != bfd_link_hash_common)) continue; @@ -1215,7 +1174,7 @@ generic_link_check_archive_element (abfd unsigned int power; symbfd = h->u.undef.abfd; - if (symbfd == (bfd *) NULL) + if (symbfd == NULL) { /* This symbol was created as undefined from outside BFD. We assume that we should link in the object @@ -1236,9 +1195,8 @@ generic_link_check_archive_element (abfd will be linked in. */ h->type = bfd_link_hash_common; h->u.c.p = - ((struct bfd_link_hash_common_entry *) - bfd_hash_allocate (&info->hash->table, - sizeof (struct bfd_link_hash_common_entry))); + bfd_hash_allocate (&info->hash->table, + sizeof (struct bfd_link_hash_common_entry)); if (h->u.c.p == NULL) return FALSE; @@ -1279,12 +1237,11 @@ generic_link_check_archive_element (abfd as is done by collect2. */ static bfd_boolean -generic_link_add_symbol_list (abfd, info, symbol_count, symbols, collect) - bfd *abfd; - struct bfd_link_info *info; - bfd_size_type symbol_count; - asymbol **symbols; - bfd_boolean collect; +generic_link_add_symbol_list (bfd *abfd, + struct bfd_link_info *info, + bfd_size_type symbol_count, + asymbol **symbols, + bfd_boolean collect) { asymbol **pp, **ppend; @@ -1358,7 +1315,7 @@ generic_link_add_symbol_list (abfd, info generic one. */ if (info->hash->creator == abfd->xvec) { - if (h->sym == (asymbol *) NULL + if (h->sym == NULL || (! bfd_is_und_section (bfd_get_section (p)) && (! bfd_is_com_section (bfd_get_section (p)) || bfd_is_und_section (bfd_get_section (h->sym))))) @@ -1377,7 +1334,7 @@ generic_link_add_symbol_list (abfd, info it gets rewritten to not use asymbol structures. Setting this is also used to check whether these symbols were set up by the generic linker. */ - p->udata.p = (PTR) h; + p->udata.p = h; } } @@ -1477,8 +1434,7 @@ static const enum link_action link_actio /* Return the BFD in which a hash entry has been defined, if known. */ static bfd * -hash_entry_bfd (h) - struct bfd_link_hash_entry *h; +hash_entry_bfd (struct bfd_link_hash_entry *h) { while (h->type == bfd_link_hash_warning) h = h->u.i.link; @@ -1517,18 +1473,16 @@ hash_entry_bfd (h) the hash table entry, and stored it in *HASHP. */ bfd_boolean -_bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, value, - string, copy, collect, hashp) - struct bfd_link_info *info; - bfd *abfd; - const char *name; - flagword flags; - asection *section; - bfd_vma value; - const char *string; - bfd_boolean copy; - bfd_boolean collect; - struct bfd_link_hash_entry **hashp; +_bfd_generic_link_add_one_symbol (struct bfd_link_info *info, + bfd *abfd, + const char *name, + flagword flags, + asection *section, + bfd_vma value, + const char *string, + bfd_boolean copy, + bfd_boolean collect, + struct bfd_link_hash_entry **hashp) { enum link_row row; struct bfd_link_hash_entry *h; @@ -1572,16 +1526,15 @@ _bfd_generic_link_add_one_symbol (info, } if (info->notice_all - || (info->notice_hash != (struct bfd_hash_table *) NULL - && (bfd_hash_lookup (info->notice_hash, name, FALSE, FALSE) - != (struct bfd_hash_entry *) NULL))) + || (info->notice_hash != NULL + && bfd_hash_lookup (info->notice_hash, name, FALSE, FALSE) != NULL)) { if (! (*info->callbacks->notice) (info, h->root.string, abfd, section, value)) return FALSE; } - if (hashp != (struct bfd_link_hash_entry **) NULL) + if (hashp != NULL) *hashp = h; do @@ -1619,7 +1572,7 @@ _bfd_generic_link_add_one_symbol (info, if (! ((*info->callbacks->multiple_common) (info, h->root.string, h->u.c.p->section->owner, bfd_link_hash_common, h->u.c.size, - abfd, bfd_link_hash_defined, (bfd_vma) 0))) + abfd, bfd_link_hash_defined, 0))) return FALSE; /* Fall through. */ case DEF: @@ -1694,9 +1647,8 @@ _bfd_generic_link_add_one_symbol (info, bfd_link_add_undef (info->hash, h); h->type = bfd_link_hash_common; h->u.c.p = - ((struct bfd_link_hash_common_entry *) - bfd_hash_allocate (&info->hash->table, - sizeof (struct bfd_link_hash_common_entry))); + bfd_hash_allocate (&info->hash->table, + sizeof (struct bfd_link_hash_common_entry)); if (h->u.c.p == NULL) return FALSE; @@ -1802,7 +1754,7 @@ _bfd_generic_link_add_one_symbol (info, else obfd = NULL; if (! ((*info->callbacks->multiple_common) - (info, h->root.string, obfd, h->type, (bfd_vma) 0, + (info, h->root.string, obfd, h->type, 0, abfd, bfd_link_hash_common, value))) return FALSE; } @@ -1856,7 +1808,7 @@ _bfd_generic_link_add_one_symbol (info, if (! ((*info->callbacks->multiple_common) (info, h->root.string, h->u.c.p->section->owner, bfd_link_hash_common, h->u.c.size, - abfd, bfd_link_hash_indirect, (bfd_vma) 0))) + abfd, bfd_link_hash_indirect, 0))) return FALSE; /* Fall through. */ case IND: @@ -1868,7 +1820,7 @@ _bfd_generic_link_add_one_symbol (info, to. */ inh = bfd_wrapped_link_hash_lookup (abfd, info, string, TRUE, copy, FALSE); - if (inh == (struct bfd_link_hash_entry *) NULL) + if (inh == NULL) return FALSE; if (inh->type == bfd_link_hash_indirect && inh->u.i.link == h) @@ -1913,8 +1865,7 @@ _bfd_generic_link_add_one_symbol (info, { if (! (*info->callbacks->warning) (info, h->u.i.warning, h->root.string, abfd, - (asection *) NULL, - (bfd_vma) 0)) + NULL, 0)) return FALSE; /* Only issue a warning once. */ h->u.i.warning = NULL; @@ -1937,8 +1888,7 @@ _bfd_generic_link_add_one_symbol (info, case WARN: /* Issue a warning. */ if (! (*info->callbacks->warning) (info, string, h->root.string, - hash_entry_bfd (h), - (asection *) NULL, (bfd_vma) 0)) + hash_entry_bfd (h), NULL, 0)) return FALSE; break; @@ -1951,9 +1901,7 @@ _bfd_generic_link_add_one_symbol (info, if (h->next != NULL || info->hash->undefs_tail == h) { if (! (*info->callbacks->warning) (info, string, h->root.string, - hash_entry_bfd (h), - (asection *) NULL, - (bfd_vma) 0)) + hash_entry_bfd (h), NULL, 0)) return FALSE; break; } @@ -1966,8 +1914,7 @@ _bfd_generic_link_add_one_symbol (info, /* STRING is the warning to give. */ sub = ((struct bfd_link_hash_entry *) ((*info->hash->table.newfunc) - ((struct bfd_hash_entry *) NULL, &info->hash->table, - h->root.string))); + (NULL, &info->hash->table, h->root.string))); if (sub == NULL) return FALSE; *sub = *h; @@ -2004,9 +1951,7 @@ _bfd_generic_link_add_one_symbol (info, /* Generic final link routine. */ bfd_boolean -_bfd_generic_final_link (abfd, info) - bfd *abfd; - struct bfd_link_info *info; +_bfd_generic_final_link (bfd *abfd, struct bfd_link_info *info) { bfd *sub; asection *o; @@ -2014,7 +1959,7 @@ _bfd_generic_final_link (abfd, info) size_t outsymalloc; struct generic_write_global_symbol_info wginfo; - bfd_get_outsymbols (abfd) = (asymbol **) NULL; + bfd_get_outsymbols (abfd) = NULL; bfd_get_symcount (abfd) = 0; outsymalloc = 0; @@ -2025,7 +1970,7 @@ _bfd_generic_final_link (abfd, info) p->u.indirect.section->linker_mark = TRUE; /* Build the output symbol table. */ - for (sub = info->input_bfds; sub != (bfd *) NULL; sub = sub->link_next) + for (sub = info->input_bfds; sub != NULL; sub = sub->link_next) if (! _bfd_generic_link_output_symbols (abfd, sub, info, &outsymalloc)) return FALSE; @@ -2035,7 +1980,7 @@ _bfd_generic_final_link (abfd, info) wginfo.psymalloc = &outsymalloc; _bfd_generic_link_hash_traverse (_bfd_generic_hash_table (info), _bfd_generic_link_write_global_symbol, - (PTR) &wginfo); + &wginfo); /* Make sure we have a trailing NULL pointer on OUTSYMBOLS. We shouldn't really need one, since we have SYMCOUNT, but some old @@ -2043,17 +1988,13 @@ _bfd_generic_final_link (abfd, info) if (! generic_add_output_symbol (abfd, &outsymalloc, NULL)) return FALSE; - if (info->relocateable) + if (info->relocatable) { /* Allocate space for the output relocs for each section. */ - for (o = abfd->sections; - o != (asection *) NULL; - o = o->next) + for (o = abfd->sections; o != NULL; o = o->next) { o->reloc_count = 0; - for (p = o->link_order_head; - p != (struct bfd_link_order *) NULL; - p = p->next) + for (p = o->link_order_head; p != NULL; p = p->next) { if (p->type == bfd_section_reloc_link_order || p->type == bfd_symbol_reloc_link_order) @@ -2073,7 +2014,7 @@ _bfd_generic_final_link (abfd, info) input_section); if (relsize < 0) return FALSE; - relocs = (arelent **) bfd_malloc ((bfd_size_type) relsize); + relocs = bfd_malloc (relsize); if (!relocs && relsize != 0) return FALSE; symbols = _bfd_generic_link_get_symbols (input_bfd); @@ -2095,7 +2036,7 @@ _bfd_generic_final_link (abfd, info) amt = o->reloc_count; amt *= sizeof (arelent *); - o->orelocation = (arelent **) bfd_alloc (abfd, amt); + o->orelocation = bfd_alloc (abfd, amt); if (!o->orelocation) return FALSE; o->flags |= SEC_RELOC; @@ -2107,13 +2048,9 @@ _bfd_generic_final_link (abfd, info) } /* Handle all the link order information for the sections. */ - for (o = abfd->sections; - o != (asection *) NULL; - o = o->next) - { - for (p = o->link_order_head; - p != (struct bfd_link_order *) NULL; - p = p->next) + for (o = abfd->sections; o != NULL; o = o->next) + { + for (p = o->link_order_head; p != NULL; p = p->next) { switch (p->type) { @@ -2140,10 +2077,7 @@ _bfd_generic_final_link (abfd, info) /* Add an output symbol to the output BFD. */ static bfd_boolean -generic_add_output_symbol (output_bfd, psymalloc, sym) - bfd *output_bfd; - size_t *psymalloc; - asymbol *sym; +generic_add_output_symbol (bfd *output_bfd, size_t *psymalloc, asymbol *sym) { if (bfd_get_symcount (output_bfd) >= *psymalloc) { @@ -2156,8 +2090,8 @@ generic_add_output_symbol (output_bfd, p *psymalloc *= 2; amt = *psymalloc; amt *= sizeof (asymbol *); - newsyms = (asymbol **) bfd_realloc (bfd_get_outsymbols (output_bfd), amt); - if (newsyms == (asymbol **) NULL) + newsyms = bfd_realloc (bfd_get_outsymbols (output_bfd), amt); + if (newsyms == NULL) return FALSE; bfd_get_outsymbols (output_bfd) = newsyms; } @@ -2172,11 +2106,10 @@ generic_add_output_symbol (output_bfd, p /* Handle the symbols for an input BFD. */ bfd_boolean -_bfd_generic_link_output_symbols (output_bfd, input_bfd, info, psymalloc) - bfd *output_bfd; - bfd *input_bfd; - struct bfd_link_info *info; - size_t *psymalloc; +_bfd_generic_link_output_symbols (bfd *output_bfd, + bfd *input_bfd, + struct bfd_link_info *info, + size_t *psymalloc) { asymbol **sym_ptr; asymbol **sym_end; @@ -2185,13 +2118,11 @@ _bfd_generic_link_output_symbols (output return FALSE; /* Create a filename symbol if we are supposed to. */ - if (info->create_object_symbols_section != (asection *) NULL) + if (info->create_object_symbols_section != NULL) { asection *sec; - for (sec = input_bfd->sections; - sec != (asection *) NULL; - sec = sec->next) + for (sec = input_bfd->sections; sec != NULL; sec = sec->next) { if (sec->output_section == info->create_object_symbols_section) { @@ -2224,7 +2155,7 @@ _bfd_generic_link_output_symbols (output struct generic_link_hash_entry *h; bfd_boolean output; - h = (struct generic_link_hash_entry *) NULL; + h = NULL; sym = *sym_ptr; if ((sym->flags & (BSF_INDIRECT | BSF_WARNING @@ -2236,7 +2167,7 @@ _bfd_generic_link_output_symbols (output || bfd_is_ind_section (bfd_get_section (sym))) { if (sym->udata.p != NULL) - h = (struct generic_link_hash_entry *) sym->udata.p; + h = sym->udata.p; else if ((sym->flags & BSF_CONSTRUCTOR) != 0) { /* This case normally means that the main linker code @@ -2259,7 +2190,7 @@ _bfd_generic_link_output_symbols (output bfd_asymbol_name (sym), FALSE, FALSE, TRUE); - if (h != (struct generic_link_hash_entry *) NULL) + if (h != NULL) { /* Force all references to this symbol to point to the same area in memory. It is possible that @@ -2268,7 +2199,7 @@ _bfd_generic_link_output_symbols (output check that. */ if (info->hash->creator == input_bfd->xvec) { - if (h->sym != (asymbol *) NULL) + if (h->sym != NULL) *sym_ptr = sym = h->sym; } @@ -2320,9 +2251,8 @@ _bfd_generic_link_output_symbols (output write_file_locals in ldsym.c. */ if (info->strip == strip_all || (info->strip == strip_some - && (bfd_hash_lookup (info->keep_hash, bfd_asymbol_name (sym), - FALSE, FALSE) - == (struct bfd_hash_entry *) NULL))) + && bfd_hash_lookup (info->keep_hash, bfd_asymbol_name (sym), + FALSE, FALSE) == NULL)) output = FALSE; else if ((sym->flags & (BSF_GLOBAL | BSF_WEAK)) != 0) { @@ -2362,7 +2292,7 @@ _bfd_generic_link_output_symbols (output break; case discard_sec_merge: output = TRUE; - if (info->relocateable + if (info->relocatable || ! (sym->section->flags & SEC_MERGE)) break; /* FALLTHROUGH */ @@ -2401,7 +2331,7 @@ _bfd_generic_link_output_symbols (output { if (! generic_add_output_symbol (output_bfd, psymalloc, sym)) return FALSE; - if (h != (struct generic_link_hash_entry *) NULL) + if (h != NULL) h->written = TRUE; } } @@ -2413,9 +2343,7 @@ _bfd_generic_link_output_symbols (output hash table entry. */ static void -set_symbol_from_hash (sym, h) - asymbol *sym; - struct bfd_link_hash_entry *h; +set_symbol_from_hash (asymbol *sym, struct bfd_link_hash_entry *h) { switch (h->type) { @@ -2476,12 +2404,10 @@ set_symbol_from_hash (sym, h) This is called for each symbol in the hash table. */ bfd_boolean -_bfd_generic_link_write_global_symbol (h, data) - struct generic_link_hash_entry *h; - PTR data; +_bfd_generic_link_write_global_symbol (struct generic_link_hash_entry *h, + void *data) { - struct generic_write_global_symbol_info *wginfo = - (struct generic_write_global_symbol_info *) data; + struct generic_write_global_symbol_info *wginfo = data; asymbol *sym; if (h->root.type == bfd_link_hash_warning) @@ -2498,7 +2424,7 @@ _bfd_generic_link_write_global_symbol (h FALSE, FALSE) == NULL)) return TRUE; - if (h->sym != (asymbol *) NULL) + if (h->sym != NULL) sym = h->sym; else { @@ -2526,21 +2452,20 @@ _bfd_generic_link_write_global_symbol (h /* Create a relocation. */ bfd_boolean -_bfd_generic_reloc_link_order (abfd, info, sec, link_order) - bfd *abfd; - struct bfd_link_info *info; - asection *sec; - struct bfd_link_order *link_order; +_bfd_generic_reloc_link_order (bfd *abfd, + struct bfd_link_info *info, + asection *sec, + struct bfd_link_order *link_order) { arelent *r; - if (! info->relocateable) + if (! info->relocatable) abort (); - if (sec->orelocation == (arelent **) NULL) + if (sec->orelocation == NULL) abort (); - r = (arelent *) bfd_alloc (abfd, (bfd_size_type) sizeof (arelent)); - if (r == (arelent *) NULL) + r = bfd_alloc (abfd, sizeof (arelent)); + if (r == NULL) return FALSE; r->address = link_order->offset; @@ -2562,12 +2487,11 @@ _bfd_generic_reloc_link_order (abfd, inf bfd_wrapped_link_hash_lookup (abfd, info, link_order->u.reloc.p->u.name, FALSE, FALSE, TRUE)); - if (h == (struct generic_link_hash_entry *) NULL + if (h == NULL || ! h->written) { if (! ((*info->callbacks->unattached_reloc) - (info, link_order->u.reloc.p->u.name, - (bfd *) NULL, (asection *) NULL, (bfd_vma) 0))) + (info, link_order->u.reloc.p->u.name, NULL, NULL, 0))) return FALSE; bfd_set_error (bfd_error_bad_value); return FALSE; @@ -2588,8 +2512,8 @@ _bfd_generic_reloc_link_order (abfd, inf file_ptr loc; size = bfd_get_reloc_size (r->howto); - buf = (bfd_byte *) bfd_zmalloc (size); - if (buf == (bfd_byte *) NULL) + buf = bfd_zmalloc (size); + if (buf == NULL) return FALSE; rstat = _bfd_relocate_contents (r->howto, abfd, (bfd_vma) link_order->u.reloc.p->addend, @@ -2608,7 +2532,7 @@ _bfd_generic_reloc_link_order (abfd, inf ? bfd_section_name (abfd, link_order->u.reloc.p->u.section) : link_order->u.reloc.p->u.name), r->howto->name, link_order->u.reloc.p->addend, - (bfd *) NULL, (asection *) NULL, (bfd_vma) 0))) + NULL, NULL, 0))) { free (buf); return FALSE; @@ -2616,8 +2540,7 @@ _bfd_generic_reloc_link_order (abfd, inf break; } loc = link_order->offset * bfd_octets_per_byte (abfd); - ok = bfd_set_section_contents (abfd, sec, (PTR) buf, loc, - (bfd_size_type) size); + ok = bfd_set_section_contents (abfd, sec, buf, loc, size); free (buf); if (! ok) return FALSE; @@ -2634,20 +2557,18 @@ _bfd_generic_reloc_link_order (abfd, inf /* Allocate a new link_order for a section. */ struct bfd_link_order * -bfd_new_link_order (abfd, section) - bfd *abfd; - asection *section; +bfd_new_link_order (bfd *abfd, asection *section) { bfd_size_type amt = sizeof (struct bfd_link_order); struct bfd_link_order *new; - new = (struct bfd_link_order *) bfd_zalloc (abfd, amt); + new = bfd_zalloc (abfd, amt); if (!new) return NULL; new->type = bfd_undefined_link_order; - if (section->link_order_tail != (struct bfd_link_order *) NULL) + if (section->link_order_tail != NULL) section->link_order_tail->next = new; else section->link_order_head = new; @@ -2661,11 +2582,10 @@ bfd_new_link_order (abfd, section) of how the particular backends generates relocs. */ bfd_boolean -_bfd_default_link_order (abfd, info, sec, link_order) - bfd *abfd; - struct bfd_link_info *info; - asection *sec; - struct bfd_link_order *link_order; +_bfd_default_link_order (bfd *abfd, + struct bfd_link_info *info, + asection *sec, + struct bfd_link_order *link_order) { switch (link_order->type) { @@ -2685,11 +2605,10 @@ _bfd_default_link_order (abfd, info, sec /* Default routine to handle a bfd_data_link_order. */ static bfd_boolean -default_data_link_order (abfd, info, sec, link_order) - bfd *abfd; - struct bfd_link_info *info ATTRIBUTE_UNUSED; - asection *sec; - struct bfd_link_order *link_order; +default_data_link_order (bfd *abfd, + struct bfd_link_info *info ATTRIBUTE_UNUSED, + asection *sec, + struct bfd_link_order *link_order) { bfd_size_type size; size_t fill_size; @@ -2708,7 +2627,7 @@ default_data_link_order (abfd, info, sec if (fill_size != 0 && fill_size < size) { bfd_byte *p; - fill = (bfd_byte *) bfd_malloc (size); + fill = bfd_malloc (size); if (fill == NULL) return FALSE; p = fill; @@ -2740,13 +2659,11 @@ default_data_link_order (abfd, info, sec /* Default routine to handle a bfd_indirect_link_order. */ static bfd_boolean -default_indirect_link_order (output_bfd, info, output_section, link_order, - generic_linker) - bfd *output_bfd; - struct bfd_link_info *info; - asection *output_section; - struct bfd_link_order *link_order; - bfd_boolean generic_linker; +default_indirect_link_order (bfd *output_bfd, + struct bfd_link_info *info, + asection *output_section, + struct bfd_link_order *link_order, + bfd_boolean generic_linker) { asection *input_section; bfd *input_bfd; @@ -2767,9 +2684,9 @@ default_indirect_link_order (output_bfd, BFD_ASSERT (input_section->output_offset == link_order->offset); BFD_ASSERT (input_section->_cooked_size == link_order->size); - if (info->relocateable + if (info->relocatable && input_section->reloc_count > 0 - && output_section->orelocation == (arelent **) NULL) + && output_section->orelocation == NULL) { /* Space has not been allocated for the output relocations. This can happen when we are called by a specific backend @@ -2777,7 +2694,7 @@ default_indirect_link_order (output_bfd, types of object files. Handling this case correctly is difficult, and sometimes impossible. */ (*_bfd_error_handler) - (_("Attempt to do relocateable link with %s input and %s output"), + (_("Attempt to do relocatable link with %s input and %s output"), bfd_get_target (input_bfd), bfd_get_target (output_bfd)); bfd_set_error (bfd_error_wrong_format); return FALSE; @@ -2821,7 +2738,7 @@ default_indirect_link_order (output_bfd, /* sym->udata may have been set by generic_link_add_symbol_list. */ if (sym->udata.p != NULL) - h = (struct bfd_link_hash_entry *) sym->udata.p; + h = sym->udata.p; else if (bfd_is_und_section (bfd_get_section (sym))) h = bfd_wrapped_link_hash_lookup (output_bfd, info, bfd_asymbol_name (sym), @@ -2838,11 +2755,11 @@ default_indirect_link_order (output_bfd, /* Get and relocate the section contents. */ sec_size = bfd_section_size (input_bfd, input_section); - contents = ((bfd_byte *) bfd_malloc (sec_size)); + contents = bfd_malloc (sec_size); if (contents == NULL && sec_size != 0) goto error_return; new_contents = (bfd_get_relocated_section_contents - (output_bfd, info, link_order, contents, info->relocateable, + (output_bfd, info, link_order, contents, info->relocatable, _bfd_generic_link_get_symbols (input_bfd))); if (!new_contents) goto error_return; @@ -2850,7 +2767,7 @@ default_indirect_link_order (output_bfd, /* Output the section contents. */ loc = link_order->offset * bfd_octets_per_byte (output_bfd); if (! bfd_set_section_contents (output_bfd, output_section, - (PTR) new_contents, loc, link_order->size)) + new_contents, loc, link_order->size)) goto error_return; if (contents != NULL) @@ -2867,14 +2784,13 @@ default_indirect_link_order (output_bfd, list. */ unsigned int -_bfd_count_link_order_relocs (link_order) - struct bfd_link_order *link_order; +_bfd_count_link_order_relocs (struct bfd_link_order *link_order) { register unsigned int c; register struct bfd_link_order *l; c = 0; - for (l = link_order; l != (struct bfd_link_order *) NULL; l = l->next) + for (l = link_order; l != NULL; l = l->next) { if (l->type == bfd_section_reloc_link_order || l->type == bfd_symbol_reloc_link_order) @@ -2889,7 +2805,7 @@ FUNCTION bfd_link_split_section SYNOPSIS - bfd_boolean bfd_link_split_section(bfd *abfd, asection *sec); + bfd_boolean bfd_link_split_section (bfd *abfd, asection *sec); DESCRIPTION Return nonzero if @var{sec} should be split during a @@ -2902,9 +2818,8 @@ DESCRIPTION */ bfd_boolean -_bfd_generic_link_split_section (abfd, sec) - bfd *abfd ATTRIBUTE_UNUSED; - asection *sec ATTRIBUTE_UNUSED; +_bfd_generic_link_split_section (bfd *abfd ATTRIBUTE_UNUSED, + asection *sec ATTRIBUTE_UNUSED) { return FALSE; } diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/m68klinux.c binutils-2.14.90.0.5/bfd/m68klinux.c --- binutils-2.14.90.0.4.1/bfd/m68klinux.c 2003-03-19 09:19:13.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/m68klinux.c 2003-07-23 08:08:09.000000000 -0700 @@ -357,7 +357,7 @@ linux_add_one_symbol (info, abfd, name, insert = FALSE; - if (! info->relocateable + if (! info->relocatable && linux_hash_table (info)->dynobj == NULL && strcmp (name, SHARABLE_CONFLICTS) == 0 && (flags & BSF_CONSTRUCTOR) != 0 diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/opncls.c binutils-2.14.90.0.5/bfd/opncls.c --- binutils-2.14.90.0.4.1/bfd/opncls.c 2003-05-05 14:46:47.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/opncls.c 2003-07-23 08:08:09.000000000 -0700 @@ -47,17 +47,17 @@ static unsigned int _bfd_id_counter = 0; /* Return a new BFD. All BFD's are allocated through this routine. */ bfd * -_bfd_new_bfd () +_bfd_new_bfd (void) { bfd *nbfd; - nbfd = (bfd *) bfd_zmalloc ((bfd_size_type) sizeof (bfd)); + nbfd = bfd_zmalloc (sizeof (bfd)); if (nbfd == NULL) return NULL; nbfd->id = _bfd_id_counter++; - nbfd->memory = (PTR) objalloc_create (); + nbfd->memory = objalloc_create (); if (nbfd->memory == NULL) { bfd_set_error (bfd_error_no_memory); @@ -77,15 +77,15 @@ _bfd_new_bfd () free (nbfd); return NULL; } - nbfd->sections = (asection *) NULL; + nbfd->sections = NULL; nbfd->section_tail = &nbfd->sections; nbfd->format = bfd_unknown; - nbfd->my_archive = (bfd *) NULL; + nbfd->my_archive = NULL; nbfd->origin = 0; nbfd->opened_once = FALSE; nbfd->output_has_begun = FALSE; nbfd->section_count = 0; - nbfd->usrdata = (PTR) NULL; + nbfd->usrdata = NULL; nbfd->cacheable = FALSE; nbfd->flags = BFD_NO_FLAGS; nbfd->mtime_set = FALSE; @@ -96,8 +96,7 @@ _bfd_new_bfd () /* Allocate a new BFD as a member of archive OBFD. */ bfd * -_bfd_new_bfd_contained_in (obfd) - bfd *obfd; +_bfd_new_bfd_contained_in (bfd *obfd) { bfd *nbfd; @@ -114,8 +113,7 @@ _bfd_new_bfd_contained_in (obfd) /* Delete a BFD. */ void -_bfd_delete_bfd (abfd) - bfd *abfd; +_bfd_delete_bfd (bfd *abfd) { bfd_hash_table_free (&abfd->section_htab); objalloc_free ((struct objalloc *) abfd->memory); @@ -133,7 +131,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 @@ -148,9 +146,7 @@ DESCRIPTION */ bfd * -bfd_openr (filename, target) - const char *filename; - const char *target; +bfd_openr (const char *filename, const char *target) { bfd *nbfd; const bfd_target *target_vec; @@ -192,7 +188,7 @@ FUNCTION 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 @@ -214,10 +210,7 @@ DESCRIPTION */ bfd * -bfd_fdopenr (filename, target, fd) - const char *filename; - const char *target; - int fd; +bfd_fdopenr (const char *filename, const char *target, int fd) { bfd *nbfd; const bfd_target *target_vec; @@ -244,14 +237,14 @@ bfd_fdopenr (filename, target, fd) } #ifndef HAVE_FDOPEN - nbfd->iostream = (PTR) fopen (filename, FOPEN_RB); + nbfd->iostream = fopen (filename, FOPEN_RB); #else /* (O_ACCMODE) parens are to avoid Ultrix header file bug. */ switch (fdflags & (O_ACCMODE)) { - case O_RDONLY: nbfd->iostream = (PTR) fdopen (fd, FOPEN_RB); break; - case O_WRONLY: nbfd->iostream = (PTR) fdopen (fd, FOPEN_RUB); break; - case O_RDWR: nbfd->iostream = (PTR) fdopen (fd, FOPEN_RUB); break; + case O_RDONLY: nbfd->iostream = fdopen (fd, FOPEN_RB); break; + case O_WRONLY: nbfd->iostream = fdopen (fd, FOPEN_RUB); break; + case O_RDWR: nbfd->iostream = fdopen (fd, FOPEN_RUB); break; default: abort (); } #endif @@ -292,7 +285,7 @@ FUNCTION bfd_openstreamr SYNOPSIS - bfd *bfd_openstreamr(const char *, const char *, PTR); + bfd *bfd_openstreamr (const char *, const char *, void *); DESCRIPTION @@ -301,12 +294,9 @@ DESCRIPTION */ bfd * -bfd_openstreamr (filename, target, streamarg) - const char *filename; - const char *target; - PTR streamarg; +bfd_openstreamr (const char *filename, const char *target, void *streamarg) { - FILE *stream = (FILE *) streamarg; + FILE *stream = streamarg; bfd *nbfd; const bfd_target *target_vec; @@ -321,7 +311,7 @@ bfd_openstreamr (filename, target, strea return NULL; } - nbfd->iostream = (PTR) stream; + nbfd->iostream = stream; nbfd->filename = filename; nbfd->direction = read_direction; @@ -344,7 +334,7 @@ FUNCTION bfd_openw SYNOPSIS - bfd *bfd_openw(const char *filename, const char *target); + bfd *bfd_openw (const char *filename, const char *target); DESCRIPTION Create a BFD, associated with file @var{filename}, using the @@ -355,9 +345,7 @@ DESCRIPTION */ bfd * -bfd_openw (filename, target) - const char *filename; - const char *target; +bfd_openw (const char *filename, const char *target) { bfd *nbfd; const bfd_target *target_vec; @@ -415,8 +403,7 @@ RETURNS bfd_boolean -bfd_close (abfd) - bfd *abfd; +bfd_close (bfd *abfd) { bfd_boolean ret; @@ -478,8 +465,7 @@ RETURNS */ bfd_boolean -bfd_close_all_done (abfd) - bfd *abfd; +bfd_close_all_done (bfd *abfd) { bfd_boolean ret; @@ -514,7 +500,7 @@ FUNCTION bfd_create SYNOPSIS - bfd *bfd_create(const char *filename, bfd *templ); + bfd *bfd_create (const char *filename, bfd *templ); DESCRIPTION Create a new BFD in the manner of <>, but without @@ -523,9 +509,7 @@ DESCRIPTION */ bfd * -bfd_create (filename, templ) - const char *filename; - bfd *templ; +bfd_create (const char *filename, bfd *templ) { bfd *nbfd; @@ -559,8 +543,7 @@ RETURNS */ bfd_boolean -bfd_make_writable(abfd) - bfd *abfd; +bfd_make_writable (bfd *abfd) { struct bfd_in_memory *bim; @@ -570,9 +553,8 @@ bfd_make_writable(abfd) return FALSE; } - bim = ((struct bfd_in_memory *) - bfd_malloc ((bfd_size_type) sizeof (struct bfd_in_memory))); - abfd->iostream = (PTR) bim; + bim = bfd_malloc (sizeof (struct bfd_in_memory)); + abfd->iostream = bim; /* bfd_bwrite will grow these as needed. */ bim->size = 0; bim->buffer = 0; @@ -602,8 +584,7 @@ RETURNS <> is returned if all is ok, otherwise <>. */ bfd_boolean -bfd_make_readable(abfd) - bfd *abfd; +bfd_make_readable (bfd *abfd) { if (abfd->direction != write_direction || !(abfd->flags & BFD_IN_MEMORY)) { @@ -622,12 +603,12 @@ bfd_make_readable(abfd) abfd->where = 0; abfd->format = bfd_unknown; - abfd->my_archive = (bfd *) NULL; + abfd->my_archive = NULL; abfd->origin = 0; abfd->opened_once = FALSE; abfd->output_has_begun = FALSE; abfd->section_count = 0; - abfd->usrdata = (PTR) NULL; + abfd->usrdata = NULL; abfd->cacheable = FALSE; abfd->flags = BFD_IN_MEMORY; abfd->mtime_set = FALSE; @@ -650,7 +631,7 @@ INTERNAL_FUNCTION bfd_alloc SYNOPSIS - PTR bfd_alloc (bfd *abfd, size_t wanted); + void *bfd_alloc (bfd *abfd, size_t wanted); DESCRIPTION Allocate a block of @var{wanted} bytes of memory attached to @@ -658,12 +639,10 @@ DESCRIPTION */ -PTR -bfd_alloc (abfd, size) - bfd *abfd; - bfd_size_type size; +void * +bfd_alloc (bfd *abfd, bfd_size_type size) { - PTR ret; + void *ret; if (size != (unsigned long) size) { @@ -677,12 +656,10 @@ bfd_alloc (abfd, size) return ret; } -PTR -bfd_zalloc (abfd, size) - bfd *abfd; - bfd_size_type size; +void * +bfd_zalloc (bfd *abfd, bfd_size_type size) { - PTR res; + void *res; res = bfd_alloc (abfd, size); if (res) @@ -694,9 +671,7 @@ bfd_zalloc (abfd, size) Note: Also frees all more recently allocated blocks! */ void -bfd_release (abfd, block) - bfd *abfd; - PTR block; +bfd_release (bfd *abfd, void *block) { objalloc_free_block ((struct objalloc *) abfd->memory, block); } @@ -716,28 +691,28 @@ bfd_release (abfd, block) without debug symbols). */ -static unsigned long calc_crc32 PARAMS ((unsigned long, const unsigned char *, size_t)); -static char * get_debug_link_info PARAMS ((bfd *, unsigned long *)); -static bfd_boolean separate_debug_file_exists PARAMS ((const char *, const unsigned long)); -static char * find_separate_debug_file PARAMS ((bfd *, const char *)); - +#define GNU_DEBUGLINK ".gnu_debuglink" /* -INTERNAL_FUNCTION - calc_crc32 +FUNCTION + bfd_calc_gnu_debuglink_crc32 SYNOPSIS - unsigned long calc_crc32 (unsigned long crc, const unsigned char *buf, size_t len); + unsigned long bfd_calc_gnu_debuglink_crc32 + (unsigned long crc, const unsigned char *buf, bfd_size_type len); DESCRIPTION - Advance the CRC32 given by @var{crc} through @var{len} - bytes of @var{buf}. Return the updated CRC32 value. + Computes a CRC value as used in the .gnu_debuglink section. + Advances the previously computed @var{crc} value by computing + and adding in the crc32 for @var{len} bytes of @var{buf}. + +RETURNS + Return the updated CRC32 value. */ -static unsigned long -calc_crc32 (crc, buf, len) - unsigned long crc; - const unsigned char *buf; - size_t len; +unsigned long +bfd_calc_gnu_debuglink_crc32 (unsigned long crc, + const unsigned char *buf, + bfd_size_type len) { static const unsigned long crc32_table[256] = { @@ -808,7 +783,7 @@ INTERNAL_FUNCTION get_debug_link_info SYNOPSIS - char *get_debug_link_info (bfd *abfd, unsigned long *crc32_out) + char *get_debug_link_info (bfd *abfd, unsigned long *crc32_out); DESCRIPTION fetch the filename and CRC32 value for any separate debuginfo @@ -817,9 +792,7 @@ DESCRIPTION */ static char * -get_debug_link_info (abfd, crc32_out) - bfd *abfd; - unsigned long *crc32_out; +get_debug_link_info (bfd *abfd, unsigned long *crc32_out) { asection * sect; bfd_size_type debuglink_size; @@ -831,16 +804,18 @@ get_debug_link_info (abfd, crc32_out) BFD_ASSERT (abfd); BFD_ASSERT (crc32_out); - sect = bfd_get_section_by_name (abfd, ".gnu_debuglink"); + sect = bfd_get_section_by_name (abfd, GNU_DEBUGLINK); if (sect == NULL) return NULL; debuglink_size = bfd_section_size (abfd, sect); - contents = xmalloc (debuglink_size); - ret = bfd_get_section_contents (abfd, sect, contents, - (file_ptr)0, debuglink_size); + contents = malloc (debuglink_size); + if (contents == NULL) + return NULL; + + ret = bfd_get_section_contents (abfd, sect, contents, 0, debuglink_size); if (! ret) { free (contents); @@ -851,7 +826,7 @@ get_debug_link_info (abfd, crc32_out) crc_offset = strlen (contents) + 1; crc_offset = (crc_offset + 3) & ~3; - crc32 = bfd_get_32 (abfd, (bfd_byte *) (contents + crc_offset)); + crc32 = bfd_get_32 (abfd, contents + crc_offset); *crc32_out = crc32; return contents; @@ -862,7 +837,8 @@ INTERNAL_FUNCTION separate_debug_file_exists SYNOPSIS - bfd_boolean separate_debug_file_exists (char * name, unsigned long crc32) + bfd_boolean separate_debug_file_exists + (char *name, unsigned long crc32); DESCRIPTION Checks to see if @var{name} is a file and if its contents @@ -870,14 +846,12 @@ DESCRIPTION */ static bfd_boolean -separate_debug_file_exists (name, crc) - const char *name; - const unsigned long crc; +separate_debug_file_exists (const char *name, const unsigned long crc) { static char buffer [8 * 1024]; unsigned long file_crc = 0; int fd; - int count; + bfd_size_type count; BFD_ASSERT (name); @@ -886,7 +860,7 @@ separate_debug_file_exists (name, crc) return FALSE; while ((count = read (fd, buffer, sizeof (buffer))) > 0) - file_crc = calc_crc32 (file_crc, buffer, count); + file_crc = bfd_calc_gnu_debuglink_crc32 (file_crc, buffer, count); close (fd); @@ -899,7 +873,7 @@ INTERNAL_FUNCTION find_separate_debug_file SYNOPSIS - char * find_separate_debug_file (bfd *abfd) + char *find_separate_debug_file (bfd *abfd); DESCRIPTION Searches @var{abfd} for a reference to separate debugging @@ -911,9 +885,7 @@ DESCRIPTION */ static char * -find_separate_debug_file (abfd, debug_file_directory) - bfd *abfd; - const char *debug_file_directory; +find_separate_debug_file (bfd *abfd, const char *debug_file_directory) { char *basename; char *dir; @@ -930,16 +902,21 @@ find_separate_debug_file (abfd, debug_fi return NULL; basename = get_debug_link_info (abfd, & crc32); - if (basename == NULL) return NULL; + if (strlen (basename) < 1) { free (basename); return NULL; } - dir = xstrdup (abfd->filename); + dir = strdup (abfd->filename); + if (dir == NULL) + { + free (basename); + return NULL; + } BFD_ASSERT (strlen (dir) != 0); /* Strip off filename part. */ @@ -950,11 +927,17 @@ find_separate_debug_file (abfd, debug_fi dir[i + 1] = '\0'; BFD_ASSERT (dir[i] == '/' || dir[0] == '\0') - debugfile = xmalloc (strlen (debug_file_directory) + 1 - + strlen (dir) - + strlen (".debug/") - + strlen (basename) - + 1); + debugfile = malloc (strlen (debug_file_directory) + 1 + + strlen (dir) + + strlen (".debug/") + + strlen (basename) + + 1); + if (debugfile == NULL) + { + free (basename); + free (dir); + return NULL; + } /* First try in the same directory as the original file: */ strcpy (debugfile, dir); @@ -1008,7 +991,7 @@ FUNCTION bfd_follow_gnu_debuglink SYNOPSIS - char * bfd_follow_gnu_debuglink(bfd *abfd, const char *dir); + char *bfd_follow_gnu_debuglink (bfd *abfd, const char *dir); DESCRIPTION @@ -1027,9 +1010,7 @@ RETURNS */ char * -bfd_follow_gnu_debuglink (abfd, dir) - bfd *abfd; - const char * dir; +bfd_follow_gnu_debuglink (bfd *abfd, const char *dir) { #if 0 /* Disabled until DEBUGDIR can be defined by configure.in */ if (dir == NULL) @@ -1037,3 +1018,156 @@ bfd_follow_gnu_debuglink (abfd, dir) #endif return find_separate_debug_file (abfd, dir); } + +/* +FUNCTION + bfd_create_gnu_debuglink_section + +SYNOPSIS + struct sec *bfd_create_gnu_debuglink_section + (bfd *abfd, const char *filename); + +DESCRIPTION + + Takes a @var{BFD} and adds a .gnu_debuglink section to it. The section is sized + to be big enough to contain a link to the specified @var{filename}. + +RETURNS + A pointer to the new section is returned if all is ok. Otherwise <> is + returned and bfd_error is set. +*/ + +asection * +bfd_create_gnu_debuglink_section (bfd *abfd, const char *filename) +{ + asection *sect; + bfd_size_type debuglink_size; + + if (abfd == NULL || filename == NULL) + { + bfd_set_error (bfd_error_invalid_operation); + return NULL; + } + + /* Strip off any path components in filename. */ + filename = lbasename (filename); + + sect = bfd_get_section_by_name (abfd, GNU_DEBUGLINK); + if (sect) + { + /* Section already exists. */ + bfd_set_error (bfd_error_invalid_operation); + return NULL; + } + + sect = bfd_make_section (abfd, GNU_DEBUGLINK); + if (sect == NULL) + return NULL; + + if (! bfd_set_section_flags (abfd, sect, + SEC_HAS_CONTENTS | SEC_READONLY | SEC_DEBUGGING)) + /* XXX Should we delete the section from the bfd ? */ + return NULL; + + + debuglink_size = strlen (filename) + 1; + debuglink_size += 3; + debuglink_size &= ~3; + debuglink_size += 4; + + if (! bfd_set_section_size (abfd, sect, debuglink_size)) + /* XXX Should we delete the section from the bfd ? */ + return NULL; + + return sect; +} + + +/* +FUNCTION + bfd_fill_in_gnu_debuglink_section + +SYNOPSIS + bfd_boolean bfd_fill_in_gnu_debuglink_section + (bfd *abfd, struct sec *sect, const char *filename); + +DESCRIPTION + + Takes a @var{BFD} and containing a .gnu_debuglink section @var{SECT} + and fills in the contents of the section to contain a link to the + specified @var{filename}. The filename should be relative to the + current directory. + +RETURNS + <> is returned if all is ok. Otherwise <> is returned + and bfd_error is set. +*/ + +bfd_boolean +bfd_fill_in_gnu_debuglink_section (bfd *abfd, + struct sec *sect, + const char *filename) +{ + bfd_size_type debuglink_size; + unsigned long crc32; + char * contents; + bfd_size_type crc_offset; + FILE * handle; + static char buffer[8 * 1024]; + size_t count; + + if (abfd == NULL || sect == NULL || filename == NULL) + { + bfd_set_error (bfd_error_invalid_operation); + return FALSE; + } + + /* Make sure that we can read the file. + XXX - Should we attempt to locate the debug info file using the same + algorithm as gdb ? At the moment, since we are creating the + .gnu_debuglink section, we insist upon the user providing us with a + correct-for-section-creation-time path, but this need not conform to + the gdb location algorithm. */ + handle = fopen (filename, FOPEN_RB); + if (handle == NULL) + { + bfd_set_error (bfd_error_system_call); + return FALSE; + } + + crc32 = 0; + while ((count = fread (buffer, 1, sizeof buffer, handle)) > 0) + crc32 = bfd_calc_gnu_debuglink_crc32 (crc32, buffer, count); + fclose (handle); + + /* Strip off any path components in filename, + now that we no longer need them. */ + filename = lbasename (filename); + + debuglink_size = strlen (filename) + 1; + debuglink_size += 3; + debuglink_size &= ~3; + debuglink_size += 4; + + contents = malloc (debuglink_size); + if (contents == NULL) + { + /* XXX Should we delete the section from the bfd ? */ + bfd_set_error (bfd_error_no_memory); + return FALSE; + } + + strcpy (contents, filename); + crc_offset = debuglink_size - 4; + + bfd_put_32 (abfd, crc32, contents + crc_offset); + + if (! bfd_set_section_contents (abfd, sect, contents, 0, debuglink_size)) + { + /* XXX Should we delete the section from the bfd ? */ + free (contents); + return FALSE; + } + + return TRUE; +} diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/pdp11.c binutils-2.14.90.0.5/bfd/pdp11.c --- binutils-2.14.90.0.4.1/bfd/pdp11.c 2002-12-16 12:22:52.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/pdp11.c 2003-07-23 08:08:09.000000000 -0700 @@ -1,5 +1,5 @@ /* BFD back-end for PDP-11 a.out binaries. - Copyright 2001, 2002 Free Software Foundation, Inc. + Copyright 2001, 2002, 2003 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -3436,7 +3436,7 @@ NAME(aout,final_link) (abfd, info, callb includes_hash_initialized = TRUE; /* Figure out the largest section size. Also, if generating - relocateable output, count the relocs. */ + relocatable output, count the relocs. */ trsize = 0; drsize = 0; max_contents_size = 0; @@ -3446,7 +3446,7 @@ NAME(aout,final_link) (abfd, info, callb { size_t sz; - if (info->relocateable) + if (info->relocatable) { if (bfd_get_flavour (sub) == bfd_target_aout_flavour) { @@ -3460,7 +3460,7 @@ NAME(aout,final_link) (abfd, info, callb work out the number of relocs needed, and then multiply by the reloc size. */ (*_bfd_error_handler) - ("%s: relocateable link from %s to %s not supported", + ("%s: relocatable link from %s to %s not supported", bfd_get_filename (abfd), sub->xvec->name, abfd->xvec->name); bfd_set_error (bfd_error_invalid_operation); @@ -3490,7 +3490,7 @@ NAME(aout,final_link) (abfd, info, callb } } - if (info->relocateable) + if (info->relocatable) { if (obj_textsec (abfd) != (asection *) NULL) trsize += (_bfd_count_link_order_relocs (obj_textsec (abfd) @@ -4460,9 +4460,9 @@ aout_link_input_section (finfo, input_bf input_size)) return FALSE; - /* If we are producing relocateable output, the relocs were + /* If we are producing relocatable output, the relocs were modified, and we now write them out. */ - if (finfo->info->relocateable && rel_size > 0) + if (finfo->info->relocatable && rel_size > 0) { if (bfd_seek (finfo->output_bfd, *reloff_ptr, SEEK_SET) != 0) return FALSE; @@ -4521,7 +4521,7 @@ pdp11_aout_link_input_section (finfo, in struct aout_link_hash_entry *, PTR, bfd_byte *, bfd_boolean *, bfd_vma *)); bfd *output_bfd; - bfd_boolean relocateable; + bfd_boolean relocatable; struct external_nlist *syms; char *strings; struct aout_link_hash_entry **sym_hashes; @@ -4537,7 +4537,7 @@ pdp11_aout_link_input_section (finfo, in BFD_ASSERT (input_bfd->xvec->header_byteorder == output_bfd->xvec->header_byteorder); - relocateable = finfo->info->relocateable; + relocatable = finfo->info->relocatable; syms = obj_aout_external_syms (input_bfd); strings = obj_aout_external_strings (input_bfd); sym_hashes = obj_aout_sym_hashes (input_bfd); @@ -4578,9 +4578,9 @@ pdp11_aout_link_input_section (finfo, in howto = howto_table_pdp11 + howto_idx; } - if (relocateable) + if (relocatable) { - /* We are generating a relocateable output file, and must + /* We are generating a relocatable output file, and must modify the reloc accordingly. */ if (r_extern) { diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/pe-mips.c binutils-2.14.90.0.5/bfd/pe-mips.c --- binutils-2.14.90.0.4.1/bfd/pe-mips.c 2002-12-16 12:22:52.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/pe-mips.c 2003-07-23 08:08:09.000000000 -0700 @@ -1,6 +1,6 @@ /* BFD back-end for MIPS PE COFF files. Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2001, 2002 Free Software Foundation, Inc. + 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Modified from coff-i386.c by DJ Delorie, dj@cygnus.com This file is part of BFD, the Binary File Descriptor library. @@ -73,7 +73,7 @@ static bfd_boolean coff_pe_mips_relocate section for a reference to a common symbol is the value itself plus any desired offset. Ian Taylor, Cygnus Support. */ -/* If we are producing relocateable output, we need to do some +/* If we are producing relocatable output, we need to do some adjustments to the object file that are not done by the bfd_perform_relocation function. This function is called by every reloc type to make any required adjustments. */ @@ -118,7 +118,7 @@ coff_mips_reloc (abfd, reloc_entry, symb { /* For some reason bfd_perform_relocation always effectively ignores the addend for a COFF target when producing - relocateable output. This seems to be always wrong for 386 + relocatable output. This seems to be always wrong for 386 COFF, so we handle the addend here instead. */ diff = reloc_entry->addend; } @@ -467,7 +467,7 @@ coff_mips_rtype_to_howto (abfd, sec, rel #ifndef COFF_WITH_PE /* If the output symbol is common (in which case this must be a - relocateable link), we need to add in the final size of the + relocatable link), we need to add in the final size of the common symbol. */ if (h != NULL && h->root.type == bfd_link_hash_common) *addendp += h->root.u.c.size; @@ -654,7 +654,7 @@ coff_pe_mips_relocate_section (output_bf unsigned int i; bfd_boolean got_lo; - if (info->relocateable) + if (info->relocatable) { (*_bfd_error_handler) (_("\ %s: `ld -r' not supported with PE MIPS objects\n"), @@ -722,13 +722,13 @@ coff_pe_mips_relocate_section (output_bf if (howto == NULL) return FALSE; - /* If we are doing a relocateable link, then we can just ignore + /* If we are doing a relocatable link, then we can just ignore a PC relative reloc that is pcrel_offset. It will already - have the correct value. If this is not a relocateable link, + have the correct value. If this is not a relocatable link, then we should ignore the symbol value. */ if (howto->pc_relative && howto->pcrel_offset) { - if (info->relocateable) + if (info->relocatable) continue; if (sym != NULL && sym->n_scnum != 0) addend += sym->n_value; @@ -768,7 +768,7 @@ coff_pe_mips_relocate_section (output_bf + sec->output_offset); } - else if (! info->relocateable) + else if (! info->relocatable) { if (! ((*info->callbacks->undefined_symbol) (info, h->root.root.string, input_bfd, input_section, diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/peXXigen.c binutils-2.14.90.0.5/bfd/peXXigen.c --- binutils-2.14.90.0.4.1/bfd/peXXigen.c 2003-05-05 14:46:47.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/peXXigen.c 2003-07-23 08:08:09.000000000 -0700 @@ -961,7 +961,7 @@ _bfd_XXi_swap_scnhdr_out (abfd, in, out) } if (coff_data (abfd)->link_info - && ! coff_data (abfd)->link_info->relocateable + && ! coff_data (abfd)->link_info->relocatable && ! coff_data (abfd)->link_info->shared && strcmp (scnhdr_int->s_name, ".text") == 0) { diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/pef.c binutils-2.14.90.0.5/bfd/pef.c --- binutils-2.14.90.0.4.1/bfd/pef.c 2002-12-16 12:22:52.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/pef.c 2003-07-23 08:08:09.000000000 -0700 @@ -1,5 +1,5 @@ /* PEF support for BFD. - Copyright 1999, 2000, 2001, 2002 + Copyright 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -18,7 +18,7 @@ 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 "safe-ctype.h" #include "pef.h" #include "pef-traceback.h" @@ -33,76 +33,56 @@ #define BFD_IO_FUNCS 0 #endif -#define bfd_pef_close_and_cleanup _bfd_generic_close_and_cleanup -#define bfd_pef_bfd_free_cached_info _bfd_generic_bfd_free_cached_info -#define bfd_pef_new_section_hook _bfd_generic_new_section_hook -#define bfd_pef_bfd_is_local_label_name bfd_generic_is_local_label_name -#define bfd_pef_get_lineno _bfd_nosymbols_get_lineno -#define bfd_pef_find_nearest_line _bfd_nosymbols_find_nearest_line -#define bfd_pef_bfd_make_debug_symbol _bfd_nosymbols_bfd_make_debug_symbol -#define bfd_pef_read_minisymbols _bfd_generic_read_minisymbols -#define bfd_pef_minisymbol_to_symbol _bfd_generic_minisymbol_to_symbol - -#define bfd_pef_get_reloc_upper_bound _bfd_norelocs_get_reloc_upper_bound -#define bfd_pef_canonicalize_reloc _bfd_norelocs_canonicalize_reloc -#define bfd_pef_bfd_reloc_type_lookup _bfd_norelocs_bfd_reloc_type_lookup - -#define bfd_pef_set_arch_mach _bfd_generic_set_arch_mach - -#define bfd_pef_get_section_contents _bfd_generic_get_section_contents -#define bfd_pef_set_section_contents _bfd_generic_set_section_contents - -#define bfd_pef_bfd_get_relocated_section_contents \ - bfd_generic_get_relocated_section_contents -#define bfd_pef_bfd_relax_section bfd_generic_relax_section -#define bfd_pef_bfd_gc_sections bfd_generic_gc_sections -#define bfd_pef_bfd_merge_sections bfd_generic_merge_sections -#define bfd_pef_bfd_discard_group bfd_generic_discard_group -#define bfd_pef_bfd_link_hash_table_create _bfd_generic_link_hash_table_create -#define bfd_pef_bfd_link_hash_table_free _bfd_generic_link_hash_table_free -#define bfd_pef_bfd_link_add_symbols _bfd_generic_link_add_symbols -#define bfd_pef_bfd_link_just_syms _bfd_generic_link_just_syms -#define bfd_pef_bfd_final_link _bfd_generic_final_link -#define bfd_pef_bfd_link_split_section _bfd_generic_link_split_section -#define bfd_pef_get_section_contents_in_window \ - _bfd_generic_get_section_contents_in_window - -static void bfd_pef_print_symbol -PARAMS ((bfd *abfd, PTR afile, asymbol *symbol, bfd_print_symbol_type how)); -static void bfd_pef_convert_architecture -PARAMS ((unsigned long architecture, - enum bfd_architecture *type, unsigned long *subtype)); -static bfd_boolean bfd_pef_mkobject PARAMS ((bfd *abfd)); -static int bfd_pef_parse_traceback_table -PARAMS ((bfd *abfd, asection *section, unsigned char *buf, - size_t len, size_t pos, asymbol *sym, FILE *file)); -static const char *bfd_pef_section_name PARAMS ((bfd_pef_section *section)); -static unsigned long bfd_pef_section_flags PARAMS ((bfd_pef_section *section)); -static asection *bfd_pef_make_bfd_section -PARAMS ((bfd *abfd, bfd_pef_section *section)); -static int bfd_pef_read_header PARAMS ((bfd *abfd, bfd_pef_header *header)); -static const bfd_target *bfd_pef_object_p PARAMS ((bfd *)); -static int bfd_pef_parse_traceback_tables -PARAMS ((bfd *abfd, asection *sec, unsigned char *buf, - size_t len, long *nsym, asymbol **csym)); -static int bfd_pef_parse_function_stub -PARAMS ((bfd *abfd, unsigned char *buf, size_t len, unsigned long *offset)); -static int bfd_pef_parse_function_stubs -PARAMS ((bfd *abfd, asection *codesec, unsigned char *codebuf, size_t codelen, - unsigned char *loaderbuf, size_t loaderlen, unsigned long *nsym, - asymbol **csym)); -static long bfd_pef_parse_symbols PARAMS ((bfd *abfd, asymbol **csym)); -static long bfd_pef_count_symbols PARAMS ((bfd *abfd)); -static long bfd_pef_get_symtab_upper_bound PARAMS ((bfd *)); -static long bfd_pef_get_symtab PARAMS ((bfd *, asymbol **)); -static asymbol *bfd_pef_make_empty_symbol PARAMS ((bfd *)); -static void bfd_pef_get_symbol_info PARAMS ((bfd *, asymbol *, symbol_info *)); -static int bfd_pef_sizeof_headers PARAMS ((bfd *, bfd_boolean)); - -static int bfd_pef_xlib_read_header -PARAMS ((bfd *abfd, bfd_pef_xlib_header *header)); -static int bfd_pef_xlib_scan PARAMS ((bfd *abfd, bfd_pef_xlib_header *header)); -static const bfd_target *bfd_pef_xlib_object_p PARAMS ((bfd *abfd)); +#define bfd_pef_close_and_cleanup _bfd_generic_close_and_cleanup +#define bfd_pef_bfd_free_cached_info _bfd_generic_bfd_free_cached_info +#define bfd_pef_new_section_hook _bfd_generic_new_section_hook +#define bfd_pef_bfd_is_local_label_name bfd_generic_is_local_label_name +#define bfd_pef_get_lineno _bfd_nosymbols_get_lineno +#define bfd_pef_find_nearest_line _bfd_nosymbols_find_nearest_line +#define bfd_pef_bfd_make_debug_symbol _bfd_nosymbols_bfd_make_debug_symbol +#define bfd_pef_read_minisymbols _bfd_generic_read_minisymbols +#define bfd_pef_minisymbol_to_symbol _bfd_generic_minisymbol_to_symbol +#define bfd_pef_get_reloc_upper_bound _bfd_norelocs_get_reloc_upper_bound +#define bfd_pef_canonicalize_reloc _bfd_norelocs_canonicalize_reloc +#define bfd_pef_bfd_reloc_type_lookup _bfd_norelocs_bfd_reloc_type_lookup +#define bfd_pef_set_arch_mach _bfd_generic_set_arch_mach +#define bfd_pef_get_section_contents _bfd_generic_get_section_contents +#define bfd_pef_set_section_contents _bfd_generic_set_section_contents +#define bfd_pef_bfd_get_relocated_section_contents bfd_generic_get_relocated_section_contents +#define bfd_pef_bfd_relax_section bfd_generic_relax_section +#define bfd_pef_bfd_gc_sections bfd_generic_gc_sections +#define bfd_pef_bfd_merge_sections bfd_generic_merge_sections +#define bfd_pef_bfd_discard_group bfd_generic_discard_group +#define bfd_pef_bfd_link_hash_table_create _bfd_generic_link_hash_table_create +#define bfd_pef_bfd_link_hash_table_free _bfd_generic_link_hash_table_free +#define bfd_pef_bfd_link_add_symbols _bfd_generic_link_add_symbols +#define bfd_pef_bfd_link_just_syms _bfd_generic_link_just_syms +#define bfd_pef_bfd_final_link _bfd_generic_final_link +#define bfd_pef_bfd_link_split_section _bfd_generic_link_split_section +#define bfd_pef_get_section_contents_in_window _bfd_generic_get_section_contents_in_window + +static void bfd_pef_print_symbol PARAMS ((bfd *, PTR, asymbol *, bfd_print_symbol_type)); +static void bfd_pef_convert_architecture PARAMS ((unsigned long, enum bfd_architecture *, unsigned long *)); +static bfd_boolean bfd_pef_mkobject PARAMS ((bfd *)); +static int bfd_pef_parse_traceback_table PARAMS ((bfd *, asection *, unsigned char *, size_t, size_t, asymbol *, FILE *)); +static const char *bfd_pef_section_name PARAMS ((bfd_pef_section *)); +static unsigned long bfd_pef_section_flags PARAMS ((bfd_pef_section *)); +static asection *bfd_pef_make_bfd_section PARAMS ((bfd *, bfd_pef_section *)); +static int bfd_pef_read_header PARAMS ((bfd *, bfd_pef_header *)); +static const bfd_target *bfd_pef_object_p PARAMS ((bfd *)); +static int bfd_pef_parse_traceback_tables PARAMS ((bfd *, asection *, unsigned char *, size_t, long *, asymbol **)); +static int bfd_pef_parse_function_stub PARAMS ((bfd *, unsigned char *, size_t, unsigned long *)); +static int bfd_pef_parse_function_stubs PARAMS ((bfd *, asection *, unsigned char *, size_t, unsigned char *, size_t, unsigned long *, asymbol **)); +static long bfd_pef_parse_symbols PARAMS ((bfd *, asymbol **)); +static long bfd_pef_count_symbols PARAMS ((bfd *)); +static long bfd_pef_get_symtab_upper_bound PARAMS ((bfd *)); +static long bfd_pef_get_symtab PARAMS ((bfd *, asymbol **)); +static asymbol *bfd_pef_make_empty_symbol PARAMS ((bfd *)); +static void bfd_pef_get_symbol_info PARAMS ((bfd *, asymbol *, symbol_info *)); +static int bfd_pef_sizeof_headers PARAMS ((bfd *, bfd_boolean)); +static int bfd_pef_xlib_read_header PARAMS ((bfd *, bfd_pef_xlib_header *)); +static int bfd_pef_xlib_scan PARAMS ((bfd *, bfd_pef_xlib_header *)); +static const bfd_target *bfd_pef_xlib_object_p PARAMS ((bfd *)); static void bfd_pef_print_symbol (abfd, afile, symbol, how) @@ -112,6 +92,7 @@ bfd_pef_print_symbol (abfd, afile, symbo bfd_print_symbol_type how; { FILE *file = (FILE *) afile; + switch (how) { case bfd_print_symbol_name: @@ -186,14 +167,14 @@ bfd_pef_parse_traceback_table (abfd, sec sym->flags = 0; sym->udata.i = 0; - /* memcpy is fine since all fields are unsigned char */ + /* memcpy is fine since all fields are unsigned char. */ if ((pos + 8) > len) return -1; memcpy (&table, buf + pos, 8); - /* calling code relies on returned symbols having a name and - correct offset */ + /* Calling code relies on returned symbols having a name and + correct offset. */ if ((table.lang != TB_C) && (table.lang != TB_CPLUSPLUS)) return -1; @@ -218,8 +199,8 @@ bfd_pef_parse_traceback_table (abfd, sec off.tb_offset = bfd_getb32 (buf + pos + offset); offset += 4; - /* need to subtract 4 because the offset includes the 0x0L - preceding the table */ + /* Need to subtract 4 because the offset includes the 0x0L + preceding the table. */ if (file != NULL) fprintf (file, " [offset = 0x%lx]", off.tb_offset); @@ -271,14 +252,14 @@ bfd_pef_parse_traceback_table (abfd, sec memcpy (namebuf, buf + pos + offset, name.name_len); namebuf[name.name_len] = '\0'; - /* strip leading period inserted by compiler */ + /* Strip leading period inserted by compiler. */ if (namebuf[0] == '.') memmove (namebuf, namebuf + 1, name.name_len + 1); sym->name = namebuf; for (s = sym->name; (*s != '\0'); s++) - if (! isprint (*s)) + if (! ISPRINT (*s)) return -1; offset += name.name_len; @@ -713,8 +694,7 @@ static int bfd_pef_parse_traceback_table for (;;) { - /* we're reading symbols two at a time */ - + /* We're reading symbols two at a time. */ if (csym && ((csym[count] == NULL) || (csym[count + 1] == NULL))) break; @@ -735,7 +715,7 @@ static int bfd_pef_parse_traceback_table &function, 0); if (ret < 0) { - /* skip over 0x0L to advance to next possible traceback table */ + /* Skip over 0x0L to advance to next possible traceback table. */ pos += 4; continue; } @@ -743,7 +723,7 @@ static int bfd_pef_parse_traceback_table BFD_ASSERT (function.name != NULL); /* Don't bother to compute the name if we are just - counting symbols */ + counting symbols. */ if (csym) { @@ -913,7 +893,7 @@ static int bfd_pef_parse_function_stubs { if (*s == '\0') break; - if (! isprint (*s)) + if (! ISPRINT (*s)) goto error; namelen++; } diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/po/Make-in binutils-2.14.90.0.5/bfd/po/Make-in --- binutils-2.14.90.0.4.1/bfd/po/Make-in 2002-02-03 11:22:30.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/po/Make-in 2003-07-23 08:08:09.000000000 -0700 @@ -24,6 +24,8 @@ gnulocaledir = $(prefix)/share/locale gettextsrcdir = $(prefix)/share/gettext/po subdir = po +DESTDIR = + INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ MKINSTALLDIRS = @MKINSTALLDIRS@ @@ -124,9 +126,9 @@ install-data: install-data-@USE_NLS@ install-data-no: all install-data-yes: all if test -r $(MKINSTALLDIRS); then \ - $(MKINSTALLDIRS) $(datadir); \ + $(MKINSTALLDIRS) $(DESTDIR)$(datadir); \ else \ - $(top_srcdir)/mkinstalldirs $(datadir); \ + $(top_srcdir)/mkinstalldirs $(DESTDIR)$(datadir); \ fi @catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ @@ -136,7 +138,7 @@ install-data-yes: all *) destdir=$(localedir);; \ esac; \ lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ - dir=$$destdir/$$lang/LC_MESSAGES; \ + dir=$(DESTDIR)$$destdir/$$lang/LC_MESSAGES; \ if test -r $(MKINSTALLDIRS); then \ $(MKINSTALLDIRS) $$dir; \ else \ @@ -166,12 +168,12 @@ install-data-yes: all done if test "$(PACKAGE)" = "gettext"; then \ if test -r $(MKINSTALLDIRS); then \ - $(MKINSTALLDIRS) $(gettextsrcdir); \ + $(MKINSTALLDIRS) $(DESTDIR)$(gettextsrcdir); \ else \ - $(top_srcdir)/mkinstalldirs $(gettextsrcdir); \ + $(top_srcdir)/mkinstalldirs $(DESTDIR)$(gettextsrcdir); \ fi; \ $(INSTALL_DATA) $(srcdir)/Makefile.in.in \ - $(gettextsrcdir)/Makefile.in.in; \ + $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \ else \ : ; \ fi @@ -184,12 +186,12 @@ uninstall: for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ - rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \ - rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \ - rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \ - rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \ + rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \ + rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \ + rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \ + rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \ done - rm -f $(gettextsrcdir)/po-Makefile.in.in + rm -f $(DESTDIR)$(gettextsrcdir)/po-Makefile.in.in check: all diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/po/SRC-POTFILES.in binutils-2.14.90.0.5/bfd/po/SRC-POTFILES.in --- binutils-2.14.90.0.4.1/bfd/po/SRC-POTFILES.in 2003-01-21 10:21:32.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/po/SRC-POTFILES.in 2003-07-23 08:08:09.000000000 -0700 @@ -1,19 +1,19 @@ aix386-core.c aix5ppc-core.c +aout0.c +aout32.c +aout64.c aout-adobe.c aout-arm.c aout-cris.c +aoutf1.h aout-ns32k.c aout-sparcle.c aout-target.h aout-tic30.c -aout0.c -aout32.c -aout64.c -aoutf1.h aoutx.h -archive.c archive64.c +archive.c archures.c armnetbsd.c bfd.c @@ -26,17 +26,21 @@ cf-i386lynx.c cf-m68klynx.c cf-sparclynx.c cisco-core.c +coff64-rs6000.c coff-a29k.c coff-alpha.c coff-apollo.c coff-arm.c coff-aux.c +coffcode.h +coffgen.c coff-go32.c coff-h8300.c coff-h8500.c coff-i386.c coff-i860.c coff-i960.c +cofflink.c coff-m68k.c coff-m88k.c coff-mips.c @@ -46,6 +50,7 @@ coff-sh.c coff-sparc.c coff-stgo32.c coff-svm68k.c +coffswap.h coff-tic30.c coff-tic4x.c coff-tic54x.c @@ -54,11 +59,6 @@ coff-u68k.c coff-w65.c coff-we32k.c coff-z8k.c -coff64-rs6000.c -coffcode.h -coffgen.c -cofflink.c -coffswap.h corefile.c cpu-a29k.c cpu-alpha.c @@ -111,6 +111,7 @@ cpu-vax.c cpu-w65.c cpu-we32k.c cpu-xstormy16.c +cpu-xtensa.c cpu-z8k.c demo64.c dwarf1.c @@ -120,16 +121,11 @@ ecofflink.c ecoffswap.h efi-app-ia32.c efi-app-ia64.c -elf-bfd.h -elf-eh-frame.c -elf-hppa.h -elf-m10200.c -elf-m10300.c -elf-strtab.c -elf.c +elf32-am33lin.c elf32-arc.c elf32-arm.h elf32-avr.c +elf32.c elf32-cris.c elf32-d10v.c elf32-d30v.c @@ -149,6 +145,7 @@ elf32-iq2000.c elf32-m32r.c elf32-m68hc11.c elf32-m68hc12.c +elf32-m68hc1x.c elf32-m68k.c elf32-m88k.c elf32-mcore.c @@ -159,15 +156,16 @@ elf32-or32.c elf32-pj.c elf32-ppc.c elf32-s390.c -elf32-sh.c -elf32-sh64-com.c elf32-sh64.c +elf32-sh64-com.c +elf32-sh.c elf32-sparc.c elf32-v850.c elf32-vax.c elf32-xstormy16.c -elf32.c +elf32-xtensa.c elf64-alpha.c +elf64.c elf64-gen.c elf64-hppa.c elf64-hppa.h @@ -178,14 +176,20 @@ elf64-s390.c elf64-sh64.c elf64-sparc.c elf64-x86-64.c -elf64.c elfarm-nabi.c elfarm-oabi.c +elf-bfd.h +elf.c elfcode.h elfcore.h +elf-eh-frame.c +elf-hppa.h elflink.c elflink.h +elf-m10200.c +elf-m10300.c elfn32-mips.c +elf-strtab.c elfxx-mips.c epoc-pe-arm.c epoc-pei-arm.c @@ -236,16 +240,16 @@ mipsbsd.c mmo.c netbsd.h newsos3.c -nlm-target.h -nlm.c nlm32-alpha.c +nlm32.c nlm32-i386.c nlm32-ppc.c nlm32-sparc.c -nlm32.c nlm64.c +nlm.c nlmcode.h nlmswap.h +nlm-target.h ns32k.h ns32knetbsd.c oasys.c @@ -254,24 +258,24 @@ osf-core.c pc532-mach.c pdp11.c pe-arm.c -pe-i386.c -pe-mcore.c -pe-mips.c -pe-ppc.c -pe-sh.c -pef-traceback.h pef.c pef.h +pef-traceback.h +pe-i386.c pei-arm.c +peicode.h pei-i386.c pei-mcore.c pei-mips.c pei-ppc.c pei-sh.c -peicode.h +pe-mcore.c +pe-mips.c +pe-ppc.c +pe-sh.c ppcboot.c -reloc.c reloc16.c +reloc.c riscix.c sco5-core.c section.c @@ -282,8 +286,8 @@ sparclinux.c sparclynx.c sparcnetbsd.c srec.c -stab-syms.c stabs.c +stab-syms.c sunos.c syms.c targets.c @@ -294,13 +298,15 @@ vaxbsd.c vaxnetbsd.c versados.c version.h +vms.c vms-gsd.c +vms.h vms-hdr.c vms-misc.c vms-tir.c -vms.c -vms.h -xcoff-target.h xcofflink.c +xcoff-target.h xsym.c xsym.h +xtensa-isa.c +xtensa-modules.c diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/po/bfd.pot binutils-2.14.90.0.5/bfd/po/bfd.pot --- binutils-2.14.90.0.4.1/bfd/po/bfd.pot 2002-03-07 11:52:37.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/po/bfd.pot 2003-07-23 08:08:09.000000000 -0700 @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2002-02-08 03:22-0200\n" +"POT-Creation-Date: 2003-07-17 14:52+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -14,1903 +14,2323 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: aout-adobe.c:196 +#: aout-adobe.c:204 #, c-format msgid "%s: Unknown section type in a.out.adobe file: %x\n" msgstr "" -#: aout-cris.c:208 +#: aout-cris.c:207 #, c-format msgid "%s: Invalid relocation type exported: %d" msgstr "" -#: aout-cris.c:252 +#: aout-cris.c:251 #, c-format msgid "%s: Invalid relocation type imported: %d" msgstr "" -#: aout-cris.c:263 +#: aout-cris.c:262 #, c-format msgid "%s: Bad relocation record imported: %d" msgstr "" -#: aoutx.h:1282 aoutx.h:1699 +#: aoutx.h:1295 aoutx.h:1716 #, c-format msgid "%s: can not represent section `%s' in a.out object file format" msgstr "" -#: aoutx.h:1669 +#: aoutx.h:1682 #, c-format msgid "" "%s: can not represent section for symbol `%s' in a.out object file format" msgstr "" -#: aoutx.h:1671 +#: aoutx.h:1684 msgid "*unknown*" msgstr "" -#: aoutx.h:3735 +#: aoutx.h:3776 #, c-format -msgid "%s: relocateable link from %s to %s not supported" +msgid "%s: relocatable link from %s to %s not supported" msgstr "" -#: archive.c:1826 +#: archive.c:1751 msgid "Warning: writing archive was slow: rewriting timestamp\n" msgstr "" -#: archive.c:2093 +#: archive.c:2014 msgid "Reading archive file mod timestamp" msgstr "" -#. FIXME: bfd can't call perror. -#: archive.c:2120 +#: archive.c:2040 msgid "Writing updated armap timestamp" msgstr "" -#: bfd.c:274 +#: bfd.c:280 msgid "No error" msgstr "" -#: bfd.c:275 +#: bfd.c:281 msgid "System call error" msgstr "" -#: bfd.c:276 +#: bfd.c:282 msgid "Invalid bfd target" msgstr "" -#: bfd.c:277 +#: bfd.c:283 msgid "File in wrong format" msgstr "" -#: bfd.c:278 +#: bfd.c:284 msgid "Archive object file in wrong format" msgstr "" -#: bfd.c:279 +#: bfd.c:285 msgid "Invalid operation" msgstr "" -#: bfd.c:280 +#: bfd.c:286 msgid "Memory exhausted" msgstr "" -#: bfd.c:281 +#: bfd.c:287 msgid "No symbols" msgstr "" -#: bfd.c:282 +#: bfd.c:288 msgid "Archive has no index; run ranlib to add one" msgstr "" -#: bfd.c:283 +#: bfd.c:289 msgid "No more archived files" msgstr "" -#: bfd.c:284 +#: bfd.c:290 msgid "Malformed archive" msgstr "" -#: bfd.c:285 +#: bfd.c:291 msgid "File format not recognized" msgstr "" -#: bfd.c:286 +#: bfd.c:292 msgid "File format is ambiguous" msgstr "" -#: bfd.c:287 +#: bfd.c:293 msgid "Section has no contents" msgstr "" -#: bfd.c:288 +#: bfd.c:294 msgid "Nonrepresentable section on output" msgstr "" -#: bfd.c:289 +#: bfd.c:295 msgid "Symbol needs debug section which does not exist" msgstr "" -#: bfd.c:290 +#: bfd.c:296 msgid "Bad value" msgstr "" -#: bfd.c:291 +#: bfd.c:297 msgid "File truncated" msgstr "" -#: bfd.c:292 +#: bfd.c:298 msgid "File too big" msgstr "" -#: bfd.c:293 +#: bfd.c:299 msgid "#" msgstr "" -#: bfd.c:700 +#: bfd.c:687 #, c-format msgid "BFD %s assertion fail %s:%d" msgstr "" -#: bfd.c:719 +#: bfd.c:703 #, c-format msgid "BFD %s internal error, aborting at %s line %d in %s\n" msgstr "" -#: bfd.c:723 +#: bfd.c:707 #, c-format msgid "BFD %s internal error, aborting at %s line %d\n" msgstr "" -#: bfd.c:725 +#: bfd.c:709 msgid "Please report this bug.\n" msgstr "" +#: bfdwin.c:202 +#, c-format +msgid "not mapping: data=%lx mapped=%d\n" +msgstr "" + +#: bfdwin.c:205 +msgid "not mapping: env var not set\n" +msgstr "" + #: binary.c:306 #, c-format msgid "Warning: Writing section `%s' to huge (ie negative) file offset 0x%lx." msgstr "" -#: coff-a29k.c:119 +#: coff-rs6000.c:3616 coff64-rs6000.c:2109 +#, c-format +msgid "%s: symbol `%s' has unrecognized smclas %d" +msgstr "" + +#: coff-a29k.c:120 msgid "Missing IHCONST" msgstr "" -#: coff-a29k.c:180 +#: coff-a29k.c:181 msgid "Missing IHIHALF" msgstr "" -#: coff-a29k.c:212 coff-or32.c:228 +#: coff-a29k.c:213 coff-or32.c:236 msgid "Unrecognized reloc" msgstr "" -#: coff-a29k.c:408 +#: coff-a29k.c:409 msgid "missing IHCONST reloc" msgstr "" -#: coff-a29k.c:498 +#: coff-a29k.c:499 msgid "missing IHIHALF reloc" msgstr "" -#: coff-alpha.c:881 coff-alpha.c:918 coff-alpha.c:1989 coff-mips.c:1433 +#: coff-alpha.c:884 coff-alpha.c:921 coff-alpha.c:1992 coff-mips.c:1397 msgid "GP relative relocation used when GP not defined" msgstr "" -#: coff-alpha.c:1485 +#: coff-alpha.c:1488 msgid "using multiple gp values" msgstr "" -#: coff-arm.c:1051 elf32-arm.h:285 +#: coff-arm.c:1066 elf32-arm.h:294 #, c-format msgid "%s: unable to find THUMB glue '%s' for `%s'" msgstr "" -#: coff-arm.c:1080 elf32-arm.h:320 +#: coff-arm.c:1096 elf32-arm.h:329 #, c-format msgid "%s: unable to find ARM glue '%s' for `%s'" msgstr "" -#: coff-arm.c:1375 coff-arm.c:1470 elf32-arm.h:886 elf32-arm.h:990 +#: coff-arm.c:1394 coff-arm.c:1489 elf32-arm.h:892 elf32-arm.h:999 #, c-format msgid "%s(%s): warning: interworking not enabled." msgstr "" -#: coff-arm.c:1379 elf32-arm.h:993 +#: coff-arm.c:1398 elf32-arm.h:1002 #, c-format msgid " first occurrence: %s: arm call to thumb" msgstr "" -#: coff-arm.c:1474 elf32-arm.h:889 +#: coff-arm.c:1493 elf32-arm.h:895 #, c-format msgid " first occurrence: %s: thumb call to arm" msgstr "" -#: coff-arm.c:1477 +#: coff-arm.c:1496 msgid " consider relinking with --support-old-code enabled" msgstr "" -#: coff-arm.c:1767 coff-tic80.c:686 cofflink.c:3017 +#: coff-arm.c:1788 coff-tic80.c:687 cofflink.c:3038 #, c-format msgid "%s: bad reloc address 0x%lx in section `%s'" msgstr "" -#: coff-arm.c:2107 +#: coff-arm.c:2132 #, c-format msgid "%s: illegal symbol index in reloc: %d" msgstr "" -#: coff-arm.c:2235 +#: coff-arm.c:2265 #, c-format msgid "ERROR: %s is compiled for APCS-%d, whereas %s is compiled for APCS-%d" msgstr "" -#: coff-arm.c:2250 elf32-arm.h:2287 +#: coff-arm.c:2280 elf32-arm.h:2328 #, c-format msgid "" "ERROR: %s passes floats in float registers, whereas %s passes them in " "integer registers" msgstr "" -#: coff-arm.c:2253 elf32-arm.h:2292 +#: coff-arm.c:2283 elf32-arm.h:2333 #, c-format msgid "" "ERROR: %s passes floats in integer registers, whereas %s passes them in " "float registers" msgstr "" -#: coff-arm.c:2268 +#: coff-arm.c:2298 #, c-format msgid "" "ERROR: %s is compiled as position independent code, whereas target %s is " "absolute position" msgstr "" -#: coff-arm.c:2271 +#: coff-arm.c:2301 #, c-format msgid "" "ERROR: %s is compiled as absolute position code, whereas target %s is " "position independent" msgstr "" -#: coff-arm.c:2300 elf32-arm.h:2348 +#: coff-arm.c:2330 elf32-arm.h:2405 #, c-format msgid "Warning: %s supports interworking, whereas %s does not" msgstr "" -#: coff-arm.c:2303 elf32-arm.h:2355 +#: coff-arm.c:2333 elf32-arm.h:2412 #, c-format msgid "Warning: %s does not support interworking, whereas %s does" msgstr "" -#: coff-arm.c:2330 +#: coff-arm.c:2360 #, c-format msgid "private flags = %x:" msgstr "" -#: coff-arm.c:2338 elf32-arm.h:2408 +#: coff-arm.c:2368 elf32-arm.h:2467 msgid " [floats passed in float registers]" msgstr "" -#: coff-arm.c:2340 +#: coff-arm.c:2370 msgid " [floats passed in integer registers]" msgstr "" -#: coff-arm.c:2343 elf32-arm.h:2411 +#: coff-arm.c:2373 elf32-arm.h:2470 msgid " [position independent]" msgstr "" -#: coff-arm.c:2345 +#: coff-arm.c:2375 msgid " [absolute position]" msgstr "" -#: coff-arm.c:2349 +#: coff-arm.c:2379 msgid " [interworking flag not initialised]" msgstr "" -#: coff-arm.c:2351 +#: coff-arm.c:2381 msgid " [interworking supported]" msgstr "" -#: coff-arm.c:2353 +#: coff-arm.c:2383 msgid " [interworking not supported]" msgstr "" -#: coff-arm.c:2401 elf32-arm.h:2114 +#: coff-arm.c:2431 elf32-arm.h:2150 #, c-format msgid "" "Warning: Not setting interworking flag of %s since it has already been " "specified as non-interworking" msgstr "" -#: coff-arm.c:2405 elf32-arm.h:2118 +#: coff-arm.c:2435 elf32-arm.h:2154 #, c-format msgid "Warning: Clearing the interworking flag of %s due to outside request" msgstr "" -#: coff-i960.c:136 coff-i960.c:485 -msgid "uncertain calling convention for non-COFF symbol" +#: coffcode.h:1108 +#, c-format +msgid "%s (%s): Section flag %s (0x%x) ignored" msgstr "" -#: coff-m68k.c:481 coff-mips.c:2431 elf32-m68k.c:2212 elf32-mips.c:9967 -msgid "unsupported reloc type" +#: coffcode.h:2214 +#, c-format +msgid "Unrecognized TI COFF target id '0x%x'" msgstr "" -#: coff-mips.c:875 elf32-mips.c:1997 elf64-mips.c:1739 -msgid "GP relative relocation when _gp not defined" +#: coffcode.h:4439 +#, c-format +msgid "%s: warning: illegal symbol index %ld in line numbers" msgstr "" -#. No other sections should appear in -membedded-pic -#. code. -#: coff-mips.c:2468 -msgid "reloc against unsupported section" +#: coffcode.h:4453 +#, c-format +msgid "%s: warning: duplicate line number information for `%s'" msgstr "" -#: coff-mips.c:2476 -msgid "reloc not properly aligned" +#: coffcode.h:4807 +#, c-format +msgid "%s: Unrecognized storage class %d for %s symbol `%s'" msgstr "" -#: coff-rs6000.c:2710 coff64-rs6000.c:1164 +#: coffcode.h:4940 #, c-format -msgid "%s: unsupported relocation type 0x%02x" +msgid "warning: %s: local symbol `%s' has no section" msgstr "" -#: coff-rs6000.c:2756 coff64-rs6000.c:1210 +#: coff-tic4x.c:218 coff-tic54x.c:373 coffcode.h:5047 #, c-format -msgid "%s: TOC reloc at 0x%x to symbol `%s' with no TOC entry" +msgid "%s: warning: illegal symbol index %ld in relocs" msgstr "" -#: coff-rs6000.c:3006 coff64-rs6000.c:2060 +#: coffcode.h:5085 #, c-format -msgid "%s: symbol `%s' has unrecognized smclas %d" +msgid "%s: illegal relocation type %d at address 0x%lx" msgstr "" -#: coff-tic54x.c:279 coff-tic80.c:449 +#: coffgen.c:1666 #, c-format -msgid "Unrecognized reloc type 0x%x" +msgid "%s: bad string table size %lu" msgstr "" -#: coff-tic54x.c:390 coffcode.h:4874 +#: coff-h8300.c:1047 #, c-format -msgid "%s: warning: illegal symbol index %ld in relocs" +msgid "cannot handle R_MEM_INDIRECT reloc when using %s output" msgstr "" -#: coff-w65.c:363 -#, c-format -msgid "ignoring reloc %s\n" +#: coff-i960.c:137 coff-i960.c:486 +msgid "uncertain calling convention for non-COFF symbol" msgstr "" -#: coffcode.h:1081 +#: cofflink.c:538 elflink.h:1276 #, c-format -msgid "%s (%s): Section flag %s (0x%x) ignored" +msgid "Warning: type of symbol `%s' changed from %d to %d in %s" msgstr "" -#: coffcode.h:2137 +#: cofflink.c:2328 #, c-format -msgid "Unrecognized TI COFF target id '0x%x'" +msgid "%s: relocs in section `%s', but it has no contents" msgstr "" -#: coffcode.h:4263 +#: cofflink.c:2671 coffswap.h:890 #, c-format -msgid "%s: warning: illegal symbol index %ld in line numbers" +msgid "%s: %s: reloc overflow: 0x%lx > 0xffff" msgstr "" -#: coffcode.h:4277 +#: cofflink.c:2680 coffswap.h:876 #, c-format -msgid "%s: warning: duplicate line number information for `%s'" +msgid "%s: warning: %s: line number overflow: 0x%lx > 0xffff" msgstr "" -#: coffcode.h:4636 -#, c-format -msgid "%s: Unrecognized storage class %d for %s symbol `%s'" +#: coff-m68k.c:482 coff-mips.c:2394 elf32-m68k.c:2193 elf32-mips.c:1783 +msgid "unsupported reloc type" msgstr "" -#: coffcode.h:4767 -#, c-format -msgid "warning: %s: local symbol `%s' has no section" +#: coff-mips.c:839 elf32-mips.c:1088 elf64-mips.c:1590 elfn32-mips.c:1554 +msgid "GP relative relocation when _gp not defined" +msgstr "" + +#. No other sections should appear in -membedded-pic +#. code. +#: coff-mips.c:2431 +msgid "reloc against unsupported section" +msgstr "" + +#: coff-mips.c:2439 +msgid "reloc not properly aligned" msgstr "" -#: coffcode.h:4912 +#: coff-rs6000.c:2790 #, c-format -msgid "%s: illegal relocation type %d at address 0x%lx" +msgid "%s: unsupported relocation type 0x%02x" msgstr "" -#: coffgen.c:1661 +#: coff-rs6000.c:2883 #, c-format -msgid "%s: bad string table size %lu" +msgid "%s: TOC reloc at 0x%x to symbol `%s' with no TOC entry" msgstr "" -#: cofflink.c:536 elflink.h:1967 +#: coff-tic4x.c:170 coff-tic54x.c:288 coff-tic80.c:450 #, c-format -msgid "Warning: type of symbol `%s' changed from %d to %d in %s" +msgid "Unrecognized reloc type 0x%x" msgstr "" -#: cofflink.c:2317 +#: coff-w65.c:364 #, c-format -msgid "%s: relocs in section `%s', but it has no contents" +msgid "ignoring reloc %s\n" msgstr "" -#: cofflink.c:2653 coffswap.h:889 +#: cpu-arm.c:196 cpu-arm.c:206 #, c-format -msgid "%s: %s: reloc overflow: 0x%lx > 0xffff" +msgid "ERROR: %s is compiled for the EP9312, whereas %s is compiled for XScale" msgstr "" -#: cofflink.c:2662 coffswap.h:876 +#: cpu-arm.c:344 #, c-format -msgid "%s: warning: %s: line number overflow: 0x%lx > 0xffff" +msgid "warning: unable to update contents of %s section in %s" msgstr "" -#: dwarf2.c:381 +#: dwarf2.c:380 msgid "Dwarf Error: Can't find .debug_str section." msgstr "" -#: dwarf2.c:398 +#: dwarf2.c:397 #, c-format msgid "" -"Dwarf Error: DW_FORM_strp offset (%u) greater than or equal to .debug_str " -"size (%u)." +"Dwarf Error: DW_FORM_strp offset (%lu) greater than or equal to .debug_str " +"size (%lu)." msgstr "" -#: dwarf2.c:542 +#: dwarf2.c:541 msgid "Dwarf Error: Can't find .debug_abbrev section." msgstr "" -#: dwarf2.c:559 +#: dwarf2.c:556 #, c-format msgid "" -"Dwarf Error: Abbrev offset (%u) greater than or equal to .debug_abbrev size " -"(%u)." +"Dwarf Error: Abbrev offset (%lu) greater than or equal to .debug_abbrev size " +"(%lu)." msgstr "" #: dwarf2.c:756 #, c-format -msgid "Dwarf Error: Invalid or unhandled FORM value: %d." +msgid "Dwarf Error: Invalid or unhandled FORM value: %u." msgstr "" -#: dwarf2.c:843 +#: dwarf2.c:933 msgid "Dwarf Error: mangled line number section (bad file number)." msgstr "" -#: dwarf2.c:929 +#: dwarf2.c:1032 msgid "Dwarf Error: Can't find .debug_line section." msgstr "" -#: dwarf2.c:952 +#: dwarf2.c:1049 #, c-format msgid "" -"Dwarf Error: Line offset (%u) greater than or equal to .debug_line size (%u)." +"Dwarf Error: Line offset (%lu) greater than or equal to .debug_line size (%" +"lu)." msgstr "" -#: dwarf2.c:1143 +#: dwarf2.c:1255 msgid "Dwarf Error: mangled line number section." msgstr "" -#: dwarf2.c:1318 dwarf2.c:1529 +#: dwarf2.c:1470 dwarf2.c:1620 #, c-format -msgid "Dwarf Error: Could not find abbrev number %d." +msgid "Dwarf Error: Could not find abbrev number %u." msgstr "" -#: dwarf2.c:1490 +#: dwarf2.c:1581 #, c-format msgid "" -"Dwarf Error: found dwarf version '%hu', this reader only handles version 2 " +"Dwarf Error: found dwarf version '%u', this reader only handles version 2 " "information." msgstr "" -#: dwarf2.c:1497 +#: dwarf2.c:1588 #, c-format msgid "" "Dwarf Error: found address size '%u', this reader can not handle sizes " "greater than '%u'." msgstr "" -#: dwarf2.c:1520 +#: dwarf2.c:1611 #, c-format -msgid "Dwarf Error: Bad abbrev number: %d." +msgid "Dwarf Error: Bad abbrev number: %u." msgstr "" -#: ecoff.c:1328 +#: ecoff.c:1339 #, c-format msgid "Unknown basic type %d" msgstr "" -#: ecoff.c:1597 +#: ecoff.c:1599 #, c-format msgid "" "\n" " End+1 symbol: %ld" msgstr "" -#: ecoff.c:1604 ecoff.c:1607 +#: ecoff.c:1606 ecoff.c:1609 #, c-format msgid "" "\n" " First symbol: %ld" msgstr "" -#: ecoff.c:1619 +#: ecoff.c:1621 #, c-format msgid "" "\n" " End+1 symbol: %-7ld Type: %s" msgstr "" -#: ecoff.c:1626 +#: ecoff.c:1628 #, c-format msgid "" "\n" " Local symbol: %ld" msgstr "" -#: ecoff.c:1634 +#: ecoff.c:1636 #, c-format msgid "" "\n" " struct; End+1 symbol: %ld" msgstr "" -#: ecoff.c:1639 +#: ecoff.c:1641 #, c-format msgid "" "\n" " union; End+1 symbol: %ld" msgstr "" -#: ecoff.c:1644 +#: ecoff.c:1646 #, c-format msgid "" "\n" " enum; End+1 symbol: %ld" msgstr "" -#: ecoff.c:1650 +#: ecoff.c:1652 #, c-format msgid "" "\n" " Type: %s" msgstr "" -#: elf-hppa.h:1366 elf-hppa.h:1399 elf32-ppc.c:3062 elf32-sh.c:4286 -#: elf64-sh64.c:1640 elf64-x86-64.c:1275 -#, c-format -msgid "" -"%s: warning: unresolvable relocation against symbol `%s' from %s section" -msgstr "" - -#: elf-m10200.c:463 elf-m10300.c:673 elf32-arm.h:2074 elf32-avr.c:835 -#: elf32-cris.c:1406 elf32-d10v.c:482 elf32-fr30.c:653 elf32-h8300.c:547 -#: elf32-i860.c:1048 elf32-m32r.c:1280 elf32-openrisc.c:455 elf32-v850.c:1691 -#: elf32-xstormy16.c:976 elf64-mmix.c:1302 -msgid "internal error: out of range error" -msgstr "" - -#: elf-m10200.c:467 elf-m10300.c:677 elf32-arm.h:2078 elf32-avr.c:839 -#: elf32-cris.c:1410 elf32-d10v.c:486 elf32-fr30.c:657 elf32-h8300.c:551 -#: elf32-i860.c:1052 elf32-m32r.c:1284 elf32-mips.c:7600 elf32-openrisc.c:459 -#: elf32-v850.c:1695 elf32-xstormy16.c:980 elf64-mips.c:4464 elf64-mmix.c:1306 -msgid "internal error: unsupported relocation error" -msgstr "" - -#: elf-m10200.c:471 elf-m10300.c:681 elf32-arm.h:2082 elf32-d10v.c:490 -#: elf32-h8300.c:555 elf32-m32r.c:1288 -msgid "internal error: dangerous error" -msgstr "" - -#: elf-m10200.c:475 elf-m10300.c:685 elf32-arm.h:2086 elf32-avr.c:847 -#: elf32-cris.c:1418 elf32-d10v.c:494 elf32-fr30.c:665 elf32-h8300.c:559 -#: elf32-i860.c:1060 elf32-m32r.c:1292 elf32-openrisc.c:467 elf32-v850.c:1715 -#: elf32-xstormy16.c:988 elf64-mmix.c:1314 -msgid "internal error: unknown error" -msgstr "" - -#: elf.c:343 -#, c-format -msgid "%s: invalid string offset %u >= %lu for section `%s'" -msgstr "" - -#: elf.c:448 -#, c-format -msgid "%s: invalid SHT_GROUP entry" -msgstr "" - -#: elf.c:529 -#, c-format -msgid "%s: no group info for section %s" -msgstr "" - -#: elf.c:840 -msgid "" -"\n" -"Program Header:\n" -msgstr "" - -#: elf.c:889 -msgid "" -"\n" -"Dynamic Section:\n" -msgstr "" - -#: elf.c:1018 -msgid "" -"\n" -"Version definitions:\n" -msgstr "" - -#: elf.c:1041 -msgid "" -"\n" -"Version References:\n" -msgstr "" - -#: elf.c:1046 -#, c-format -msgid " required from %s:\n" -msgstr "" - -#: elf.c:1682 +#: elf32-arm.h:1228 #, c-format -msgid "%s: invalid link %lu for reloc section %s (index %u)" +msgid "%s: Warning: Arm BLX instruction targets Arm function '%s'." msgstr "" -#: elf.c:3296 +#: elf32-arm.h:1424 #, c-format -msgid "%s: Not enough room for program headers (allocated %u, need %u)" +msgid "%s: Warning: Thumb BLX instruction targets thumb function '%s'." msgstr "" -#: elf.c:3400 +#: elf32-arm.h:1918 elf32-sh.c:4706 elf64-sh64.c:1613 #, c-format -msgid "%s: Not enough room for program headers, try linking with -N" +msgid "%s(%s+0x%lx): %s relocation against SEC_MERGE section" msgstr "" -#: elf.c:3525 +#: elf32-arm.h:2012 #, c-format msgid "" -"Error: First section in segment (%s) starts at 0x%x whereas the segment " -"starts at 0x%x" -msgstr "" - -#: elf.c:3811 -#, c-format -msgid "%s: warning: allocated section `%s' not in segment" -msgstr "" - -#: elf.c:4142 -#, c-format -msgid "%s: symbol `%s' required but not present" -msgstr "" - -#: elf.c:4395 -#, c-format -msgid "%s: warning: Empty loadable segment detected\n" -msgstr "" - -#: elf.c:5808 -#, c-format -msgid "%s: unsupported relocation type %s" +"%s: warning: unresolvable relocation %d against symbol `%s' from %s section" msgstr "" -#: elf32-arm.h:1224 -#, c-format -msgid "%s: Warning: Arm BLX instruction targets Arm function '%s'." +#: elf-m10200.c:442 elf-m10300.c:1695 elf32-arm.h:2088 elf32-avr.c:812 +#: elf32-cris.c:1390 elf32-d10v.c:482 elf32-fr30.c:634 elf32-frv.c:815 +#: elf32-h8300.c:509 elf32-i860.c:1028 elf32-ip2k.c:1586 elf32-iq2000.c:699 +#: elf32-m32r.c:1283 elf32-m68hc1x.c:1305 elf32-msp430.c:510 +#: elf32-openrisc.c:436 elf32-v850.c:1777 elf32-xstormy16.c:976 +#: elf64-mmix.c:1332 +msgid "internal error: out of range error" msgstr "" -#: elf32-arm.h:1420 -#, c-format -msgid "%s: Warning: Thumb BLX instruction targets thumb function '%s'." +#: elf-m10200.c:446 elf-m10300.c:1699 elf32-arm.h:2092 elf32-avr.c:816 +#: elf32-cris.c:1394 elf32-d10v.c:486 elf32-fr30.c:638 elf32-frv.c:819 +#: elf32-h8300.c:513 elf32-i860.c:1032 elf32-iq2000.c:703 elf32-m32r.c:1287 +#: elf32-m68hc1x.c:1309 elf32-msp430.c:514 elf32-openrisc.c:440 +#: elf32-v850.c:1781 elf32-xstormy16.c:980 elf64-mmix.c:1336 elfxx-mips.c:6452 +msgid "internal error: unsupported relocation error" msgstr "" -#: elf32-arm.h:1904 elf32-i386.c:1782 elf32-sh.c:4198 -#, c-format -msgid "%s(%s+0x%lx): %s relocation against SEC_MERGE section" +#: elf-m10200.c:450 elf-m10300.c:1703 elf32-arm.h:2096 elf32-d10v.c:490 +#: elf32-h8300.c:517 elf32-m32r.c:1291 elf32-m68hc1x.c:1313 +msgid "internal error: dangerous error" msgstr "" -#: elf32-arm.h:1998 -#, c-format -msgid "" -"%s: warning: unresolvable relocation %d against symbol `%s' from %s section" +#: elf-m10200.c:454 elf-m10300.c:1707 elf32-arm.h:2100 elf32-avr.c:824 +#: elf32-cris.c:1402 elf32-d10v.c:494 elf32-fr30.c:646 elf32-frv.c:827 +#: elf32-h8300.c:521 elf32-i860.c:1040 elf32-ip2k.c:1601 elf32-iq2000.c:711 +#: elf32-m32r.c:1295 elf32-m68hc1x.c:1317 elf32-msp430.c:522 +#: elf32-openrisc.c:448 elf32-v850.c:1801 elf32-xstormy16.c:988 +#: elf64-mmix.c:1344 +msgid "internal error: unknown error" msgstr "" -#: elf32-arm.h:2166 +#: elf32-arm.h:2202 #, c-format msgid "" "Warning: Clearing the interworking flag of %s because non-interworking code " "in %s has been linked with it" msgstr "" -#: elf32-arm.h:2261 +#: elf32-arm.h:2302 #, c-format msgid "" "ERROR: %s is compiled for EABI version %d, whereas %s is compiled for " "version %d" msgstr "" -#: elf32-arm.h:2275 +#: elf32-arm.h:2316 #, c-format msgid "ERROR: %s is compiled for APCS-%d, whereas target %s uses APCS-%d" msgstr "" -#: elf32-arm.h:2303 +#: elf32-arm.h:2344 +#, c-format +msgid "ERROR: %s uses VFP instructions, whereas %s does not" +msgstr "" + +#: elf32-arm.h:2349 #, c-format -msgid "ERROR: %s uses VFP instructions, whereas %s uses FPA instructions" +msgid "ERROR: %s uses FPA instructions, whereas %s does not" msgstr "" -#: elf32-arm.h:2308 +#: elf32-arm.h:2360 elf32-arm.h:2365 #, c-format -msgid "ERROR: %s uses FPA instructions, whereas %s uses VFP instructions" +msgid "ERROR: %s uses Maverick instructions, whereas %s does not" msgstr "" -#: elf32-arm.h:2328 +#: elf32-arm.h:2385 #, c-format msgid "ERROR: %s uses software FP, whereas %s uses hardware FP" msgstr "" -#: elf32-arm.h:2333 +#: elf32-arm.h:2390 #, c-format msgid "ERROR: %s uses hardware FP, whereas %s uses software FP" msgstr "" #. Ignore init flag - it may not be set, despite the flags field #. containing valid data. -#: elf32-arm.h:2386 elf32-cris.c:2991 elf32-m68k.c:410 elf32-mips.c:3255 +#: elf32-arm.h:2443 elf32-cris.c:2975 elf32-m68hc1x.c:1459 elf32-m68k.c:397 +#: elf32-vax.c:546 elfxx-mips.c:9240 #, c-format msgid "private flags = %lx:" msgstr "" -#: elf32-arm.h:2395 +#: elf32-arm.h:2452 msgid " [interworking enabled]" msgstr "" -#: elf32-arm.h:2403 +#: elf32-arm.h:2460 msgid " [VFP float format]" msgstr "" -#: elf32-arm.h:2405 +#: elf32-arm.h:2462 +msgid " [Maverick float format]" +msgstr "" + +#: elf32-arm.h:2464 msgid " [FPA float format]" msgstr "" -#: elf32-arm.h:2414 +#: elf32-arm.h:2473 msgid " [new ABI]" msgstr "" -#: elf32-arm.h:2417 +#: elf32-arm.h:2476 msgid " [old ABI]" msgstr "" -#: elf32-arm.h:2420 +#: elf32-arm.h:2479 msgid " [software FP]" msgstr "" -#: elf32-arm.h:2428 +#: elf32-arm.h:2488 msgid " [Version1 EABI]" msgstr "" -#: elf32-arm.h:2431 elf32-arm.h:2442 +#: elf32-arm.h:2491 elf32-arm.h:2502 msgid " [sorted symbol table]" msgstr "" -#: elf32-arm.h:2433 elf32-arm.h:2444 +#: elf32-arm.h:2493 elf32-arm.h:2504 msgid " [unsorted symbol table]" msgstr "" -#: elf32-arm.h:2439 +#: elf32-arm.h:2499 msgid " [Version2 EABI]" msgstr "" -#: elf32-arm.h:2447 +#: elf32-arm.h:2507 msgid " [dynamic symbols use segment index]" msgstr "" -#: elf32-arm.h:2450 +#: elf32-arm.h:2510 msgid " [mapping symbols precede others]" msgstr "" -#: elf32-arm.h:2457 +#: elf32-arm.h:2517 msgid " " msgstr "" -#: elf32-arm.h:2464 +#: elf32-arm.h:2524 msgid " [relocatable executable]" msgstr "" -#: elf32-arm.h:2467 +#: elf32-arm.h:2527 msgid " [has entry point]" msgstr "" -#: elf32-arm.h:2472 +#: elf32-arm.h:2532 msgid "" msgstr "" -#: elf32-avr.c:843 elf32-cris.c:1414 elf32-fr30.c:661 elf32-i860.c:1056 -#: elf32-openrisc.c:463 elf32-v850.c:1699 elf32-xstormy16.c:984 -#: elf64-mmix.c:1310 +#: elf32-avr.c:820 elf32-cris.c:1398 elf32-fr30.c:642 elf32-frv.c:823 +#: elf32-i860.c:1036 elf32-ip2k.c:1597 elf32-iq2000.c:707 elf32-msp430.c:518 +#: elf32-openrisc.c:444 elf32-v850.c:1785 elf32-xstormy16.c:984 +#: elf64-mmix.c:1340 msgid "internal error: dangerous relocation" msgstr "" -#: elf32-cris.c:949 +#: elf32-cris.c:931 #, c-format msgid "%s: unresolvable relocation %s against symbol `%s' from %s section" msgstr "" -#: elf32-cris.c:1012 +#: elf32-cris.c:993 #, c-format msgid "" "%s: No PLT nor GOT for relocation %s against symbol `%s' from %s section" msgstr "" -#: elf32-cris.c:1015 elf32-cris.c:1142 +#: elf32-cris.c:996 elf32-cris.c:1122 msgid "[whose name is lost]" msgstr "" -#: elf32-cris.c:1131 +#: elf32-cris.c:1111 #, c-format msgid "" "%s: relocation %s with non-zero addend %d against local symbol from %s " "section" msgstr "" -#: elf32-cris.c:1138 +#: elf32-cris.c:1118 #, c-format msgid "" "%s: relocation %s with non-zero addend %d against symbol `%s' from %s section" msgstr "" -#: elf32-cris.c:1156 +#: elf32-cris.c:1143 #, c-format msgid "" "%s: relocation %s is not allowed for global symbol: `%s' from %s section" msgstr "" -#: elf32-cris.c:1171 +#: elf32-cris.c:1158 #, c-format msgid "%s: relocation %s in section %s with no GOT created" msgstr "" -#: elf32-cris.c:1289 +#: elf32-cris.c:1277 #, c-format msgid "%s: Internal inconsistency; no relocation section %s" msgstr "" -#: elf32-cris.c:2523 +#: elf32-cris.c:2500 #, c-format msgid "" "%s, section %s:\n" " relocation %s should not be used in a shared object; recompile with -fPIC" msgstr "" -#: elf32-cris.c:2994 +#: elf32-cris.c:2978 msgid " [symbols have a _ prefix]" msgstr "" -#: elf32-cris.c:3033 +#: elf32-cris.c:3017 #, c-format msgid "%s: uses _-prefixed symbols, but writing file with non-prefixed symbols" msgstr "" -#: elf32-cris.c:3034 +#: elf32-cris.c:3018 #, c-format msgid "%s: uses non-prefixed symbols, but writing file with _-prefixed symbols" msgstr "" -#: elf32-gen.c:82 elf64-gen.c:82 +#: elf32-frv.c:1223 +#, c-format +msgid "" +"%s: compiled with %s and linked with modules that use non-pic relocations" +msgstr "" + +#: elf32-frv.c:1273 elf32-iq2000.c:895 +#, c-format +msgid "%s: compiled with %s and linked with modules compiled with %s" +msgstr "" + +#: elf32-frv.c:1285 +#, c-format +msgid "" +"%s: uses different unknown e_flags (0x%lx) fields than previous modules (0x%" +"lx)" +msgstr "" + +#: elf32-frv.c:1321 elf32-iq2000.c:933 +#, c-format +msgid "private flags = 0x%lx:" +msgstr "" + +#: elf32-gen.c:83 elf64-gen.c:82 #, c-format msgid "%s: Relocations in generic ELF (EM: %d)" msgstr "" -#: elf32-hppa.c:646 +#: elf32-hppa.c:672 elf32-m68hc1x.c:176 elf64-ppc.c:3118 #, c-format msgid "%s: cannot create stub entry %s" msgstr "" -#: elf32-hppa.c:937 elf32-hppa.c:3549 +#: elf32-hppa.c:957 elf32-hppa.c:3538 #, c-format msgid "%s(%s+0x%lx): cannot reach %s, recompile with -ffunction-sections" msgstr "" -#: elf32-hppa.c:1312 +#: elf32-hppa.c:1340 elf64-x86-64.c:672 elf64-x86-64.c:797 #, c-format msgid "" "%s: relocation %s can not be used when making a shared object; recompile " "with -fPIC" msgstr "" -#: elf32-hppa.c:1332 +#: elf32-hppa.c:1360 #, c-format msgid "" "%s: relocation %s should not be used when making a shared object; recompile " "with -fPIC" msgstr "" -#: elf32-hppa.c:1525 +#: elf32-hppa.c:1553 #, c-format msgid "Could not find relocation section for %s" msgstr "" -#: elf32-hppa.c:2871 +#: elf32-hppa.c:2828 #, c-format msgid "%s: duplicate export stub %s" msgstr "" -#: elf32-hppa.c:3433 +#: elf32-hppa.c:3416 #, c-format msgid "%s(%s+0x%lx): fixing %s" msgstr "" -#: elf32-hppa.c:4073 +#: elf32-hppa.c:4039 #, c-format msgid "%s(%s+0x%lx): cannot handle %s for %s" msgstr "" -#: elf32-hppa.c:4412 +#: elf32-hppa.c:4357 msgid ".got section not immediately after .plt section" msgstr "" -#: elf32-i386.c:298 +#: elf32-i386.c:326 #, c-format msgid "%s: invalid relocation type %d" msgstr "" -#: elf32-i386.c:718 elf32-s390.c:637 elf64-s390.c:595 +#: elf32-i386.c:841 elf32-s390.c:990 elf32-sparc.c:887 elf32-xtensa.c:637 +#: elf64-s390.c:943 elf64-x86-64.c:650 #, c-format msgid "%s: bad symbol index: %d" msgstr "" -#: elf32-i386.c:863 elf32-s390.c:791 elf64-ppc.c:2198 elf64-s390.c:759 +#: elf32-i386.c:949 elf32-s390.c:1168 elf32-sh.c:6426 elf32-sparc.c:1011 +#: elf64-s390.c:1129 +#, c-format +msgid "%s: `%s' accessed both as normal and thread local symbol" +msgstr "" + +#: elf32-i386.c:1064 elf32-s390.c:1279 elf64-ppc.c:3929 elf64-s390.c:1243 +#: elf64-x86-64.c:886 #, c-format msgid "%s: bad relocation section name `%s'" msgstr "" -#: elf32-i386.c:2073 elf32-s390.c:1956 elf64-ppc.c:4128 elf64-s390.c:1959 +#: elf32-i386.c:2908 elf32-m68k.c:1757 elf32-s390.c:3022 elf32-sparc.c:2879 +#: elf32-xtensa.c:2193 elf64-s390.c:3018 elf64-sparc.c:2664 +#: elf64-x86-64.c:2452 #, c-format msgid "%s(%s+0x%lx): unresolvable relocation against symbol `%s'" msgstr "" -#: elf32-i386.c:2111 elf32-s390.c:1994 elf64-s390.c:1997 +#: elf32-i386.c:2947 elf32-m68k.c:1796 elf32-s390.c:3072 elf64-s390.c:3068 +#: elf64-x86-64.c:2490 #, c-format msgid "%s(%s+0x%lx): reloc against `%s': error %d" msgstr "" -#: elf32-m32r.c:923 -msgid "SDA relocation when _SDA_BASE_ not defined" +#: elf32-ip2k.c:565 elf32-ip2k.c:571 elf32-ip2k.c:734 elf32-ip2k.c:740 +msgid "" +"ip2k relaxer: switch table without complete matching relocation information." msgstr "" -#: elf32-ia64.c:3537 elf32-m32r.c:1007 elf32-ppc.c:2930 elf64-ia64.c:3537 -#, c-format -msgid "%s: unknown relocation type %d" +#: elf32-ip2k.c:588 elf32-ip2k.c:767 +msgid "ip2k relaxer: switch table header corrupt." msgstr "" -#: elf32-m32r.c:1223 +#: elf32-ip2k.c:1395 #, c-format -msgid "%s: The target (%s) of an %s relocation is in the wrong section (%s)" +msgid "ip2k linker: missing page instruction at 0x%08lx (dest = 0x%08lx)." msgstr "" -#: elf32-m32r.c:2000 +#: elf32-ip2k.c:1409 #, c-format -msgid "%s: Instruction set mismatch with previous modules" +msgid "ip2k linker: redundant page instruction at 0x%08lx (dest = 0x%08lx)." msgstr "" -#: elf32-m32r.c:2023 +#. Only if it's not an unresolved symbol. +#: elf32-ip2k.c:1593 +msgid "unsupported relocation between data/insn address spaces" +msgstr "" + +#: elf32-iq2000.c:907 elf32-m68hc1x.c:1431 elf32-ppc.c:2175 elf64-sparc.c:3072 +#: elfxx-mips.c:9197 #, c-format -msgid "private flags = %lx" +msgid "%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)" msgstr "" -#: elf32-m32r.c:2028 -msgid ": m32r instructions" +#: elf32-m32r.c:930 +msgid "SDA relocation when _SDA_BASE_ not defined" msgstr "" -#: elf32-m32r.c:2029 -msgid ": m32rx instructions" +#: elf32-ia64.c:3817 elf32-m32r.c:1018 elf64-alpha.c:4279 elf64-alpha.c:4407 +#: elf64-ia64.c:3817 +#, c-format +msgid "%s: unknown relocation type %d" msgstr "" -#: elf32-m68k.c:413 -msgid " [cpu32]" +#: elf32-m32r.c:1226 +#, c-format +msgid "%s: The target (%s) of an %s relocation is in the wrong section (%s)" msgstr "" -#: elf32-mcore.c:353 elf32-mcore.c:479 +#: elf32-m32r.c:1952 #, c-format -msgid "%s: Relocation %s (%d) is not currently supported.\n" +msgid "%s: Instruction set mismatch with previous modules" msgstr "" -#: elf32-mcore.c:438 +#: elf32-m32r.c:1975 #, c-format -msgid "%s: Unknown relocation type %d\n" +msgid "private flags = %lx" msgstr "" -#: elf32-mips.c:2156 elf64-mips.c:1972 -msgid "32bits gp relative relocation occurs for an external symbol" +#: elf32-m32r.c:1980 +msgid ": m32r instructions" msgstr "" -#: elf32-mips.c:2305 -#, c-format -msgid "Linking mips16 objects into %s format is not supported" +#: elf32-m32r.c:1981 +msgid ": m32rx instructions" msgstr "" -#: elf32-mips.c:3129 +#: elf32-m68hc1x.c:1217 #, c-format -msgid "%s: linking PIC files with non-PIC files" +msgid "" +"Reference to the far symbol `%s' using a wrong relocation may result in " +"incorrect execution" msgstr "" -#: elf32-mips.c:3139 +#: elf32-m68hc1x.c:1240 #, c-format -msgid "%s: linking abicalls files with non-abicalls files" +msgid "" +"banked address [%lx:%04lx] (%lx) is not in the same bank as current banked " +"address [%lx:%04lx] (%lx)" msgstr "" -#: elf32-mips.c:3168 +#: elf32-m68hc1x.c:1259 #, c-format -msgid "%s: ISA mismatch (-mips%d) with previous modules (-mips%d)" +msgid "" +"reference to a banked address [%lx:%04lx] in the normal address space at %" +"04lx" msgstr "" -#: elf32-mips.c:3190 +#: elf32-m68hc1x.c:1396 #, c-format -msgid "%s: ISA mismatch (%d) with previous modules (%d)" +msgid "" +"%s: linking files compiled for 16-bit integers (-mshort) and others for 32-" +"bit integers" msgstr "" -#: elf32-mips.c:3213 +#: elf32-m68hc1x.c:1404 #, c-format -msgid "%s: ABI mismatch: linking %s module with previous %s modules" +msgid "" +"%s: linking files compiled for 32-bit double (-fshort-double) and others for " +"64-bit double" msgstr "" -#: elf32-mips.c:3227 elf32-ppc.c:1470 elf64-ppc.c:1556 elf64-sparc.c:3027 +#: elf32-m68hc1x.c:1414 #, c-format -msgid "%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)" +msgid "%s: linking files compiled for HCS12 with others compiled for HC12" msgstr "" -#: elf32-mips.c:3258 -msgid " [abi=O32]" +#: elf32-m68hc1x.c:1462 +msgid "[abi=32-bit int, " msgstr "" -#: elf32-mips.c:3260 -msgid " [abi=O64]" +#: elf32-m68hc1x.c:1464 +msgid "[abi=16-bit int, " msgstr "" -#: elf32-mips.c:3262 -msgid " [abi=EABI32]" +#: elf32-m68hc1x.c:1467 +msgid "64-bit double, " msgstr "" -#: elf32-mips.c:3264 -msgid " [abi=EABI64]" +#: elf32-m68hc1x.c:1469 +msgid "32-bit double, " msgstr "" -#: elf32-mips.c:3266 -msgid " [abi unknown]" +#: elf32-m68hc1x.c:1472 +msgid "cpu=HC11]" msgstr "" -#: elf32-mips.c:3268 -msgid " [abi=N32]" +#: elf32-m68hc1x.c:1474 +msgid "cpu=HCS12]" msgstr "" -#: elf32-mips.c:3270 -msgid " [abi=64]" +#: elf32-m68hc1x.c:1476 +msgid "cpu=HC12]" msgstr "" -#: elf32-mips.c:3272 -msgid " [no abi set]" +#: elf32-m68hc1x.c:1479 +msgid " [memory=bank-model]" msgstr "" -#: elf32-mips.c:3275 -msgid " [mips1]" +#: elf32-m68hc1x.c:1481 +msgid " [memory=flat]" msgstr "" -#: elf32-mips.c:3277 -msgid " [mips2]" +#: elf32-m68k.c:400 +msgid " [cpu32]" msgstr "" -#: elf32-mips.c:3279 -msgid " [mips3]" +#: elf32-m68k.c:403 +msgid " [m68000]" msgstr "" -#: elf32-mips.c:3281 -msgid " [mips4]" +#: elf32-mcore.c:353 elf32-mcore.c:456 +#, c-format +msgid "%s: Relocation %s (%d) is not currently supported.\n" msgstr "" -#: elf32-mips.c:3283 -msgid " [mips5]" +#: elf32-mcore.c:441 +#, c-format +msgid "%s: Unknown relocation type %d\n" msgstr "" -#: elf32-mips.c:3285 -msgid " [mips32]" +#: elf32-mips.c:1170 elf64-mips.c:1717 elfn32-mips.c:1664 +msgid "32bits gp relative relocation occurs for an external symbol" msgstr "" -#: elf32-mips.c:3287 -msgid " [mips64]" +#: elf32-mips.c:1314 elf64-mips.c:1830 elfn32-mips.c:1783 +#, c-format +msgid "Linking mips16 objects into %s format is not supported" msgstr "" -#: elf32-mips.c:3289 -msgid " [unknown ISA]" +#: elf32-ppc.c:2056 +#, c-format +msgid "generic linker can't handle %s" msgstr "" -#: elf32-mips.c:3292 -msgid " [32bitmode]" +#: elf32-ppc.c:2138 +#, c-format +msgid "" +"%s: compiled with -mrelocatable and linked with modules compiled normally" msgstr "" -#: elf32-mips.c:3294 -msgid " [not 32bitmode]" +#: elf32-ppc.c:2147 +#, c-format +msgid "" +"%s: compiled normally and linked with modules compiled with -mrelocatable" msgstr "" -#: elf32-mips.c:4967 -msgid "static procedure (no name)" +#: elf32-ppc.c:3413 +#, c-format +msgid "%s: relocation %s cannot be used when making a shared object" msgstr "" -#: elf32-mips.c:5585 elf64-mips.c:6694 +#. It does not make sense to have a procedure linkage +#. table entry for a local symbol. +#: elf32-ppc.c:3619 #, c-format -msgid "%s: illegal section name `%s'" +msgid "%s(%s+0x%lx): %s reloc against local symbol" msgstr "" -#: elf32-mips.c:6152 elf64-mips.c:3150 -msgid "not enough GOT space for local GOT entries" +#: elf32-ppc.c:4862 elf64-ppc.c:7789 +#, c-format +msgid "%s: unknown relocation type %d for symbol %s" +msgstr "" + +#: elf32-ppc.c:5113 +#, c-format +msgid "%s(%s+0x%lx): non-zero addend on %s reloc against `%s'" +msgstr "" + +#: elf32-ppc.c:5399 elf32-ppc.c:5425 elf32-ppc.c:5484 +#, c-format +msgid "" +"%s: the target (%s) of a %s relocation is in the wrong output section (%s)" +msgstr "" + +#: elf32-ppc.c:5539 +#, c-format +msgid "%s: relocation %s is not yet supported for symbol %s." +msgstr "" + +#: elf32-ppc.c:5594 elf64-ppc.c:8461 +#, c-format +msgid "%s(%s+0x%lx): unresolvable %s relocation against symbol `%s'" +msgstr "" + +#: elf32-ppc.c:5644 elf64-ppc.c:8507 +#, c-format +msgid "%s(%s+0x%lx): %s reloc against `%s': error %d" +msgstr "" + +#: elf32-ppc.c:5888 +#, c-format +msgid "corrupt or empty %s section in %s" +msgstr "" + +#: elf32-ppc.c:5895 +#, c-format +msgid "unable to read in %s section from %s" +msgstr "" + +#: elf32-ppc.c:5901 +#, c-format +msgid "corrupt %s section in %s" +msgstr "" + +#: elf32-ppc.c:5944 +#, c-format +msgid "warning: unable to set size of %s section in %s" +msgstr "" + +#: elf32-ppc.c:5994 +msgid "failed to allocate space for new APUinfo section." +msgstr "" + +#: elf32-ppc.c:6013 +msgid "failed to compute new APUinfo section." +msgstr "" + +#: elf32-ppc.c:6016 +msgid "failed to install new APUinfo section." +msgstr "" + +#: elf32-s390.c:2256 elf64-s390.c:2226 +#, c-format +msgid "%s(%s+0x%lx): invalid instruction for TLS relocation %s" +msgstr "" + +#: elf32-sh64.c:221 elf64-sh64.c:2407 +#, c-format +msgid "%s: compiled as 32-bit object and %s is 64-bit" +msgstr "" + +#: elf32-sh64.c:224 elf64-sh64.c:2410 +#, c-format +msgid "%s: compiled as 64-bit object and %s is 32-bit" +msgstr "" + +#: elf32-sh64.c:226 elf64-sh64.c:2412 +#, c-format +msgid "%s: object size does not match that of target %s" +msgstr "" + +#: elf32-sh64.c:461 elf64-sh64.c:2990 +#, c-format +msgid "%s: encountered datalabel symbol in input" +msgstr "" + +#: elf32-sh64.c:544 +msgid "PTB mismatch: a SHmedia address (bit 0 == 1)" +msgstr "" + +#: elf32-sh64.c:547 +msgid "PTA mismatch: a SHcompact address (bit 0 == 0)" +msgstr "" + +#: elf32-sh64.c:565 +#, c-format +msgid "%s: GAS error: unexpected PTB insn with R_SH_PT_16" +msgstr "" + +#: elf32-sh64.c:614 elf64-sh64.c:1748 +#, c-format +msgid "%s: error: unaligned relocation type %d at %08x reloc %08x\n" +msgstr "" + +#: elf32-sh64.c:698 +#, c-format +msgid "%s: could not write out added .cranges entries" +msgstr "" + +#: elf32-sh64.c:760 +#, c-format +msgid "%s: could not write out sorted .cranges entries" +msgstr "" + +#: elf32-sh.c:2103 +#, c-format +msgid "%s: 0x%lx: warning: bad R_SH_USES offset" +msgstr "" + +#: elf32-sh.c:2115 +#, c-format +msgid "%s: 0x%lx: warning: R_SH_USES points to unrecognized insn 0x%x" +msgstr "" + +#: elf32-sh.c:2132 +#, c-format +msgid "%s: 0x%lx: warning: bad R_SH_USES load offset" +msgstr "" + +#: elf32-sh.c:2147 +#, c-format +msgid "%s: 0x%lx: warning: could not find expected reloc" +msgstr "" + +#: elf32-sh.c:2175 +#, c-format +msgid "%s: 0x%lx: warning: symbol in unexpected section" +msgstr "" + +#: elf32-sh.c:2300 +#, c-format +msgid "%s: 0x%lx: warning: could not find expected COUNT reloc" +msgstr "" + +#: elf32-sh.c:2309 +#, c-format +msgid "%s: 0x%lx: warning: bad count" +msgstr "" + +#: elf32-sh.c:2712 elf32-sh.c:3088 +#, c-format +msgid "%s: 0x%lx: fatal: reloc overflow while relaxing" +msgstr "" + +#: elf32-sh.c:4654 elf64-sh64.c:1585 +msgid "Unexpected STO_SH5_ISA32 on local symbol is not handled" +msgstr "" + +#: elf32-sh.c:4809 +#, c-format +msgid "%s: unresolvable relocation against symbol `%s' from %s section" +msgstr "" + +#: elf32-sh.c:4881 +#, c-format +msgid "%s: 0x%lx: fatal: unaligned branch target for relax-support relocation" +msgstr "" + +#: elf32-sh.c:6627 elf64-alpha.c:4848 +#, c-format +msgid "%s: TLS local exec code cannot be linked into shared objects" +msgstr "" + +#: elf32-sparc.c:2521 elf64-sparc.c:2314 +#, c-format +msgid "%s: probably compiled without -fPIC?" +msgstr "" + +#: elf32-sparc.c:3348 +#, c-format +msgid "%s: compiled for a 64 bit system and target is 32 bit" +msgstr "" + +#: elf32-sparc.c:3362 +#, c-format +msgid "%s: linking little endian files with big endian files" +msgstr "" + +#: elf32-v850.c:753 +#, c-format +msgid "Variable `%s' cannot occupy in multiple small data regions" +msgstr "" + +#: elf32-v850.c:756 +#, c-format +msgid "" +"Variable `%s' can only be in one of the small, zero, and tiny data regions" +msgstr "" + +#: elf32-v850.c:759 +#, c-format +msgid "" +"Variable `%s' cannot be in both small and zero data regions simultaneously" +msgstr "" + +#: elf32-v850.c:762 +#, c-format +msgid "" +"Variable `%s' cannot be in both small and tiny data regions simultaneously" +msgstr "" + +#: elf32-v850.c:765 +#, c-format +msgid "" +"Variable `%s' cannot be in both zero and tiny data regions simultaneously" +msgstr "" + +#: elf32-v850.c:1144 +msgid "FAILED to find previous HI16 reloc\n" +msgstr "" + +#: elf32-v850.c:1789 +msgid "could not locate special linker symbol __gp" +msgstr "" + +#: elf32-v850.c:1793 +msgid "could not locate special linker symbol __ep" +msgstr "" + +#: elf32-v850.c:1797 +msgid "could not locate special linker symbol __ctbp" +msgstr "" + +#: elf32-v850.c:1963 +#, c-format +msgid "%s: Architecture mismatch with previous modules" +msgstr "" + +#: elf32-v850.c:1983 +#, c-format +msgid "private flags = %lx: " +msgstr "" + +#: elf32-v850.c:1988 +msgid "v850 architecture" +msgstr "" + +#: elf32-v850.c:1989 +msgid "v850e architecture" +msgstr "" + +#: elf32-vax.c:549 +msgid " [nonpic]" +msgstr "" + +#: elf32-vax.c:552 +msgid " [d-float]" +msgstr "" + +#: elf32-vax.c:555 +msgid " [g-float]" +msgstr "" + +#: elf32-vax.c:663 +#, c-format +msgid "" +"%s: warning: GOT addend of %ld to `%s' does not match previous GOT addend of " +"%ld" +msgstr "" + +#: elf32-vax.c:1667 +#, c-format +msgid "%s: warning: PLT addend of %d to `%s' from %s section ignored" +msgstr "" + +#: elf32-vax.c:1802 +#, c-format +msgid "%s: warning: %s relocation against symbol `%s' from %s section" +msgstr "" + +#: elf32-vax.c:1808 +#, c-format +msgid "%s: warning: %s relocation to 0x%x from %s section" +msgstr "" + +#: elf32-ia64.c:2326 elf32-xstormy16.c:462 elf64-ia64.c:2326 +msgid "non-zero addend in @fptr reloc" +msgstr "" + +#: elf64-alpha.c:1108 +msgid "GPDISP relocation did not find ldah and lda instructions" +msgstr "" + +#: elf64-alpha.c:3731 +#, c-format +msgid "%s: .got subsegment exceeds 64K (size %d)" +msgstr "" + +#: elf64-alpha.c:4602 elf64-alpha.c:4614 +#, c-format +msgid "%s: gp-relative relocation against dynamic symbol %s" +msgstr "" + +#: elf64-alpha.c:4640 elf64-alpha.c:4773 +#, c-format +msgid "%s: pc-relative relocation against dynamic symbol %s" +msgstr "" + +#: elf64-alpha.c:4668 +#, c-format +msgid "%s: change in gp: BRSGP %s" +msgstr "" + +#: elf64-alpha.c:4693 +msgid "" +msgstr "" + +#: elf64-alpha.c:4698 +#, c-format +msgid "%s: !samegp reloc against symbol without .prologue: %s" +msgstr "" + +#: elf64-alpha.c:4749 +#, c-format +msgid "%s: unhandled dynamic relocation against %s" +msgstr "" + +#: elf64-alpha.c:4832 +#, c-format +msgid "%s: dtp-relative relocation against dynamic symbol %s" +msgstr "" + +#: elf64-alpha.c:4855 +#, c-format +msgid "%s: tp-relative relocation against dynamic symbol %s" +msgstr "" + +#: elf64-hppa.c:2086 +#, c-format +msgid "stub entry for %s cannot load .plt, dp offset = %ld" +msgstr "" + +#: elf64-mmix.c:1032 +#, 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 "" + +#: elf64-mmix.c:1416 +#, c-format +msgid "" +"%s: base-plus-offset relocation against register symbol: (unknown) in %s" +msgstr "" + +#: elf64-mmix.c:1421 +#, c-format +msgid "%s: base-plus-offset relocation against register symbol: %s in %s" +msgstr "" + +#: elf64-mmix.c:1465 +#, c-format +msgid "%s: register relocation against non-register symbol: (unknown) in %s" +msgstr "" + +#: elf64-mmix.c:1470 +#, c-format +msgid "%s: register relocation against non-register symbol: %s in %s" +msgstr "" + +#: elf64-mmix.c:1507 +#, c-format +msgid "%s: directive LOCAL valid only with a register or absolute value" +msgstr "" + +#: elf64-mmix.c:1535 +#, c-format +msgid "" +"%s: LOCAL directive: Register $%ld is not a local register. First global " +"register is $%ld." +msgstr "" + +#: elf64-mmix.c:1994 +#, c-format +msgid "" +"%s: Error: multiple definition of `%s'; start of %s is set in a earlier " +"linked file\n" +msgstr "" + +#: elf64-mmix.c:2053 +msgid "Register section has contents\n" +msgstr "" + +#: elf64-mmix.c:2216 +#, c-format +msgid "" +"Internal inconsistency: remaining %u != max %u.\n" +" Please report this bug." +msgstr "" + +#: elf64-ppc.c:2388 libbfd.c:831 +#, c-format +msgid "%s: compiled for a big endian system and target is little endian" +msgstr "" + +#: elf64-ppc.c:2391 libbfd.c:833 +#, c-format +msgid "%s: compiled for a little endian system and target is big endian" +msgstr "" + +#: elf64-ppc.c:4857 +#, c-format +msgid "%s: unexpected reloc type %u in .opd section" +msgstr "" + +#: elf64-ppc.c:4877 +#, c-format +msgid "%s: .opd is not a regular array of opd entries" msgstr "" -#: elf32-mips.c:7263 elf64-mips.c:4203 +#: elf64-ppc.c:4897 #, c-format -msgid "%s: %s+0x%lx: jump to stub routine which is not jal" +msgid "%s: undefined sym `%s' in .opd section" msgstr "" -#: elf32-mips.c:8272 elf64-mips.c:5891 +#: elf64-ppc.c:6136 #, c-format -msgid "%s: Malformed reloc detected for section %s" +msgid "can't find branch stub `%s'" msgstr "" -#: elf32-mips.c:8350 elf64-mips.c:5969 +#: elf64-ppc.c:6175 elf64-ppc.c:6250 #, c-format -msgid "%s: CALL16 reloc at 0x%lx not against global symbol" +msgid "linkage table error against `%s'" msgstr "" -#: elf32-ppc.c:1436 elf64-ppc.c:1521 +#: elf64-ppc.c:6340 #, c-format -msgid "" -"%s: compiled with -mrelocatable and linked with modules compiled normally" +msgid "can't build branch stub `%s'" msgstr "" -#: elf32-ppc.c:1444 elf64-ppc.c:1529 -#, c-format -msgid "" -"%s: compiled normally and linked with modules compiled with -mrelocatable" +#: elf64-ppc.c:7047 +msgid ".glink and .plt too far apart" msgstr "" -#: elf32-ppc.c:1568 -#, c-format -msgid "%s: Unknown special linker type %d" +#: elf64-ppc.c:7135 +msgid "stubs don't match calculated size" msgstr "" -#: elf32-ppc.c:2218 elf32-ppc.c:2252 elf32-ppc.c:2287 +#: elf64-ppc.c:7147 #, c-format -msgid "%s: relocation %s cannot be used when making a shared object" +msgid "" +"linker stubs in %u groups\n" +" branch %lu\n" +" toc adjust %lu\n" +" long branch %lu\n" +" long toc adj %lu\n" +" plt call %lu" msgstr "" -#: elf32-ppc.c:3097 elf64-ppc.c:3720 +#: elf64-ppc.c:7723 #, c-format -msgid "%s: unknown relocation type %d for symbol %s" +msgid "" +"%s(%s+0x%lx): automatic multiple TOCs not supported using your crt files; " +"recompile with -mminimal-toc or upgrade gcc" msgstr "" -#: elf32-ppc.c:3452 elf32-ppc.c:3473 elf32-ppc.c:3523 +#: elf64-ppc.c:7731 #, c-format msgid "" -"%s: The target (%s) of a %s relocation is in the wrong output section (%s)" +"%s(%s+0x%lx): sibling call optimization to `%s' does not allow automatic " +"multiple TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, " +"or make `%s' extern" msgstr "" -#: elf32-ppc.c:3589 +#: elf64-ppc.c:8329 #, c-format -msgid "%s: Relocation %s is not yet supported for symbol %s." +msgid "%s: relocation %s is not supported for symbol %s." msgstr "" -#: elf32-sh.c:1971 +#: elf64-ppc.c:8408 #, c-format -msgid "%s: 0x%lx: warning: bad R_SH_USES offset" +msgid "%s: error: relocation %s not a multiple of %d" msgstr "" -#: elf32-sh.c:1983 +#: elf-hppa.h:1458 elf-hppa.h:1491 elf-m10300.c:1628 elf64-sh64.c:1704 #, c-format -msgid "%s: 0x%lx: warning: R_SH_USES points to unrecognized insn 0x%x" +msgid "" +"%s: warning: unresolvable relocation against symbol `%s' from %s section" msgstr "" -#: elf32-sh.c:2000 +#: elf64-sparc.c:1370 #, c-format -msgid "%s: 0x%lx: warning: bad R_SH_USES load offset" +msgid "%s: check_relocs: unhandled reloc type %d" msgstr "" -#: elf32-sh.c:2015 +#: elf64-sparc.c:1407 #, c-format -msgid "%s: 0x%lx: warning: could not find expected reloc" +msgid "%s: Only registers %%g[2367] can be declared using STT_REGISTER" msgstr "" -#: elf32-sh.c:2072 +#: elf64-sparc.c:1427 #, c-format -msgid "%s: 0x%lx: warning: symbol in unexpected section" +msgid "Register %%g%d used incompatibly: %s in %s, previously %s in %s" msgstr "" -#: elf32-sh.c:2193 +#: elf64-sparc.c:1450 #, c-format -msgid "%s: 0x%lx: warning: could not find expected COUNT reloc" +msgid "Symbol `%s' has differing types: REGISTER in %s, previously %s in %s" msgstr "" -#: elf32-sh.c:2202 +#: elf64-sparc.c:1496 #, c-format -msgid "%s: 0x%lx: warning: bad count" +msgid "Symbol `%s' has differing types: %s in %s, previously REGISTER in %s" msgstr "" -#: elf32-sh.c:2611 elf32-sh.c:3002 +#: elf64-sparc.c:3053 #, c-format -msgid "%s: 0x%lx: fatal: reloc overflow while relaxing" +msgid "%s: linking UltraSPARC specific with HAL specific code" msgstr "" -#: elf32-sh.c:4146 elf64-sh64.c:1557 -msgid "Unexpected STO_SH5_ISA32 on local symbol is not handled" +#: elf64-x86-64.c:739 +#, c-format +msgid "%s: %s' accessed both as normal and thread local symbol" msgstr "" -#: elf32-sh.c:4357 +#: elf.c:372 #, c-format -msgid "%s: 0x%lx: fatal: unaligned branch target for relax-support relocation" +msgid "%s: invalid string offset %u >= %lu for section `%s'" msgstr "" -#: elf32-sh64.c:211 elf64-sh64.c:2391 +#: elf.c:624 #, c-format -msgid "%s: compiled as 32-bit object and %s is 64-bit" +msgid "%s: invalid SHT_GROUP entry" msgstr "" -#: elf32-sh64.c:214 elf64-sh64.c:2394 +#: elf.c:695 #, c-format -msgid "%s: compiled as 64-bit object and %s is 32-bit" +msgid "%s: no group info for section %s" msgstr "" -#: elf32-sh64.c:216 elf64-sh64.c:2396 -#, c-format -msgid "%s: object size does not match that of target %s" +#: elf.c:1055 +msgid "" +"\n" +"Program Header:\n" msgstr "" -#: elf32-sh64.c:447 elf64-sh64.c:2973 -#, c-format -msgid "%s: encountered datalabel symbol in input" +#: elf.c:1106 +msgid "" +"\n" +"Dynamic Section:\n" msgstr "" -#: elf32-sh64.c:530 -msgid "PTB mismatch: a SHmedia address (bit 0 == 1)" +#: elf.c:1235 +msgid "" +"\n" +"Version definitions:\n" msgstr "" -#: elf32-sh64.c:533 -msgid "PTA mismatch: a SHcompact address (bit 0 == 0)" +#: elf.c:1258 +msgid "" +"\n" +"Version References:\n" msgstr "" -#: elf32-sh64.c:551 +#: elf.c:1263 #, c-format -msgid "%s: GAS error: unexpected PTB insn with R_SH_PT_16" +msgid " required from %s:\n" msgstr "" -#: elf32-sh64.c:600 elf64-sh64.c:1684 +#: elf.c:1944 #, c-format -msgid "%s: error: unaligned relocation type %d at %08x reloc %08x\n" +msgid "%s: invalid link %lu for reloc section %s (index %u)" msgstr "" -#: elf32-sh64.c:684 +#: elf.c:3686 #, c-format -msgid "%s: could not write out added .cranges entries" +msgid "%s: Not enough room for program headers (allocated %u, need %u)" msgstr "" -#: elf32-sh64.c:745 +#: elf.c:3791 #, c-format -msgid "%s: could not write out sorted .cranges entries" +msgid "%s: Not enough room for program headers, try linking with -N" msgstr "" -#: elf32-sparc.c:1554 elf64-sparc.c:2280 +#: elf.c:3922 #, c-format -msgid "%s: probably compiled without -fPIC?" +msgid "" +"Error: First section in segment (%s) starts at 0x%x whereas the segment " +"starts at 0x%x" msgstr "" -#: elf32-sparc.c:2007 +#: elf.c:4242 #, c-format -msgid "%s: compiled for a 64 bit system and target is 32 bit" +msgid "%s: warning: allocated section `%s' not in segment" msgstr "" -#: elf32-sparc.c:2021 +#: elf.c:4566 #, c-format -msgid "%s: linking little endian files with big endian files" +msgid "%s: symbol `%s' required but not present" msgstr "" -#: elf32-v850.c:682 +#: elf.c:4854 #, c-format -msgid "Variable `%s' cannot occupy in multiple small data regions" +msgid "%s: warning: Empty loadable segment detected, is this intentional ?\n" msgstr "" -#: elf32-v850.c:685 +#: elf.c:5485 #, c-format msgid "" -"Variable `%s' can only be in one of the small, zero, and tiny data regions" +"Unable to find equivalent output section for symbol '%s' from section '%s'" msgstr "" -#: elf32-v850.c:688 +#: elf.c:6298 #, c-format -msgid "" -"Variable `%s' cannot be in both small and zero data regions simultaneously" +msgid "%s: unsupported relocation type %s" msgstr "" -#: elf32-v850.c:691 +#: elfcode.h:1113 #, c-format -msgid "" -"Variable `%s' cannot be in both small and tiny data regions simultaneously" +msgid "%s: version count (%ld) does not match symbol count (%ld)" msgstr "" -#: elf32-v850.c:694 +#: elfcode.h:1342 #, c-format -msgid "" -"Variable `%s' cannot be in both zero and tiny data regions simultaneously" +msgid "%s(%s): relocation %d has invalid symbol index %ld" msgstr "" -#: elf32-v850.c:1072 -msgid "FAILED to find previous HI16 reloc\n" +#: elflink.c:1456 +#, c-format +msgid "%s: warning: unexpected redefinition of indirect versioned symbol `%s'" msgstr "" -#: elf32-v850.c:1703 -msgid "could not locate special linker symbol __gp" +#: elflink.c:1807 +#, c-format +msgid "%s: undefined versioned symbol name %s" msgstr "" -#: elf32-v850.c:1707 -msgid "could not locate special linker symbol __ep" +#: elflink.c:2142 +#, c-format +msgid "%s: relocation size mismatch in %s section %s" msgstr "" -#: elf32-v850.c:1711 -msgid "could not locate special linker symbol __ctbp" +#: elflink.c:2434 +#, c-format +msgid "warning: type and size of dynamic symbol `%s' are not defined" msgstr "" -#: elf32-v850.c:1877 +#: elflink.h:1022 #, c-format -msgid "%s: Architecture mismatch with previous modules" +msgid "%s: %s: invalid version %u (max %d)" msgstr "" -#: elf32-v850.c:1897 +#: elflink.h:1063 #, c-format -msgid "private flags = %lx: " +msgid "%s: %s: invalid needed version %d" msgstr "" -#: elf32-v850.c:1902 -msgid "v850 architecture" +#: elflink.h:1238 +#, c-format +msgid "Warning: alignment %u of symbol `%s' in %s is smaller than %u in %s" msgstr "" -#: elf32-v850.c:1903 -msgid "v850e architecture" +#: elflink.h:1252 +#, c-format +msgid "Warning: size of symbol `%s' changed from %lu in %s to %lu in %s" msgstr "" -#: elf32-v850.c:1904 -msgid "v850ea architecture" +#: elflink.h:2160 +#, c-format +msgid "%s: undefined version: %s" msgstr "" -#: elf32-ia64.c:2247 elf32-xstormy16.c:414 elf64-ia64.c:2247 -msgid "non-zero addend in @fptr reloc" +#: elflink.h:2226 +#, c-format +msgid "%s: .preinit_array section is not allowed in DSO" msgstr "" -#: elf64-alpha.c:858 -msgid "GPDISP relocation did not find ldah and lda instructions" +#: elflink.h:3078 +msgid "Not enough memory to sort relocations" msgstr "" -#: elf64-alpha.c:2934 +#: elflink.h:3958 elflink.h:4001 #, c-format -msgid "%s: .got subsegment exceeds 64K (size %d)" +msgid "%s: could not find output section %s" msgstr "" -#: elf64-alpha.c:3518 elf64-alpha.c:3530 +#: elflink.h:3964 #, c-format -msgid "%s: gp-relative relocation against dynamic symbol %s" +msgid "warning: %s section has zero size" msgstr "" -#: elf64-hppa.c:2070 +#: elflink.h:4483 #, c-format -msgid "stub entry for %s cannot load .plt, dp offset = %ld" +msgid "%s: %s symbol `%s' in %s is referenced by DSO" msgstr "" -#: elf64-mmix.c:1002 +#: elflink.h:4564 #, c-format -msgid "" -"%s: Internal inconsistency error for value for\n" -" linker-allocated global register: linked: 0x%lx%08lx != relaxed: 0x%lx%" -"08lx\n" +msgid "%s: could not find output section %s for input section %s" msgstr "" -#: elf64-mmix.c:1386 +#: elflink.h:4666 #, c-format -msgid "" -"%s: base-plus-offset relocation against register symbol: (unknown) in %s" +msgid "%s: %s symbol `%s' isn't defined" msgstr "" -#: elf64-mmix.c:1391 -#, c-format -msgid "%s: base-plus-offset relocation against register symbol: %s in %s" +#: elflink.h:5053 elflink.h:5095 +msgid "%T: discarded in section `%s' from %s\n" msgstr "" -#: elf64-mmix.c:1435 -#, c-format -msgid "%s: register relocation against non-register symbol: (unknown) in %s" +#: elfxx-mips.c:887 +msgid "static procedure (no name)" msgstr "" -#: elf64-mmix.c:1440 -#, c-format -msgid "%s: register relocation against non-register symbol: %s in %s" +#: elfxx-mips.c:1897 +msgid "not enough GOT space for local GOT entries" msgstr "" -#: elf64-mmix.c:1477 +#: elfxx-mips.c:3691 #, c-format -msgid "%s: directive LOCAL valid only with a register or absolute value" +msgid "%s: %s+0x%lx: jump to stub routine which is not jal" msgstr "" -#: elf64-mmix.c:1505 +#: elfxx-mips.c:5192 #, c-format -msgid "" -"%s: LOCAL directive: Register $%ld is not a local register. First global " -"register is $%ld." +msgid "%s: Malformed reloc detected for section %s" msgstr "" -#: elf64-mmix.c:1967 +#: elfxx-mips.c:5266 #, c-format -msgid "" -"%s: Error: multiple definition of `%s'; start of %s is set in a earlier " -"linked file\n" +msgid "%s: CALL16 reloc at 0x%lx not against global symbol" msgstr "" -#: elf64-mmix.c:2026 -msgid "Register section has contents\n" +#: elfxx-mips.c:8693 +#, c-format +msgid "%s: illegal section name `%s'" msgstr "" -#: elf64-ppc.c:1484 libbfd.c:1436 +#: elfxx-mips.c:9027 #, c-format -msgid "%s: compiled for a big endian system and target is little endian" +msgid "%s: endianness incompatible with that of the selected emulation" msgstr "" -#: elf64-ppc.c:1486 libbfd.c:1438 +#: elfxx-mips.c:9039 #, c-format -msgid "%s: compiled for a little endian system and target is big endian" +msgid "%s: ABI is incompatible with that of the selected emulation" msgstr "" -#: elf64-ppc.c:3354 +#: elfxx-mips.c:9106 #, c-format -msgid "linkage table error against `%s'" +msgid "%s: warning: linking PIC files with non-PIC files" msgstr "" -#: elf64-ppc.c:3436 -msgid "stub section size doesn't match calculated size" +#: elfxx-mips.c:9123 +#, c-format +msgid "%s: linking 32-bit code with 64-bit code" msgstr "" -#: elf64-ppc.c:4065 +#: elfxx-mips.c:9151 #, c-format -msgid "%s: Relocation %s is not supported for symbol %s." +msgid "%s: linking %s module with previous %s modules" msgstr "" -#: elf64-ppc.c:4109 +#: elfxx-mips.c:9174 #, c-format -msgid "%s: error: relocation %s not a multiple of 4" +msgid "%s: ABI mismatch: linking %s module with previous %s modules" msgstr "" -#: elf64-sparc.c:1277 -#, c-format -msgid "%s: check_relocs: unhandled reloc type %d" +#: elfxx-mips.c:9243 +msgid " [abi=O32]" msgstr "" -#: elf64-sparc.c:1314 -#, c-format -msgid "%s: Only registers %%g[2367] can be declared using STT_REGISTER" +#: elfxx-mips.c:9245 +msgid " [abi=O64]" msgstr "" -#: elf64-sparc.c:1334 -#, c-format -msgid "Register %%g%d used incompatibly: %s in %s, previously %s in %s" +#: elfxx-mips.c:9247 +msgid " [abi=EABI32]" msgstr "" -#: elf64-sparc.c:1357 -#, c-format -msgid "Symbol `%s' has differing types: REGISTER in %s, previously %s in %s" +#: elfxx-mips.c:9249 +msgid " [abi=EABI64]" msgstr "" -#: elf64-sparc.c:1404 -#, c-format -msgid "Symbol `%s' has differing types: %s in %s, previously REGISTER in %s" +#: elfxx-mips.c:9251 +msgid " [abi unknown]" msgstr "" -#: elf64-sparc.c:3008 -#, c-format -msgid "%s: linking UltraSPARC specific with HAL specific code" +#: elfxx-mips.c:9253 +msgid " [abi=N32]" msgstr "" -#: elfcode.h:1218 -#, c-format -msgid "%s: version count (%ld) does not match symbol count (%ld)" +#: elfxx-mips.c:9255 +msgid " [abi=64]" msgstr "" -#: elflink.c:434 -#, c-format -msgid "%s: Section %s is too large to add hole of %ld bytes" +#: elfxx-mips.c:9257 +msgid " [no abi set]" msgstr "" -#: elflink.h:1113 -#, c-format -msgid "%s: warning: unexpected redefinition of `%s'" +#: elfxx-mips.c:9260 +msgid " [mips1]" msgstr "" -#: elflink.h:1784 -#, c-format -msgid "%s: %s: invalid version %u (max %d)" +#: elfxx-mips.c:9262 +msgid " [mips2]" msgstr "" -#: elflink.h:1825 -#, c-format -msgid "%s: %s: invalid needed version %d" +#: elfxx-mips.c:9264 +msgid " [mips3]" msgstr "" -#: elflink.h:1945 -#, c-format -msgid "Warning: size of symbol `%s' changed from %lu to %lu in %s" +#: elfxx-mips.c:9266 +msgid " [mips4]" msgstr "" -#: elflink.h:4014 -#, c-format -msgid "warning: type and size of dynamic symbol `%s' are not defined" +#: elfxx-mips.c:9268 +msgid " [mips5]" msgstr "" -#: elflink.h:4320 -#, c-format -msgid "%s: undefined versioned symbol name %s" +#: elfxx-mips.c:9270 +msgid " [mips32]" msgstr "" -#: elflink.h:4544 elflink.h:4552 elflink.h:6203 elflink.h:7280 -msgid "Error: out of memory" +#: elfxx-mips.c:9272 +msgid " [mips64]" msgstr "" -#: elflink.h:4714 -msgid "Not enough memory to sort relocations" +#: elfxx-mips.c:9274 +msgid " [mips32r2]" msgstr "" -#: elflink.h:5980 -#, c-format -msgid "%s: could not find output section %s for input section %s" +#: elfxx-mips.c:9276 +msgid " [unknown ISA]" msgstr "" -#: elflink.h:6553 -msgid "warning: relocation against removed section; zeroing" +#: elfxx-mips.c:9279 +msgid " [mdmx]" msgstr "" -#: elflink.h:6583 -msgid "warning: relocation against removed section" +#: elfxx-mips.c:9282 +msgid " [mips16]" msgstr "" -#: elflink.h:6596 -#, c-format -msgid "local symbols in discarded section %s" +#: elfxx-mips.c:9285 +msgid " [32bitmode]" +msgstr "" + +#: elfxx-mips.c:9287 +msgid " [not 32bitmode]" msgstr "" -#: i386linux.c:455 m68klinux.c:459 sparclinux.c:456 +#: i386linux.c:457 m68klinux.c:461 sparclinux.c:458 #, c-format msgid "Output file requires shared library `%s'\n" msgstr "" -#: i386linux.c:463 m68klinux.c:467 sparclinux.c:464 +#: i386linux.c:465 m68klinux.c:469 sparclinux.c:466 #, c-format msgid "Output file requires shared library `%s.so.%s'\n" msgstr "" -#: i386linux.c:653 i386linux.c:703 m68klinux.c:660 m68klinux.c:708 -#: sparclinux.c:655 sparclinux.c:705 +#: i386linux.c:654 i386linux.c:704 m68klinux.c:661 m68klinux.c:709 +#: sparclinux.c:656 sparclinux.c:706 #, c-format msgid "Symbol %s not defined for fixups\n" msgstr "" -#: i386linux.c:727 m68klinux.c:732 sparclinux.c:729 +#: i386linux.c:728 m68klinux.c:733 sparclinux.c:730 msgid "Warning: fixup count mismatch\n" msgstr "" -#: ieee.c:235 +#: ieee.c:293 #, c-format msgid "%s: string too long (%d chars, max 65535)" msgstr "" -#: ieee.c:365 +#: ieee.c:428 #, c-format msgid "%s: unrecognized symbol `%s' flags 0x%x" msgstr "" -#: ieee.c:877 +#: ieee.c:938 #, c-format msgid "%s: unimplemented ATI record %u for symbol %u" msgstr "" -#: ieee.c:902 +#: ieee.c:963 #, c-format msgid "%s: unexpected ATN type %d in external part" msgstr "" -#: ieee.c:924 +#: ieee.c:985 #, c-format msgid "%s: unexpected type after ATN" msgstr "" -#: ihex.c:258 +#: ihex.c:264 #, c-format msgid "%s:%d: unexpected character `%s' in Intel Hex file\n" msgstr "" -#: ihex.c:368 +#: ihex.c:372 #, c-format msgid "%s:%u: bad checksum in Intel Hex file (expected %u, found %u)" msgstr "" -#: ihex.c:422 +#: ihex.c:426 #, c-format msgid "%s:%u: bad extended address record length in Intel Hex file" msgstr "" -#: ihex.c:439 +#: ihex.c:443 #, c-format msgid "%s:%u: bad extended start address length in Intel Hex file" msgstr "" -#: ihex.c:456 +#: ihex.c:460 #, c-format msgid "%s:%u: bad extended linear address record length in Intel Hex file" msgstr "" -#: ihex.c:473 +#: ihex.c:477 #, c-format msgid "%s:%u: bad extended linear start address length in Intel Hex file" msgstr "" -#: ihex.c:490 +#: ihex.c:494 #, c-format msgid "%s:%u: unrecognized ihex type %u in Intel Hex file\n" msgstr "" -#: ihex.c:610 +#: ihex.c:619 #, c-format msgid "%s: internal error in ihex_read_section" msgstr "" -#: ihex.c:645 +#: ihex.c:654 #, c-format msgid "%s: bad section length in ihex_read_section" msgstr "" -#: ihex.c:863 +#: ihex.c:872 #, c-format msgid "%s: address 0x%s out of range for Intel Hex file" msgstr "" -#: libbfd.c:492 -#, c-format -msgid "not mapping: data=%lx mapped=%d\n" -msgstr "" - -#: libbfd.c:495 -msgid "not mapping: env var not set\n" -msgstr "" - -#: libbfd.c:1467 +#: libbfd.c:861 #, c-format msgid "Deprecated %s called at %s line %d in %s\n" msgstr "" -#: libbfd.c:1470 +#: libbfd.c:864 #, c-format msgid "Deprecated %s called\n" msgstr "" -#: linker.c:1849 +#: linker.c:1829 #, c-format msgid "%s: indirect symbol `%s' to `%s' is a loop" msgstr "" -#: linker.c:2745 +#: linker.c:2697 #, c-format -msgid "Attempt to do relocateable link with %s input and %s output" +msgid "Attempt to do relocatable link with %s input and %s output" msgstr "" -#: merge.c:897 +#: merge.c:896 #, c-format msgid "%s: access beyond end of merged section (%ld + %ld)" msgstr "" -#: mmo.c:459 +#: mmo.c:503 #, c-format msgid "%s: No core to allocate section name %s\n" msgstr "" -#: mmo.c:535 +#: mmo.c:579 #, c-format msgid "%s: No core to allocate a symbol %d bytes long\n" msgstr "" -#: mmo.c:1188 +#: mmo.c:1287 #, c-format msgid "%s: invalid mmo file: initialization value for $255 is not `Main'\n" msgstr "" -#: mmo.c:1334 +#: mmo.c:1433 #, c-format msgid "" "%s: unsupported wide character sequence 0x%02X 0x%02X after symbol name " "starting with `%s'\n" msgstr "" -#: mmo.c:1569 +#: mmo.c:1674 #, c-format msgid "%s: invalid mmo file: unsupported lopcode `%d'\n" msgstr "" -#: mmo.c:1579 +#: mmo.c:1684 #, c-format msgid "%s: invalid mmo file: expected YZ = 1 got YZ = %d for lop_quote\n" msgstr "" -#: mmo.c:1615 +#: mmo.c:1720 #, c-format msgid "%s: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_loc\n" msgstr "" -#: mmo.c:1661 +#: mmo.c:1766 #, c-format msgid "" "%s: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_fixo\n" msgstr "" -#: mmo.c:1700 +#: mmo.c:1805 #, c-format msgid "%s: invalid mmo file: expected y = 0, got y = %d for lop_fixrx\n" msgstr "" -#: mmo.c:1709 +#: mmo.c:1814 #, c-format msgid "" "%s: invalid mmo file: expected z = 16 or z = 24, got z = %d for lop_fixrx\n" msgstr "" -#: mmo.c:1732 +#: mmo.c:1837 #, c-format msgid "" "%s: invalid mmo file: leading byte of operand word must be 0 or 1, got %d " "for lop_fixrx\n" msgstr "" -#: mmo.c:1755 +#: mmo.c:1860 #, c-format msgid "%s: cannot allocate file name for file number %d, %d bytes\n" msgstr "" -#: mmo.c:1775 +#: mmo.c:1880 #, c-format msgid "" "%s: invalid mmo file: file number %d `%s', was already entered as `%s'\n" msgstr "" -#: mmo.c:1788 +#: mmo.c:1893 #, c-format msgid "" "%s: invalid mmo file: file name for number %d was not specified before use\n" msgstr "" -#: mmo.c:1894 +#: mmo.c:1999 #, c-format msgid "" "%s: invalid mmo file: fields y and z of lop_stab non-zero, y: %d, z: %d\n" msgstr "" -#: mmo.c:1930 +#: mmo.c:2035 #, c-format msgid "%s: invalid mmo file: lop_end not last item in file\n" msgstr "" -#: mmo.c:1943 +#: mmo.c:2048 #, 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 "" -#: mmo.c:2608 +#: mmo.c:2698 #, c-format msgid "%s: invalid symbol table: duplicate symbol `%s'\n" msgstr "" -#: mmo.c:2896 +#: mmo.c:2949 #, c-format msgid "" "%s: Bad symbol definition: `Main' set to %s rather than the start address %" "s\n" msgstr "" -#: mmo.c:2930 +#: mmo.c:3039 #, 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 "" -#: mmo.c:2975 +#: mmo.c:3084 #, c-format msgid "%s: internal error, symbol table changed size from %d to %d words\n" msgstr "" -#: mmo.c:3030 +#: mmo.c:3139 #, c-format msgid "%s: internal error, internal register section %s had contents\n" msgstr "" -#: mmo.c:3082 +#: mmo.c:3191 #, c-format msgid "%s: no initialized registers; section length 0\n" msgstr "" -#: mmo.c:3088 +#: mmo.c:3197 #, c-format msgid "%s: too many initialized registers; section length %ld\n" msgstr "" -#: mmo.c:3093 +#: mmo.c:3202 #, c-format msgid "" "%s: invalid start address for initialized registers of length %ld: 0x%lx%" "08lx\n" msgstr "" -#: oasys.c:1036 +#: oasys.c:1052 #, c-format msgid "%s: can not represent section `%s' in oasys" msgstr "" -#: osf-core.c:132 +#: osf-core.c:137 #, c-format msgid "Unhandled OSF/1 core file section type %d\n" msgstr "" -#: pe-mips.c:658 +#. XXX code yet to be written. +#: peicode.h:787 #, c-format -msgid "%s: `ld -r' not supported with PE MIPS objects\n" +msgid "%s: Unhandled import type; %x" msgstr "" -#. 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 +#: peicode.h:792 #, c-format -msgid "%s: unimplemented %s\n" +msgid "%s: Unrecognised import type; %x" msgstr "" -#: pe-mips.c:820 +#: peicode.h:806 #, c-format -msgid "%s: jump too far away\n" +msgid "%s: Unrecognised import name type; %x" msgstr "" -#: pe-mips.c:847 +#: peicode.h:1164 #, c-format -msgid "%s: bad pair/reflo after refhi\n" +msgid "%s: Unrecognised machine type (0x%x) in Import Library Format archive" msgstr "" -#. XXX code yet to be written. -#: peicode.h:785 +#: peicode.h:1176 #, c-format -msgid "%s: Unhandled import type; %x" +msgid "" +"%s: Recognised but unhandled machine type (0x%x) in Import Library Format " +"archive" msgstr "" -#: peicode.h:790 +#: peicode.h:1193 #, c-format -msgid "%s: Unrecognised import type; %x" +msgid "%s: size field is zero in Import Library Format header" msgstr "" -#: peicode.h:804 +#: peicode.h:1224 #, c-format -msgid "%s: Unrecognised import name type; %x" +msgid "%s: string not null terminated in ILF object file." msgstr "" -#: peicode.h:1162 +#: pe-mips.c:659 #, c-format -msgid "%s: Unrecognised machine type (0x%x) in Import Library Format archive" +msgid "%s: `ld -r' not supported with PE MIPS objects\n" msgstr "" -#: peicode.h:1174 +#. 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:795 #, c-format -msgid "" -"%s: Recognised but unhandled machine type (0x%x) in Import Library Format " -"archive" +msgid "%s: unimplemented %s\n" msgstr "" -#: peicode.h:1191 +#: pe-mips.c:821 #, c-format -msgid "%s: size field is zero in Import Library Format header" +msgid "%s: jump too far away\n" msgstr "" -#: peicode.h:1219 +#: pe-mips.c:848 #, c-format -msgid "%s: string not null terminated in ILF object file." +msgid "%s: bad pair/reflo after refhi\n" msgstr "" #: ppcboot.c:416 @@ -1961,16 +2381,21 @@ msgstr "" msgid "Partition[%d] length = 0x%.8lx (%ld)\n" msgstr "" -#: som.c:5402 +#: som.c:5422 msgid "som_sizeof_headers unimplemented" msgstr "" -#: srec.c:301 +#: srec.c:302 #, c-format msgid "%s:%d: Unexpected character `%s' in S-record file\n" msgstr "" -#: syms.c:998 +#: stabs.c:319 +#, c-format +msgid "%s(%s+0x%lx): Stabs entry has invalid string index." +msgstr "" + +#: syms.c:1019 msgid "Unsupported .stab relocation" msgstr "" @@ -1994,28 +2419,28 @@ msgstr "" msgid "unknown gsd/egsd subtype %d" msgstr "" -#: vms-hdr.c:406 +#: vms-hdr.c:408 msgid "Object module NOT error-free !\n" msgstr "" -#: vms-misc.c:543 +#: vms-misc.c:541 #, c-format msgid "Stack overflow (%d) in _bfd_vms_push" msgstr "" -#: vms-misc.c:561 +#: vms-misc.c:559 msgid "Stack underflow in _bfd_vms_pop" msgstr "" -#: vms-misc.c:919 +#: vms-misc.c:918 msgid "_bfd_vms_output_counted called with zero bytes" msgstr "" -#: vms-misc.c:924 +#: vms-misc.c:923 msgid "_bfd_vms_output_counted called with too many bytes" msgstr "" -#: vms-misc.c:1055 +#: vms-misc.c:1054 #, c-format msgid "Symbol %s replaced by %s\n" msgstr "" @@ -2025,26 +2450,26 @@ msgstr "" msgid "failed to enter %s" msgstr "" -#: vms-tir.c:81 +#: vms-tir.c:102 msgid "No Mem !" msgstr "" -#: vms-tir.c:362 +#: vms-tir.c:383 #, c-format msgid "bad section index in %s" msgstr "" -#: vms-tir.c:375 +#: vms-tir.c:396 #, c-format msgid "unsupported STA cmd %s" msgstr "" -#: vms-tir.c:380 vms-tir.c:1240 +#: vms-tir.c:401 vms-tir.c:1261 #, c-format msgid "reserved STA cmd %d" msgstr "" -#: vms-tir.c:491 vms-tir.c:514 +#: vms-tir.c:512 vms-tir.c:535 #, c-format msgid "%s: no symbol \"%s\"" msgstr "" @@ -2053,39 +2478,39 @@ msgstr "" #. 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 +#: vms-tir.c:602 vms-tir.c:714 vms-tir.c:824 vms-tir.c:842 vms-tir.c:850 +#: vms-tir.c:859 vms-tir.c:1584 #, c-format msgid "%s: not supported" msgstr "" -#: vms-tir.c:586 vms-tir.c:1418 +#: vms-tir.c:607 vms-tir.c:1439 #, c-format msgid "%s: not implemented" msgstr "" -#: vms-tir.c:590 vms-tir.c:1422 +#: vms-tir.c:611 vms-tir.c:1443 #, c-format msgid "reserved STO cmd %d" msgstr "" -#: vms-tir.c:708 vms-tir.c:1568 +#: vms-tir.c:729 vms-tir.c:1589 #, c-format msgid "reserved OPR cmd %d" msgstr "" -#: vms-tir.c:776 vms-tir.c:1632 +#: vms-tir.c:797 vms-tir.c:1653 #, c-format msgid "reserved CTL cmd %d" msgstr "" #. stack byte from image #. arg: none. -#: vms-tir.c:1148 +#: vms-tir.c:1169 msgid "stack-from-image not implemented" msgstr "" -#: vms-tir.c:1166 +#: vms-tir.c:1187 msgid "stack-entry-mask not fully implemented" msgstr "" @@ -2096,341 +2521,345 @@ msgstr "" #. #. compare argument descriptor with symbol argument (ARG$V_PASSMECH) #. and stack TRUE (args match) or FALSE (args dont match) value. -#: vms-tir.c:1180 +#: vms-tir.c:1201 msgid "PASSMECH not fully implemented" msgstr "" -#: vms-tir.c:1199 +#: vms-tir.c:1220 msgid "stack-local-symbol not fully implemented" msgstr "" -#: vms-tir.c:1212 +#: vms-tir.c:1233 msgid "stack-literal not fully implemented" msgstr "" -#: vms-tir.c:1233 +#: vms-tir.c:1254 msgid "stack-local-symbol-entry-point-mask not fully implemented" msgstr "" -#: 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 +#: vms-tir.c:1531 vms-tir.c:1543 vms-tir.c:1555 vms-tir.c:1567 vms-tir.c:1632 +#: vms-tir.c:1640 vms-tir.c:1648 #, c-format msgid "%s: not fully implemented" msgstr "" -#: vms-tir.c:1684 +#: vms-tir.c:1705 #, c-format msgid "obj code %d not found" msgstr "" -#: vms-tir.c:2019 +#: vms-tir.c:2043 #, c-format msgid "SEC_RELOC with no relocs in section %s" msgstr "" -#: vms-tir.c:2307 +#: vms-tir.c:2331 #, c-format msgid "Unhandled relocation %s" msgstr "" -#: xcofflink.c:1241 +#: xcofflink.c:1244 #, c-format msgid "%s: `%s' has line numbers but no enclosing section" msgstr "" -#: xcofflink.c:1294 +#: xcofflink.c:1297 #, c-format msgid "%s: class %d symbol `%s' has no aux entries" msgstr "" -#: xcofflink.c:1317 +#: xcofflink.c:1320 #, c-format msgid "%s: symbol `%s' has unrecognized csect type %d" msgstr "" -#: xcofflink.c:1329 +#: xcofflink.c:1332 #, c-format msgid "%s: bad XTY_ER symbol `%s': class %d scnum %d scnlen %d" msgstr "" -#: xcofflink.c:1365 +#: xcofflink.c:1368 #, c-format msgid "%s: XMC_TC0 symbol `%s' is class %d scnlen %d" msgstr "" -#: xcofflink.c:1517 +#: xcofflink.c:1520 #, c-format msgid "%s: csect `%s' not in enclosing section" msgstr "" -#: xcofflink.c:1624 +#: xcofflink.c:1627 #, c-format msgid "%s: misplaced XTY_LD `%s'" msgstr "" -#: xcofflink.c:1948 +#: xcofflink.c:1958 #, c-format msgid "%s: reloc %s:%d not in csect" msgstr "" -#: xcofflink.c:2083 +#: xcofflink.c:2095 #, c-format msgid "%s: XCOFF shared object when not producing XCOFF output" msgstr "" -#: xcofflink.c:2104 +#: xcofflink.c:2116 #, c-format msgid "%s: dynamic object with no .loader section" msgstr "" -#: xcofflink.c:2749 +#: xcofflink.c:2761 #, c-format msgid "%s: no such symbol" msgstr "" -#: xcofflink.c:2890 +#: xcofflink.c:2894 msgid "error: undefined symbol __rtinit" msgstr "" -#: xcofflink.c:3458 +#: xcofflink.c:3455 #, c-format msgid "warning: attempt to export undefined symbol `%s'" msgstr "" -#: xcofflink.c:4452 +#: xcofflink.c:4448 #, c-format msgid "TOC overflow: 0x%lx > 0x10000; try -mminimal-toc when compiling" msgstr "" -#: xcofflink.c:5292 xcofflink.c:5754 xcofflink.c:5816 xcofflink.c:6117 +#: xcofflink.c:5288 xcofflink.c:5755 xcofflink.c:5817 xcofflink.c:6119 #, c-format msgid "%s: loader reloc in unrecognized section `%s'" msgstr "" -#: xcofflink.c:5314 xcofflink.c:6128 +#: xcofflink.c:5310 xcofflink.c:6130 #, c-format msgid "%s: `%s' in loader reloc but not loader sym" msgstr "" -#: xcofflink.c:5329 +#: xcofflink.c:5325 #, c-format msgid "%s: loader reloc in read-only section %s" msgstr "" -#: elf32-ia64.c:2189 elf64-ia64.c:2189 +#: elf32-ia64.c:2271 elf64-ia64.c:2271 msgid "@pltoff reloc against local symbol" msgstr "" -#: elf32-ia64.c:3413 elf64-ia64.c:3413 +#: elf32-ia64.c:3663 elf64-ia64.c:3663 #, c-format msgid "%s: short data segment overflowed (0x%lx >= 0x400000)" msgstr "" -#: elf32-ia64.c:3424 elf64-ia64.c:3424 +#: elf32-ia64.c:3674 elf64-ia64.c:3674 #, c-format msgid "%s: __gp does not cover short data segment" msgstr "" -#: elf32-ia64.c:3728 elf64-ia64.c:3728 +#: elf32-ia64.c:3986 elf64-ia64.c:3986 #, c-format msgid "%s: linking non-pic code in a shared library" msgstr "" -#: elf32-ia64.c:3761 elf64-ia64.c:3761 +#: elf32-ia64.c:4017 elf64-ia64.c:4017 #, c-format msgid "%s: @gprel relocation against dynamic symbol %s" msgstr "" -#: elf32-ia64.c:3900 elf64-ia64.c:3900 +#: elf32-ia64.c:4077 elf64-ia64.c:4077 #, c-format -msgid "%s: dynamic relocation against speculation fixup" +msgid "%s: linking non-pic code in a position independent executable" msgstr "" -#: elf32-ia64.c:3908 elf64-ia64.c:3908 +#: elf32-ia64.c:4214 elf64-ia64.c:4214 #, c-format -msgid "%s: speculation fixup against undefined weak symbol" +msgid "%s: @internal branch to dynamic symbol %s" msgstr "" -#: elf32-ia64.c:4092 elf64-ia64.c:4092 +#: elf32-ia64.c:4216 elf64-ia64.c:4216 +#, c-format +msgid "%s: speculation fixup to dynamic symbol %s" +msgstr "" + +#: elf32-ia64.c:4218 elf64-ia64.c:4218 +#, c-format +msgid "%s: @pcrel relocation against dynamic symbol %s" +msgstr "" + +#: elf32-ia64.c:4430 elf64-ia64.c:4430 msgid "unsupported reloc" msgstr "" -#: elf32-ia64.c:4372 elf64-ia64.c:4372 +#: elf32-ia64.c:4709 elf64-ia64.c:4709 #, c-format msgid "%s: linking trap-on-NULL-dereference with non-trapping files" msgstr "" -#: elf32-ia64.c:4381 elf64-ia64.c:4381 +#: elf32-ia64.c:4718 elf64-ia64.c:4718 #, c-format msgid "%s: linking big-endian files with little-endian files" msgstr "" -#: elf32-ia64.c:4390 elf64-ia64.c:4390 +#: elf32-ia64.c:4727 elf64-ia64.c:4727 #, c-format msgid "%s: linking 64-bit files with 32-bit files" msgstr "" -#: elf32-ia64.c:4399 elf64-ia64.c:4399 +#: elf32-ia64.c:4736 elf64-ia64.c:4736 #, c-format msgid "%s: linking constant-gp files with non-constant-gp files" msgstr "" -#: elf32-ia64.c:4409 elf64-ia64.c:4409 +#: elf32-ia64.c:4746 elf64-ia64.c:4746 #, c-format msgid "%s: linking auto-pic files with non-auto-pic files" msgstr "" -#: peigen.c:962 pepigen.c:962 +#: peigen.c:985 pepigen.c:985 #, c-format msgid "%s: line number overflow: 0x%lx > 0xffff" msgstr "" -#: peigen.c:979 pepigen.c:979 +#: peigen.c:1002 pepigen.c:1002 #, c-format msgid "%s: reloc overflow 1: 0x%lx > 0xffff" msgstr "" -#: peigen.c:993 pepigen.c:993 +#: peigen.c:1016 pepigen.c:1016 msgid "Export Directory [.edata (or where ever we found it)]" msgstr "" -#: peigen.c:994 pepigen.c:994 +#: peigen.c:1017 pepigen.c:1017 msgid "Import Directory [parts of .idata]" msgstr "" -#: peigen.c:995 pepigen.c:995 +#: peigen.c:1018 pepigen.c:1018 msgid "Resource Directory [.rsrc]" msgstr "" -#: peigen.c:996 pepigen.c:996 +#: peigen.c:1019 pepigen.c:1019 msgid "Exception Directory [.pdata]" msgstr "" -#: peigen.c:997 pepigen.c:997 +#: peigen.c:1020 pepigen.c:1020 msgid "Security Directory" msgstr "" -#: peigen.c:998 pepigen.c:998 +#: peigen.c:1021 pepigen.c:1021 msgid "Base Relocation Directory [.reloc]" msgstr "" -#: peigen.c:999 pepigen.c:999 +#: peigen.c:1022 pepigen.c:1022 msgid "Debug Directory" msgstr "" -#: peigen.c:1000 pepigen.c:1000 +#: peigen.c:1023 pepigen.c:1023 msgid "Description Directory" msgstr "" -#: peigen.c:1001 pepigen.c:1001 +#: peigen.c:1024 pepigen.c:1024 msgid "Special Directory" msgstr "" -#: peigen.c:1002 pepigen.c:1002 +#: peigen.c:1025 pepigen.c:1025 msgid "Thread Storage Directory [.tls]" msgstr "" -#: peigen.c:1003 pepigen.c:1003 +#: peigen.c:1026 pepigen.c:1026 msgid "Load Configuration Directory" msgstr "" -#: peigen.c:1004 pepigen.c:1004 +#: peigen.c:1027 pepigen.c:1027 msgid "Bound Import Directory" msgstr "" -#: peigen.c:1005 pepigen.c:1005 +#: peigen.c:1028 pepigen.c:1028 msgid "Import Address Table Directory" msgstr "" -#: peigen.c:1006 pepigen.c:1006 +#: peigen.c:1029 pepigen.c:1029 msgid "Delay Import Directory" msgstr "" -#: peigen.c:1007 peigen.c:1008 pepigen.c:1007 pepigen.c:1008 +#: peigen.c:1030 peigen.c:1031 pepigen.c:1030 pepigen.c:1031 msgid "Reserved" msgstr "" -#: peigen.c:1071 pepigen.c:1071 +#: peigen.c:1094 pepigen.c:1094 msgid "" "\n" "There is an import table, but the section containing it could not be found\n" msgstr "" -#: peigen.c:1076 pepigen.c:1076 +#: peigen.c:1099 pepigen.c:1099 #, c-format msgid "" "\n" "There is an import table in %s at 0x%lx\n" msgstr "" -#: peigen.c:1113 pepigen.c:1113 +#: peigen.c:1136 pepigen.c:1136 #, c-format msgid "" "\n" "Function descriptor located at the start address: %04lx\n" msgstr "" -#: peigen.c:1116 pepigen.c:1116 +#: peigen.c:1139 pepigen.c:1139 #, c-format msgid "\tcode-base %08lx toc (loadable/actual) %08lx/%08lx\n" msgstr "" -#: peigen.c:1122 pepigen.c:1122 +#: peigen.c:1145 pepigen.c:1145 msgid "" "\n" "No reldata section! Function descriptor not decoded.\n" msgstr "" -#: peigen.c:1127 pepigen.c:1127 +#: peigen.c:1150 pepigen.c:1150 #, c-format msgid "" "\n" "The Import Tables (interpreted %s section contents)\n" msgstr "" -#: peigen.c:1130 pepigen.c:1130 +#: peigen.c:1153 pepigen.c:1153 msgid "" " vma: Hint Time Forward DLL First\n" " Table Stamp Chain Name Thunk\n" msgstr "" -#: peigen.c:1180 pepigen.c:1180 +#: peigen.c:1204 pepigen.c:1204 #, c-format msgid "" "\n" "\tDLL Name: %s\n" msgstr "" -#: peigen.c:1184 peigen.c:1247 pepigen.c:1184 pepigen.c:1247 -msgid "\tvma: Hint/Ord Member-Name\n" +#: peigen.c:1215 pepigen.c:1215 +msgid "\tvma: Hint/Ord Member-Name Bound-To\n" msgstr "" -#: peigen.c:1246 pepigen.c:1246 -msgid "\tThe Import Address Table (difference found)\n" -msgstr "" - -#: peigen.c:1253 pepigen.c:1253 -msgid "\t>>> Ran out of IAT members!\n" -msgstr "" - -#: peigen.c:1271 pepigen.c:1271 -msgid "\tThe Import Address Table is identical\n" +#: peigen.c:1240 pepigen.c:1240 +msgid "" +"\n" +"There is a first thunk, but the section containing it could not be found\n" msgstr "" -#: peigen.c:1343 pepigen.c:1343 +#: peigen.c:1380 pepigen.c:1380 msgid "" "\n" "There is an export table, but the section containing it could not be found\n" msgstr "" -#: peigen.c:1348 pepigen.c:1348 +#: peigen.c:1385 pepigen.c:1385 #, c-format msgid "" "\n" "There is an export table in %s at 0x%lx\n" msgstr "" -#: peigen.c:1379 pepigen.c:1379 +#: peigen.c:1416 pepigen.c:1416 #, c-format msgid "" "\n" @@ -2438,129 +2867,129 @@ msgid "" "\n" msgstr "" -#: peigen.c:1383 pepigen.c:1383 +#: peigen.c:1420 pepigen.c:1420 #, c-format msgid "Export Flags \t\t\t%lx\n" msgstr "" -#: peigen.c:1386 pepigen.c:1386 +#: peigen.c:1423 pepigen.c:1423 #, c-format msgid "Time/Date stamp \t\t%lx\n" msgstr "" -#: peigen.c:1389 pepigen.c:1389 +#: peigen.c:1426 pepigen.c:1426 #, c-format msgid "Major/Minor \t\t\t%d/%d\n" msgstr "" -#: peigen.c:1392 pepigen.c:1392 +#: peigen.c:1429 pepigen.c:1429 msgid "Name \t\t\t\t" msgstr "" -#: peigen.c:1398 pepigen.c:1398 +#: peigen.c:1435 pepigen.c:1435 #, c-format msgid "Ordinal Base \t\t\t%ld\n" msgstr "" -#: peigen.c:1401 pepigen.c:1401 +#: peigen.c:1438 pepigen.c:1438 msgid "Number in:\n" msgstr "" -#: peigen.c:1404 pepigen.c:1404 +#: peigen.c:1441 pepigen.c:1441 #, c-format msgid "\tExport Address Table \t\t%08lx\n" msgstr "" -#: peigen.c:1408 pepigen.c:1408 +#: peigen.c:1445 pepigen.c:1445 #, c-format msgid "\t[Name Pointer/Ordinal] Table\t%08lx\n" msgstr "" -#: peigen.c:1411 pepigen.c:1411 +#: peigen.c:1448 pepigen.c:1448 msgid "Table Addresses\n" msgstr "" -#: peigen.c:1414 pepigen.c:1414 +#: peigen.c:1451 pepigen.c:1451 msgid "\tExport Address Table \t\t" msgstr "" -#: peigen.c:1419 pepigen.c:1419 +#: peigen.c:1456 pepigen.c:1456 msgid "\tName Pointer Table \t\t" msgstr "" -#: peigen.c:1424 pepigen.c:1424 +#: peigen.c:1461 pepigen.c:1461 msgid "\tOrdinal Table \t\t\t" msgstr "" -#: peigen.c:1439 pepigen.c:1439 +#: peigen.c:1476 pepigen.c:1476 #, c-format msgid "" "\n" "Export Address Table -- Ordinal Base %ld\n" msgstr "" -#: peigen.c:1458 pepigen.c:1458 +#: peigen.c:1495 pepigen.c:1495 msgid "Forwarder RVA" msgstr "" -#: peigen.c:1469 pepigen.c:1469 +#: peigen.c:1506 pepigen.c:1506 msgid "Export RVA" msgstr "" -#: peigen.c:1476 pepigen.c:1476 +#: peigen.c:1513 pepigen.c:1513 msgid "" "\n" "[Ordinal/Name Pointer] Table\n" msgstr "" -#: peigen.c:1531 pepigen.c:1531 +#: peigen.c:1568 pepigen.c:1568 #, c-format msgid "Warning, .pdata section size (%ld) is not a multiple of %d\n" msgstr "" -#: peigen.c:1535 pepigen.c:1535 +#: peigen.c:1572 pepigen.c:1572 msgid "" "\n" "The Function Table (interpreted .pdata section contents)\n" msgstr "" -#: peigen.c:1538 pepigen.c:1538 +#: peigen.c:1575 pepigen.c:1575 msgid " vma:\t\t\tBegin Address End Address Unwind Info\n" msgstr "" -#: peigen.c:1540 pepigen.c:1540 +#: peigen.c:1577 pepigen.c:1577 msgid "" " vma:\t\tBegin End EH EH PrologEnd Exception\n" " \t\tAddress Address Handler Data Address Mask\n" msgstr "" -#: peigen.c:1610 pepigen.c:1610 +#: peigen.c:1647 pepigen.c:1647 msgid " Register save millicode" msgstr "" -#: peigen.c:1613 pepigen.c:1613 +#: peigen.c:1650 pepigen.c:1650 msgid " Register restore millicode" msgstr "" -#: peigen.c:1616 pepigen.c:1616 +#: peigen.c:1653 pepigen.c:1653 msgid " Glue code sequence" msgstr "" -#: peigen.c:1668 pepigen.c:1668 +#: peigen.c:1705 pepigen.c:1705 msgid "" "\n" "\n" "PE File Base Relocations (interpreted .reloc section contents)\n" msgstr "" -#: peigen.c:1698 pepigen.c:1698 +#: peigen.c:1735 pepigen.c:1735 #, c-format msgid "" "\n" "Virtual Address: %08lx Chunk size %ld (0x%lx) Number of fixups %ld\n" msgstr "" -#: peigen.c:1711 pepigen.c:1711 +#: peigen.c:1748 pepigen.c:1748 #, c-format msgid "\treloc %4d offset %4x [%4lx] %s" msgstr "" @@ -2568,7 +2997,7 @@ msgstr "" #. The MS dumpbin program reportedly ands with 0xff0f before #. printing the characteristics field. Not sure why. No reason to #. emulate it here. -#: peigen.c:1751 pepigen.c:1751 +#: peigen.c:1788 pepigen.c:1788 #, c-format msgid "" "\n" diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/po/es.po binutils-2.14.90.0.5/bfd/po/es.po --- binutils-2.14.90.0.4.1/bfd/po/es.po 2002-07-29 08:19:16.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/po/es.po 2003-07-23 08:08:09.000000000 -0700 @@ -1,498 +1,521 @@ -# Mensajes en español para bfd 2.12.91. -# Copyright (C) 2002 Free Software Foundation, Inc. -# Cristian Othón Martínez Vera , 2002. +# Mensajes en español para bfd 2.14rel030712. +# Copyright (C) 2002, 2003 Free Software Foundation, Inc. +# Cristian Othón Martínez Vera , 2002, 2003. # msgid "" msgstr "" -"Project-Id-Version: bfd 2.12.91\n" -"POT-Creation-Date: 2002-07-23 15:55-0400\n" -"PO-Revision-Date: 2002-07-24 02:29-0500\n" +"Project-Id-Version: bfd 2.14rel030712\n" +"POT-Creation-Date: 2003-07-11 13:53+0930\n" +"PO-Revision-Date: 2003-07-13 21:49-0500\n" "Last-Translator: Cristian Othón Martínez Vera \n" "Language-Team: Spanish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" -#: aout-adobe.c:197 +#: aout-adobe.c:204 #, c-format msgid "%s: Unknown section type in a.out.adobe file: %x\n" msgstr "%s: Tipo de sección desconocido en el fichero a.out.adobe: %x\n" -#: aout-cris.c:208 +#: aout-cris.c:207 #, c-format msgid "%s: Invalid relocation type exported: %d" msgstr "%s: Tipo de reubicación exportado inválido: %d" -#: aout-cris.c:252 +#: aout-cris.c:251 #, c-format msgid "%s: Invalid relocation type imported: %d" msgstr "%s: Tipo de reubicación importado inválido: %d" -#: aout-cris.c:263 +#: aout-cris.c:262 #, c-format msgid "%s: Bad relocation record imported: %d" msgstr "%s: Registro de reubicación importado erróneo: %d" -#: aoutx.h:1282 aoutx.h:1699 +#: aoutx.h:1295 aoutx.h:1716 #, c-format msgid "%s: can not represent section `%s' in a.out object file format" msgstr "%s: no se puede representar la sección `%s' en el fichero objeto de formato a.out" -#: aoutx.h:1669 +#: aoutx.h:1682 #, c-format msgid "%s: can not represent section for symbol `%s' in a.out object file format" msgstr "%s: no se puede representar la sección para el símbolo `%s' en el fichero objeto de formato a.out" -#: aoutx.h:1671 +#: aoutx.h:1684 msgid "*unknown*" msgstr "*desconocido*" -#: aoutx.h:3732 +#: aoutx.h:3776 #, c-format -msgid "%s: relocateable link from %s to %s not supported" -msgstr "%s: enlace reubicable desde %s a %s sin soporte" +msgid "%s: relocatable link from %s to %s not supported" +msgstr "%s: el enlace reubicable de %s a %s no está soportado" -#: archive.c:1826 +#: archive.c:1751 msgid "Warning: writing archive was slow: rewriting timestamp\n" msgstr "Aviso: la escritura del fichero fue lenta: reescribiendo la marca de tiempo\n" # ¡Uff! Si utilizáramos file=archivo, esta traducción sería imposible. cfuga -#: archive.c:2093 +#: archive.c:2014 msgid "Reading archive file mod timestamp" msgstr "Leyendo el archivo de la modificación de marca de tiempo del fichero" -#. FIXME: bfd can't call perror. -#: archive.c:2120 +#: archive.c:2040 msgid "Writing updated armap timestamp" msgstr "Escribiendo la marca de tiempo actualizada de armap" -#: bfd.c:274 +#: bfd.c:280 msgid "No error" msgstr "No hay error" -#: bfd.c:275 +#: bfd.c:281 msgid "System call error" msgstr "Error en la llamada al sistema" -#: bfd.c:276 +#: bfd.c:282 msgid "Invalid bfd target" msgstr "Objetivo bfd inválido" -#: bfd.c:277 +#: bfd.c:283 msgid "File in wrong format" msgstr "Fichero en formato erróneo" -#: bfd.c:278 +#: bfd.c:284 msgid "Archive object file in wrong format" msgstr "Archivo de ficheros objeto en formato erróneo" -#: bfd.c:279 +#: bfd.c:285 msgid "Invalid operation" msgstr "Operación inválida" -#: bfd.c:280 +#: bfd.c:286 msgid "Memory exhausted" msgstr "Memoria agotada" -#: bfd.c:281 +#: bfd.c:287 msgid "No symbols" msgstr "No hay símbolos" -#: bfd.c:282 +#: bfd.c:288 msgid "Archive has no index; run ranlib to add one" msgstr "El archivo no tiene índice; ejecute ranlib para agregar uno" -#: bfd.c:283 +#: bfd.c:289 msgid "No more archived files" msgstr "No hay más ficheros archivados" -#: bfd.c:284 +#: bfd.c:290 msgid "Malformed archive" msgstr "Archivo malformado" -#: bfd.c:285 +#: bfd.c:291 msgid "File format not recognized" msgstr "No se reconoce el formato del fichero" -#: bfd.c:286 +#: bfd.c:292 msgid "File format is ambiguous" msgstr "El formato del fichero es ambiguo" -#: bfd.c:287 +#: bfd.c:293 msgid "Section has no contents" msgstr "La sección no tiene contenidos" -#: bfd.c:288 +#: bfd.c:294 msgid "Nonrepresentable section on output" msgstr "Sección no representable en la salida" -#: bfd.c:289 +#: bfd.c:295 msgid "Symbol needs debug section which does not exist" msgstr "Un símbolo requiere de una sección de depuración, la cual no existe" -#: bfd.c:290 +#: bfd.c:296 msgid "Bad value" msgstr "Valor erróneo" -#: bfd.c:291 +#: bfd.c:297 msgid "File truncated" msgstr "Fichero truncado" -#: bfd.c:292 +#: bfd.c:298 msgid "File too big" msgstr "Fichero demasiado grande" -#: bfd.c:293 +#: bfd.c:299 msgid "#" msgstr "#" -#: bfd.c:700 +#: bfd.c:687 #, c-format msgid "BFD %s assertion fail %s:%d" msgstr "falló la aseveración BFD %s %s:%d" -#: bfd.c:719 +#: bfd.c:703 #, c-format msgid "BFD %s internal error, aborting at %s line %d in %s\n" msgstr "error interno de BFD %s, abortando en %s línea %d en %s\n" -#: bfd.c:723 +#: bfd.c:707 #, c-format msgid "BFD %s internal error, aborting at %s line %d\n" msgstr "error interno de BFD %s, abortando en %s línea %d\n" -#: bfd.c:725 +#: bfd.c:709 msgid "Please report this bug.\n" msgstr "Por favor reporte este bicho.\n" +#: bfdwin.c:202 +#, c-format +msgid "not mapping: data=%lx mapped=%d\n" +msgstr "no se mapea: datos=%lx mapeados%d\n" + +#: bfdwin.c:205 +msgid "not mapping: env var not set\n" +msgstr "no se mapea: no se estableció la variable de ambiente\n" + #: binary.c:306 #, c-format msgid "Warning: Writing section `%s' to huge (ie negative) file offset 0x%lx." msgstr "Aviso: Escribiendo la sección `%s' a un desplazamiento de fichero grande (pe negativo) 0x%lx." -#: coff-a29k.c:119 +#: coff-a29k.c:120 msgid "Missing IHCONST" msgstr "IHCONST faltante" -#: coff-a29k.c:180 +#: coff-a29k.c:181 msgid "Missing IHIHALF" msgstr "IHIHALF faltante" -#: coff-a29k.c:212 coff-or32.c:229 +#: coff-a29k.c:213 coff-or32.c:236 msgid "Unrecognized reloc" msgstr "Reubicación no reconocida" -#: coff-a29k.c:408 +#: coff-a29k.c:409 msgid "missing IHCONST reloc" msgstr "reubicación IHCONST faltante" -#: coff-a29k.c:498 +#: coff-a29k.c:499 msgid "missing IHIHALF reloc" msgstr "reubicación IHIHALF faltante" -#: coff-alpha.c:881 coff-alpha.c:918 coff-alpha.c:1989 coff-mips.c:1432 +#: coff-alpha.c:884 coff-alpha.c:921 coff-alpha.c:1992 coff-mips.c:1397 msgid "GP relative relocation used when GP not defined" msgstr "se usó una reubicación GP relativa cuando GP no estaba definido" -#: coff-alpha.c:1485 +#: coff-alpha.c:1488 msgid "using multiple gp values" msgstr "usando valores múltiples de gp" -#: coff-arm.c:1066 elf32-arm.h:285 +#: coff-arm.c:1066 elf32-arm.h:294 #, c-format msgid "%s: unable to find THUMB glue '%s' for `%s'" msgstr "%s: no se puede encontrar el pegamento THUMB '%s' para `%s'" -#: coff-arm.c:1096 elf32-arm.h:320 +#: coff-arm.c:1096 elf32-arm.h:329 #, c-format msgid "%s: unable to find ARM glue '%s' for `%s'" msgstr "%s: no se puede encontrar el pegamento ARM '%s' para `%s'" -#: coff-arm.c:1391 coff-arm.c:1486 elf32-arm.h:887 elf32-arm.h:991 +#: coff-arm.c:1394 coff-arm.c:1489 elf32-arm.h:892 elf32-arm.h:999 #, c-format msgid "%s(%s): warning: interworking not enabled." msgstr "%s(%s): aviso: interoperabilidad no activada." -#: coff-arm.c:1395 elf32-arm.h:994 +#: coff-arm.c:1398 elf32-arm.h:1002 #, c-format msgid " first occurrence: %s: arm call to thumb" msgstr " primera ocurrencia: %s: llamada arm a thumb" -#: coff-arm.c:1490 elf32-arm.h:890 +#: coff-arm.c:1493 elf32-arm.h:895 #, c-format msgid " first occurrence: %s: thumb call to arm" msgstr " primera ocurrencia: %s: llamada thumb a arm" -#: coff-arm.c:1493 +#: coff-arm.c:1496 msgid " consider relinking with --support-old-code enabled" msgstr " considere el reenlace con --support-old-code activado" -#: coff-arm.c:1785 coff-tic80.c:686 cofflink.c:3031 +#: coff-arm.c:1788 coff-tic80.c:687 cofflink.c:3038 #, c-format msgid "%s: bad reloc address 0x%lx in section `%s'" msgstr "%s: dirección de reubicación 0x%lx errónea en la sección `%s'" -#: coff-arm.c:2127 +#: coff-arm.c:2132 #, c-format msgid "%s: illegal symbol index in reloc: %d" msgstr "%s: índice de símbolos ilegal en la reubicación: %d" -#: coff-arm.c:2255 +#: coff-arm.c:2265 #, c-format msgid "ERROR: %s is compiled for APCS-%d, whereas %s is compiled for APCS-%d" msgstr "ERROR: %s está compilado para APCS-%d, mientras que %s está compilado para APCS-%d" -#: coff-arm.c:2270 elf32-arm.h:2297 +#: coff-arm.c:2280 elf32-arm.h:2328 #, c-format msgid "ERROR: %s passes floats in float registers, whereas %s passes them in integer registers" msgstr "ERROR: %s pasa números de coma flotante en registros de coma flotante, mientras que %s los pasa en registros enteros" -#: coff-arm.c:2273 elf32-arm.h:2302 +#: coff-arm.c:2283 elf32-arm.h:2333 #, c-format msgid "ERROR: %s passes floats in integer registers, whereas %s passes them in float registers" msgstr "ERROR: %s pasa números de coma flotante en registros enteros, mientras que %s los pasa en registros de coma flotante" -#: coff-arm.c:2288 +#: coff-arm.c:2298 #, c-format msgid "ERROR: %s is compiled as position independent code, whereas target %s is absolute position" msgstr "ERROR: %s está compilado como código independiente de posición, mientras que el objetivo %s es de posición absoluta" -#: coff-arm.c:2291 +#: coff-arm.c:2301 #, c-format msgid "ERROR: %s is compiled as absolute position code, whereas target %s is position independent" msgstr "ERROR: %s está compilado como código de posición absoluta, mientras que el objetivo %s es independiente de posición" -#: coff-arm.c:2320 elf32-arm.h:2358 +#: coff-arm.c:2330 elf32-arm.h:2405 #, c-format msgid "Warning: %s supports interworking, whereas %s does not" msgstr "Aviso: el fichero de entrada %s soporta interoperabilidad, mientras que %s no" -#: coff-arm.c:2323 elf32-arm.h:2365 +#: coff-arm.c:2333 elf32-arm.h:2412 #, c-format msgid "Warning: %s does not support interworking, whereas %s does" msgstr "Aviso: el fichero de entrada %s no soporta interoperabilidad, mientras que %s sí" -#: coff-arm.c:2350 +#: coff-arm.c:2360 #, c-format msgid "private flags = %x:" msgstr "opciones privadas = %x:" -#: coff-arm.c:2358 elf32-arm.h:2418 +#: coff-arm.c:2368 elf32-arm.h:2467 msgid " [floats passed in float registers]" msgstr "[números de coma flotante pasados en registros de coma flotante]" -#: coff-arm.c:2360 +#: coff-arm.c:2370 msgid " [floats passed in integer registers]" msgstr "[números de coma flotante pasados en registros enteros]" -#: coff-arm.c:2363 elf32-arm.h:2421 +#: coff-arm.c:2373 elf32-arm.h:2470 msgid " [position independent]" msgstr "[independiente de posición]" -#: coff-arm.c:2365 +#: coff-arm.c:2375 msgid " [absolute position]" msgstr "[posición absoluta]" -#: coff-arm.c:2369 +#: coff-arm.c:2379 msgid " [interworking flag not initialised]" msgstr "[opción de interoperabilidad no iniciada]" -#: coff-arm.c:2371 +#: coff-arm.c:2381 msgid " [interworking supported]" msgstr "[soporte para interoperabilidad]" -#: coff-arm.c:2373 +#: coff-arm.c:2383 msgid " [interworking not supported]" msgstr "[sin soporte para interoperabilidad]" -#: coff-arm.c:2421 elf32-arm.h:2124 +#: coff-arm.c:2431 elf32-arm.h:2150 #, c-format msgid "Warning: Not setting interworking flag of %s since it has already been specified as non-interworking" msgstr "Aviso: No se establece la opción de interoperabilidad de %s ya que se había especificado con anterioridad como no interoperable" -#: coff-arm.c:2425 elf32-arm.h:2128 +#: coff-arm.c:2435 elf32-arm.h:2154 #, c-format msgid "Warning: Clearing the interworking flag of %s due to outside request" msgstr "Aviso: Limpiando la opción de interoperabilidad de %s debido a una petición externa" -#: coff-i960.c:136 coff-i960.c:485 +#: coff-h8300.c:1096 +#, c-format +msgid "cannot handle R_MEM_INDIRECT reloc when using %s output" +msgstr "no se puede manejar la reubicación R_MEM_INDIRECT cuando se utiliza la salida %s" + +#: coff-i960.c:137 coff-i960.c:486 msgid "uncertain calling convention for non-COFF symbol" msgstr "convención de llamada incierta para un símbolo que no es COFF" -#: coff-m68k.c:481 coff-mips.c:2429 elf32-m68k.c:2157 elf32-mips.c:1844 +#: coff-m68k.c:482 coff-mips.c:2394 elf32-m68k.c:2193 elf32-mips.c:1783 msgid "unsupported reloc type" msgstr "tipo de reubicación sin soporte" -#: coff-mips.c:874 elf32-mips.c:1062 elf64-mips.c:1609 +#: coff-mips.c:839 elf32-mips.c:1088 elf64-mips.c:1590 elfn32-mips.c:1554 msgid "GP relative relocation when _gp not defined" msgstr "reubicación GP relativa cuando _gp no está definido" #. No other sections should appear in -membedded-pic #. code. -#: coff-mips.c:2466 +#: coff-mips.c:2431 msgid "reloc against unsupported section" msgstr "reubicación contra una sección sin soporte" -#: coff-mips.c:2474 +#: coff-mips.c:2439 msgid "reloc not properly aligned" msgstr "reubicación no alineada adecuadamente" -#: coff-rs6000.c:2766 +#: coff-rs6000.c:2790 #, c-format msgid "%s: unsupported relocation type 0x%02x" msgstr "%s: tipo de reubicación 0x%02x sin soporte" -#: coff-rs6000.c:2859 +#: coff-rs6000.c:2883 #, c-format msgid "%s: TOC reloc at 0x%x to symbol `%s' with no TOC entry" msgstr "%s: reubicación de TOC en 0x%x al símbolo `%s' sin entrada TOC" -#: coff-rs6000.c:3590 coff64-rs6000.c:2091 +#: coff-rs6000.c:3616 coff64-rs6000.c:2109 #, c-format msgid "%s: symbol `%s' has unrecognized smclas %d" msgstr "%s: el símbolo `%s' tiene smclas %d no reconocido" -#: coff-tic54x.c:279 coff-tic80.c:449 +#: coff-tic4x.c:170 coff-tic54x.c:288 coff-tic80.c:450 #, c-format msgid "Unrecognized reloc type 0x%x" msgstr "Tipo de reubicación 0x%x no reconocida" -#: coff-tic54x.c:390 coffcode.h:4974 +#: coff-tic4x.c:218 coff-tic54x.c:373 coffcode.h:5045 #, c-format msgid "%s: warning: illegal symbol index %ld in relocs" msgstr "%s: aviso: íncide de símbolos %ld ilegal en reubicaciones" -#: coff-w65.c:363 +#: coff-w65.c:364 #, c-format msgid "ignoring reloc %s\n" msgstr "ignorando la reubicación %s\n" -#: coffcode.h:1086 +#: coffcode.h:1108 #, c-format msgid "%s (%s): Section flag %s (0x%x) ignored" msgstr "%s (%s): Se ignora la opción de sección %s (0x%x)" -#: coffcode.h:2143 +#: coffcode.h:2214 #, c-format msgid "Unrecognized TI COFF target id '0x%x'" msgstr "Id de objetivo TI COFF '0x%x' no reconocido" -#: coffcode.h:4365 +#: coffcode.h:4437 #, c-format msgid "%s: warning: illegal symbol index %ld in line numbers" msgstr "%s: aviso: índice de símbolos %ld ilegal en los números de línea" -#: coffcode.h:4379 +#: coffcode.h:4451 #, c-format msgid "%s: warning: duplicate line number information for `%s'" msgstr "%s: aviso: información duplicada de números de línea para `%s'" -#: coffcode.h:4736 +#: coffcode.h:4805 #, c-format msgid "%s: Unrecognized storage class %d for %s symbol `%s'" msgstr "%s: Clase de almacenamiento %d no reconocida para %s símbolo `%s'" -#: coffcode.h:4867 +#: coffcode.h:4938 #, c-format msgid "warning: %s: local symbol `%s' has no section" msgstr "aviso: %s: el símbolo local `%s' no tiene sección" -#: coffcode.h:5012 +#: coffcode.h:5083 #, c-format msgid "%s: illegal relocation type %d at address 0x%lx" msgstr "%s: tipo de reubicación %d ilegal en la dirección 0x%lx" -#: coffgen.c:1661 +#: coffgen.c:1666 #, c-format msgid "%s: bad string table size %lu" msgstr "%s: tamaño de tabla de cadenas %lu erróneo" -#: cofflink.c:534 elflink.h:1912 +#: cofflink.c:538 elflink.h:1276 #, c-format msgid "Warning: type of symbol `%s' changed from %d to %d in %s" msgstr "Aviso: el tipo del símbolo `%s' cambió de %d a %d en %s" -#: cofflink.c:2321 +#: cofflink.c:2328 #, c-format msgid "%s: relocs in section `%s', but it has no contents" msgstr "%s: reubicaciones en la sección `%s', pero no tiene contenidos" -#: cofflink.c:2664 coffswap.h:877 +#: cofflink.c:2671 coffswap.h:890 #, c-format msgid "%s: %s: reloc overflow: 0x%lx > 0xffff" msgstr "%s: %s: desbordamiento de reubicación: 0x%lx > 0xffff" -#: cofflink.c:2673 coffswap.h:864 +#: cofflink.c:2680 coffswap.h:876 #, c-format msgid "%s: warning: %s: line number overflow: 0x%lx > 0xffff" msgstr "%s: aviso: %s: desbordamiento de número de línea: 0x%lx > 0xffff" -#: dwarf2.c:382 +#: cpu-arm.c:196 cpu-arm.c:206 +#, c-format +msgid "ERROR: %s is compiled for the EP9312, whereas %s is compiled for XScale" +msgstr "ERROR: %s está compilado para el EP9312, mientras que %s está compilado para Xscale" + +#: cpu-arm.c:344 +#, c-format +msgid "warning: unable to update contents of %s section in %s" +msgstr "aviso: no se puede actualizar el contenido de la sección %s en %s" + +#: dwarf2.c:380 msgid "Dwarf Error: Can't find .debug_str section." msgstr "Error de Dwarf: No se puede encontrar la sección .debug_str." -#: dwarf2.c:399 +#: dwarf2.c:397 #, c-format msgid "Dwarf Error: DW_FORM_strp offset (%lu) greater than or equal to .debug_str size (%lu)." msgstr "Error de Dwarf: El desplazamiento DW_FROM_strp (%lu) es más grande o igual que el tamaño de .debug_str (%lu)." -#: dwarf2.c:543 +#: dwarf2.c:541 msgid "Dwarf Error: Can't find .debug_abbrev section." msgstr "Error de Dwarf: No se puede encontrar la sección .debug_abbrev." -#: dwarf2.c:560 +#: dwarf2.c:556 #, c-format msgid "Dwarf Error: Abbrev offset (%lu) greater than or equal to .debug_abbrev size (%lu)." msgstr "Error de Dwarf: El desplazamiento de abreviatura (%lu) es más grande o igual que el tamaño de .debug_abbrev (%lu)." -#: dwarf2.c:757 +#: dwarf2.c:756 #, c-format msgid "Dwarf Error: Invalid or unhandled FORM value: %u." msgstr "Error de Dwarf: Valor de FORM inválido o no manejado: %u." -#: dwarf2.c:852 +#: dwarf2.c:933 msgid "Dwarf Error: mangled line number section (bad file number)." msgstr "Error de Dwarf: sección de números de línea revuelta (número erróneo de fichero)." -#: dwarf2.c:938 +#: dwarf2.c:1032 msgid "Dwarf Error: Can't find .debug_line section." msgstr "Error de Dwarf: No se puede encontrar lan sección .debug_line." -#: dwarf2.c:961 +#: dwarf2.c:1049 #, c-format msgid "Dwarf Error: Line offset (%lu) greater than or equal to .debug_line size (%lu)." msgstr "Error de Dwarf: El desplazamiento de línea (%lu) es más grande o igual que el tamaño de .debug_line (%lu)." -#: dwarf2.c:1159 +#: dwarf2.c:1255 msgid "Dwarf Error: mangled line number section." msgstr "Error de Dwarf: sección de números de línea revuelta." -#: dwarf2.c:1355 dwarf2.c:1566 +#: dwarf2.c:1470 dwarf2.c:1620 #, c-format msgid "Dwarf Error: Could not find abbrev number %u." msgstr "Error de Dwarf: No se puede encontrar el número de abreviatura %u." -#: dwarf2.c:1527 +#: dwarf2.c:1581 #, c-format msgid "Dwarf Error: found dwarf version '%u', this reader only handles version 2 information." msgstr "Error de Dwarf: se encontró la versión de dwarf '%u', este lector solamente maneja información de la versión 2." -#: dwarf2.c:1534 +#: dwarf2.c:1588 #, c-format msgid "Dwarf Error: found address size '%u', this reader can not handle sizes greater than '%u'." msgstr "Error de Dwarf: se encontró el tamaño de dirección '%u', este lector no puede manejar tamaños más grandes que '%u'." -#: dwarf2.c:1557 +#: dwarf2.c:1611 #, c-format msgid "Dwarf Error: Bad abbrev number: %u." msgstr "Error de Dwarf: Número de abreviación erróneo: %u." -#: ecoff.c:1318 +#: ecoff.c:1339 #, c-format msgid "Unknown basic type %d" msgstr "Tipo básico %d desconocido" -#: ecoff.c:1578 +#: ecoff.c:1599 #, c-format msgid "" "\n" @@ -501,7 +524,7 @@ msgstr "" "\n" " Símbolo final+1: %ld" -#: ecoff.c:1585 ecoff.c:1588 +#: ecoff.c:1606 ecoff.c:1609 #, c-format msgid "" "\n" @@ -510,7 +533,7 @@ msgstr "" "\n" " Primer símbolo: %ld" -#: ecoff.c:1600 +#: ecoff.c:1621 #, c-format msgid "" "\n" @@ -519,7 +542,7 @@ msgstr "" "\n" " Símbolo final+1: %-7ld Tipo: %s" -#: ecoff.c:1607 +#: ecoff.c:1628 #, c-format msgid "" "\n" @@ -528,7 +551,7 @@ msgstr "" "\n" " Símbolo local: %ld" -#: ecoff.c:1615 +#: ecoff.c:1636 #, c-format msgid "" "\n" @@ -537,7 +560,7 @@ msgstr "" "\n" " struct; símbolo final+1: %ld" -#: ecoff.c:1620 +#: ecoff.c:1641 #, c-format msgid "" "\n" @@ -546,7 +569,7 @@ msgstr "" "\n" " union; símbolo final+1: %ld" -#: ecoff.c:1625 +#: ecoff.c:1646 #, c-format msgid "" "\n" @@ -555,7 +578,7 @@ msgstr "" "\n" " enum; símbolo final+1: %ld" -#: ecoff.c:1631 +#: ecoff.c:1652 #, c-format msgid "" "\n" @@ -564,54 +587,58 @@ msgstr "" "\n" " Tipo: %s" -#: elf-hppa.h:1476 elf-hppa.h:1509 elf32-ppc.c:3091 elf32-sh.c:4213 -#: elf64-sh64.c:1659 +#: elf-hppa.h:1458 elf-hppa.h:1491 elf-m10300.c:1628 elf64-sh64.c:1704 #, c-format msgid "%s: warning: unresolvable relocation against symbol `%s' from %s section" msgstr "%s: aviso: reubicación sin resolución contra el símbolo `%s' de la sección %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 +#: elf-m10200.c:442 elf-m10300.c:1695 elf32-arm.h:2088 elf32-avr.c:812 +#: elf32-cris.c:1390 elf32-d10v.c:570 elf32-fr30.c:634 elf32-frv.c:815 +#: elf32-h8300.c:528 elf32-i860.c:1028 elf32-ip2k.c:1586 elf32-iq2000.c:699 +#: elf32-m32r.c:1283 elf32-m68hc1x.c:1305 elf32-msp430.c:510 +#: elf32-openrisc.c:436 elf32-v850.c:1777 elf32-xstormy16.c:976 +#: elf64-mmix.c:1332 msgid "internal error: out of range error" msgstr "error interno: error fuera de rango" -#: 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 +#: elf-m10200.c:446 elf-m10300.c:1699 elf32-arm.h:2092 elf32-avr.c:816 +#: elf32-cris.c:1394 elf32-d10v.c:574 elf32-fr30.c:638 elf32-frv.c:819 +#: elf32-h8300.c:532 elf32-i860.c:1032 elf32-iq2000.c:703 elf32-m32r.c:1287 +#: elf32-m68hc1x.c:1309 elf32-msp430.c:514 elf32-openrisc.c:440 +#: elf32-v850.c:1781 elf32-xstormy16.c:980 elf64-mmix.c:1336 elfxx-mips.c:6452 msgid "internal error: unsupported relocation error" msgstr "error interno: error de reubicación sin soporte" -#: elf-m10200.c:454 elf-m10300.c:664 elf32-arm.h:2092 elf32-d10v.c:489 -#: elf32-h8300.c:556 elf32-m32r.c:1286 +#: elf-m10200.c:450 elf-m10300.c:1703 elf32-arm.h:2096 elf32-d10v.c:578 +#: elf32-h8300.c:536 elf32-m32r.c:1291 elf32-m68hc1x.c:1313 msgid "internal error: dangerous error" msgstr "error interno: error peligroso" -#: 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 +#: elf-m10200.c:454 elf-m10300.c:1707 elf32-arm.h:2100 elf32-avr.c:824 +#: elf32-cris.c:1402 elf32-d10v.c:582 elf32-fr30.c:646 elf32-frv.c:827 +#: elf32-h8300.c:540 elf32-i860.c:1040 elf32-ip2k.c:1601 elf32-iq2000.c:711 +#: elf32-m32r.c:1295 elf32-m68hc1x.c:1317 elf32-msp430.c:522 +#: elf32-openrisc.c:448 elf32-v850.c:1801 elf32-xstormy16.c:988 +#: elf64-mmix.c:1344 msgid "internal error: unknown error" msgstr "error interno: error desconocido" -#: elf.c:343 +#: elf.c:372 #, c-format msgid "%s: invalid string offset %u >= %lu for section `%s'" msgstr "%s: desplazamiento de cadena inválido %u >= %lu para la sección `%s'" -#: elf.c:589 +#: elf.c:624 #, c-format msgid "%s: invalid SHT_GROUP entry" msgstr "%s: entrada SHT_GROUP inválida" -#: elf.c:660 +#: elf.c:695 #, c-format msgid "%s: no group info for section %s" msgstr "%s: no hay información de grupo para la sección %s" -#: elf.c:1023 +#: elf.c:1055 msgid "" "\n" "Program Header:\n" @@ -619,7 +646,7 @@ msgstr "" "\n" "Encabezado del Programa:\n" -#: elf.c:1073 +#: elf.c:1106 msgid "" "\n" "Dynamic Section:\n" @@ -627,7 +654,7 @@ msgstr "" "\n" "Sección Dinámica:\n" -#: elf.c:1202 +#: elf.c:1235 msgid "" "\n" "Version definitions:\n" @@ -635,7 +662,7 @@ msgstr "" "\n" "Definiciones de versión:\n" -#: elf.c:1225 +#: elf.c:1258 msgid "" "\n" "Version References:\n" @@ -643,224 +670,239 @@ msgstr "" "\n" "Referencias de Versión:\n" -#: elf.c:1230 +#: elf.c:1263 #, c-format msgid " required from %s:\n" msgstr " requerido desde %s:\n" -#: elf.c:1902 +#: elf.c:1944 #, c-format msgid "%s: invalid link %lu for reloc section %s (index %u)" msgstr "%s: enlace %lu inválido para la sección de reubicación %s (índice %u)" -#: elf.c:3603 +#: elf.c:3686 #, c-format msgid "%s: Not enough room for program headers (allocated %u, need %u)" msgstr "%s: No hay suficiente espacio para los encabezados del programa (%u asignados, %u necesarios)" -#: elf.c:3708 +#: elf.c:3791 #, c-format msgid "%s: Not enough room for program headers, try linking with -N" msgstr "%s: No hay suficiente espacio para los encabezados del programa, pruebe enlazar con -N" -#: elf.c:3833 +#: elf.c:3922 #, c-format msgid "Error: First section in segment (%s) starts at 0x%x whereas the segment starts at 0x%x" msgstr "Error: La primera sección en el segmento (%s) inicia en 0x%x mientras que el segmento inicia en 0x%x" -#: elf.c:4148 +#: elf.c:4242 #, c-format msgid "%s: warning: allocated section `%s' not in segment" msgstr "%s: aviso: la sección asignada `%s' no está en el segmento" -#: elf.c:4472 +#: elf.c:4566 #, c-format msgid "%s: symbol `%s' required but not present" msgstr "%s: se requiere el símbolo `%s' pero no está presente" -#: elf.c:4749 +#: elf.c:4854 #, c-format msgid "%s: warning: Empty loadable segment detected, is this intentional ?\n" msgstr "%s: aviso: Se detectó un segmento cargable vacío, ¿ es intencional ?\n" -#: elf.c:6193 +#: elf.c:5485 +#, c-format +msgid "Unable to find equivalent output section for symbol '%s' from section '%s'" +msgstr "No se puede encontrar la sección de salida equivalente para el símbolo '%s' de la sección '%s'" + +#: elf.c:6298 #, c-format msgid "%s: unsupported relocation type %s" msgstr "%s: tipo de reubicación %s sin soporte" -#: elf32-arm.h:1221 +#: elf32-arm.h:1228 #, c-format msgid "%s: Warning: Arm BLX instruction targets Arm function '%s'." msgstr "%s: Aviso: La instrucción Arm BLX apunta a la función Arm '%s'." -#: elf32-arm.h:1417 +#: elf32-arm.h:1424 #, c-format msgid "%s: Warning: Thumb BLX instruction targets thumb function '%s'." msgstr "%s: Aviso: La instrucción Thumb BLX apunta a la función thumb '%s'." -#: elf32-arm.h:1914 elf32-sh.c:4125 +#: elf32-arm.h:1918 elf32-sh.c:4706 elf64-sh64.c:1613 #, c-format msgid "%s(%s+0x%lx): %s relocation against SEC_MERGE section" msgstr "%s(%s+0x%lx): reubicación %s contra la sección SEC_MERGE" -#: elf32-arm.h:2008 +#: elf32-arm.h:2012 #, c-format msgid "%s: warning: unresolvable relocation %d against symbol `%s' from %s section" msgstr "%s: aviso: reubicación %d sin resolución contra el símbolo `%s' de la sección %s" -#: elf32-arm.h:2176 +#: elf32-arm.h:2202 #, c-format msgid "Warning: Clearing the interworking flag of %s because non-interworking code in %s has been linked with it" msgstr "Aviso: Limpiando la opción de interoperación en %s porque se ha enlazado con él código no interoperable en %s" -#: elf32-arm.h:2271 +#: elf32-arm.h:2302 #, c-format msgid "ERROR: %s is compiled for EABI version %d, whereas %s is compiled for version %d" msgstr "ERROR: %s está compilado para EABI versión %d, mientras que %s está compilado para la versión %d" -#: elf32-arm.h:2285 +#: elf32-arm.h:2316 #, c-format msgid "ERROR: %s is compiled for APCS-%d, whereas target %s uses APCS-%d" msgstr "ERROR: %s está compilado para APCS-%d mientras que el objetivo %s usa APCS-%d" -#: elf32-arm.h:2313 +#: elf32-arm.h:2344 #, c-format -msgid "ERROR: %s uses VFP instructions, whereas %s uses FPA instructions" -msgstr "ERROR: %s utiliza instrucciones VFP, mientras que %s utiliza instrucciones FPA" +msgid "ERROR: %s uses VFP instructions, whereas %s does not" +msgstr "ERROR: %s utiliza instrucciones VFP, mientras que %s no" -#: elf32-arm.h:2318 +#: elf32-arm.h:2349 #, c-format -msgid "ERROR: %s uses FPA instructions, whereas %s uses VFP instructions" -msgstr "ERROR: %s utiliza instrucciones FPA, mientras que %s utiliza instrucciones VFP" +msgid "ERROR: %s uses FPA instructions, whereas %s does not" +msgstr "ERROR: %s utiliza instrucciones FPA, mientras que %s no" -#: elf32-arm.h:2338 +#: elf32-arm.h:2360 elf32-arm.h:2365 +#, c-format +msgid "ERROR: %s uses Maverick instructions, whereas %s does not" +msgstr "ERROR: %s utiliza instrucciones Maverick, mientras que %s no" + +#: elf32-arm.h:2385 #, c-format msgid "ERROR: %s uses software FP, whereas %s uses hardware FP" msgstr "ERROR: %s utiliza FP de software, mientras que %s utiliza FP de hardware" -#: elf32-arm.h:2343 +#: elf32-arm.h:2390 #, c-format msgid "ERROR: %s uses hardware FP, whereas %s uses software FP" msgstr "ERROR: %s utiliza FP de hardware, mientras que %s utiliza FP de software" #. 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 +#: elf32-arm.h:2443 elf32-cris.c:2975 elf32-m68hc1x.c:1459 elf32-m68k.c:397 +#: elf32-vax.c:546 elfxx-mips.c:9238 #, c-format msgid "private flags = %lx:" msgstr "opciones privadas = %lx:" -#: elf32-arm.h:2405 +#: elf32-arm.h:2452 msgid " [interworking enabled]" msgstr " [interoperabilidad activada]" -#: elf32-arm.h:2413 +#: elf32-arm.h:2460 msgid " [VFP float format]" msgstr " [formato de coma flotante VFP]" -#: elf32-arm.h:2415 +#: elf32-arm.h:2462 +msgid " [Maverick float format]" +msgstr " [formato de coma flotante Maverick]" + +#: elf32-arm.h:2464 msgid " [FPA float format]" msgstr " [formato de coma flotante FPA]" -#: elf32-arm.h:2424 +#: elf32-arm.h:2473 msgid " [new ABI]" msgstr " [ABI nuevo]" -#: elf32-arm.h:2427 +#: elf32-arm.h:2476 msgid " [old ABI]" msgstr " [ABI antiguo]" -#: elf32-arm.h:2430 +#: elf32-arm.h:2479 msgid " [software FP]" msgstr " [FP por software]" -#: elf32-arm.h:2438 +#: elf32-arm.h:2488 msgid " [Version1 EABI]" msgstr " [EABI Version1]" -#: elf32-arm.h:2441 elf32-arm.h:2452 +#: elf32-arm.h:2491 elf32-arm.h:2502 msgid " [sorted symbol table]" msgstr " [tabla de símbolos ordenados]" -#: elf32-arm.h:2443 elf32-arm.h:2454 +#: elf32-arm.h:2493 elf32-arm.h:2504 msgid " [unsorted symbol table]" msgstr " [tabla de símbolos sin ordenar]" -#: elf32-arm.h:2449 +#: elf32-arm.h:2499 msgid " [Version2 EABI]" msgstr " [EABI Version2]" -#: elf32-arm.h:2457 +#: elf32-arm.h:2507 msgid " [dynamic symbols use segment index]" msgstr " [los símbolos dinámicos utilizan índices de segmento]" -#: elf32-arm.h:2460 +#: elf32-arm.h:2510 msgid " [mapping symbols precede others]" msgstr " [el mapeo de símbolos precede a otros]" -#: elf32-arm.h:2467 +#: elf32-arm.h:2517 msgid " " msgstr " " -#: elf32-arm.h:2474 +#: elf32-arm.h:2524 msgid " [relocatable executable]" msgstr " [ejecutable reubicable]" -#: elf32-arm.h:2477 +#: elf32-arm.h:2527 msgid " [has entry point]" msgstr " [tiene punto de entrada]" -#: elf32-arm.h:2482 +#: elf32-arm.h:2532 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 +#: elf32-avr.c:820 elf32-cris.c:1398 elf32-fr30.c:642 elf32-frv.c:823 +#: elf32-i860.c:1036 elf32-ip2k.c:1597 elf32-iq2000.c:707 elf32-msp430.c:518 +#: elf32-openrisc.c:444 elf32-v850.c:1785 elf32-xstormy16.c:984 +#: elf64-mmix.c:1340 msgid "internal error: dangerous relocation" msgstr "error interno: reubicación peligrosa" -#: elf32-cris.c:949 +#: elf32-cris.c:931 #, c-format msgid "%s: unresolvable relocation %s against symbol `%s' from %s section" msgstr "%s: reubicación %s sin resolución contra el símbolo `%s' de la sección %s" -#: elf32-cris.c:1012 +#: elf32-cris.c:993 #, c-format msgid "%s: No PLT nor GOT for relocation %s against symbol `%s' from %s section" msgstr "%s: No hay PLT ni GOT para la reubicación %s contra el símbolo `%s' de la sección %s" -#: elf32-cris.c:1015 elf32-cris.c:1141 +#: elf32-cris.c:996 elf32-cris.c:1122 msgid "[whose name is lost]" msgstr "[cuyo nombre se pierde]" -#: elf32-cris.c:1130 +#: elf32-cris.c:1111 #, c-format msgid "%s: relocation %s with non-zero addend %d against local symbol from %s section" msgstr "%s: reubicación %s con adición %d que no es cero contra un símbolo local de la sección %s" -#: elf32-cris.c:1137 +#: elf32-cris.c:1118 #, c-format msgid "%s: relocation %s with non-zero addend %d against symbol `%s' from %s section" msgstr "%s: reubicación %s con adición %d que no es cero contra el símbolo `%s' de la sección %s" -#: elf32-cris.c:1155 +#: elf32-cris.c:1143 #, c-format msgid "%s: relocation %s is not allowed for global symbol: `%s' from %s section" msgstr "%s: no se permite la reubicación %s para el símbolo global: `%s' de la sección %s" -#: elf32-cris.c:1170 +#: elf32-cris.c:1158 #, c-format msgid "%s: relocation %s in section %s with no GOT created" msgstr "%s: la reubicación %s en la sección %s sin GOT creado" -#: elf32-cris.c:1288 +#: elf32-cris.c:1277 #, c-format msgid "%s: Internal inconsistency; no relocation section %s" msgstr "%s: Inconsistencia interna; no se encuentra la sección de reubicación %s" -#: elf32-cris.c:2514 +#: elf32-cris.c:2500 #, c-format msgid "" "%s, section %s:\n" @@ -869,492 +911,645 @@ msgstr "" "%s, sección %s:\n" " no se debe usar la reubicación %s en un objeto compartido; recompile con -fPIC" -#: elf32-cris.c:2991 +#: elf32-cris.c:2978 msgid " [symbols have a _ prefix]" msgstr " [los símbolos tiene un prefijo _]" -#: elf32-cris.c:3030 +#: elf32-cris.c:3017 #, c-format msgid "%s: uses _-prefixed symbols, but writing file with non-prefixed symbols" msgstr "%s: utiliza símbolos con prefijo _, pero escribe el fichero con símbolos sin prefijo" -#: elf32-cris.c:3031 +#: elf32-cris.c:3018 #, c-format msgid "%s: uses non-prefixed symbols, but writing file with _-prefixed symbols" msgstr "%s: utiliza símbolos sin prefijo, pero escribe el fichero con símbolos con prefijo _" -#: elf32-frv.c:1217 +#: elf32-frv.c:1223 #, c-format msgid "%s: compiled with %s and linked with modules that use non-pic relocations" msgstr "%s: compilado con %s y enlazado con módulos que usan reubicaciones que no son pic" -#: elf32-frv.c:1267 +#: elf32-frv.c:1273 elf32-iq2000.c:895 #, c-format msgid "%s: compiled with %s and linked with modules compiled with %s" msgstr "%s: compilado con %s y enlazado con módulos compilados con %s" -#: elf32-frv.c:1279 +#: elf32-frv.c:1285 #, c-format msgid "%s: uses different unknown e_flags (0x%lx) fields than previous modules (0x%lx)" msgstr "%s: usa campos e_flags desconocidos (0x%lx) diferentes a aquéllos de los módulos previos (0x%lx)" -#: elf32-frv.c:1315 +#: elf32-frv.c:1321 elf32-iq2000.c:933 #, c-format msgid "private flags = 0x%lx:" msgstr "opciones privadas = 0x%lx:" -#: elf32-gen.c:82 elf64-gen.c:82 +#: elf32-gen.c:83 elf64-gen.c:82 #, c-format msgid "%s: Relocations in generic ELF (EM: %d)" msgstr "%s: Reubicaciones en ELF genérico (EM: %d)" -#: elf32-hppa.c:671 elf64-ppc.c:2323 +#: elf32-hppa.c:672 elf32-m68hc1x.c:176 elf64-ppc.c:3118 #, c-format msgid "%s: cannot create stub entry %s" msgstr "%s: no se puede crear la entrada de cabo %s" -#: elf32-hppa.c:956 elf32-hppa.c:3555 +#: elf32-hppa.c:957 elf32-hppa.c:3538 #, c-format msgid "%s(%s+0x%lx): cannot reach %s, recompile with -ffunction-sections" msgstr "%s(%s+0x%lx): no se puede alcanzar %s, recompile con -ffuntion-sections" -#: elf32-hppa.c:1338 elf64-x86-64.c:673 +#: elf32-hppa.c:1340 elf64-x86-64.c:672 elf64-x86-64.c:797 #, c-format msgid "%s: relocation %s can not be used when making a shared object; recompile with -fPIC" msgstr "%s: no se puede usar la reubicación %s cuando se hace un objeto compartido; recompile con -fPIC" -#: elf32-hppa.c:1358 +#: elf32-hppa.c:1360 #, c-format msgid "%s: relocation %s should not be used when making a shared object; recompile with -fPIC" msgstr "%s: no se debe usar la reubicación %s cuando se hace un objeto compartido; recompile con -fPIC" -#: elf32-hppa.c:1551 +#: elf32-hppa.c:1553 #, c-format msgid "Could not find relocation section for %s" msgstr "No se puede encontrar la sección de reubicación para %s" -#: elf32-hppa.c:2855 +#: elf32-hppa.c:2828 #, c-format msgid "%s: duplicate export stub %s" msgstr "%s: cabo de exportación %s duplicado" -#: elf32-hppa.c:3433 +#: elf32-hppa.c:3416 #, c-format msgid "%s(%s+0x%lx): fixing %s" msgstr "%s(%s+0x%lx): componiendo %s" -#: elf32-hppa.c:4080 +#: elf32-hppa.c:4039 #, c-format msgid "%s(%s+0x%lx): cannot handle %s for %s" msgstr "%s(%s+0x%lx): no se puede manejar %s para %s" -#: elf32-hppa.c:4393 +#: elf32-hppa.c:4357 msgid ".got section not immediately after .plt section" msgstr "la sección .got no está inmediatamente después de la sección .plt" -#: elf32-i386.c:379 +#: elf32-i386.c:326 #, c-format msgid "%s: invalid relocation type %d" msgstr "%s: tipo de reubicación %d inválido" -#: elf32-i386.c:876 elf32-s390.c:649 elf64-s390.c:595 elf64-x86-64.c:591 +#: elf32-i386.c:841 elf32-s390.c:990 elf32-sparc.c:887 elf32-xtensa.c:637 +#: elf64-s390.c:943 elf64-x86-64.c:650 #, c-format msgid "%s: bad symbol index: %d" msgstr "%s: índice de símbolos erróneo: %d" -#: elf32-i386.c:948 +#: elf32-i386.c:949 elf32-s390.c:1168 elf32-sh.c:6426 elf32-sparc.c:1011 +#: elf64-s390.c:1129 #, c-format msgid "%s: `%s' accessed both as normal and thread local symbol" msgstr "%s: se accesó `%s' como un símbolo normal y un símbolo local de hilo" -#: elf32-i386.c:1072 elf32-s390.c:808 elf64-ppc.c:2827 elf64-s390.c:759 -#: elf64-x86-64.c:761 +#: elf32-i386.c:1064 elf32-s390.c:1279 elf64-ppc.c:3929 elf64-s390.c:1243 +#: elf64-x86-64.c:886 #, c-format msgid "%s: bad relocation section name `%s'" msgstr "%s: nombre de sección de reubicación `%s' erróneo" -#: elf32-i386.c:1159 elf64-alpha.c:4768 -#, c-format -msgid "%s: TLS local exec code cannot be linked into shared objects" -msgstr "%s: el código de ejecución local TLS no se puede enlazar en objetos compartidos" - -#: 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 +#: elf32-i386.c:2908 elf32-m68k.c:1757 elf32-s390.c:3022 elf32-sparc.c:2879 +#: elf32-xtensa.c:2193 elf64-s390.c:3018 elf64-sparc.c:2664 +#: elf64-x86-64.c:2452 #, c-format msgid "%s(%s+0x%lx): unresolvable relocation against symbol `%s'" msgstr "%s(%s+0x%lx): reubicación sin resolución contra el símbolo `%s'" -#: elf32-i386.c:2784 elf32-s390.c:2019 elf64-ppc.c:5977 elf64-s390.c:1983 -#: elf64-x86-64.c:1986 +#: elf32-i386.c:2947 elf32-m68k.c:1796 elf32-s390.c:3072 elf64-s390.c:3068 +#: elf64-x86-64.c:2490 #, c-format msgid "%s(%s+0x%lx): reloc against `%s': error %d" msgstr "%s(%s+0x%lx): reubicación contra `%s': error %d" -#: elf32-m32r.c:924 +#: elf32-ip2k.c:565 elf32-ip2k.c:571 elf32-ip2k.c:734 elf32-ip2k.c:740 +msgid "ip2k relaxer: switch table without complete matching relocation information." +msgstr "relajador ip2k: tabla switch sin información completa de reubicación de coincidencias." + +#: elf32-ip2k.c:588 elf32-ip2k.c:767 +msgid "ip2k relaxer: switch table header corrupt." +msgstr "relajador ip2k: encabezado de tabla switch corrupto." + +#: elf32-ip2k.c:1395 +#, c-format +msgid "ip2k linker: missing page instruction at 0x%08lx (dest = 0x%08lx)." +msgstr "enlazador ip2k: instrucción de página faltante en 0x%08lx (dest = 0x%08lx)." + +#: elf32-ip2k.c:1409 +#, c-format +msgid "ip2k linker: redundant page instruction at 0x%08lx (dest = 0x%08lx)." +msgstr "enlazador ip2k: instrucción de página redundante en 0x%08lx (dest = 0x%08lx)." + +#. Only if it's not an unresolved symbol. +#: elf32-ip2k.c:1593 +msgid "unsupported relocation between data/insn address spaces" +msgstr "reubicación sin soporte entre espacios de direcciones datos/insn" + +#: elf32-iq2000.c:907 elf32-m68hc1x.c:1431 elf32-ppc.c:2175 elf64-sparc.c:3072 +#: elfxx-mips.c:9195 +#, c-format +msgid "%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)" +msgstr "%s: usa campos de e_flags diferentes (0x%lx) que los módulos previos (0x%lx)" + +#: elf32-m32r.c:930 msgid "SDA relocation when _SDA_BASE_ not defined" msgstr "reubicación SDA cuando _SDA_BASE_ no está definido" -#: elf32-ia64.c:3687 elf32-m32r.c:1013 elf32-ppc.c:2987 elf64-alpha.c:4185 -#: elf64-alpha.c:4313 elf64-ia64.c:3687 +#: elf32-m32r.c:1018 elf64-alpha.c:4279 elf64-alpha.c:4407 elf32-ia64.c:3958 +#: elf64-ia64.c:3958 #, c-format msgid "%s: unknown relocation type %d" msgstr "%s: tipo de reubicación %d desconocido" -#: elf32-m32r.c:1221 +#: elf32-m32r.c:1226 #, c-format msgid "%s: The target (%s) of an %s relocation is in the wrong section (%s)" msgstr "%s: El objetivo (%s) de una reubicación %s está en la sección errónea (%s)" -#: elf32-m32r.c:1947 +#: elf32-m32r.c:1952 #, c-format msgid "%s: Instruction set mismatch with previous modules" msgstr "%s: Conjunto de instrucciones no coincidente con módulos previos" -#: elf32-m32r.c:1970 +#: elf32-m32r.c:1975 #, c-format msgid "private flags = %lx" msgstr "opciones privadas = %lx" -#: elf32-m32r.c:1975 +#: elf32-m32r.c:1980 msgid ": m32r instructions" msgstr ": instrucciones m32r" -#: elf32-m32r.c:1976 +#: elf32-m32r.c:1981 msgid ": m32rx instructions" msgstr ": instrucciones m32rx" -#: elf32-m68k.c:413 +#: elf32-m68hc1x.c:1217 +#, c-format +msgid "Reference to the far symbol `%s' using a wrong relocation may result in incorrect execution" +msgstr "Una referencia al símbolo far `%s' usando una reubicación incorrecta puede resultar en una ejecución incorrecta" + +#: elf32-m68hc1x.c:1240 +#, c-format +msgid "banked address [%lx:%04lx] (%lx) is not in the same bank as current banked address [%lx:%04lx] (%lx)" +msgstr "la dirección almacenada [%lx:%04lx] (%lx) no está en el mismo banco que la dirección almacenada actual [%lx:%04lx] (%lx)" + +#: elf32-m68hc1x.c:1259 +#, c-format +msgid "reference to a banked address [%lx:%04lx] in the normal address space at %04lx" +msgstr "referencia a una dirección almacenada [%lx:%04lx] en el espacio normal de direcciones en %04lx" + +#: elf32-m68hc1x.c:1396 +#, c-format +msgid "%s: linking files compiled for 16-bit integers (-mshort) and others for 32-bit integers" +msgstr "%s: enlazando ficheros compilados con enteros de 16-bit (-mshort) y otros con enteros de 32-bit" + +#: elf32-m68hc1x.c:1404 +#, c-format +msgid "%s: linking files compiled for 32-bit double (-fshort-double) and others for 64-bit double" +msgstr "%s: enlazando ficheros compilados con dobles de 32-bit (-fshort-double) y otros con dobles de 64-bit" + +#: elf32-m68hc1x.c:1414 +#, c-format +msgid "%s: linking files compiled for HCS12 with others compiled for HC12" +msgstr "%s: enlazando ficheros compilados para HCS12, con otros compilados para HC12" + +#: elf32-m68hc1x.c:1462 +msgid "[abi=32-bit int, " +msgstr "[abi=int de 32-bit, " + +#: elf32-m68hc1x.c:1464 +msgid "[abi=16-bit int, " +msgstr "[abi=int de 16-bit, " + +#: elf32-m68hc1x.c:1467 +msgid "64-bit double, " +msgstr "doble de 64-bit, " + +#: elf32-m68hc1x.c:1469 +msgid "32-bit double, " +msgstr "doble de 32-bit, " + +#: elf32-m68hc1x.c:1472 +msgid "cpu=HC11]" +msgstr "cpu=HC11]" + +#: elf32-m68hc1x.c:1474 +msgid "cpu=HCS12]" +msgstr "cpu=HCS12]" + +#: elf32-m68hc1x.c:1476 +msgid "cpu=HC12]" +msgstr "cpu=HC12]" + +#: elf32-m68hc1x.c:1479 +msgid " [memory=bank-model]" +msgstr " [memoria=modelo de bancos]" + +#: elf32-m68hc1x.c:1481 +msgid " [memory=flat]" +msgstr " [memoria=plana]" + +#: elf32-m68k.c:400 msgid " [cpu32]" msgstr " [cpu32]" -#: elf32-m68k.c:416 +#: elf32-m68k.c:403 msgid " [m68000]" msgstr " [m68000]" -#: elf32-mcore.c:354 elf32-mcore.c:457 +#: elf32-mcore.c:353 elf32-mcore.c:456 #, c-format msgid "%s: Relocation %s (%d) is not currently supported.\n" msgstr "%s: La reubicación %s (%d) actualmente no tiene soporte.\n" -#: elf32-mcore.c:442 +#: elf32-mcore.c:441 #, c-format msgid "%s: Unknown relocation type %d\n" msgstr "%s: Tipo de reubicación %d desconocido\n" -#: elf32-mips.c:1152 elf64-mips.c:1783 +#: elf32-mips.c:1170 elf64-mips.c:1717 elfn32-mips.c:1664 msgid "32bits gp relative relocation occurs for an external symbol" msgstr "la reubicación gp relativa de 32bits sucede para un símbolo externo" -#: elf32-mips.c:1301 +#: elf32-mips.c:1314 elf64-mips.c:1830 elfn32-mips.c:1783 #, c-format msgid "Linking mips16 objects into %s format is not supported" msgstr "Enlazar objetos mips16 en el formato %s no tiene soporte" -#: elf32-ppc.c:1460 +#: elf32-ppc.c:2056 +#, c-format +msgid "generic linker can't handle %s" +msgstr "el enlazador genérico no puede manejar %s" + +#: elf32-ppc.c:2138 #, c-format msgid "%s: compiled with -mrelocatable and linked with modules compiled normally" msgstr "%s: compilado con -mrelocatable y enlazado con módulos compilados de forma normal" -#: elf32-ppc.c:1468 +#: elf32-ppc.c:2147 #, c-format msgid "%s: compiled normally and linked with modules compiled with -mrelocatable" msgstr "%s: compilado de forma normal y enlazado con módulos compilados con -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: usa campos de e_flags diferentes (0x%lx) que los módulos previos (0x%lx)" - -#: elf32-ppc.c:1592 -#, c-format -msgid "%s: Unknown special linker type %d" -msgstr "%s: Tipo de enlazador especial %d desconocido" - -#: elf32-ppc.c:2273 elf32-ppc.c:2307 elf32-ppc.c:2342 +#: elf32-ppc.c:3413 #, c-format msgid "%s: relocation %s cannot be used when making a shared object" msgstr "%s: no se puede usar la reubicación %s cuando se hace un objeto compartido" -#: elf32-ppc.c:3126 elf64-ppc.c:5473 +#. It does not make sense to have a procedure linkage +#. table entry for a local symbol. +#: elf32-ppc.c:3619 +#, c-format +msgid "%s(%s+0x%lx): %s reloc against local symbol" +msgstr "%s(%s+0x%lx): reubicación %s contra un símbolo local" + +#: elf32-ppc.c:4862 elf64-ppc.c:7789 #, c-format msgid "%s: unknown relocation type %d for symbol %s" msgstr "%s: tipo de reubicación %d desconocido para el símbolo %s" -#: elf32-ppc.c:3482 elf32-ppc.c:3503 elf32-ppc.c:3553 +#: elf32-ppc.c:5113 #, c-format -msgid "%s: The target (%s) of a %s relocation is in the wrong output section (%s)" -msgstr "%s: El objetivo (%s) de una reubicación %s está en la sección de salida errónea (%s)" +msgid "%s(%s+0x%lx): non-zero addend on %s reloc against `%s'" +msgstr "%s(%s+0x%lx): adición que no es cero en la reubicación %s contra `%s'" -#: elf32-ppc.c:3619 +#: elf32-ppc.c:5399 elf32-ppc.c:5425 elf32-ppc.c:5484 +#, c-format +msgid "%s: the target (%s) of a %s relocation is in the wrong output section (%s)" +msgstr "%s: el objetivo (%s) de una reubicación %s está en la sección de salida errónea (%s)" + +#: elf32-ppc.c:5539 #, c-format -msgid "%s: Relocation %s is not yet supported for symbol %s." -msgstr "%s: La reubicación %s aún no tiene soporte para el símbolo %s." +msgid "%s: relocation %s is not yet supported for symbol %s." +msgstr "%s: la reubicación %s aún no tiene soporte para el símbolo %s." -#: elf32-sh.c:1964 +#: elf32-ppc.c:5594 elf64-ppc.c:8461 +#, c-format +msgid "%s(%s+0x%lx): unresolvable %s relocation against symbol `%s'" +msgstr "%s(%s+0x%lx): reubicación %s sin resolución contra el símbolo `%s'" + +#: elf32-ppc.c:5644 elf64-ppc.c:8507 +#, c-format +msgid "%s(%s+0x%lx): %s reloc against `%s': error %d" +msgstr "%s(%s+0x%lx): reubicación %s contra `%s': error %d" + +#: elf32-ppc.c:5888 +#, c-format +msgid "corrupt or empty %s section in %s" +msgstr "sección %s corrupta o vacía en %s" + +#: elf32-ppc.c:5895 +#, c-format +msgid "unable to read in %s section from %s" +msgstr "no se puede leer en la sección %s desde %s" + +#: elf32-ppc.c:5901 +#, c-format +msgid "corrupt %s section in %s" +msgstr "sección %s corrupta en %s" + +#: elf32-ppc.c:5944 +#, c-format +msgid "warning: unable to set size of %s section in %s" +msgstr "aviso: no se puede establecer el tamaño de la sección %s en %s" + +#: elf32-ppc.c:5994 +msgid "failed to allocate space for new APUinfo section." +msgstr "no se puede reservar espacio para la nueva sección APUinfo." + +#: elf32-ppc.c:6013 +msgid "failed to compute new APUinfo section." +msgstr "no se puede calcular la nueva sección APUinfo." + +#: elf32-ppc.c:6016 +msgid "failed to install new APUinfo section." +msgstr "no se puede instalar la nueva sección APUinfo." + +#: elf32-s390.c:2256 elf64-s390.c:2226 +#, c-format +msgid "%s(%s+0x%lx): invalid instruction for TLS relocation %s" +msgstr "%s(%s+0x%lx): instrucción inválida para la reubicación TLS %s" + +#: elf32-sh.c:2103 #, c-format msgid "%s: 0x%lx: warning: bad R_SH_USES offset" msgstr "%s: 0x%lx: aviso: desplazamiento R_SH_USES erróneo" -#: elf32-sh.c:1976 +#: elf32-sh.c:2115 #, c-format msgid "%s: 0x%lx: warning: R_SH_USES points to unrecognized insn 0x%x" msgstr "%s: 0x%lx: aviso: R_SH_USES señala al insn 0x%x no reconocido" -#: elf32-sh.c:1993 +#: elf32-sh.c:2132 #, c-format msgid "%s: 0x%lx: warning: bad R_SH_USES load offset" msgstr "%s: 0x%lx: aviso: desplazamiento de carga R_SH_USES erróneo" -#: elf32-sh.c:2008 +#: elf32-sh.c:2147 #, c-format msgid "%s: 0x%lx: warning: could not find expected reloc" msgstr "%s: 0x%lx: aviso: no se puede encontrar la reubicación esperada" -#: elf32-sh.c:2036 +#: elf32-sh.c:2175 #, c-format msgid "%s: 0x%lx: warning: symbol in unexpected section" msgstr "%s: 0x%lx: aviso: símbolo en una sección inesperada" -#: elf32-sh.c:2153 +#: elf32-sh.c:2300 #, c-format msgid "%s: 0x%lx: warning: could not find expected COUNT reloc" msgstr "%s: 0x%lx: aviso: no se puede encontrar la reubicación COUNT esperada" -#: elf32-sh.c:2162 +#: elf32-sh.c:2309 #, c-format msgid "%s: 0x%lx: warning: bad count" msgstr "%s: 0x%lx: aviso: cuenta errónea" -#: elf32-sh.c:2550 elf32-sh.c:2926 +#: elf32-sh.c:2712 elf32-sh.c:3088 #, c-format msgid "%s: 0x%lx: fatal: reloc overflow while relaxing" msgstr "%s: 0x%lx: fatal: desbordamiento de reubicación durante la relajación" -#: elf32-sh.c:4073 elf64-sh64.c:1576 +#: elf32-sh.c:4654 elf64-sh64.c:1585 msgid "Unexpected STO_SH5_ISA32 on local symbol is not handled" msgstr "No se maneja un STO_SH5_ISA32 inesperado en un símbolo local" -#: elf32-sh.c:4284 +#: elf32-sh.c:4809 +#, c-format +msgid "%s: unresolvable relocation against symbol `%s' from %s section" +msgstr "%s: reubicación sin resolución contra el símbolo `%s' de la sección %s" + +#: elf32-sh.c:4881 #, c-format msgid "%s: 0x%lx: fatal: unaligned branch target for relax-support relocation" msgstr "%s: 0x%lx: fatal: objetivo de ramificación sin alineación para la reubicación de soporte de relajamiento" -#: elf32-sh64.c:203 elf64-sh64.c:2364 +#: elf32-sh.c:6627 elf64-alpha.c:4848 +#, c-format +msgid "%s: TLS local exec code cannot be linked into shared objects" +msgstr "%s: el código de ejecución local TLS no se puede enlazar en objetos compartidos" + +#: elf32-sh64.c:221 elf64-sh64.c:2407 #, c-format msgid "%s: compiled as 32-bit object and %s is 64-bit" msgstr "%s: compilado como un objeto de 32-bit y %s es de 64-bit" -#: elf32-sh64.c:206 elf64-sh64.c:2367 +#: elf32-sh64.c:224 elf64-sh64.c:2410 #, c-format msgid "%s: compiled as 64-bit object and %s is 32-bit" msgstr "%s: compilado como un objeto de 64-bit y %s es de 32-bit" -#: elf32-sh64.c:208 elf64-sh64.c:2369 +#: elf32-sh64.c:226 elf64-sh64.c:2412 #, c-format msgid "%s: object size does not match that of target %s" msgstr "%s: el tamaño del objeto no coincide con el tamaño del objetivo %s" -#: elf32-sh64.c:440 elf64-sh64.c:2941 +#: elf32-sh64.c:461 elf64-sh64.c:2990 #, c-format msgid "%s: encountered datalabel symbol in input" msgstr "%s: se encontró un símbolo datalabel en la entrada" -#: elf32-sh64.c:523 +#: elf32-sh64.c:544 msgid "PTB mismatch: a SHmedia address (bit 0 == 1)" msgstr "No coincide PTB: una dirección SHmedia (bit 0 == 1)" -#: elf32-sh64.c:526 +#: elf32-sh64.c:547 msgid "PTA mismatch: a SHcompact address (bit 0 == 0)" msgstr "No coincide PTA: una dirección SHcompact (bit 0 == 0)" -#: elf32-sh64.c:544 +#: elf32-sh64.c:565 #, c-format msgid "%s: GAS error: unexpected PTB insn with R_SH_PT_16" msgstr "%s: error de GAS: instrucción PTB inesperada con R_SH_PT_16" -#: elf32-sh64.c:593 elf64-sh64.c:1703 +#: elf32-sh64.c:614 elf64-sh64.c:1748 #, c-format msgid "%s: error: unaligned relocation type %d at %08x reloc %08x\n" msgstr "%s: error: tipo de reubicación %d sin alinear en %08x reubicación %08x\n" -#: elf32-sh64.c:677 +#: elf32-sh64.c:698 #, c-format msgid "%s: could not write out added .cranges entries" msgstr "%s: no se pueden escribir las entradas .cranges agregadas" -#: elf32-sh64.c:739 +#: elf32-sh64.c:760 #, c-format msgid "%s: could not write out sorted .cranges entries" msgstr "%s: no se pueden escribir las entradas .cranges ordenadas" -#: elf32-sparc.c:1535 elf64-sparc.c:2224 +#: elf32-sparc.c:2521 elf64-sparc.c:2314 #, c-format msgid "%s: probably compiled without -fPIC?" msgstr "%s: ¿Compilado probablemente sin -fPIC?" -#: elf32-sparc.c:2002 +#: elf32-sparc.c:3348 #, c-format msgid "%s: compiled for a 64 bit system and target is 32 bit" msgstr "%s: compilado para un sistema de 64 bit y el objetivo es de 32 bit" -#: elf32-sparc.c:2016 +#: elf32-sparc.c:3362 #, c-format msgid "%s: linking little endian files with big endian files" msgstr "%s: enlazando ficheros little endian con ficheros big endian" -#: elf32-v850.c:682 +#: elf32-v850.c:753 #, c-format msgid "Variable `%s' cannot occupy in multiple small data regions" msgstr "La variable `%s' no puede ocupar múltiples regiones de datos small" -#: elf32-v850.c:685 +#: elf32-v850.c:756 #, c-format msgid "Variable `%s' can only be in one of the small, zero, and tiny data regions" msgstr "La variable `%s' solamente puede estar en una de las regiones de datos small, cero, y tiny" -#: elf32-v850.c:688 +#: elf32-v850.c:759 #, c-format msgid "Variable `%s' cannot be in both small and zero data regions simultaneously" msgstr "La variable `%s' no puede estar simultáneamente en las regiones de datos small y cero" -#: elf32-v850.c:691 +#: elf32-v850.c:762 #, c-format msgid "Variable `%s' cannot be in both small and tiny data regions simultaneously" msgstr "La variable `%s' no puede estar simultáneamente en las regiones de datos small y tiny" -#: elf32-v850.c:694 +#: elf32-v850.c:765 #, c-format msgid "Variable `%s' cannot be in both zero and tiny data regions simultaneously" msgstr "La variable `%s' no puede estar simultáneamente en las regiones de datos cero y tiny" -#: elf32-v850.c:1072 +#: elf32-v850.c:1144 msgid "FAILED to find previous HI16 reloc\n" msgstr "FALLO para encontrar la reubicación HI16 previa\n" -#: elf32-v850.c:1703 +#: elf32-v850.c:1789 msgid "could not locate special linker symbol __gp" msgstr "no se puede localizar el símbolo especial del enlazador __gp" -#: elf32-v850.c:1707 +#: elf32-v850.c:1793 msgid "could not locate special linker symbol __ep" msgstr "no se puede localizar el símbolo especial del enlazador __ep" -#: elf32-v850.c:1711 +#: elf32-v850.c:1797 msgid "could not locate special linker symbol __ctbp" msgstr "no se puede localizar el símbolo especial del enlazador __ctbp" -#: elf32-v850.c:1875 +#: elf32-v850.c:1963 #, c-format msgid "%s: Architecture mismatch with previous modules" msgstr "%s: No coincide la arquitectura con los módulos previos" -#: elf32-v850.c:1895 +#: elf32-v850.c:1983 #, c-format msgid "private flags = %lx: " msgstr "opciones privadas = %lx: " -#: elf32-v850.c:1900 +#: elf32-v850.c:1988 msgid "v850 architecture" msgstr "arquitectura v850" -#: elf32-v850.c:1901 +#: elf32-v850.c:1989 msgid "v850e architecture" msgstr "arquitectura v850e" -#: elf32-v850.c:1902 -msgid "v850ea architecture" -msgstr "arquitectura v850ea" - -#: elf32-vax.c:546 +#: elf32-vax.c:549 msgid " [nonpic]" msgstr " [no pic]" -#: elf32-vax.c:549 +#: elf32-vax.c:552 msgid " [d-float]" msgstr " [flotante-d]" -#: elf32-vax.c:552 +#: elf32-vax.c:555 msgid " [g-float]" msgstr " [flotante-g]" -#: elf32-vax.c:674 +#: elf32-vax.c:663 #, c-format msgid "%s: warning: GOT addend of %ld to `%s' does not match previous GOT addend of %ld" msgstr "%s: aviso: la adición GOT de %ld a `%s' no coincide con la adición previa GOT de %ld" -#: elf32-vax.c:1679 +#: elf32-vax.c:1667 #, c-format msgid "%s: warning: PLT addend of %d to `%s' from %s section ignored" msgstr "%s: aviso: se ignora la adición PLT de %d a `%s' de la sección %s" -#: elf32-vax.c:1814 +#: elf32-vax.c:1802 #, c-format msgid "%s: warning: %s relocation against symbol `%s' from %s section" msgstr "%s: aviso: reubicación %s contra el símbolo `%s' de la sección %s" -#: elf32-vax.c:1820 +#: elf32-vax.c:1808 #, c-format msgid "%s: warning: %s relocation to 0x%x from %s section" msgstr "%s: aviso: reubicación %s a 0x%x de la sección %s" -#: elf32-ia64.c:2280 elf32-xstormy16.c:414 elf64-ia64.c:2280 +#: elf32-xstormy16.c:462 elf32-ia64.c:2450 elf64-ia64.c:2450 msgid "non-zero addend in @fptr reloc" msgstr "adición que no es cero en la reubicación @fptr" -#: elf64-alpha.c:1097 +#: elf64-alpha.c:1108 msgid "GPDISP relocation did not find ldah and lda instructions" msgstr "la reubicación GPDISP no encontró las instrucciones ldah y lda" -#: elf64-alpha.c:3675 +#: elf64-alpha.c:3731 #, c-format msgid "%s: .got subsegment exceeds 64K (size %d)" msgstr "%s: el subsegmento .got excede los 64K (tamaño %d)" -#: elf64-alpha.c:4498 elf64-alpha.c:4510 +#: elf64-alpha.c:4602 elf64-alpha.c:4614 #, c-format msgid "%s: gp-relative relocation against dynamic symbol %s" msgstr "%s: reubicación gp relativa contra el símbolo dinámico %s" -#: elf64-alpha.c:4536 elf64-alpha.c:4676 +#: elf64-alpha.c:4640 elf64-alpha.c:4773 #, c-format msgid "%s: pc-relative relocation against dynamic symbol %s" msgstr "%s: reubicación relativa al pc contra el símbolo dinámico %s" -#: elf64-alpha.c:4564 +#: elf64-alpha.c:4668 #, c-format msgid "%s: change in gp: BRSGP %s" msgstr "%s: cambio en gp: BRSGP %s" -#: elf64-alpha.c:4589 +#: elf64-alpha.c:4693 msgid "" msgstr "" -#: elf64-alpha.c:4594 +#: elf64-alpha.c:4698 #, c-format msgid "%s: !samegp reloc against symbol without .prologue: %s" msgstr "%s: reubicación !samegp contra un símbolo sin .prologue: %s" -#: elf64-alpha.c:4639 +#: elf64-alpha.c:4749 #, c-format msgid "%s: unhandled dynamic relocation against %s" msgstr "%s: reubicación dinámica sin manejar contra %s" -#: elf64-alpha.c:4752 +#: elf64-alpha.c:4832 #, c-format msgid "%s: dtp-relative relocation against dynamic symbol %s" msgstr "%s: reubicación relativa a dtp contra el símbolo dinámico %s" -#: elf64-alpha.c:4775 +#: elf64-alpha.c:4855 #, c-format msgid "%s: tp-relative relocation against dynamic symbol %s" msgstr "%s: reubicación relativa a tp contra el símbolo dinámico %s" -#: elf64-hppa.c:2080 +#: elf64-hppa.c:2086 #, c-format msgid "stub entry for %s cannot load .plt, dp offset = %ld" msgstr "la entrada de cabo para %s no puede cargar .plt, desplazamiento dp = %ld" -#: elf64-mmix.c:1002 +#: elf64-mmix.c:1032 #, c-format msgid "" "%s: Internal inconsistency error for value for\n" @@ -1363,46 +1558,46 @@ msgstr "" "%s: Error de inconsistencia interna para el valor para\n" " un registro global colocado por el enlazador: enlazado: 0x%lx%08lx != relajado: 0x%lx%08lx\n" -#: elf64-mmix.c:1386 +#: elf64-mmix.c:1416 #, c-format msgid "%s: base-plus-offset relocation against register symbol: (unknown) in %s" msgstr "%s: reubicación base-más-desplazamiento contra un símbolo de registro: (desconocido) en %s" -#: elf64-mmix.c:1391 +#: elf64-mmix.c:1421 #, c-format msgid "%s: base-plus-offset relocation against register symbol: %s in %s" msgstr "%s: reubicación base-más-desplazamiento contra un símbolo de registro: %s en %s" -#: elf64-mmix.c:1435 +#: elf64-mmix.c:1465 #, c-format msgid "%s: register relocation against non-register symbol: (unknown) in %s" msgstr "%s: reubicación de registro contra un símbolo que no es registro: (desconocido) en %s" -#: elf64-mmix.c:1440 +#: elf64-mmix.c:1470 #, c-format msgid "%s: register relocation against non-register symbol: %s in %s" msgstr "%s: reubicación de registro contra un símbolo que no es registro: %s en %s" -#: elf64-mmix.c:1477 +#: elf64-mmix.c:1507 #, c-format msgid "%s: directive LOCAL valid only with a register or absolute value" msgstr "%s: la directiva LOCAL sólo es válida con un registro o un valor absoluto" -#: elf64-mmix.c:1505 +#: elf64-mmix.c:1535 #, c-format msgid "%s: LOCAL directive: Register $%ld is not a local register. First global register is $%ld." msgstr "%s: directiva LOCAL: El registro $%ld no es un registro local. El primer registro global es $%ld." -#: elf64-mmix.c:1965 +#: elf64-mmix.c:1994 #, c-format msgid "%s: Error: multiple definition of `%s'; start of %s is set in a earlier linked file\n" msgstr "%s: Error: definición múltiple de `%s'; el inicio de %s está definido en un fichero enlazado con anterioridad\n" -#: elf64-mmix.c:2024 +#: elf64-mmix.c:2053 msgid "Register section has contents\n" msgstr "La sección de registros no tiene contenido\n" -#: elf64-mmix.c:2186 +#: elf64-mmix.c:2216 #, c-format msgid "" "Internal inconsistency: remaining %u != max %u.\n" @@ -1411,574 +1606,617 @@ msgstr "" "Inconsistencia interna: %u restante != %u máximo.\n" " Por favor reporte este bicho." -#: elf64-ppc.c:1669 libbfd.c:1435 +#: elf64-ppc.c:2388 libbfd.c:831 #, c-format msgid "%s: compiled for a big endian system and target is little endian" msgstr "%s: compilado para un sistema big endian y el objetivo es little endian" -#: elf64-ppc.c:1671 libbfd.c:1437 +#: elf64-ppc.c:2391 libbfd.c:833 #, c-format msgid "%s: compiled for a little endian system and target is big endian" msgstr "%s: compilado para un sistema little endian y el objetivo es big endian" -#: elf64-ppc.c:3610 +#: elf64-ppc.c:4857 #, c-format msgid "%s: unexpected reloc type %u in .opd section" msgstr "%s: tipo de reubicación %u inesperado en la sección .opd" -#: elf64-ppc.c:3630 +#: elf64-ppc.c:4877 #, c-format msgid "%s: .opd is not a regular array of opd entries" msgstr "%s: .opd no es una matriz regular de entradas opd" -#: elf64-ppc.c:3672 +#: elf64-ppc.c:4897 #, c-format msgid "%s: undefined sym `%s' in .opd section" msgstr "%s: símbolo `%s' indefinido en la sección .opd" -#: elf64-ppc.c:4397 +#: elf64-ppc.c:6136 #, c-format msgid "can't find branch stub `%s'" msgstr "no se puede encontrar la ramificación de cabo `%s'" -#: elf64-ppc.c:4436 elf64-ppc.c:4501 +#: elf64-ppc.c:6175 elf64-ppc.c:6250 #, c-format msgid "linkage table error against `%s'" msgstr "error de la tabla de enlazado contra `%s'" -#: elf64-ppc.c:4573 +#: elf64-ppc.c:6340 #, c-format msgid "can't build branch stub `%s'" msgstr "no se puede construir la ramificación de cabos `%s'" -#: elf64-ppc.c:5179 +#: elf64-ppc.c:7047 +msgid ".glink and .plt too far apart" +msgstr ".glink y .plt están demasiado alejados" + +#: elf64-ppc.c:7135 msgid "stubs don't match calculated size" msgstr "los cabos no coinciden con el tamaño calculado" -#: elf64-ppc.c:5828 +#: elf64-ppc.c:7147 +#, c-format +msgid "" +"linker stubs in %u groups\n" +" branch %lu\n" +" toc adjust %lu\n" +" long branch %lu\n" +" long toc adj %lu\n" +" plt call %lu" +msgstr "" +"cabos de enlazador en %u grupos\n" +" rama %lu\n" +" ajuste toc %lu\n" +" rama long %lu\n" +" ajuste toc long %lu\n" +" llamada plt %lu" + +#: elf64-ppc.c:7723 +#, c-format +msgid "%s(%s+0x%lx): automatic multiple TOCs not supported using your crt files; recompile with -mminimal-toc or upgrade gcc" +msgstr "%s(%s+0x%lx): los TOCs múltiples automáticos no tienes soporte utilizando sus ficheros crt; recompile con -mminimal-toc o actualice gcc" + +#: elf64-ppc.c:7731 +#, c-format +msgid "%s(%s+0x%lx): sibling call optimization to `%s' does not allow automatic multiple TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, or make `%s' extern" +msgstr "%s(%s+0x%lx): la optimización de llamada hermana a `%s' no permite TOCs múltiples automáticos; recompile con -mminimal-toc ó -fno-optimize-sibling-calls, o vuelva `%s' externa" + +#: elf64-ppc.c:8329 #, c-format -msgid "%s: Relocation %s is not supported for symbol %s." -msgstr "%s: La reubicación %s no tiene soporte para el símbolo %s." +msgid "%s: relocation %s is not supported for symbol %s." +msgstr "%s: la reubicación %s no tiene soporte para el símbolo %s." -#: elf64-ppc.c:5872 +#: elf64-ppc.c:8408 #, c-format -msgid "%s: error: relocation %s not a multiple of 4" -msgstr "%s: error: la reubicación %s no es un múltiplo de 4" +msgid "%s: error: relocation %s not a multiple of %d" +msgstr "%s: error: la reubicación %s no es un múltiplo de %d" -#: elf64-sparc.c:1280 +#: elf64-sparc.c:1370 #, c-format msgid "%s: check_relocs: unhandled reloc type %d" msgstr "%s: check_relocs: tipo de reubicación %d sin manejar" -#: elf64-sparc.c:1317 +#: elf64-sparc.c:1407 #, c-format msgid "%s: Only registers %%g[2367] can be declared using STT_REGISTER" msgstr "%s: Solamente los registros %%g[2367] pueden ser declarados utilizando STT_REGISTER" -#: elf64-sparc.c:1337 +#: elf64-sparc.c:1427 #, c-format msgid "Register %%g%d used incompatibly: %s in %s, previously %s in %s" msgstr "El registro %%g%d se usó de forma incompatible: %s en %s, previamente %s en %s" -#: elf64-sparc.c:1360 +#: elf64-sparc.c:1450 #, c-format msgid "Symbol `%s' has differing types: REGISTER in %s, previously %s in %s" msgstr "El símbolo `%s' tiene tipos divergentes: REGISTER en %s, previamente %s en %s" -#: elf64-sparc.c:1406 +#: elf64-sparc.c:1496 #, c-format msgid "Symbol `%s' has differing types: %s in %s, previously REGISTER in %s" msgstr "El símbolo `%s' tiene tipos divergentes: %s en %s, previamente REGISTER en %s" -#: elf64-sparc.c:2970 +#: elf64-sparc.c:3053 #, c-format msgid "%s: linking UltraSPARC specific with HAL specific code" msgstr "%s: enlazando código específico de UltraSPARC con código específico de HAL" -#: elfcode.h:1198 +#: elf64-x86-64.c:739 +#, c-format +msgid "%s: %s' accessed both as normal and thread local symbol" +msgstr "%s: se accesó `%s' como un símbolo normal y como un símbolo local de hilo" + +#: elfcode.h:1113 #, c-format msgid "%s: version count (%ld) does not match symbol count (%ld)" msgstr "%s: la cuenta de versión (%ld) no coincide con la cuenta de símbolos (%ld)" -#: elflink.c:440 +#: elfcode.h:1342 +#, c-format +msgid "%s(%s): relocation %d has invalid symbol index %ld" +msgstr "%s(%s): la reubicación %d tiene un índice de símbolo %ld inválido" + +#: elflink.c:1456 +#, c-format +msgid "%s: warning: unexpected redefinition of indirect versioned symbol `%s'" +msgstr "%s: aviso: redefinición inesperada del símbolo con versión indirecta `%s'" + +#: elflink.c:1807 #, c-format -msgid "%s: Section %s is too large to add hole of %ld bytes" -msgstr "%s: La sección %s es muy grande para agregar un agujero de %ld bytes" +msgid "%s: undefined versioned symbol name %s" +msgstr "%s: nombre de símbolo con versión %s sin definir" -#: elflink.h:1090 +#: elflink.c:2142 #, c-format -msgid "%s: warning: unexpected redefinition of `%s'" -msgstr "%s: aviso: redefinición inesperada de `%s'" +msgid "%s: relocation size mismatch in %s section %s" +msgstr "%s: tamaño de reubicación no coincidente en %s sección %s" -#: elflink.h:1727 +#: elflink.c:2434 +#, c-format +msgid "warning: type and size of dynamic symbol `%s' are not defined" +msgstr "aviso: el tipo y tamaño del símbolo dinámico `%s' no están definidos" + +#: elflink.h:1022 #, c-format msgid "%s: %s: invalid version %u (max %d)" msgstr "%s: %s: versión %u inválida (máximo %d)" -#: elflink.h:1768 +#: elflink.h:1063 #, c-format msgid "%s: %s: invalid needed version %d" msgstr "%s: %s: versión requerida %d inválida" -#: elflink.h:1890 +#: elflink.h:1238 #, c-format -msgid "Warning: size of symbol `%s' changed from %lu to %lu in %s" -msgstr "Aviso: el tamaño del símbolo `%s' cambió de %lu a %lu en %s" +msgid "Warning: alignment %u of symbol `%s' in %s is smaller than %u in %s" +msgstr "Aviso: la alineación %u del símbolo `%s' en %s es más pequeña que %u en %s" -#: elflink.h:3174 +#: elflink.h:1252 #, c-format -msgid "%s: .preinit_array section is not allowed in DSO" -msgstr "%s: no se permite la sección .preinit_array en DSO" +msgid "Warning: size of symbol `%s' changed from %lu in %s to %lu in %s" +msgstr "Aviso: el tamaño del símbolo `%s' cambió de %lu en %s a %lu en %s" -#: elflink.h:4030 +#: elflink.h:2160 #, c-format -msgid "warning: type and size of dynamic symbol `%s' are not defined" -msgstr "aviso: el tipo y tamaño del símbolo dinámico `%s' no están definidos" +msgid "%s: undefined version: %s" +msgstr "%s: versión sin definir: %s" -#: elflink.h:4345 +#: elflink.h:2226 #, c-format -msgid "%s: undefined versioned symbol name %s" -msgstr "%s: nombre de símbolo con versión %s sin definir" - -#: elflink.h:4611 elflink.h:4619 elflink.h:6508 elflink.h:7600 -msgid "Error: out of memory" -msgstr "Error: memoria agotada" +msgid "%s: .preinit_array section is not allowed in DSO" +msgstr "%s: no se permite la sección .preinit_array en DSO" -#: elflink.h:4781 +#: elflink.h:3078 msgid "Not enough memory to sort relocations" msgstr "No hay suficiente memoria para ordenar las reubicaciones" -#: elflink.h:5682 elflink.h:5725 +#: elflink.h:3958 elflink.h:4001 #, c-format msgid "%s: could not find output section %s" msgstr "%s: no se puede encontrar la sección de salida %s" -#: elflink.h:5688 +#: elflink.h:3964 #, c-format msgid "warning: %s section has zero size" msgstr "aviso: la sección %s es de tamaño cero" -#: elflink.h:6275 +#: elflink.h:4483 +#, c-format +msgid "%s: %s symbol `%s' in %s is referenced by DSO" +msgstr "%s: el símbolo %s `%s' en %s está referenciado por DSO" + +#: elflink.h:4564 #, c-format msgid "%s: could not find output section %s for input section %s" msgstr "%s: no se puede encontrar la sección de salida %s para la sección de entrada %s" -#: elflink.h:6486 +#: elflink.h:4666 #, c-format -msgid "%s: relocation size mismatch in %s section %s" -msgstr "%s: tamaño de reubicación no coincidente en %s sección %s" - -#: elflink.h:6849 -msgid "warning: relocation against removed section; zeroing" -msgstr "aviso: reubicación contra una sección eliminada; cambiando a ceros" +msgid "%s: %s symbol `%s' isn't defined" +msgstr "%s: el símbolo %s `%s' no está definido" -#: elflink.h:6879 -msgid "warning: relocation against removed section" -msgstr "aviso: reubicación contra una sección eliminada" +#: elflink.h:5053 elflink.h:5095 +msgid "%T: discarded in section `%s' from %s\n" +msgstr "%T: descartado en la sección `%s' desde %s\n" -#: elflink.h:6892 -#, c-format -msgid "local symbols in discarded section %s" -msgstr "símbolos locales en la sección descartada %s" - -#: elfxx-mips.c:734 +#: elfxx-mips.c:887 msgid "static procedure (no name)" msgstr "procedimiento estático (sin nombre)" -#: elfxx-mips.c:1601 +#: elfxx-mips.c:1897 msgid "not enough GOT space for local GOT entries" msgstr "no hay suficiente espacio GOT para entradas GOT locales" -#: elfxx-mips.c:2750 +#: elfxx-mips.c:3691 #, c-format msgid "%s: %s+0x%lx: jump to stub routine which is not jal" msgstr "%s: %s+0x%lx: salto a una rutina cabo la cual no es jal" -#: elfxx-mips.c:4270 +#: elfxx-mips.c:5192 #, c-format msgid "%s: Malformed reloc detected for section %s" msgstr "%s: Se detectó una reubicación malformada para la sección %s" -#: elfxx-mips.c:4348 +#: elfxx-mips.c:5266 #, c-format msgid "%s: CALL16 reloc at 0x%lx not against global symbol" msgstr "%s: la reubicación CALL16 en 0x%lx no es contra un símbolo global" -#: elfxx-mips.c:7301 +#: elfxx-mips.c:8692 #, c-format msgid "%s: illegal section name `%s'" msgstr "%s: nombre de sección `%s' ilegal" -#: elfxx-mips.c:7615 +#: elfxx-mips.c:9025 +#, c-format +msgid "%s: endianness incompatible with that of the selected emulation" +msgstr "%s: la endianez es incompatible con aquella de la emulación seleccionada" + +#: elfxx-mips.c:9037 #, c-format -msgid "%s: linking PIC files with non-PIC files" -msgstr "%s: enlazando ficheros PIC con ficheros que no son PIC" +msgid "%s: ABI is incompatible with that of the selected emulation" +msgstr "%s: la ABI es incompatible con aquella de la emulación seleccionada" -#: elfxx-mips.c:7625 +#: elfxx-mips.c:9104 #, c-format -msgid "%s: linking abicalls files with non-abicalls files" -msgstr "%s: enlazando ficheros de llamadas abi con ficheros que no son de llamadas abi" +msgid "%s: warning: linking PIC files with non-PIC files" +msgstr "%s: aviso: enlazando ficheros PIC con ficheros que no son PIC" -#: elfxx-mips.c:7654 +#: elfxx-mips.c:9121 #, c-format -msgid "%s: ISA mismatch (-mips%d) with previous modules (-mips%d)" -msgstr "%s: no coincide el ISA (-mips%d) con módulos previos (-mips%d)" +msgid "%s: linking 32-bit code with 64-bit code" +msgstr "%s: enlazando código de 32-bit con código de 64-bit" -#: elfxx-mips.c:7676 +#: elfxx-mips.c:9149 #, c-format -msgid "%s: ISA mismatch (%d) with previous modules (%d)" -msgstr "%s: no coincide el ISA (%d) con módulos previos (%d)" +msgid "%s: linking %s module with previous %s modules" +msgstr "%s: enlazando el módulo %s con módulos %s previos" -#: elfxx-mips.c:7699 +#: elfxx-mips.c:9172 #, c-format msgid "%s: ABI mismatch: linking %s module with previous %s modules" msgstr "%s: no coincide el ABI: enlazando el módulo %s con módulos %s previos" -#: elfxx-mips.c:7759 +#: elfxx-mips.c:9241 msgid " [abi=O32]" msgstr " [abi=O32]" -#: elfxx-mips.c:7761 +#: elfxx-mips.c:9243 msgid " [abi=O64]" msgstr " [abi=O64]" -#: elfxx-mips.c:7763 +#: elfxx-mips.c:9245 msgid " [abi=EABI32]" msgstr " [abi=EABI32]" -#: elfxx-mips.c:7765 +#: elfxx-mips.c:9247 msgid " [abi=EABI64]" msgstr " [abi=EABI64]" -#: elfxx-mips.c:7767 +#: elfxx-mips.c:9249 msgid " [abi unknown]" msgstr " [abi desconocido]" -#: elfxx-mips.c:7769 +#: elfxx-mips.c:9251 msgid " [abi=N32]" msgstr " [abi=N32]" -#: elfxx-mips.c:7771 +#: elfxx-mips.c:9253 msgid " [abi=64]" msgstr " [abi=64]" -#: elfxx-mips.c:7773 +#: elfxx-mips.c:9255 msgid " [no abi set]" msgstr " [no hay conjunto abi]" -#: elfxx-mips.c:7776 +#: elfxx-mips.c:9258 msgid " [mips1]" msgstr " [mips1]" -#: elfxx-mips.c:7778 +#: elfxx-mips.c:9260 msgid " [mips2]" msgstr " [mips2]" -#: elfxx-mips.c:7780 +#: elfxx-mips.c:9262 msgid " [mips3]" msgstr " [mips3]" -#: elfxx-mips.c:7782 +#: elfxx-mips.c:9264 msgid " [mips4]" msgstr " [mips4]" -#: elfxx-mips.c:7784 +#: elfxx-mips.c:9266 msgid " [mips5]" msgstr " [mips5]" -#: elfxx-mips.c:7786 +#: elfxx-mips.c:9268 msgid " [mips32]" msgstr " [mips32]" -#: elfxx-mips.c:7788 +#: elfxx-mips.c:9270 msgid " [mips64]" msgstr " [mips64]" -#: elfxx-mips.c:7790 +#: elfxx-mips.c:9272 +msgid " [mips32r2]" +msgstr " [mips32r2]" + +#: elfxx-mips.c:9274 msgid " [unknown ISA]" msgstr " [ISA desconocido]" -#: elfxx-mips.c:7793 +#: elfxx-mips.c:9277 msgid " [mdmx]" msgstr " [mdmx]" -#: elfxx-mips.c:7796 +#: elfxx-mips.c:9280 msgid " [mips16]" msgstr " [mips16]" -#: elfxx-mips.c:7799 +#: elfxx-mips.c:9283 msgid " [32bitmode]" msgstr " [modo 32bit]" -#: elfxx-mips.c:7801 +#: elfxx-mips.c:9285 msgid " [not 32bitmode]" msgstr " [no es modo 32bit]" -#: i386linux.c:458 m68klinux.c:462 sparclinux.c:459 +#: i386linux.c:457 m68klinux.c:461 sparclinux.c:458 #, c-format msgid "Output file requires shared library `%s'\n" msgstr "El fichero de salida requiere la biblioteca compartida `%s'\n" -#: i386linux.c:466 m68klinux.c:470 sparclinux.c:467 +#: i386linux.c:465 m68klinux.c:469 sparclinux.c:466 #, c-format msgid "Output file requires shared library `%s.so.%s'\n" msgstr "El fichero de salida requiere la biblioteca compartida `%s.so.%s'\n" -#: i386linux.c:655 i386linux.c:705 m68klinux.c:662 m68klinux.c:710 -#: sparclinux.c:657 sparclinux.c:707 +#: i386linux.c:654 i386linux.c:704 m68klinux.c:661 m68klinux.c:709 +#: sparclinux.c:656 sparclinux.c:706 #, c-format msgid "Symbol %s not defined for fixups\n" msgstr "El símbolo %s no está definido para composturas\n" -#: i386linux.c:729 m68klinux.c:734 sparclinux.c:731 +#: i386linux.c:728 m68klinux.c:733 sparclinux.c:730 msgid "Warning: fixup count mismatch\n" msgstr "Aviso: no coincide la cuenta de composturas\n" -#: ieee.c:235 +#: ieee.c:293 #, c-format msgid "%s: string too long (%d chars, max 65535)" msgstr "%s: la cadena es demasiado larga (%d caracteres, máximo 65535)" -#: ieee.c:365 +#: ieee.c:428 #, c-format msgid "%s: unrecognized symbol `%s' flags 0x%x" msgstr "%s: símbolo `%s' no reconocido opciones 0x%x" -#: ieee.c:877 +#: ieee.c:938 #, c-format msgid "%s: unimplemented ATI record %u for symbol %u" msgstr "%s: grabación ATI %u sin implementar para el símbolo %u" -#: ieee.c:902 +#: ieee.c:963 #, c-format msgid "%s: unexpected ATN type %d in external part" msgstr "%s: tipo ATN %d inesperado en la parte externa" -#: ieee.c:924 +#: ieee.c:985 #, c-format msgid "%s: unexpected type after ATN" msgstr "%s: tipo inesperado después de ATN" -#: ihex.c:258 +#: ihex.c:264 #, c-format msgid "%s:%d: unexpected character `%s' in Intel Hex file\n" msgstr "%s:%d: carácter `%s' inesperado en el fichero Hexadecimal de Intel\n" -#: ihex.c:366 +#: ihex.c:372 #, c-format msgid "%s:%u: bad checksum in Intel Hex file (expected %u, found %u)" msgstr "%s:%u: suma de comprobación errónea en el fichero Hexadecimal de Intel (se esperaba %u, se obtuvo %u)" -#: ihex.c:420 +#: ihex.c:426 #, c-format msgid "%s:%u: bad extended address record length in Intel Hex file" msgstr "%s:%u: longitud de registro de dirección extendida errónea en el fichero Hexadecimal de Intel" -#: ihex.c:437 +#: ihex.c:443 #, c-format msgid "%s:%u: bad extended start address length in Intel Hex file" msgstr "%s:%u: longitud de dirección de inicio extendida errónea en el fichero Hexadecimal de Intel" -#: ihex.c:454 +#: ihex.c:460 #, c-format msgid "%s:%u: bad extended linear address record length in Intel Hex file" msgstr "%s:%u: longitud de registro de dirección lineal extendida errónea en el fichero Hexadecimal de Intel" -#: ihex.c:471 +#: ihex.c:477 #, c-format msgid "%s:%u: bad extended linear start address length in Intel Hex file" msgstr "%s:%u: longitud de dirección de inicio lineal extendida errónea en el fichero Hexadecimal de Intel" -#: ihex.c:488 +#: ihex.c:494 #, c-format msgid "%s:%u: unrecognized ihex type %u in Intel Hex file\n" msgstr "%s:%u: tipo ihex %u no reconocido en el fichero Hexadecimal de Intel\n" -#: ihex.c:607 +#: ihex.c:619 #, c-format msgid "%s: internal error in ihex_read_section" msgstr "%s: error interno en ihex_read_section" -#: ihex.c:642 +#: ihex.c:654 #, c-format msgid "%s: bad section length in ihex_read_section" msgstr "%s: longitud de sección errónea en ihex_read_section" -#: ihex.c:860 +#: ihex.c:872 #, c-format msgid "%s: address 0x%s out of range for Intel Hex file" msgstr "%s: la dirección 0x%s está fuera de rango en el fichero Hexadecimal de Intel" -#: libbfd.c:492 -#, c-format -msgid "not mapping: data=%lx mapped=%d\n" -msgstr "no se mapea: datos=%lx mapeados%d\n" - -#: libbfd.c:495 -msgid "not mapping: env var not set\n" -msgstr "no se mapea: no se estableció la variable de ambiente\n" - -#: libbfd.c:1466 +#: libbfd.c:861 #, c-format msgid "Deprecated %s called at %s line %d in %s\n" msgstr "Se llamó a %s que está deprecado en %s línea %d en %s\n" -#: libbfd.c:1469 +#: libbfd.c:864 #, c-format msgid "Deprecated %s called\n" msgstr "Se llamó a %s que está deprecado\n" -#: linker.c:1873 +#: linker.c:1829 #, c-format msgid "%s: indirect symbol `%s' to `%s' is a loop" msgstr "%s: el símbolo indirecto `%s' para `%s' es un ciclo" -#: linker.c:2776 +#: linker.c:2697 #, c-format -msgid "Attempt to do relocateable link with %s input and %s output" +msgid "Attempt to do relocatable link with %s input and %s output" msgstr "Se intentó hacer un enlace reubicable con entrada %s y salida %s" -#: merge.c:892 +#: merge.c:896 #, c-format msgid "%s: access beyond end of merged section (%ld + %ld)" msgstr "%s: acceso más allá del final de la sección mezclada (%ld + %ld)" -#: mmo.c:460 +#: mmo.c:503 #, c-format msgid "%s: No core to allocate section name %s\n" msgstr "%s: No hay core para asignar el nombre de sección %s\n" -#: mmo.c:536 +#: mmo.c:579 #, c-format msgid "%s: No core to allocate a symbol %d bytes long\n" msgstr "%s: No hay core para asignar un símbolo de %d bytes de longitud\n" -#: mmo.c:1245 +#: mmo.c:1287 #, c-format msgid "%s: invalid mmo file: initialization value for $255 is not `Main'\n" msgstr "%s: fichero mmo inválido: el valor de iniciación para $255 no es `Main'\n" -#: mmo.c:1391 +#: mmo.c:1433 #, c-format msgid "%s: unsupported wide character sequence 0x%02X 0x%02X after symbol name starting with `%s'\n" msgstr "%s: secuencia de caracteres anchos 0x%02X 0x%02X sin soporte después del nombre de símbolo que inicia con `%s'\n" -#: mmo.c:1633 +#: mmo.c:1674 #, c-format msgid "%s: invalid mmo file: unsupported lopcode `%d'\n" msgstr "%s: fichero mmo inválido: código de operación-l `%d' sin soporte\n" -#: mmo.c:1643 +#: mmo.c:1684 #, c-format msgid "%s: invalid mmo file: expected YZ = 1 got YZ = %d for lop_quote\n" msgstr "%s: fichero mmo inválido: se esperaba YZ = 1 se obtuvo YZ = %d para lop_quote\n" -#: mmo.c:1679 +#: mmo.c:1720 #, c-format msgid "%s: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_loc\n" msgstr "%s: fichero mmo inválido: se esperaba z = 1 ó z = 2, se obtuvo z = %d para lop_loc\n" -#: mmo.c:1725 +#: mmo.c:1766 #, c-format msgid "%s: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_fixo\n" msgstr "%s: fichero mmo inválido: se esperaba z = 1 ó z = 2, se obtuvo z = %d para lop_fixo\n" -#: mmo.c:1764 +#: mmo.c:1805 #, c-format msgid "%s: invalid mmo file: expected y = 0, got y = %d for lop_fixrx\n" msgstr "%s: fichero mmo inválido: se esperaba y = 0, se obtuvo y = %d para lop_fixrx\n" -#: mmo.c:1773 +#: mmo.c:1814 #, c-format msgid "%s: invalid mmo file: expected z = 16 or z = 24, got z = %d for lop_fixrx\n" msgstr "%s: fichero mmo inválido: se esperaba z = 16 ó z = 24, se obtuvo z = %d para lop_fixrx\n" -#: mmo.c:1796 +#: mmo.c:1837 #, 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: fichero mmo inválido: el byte inicial de la palabra operando debe ser 0 ó 1, se obtuvo %d para lop_fixrx\n" -#: mmo.c:1819 +#: mmo.c:1860 #, c-format msgid "%s: cannot allocate file name for file number %d, %d bytes\n" msgstr "%s: no se puede asignar el nombre de fichero para el número de fichero %d, %d bytes\n" -#: mmo.c:1839 +#: mmo.c:1880 #, c-format msgid "%s: invalid mmo file: file number %d `%s', was already entered as `%s'\n" msgstr "%s: fichero mmo inválido: el número de fichero %d `%s' ya se había introducido como `%s'\n" -#: mmo.c:1852 +#: mmo.c:1893 #, c-format msgid "%s: invalid mmo file: file name for number %d was not specified before use\n" msgstr "%s: fichero mmo inválido: no se especificó un nombre de fichero para el número %d antes de utilizarse\n" -#: mmo.c:1958 +#: mmo.c:1999 #, c-format msgid "%s: invalid mmo file: fields y and z of lop_stab non-zero, y: %d, z: %d\n" msgstr "%s: fichero mmo inválido: los campos y y z de lop_stab no son cero, y: %d, z: %d\n" -#: mmo.c:1994 +#: mmo.c:2035 #, c-format msgid "%s: invalid mmo file: lop_end not last item in file\n" msgstr "%s: fichero mmo inválido: lop_end no es el último elemento en el fichero\n" -#: mmo.c:2007 +#: mmo.c:2048 #, 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: fichero mmo inválido: YZ de lop_end (%ld) no es igual al número de tetras del lop_stab precedente (%ld)\n" -#: mmo.c:2670 +#: mmo.c:2698 #, c-format msgid "%s: invalid symbol table: duplicate symbol `%s'\n" msgstr "%s: tabla de símbolos inválida: símbolo `%s' duplicado\n" -#: mmo.c:2921 +#: mmo.c:2949 #, c-format msgid "%s: Bad symbol definition: `Main' set to %s rather than the start address %s\n" msgstr "%s: Definición de símbolo errónea: `Main' se estableción como %s en lugar de la dirección de inicio %s\n" -#: mmo.c:3011 +#: mmo.c:3039 #, 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: aviso: la tabla de símbolos es demasiado grande para mmo, es más grande que 65535 words de 32-bit: %d. Sólo se emitirá `Main'.\n" -#: mmo.c:3056 +#: mmo.c:3084 #, c-format msgid "%s: internal error, symbol table changed size from %d to %d words\n" msgstr "%s: error interno, la tabla de símbolos cambió de tamaño de %d a %d words\n" -#: mmo.c:3111 +#: mmo.c:3139 #, c-format msgid "%s: internal error, internal register section %s had contents\n" msgstr "%s: error interno, la sección interna de registros %s tiene contenido\n" -#: mmo.c:3163 +#: mmo.c:3191 #, c-format msgid "%s: no initialized registers; section length 0\n" msgstr "%s: no hay registros iniciados; longitud de sección 0\n" -#: mmo.c:3169 +#: mmo.c:3197 #, c-format msgid "%s: too many initialized registers; section length %ld\n" msgstr "%s: demasiados registros iniciados: longitud de sección %ld\n" -#: mmo.c:3174 +#: mmo.c:3202 #, c-format msgid "%s: invalid start address for initialized registers of length %ld: 0x%lx%08lx\n" msgstr "%s: dirección de inicio inválida para los registros iniciados de longitud %ld: 0x%lx%08lx\n" -#: oasys.c:1029 +#: oasys.c:1052 #, c-format msgid "%s: can not represent section `%s' in oasys" msgstr "%s: no se puede representar la sección `%s' en oasys" -#: osf-core.c:132 +#: osf-core.c:137 #, c-format msgid "Unhandled OSF/1 core file section type %d\n" msgstr "Tipo de sección de fichero núcleo OSF/1 %d sin manejar\n" -#: pe-mips.c:658 +#: pe-mips.c:659 #, c-format msgid "%s: `ld -r' not supported with PE MIPS objects\n" msgstr "%s: `ld -r' no tiene soporte con objetos PE MIPS\n" @@ -1988,53 +2226,53 @@ msgstr "%s: `ld -r' no tiene soporte con #. mem = pointer to memory we're fixing up #. val = VMA of what we need to refer to #. -#: pe-mips.c:794 +#: pe-mips.c:795 #, c-format msgid "%s: unimplemented %s\n" msgstr "%s: %s sin implementar\n" -#: pe-mips.c:820 +#: pe-mips.c:821 #, c-format msgid "%s: jump too far away\n" msgstr "%s: salto demasiado lejos\n" -#: pe-mips.c:847 +#: pe-mips.c:848 #, c-format msgid "%s: bad pair/reflo after refhi\n" msgstr "%s: pair/reflo erróneo después de refhi\n" #. XXX code yet to be written. -#: peicode.h:785 +#: peicode.h:787 #, c-format msgid "%s: Unhandled import type; %x" msgstr "%s: Tipo de importación sin manejar; %x" -#: peicode.h:790 +#: peicode.h:792 #, c-format msgid "%s: Unrecognised import type; %x" msgstr "%s: Tipo de importación no reconocida; %x" -#: peicode.h:804 +#: peicode.h:806 #, c-format msgid "%s: Unrecognised import name type; %x" msgstr "%s: Tipo de nombre de importación no reconocida; %x" -#: peicode.h:1162 +#: peicode.h:1164 #, c-format msgid "%s: Unrecognised machine type (0x%x) in Import Library Format archive" msgstr "%s: Tipo de máquina (0x%x) no reconocida en el archivo de Formato de Importación de Bibliotecas" -#: peicode.h:1174 +#: peicode.h:1176 #, c-format msgid "%s: Recognised but unhandled machine type (0x%x) in Import Library Format archive" msgstr "%s: Tipo de máquina (0x%x) reconocida pero sin manejar en el archivo de Formato de Importación de Bibliotecas" -#: peicode.h:1191 +#: peicode.h:1193 #, c-format msgid "%s: size field is zero in Import Library Format header" msgstr "%s: el tamaño del campo es cero en el encabezado del Formato de Importación de Bibliotecas" -#: peicode.h:1219 +#: peicode.h:1224 #, c-format msgid "%s: string not null terminated in ILF object file." msgstr "%s: la cadena no termina en null en el fichero objeto ILF." @@ -2091,11 +2329,11 @@ msgstr "Partición[%d] sector = 0x%.8lx ( msgid "Partition[%d] length = 0x%.8lx (%ld)\n" msgstr "Partición[%d] longitud = 0x%.8lx (%ld)\n" -#: som.c:5398 +#: som.c:5422 msgid "som_sizeof_headers unimplemented" msgstr "som_sizeof_headers sin implementar" -#: srec.c:301 +#: srec.c:302 #, c-format msgid "%s:%d: Unexpected character `%s' in S-record file\n" msgstr "%s:%d: Caractér `%s' inesperado en el fichero S-record\n" @@ -2105,7 +2343,7 @@ msgstr "%s:%d: Caractér `%s' inesperado msgid "%s(%s+0x%lx): Stabs entry has invalid string index." msgstr "%s(%s+0x%lx): La entrada de cabos tiene una cadena índice inválida." -#: syms.c:1044 +#: syms.c:1019 msgid "Unsupported .stab relocation" msgstr "Reubicación .stab sin soporte" @@ -2124,33 +2362,33 @@ msgstr "bfd_set_section_flags (%s, %x) f msgid "Size mismatch section %s=%lx, %s=%lx" msgstr "No coincide el tamaño de la sección %s=%lx, %s=%lx" -#: vms-gsd.c:702 +#: vms-gsd.c:704 #, c-format msgid "unknown gsd/egsd subtype %d" msgstr "subtipo de gsd/egsd %d desconocido" -#: vms-hdr.c:406 +#: vms-hdr.c:408 msgid "Object module NOT error-free !\n" msgstr "¡ El módulo objeto NO está libre de errores !\n" -#: vms-misc.c:543 +#: vms-misc.c:541 #, c-format msgid "Stack overflow (%d) in _bfd_vms_push" msgstr "Desbordamiento de la pila (%d) en _bfd_vms_push" -#: vms-misc.c:561 +#: vms-misc.c:559 msgid "Stack underflow in _bfd_vms_pop" msgstr "Desbordamiento por debajo de la pila en _bfd_vms_pop" -#: vms-misc.c:919 +#: vms-misc.c:918 msgid "_bfd_vms_output_counted called with zero bytes" msgstr "se llamó _bfd_vms_output_counted con cero bytes" -#: vms-misc.c:924 +#: vms-misc.c:923 msgid "_bfd_vms_output_counted called with too many bytes" msgstr "se llamó _bfd_vms_output_counted con demasiados bytes" -#: vms-misc.c:1055 +#: vms-misc.c:1054 #, c-format msgid "Symbol %s replaced by %s\n" msgstr "El símbolo %s fue reemplazado por %s\n" @@ -2160,26 +2398,26 @@ msgstr "El símbolo %s fue reemplazado po msgid "failed to enter %s" msgstr "falló la introducción de %s" -#: vms-tir.c:81 +#: vms-tir.c:102 msgid "No Mem !" msgstr "¡ No hay Memoria !" -#: vms-tir.c:362 +#: vms-tir.c:383 #, c-format msgid "bad section index in %s" msgstr "Índice de sección erróneo en %s" -#: vms-tir.c:375 +#: vms-tir.c:396 #, c-format msgid "unsupported STA cmd %s" msgstr "orden STA %s sin soporte" -#: vms-tir.c:380 vms-tir.c:1240 +#: vms-tir.c:401 vms-tir.c:1261 #, c-format msgid "reserved STA cmd %d" msgstr "orden STA %d reservada" -#: vms-tir.c:491 vms-tir.c:514 +#: vms-tir.c:512 vms-tir.c:535 #, c-format msgid "%s: no symbol \"%s\"" msgstr "%s: no existe el símbolo \"%s\"" @@ -2188,39 +2426,39 @@ msgstr "%s: no existe el símbolo \"%s\"" #. 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 +#: vms-tir.c:602 vms-tir.c:714 vms-tir.c:824 vms-tir.c:842 vms-tir.c:850 +#: vms-tir.c:859 vms-tir.c:1584 #, c-format msgid "%s: not supported" msgstr "%s: no tiene soporte" -#: vms-tir.c:586 vms-tir.c:1418 +#: vms-tir.c:607 vms-tir.c:1439 #, c-format msgid "%s: not implemented" msgstr "%s: sin implementar" -#: vms-tir.c:590 vms-tir.c:1422 +#: vms-tir.c:611 vms-tir.c:1443 #, c-format msgid "reserved STO cmd %d" msgstr "orden STO %d reservada" -#: vms-tir.c:708 vms-tir.c:1568 +#: vms-tir.c:729 vms-tir.c:1589 #, c-format msgid "reserved OPR cmd %d" msgstr "orden OPR %d reservada" -#: vms-tir.c:776 vms-tir.c:1632 +#: vms-tir.c:797 vms-tir.c:1653 #, c-format msgid "reserved CTL cmd %d" msgstr "orden CTL %d reservada" #. stack byte from image #. arg: none. -#: vms-tir.c:1148 +#: vms-tir.c:1169 msgid "stack-from-image not implemented" msgstr "pila-desde-imagen sin implementar" -#: vms-tir.c:1166 +#: vms-tir.c:1187 msgid "stack-entry-mask not fully implemented" msgstr "pila-máscara-entrada no está completamente implementado" @@ -2231,261 +2469,271 @@ msgstr "pila-máscara-entrada no está com #. #. compare argument descriptor with symbol argument (ARG$V_PASSMECH) #. and stack TRUE (args match) or FALSE (args dont match) value. -#: vms-tir.c:1180 +#: vms-tir.c:1201 msgid "PASSMECH not fully implemented" msgstr "PASSMECH no está completamente implementado" -#: vms-tir.c:1199 +#: vms-tir.c:1220 msgid "stack-local-symbol not fully implemented" msgstr "pila-símbolo-local no está completamente implementado" -#: vms-tir.c:1212 +#: vms-tir.c:1233 msgid "stack-literal not fully implemented" msgstr "pila-literal no está completamente implementado" -#: vms-tir.c:1233 +#: vms-tir.c:1254 msgid "stack-local-symbol-entry-point-mask not fully implemented" msgstr "pila-símbolo-local-máscara-punto-entrada no está completamente implementado" -#: 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 +#: vms-tir.c:1531 vms-tir.c:1543 vms-tir.c:1555 vms-tir.c:1567 vms-tir.c:1632 +#: vms-tir.c:1640 vms-tir.c:1648 #, c-format msgid "%s: not fully implemented" msgstr "%s: no está completamente implementado" -#: vms-tir.c:1684 +#: vms-tir.c:1705 #, c-format msgid "obj code %d not found" msgstr "no se encontró el código objeto %d" -#: vms-tir.c:2019 +#: vms-tir.c:2043 #, c-format msgid "SEC_RELOC with no relocs in section %s" msgstr "SEC_RELOC sin reubicaciones en la sección %s" -#: vms-tir.c:2307 +#: vms-tir.c:2331 #, c-format msgid "Unhandled relocation %s" msgstr "Reubicación %s sin manejar" -#: xcofflink.c:1243 +#: xcofflink.c:1244 #, c-format msgid "%s: `%s' has line numbers but no enclosing section" msgstr "%s: `%s' tiene números de línea pero no una sección contenedora" -#: xcofflink.c:1296 +#: xcofflink.c:1297 #, c-format msgid "%s: class %d symbol `%s' has no aux entries" msgstr "%s: clase %d símbolo `%s' no tiene entradas auxiliares" -#: xcofflink.c:1319 +#: xcofflink.c:1320 #, c-format msgid "%s: symbol `%s' has unrecognized csect type %d" msgstr "%s: el símbolo `%s' tiene un tipo csect %d no reconocido" -#: xcofflink.c:1331 +#: xcofflink.c:1332 #, c-format msgid "%s: bad XTY_ER symbol `%s': class %d scnum %d scnlen %d" msgstr "%s: símbolo XTY_ER `%s' erróneo: clase %d scnum %d scnlen %d" -#: xcofflink.c:1367 +#: xcofflink.c:1368 #, c-format msgid "%s: XMC_TC0 symbol `%s' is class %d scnlen %d" msgstr "%s: símbolo XMC_TCO `%s' es clase %d scnlen %d" -#: xcofflink.c:1519 +#: xcofflink.c:1520 #, c-format msgid "%s: csect `%s' not in enclosing section" msgstr "%s: csect `%s' no está contenido en una sección" -#: xcofflink.c:1626 +#: xcofflink.c:1627 #, c-format msgid "%s: misplaced XTY_LD `%s'" msgstr "%s: XTY_LD `%s' mal ubicado" -#: xcofflink.c:1957 +#: xcofflink.c:1958 #, c-format msgid "%s: reloc %s:%d not in csect" msgstr "%s: la reubicación %s:%d no está en csect" -#: xcofflink.c:2092 +#: xcofflink.c:2095 #, c-format msgid "%s: XCOFF shared object when not producing XCOFF output" msgstr "%s: objeto compartido XCOFF cuando no se produce salida XCOFF" -#: xcofflink.c:2113 +#: xcofflink.c:2116 #, c-format msgid "%s: dynamic object with no .loader section" msgstr "%s: objeto dinámico sin sección .loader" -#: xcofflink.c:2758 +#: xcofflink.c:2761 #, c-format msgid "%s: no such symbol" msgstr "%s: no hay tal símbolo" -#: xcofflink.c:2891 +#: xcofflink.c:2894 msgid "error: undefined symbol __rtinit" msgstr "error: símbolo __rtinit indefinido" -#: xcofflink.c:3453 +#: xcofflink.c:3455 #, c-format msgid "warning: attempt to export undefined symbol `%s'" msgstr "aviso: intento de exportar el símbolo sin definir `%s'" -#: xcofflink.c:4447 +#: xcofflink.c:4448 #, c-format msgid "TOC overflow: 0x%lx > 0x10000; try -mminimal-toc when compiling" msgstr "Desbordamiento de TOC: 0x%lx > 0x10000; pruebe -mminimal-toc al compilar" -#: xcofflink.c:5287 xcofflink.c:5756 xcofflink.c:5818 xcofflink.c:6119 +#: xcofflink.c:5288 xcofflink.c:5755 xcofflink.c:5817 xcofflink.c:6119 #, c-format msgid "%s: loader reloc in unrecognized section `%s'" msgstr "%s: reubicación del cargador en la sección `%s' no reconocida" -#: xcofflink.c:5309 xcofflink.c:6130 +#: xcofflink.c:5310 xcofflink.c:6130 #, c-format msgid "%s: `%s' in loader reloc but not loader sym" msgstr "%s: `%s' en la reubicación del cargador pero no es un símbolo del cargador" -#: xcofflink.c:5324 +#: xcofflink.c:5325 #, c-format msgid "%s: loader reloc in read-only section %s" msgstr "%s: reubicación del cargador en la sección de sólo lectura %s" -#: elf32-ia64.c:2222 elf64-ia64.c:2222 +#: elf32-ia64.c:2392 elf64-ia64.c:2392 msgid "@pltoff reloc against local symbol" msgstr "reubicación @pltoff contra un símbolo local" -#: elf32-ia64.c:3562 elf64-ia64.c:3562 +#: elf32-ia64.c:3804 elf64-ia64.c:3804 #, c-format msgid "%s: short data segment overflowed (0x%lx >= 0x400000)" msgstr "%s: segmento de datos short desbordado (0x%lx >= 0x400000)" -#: elf32-ia64.c:3573 elf64-ia64.c:3573 +#: elf32-ia64.c:3815 elf64-ia64.c:3815 #, c-format msgid "%s: __gp does not cover short data segment" msgstr "%s: __gp no cubre el segmento de datos short" -#: elf32-ia64.c:3858 elf64-ia64.c:3858 +#: elf32-ia64.c:4131 elf64-ia64.c:4131 #, c-format msgid "%s: linking non-pic code in a shared library" msgstr "%s: enlazando código que no es pic en una biblioteca compartida" -#: elf32-ia64.c:3891 elf64-ia64.c:3891 +#: elf32-ia64.c:4164 elf64-ia64.c:4164 #, c-format msgid "%s: @gprel relocation against dynamic symbol %s" msgstr "%s: reubicación @gprel contra el símbolo dinámico %s" -#: elf32-ia64.c:4030 elf64-ia64.c:4030 +#: elf32-ia64.c:4224 elf64-ia64.c:4224 +#, c-format +msgid "%s: linking non-pic code in a position independent executable" +msgstr "%s: enlazando código que no es pic en un ejecutable independiente de posición" + +#: elf32-ia64.c:4363 elf64-ia64.c:4363 #, c-format -msgid "%s: dynamic relocation against speculation fixup" -msgstr "%s: reubicación dinámica contra una compostura de especulación" +msgid "%s: @internal branch to dynamic symbol %s" +msgstr "%s: ramificación @internal al símbolo dinámico %s" -#: elf32-ia64.c:4038 elf64-ia64.c:4038 +#: elf32-ia64.c:4365 elf64-ia64.c:4365 #, c-format -msgid "%s: speculation fixup against undefined weak symbol" -msgstr "%s: compostura de especulación contra un símbolo débil indefinido" +msgid "%s: speculation fixup to dynamic symbol %s" +msgstr "%s: compostura de especulación al símbolo dinámico %s" -#: elf32-ia64.c:4271 elf64-ia64.c:4271 +#: elf32-ia64.c:4367 elf64-ia64.c:4367 +#, c-format +msgid "%s: @pcrel relocation against dynamic symbol %s" +msgstr "%s: reubicación @pcrel contra el símbolo dinámico %s" + +#: elf32-ia64.c:4579 elf64-ia64.c:4579 msgid "unsupported reloc" msgstr "reubicación sin soporte" -#: elf32-ia64.c:4551 elf64-ia64.c:4551 +#: elf32-ia64.c:4858 elf64-ia64.c:4858 #, c-format msgid "%s: linking trap-on-NULL-dereference with non-trapping files" msgstr "%s: enlazando deferencias-captura-en-NULL con ficheros que no son de captura" -#: elf32-ia64.c:4560 elf64-ia64.c:4560 +#: elf32-ia64.c:4867 elf64-ia64.c:4867 #, c-format msgid "%s: linking big-endian files with little-endian files" msgstr "%s: enlazando ficheros big endian con ficheros little endian" -#: elf32-ia64.c:4569 elf64-ia64.c:4569 +#: elf32-ia64.c:4876 elf64-ia64.c:4876 #, c-format msgid "%s: linking 64-bit files with 32-bit files" msgstr "%s: enlazando ficheros de 64-bit con ficheros de 32-bit" -#: elf32-ia64.c:4578 elf64-ia64.c:4578 +#: elf32-ia64.c:4885 elf64-ia64.c:4885 #, c-format msgid "%s: linking constant-gp files with non-constant-gp files" msgstr "%s: enlazando ficheros de gp constante con ficheros con gp no constante" -#: elf32-ia64.c:4588 elf64-ia64.c:4588 +#: elf32-ia64.c:4895 elf64-ia64.c:4895 #, c-format msgid "%s: linking auto-pic files with non-auto-pic files" msgstr "%s: enlazando ficheros de pic automático con ficheros sin pic automático" -#: peigen.c:962 pepigen.c:962 +#: peigen.c:985 pepigen.c:985 #, c-format msgid "%s: line number overflow: 0x%lx > 0xffff" msgstr "%s: desbordamiento de número de línea: 0x%lx > 0xffff" -#: peigen.c:979 pepigen.c:979 +#: peigen.c:1002 pepigen.c:1002 #, c-format msgid "%s: reloc overflow 1: 0x%lx > 0xffff" msgstr "%s: desbordamiento de reubicación 1: 0x%lx > 0xffff" -#: peigen.c:993 pepigen.c:993 +#: peigen.c:1016 pepigen.c:1016 msgid "Export Directory [.edata (or where ever we found it)]" msgstr "Directorio de Exportación [.edata (o donde quiera que se encuentre)]" -#: peigen.c:994 pepigen.c:994 +#: peigen.c:1017 pepigen.c:1017 msgid "Import Directory [parts of .idata]" msgstr "Directorio de Importación [partes de .idata]" -#: peigen.c:995 pepigen.c:995 +#: peigen.c:1018 pepigen.c:1018 msgid "Resource Directory [.rsrc]" msgstr "Directorio de Recursos [.rsrc]" -#: peigen.c:996 pepigen.c:996 +#: peigen.c:1019 pepigen.c:1019 msgid "Exception Directory [.pdata]" msgstr "Directorio de Excepciones [.pdata]" -#: peigen.c:997 pepigen.c:997 +#: peigen.c:1020 pepigen.c:1020 msgid "Security Directory" msgstr "Directorio de Seguridad" -#: peigen.c:998 pepigen.c:998 +#: peigen.c:1021 pepigen.c:1021 msgid "Base Relocation Directory [.reloc]" msgstr "Directorio de Reubicación Base [.reloc]" -#: peigen.c:999 pepigen.c:999 +#: peigen.c:1022 pepigen.c:1022 msgid "Debug Directory" msgstr "Directorio de Depuración" -#: peigen.c:1000 pepigen.c:1000 +#: peigen.c:1023 pepigen.c:1023 msgid "Description Directory" msgstr "Directorio de Descripciones" -#: peigen.c:1001 pepigen.c:1001 +#: peigen.c:1024 pepigen.c:1024 msgid "Special Directory" msgstr "Directorio Especial" -#: peigen.c:1002 pepigen.c:1002 +#: peigen.c:1025 pepigen.c:1025 msgid "Thread Storage Directory [.tls]" msgstr "Directorio de Almacenamiento de Hilos [.tls]" -#: peigen.c:1003 pepigen.c:1003 +#: peigen.c:1026 pepigen.c:1026 msgid "Load Configuration Directory" msgstr "Directorio de Carga de Configuraciones" -#: peigen.c:1004 pepigen.c:1004 +#: peigen.c:1027 pepigen.c:1027 msgid "Bound Import Directory" msgstr "Directorio de Importación de Relaciones" -#: peigen.c:1005 pepigen.c:1005 +#: peigen.c:1028 pepigen.c:1028 msgid "Import Address Table Directory" msgstr "Directorio de Importación de Tablas de Direcciones" -#: peigen.c:1006 pepigen.c:1006 +#: peigen.c:1029 pepigen.c:1029 msgid "Delay Import Directory" msgstr "Directorio de Retardo de Importación" -#: peigen.c:1007 peigen.c:1008 pepigen.c:1007 pepigen.c:1008 +#: peigen.c:1030 peigen.c:1031 pepigen.c:1030 pepigen.c:1031 msgid "Reserved" msgstr "Reservado" -#: peigen.c:1071 pepigen.c:1071 +#: peigen.c:1094 pepigen.c:1094 msgid "" "\n" "There is an import table, but the section containing it could not be found\n" @@ -2493,7 +2741,7 @@ msgstr "" "\n" "Hay una tabla de importación, pero la sección que la contiene no se puede encontrar\n" -#: peigen.c:1076 pepigen.c:1076 +#: peigen.c:1099 pepigen.c:1099 #, c-format msgid "" "\n" @@ -2502,7 +2750,7 @@ msgstr "" "\n" "Hay una tabla de importación en %s en 0x%lx\n" -#: peigen.c:1113 pepigen.c:1113 +#: peigen.c:1136 pepigen.c:1136 #, c-format msgid "" "\n" @@ -2511,12 +2759,12 @@ msgstr "" "\n" "Se localizó el descriptor de función en la dirección de inicio: %04lx\n" -#: peigen.c:1116 pepigen.c:1116 +#: peigen.c:1139 pepigen.c:1139 #, c-format msgid "\tcode-base %08lx toc (loadable/actual) %08lx/%08lx\n" msgstr "\tcódigo-base %08lx tabla-de-contenidos (cargable/actual) %08lx/%08lx\n" -#: peigen.c:1122 pepigen.c:1122 +#: peigen.c:1145 pepigen.c:1145 msgid "" "\n" "No reldata section! Function descriptor not decoded.\n" @@ -2524,7 +2772,7 @@ msgstr "" "\n" "¡No está la sección reldata! No se decodificó el descriptor de función.\n" -#: peigen.c:1127 pepigen.c:1127 +#: peigen.c:1150 pepigen.c:1150 #, c-format msgid "" "\n" @@ -2533,7 +2781,7 @@ msgstr "" "\n" "Las Tablas de Importación (se interpretaron los contenidos de la sección %s)\n" -#: peigen.c:1130 pepigen.c:1130 +#: peigen.c:1153 pepigen.c:1153 msgid "" " vma: Hint Time Forward DLL First\n" " Table Stamp Chain Name Thunk\n" @@ -2541,7 +2789,7 @@ msgstr "" " vma: Pista Fecha Adelante DLL Primero\n" " Tabla Estampa Cadena Nombre Thunk\n" -#: peigen.c:1181 pepigen.c:1181 +#: peigen.c:1204 pepigen.c:1204 #, c-format msgid "" "\n" @@ -2550,11 +2798,11 @@ msgstr "" "\n" "\tNombre de la DLL: %s\n" -#: peigen.c:1192 pepigen.c:1192 +#: peigen.c:1215 pepigen.c:1215 msgid "\tvma: Hint/Ord Member-Name Bound-To\n" msgstr "\tvma: Pista/Ord Nombre-Miembro Unido-A\n" -#: peigen.c:1217 pepigen.c:1217 +#: peigen.c:1240 pepigen.c:1240 msgid "" "\n" "There is a first thunk, but the section containing it could not be found\n" @@ -2562,7 +2810,7 @@ msgstr "" "\n" "Hay un thunk inicial, pero la sección que lo contiene no se puede encontrar\n" -#: peigen.c:1357 pepigen.c:1357 +#: peigen.c:1380 pepigen.c:1380 msgid "" "\n" "There is an export table, but the section containing it could not be found\n" @@ -2570,7 +2818,7 @@ msgstr "" "\n" "Hay una tabla de exportación, pero la sección que la contiene no se puede encontrar\n" -#: peigen.c:1362 pepigen.c:1362 +#: peigen.c:1385 pepigen.c:1385 #, c-format msgid "" "\n" @@ -2579,7 +2827,7 @@ msgstr "" "\n" "Hay una tabla de exportación en %s en 0x%lx\n" -#: peigen.c:1393 pepigen.c:1393 +#: peigen.c:1416 pepigen.c:1416 #, c-format msgid "" "\n" @@ -2590,62 +2838,62 @@ msgstr "" "Las Tablas de Exportación (se interpretaron los contenidos de la sección %s)\n" "\n" -#: peigen.c:1397 pepigen.c:1397 +#: peigen.c:1420 pepigen.c:1420 #, c-format msgid "Export Flags \t\t\t%lx\n" msgstr "Opciones de Exportación \t\t\t%lx\n" -#: peigen.c:1400 pepigen.c:1400 +#: peigen.c:1423 pepigen.c:1423 #, c-format msgid "Time/Date stamp \t\t%lx\n" msgstr "marca de Hora/Fecha \t\t%lx\n" -#: peigen.c:1403 pepigen.c:1403 +#: peigen.c:1426 pepigen.c:1426 #, c-format msgid "Major/Minor \t\t\t%d/%d\n" msgstr "Mayor/Menor \t\t\t%d/%d\n" -#: peigen.c:1406 pepigen.c:1406 +#: peigen.c:1429 pepigen.c:1429 msgid "Name \t\t\t\t" msgstr "Nombre \t\t\t\t" -#: peigen.c:1412 pepigen.c:1412 +#: peigen.c:1435 pepigen.c:1435 #, c-format msgid "Ordinal Base \t\t\t%ld\n" msgstr "Base Ordinal \t\t\t%ld\n" -#: peigen.c:1415 pepigen.c:1415 +#: peigen.c:1438 pepigen.c:1438 msgid "Number in:\n" msgstr "Número en:\n" -#: peigen.c:1418 pepigen.c:1418 +#: peigen.c:1441 pepigen.c:1441 #, c-format msgid "\tExport Address Table \t\t%08lx\n" msgstr "\tTabla de Exportación de Direcciones \t\t%08lx\n" -#: peigen.c:1422 pepigen.c:1422 +#: peigen.c:1445 pepigen.c:1445 #, c-format msgid "\t[Name Pointer/Ordinal] Table\t%08lx\n" msgstr "\tTabla [Nombre Apuntador/Ordinal]\t%08lx\n" -#: peigen.c:1425 pepigen.c:1425 +#: peigen.c:1448 pepigen.c:1448 msgid "Table Addresses\n" msgstr "Direcciones de la Tabla\n" -#: peigen.c:1428 pepigen.c:1428 +#: peigen.c:1451 pepigen.c:1451 msgid "\tExport Address Table \t\t" msgstr "\tTabla de Exportación de Direcciones \t\t" -#: peigen.c:1433 pepigen.c:1433 +#: peigen.c:1456 pepigen.c:1456 msgid "\tName Pointer Table \t\t" msgstr "\tNombre de la Tabla de Apuntadores \t\t" # continuar aqui -#: peigen.c:1438 pepigen.c:1438 +#: peigen.c:1461 pepigen.c:1461 msgid "\tOrdinal Table \t\t\t" msgstr "\tTabla Ordinal \t\t\t" -#: peigen.c:1453 pepigen.c:1453 +#: peigen.c:1476 pepigen.c:1476 #, c-format msgid "" "\n" @@ -2654,15 +2902,15 @@ msgstr "" "\n" "Tabla de Exportación de Direcciones -- Base Ordinal %ld\n" -#: peigen.c:1472 pepigen.c:1472 +#: peigen.c:1495 pepigen.c:1495 msgid "Forwarder RVA" msgstr "RVA Adelantador" -#: peigen.c:1483 pepigen.c:1483 +#: peigen.c:1506 pepigen.c:1506 msgid "Export RVA" msgstr "RVA Exportador" -#: peigen.c:1490 pepigen.c:1490 +#: peigen.c:1513 pepigen.c:1513 msgid "" "\n" "[Ordinal/Name Pointer] Table\n" @@ -2670,12 +2918,12 @@ msgstr "" "\n" "Tabla [Apuntador a Ordinal/Nombre]\n" -#: peigen.c:1545 pepigen.c:1545 +#: peigen.c:1568 pepigen.c:1568 #, c-format msgid "Warning, .pdata section size (%ld) is not a multiple of %d\n" msgstr "Aviso, el tamaño de la sección .pdata (%ld) no es un múltiplo de %d\n" -#: peigen.c:1549 pepigen.c:1549 +#: peigen.c:1572 pepigen.c:1572 msgid "" "\n" "The Function Table (interpreted .pdata section contents)\n" @@ -2683,11 +2931,11 @@ msgstr "" "\n" "La Tabla de Funciones (se interpretaron los contenidos de la sección .pdata)\n" -#: peigen.c:1552 pepigen.c:1552 +#: peigen.c:1575 pepigen.c:1575 msgid " vma:\t\t\tBegin Address End Address Unwind Info\n" msgstr " vma:\t\t\tDirección Inicio Dirección Fin Información Desenvuelta\n" -#: peigen.c:1554 pepigen.c:1554 +#: peigen.c:1577 pepigen.c:1577 msgid "" " vma:\t\tBegin End EH EH PrologEnd Exception\n" " \t\tAddress Address Handler Data Address Mask\n" @@ -2695,19 +2943,19 @@ msgstr "" " vma:\t\tInicio Fin EH EH FinPrólogo Excepción\n" " \t\tDirecc Direcc Asa Datos Dirección Máscara\n" -#: peigen.c:1624 pepigen.c:1624 +#: peigen.c:1647 pepigen.c:1647 msgid " Register save millicode" msgstr " Registro para guardar milicódigo" -#: peigen.c:1627 pepigen.c:1627 +#: peigen.c:1650 pepigen.c:1650 msgid " Register restore millicode" msgstr " Registro para restaurar milicódigo" -#: peigen.c:1630 pepigen.c:1630 +#: peigen.c:1653 pepigen.c:1653 msgid " Glue code sequence" msgstr " Secuencia de código pegamento" -#: peigen.c:1682 pepigen.c:1682 +#: peigen.c:1705 pepigen.c:1705 msgid "" "\n" "\n" @@ -2717,7 +2965,7 @@ msgstr "" "\n" "Reubicaciones de Fichero Base PE (se interpretaron los contenidos de la sección .reloc)\n" -#: peigen.c:1712 pepigen.c:1712 +#: peigen.c:1735 pepigen.c:1735 #, c-format msgid "" "\n" @@ -2726,7 +2974,7 @@ msgstr "" "\n" "Dirección Virtual: %08lx Tamaño del trozo %ld (0x%lx) Número de composturas %ld\n" -#: peigen.c:1725 pepigen.c:1725 +#: peigen.c:1748 pepigen.c:1748 #, c-format msgid "\treloc %4d offset %4x [%4lx] %s" msgstr "\treubicación %4d desplazamiento %4x [%4lx] %s" @@ -2734,7 +2982,7 @@ msgstr "\treubicación %4d desplazamiento #. 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 +#: peigen.c:1788 pepigen.c:1788 #, c-format msgid "" "\n" @@ -2743,6 +2991,42 @@ msgstr "" "\n" "Características 0x%x\n" +#~ msgid "%s: Unknown special linker type %d" +#~ msgstr "%s: Tipo de enlazador especial %d desconocido" + +#~ msgid "v850ea architecture" +#~ msgstr "arquitectura v850ea" + +#~ msgid "%s: Section %s is too large to add hole of %ld bytes" +#~ msgstr "%s: La sección %s es muy grande para agregar un agujero de %ld bytes" + +#~ msgid "Error: out of memory" +#~ msgstr "Error: memoria agotada" + +#~ msgid "warning: relocation against removed section; zeroing" +#~ msgstr "aviso: reubicación contra una sección eliminada; cambiando a ceros" + +#~ msgid "warning: relocation against removed section" +#~ msgstr "aviso: reubicación contra una sección eliminada" + +#~ msgid "local symbols in discarded section %s" +#~ msgstr "símbolos locales en la sección descartada %s" + +#~ msgid "%s: linking abicalls files with non-abicalls files" +#~ msgstr "%s: enlazando ficheros de llamadas abi con ficheros que no son de llamadas abi" + +#~ msgid "%s: ISA mismatch (-mips%d) with previous modules (-mips%d)" +#~ msgstr "%s: no coincide el ISA (-mips%d) con módulos previos (-mips%d)" + +#~ msgid "%s: ISA mismatch (%d) with previous modules (%d)" +#~ msgstr "%s: no coincide el ISA (%d) con módulos previos (%d)" + +#~ msgid "%s: dynamic relocation against speculation fixup" +#~ msgstr "%s: reubicación dinámica contra una compostura de especulación" + +#~ msgid "%s: speculation fixup against undefined weak symbol" +#~ msgstr "%s: compostura de especulación contra un símbolo débil indefinido" + #~ msgid "\tThe Import Address Table (difference found)\n" #~ msgstr "\tLa Tabla de Importación de Direcciones (se encontró una diferencia)\n" diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/po/sv.po binutils-2.14.90.0.5/bfd/po/sv.po --- binutils-2.14.90.0.4.1/bfd/po/sv.po 2002-08-14 10:35:11.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/po/sv.po 2003-07-23 08:08:09.000000000 -0700 @@ -1,499 +1,522 @@ # Swedish messages for bfd. -# Copyright (C) 2001, 2002 Free Software Foundation, Inc. -# Christian Rose , 2001, 2002. +# Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. +# Christian Rose , 2001, 2002, 2003. # msgid "" msgstr "" -"Project-Id-Version: bfd 2.12.91\n" -"POT-Creation-Date: 2002-07-23 15:55-0400\n" -"PO-Revision-Date: 2002-07-30 21:55+0200\n" +"Project-Id-Version: bfd 2.14rel030712\n" +"POT-Creation-Date: 2003-07-11 13:53+0930\n" +"PO-Revision-Date: 2003-07-17 22:55+0200\n" "Last-Translator: Christian Rose \n" "Language-Team: Swedish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-1\n" "Content-Transfer-Encoding: 8bit\n" -#: aout-adobe.c:197 +#: aout-adobe.c:204 #, c-format msgid "%s: Unknown section type in a.out.adobe file: %x\n" msgstr "%s: Okänd sektionstyp i a.out.adobe-fil: %x\n" -#: aout-cris.c:208 +#: aout-cris.c:207 #, c-format msgid "%s: Invalid relocation type exported: %d" msgstr "%s: Ogiltig omlokaliseringstyp exporterad: %d" -#: aout-cris.c:252 +#: aout-cris.c:251 #, c-format msgid "%s: Invalid relocation type imported: %d" msgstr "%s: Ogiltig omlokaliseringstyp importerad: %d" -#: aout-cris.c:263 +#: aout-cris.c:262 #, c-format msgid "%s: Bad relocation record imported: %d" msgstr "%s: Felaktig omlokaliseringstyp importerad: %d" -#: aoutx.h:1282 aoutx.h:1699 +#: aoutx.h:1295 aoutx.h:1716 #, c-format msgid "%s: can not represent section `%s' in a.out object file format" msgstr "%s: kan inte representera sektionen \"%s\" i a.out-objektfilformat" -#: aoutx.h:1669 +#: aoutx.h:1682 #, c-format msgid "%s: can not represent section for symbol `%s' in a.out object file format" msgstr "%s: kan inte representera sektion för symbolen \"%s\" i a.out-objektfilformat" -#: aoutx.h:1671 +#: aoutx.h:1684 msgid "*unknown*" msgstr "*okänd*" -#: aoutx.h:3732 +#: aoutx.h:3776 #, c-format -msgid "%s: relocateable link from %s to %s not supported" +msgid "%s: relocatable link from %s to %s not supported" msgstr "%s: omlokaliseringsbar länk från %s till %s stöds inte" -#: archive.c:1826 +#: archive.c:1751 msgid "Warning: writing archive was slow: rewriting timestamp\n" msgstr "Varning: arkivskrivning var långsam: skriver om tidsstämpel\n" -#: archive.c:2093 +#: archive.c:2014 msgid "Reading archive file mod timestamp" msgstr "Läser arkivfilens modifieringstidsstämpel" -#. FIXME: bfd can't call perror. -#: archive.c:2120 +#: archive.c:2040 msgid "Writing updated armap timestamp" msgstr "Skriver uppdaterad armap-tidsstämpel" -#: bfd.c:274 +#: bfd.c:280 msgid "No error" msgstr "Inget fel" -#: bfd.c:275 +#: bfd.c:281 msgid "System call error" msgstr "Systemanropsfel" -#: bfd.c:276 +#: bfd.c:282 msgid "Invalid bfd target" msgstr "Ogiltigt bfd-mål" -#: bfd.c:277 +#: bfd.c:283 msgid "File in wrong format" msgstr "Filen är i fel format" -#: bfd.c:278 +#: bfd.c:284 msgid "Archive object file in wrong format" msgstr "Arkivobjektfil är i fel format" -#: bfd.c:279 +#: bfd.c:285 msgid "Invalid operation" msgstr "Ogiltig åtgärd" -#: bfd.c:280 +#: bfd.c:286 msgid "Memory exhausted" msgstr "Minnet är slut" -#: bfd.c:281 +#: bfd.c:287 msgid "No symbols" msgstr "Inga symboler" -#: bfd.c:282 +#: bfd.c:288 msgid "Archive has no index; run ranlib to add one" msgstr "Arkivet har inget index; kör ranlib för att lägga till ett" -#: bfd.c:283 +#: bfd.c:289 msgid "No more archived files" msgstr "Inga fler arkiverade filer" -#: bfd.c:284 +#: bfd.c:290 msgid "Malformed archive" msgstr "Trasigt arkiv" -#: bfd.c:285 +#: bfd.c:291 msgid "File format not recognized" msgstr "Filformatet känns inte igen" -#: bfd.c:286 +#: bfd.c:292 msgid "File format is ambiguous" msgstr "Filformatet är tvetydigt" -#: bfd.c:287 +#: bfd.c:293 msgid "Section has no contents" msgstr "Sektionen har inget innehåll" -#: bfd.c:288 +#: bfd.c:294 msgid "Nonrepresentable section on output" msgstr "Ickerepresenterbar sektion i utdata" -#: bfd.c:289 +#: bfd.c:295 msgid "Symbol needs debug section which does not exist" msgstr "Symbolen kräver felsökningssektion som inte finns" -#: bfd.c:290 +#: bfd.c:296 msgid "Bad value" msgstr "Felaktigt värde" -#: bfd.c:291 +#: bfd.c:297 msgid "File truncated" msgstr "Filen trunkerad" -#: bfd.c:292 +#: bfd.c:298 msgid "File too big" msgstr "Filen är för stor" -#: bfd.c:293 +#: bfd.c:299 msgid "#" msgstr "#" -#: bfd.c:700 +#: bfd.c:687 #, c-format msgid "BFD %s assertion fail %s:%d" msgstr "BFD %s-försäkran misslyckades %s:%d" -#: bfd.c:719 +#: bfd.c:703 #, c-format msgid "BFD %s internal error, aborting at %s line %d in %s\n" msgstr "Internt BFD %s-fel, avbryter vid %s rad %d i %s\n" -#: bfd.c:723 +#: bfd.c:707 #, c-format msgid "BFD %s internal error, aborting at %s line %d\n" msgstr "Internt BFD %s-fel, avbryter vid %s rad %d\n" -#: bfd.c:725 +#: bfd.c:709 msgid "Please report this bug.\n" msgstr "Rapportera gärna detta fel.\n" +#: bfdwin.c:202 +#, c-format +msgid "not mapping: data=%lx mapped=%d\n" +msgstr "mappar inte: data=%lx mappat=%d\n" + +#: bfdwin.c:205 +msgid "not mapping: env var not set\n" +msgstr "mappar inte: miljövariabel är inte satt\n" + #: binary.c:306 #, c-format msgid "Warning: Writing section `%s' to huge (ie negative) file offset 0x%lx." msgstr "Varning: Skrivning av sektionen \"%s\" till enormt (dvs negativt) avlägsen byte 0x%lx." # src/menus.c:341 -#: coff-a29k.c:119 +#: coff-a29k.c:120 msgid "Missing IHCONST" msgstr "IHCONST saknas" # src/menus.c:341 -#: coff-a29k.c:180 +#: coff-a29k.c:181 msgid "Missing IHIHALF" msgstr "IHIHALF saknas" -#: coff-a29k.c:212 coff-or32.c:229 +#: coff-a29k.c:213 coff-or32.c:236 msgid "Unrecognized reloc" msgstr "Okänd omlokalisering" -#: coff-a29k.c:408 +#: coff-a29k.c:409 msgid "missing IHCONST reloc" msgstr "IHCONST-omlokalisering saknas" -#: coff-a29k.c:498 +#: coff-a29k.c:499 msgid "missing IHIHALF reloc" msgstr "IHIHALF-omlokalisering saknas" -#: coff-alpha.c:881 coff-alpha.c:918 coff-alpha.c:1989 coff-mips.c:1432 +#: coff-alpha.c:884 coff-alpha.c:921 coff-alpha.c:1992 coff-mips.c:1397 msgid "GP relative relocation used when GP not defined" msgstr "GP-relativ omlokalisering användes då GP inte är definierad" -#: coff-alpha.c:1485 +#: coff-alpha.c:1488 msgid "using multiple gp values" msgstr "använder flera gp-värden" -#: coff-arm.c:1066 elf32-arm.h:285 +#: coff-arm.c:1066 elf32-arm.h:294 #, c-format msgid "%s: unable to find THUMB glue '%s' for `%s'" msgstr "%s: kunde inte hitta THUMB-klistret \"%s\" till \"%s\"" -#: coff-arm.c:1096 elf32-arm.h:320 +#: coff-arm.c:1096 elf32-arm.h:329 #, c-format msgid "%s: unable to find ARM glue '%s' for `%s'" msgstr "%s: kunde inte hitta ARM-klistret \"%s\" till \"%s\"" -#: coff-arm.c:1391 coff-arm.c:1486 elf32-arm.h:887 elf32-arm.h:991 +#: coff-arm.c:1394 coff-arm.c:1489 elf32-arm.h:892 elf32-arm.h:999 #, c-format msgid "%s(%s): warning: interworking not enabled." msgstr "%s(%s): varning: samverkande är inte aktiverat." -#: coff-arm.c:1395 elf32-arm.h:994 +#: coff-arm.c:1398 elf32-arm.h:1002 #, c-format msgid " first occurrence: %s: arm call to thumb" msgstr " första förekomst: %s: arm-anrop till thumb" -#: coff-arm.c:1490 elf32-arm.h:890 +#: coff-arm.c:1493 elf32-arm.h:895 #, c-format msgid " first occurrence: %s: thumb call to arm" msgstr " första förekomst: %s: thumb-anrop till arm" -#: coff-arm.c:1493 +#: coff-arm.c:1496 msgid " consider relinking with --support-old-code enabled" msgstr " överväg omlänkning med --support-old-code aktiverat" -#: coff-arm.c:1785 coff-tic80.c:686 cofflink.c:3031 +#: coff-arm.c:1788 coff-tic80.c:687 cofflink.c:3038 #, c-format msgid "%s: bad reloc address 0x%lx in section `%s'" msgstr "%s: felaktig omlokaliseringsadress 0x%lx i sektionen \"%s\"" -#: coff-arm.c:2127 +#: coff-arm.c:2132 #, c-format msgid "%s: illegal symbol index in reloc: %d" msgstr "%s: otillåtet symbolindex i omlokalisering: %d" -#: coff-arm.c:2255 +#: coff-arm.c:2265 #, c-format msgid "ERROR: %s is compiled for APCS-%d, whereas %s is compiled for APCS-%d" msgstr "FEL: %s kompilerad för APCS-%d, medan %s är kompilerad för APCS-%d" -#: coff-arm.c:2270 elf32-arm.h:2297 +#: coff-arm.c:2280 elf32-arm.h:2328 #, c-format msgid "ERROR: %s passes floats in float registers, whereas %s passes them in integer registers" msgstr "FEL: %s skickar flyttal i flyttalsregister, medan %s skickar dem i heltalsregister" -#: coff-arm.c:2273 elf32-arm.h:2302 +#: coff-arm.c:2283 elf32-arm.h:2333 #, c-format msgid "ERROR: %s passes floats in integer registers, whereas %s passes them in float registers" msgstr "FEL: %s skickar flyttal i heltalsregister, medan %s skickar dem i flyttalsregister" -#: coff-arm.c:2288 +#: coff-arm.c:2298 #, c-format msgid "ERROR: %s is compiled as position independent code, whereas target %s is absolute position" msgstr "FEL: %s är kompilerad som positionsoberoende kod, medan målet %s har absolut position" -#: coff-arm.c:2291 +#: coff-arm.c:2301 #, c-format msgid "ERROR: %s is compiled as absolute position code, whereas target %s is position independent" msgstr "FEL: %s är kompilerad som kod med absolut position, medan målet %s är positionsoberoende" -#: coff-arm.c:2320 elf32-arm.h:2358 +#: coff-arm.c:2330 elf32-arm.h:2405 #, c-format msgid "Warning: %s supports interworking, whereas %s does not" msgstr "Varning: %s stöder samverkande, medan %s däremot inte gör det" -#: coff-arm.c:2323 elf32-arm.h:2365 +#: coff-arm.c:2333 elf32-arm.h:2412 #, c-format msgid "Warning: %s does not support interworking, whereas %s does" msgstr "Varning: %s stöder inte samverkande, medan %s däremot gör det" -#: coff-arm.c:2350 +#: coff-arm.c:2360 #, c-format msgid "private flags = %x:" msgstr "privata flaggor = %x:" -#: coff-arm.c:2358 elf32-arm.h:2418 +#: coff-arm.c:2368 elf32-arm.h:2467 msgid " [floats passed in float registers]" msgstr " [flyttal skickade i flyttalsregister]" -#: coff-arm.c:2360 +#: coff-arm.c:2370 msgid " [floats passed in integer registers]" msgstr " [flyttal skickade i heltalsregister]" -#: coff-arm.c:2363 elf32-arm.h:2421 +#: coff-arm.c:2373 elf32-arm.h:2470 msgid " [position independent]" msgstr " [positionsoberoende]" -#: coff-arm.c:2365 +#: coff-arm.c:2375 msgid " [absolute position]" msgstr " [absolut position]" -#: coff-arm.c:2369 +#: coff-arm.c:2379 msgid " [interworking flag not initialised]" msgstr " [samverkandeflagga är inte initierad]" -#: coff-arm.c:2371 +#: coff-arm.c:2381 msgid " [interworking supported]" msgstr " [samverkan stöds]" -#: coff-arm.c:2373 +#: coff-arm.c:2383 msgid " [interworking not supported]" msgstr " [samverkan stöds inte]" -#: coff-arm.c:2421 elf32-arm.h:2124 +#: coff-arm.c:2431 elf32-arm.h:2150 #, c-format msgid "Warning: Not setting interworking flag of %s since it has already been specified as non-interworking" msgstr "Varning: Ställer inte in samverkansflaggan för %s eftersom den redan har angivits som inte samverkande" -#: coff-arm.c:2425 elf32-arm.h:2128 +#: coff-arm.c:2435 elf32-arm.h:2154 #, c-format msgid "Warning: Clearing the interworking flag of %s due to outside request" msgstr "Varning: Stänger av samverkansflaggan för %s på grund av begäran utifrån" -#: coff-i960.c:136 coff-i960.c:485 +#: coff-h8300.c:1096 +#, c-format +msgid "cannot handle R_MEM_INDIRECT reloc when using %s output" +msgstr "kan inte hantera R_MEM_INDIRECT-omlokalisering vid användning av %s-utdata" + +#: coff-i960.c:137 coff-i960.c:486 msgid "uncertain calling convention for non-COFF symbol" msgstr "osäker anropskonvention för icke-COFF-symbol" -#: coff-m68k.c:481 coff-mips.c:2429 elf32-m68k.c:2157 elf32-mips.c:1844 +#: coff-m68k.c:482 coff-mips.c:2394 elf32-m68k.c:2193 elf32-mips.c:1783 msgid "unsupported reloc type" msgstr "omlokaliseringstypen stöds inte" -#: coff-mips.c:874 elf32-mips.c:1062 elf64-mips.c:1609 +#: coff-mips.c:839 elf32-mips.c:1088 elf64-mips.c:1590 elfn32-mips.c:1554 msgid "GP relative relocation when _gp not defined" msgstr "GP-relativ omlokalisering då _gp inte var definierat" #. No other sections should appear in -membedded-pic #. code. -#: coff-mips.c:2466 +#: coff-mips.c:2431 msgid "reloc against unsupported section" msgstr "omlokalisering mot sektion som inte stöds" -#: coff-mips.c:2474 +#: coff-mips.c:2439 msgid "reloc not properly aligned" msgstr "omlokalisering inte på jämn gräns" -#: coff-rs6000.c:2766 +#: coff-rs6000.c:2790 #, c-format msgid "%s: unsupported relocation type 0x%02x" msgstr "%s: omlokaliseringstypen 0x%02x stöds inte" -#: coff-rs6000.c:2859 +#: coff-rs6000.c:2883 #, c-format msgid "%s: TOC reloc at 0x%x to symbol `%s' with no TOC entry" msgstr "%s: TOC-omlokalisering vid 0x%x till symbolen \"%s\" utan någon TOC-post" -#: coff-rs6000.c:3590 coff64-rs6000.c:2091 +#: coff-rs6000.c:3616 coff64-rs6000.c:2109 #, c-format msgid "%s: symbol `%s' has unrecognized smclas %d" msgstr "%s: symbolen \"%s\" har okänd smclas %d" -#: coff-tic54x.c:279 coff-tic80.c:449 +#: coff-tic4x.c:170 coff-tic54x.c:288 coff-tic80.c:450 #, c-format msgid "Unrecognized reloc type 0x%x" msgstr "Okänd omlokaliseringstyp 0x%x" -#: coff-tic54x.c:390 coffcode.h:4974 +#: coff-tic4x.c:218 coff-tic54x.c:373 coffcode.h:5045 #, c-format msgid "%s: warning: illegal symbol index %ld in relocs" msgstr "%s: varning: otillåtet symbolindex %ld i omlokaliseringarna" -#: coff-w65.c:363 +#: coff-w65.c:364 #, c-format msgid "ignoring reloc %s\n" msgstr "ignorerar omlokalisering %s\n" -#: coffcode.h:1086 +#: coffcode.h:1108 #, c-format msgid "%s (%s): Section flag %s (0x%x) ignored" msgstr "%s (%s): Sektionsflaggan %s (0x%x) ignorerades" -#: coffcode.h:2143 +#: coffcode.h:2214 #, c-format msgid "Unrecognized TI COFF target id '0x%x'" msgstr "Okänt TI COFF-målid \"0x%x\"" -#: coffcode.h:4365 +#: coffcode.h:4437 #, c-format msgid "%s: warning: illegal symbol index %ld in line numbers" msgstr "%s: varning: otillåtet symbolindex %ld i radnummer" -#: coffcode.h:4379 +#: coffcode.h:4451 #, c-format msgid "%s: warning: duplicate line number information for `%s'" msgstr "%s: varning: dubbel radnummersinformation för \"%s\"" -#: coffcode.h:4736 +#: coffcode.h:4805 #, c-format msgid "%s: Unrecognized storage class %d for %s symbol `%s'" msgstr "%s: Okänd lagringsklass %d för %s-symbolen \"%s\"" -#: coffcode.h:4867 +#: coffcode.h:4938 #, c-format msgid "warning: %s: local symbol `%s' has no section" msgstr "varning: %s: lokala symbolen \"%s\" har ingen sektion" -#: coffcode.h:5012 +#: coffcode.h:5083 #, c-format msgid "%s: illegal relocation type %d at address 0x%lx" msgstr "%s: otillåten omlokaliseringstyp %d på adress 0x%lx" -#: coffgen.c:1661 +#: coffgen.c:1666 #, c-format msgid "%s: bad string table size %lu" msgstr "%s: felaktig strängtabellstorlek %lu" -#: cofflink.c:534 elflink.h:1912 +#: cofflink.c:538 elflink.h:1276 #, c-format msgid "Warning: type of symbol `%s' changed from %d to %d in %s" msgstr "Varning: typen på symbolen \"%s\" ändrades från %d till %d i %s" -#: cofflink.c:2321 +#: cofflink.c:2328 #, c-format msgid "%s: relocs in section `%s', but it has no contents" msgstr "%s: omlokaliseringar i sektionen \"%s\", men den har inget innehåll" -#: cofflink.c:2664 coffswap.h:877 +#: cofflink.c:2671 coffswap.h:890 #, c-format msgid "%s: %s: reloc overflow: 0x%lx > 0xffff" msgstr "%s: %s: omlokalisering ger överspill: 0x%lx > 0xffff" -#: cofflink.c:2673 coffswap.h:864 +#: cofflink.c:2680 coffswap.h:876 #, c-format msgid "%s: warning: %s: line number overflow: 0x%lx > 0xffff" msgstr "%s: varning: %s: radnummer ger överspill: 0x%lx > 0xffff" -#: dwarf2.c:382 +#: cpu-arm.c:196 cpu-arm.c:206 +#, c-format +msgid "ERROR: %s is compiled for the EP9312, whereas %s is compiled for XScale" +msgstr "FEL: %s kompilerad för EP9312, medan %s är kompilerad för XScale" + +#: cpu-arm.c:344 +#, c-format +msgid "warning: unable to update contents of %s section in %s" +msgstr "varning: kan inte uppdatera innehållet i %s-sektion i %s" + +#: dwarf2.c:380 msgid "Dwarf Error: Can't find .debug_str section." msgstr "Dwarf-fel: Kan inte hitta sektionen .debug_str." -#: dwarf2.c:399 +#: dwarf2.c:397 #, c-format msgid "Dwarf Error: DW_FORM_strp offset (%lu) greater than or equal to .debug_str size (%lu)." msgstr "Dwarf-fel: DW_FORM_strp-avståndet (%lu) större än eller lika med storleken på .debug_str (%lu)." -#: dwarf2.c:543 +#: dwarf2.c:541 msgid "Dwarf Error: Can't find .debug_abbrev section." msgstr "Dwarf-fel: Kan inte hitta sektionen .debug_abbrev." -#: dwarf2.c:560 +#: dwarf2.c:556 #, c-format msgid "Dwarf Error: Abbrev offset (%lu) greater than or equal to .debug_abbrev size (%lu)." msgstr "Dwarf-fel: Förkortningsavståndet (%lu) större än eller lika med storleken .debug_abbrev (%lu)." -#: dwarf2.c:757 +#: dwarf2.c:756 #, c-format msgid "Dwarf Error: Invalid or unhandled FORM value: %u." msgstr "Dwarf-fel: Ogiltig eller ohanterat FORM-värde: %u." -#: dwarf2.c:852 +#: dwarf2.c:933 msgid "Dwarf Error: mangled line number section (bad file number)." msgstr "Dwarf-fel: trasig radnummerssektion (felaktigt filnummer)." -#: dwarf2.c:938 +#: dwarf2.c:1032 msgid "Dwarf Error: Can't find .debug_line section." msgstr "Dwarf-fel: Kan inte hitta sektionen .debug_line." -#: dwarf2.c:961 +#: dwarf2.c:1049 #, c-format msgid "Dwarf Error: Line offset (%lu) greater than or equal to .debug_line size (%lu)." msgstr "Dwarf-fel: Radavståndet (%lu) större än eller lika med storleken .debug_line (%lu)." -#: dwarf2.c:1159 +#: dwarf2.c:1255 msgid "Dwarf Error: mangled line number section." msgstr "Dwarf-fel: trasig radnummerssektion." -#: dwarf2.c:1355 dwarf2.c:1566 +#: dwarf2.c:1470 dwarf2.c:1620 #, c-format msgid "Dwarf Error: Could not find abbrev number %u." msgstr "Dwarf-fel: Kunde inte hitta förkortningsnumret %u." -#: dwarf2.c:1527 +#: dwarf2.c:1581 #, c-format msgid "Dwarf Error: found dwarf version '%u', this reader only handles version 2 information." msgstr "Dwarf-fel: hittade dwarf version \"%u\", denna läsare hanterar endast information från version 2." -#: dwarf2.c:1534 +#: dwarf2.c:1588 #, c-format msgid "Dwarf Error: found address size '%u', this reader can not handle sizes greater than '%u'." msgstr "Dwarf-fel: hittade adresstorleken \"%u\", denna läsare kan inte hantera storlekar större än \"%u\"." -#: dwarf2.c:1557 +#: dwarf2.c:1611 #, c-format msgid "Dwarf Error: Bad abbrev number: %u." msgstr "Dwarf-fel: Felaktigt förkortningsnummer: %u." -#: ecoff.c:1318 +#: ecoff.c:1339 #, c-format msgid "Unknown basic type %d" msgstr "Okänd grundtyp %d" -#: ecoff.c:1578 +#: ecoff.c:1599 #, c-format msgid "" "\n" @@ -502,7 +525,7 @@ msgstr "" "\n" " Symbol slut+1: %ld" -#: ecoff.c:1585 ecoff.c:1588 +#: ecoff.c:1606 ecoff.c:1609 #, c-format msgid "" "\n" @@ -511,7 +534,7 @@ msgstr "" "\n" " Första symbolen: %ld" -#: ecoff.c:1600 +#: ecoff.c:1621 #, c-format msgid "" "\n" @@ -520,7 +543,7 @@ msgstr "" "\n" " Symbol slut+1: %-7ld Typ: %s" -#: ecoff.c:1607 +#: ecoff.c:1628 #, c-format msgid "" "\n" @@ -529,7 +552,7 @@ msgstr "" "\n" " Lokal symbol: %ld" -#: ecoff.c:1615 +#: ecoff.c:1636 #, c-format msgid "" "\n" @@ -538,7 +561,7 @@ msgstr "" "\n" " struct; symbol slut+1: %ld" -#: ecoff.c:1620 +#: ecoff.c:1641 #, c-format msgid "" "\n" @@ -547,7 +570,7 @@ msgstr "" "\n" " union; symbol slut+1: %ld" -#: ecoff.c:1625 +#: ecoff.c:1646 #, c-format msgid "" "\n" @@ -556,7 +579,7 @@ msgstr "" "\n" " enum; symbol slut+1: %ld" -#: ecoff.c:1631 +#: ecoff.c:1652 #, c-format msgid "" "\n" @@ -565,54 +588,58 @@ msgstr "" "\n" " Typ: %s" -#: elf-hppa.h:1476 elf-hppa.h:1509 elf32-ppc.c:3091 elf32-sh.c:4213 -#: elf64-sh64.c:1659 +#: elf-hppa.h:1458 elf-hppa.h:1491 elf-m10300.c:1628 elf64-sh64.c:1704 #, c-format msgid "%s: warning: unresolvable relocation against symbol `%s' from %s section" msgstr "%s: varning: olöslig omlokalisering mot symbolen \"%s\" från 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 +#: elf-m10200.c:442 elf-m10300.c:1695 elf32-arm.h:2088 elf32-avr.c:812 +#: elf32-cris.c:1390 elf32-d10v.c:570 elf32-fr30.c:634 elf32-frv.c:815 +#: elf32-h8300.c:528 elf32-i860.c:1028 elf32-ip2k.c:1586 elf32-iq2000.c:699 +#: elf32-m32r.c:1283 elf32-m68hc1x.c:1305 elf32-msp430.c:510 +#: elf32-openrisc.c:436 elf32-v850.c:1777 elf32-xstormy16.c:976 +#: elf64-mmix.c:1332 msgid "internal error: out of range error" msgstr "internt fel: utanför 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 +#: elf-m10200.c:446 elf-m10300.c:1699 elf32-arm.h:2092 elf32-avr.c:816 +#: elf32-cris.c:1394 elf32-d10v.c:574 elf32-fr30.c:638 elf32-frv.c:819 +#: elf32-h8300.c:532 elf32-i860.c:1032 elf32-iq2000.c:703 elf32-m32r.c:1287 +#: elf32-m68hc1x.c:1309 elf32-msp430.c:514 elf32-openrisc.c:440 +#: elf32-v850.c:1781 elf32-xstormy16.c:980 elf64-mmix.c:1336 elfxx-mips.c:6452 msgid "internal error: unsupported relocation error" msgstr "internt fel: omlokaliseringen stöds inte" -#: elf-m10200.c:454 elf-m10300.c:664 elf32-arm.h:2092 elf32-d10v.c:489 -#: elf32-h8300.c:556 elf32-m32r.c:1286 +#: elf-m10200.c:450 elf-m10300.c:1703 elf32-arm.h:2096 elf32-d10v.c:578 +#: elf32-h8300.c:536 elf32-m32r.c:1291 elf32-m68hc1x.c:1313 msgid "internal error: dangerous error" msgstr "internt fel: farligt fel" -#: 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 +#: elf-m10200.c:454 elf-m10300.c:1707 elf32-arm.h:2100 elf32-avr.c:824 +#: elf32-cris.c:1402 elf32-d10v.c:582 elf32-fr30.c:646 elf32-frv.c:827 +#: elf32-h8300.c:540 elf32-i860.c:1040 elf32-ip2k.c:1601 elf32-iq2000.c:711 +#: elf32-m32r.c:1295 elf32-m68hc1x.c:1317 elf32-msp430.c:522 +#: elf32-openrisc.c:448 elf32-v850.c:1801 elf32-xstormy16.c:988 +#: elf64-mmix.c:1344 msgid "internal error: unknown error" msgstr "internt fel: okänt fel" -#: elf.c:343 +#: elf.c:372 #, c-format msgid "%s: invalid string offset %u >= %lu for section `%s'" msgstr "%s: ogiltigt strängavstånd %u >= %lu för sektionen \"%s\"" -#: elf.c:589 +#: elf.c:624 #, c-format msgid "%s: invalid SHT_GROUP entry" msgstr "%s: ogiltig SHT_GROUP-post" -#: elf.c:660 +#: elf.c:695 #, c-format msgid "%s: no group info for section %s" msgstr "%s: ingen gruppinformation för sektionen %s" -#: elf.c:1023 +#: elf.c:1055 msgid "" "\n" "Program Header:\n" @@ -620,7 +647,7 @@ msgstr "" "\n" "Programhuvud:\n" -#: elf.c:1073 +#: elf.c:1106 msgid "" "\n" "Dynamic Section:\n" @@ -628,7 +655,7 @@ msgstr "" "\n" "Dynamisk sektion:\n" -#: elf.c:1202 +#: elf.c:1235 msgid "" "\n" "Version definitions:\n" @@ -636,7 +663,7 @@ msgstr "" "\n" "Versionsdefinitioner:\n" -#: elf.c:1225 +#: elf.c:1258 msgid "" "\n" "Version References:\n" @@ -644,224 +671,239 @@ msgstr "" "\n" "Versionsreferenser:\n" -#: elf.c:1230 +#: elf.c:1263 #, c-format msgid " required from %s:\n" msgstr " krävs från %s:\n" -#: elf.c:1902 +#: elf.c:1944 #, c-format msgid "%s: invalid link %lu for reloc section %s (index %u)" msgstr "%s: ogiltig länk %lu för omlokaliseringssektion %s (index %u)" -#: elf.c:3603 +#: elf.c:3686 #, c-format msgid "%s: Not enough room for program headers (allocated %u, need %u)" msgstr "%s: Inte tillräckligt med utrymme för programhuvuden (allokerade %u, behöver %u)" -#: elf.c:3708 +#: elf.c:3791 #, c-format msgid "%s: Not enough room for program headers, try linking with -N" msgstr "%s: Inte tillräckligt med utrymme för programhuvuden, försök att länka med -N" -#: elf.c:3833 +#: elf.c:3922 #, c-format msgid "Error: First section in segment (%s) starts at 0x%x whereas the segment starts at 0x%x" msgstr "Fel: Första sektionen i segmentet (%s) börjar vid 0x%x medan segmentet börjar med 0x%x" -#: elf.c:4148 +#: elf.c:4242 #, c-format msgid "%s: warning: allocated section `%s' not in segment" msgstr "%s: varning: allokerad sektion \"%s\" inte i segment" -#: elf.c:4472 +#: elf.c:4566 #, c-format msgid "%s: symbol `%s' required but not present" msgstr "%s: symbolen \"%s\" krävs men finns inte med" -#: elf.c:4749 +#: elf.c:4854 #, c-format msgid "%s: warning: Empty loadable segment detected, is this intentional ?\n" msgstr "%s: varning: Tomt inläsningsbart segment upptäckt, är detta meningen?\n" -#: elf.c:6193 +#: elf.c:5485 +#, c-format +msgid "Unable to find equivalent output section for symbol '%s' from section '%s'" +msgstr "Kan inte hitta ekvivalent utdatasektion för symbolen \"%s\" från sektionen \"%s\"" + +#: elf.c:6298 #, c-format msgid "%s: unsupported relocation type %s" msgstr "%s: omlokaliseringstypen %s stöds inte" -#: elf32-arm.h:1221 +#: elf32-arm.h:1228 #, c-format msgid "%s: Warning: Arm BLX instruction targets Arm function '%s'." msgstr "%s: Varning: Arm BLX-instruktion använder Arm-funktionen \"%s\" som mål." -#: elf32-arm.h:1417 +#: elf32-arm.h:1424 #, c-format msgid "%s: Warning: Thumb BLX instruction targets thumb function '%s'." msgstr "%s: Varning: Thumb BLX-instruktionen använder thumb-funktionen \"%s\" som mål." -#: elf32-arm.h:1914 elf32-sh.c:4125 +#: elf32-arm.h:1918 elf32-sh.c:4706 elf64-sh64.c:1613 #, c-format msgid "%s(%s+0x%lx): %s relocation against SEC_MERGE section" msgstr "%s(%s+0x%lx): %s omlokalisering mot SEC_MERGE-sektion" -#: elf32-arm.h:2008 +#: elf32-arm.h:2012 #, c-format msgid "%s: warning: unresolvable relocation %d against symbol `%s' from %s section" msgstr "%s: varning: olöslig omlokalisering %d mot symbolen \"%s\" från sektionen %s" -#: elf32-arm.h:2176 +#: elf32-arm.h:2202 #, c-format msgid "Warning: Clearing the interworking flag of %s because non-interworking code in %s has been linked with it" msgstr "Varning: Stänger av samverkandeflaggan i %s eftersom icke-samverkande kod i %s har länkats med det" -#: elf32-arm.h:2271 +#: elf32-arm.h:2302 #, c-format msgid "ERROR: %s is compiled for EABI version %d, whereas %s is compiled for version %d" msgstr "FEL: %s är kompilerad för EABI version %d, medan %s är kompilerad för version %d" -#: elf32-arm.h:2285 +#: elf32-arm.h:2316 #, c-format msgid "ERROR: %s is compiled for APCS-%d, whereas target %s uses APCS-%d" msgstr "FEL: %s är kompilerad för APCS-%d, medan målet %s använder APCS-%d" -#: elf32-arm.h:2313 +#: elf32-arm.h:2344 #, c-format -msgid "ERROR: %s uses VFP instructions, whereas %s uses FPA instructions" -msgstr "FEL: %s använder VFP-instruktioner, medan %s använder FPA-instruktioner" +msgid "ERROR: %s uses VFP instructions, whereas %s does not" +msgstr "FEL: %s använder VFP-instruktioner, men det gör inte %s" -#: elf32-arm.h:2318 +#: elf32-arm.h:2349 #, c-format -msgid "ERROR: %s uses FPA instructions, whereas %s uses VFP instructions" -msgstr "FEL: %s använder FPA-instruktioner, medan %s använder VFP-instruktioner" +msgid "ERROR: %s uses FPA instructions, whereas %s does not" +msgstr "FEL: %s använder FPA-instruktioner, men det gör inte %s" -#: elf32-arm.h:2338 +#: elf32-arm.h:2360 elf32-arm.h:2365 +#, c-format +msgid "ERROR: %s uses Maverick instructions, whereas %s does not" +msgstr "FEL: %s använder Maverick-instruktioner, men det gör inte %s" + +#: elf32-arm.h:2385 #, c-format msgid "ERROR: %s uses software FP, whereas %s uses hardware FP" msgstr "FEL: %s använder programvaruflyttal, medan %s använder hårdvaruflyttal" -#: elf32-arm.h:2343 +#: elf32-arm.h:2390 #, c-format msgid "ERROR: %s uses hardware FP, whereas %s uses software FP" msgstr "FEL: %s använder hårdvaruflyttal, medan %s använder programvaruflyttal" #. 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 +#: elf32-arm.h:2443 elf32-cris.c:2975 elf32-m68hc1x.c:1459 elf32-m68k.c:397 +#: elf32-vax.c:546 elfxx-mips.c:9238 #, c-format msgid "private flags = %lx:" msgstr "privata flaggor = %lx:" -#: elf32-arm.h:2405 +#: elf32-arm.h:2452 msgid " [interworking enabled]" msgstr " [samverkande är aktiverat]" -#: elf32-arm.h:2413 +#: elf32-arm.h:2460 msgid " [VFP float format]" msgstr " [VFP-flyttalsformat]" -#: elf32-arm.h:2415 +#: elf32-arm.h:2462 +msgid " [Maverick float format]" +msgstr " [Maverick-flyttalsformat]" + +#: elf32-arm.h:2464 msgid " [FPA float format]" msgstr " [FPA-flyttalsformat]" -#: elf32-arm.h:2424 +#: elf32-arm.h:2473 msgid " [new ABI]" msgstr " [nytt ABI]" -#: elf32-arm.h:2427 +#: elf32-arm.h:2476 msgid " [old ABI]" msgstr " [gammalt ABI]" -#: elf32-arm.h:2430 +#: elf32-arm.h:2479 msgid " [software FP]" msgstr " [programvaru-FP]" -#: elf32-arm.h:2438 +#: elf32-arm.h:2488 msgid " [Version1 EABI]" msgstr " [Version1 EABI]" -#: elf32-arm.h:2441 elf32-arm.h:2452 +#: elf32-arm.h:2491 elf32-arm.h:2502 msgid " [sorted symbol table]" msgstr " [sorterad symboltabell]" -#: elf32-arm.h:2443 elf32-arm.h:2454 +#: elf32-arm.h:2493 elf32-arm.h:2504 msgid " [unsorted symbol table]" msgstr " [osorterad symboltabell]" -#: elf32-arm.h:2449 +#: elf32-arm.h:2499 msgid " [Version2 EABI]" msgstr " [Version2 EABI]" -#: elf32-arm.h:2457 +#: elf32-arm.h:2507 msgid " [dynamic symbols use segment index]" msgstr " [dynamiska symboler använder segmentindex]" -#: elf32-arm.h:2460 +#: elf32-arm.h:2510 msgid " [mapping symbols precede others]" msgstr " [mappsymboler har företräde före andra]" -#: elf32-arm.h:2467 +#: elf32-arm.h:2517 msgid " " msgstr " " -#: elf32-arm.h:2474 +#: elf32-arm.h:2524 msgid " [relocatable executable]" msgstr " [omlokaliseringsbar körbar fil]" -#: elf32-arm.h:2477 +#: elf32-arm.h:2527 msgid " [has entry point]" msgstr " [har startpunkt]" -#: elf32-arm.h:2482 +#: elf32-arm.h:2532 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 +#: elf32-avr.c:820 elf32-cris.c:1398 elf32-fr30.c:642 elf32-frv.c:823 +#: elf32-i860.c:1036 elf32-ip2k.c:1597 elf32-iq2000.c:707 elf32-msp430.c:518 +#: elf32-openrisc.c:444 elf32-v850.c:1785 elf32-xstormy16.c:984 +#: elf64-mmix.c:1340 msgid "internal error: dangerous relocation" msgstr "internt fel: farlig omlokalisering" -#: elf32-cris.c:949 +#: elf32-cris.c:931 #, c-format msgid "%s: unresolvable relocation %s against symbol `%s' from %s section" msgstr "%s: olöslig omlokalisering %s mot symbolen \"%s\" från sektionen %s" -#: elf32-cris.c:1012 +#: elf32-cris.c:993 #, c-format msgid "%s: No PLT nor GOT for relocation %s against symbol `%s' from %s section" msgstr "%s: Varken någon PLT eller GOT för omlokalisering %s mot symbolen \"%s\" från sektionen %s" -#: elf32-cris.c:1015 elf32-cris.c:1141 +#: elf32-cris.c:996 elf32-cris.c:1122 msgid "[whose name is lost]" msgstr "[vars namn tappats bort]" -#: elf32-cris.c:1130 +#: elf32-cris.c:1111 #, c-format msgid "%s: relocation %s with non-zero addend %d against local symbol from %s section" msgstr "%s: omlokalisering %s med icke-tomt addendum %d mot lokal symbol från sektionen %s" -#: elf32-cris.c:1137 +#: elf32-cris.c:1118 #, c-format msgid "%s: relocation %s with non-zero addend %d against symbol `%s' from %s section" msgstr "%s: omlokalisering %s med icke-tomt addendum %d mot symbolen \"%s\" från sektionen %s" -#: elf32-cris.c:1155 +#: elf32-cris.c:1143 #, c-format msgid "%s: relocation %s is not allowed for global symbol: `%s' from %s section" msgstr "%s: omlokaliseringen %s är inte tillåten för global symbol: \"%s\" från sektionen %s" -#: elf32-cris.c:1170 +#: elf32-cris.c:1158 #, c-format msgid "%s: relocation %s in section %s with no GOT created" msgstr "%s: omlokalisering %s i sektionen %s utan GOT skapad" -#: elf32-cris.c:1288 +#: elf32-cris.c:1277 #, c-format msgid "%s: Internal inconsistency; no relocation section %s" msgstr "%s: Intern inkonsistens; ingen omlokaliseringssektion %s" -#: elf32-cris.c:2514 +#: elf32-cris.c:2500 #, c-format msgid "" "%s, section %s:\n" @@ -870,492 +912,645 @@ msgstr "" "%s, sektion %s:\n" " omlokaliseringen %s bör inte användas i ett delat objekt; kompilera om med -fPIC" -#: elf32-cris.c:2991 +#: elf32-cris.c:2978 msgid " [symbols have a _ prefix]" msgstr " [symboler har ett _-prefix]" -#: elf32-cris.c:3030 +#: elf32-cris.c:3017 #, c-format msgid "%s: uses _-prefixed symbols, but writing file with non-prefixed symbols" msgstr "%s: använder symboler med _-prefix, men skriver fil med symboler utan prefix" -#: elf32-cris.c:3031 +#: elf32-cris.c:3018 #, c-format msgid "%s: uses non-prefixed symbols, but writing file with _-prefixed symbols" msgstr "%s: använder symboler utan prefix, men skriver fil med symboler med _-prefix" -#: elf32-frv.c:1217 +#: elf32-frv.c:1223 #, c-format msgid "%s: compiled with %s and linked with modules that use non-pic relocations" msgstr "%s: kompilerad med %s och länkad med moduler som använder icke-pic-omlokalisering" -#: elf32-frv.c:1267 +#: elf32-frv.c:1273 elf32-iq2000.c:895 #, c-format msgid "%s: compiled with %s and linked with modules compiled with %s" msgstr "%s: kompilerad med %s och länkad med moduler som kompilerats med %s" -#: elf32-frv.c:1279 +#: elf32-frv.c:1285 #, c-format msgid "%s: uses different unknown e_flags (0x%lx) fields than previous modules (0x%lx)" msgstr "%s: använder andra okända e_flags-fält (0x%lx) än tidigare moduler (0x%lx)" -#: elf32-frv.c:1315 +#: elf32-frv.c:1321 elf32-iq2000.c:933 #, c-format msgid "private flags = 0x%lx:" msgstr "privata flaggor = 0x%lx:" -#: elf32-gen.c:82 elf64-gen.c:82 +#: elf32-gen.c:83 elf64-gen.c:82 #, c-format msgid "%s: Relocations in generic ELF (EM: %d)" msgstr "%s: Omlokalisering i allmän ELF (EM: %d)" -#: elf32-hppa.c:671 elf64-ppc.c:2323 +#: elf32-hppa.c:672 elf32-m68hc1x.c:176 elf64-ppc.c:3118 #, c-format msgid "%s: cannot create stub entry %s" msgstr "%s: kan inte skapa stubbstarten %s" -#: elf32-hppa.c:956 elf32-hppa.c:3555 +#: elf32-hppa.c:957 elf32-hppa.c:3538 #, c-format msgid "%s(%s+0x%lx): cannot reach %s, recompile with -ffunction-sections" msgstr "%s(%s+0x%lx): kan inte nå %s, kompilera om med -ffunction-sections" -#: elf32-hppa.c:1338 elf64-x86-64.c:673 +#: elf32-hppa.c:1340 elf64-x86-64.c:672 elf64-x86-64.c:797 #, c-format msgid "%s: relocation %s can not be used when making a shared object; recompile with -fPIC" msgstr "%s: omlokaliseringen %s kan inte användas då ett delat objekt skapas; kompilera om med -fPIC" -#: elf32-hppa.c:1358 +#: elf32-hppa.c:1360 #, c-format msgid "%s: relocation %s should not be used when making a shared object; recompile with -fPIC" msgstr "%s: omlokaliseringen %s bör inte användas då ett delat objekt skapas; kompilera om med -fPIC" -#: elf32-hppa.c:1551 +#: elf32-hppa.c:1553 #, c-format msgid "Could not find relocation section for %s" msgstr "Kunde inte hitta omlokaliseringssektion för %s" -#: elf32-hppa.c:2855 +#: elf32-hppa.c:2828 #, c-format msgid "%s: duplicate export stub %s" msgstr "%s: dubbel exportstubb %s" -#: elf32-hppa.c:3433 +#: elf32-hppa.c:3416 #, c-format msgid "%s(%s+0x%lx): fixing %s" msgstr "%s(%s+0x%lx): fixar %s" -#: elf32-hppa.c:4080 +#: elf32-hppa.c:4039 #, c-format msgid "%s(%s+0x%lx): cannot handle %s for %s" msgstr "%s(%s+0x%lx): kan inte hantera %s för %s" -#: elf32-hppa.c:4393 +#: elf32-hppa.c:4357 msgid ".got section not immediately after .plt section" msgstr ".got-sektionen följer inte omedelbart efter .plt-sektion" -#: elf32-i386.c:379 +#: elf32-i386.c:326 #, c-format msgid "%s: invalid relocation type %d" msgstr "%s: ogiltig omlokaliseringstyp %d" -#: elf32-i386.c:876 elf32-s390.c:649 elf64-s390.c:595 elf64-x86-64.c:591 +#: elf32-i386.c:841 elf32-s390.c:990 elf32-sparc.c:887 elf32-xtensa.c:637 +#: elf64-s390.c:943 elf64-x86-64.c:650 #, c-format msgid "%s: bad symbol index: %d" msgstr "%s: felaktigt symbolindex: %d" -#: elf32-i386.c:948 +#: elf32-i386.c:949 elf32-s390.c:1168 elf32-sh.c:6426 elf32-sparc.c:1011 +#: elf64-s390.c:1129 #, c-format msgid "%s: `%s' accessed both as normal and thread local symbol" msgstr "%s: \"%s\" anropad både som lokal normal symbol och lokal trådsymbol" -#: elf32-i386.c:1072 elf32-s390.c:808 elf64-ppc.c:2827 elf64-s390.c:759 -#: elf64-x86-64.c:761 +#: elf32-i386.c:1064 elf32-s390.c:1279 elf64-ppc.c:3929 elf64-s390.c:1243 +#: elf64-x86-64.c:886 #, c-format msgid "%s: bad relocation section name `%s'" msgstr "%s: felaktig omlokaliseringssektionsnamn \"%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-exekveringskod kan inte länkas in i delade objekt" - -#: 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 +#: elf32-i386.c:2908 elf32-m68k.c:1757 elf32-s390.c:3022 elf32-sparc.c:2879 +#: elf32-xtensa.c:2193 elf64-s390.c:3018 elf64-sparc.c:2664 +#: elf64-x86-64.c:2452 #, c-format msgid "%s(%s+0x%lx): unresolvable relocation against symbol `%s'" msgstr "%s(%s+0x%lx): olöslig omlokalisering mot symbolen \"%s\"" -#: elf32-i386.c:2784 elf32-s390.c:2019 elf64-ppc.c:5977 elf64-s390.c:1983 -#: elf64-x86-64.c:1986 +#: elf32-i386.c:2947 elf32-m68k.c:1796 elf32-s390.c:3072 elf64-s390.c:3068 +#: elf64-x86-64.c:2490 #, c-format msgid "%s(%s+0x%lx): reloc against `%s': error %d" msgstr "%s(%s+0x%lx): omlokalisering mot \"%s\": fel %d" -#: elf32-m32r.c:924 +#: elf32-ip2k.c:565 elf32-ip2k.c:571 elf32-ip2k.c:734 elf32-ip2k.c:740 +msgid "ip2k relaxer: switch table without complete matching relocation information." +msgstr "ip2k-relaxerare: switchtabell utan helt matchande omlokaliseringsinformation." + +#: elf32-ip2k.c:588 elf32-ip2k.c:767 +msgid "ip2k relaxer: switch table header corrupt." +msgstr "ip2k-relaxerare: switchtabellshuvud trasigt." + +#: elf32-ip2k.c:1395 +#, c-format +msgid "ip2k linker: missing page instruction at 0x%08lx (dest = 0x%08lx)." +msgstr "ip2k-länkare: sidinstruktion saknas vid 0x%08lx (dest = 0x%08lx)." + +#: elf32-ip2k.c:1409 +#, c-format +msgid "ip2k linker: redundant page instruction at 0x%08lx (dest = 0x%08lx)." +msgstr "ip2k-länkare: redundant sidinstruktion vid 0x%08lx (dest = 0x%08lx)." + +#. Only if it's not an unresolved symbol. +#: elf32-ip2k.c:1593 +msgid "unsupported relocation between data/insn address spaces" +msgstr "omlokalisering mellan data/-instruktionsadressutrymmen stöds inte" + +#: elf32-iq2000.c:907 elf32-m68hc1x.c:1431 elf32-ppc.c:2175 elf64-sparc.c:3072 +#: elfxx-mips.c:9195 +#, c-format +msgid "%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)" +msgstr "%s: använder andra e_flags-fält (0x%lx) än tidigare moduler (0x%lx)" + +#: elf32-m32r.c:930 msgid "SDA relocation when _SDA_BASE_ not defined" msgstr "SDA-omlokalisering då _SDA_BASE_ inte är definierat" -#: elf32-ia64.c:3687 elf32-m32r.c:1013 elf32-ppc.c:2987 elf64-alpha.c:4185 -#: elf64-alpha.c:4313 elf64-ia64.c:3687 +#: elf32-m32r.c:1018 elf64-alpha.c:4279 elf64-alpha.c:4407 elf32-ia64.c:3958 +#: elf64-ia64.c:3958 #, c-format msgid "%s: unknown relocation type %d" msgstr "%s: okänd omlokaliseringstyp %d" -#: elf32-m32r.c:1221 +#: elf32-m32r.c:1226 #, c-format msgid "%s: The target (%s) of an %s relocation is in the wrong section (%s)" msgstr "%s: Målet (%s) för en %s-omlokalisering är i fel sektion (%s)" -#: elf32-m32r.c:1947 +#: elf32-m32r.c:1952 #, c-format msgid "%s: Instruction set mismatch with previous modules" msgstr "%s: Instruktionsuppsättning passar inte med tidigare moduler" -#: elf32-m32r.c:1970 +#: elf32-m32r.c:1975 #, c-format msgid "private flags = %lx" msgstr "privata flaggor = %lx" -#: elf32-m32r.c:1975 +#: elf32-m32r.c:1980 msgid ": m32r instructions" msgstr ": m32r-instruktioner" -#: elf32-m32r.c:1976 +#: elf32-m32r.c:1981 msgid ": m32rx instructions" msgstr ": m32rx-instruktioner" -#: elf32-m68k.c:413 +#: elf32-m68hc1x.c:1217 +#, c-format +msgid "Reference to the far symbol `%s' using a wrong relocation may result in incorrect execution" +msgstr "Referens till den avlägsna symbolen \"%s\" med hjälp av en felaktig omlokalisering kan resultera i felaktig exekvering" + +#: elf32-m68hc1x.c:1240 +#, c-format +msgid "banked address [%lx:%04lx] (%lx) is not in the same bank as current banked address [%lx:%04lx] (%lx)" +msgstr "bankad adress [%lx:%04lx] (%lx) är inte i samma bank som den aktuella bankade adressen [%lx:%04lx] (%lx)" + +#: elf32-m68hc1x.c:1259 +#, c-format +msgid "reference to a banked address [%lx:%04lx] in the normal address space at %04lx" +msgstr "referens till en bankad adress [%lx:%04lx] i det normala adressutrymmet vid %04lx" + +#: elf32-m68hc1x.c:1396 +#, c-format +msgid "%s: linking files compiled for 16-bit integers (-mshort) and others for 32-bit integers" +msgstr "%s: länkar filer kompilerade för 16-bitars heltal (-mshort) och andra för 32-bitars heltal" + +#: elf32-m68hc1x.c:1404 +#, c-format +msgid "%s: linking files compiled for 32-bit double (-fshort-double) and others for 64-bit double" +msgstr "%s: länkar filer kompilerade för 32-bitars dubbelprecisionsflyttal (-fshort-double) och andra för 64-bitars dubbelprecisionsflyttal" + +#: elf32-m68hc1x.c:1414 +#, c-format +msgid "%s: linking files compiled for HCS12 with others compiled for HC12" +msgstr "%s: länkar filer kompilerade för HCS12 med andra kompilerade för HC12" + +#: elf32-m68hc1x.c:1462 +msgid "[abi=32-bit int, " +msgstr "[abi=32-bitars heltal, " + +#: elf32-m68hc1x.c:1464 +msgid "[abi=16-bit int, " +msgstr "[abi=16-bitars heltal, " + +#: elf32-m68hc1x.c:1467 +msgid "64-bit double, " +msgstr "64-bitars dubbelprecisionsflyttal, " + +#: elf32-m68hc1x.c:1469 +msgid "32-bit double, " +msgstr "32-bitars dubbelprecisionsflyttal, " + +#: elf32-m68hc1x.c:1472 +msgid "cpu=HC11]" +msgstr "cpu=HC11]" + +#: elf32-m68hc1x.c:1474 +msgid "cpu=HCS12]" +msgstr "cpu=HCS12]" + +#: elf32-m68hc1x.c:1476 +msgid "cpu=HC12]" +msgstr "cpu=HC12]" + +#: elf32-m68hc1x.c:1479 +msgid " [memory=bank-model]" +msgstr " [memory=bank-modell]" + +#: elf32-m68hc1x.c:1481 +msgid " [memory=flat]" +msgstr " [memory=platt]" + +#: elf32-m68k.c:400 msgid " [cpu32]" msgstr " [cpu32]" -#: elf32-m68k.c:416 +#: elf32-m68k.c:403 msgid " [m68000]" msgstr " [m68000]" -#: elf32-mcore.c:354 elf32-mcore.c:457 +#: elf32-mcore.c:353 elf32-mcore.c:456 #, c-format msgid "%s: Relocation %s (%d) is not currently supported.\n" msgstr "%s: Omlokalisering %s (%d) stöds för närvarande inte.\n" -#: elf32-mcore.c:442 +#: elf32-mcore.c:441 #, c-format msgid "%s: Unknown relocation type %d\n" msgstr "%s: Okänd omlokaliseringstyp %d\n" -#: elf32-mips.c:1152 elf64-mips.c:1783 +#: elf32-mips.c:1170 elf64-mips.c:1717 elfn32-mips.c:1664 msgid "32bits gp relative relocation occurs for an external symbol" msgstr "32-bitars gp-relativ omlokalisering förekom för en extern symbol" -#: elf32-mips.c:1301 +#: elf32-mips.c:1314 elf64-mips.c:1830 elfn32-mips.c:1783 #, c-format msgid "Linking mips16 objects into %s format is not supported" msgstr "Länkning av mips16-objekt till %s-format stöds inte" -#: elf32-ppc.c:1460 +#: elf32-ppc.c:2056 +#, c-format +msgid "generic linker can't handle %s" +msgstr "allmän länkare kan inte hantera %s" + +#: elf32-ppc.c:2138 #, c-format msgid "%s: compiled with -mrelocatable and linked with modules compiled normally" msgstr "%s: kompilerad med -mrelocatable och länkad med moduler som kompilerats normalt" -#: elf32-ppc.c:1468 +#: elf32-ppc.c:2147 #, c-format msgid "%s: compiled normally and linked with modules compiled with -mrelocatable" msgstr "%s: kompilerad normalt och länkad med moduler som kompilerats 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: använder andra e_flags-fält (0x%lx) än tidigare moduler (0x%lx)" - -#: elf32-ppc.c:1592 -#, c-format -msgid "%s: Unknown special linker type %d" -msgstr "%s: Okänd speciallänkartyp %d" - -#: elf32-ppc.c:2273 elf32-ppc.c:2307 elf32-ppc.c:2342 +#: elf32-ppc.c:3413 #, c-format msgid "%s: relocation %s cannot be used when making a shared object" msgstr "%s: omlokaliseringen %s kan inte användas då ett delat objekt skapas" -#: elf32-ppc.c:3126 elf64-ppc.c:5473 +#. It does not make sense to have a procedure linkage +#. table entry for a local symbol. +#: elf32-ppc.c:3619 +#, c-format +msgid "%s(%s+0x%lx): %s reloc against local symbol" +msgstr "%s(%s+0x%lx): %s-omlokalisering mot lokal symbol" + +#: elf32-ppc.c:4862 elf64-ppc.c:7789 #, c-format msgid "%s: unknown relocation type %d for symbol %s" msgstr "%s: okänd omlokaliseringstyp %d för symbolen %s" -#: elf32-ppc.c:3482 elf32-ppc.c:3503 elf32-ppc.c:3553 +#: elf32-ppc.c:5113 #, c-format -msgid "%s: The target (%s) of a %s relocation is in the wrong output section (%s)" -msgstr "%s: Målet (%s) för en %s-omlokalisering är i fel utdatasektion (%s)" +msgid "%s(%s+0x%lx): non-zero addend on %s reloc against `%s'" +msgstr "%s(%s+0x%lx): icke-tomt addendum på %s-omlokalisering mot \"%s\"" -#: elf32-ppc.c:3619 +#: elf32-ppc.c:5399 elf32-ppc.c:5425 elf32-ppc.c:5484 +#, c-format +msgid "%s: the target (%s) of a %s relocation is in the wrong output section (%s)" +msgstr "%s: målet (%s) för en %s-omlokalisering är i fel utdatasektion (%s)" + +#: elf32-ppc.c:5539 +#, c-format +msgid "%s: relocation %s is not yet supported for symbol %s." +msgstr "%s: omlokaliseringen %s stöds inte än för symbolen %s." + +#: elf32-ppc.c:5594 elf64-ppc.c:8461 +#, c-format +msgid "%s(%s+0x%lx): unresolvable %s relocation against symbol `%s'" +msgstr "%s(%s+0x%lx): olöslig %s-omlokalisering mot symbolen \"%s\"" + +#: elf32-ppc.c:5644 elf64-ppc.c:8507 +#, c-format +msgid "%s(%s+0x%lx): %s reloc against `%s': error %d" +msgstr "%s(%s+0x%lx): %s-omlokalisering mot \"%s\": fel %d" + +#: elf32-ppc.c:5888 +#, c-format +msgid "corrupt or empty %s section in %s" +msgstr "trasig eller tom %s-sektion i %s" + +#: elf32-ppc.c:5895 +#, c-format +msgid "unable to read in %s section from %s" +msgstr "kan inte läsa in %s-sektion från %s" + +#: elf32-ppc.c:5901 +#, c-format +msgid "corrupt %s section in %s" +msgstr "trasig %s-sektion i %s" + +#: elf32-ppc.c:5944 #, c-format -msgid "%s: Relocation %s is not yet supported for symbol %s." -msgstr "%s: Omlokaliseringen %s stöds inte än för symbolen %s." +msgid "warning: unable to set size of %s section in %s" +msgstr "varning: kan inte ställa in storleken för sektionen %s i %s" -#: elf32-sh.c:1964 +#: elf32-ppc.c:5994 +msgid "failed to allocate space for new APUinfo section." +msgstr "misslyckades med att allokera utrymme för ny APUinfo-sektion." + +#: elf32-ppc.c:6013 +msgid "failed to compute new APUinfo section." +msgstr "misslyckades med att beräkna ny APUinfo-sektion." + +#: elf32-ppc.c:6016 +msgid "failed to install new APUinfo section." +msgstr "misslyckades med att installera ny APUinfo-sektion." + +#: elf32-s390.c:2256 elf64-s390.c:2226 +#, c-format +msgid "%s(%s+0x%lx): invalid instruction for TLS relocation %s" +msgstr "%s(%s+0x%lx): ogiltig instruktion för TLS-omlokalisering %s" + +#: elf32-sh.c:2103 #, c-format msgid "%s: 0x%lx: warning: bad R_SH_USES offset" msgstr "%s: 0x%lx: varning: felaktigt R_SH_USES-avstånd" -#: elf32-sh.c:1976 +#: elf32-sh.c:2115 #, c-format msgid "%s: 0x%lx: warning: R_SH_USES points to unrecognized insn 0x%x" msgstr "%s: 0x%lx: varning: R_SH_USES pekar till okänd instruktion 0x%x" -#: elf32-sh.c:1993 +#: elf32-sh.c:2132 #, c-format msgid "%s: 0x%lx: warning: bad R_SH_USES load offset" msgstr "%s: 0x%lx: varning: felaktigt R_SH_USES-inläsningsavstånd" -#: elf32-sh.c:2008 +#: elf32-sh.c:2147 #, c-format msgid "%s: 0x%lx: warning: could not find expected reloc" msgstr "%s: 0x%lx: varning: kunde inte hitta förväntad omlokalisering" -#: elf32-sh.c:2036 +#: elf32-sh.c:2175 #, c-format msgid "%s: 0x%lx: warning: symbol in unexpected section" msgstr "%s: 0x%lx: varning: symbol i oväntad sektion" -#: elf32-sh.c:2153 +#: elf32-sh.c:2300 #, c-format msgid "%s: 0x%lx: warning: could not find expected COUNT reloc" msgstr "%s: 0x%lx: varning: kunde inte hitta förväntad COUNT-omlokalisering" -#: elf32-sh.c:2162 +#: elf32-sh.c:2309 #, c-format msgid "%s: 0x%lx: warning: bad count" msgstr "%s: 0x%lx: varning: felaktigt antal" -#: elf32-sh.c:2550 elf32-sh.c:2926 +#: elf32-sh.c:2712 elf32-sh.c:3088 #, c-format msgid "%s: 0x%lx: fatal: reloc overflow while relaxing" msgstr "%s: 0x%lx: ödesdigert: omlokalisering ger överspill vid förenklingen" -#: elf32-sh.c:4073 elf64-sh64.c:1576 +#: elf32-sh.c:4654 elf64-sh64.c:1585 msgid "Unexpected STO_SH5_ISA32 on local symbol is not handled" msgstr "Oväntat STO_SH5_ISA32 på lokal symbol hanteras inte" -#: elf32-sh.c:4284 +#: elf32-sh.c:4809 +#, c-format +msgid "%s: unresolvable relocation against symbol `%s' from %s section" +msgstr "%s: olöslig omlokalisering mot symbolen \"%s\" från sektionen %s" + +#: elf32-sh.c:4881 #, c-format msgid "%s: 0x%lx: fatal: unaligned branch target for relax-support relocation" msgstr "%s: 0x%lx: ödesdigert: ojusterat grenmål för omlokalisering för förenklingsstöd" -#: elf32-sh64.c:203 elf64-sh64.c:2364 +#: elf32-sh.c:6627 elf64-alpha.c:4848 +#, c-format +msgid "%s: TLS local exec code cannot be linked into shared objects" +msgstr "%s: lokal TLS-exekveringskod kan inte länkas in i delade objekt" + +#: elf32-sh64.c:221 elf64-sh64.c:2407 #, c-format msgid "%s: compiled as 32-bit object and %s is 64-bit" msgstr "%s: kompilerat som 32-bitarsobjekt och %s är 64-bitars" -#: elf32-sh64.c:206 elf64-sh64.c:2367 +#: elf32-sh64.c:224 elf64-sh64.c:2410 #, c-format msgid "%s: compiled as 64-bit object and %s is 32-bit" msgstr "%s: kompilerat som 64-bitarsobjekt och %s är 32-bitars" -#: elf32-sh64.c:208 elf64-sh64.c:2369 +#: elf32-sh64.c:226 elf64-sh64.c:2412 #, c-format msgid "%s: object size does not match that of target %s" msgstr "%s: objektstorleken stämmer inte överens med den hos målet %s" -#: elf32-sh64.c:440 elf64-sh64.c:2941 +#: elf32-sh64.c:461 elf64-sh64.c:2990 #, c-format msgid "%s: encountered datalabel symbol in input" msgstr "%s: påträffade dataetikettssymbol i indata" -#: elf32-sh64.c:523 +#: elf32-sh64.c:544 msgid "PTB mismatch: a SHmedia address (bit 0 == 1)" msgstr "PTB passar inte: en SHmedia-adress (bit 0 == 1)" -#: elf32-sh64.c:526 +#: elf32-sh64.c:547 msgid "PTA mismatch: a SHcompact address (bit 0 == 0)" msgstr "PTA passar inte: en SHcompact-adress (bit 0 == 0)" -#: elf32-sh64.c:544 +#: elf32-sh64.c:565 #, c-format msgid "%s: GAS error: unexpected PTB insn with R_SH_PT_16" msgstr "%s: GAS-fel: oväntad PTB-instruktion med R_SH_PT_16" -#: elf32-sh64.c:593 elf64-sh64.c:1703 +#: elf32-sh64.c:614 elf64-sh64.c:1748 #, c-format msgid "%s: error: unaligned relocation type %d at %08x reloc %08x\n" msgstr "%s: fel: ojusterad omlokaliseringstyp %d på %08x omlokalisering %08x\n" -#: elf32-sh64.c:677 +#: elf32-sh64.c:698 #, c-format msgid "%s: could not write out added .cranges entries" msgstr "%s: kunde inte skriva ut tillagda .cranges-poster" -#: elf32-sh64.c:739 +#: elf32-sh64.c:760 #, c-format msgid "%s: could not write out sorted .cranges entries" msgstr "%s: kunde inte skriva ut sorterade cranges-poster" -#: elf32-sparc.c:1535 elf64-sparc.c:2224 +#: elf32-sparc.c:2521 elf64-sparc.c:2314 #, c-format msgid "%s: probably compiled without -fPIC?" msgstr "%s: troligen kompilerad utan -fPIC?" -#: elf32-sparc.c:2002 +#: elf32-sparc.c:3348 #, c-format msgid "%s: compiled for a 64 bit system and target is 32 bit" msgstr "%s: kompilerat för ett 64-bitarssystem och målet är 32-bitars" -#: elf32-sparc.c:2016 +#: elf32-sparc.c:3362 #, c-format msgid "%s: linking little endian files with big endian files" msgstr "%s: länkar little endian-filer med big endian-filer" -#: elf32-v850.c:682 +#: elf32-v850.c:753 #, c-format msgid "Variable `%s' cannot occupy in multiple small data regions" msgstr "Variabel \"%s\" kan inte befinna sig i flera små dataområden" -#: elf32-v850.c:685 +#: elf32-v850.c:756 #, c-format msgid "Variable `%s' can only be in one of the small, zero, and tiny data regions" msgstr "Variabel \"%s\" kan bara vara i ett av de små, tomma och pyttesmå dataområdena" -#: elf32-v850.c:688 +#: elf32-v850.c:759 #, c-format msgid "Variable `%s' cannot be in both small and zero data regions simultaneously" msgstr "Variabel \"%s\" kan inte vara i både små och tomma dataområden samtidigt" -#: elf32-v850.c:691 +#: elf32-v850.c:762 #, c-format msgid "Variable `%s' cannot be in both small and tiny data regions simultaneously" msgstr "Variabel \"%s\" kan inte vara i både små och pyttesmå dataområden samtidigt" -#: elf32-v850.c:694 +#: elf32-v850.c:765 #, c-format msgid "Variable `%s' cannot be in both zero and tiny data regions simultaneously" msgstr "Variabel \"%s\" kan inte vara i både tomma och pyttesmå dataområden samtidigt" -#: elf32-v850.c:1072 +#: elf32-v850.c:1144 msgid "FAILED to find previous HI16 reloc\n" msgstr "MISSLYCKADES med att hitta tidigare HI16-omlokalisering\n" -#: elf32-v850.c:1703 +#: elf32-v850.c:1789 msgid "could not locate special linker symbol __gp" msgstr "kunde inte lokalisera speciell länkarsymbol __gp" -#: elf32-v850.c:1707 +#: elf32-v850.c:1793 msgid "could not locate special linker symbol __ep" msgstr "kunde inte lokalisera speciell länkarsymbol __ep" -#: elf32-v850.c:1711 +#: elf32-v850.c:1797 msgid "could not locate special linker symbol __ctbp" msgstr "kunde inte lokalisera speciell länkarsymbol __ctbp" -#: elf32-v850.c:1875 +#: elf32-v850.c:1963 #, c-format msgid "%s: Architecture mismatch with previous modules" msgstr "%s: Arkitekturen passar inte ihop med tidigare moduler" -#: elf32-v850.c:1895 +#: elf32-v850.c:1983 #, c-format msgid "private flags = %lx: " msgstr "privata flaggor = %lx: " -#: elf32-v850.c:1900 +#: elf32-v850.c:1988 msgid "v850 architecture" msgstr "v850-arkitektur" -#: elf32-v850.c:1901 +#: elf32-v850.c:1989 msgid "v850e architecture" msgstr "v850e-arkitektur" -#: elf32-v850.c:1902 -msgid "v850ea architecture" -msgstr "v850ea-arkitektur" - -#: elf32-vax.c:546 +#: elf32-vax.c:549 msgid " [nonpic]" msgstr " [icke-pic]" -#: elf32-vax.c:549 +#: elf32-vax.c:552 msgid " [d-float]" msgstr " [d-flyttal]" -#: elf32-vax.c:552 +#: elf32-vax.c:555 msgid " [g-float]" msgstr " [g-flyttal]" -#: elf32-vax.c:674 +#: elf32-vax.c:663 #, c-format msgid "%s: warning: GOT addend of %ld to `%s' does not match previous GOT addend of %ld" msgstr "%s: varning: GOT-addendum %ld till \"%s\" stämmer inte överens med tidigare GOT-addendum %ld" -#: elf32-vax.c:1679 +#: elf32-vax.c:1667 #, c-format msgid "%s: warning: PLT addend of %d to `%s' from %s section ignored" msgstr "%s: varning: PLT-addendum %d till \"%s\" från sektionen %s ignorerades" -#: elf32-vax.c:1814 +#: elf32-vax.c:1802 #, c-format msgid "%s: warning: %s relocation against symbol `%s' from %s section" msgstr "%s: varning: %s-omlokalisering mot symbolen \"%s\" från sektionen %s" -#: elf32-vax.c:1820 +#: elf32-vax.c:1808 #, c-format msgid "%s: warning: %s relocation to 0x%x from %s section" msgstr "%s: varning: %s-omlokalisering till 0x%x från sektionen %s" -#: elf32-ia64.c:2280 elf32-xstormy16.c:414 elf64-ia64.c:2280 +#: elf32-xstormy16.c:462 elf32-ia64.c:2450 elf64-ia64.c:2450 msgid "non-zero addend in @fptr reloc" msgstr "icke-tomt addendum i @fptr-omlokalisering" -#: elf64-alpha.c:1097 +#: elf64-alpha.c:1108 msgid "GPDISP relocation did not find ldah and lda instructions" msgstr "GPDISP-omlokalisering hittade inga ldah- och lda-instruktioner" -#: elf64-alpha.c:3675 +#: elf64-alpha.c:3731 #, c-format msgid "%s: .got subsegment exceeds 64K (size %d)" msgstr "%s: .got-subsegment överskrider 64 kB (storlek %d)" -#: elf64-alpha.c:4498 elf64-alpha.c:4510 +#: elf64-alpha.c:4602 elf64-alpha.c:4614 #, c-format msgid "%s: gp-relative relocation against dynamic symbol %s" msgstr "%s: gp-relativ omlokalisering mot dynamiska symbolen %s" -#: elf64-alpha.c:4536 elf64-alpha.c:4676 +#: elf64-alpha.c:4640 elf64-alpha.c:4773 #, c-format msgid "%s: pc-relative relocation against dynamic symbol %s" msgstr "%s: pc-relativ omlokalisering mot dynamiska symbolen %s" -#: elf64-alpha.c:4564 +#: elf64-alpha.c:4668 #, c-format msgid "%s: change in gp: BRSGP %s" msgstr "%s: ändring i gp: BRSGP %s" -#: elf64-alpha.c:4589 +#: elf64-alpha.c:4693 msgid "" msgstr "" -#: elf64-alpha.c:4594 +#: elf64-alpha.c:4698 #, c-format msgid "%s: !samegp reloc against symbol without .prologue: %s" msgstr "%s: !samegp-omlokalisering mot symbol utan .prologue: %s" -#: elf64-alpha.c:4639 +#: elf64-alpha.c:4749 #, c-format msgid "%s: unhandled dynamic relocation against %s" msgstr "%s: ohanterad dynamisk omlokalisering mot %s" -#: elf64-alpha.c:4752 +#: elf64-alpha.c:4832 #, c-format msgid "%s: dtp-relative relocation against dynamic symbol %s" msgstr "%s: dtp-relativ omlokalisering mot dynamiska symbolen %s" -#: elf64-alpha.c:4775 +#: elf64-alpha.c:4855 #, c-format msgid "%s: tp-relative relocation against dynamic symbol %s" msgstr "%s: tp-relativ omlokalisering mot dynamiska symbolen %s" -#: elf64-hppa.c:2080 +#: elf64-hppa.c:2086 #, c-format msgid "stub entry for %s cannot load .plt, dp offset = %ld" msgstr "stubbpost för %s kan inte läsa in .plt, dp-avstånd = %ld" -#: elf64-mmix.c:1002 +#: elf64-mmix.c:1032 #, c-format msgid "" "%s: Internal inconsistency error for value for\n" @@ -1364,46 +1559,46 @@ msgstr "" "%s: Intern inkkonsistensfel för värdet för\n" " länkarallokerat globalt register: länkat: 0x%lx%08lx != avslappnat: 0x%lx%08lx\n" -#: elf64-mmix.c:1386 +#: elf64-mmix.c:1416 #, c-format msgid "%s: base-plus-offset relocation against register symbol: (unknown) in %s" msgstr "%s: bas-plus-avståndsomlokalisering mot registersymbol: (okänd) i %s" -#: elf64-mmix.c:1391 +#: elf64-mmix.c:1421 #, c-format msgid "%s: base-plus-offset relocation against register symbol: %s in %s" msgstr "%s: bas-plus-avståndsomlokalisering mot registersymbol: %s i %s" -#: elf64-mmix.c:1435 +#: elf64-mmix.c:1465 #, c-format msgid "%s: register relocation against non-register symbol: (unknown) in %s" msgstr "%s: registeromlokalisering mot icke-registersymbol: (okänd) i %s" -#: elf64-mmix.c:1440 +#: elf64-mmix.c:1470 #, c-format msgid "%s: register relocation against non-register symbol: %s in %s" msgstr "%s: registeromlokalisering mot icke-registersymbol: %s i %s" -#: elf64-mmix.c:1477 +#: elf64-mmix.c:1507 #, c-format msgid "%s: directive LOCAL valid only with a register or absolute value" msgstr "%s: LOCAL-direktivet är endast giltigt med ett register eller absolutvärde" -#: elf64-mmix.c:1505 +#: elf64-mmix.c:1535 #, c-format msgid "%s: LOCAL directive: Register $%ld is not a local register. First global register is $%ld." msgstr "%s: LOCAL-direktiv: Register $%ld är inte ett lokalt register. Första globala registret är $%ld." -#: elf64-mmix.c:1965 +#: elf64-mmix.c:1994 #, c-format msgid "%s: Error: multiple definition of `%s'; start of %s is set in a earlier linked file\n" msgstr "%s: Fel: flera definitioner av \"%s\"; början på %s är inställd i en tidigare länkad fil\n" -#: elf64-mmix.c:2024 +#: elf64-mmix.c:2053 msgid "Register section has contents\n" msgstr "Registersektion har innehåll\n" -#: elf64-mmix.c:2186 +#: elf64-mmix.c:2216 #, c-format msgid "" "Internal inconsistency: remaining %u != max %u.\n" @@ -1412,574 +1607,617 @@ msgstr "" "Intern inkonsekvens: återstående %u != max %u.\n" " Rapportera gärna detta fel." -#: elf64-ppc.c:1669 libbfd.c:1435 +#: elf64-ppc.c:2388 libbfd.c:831 #, c-format msgid "%s: compiled for a big endian system and target is little endian" msgstr "%s: kompilerad för big endian-system och målet är little endian" -#: elf64-ppc.c:1671 libbfd.c:1437 +#: elf64-ppc.c:2391 libbfd.c:833 #, c-format msgid "%s: compiled for a little endian system and target is big endian" msgstr "%s: kompilerad för ett little endian-system och målet är big endian" -#: elf64-ppc.c:3610 +#: elf64-ppc.c:4857 #, c-format msgid "%s: unexpected reloc type %u in .opd section" msgstr "%s: oväntad omlokaliseringstyp %u i .opd-sektion" -#: elf64-ppc.c:3630 +#: elf64-ppc.c:4877 #, c-format msgid "%s: .opd is not a regular array of opd entries" msgstr "%s: .opd är inte en vanlig vektor med opd-poster" -#: elf64-ppc.c:3672 +#: elf64-ppc.c:4897 #, c-format msgid "%s: undefined sym `%s' in .opd section" msgstr "%s: odefinierad symbol \"%s\" i .opd-sektion" -#: elf64-ppc.c:4397 +#: elf64-ppc.c:6136 #, c-format msgid "can't find branch stub `%s'" msgstr "kan inte hitta grenstubb \"%s\"" -#: elf64-ppc.c:4436 elf64-ppc.c:4501 +#: elf64-ppc.c:6175 elf64-ppc.c:6250 #, c-format msgid "linkage table error against `%s'" msgstr "länktabellsfel mot \"%s\"" -#: elf64-ppc.c:4573 +#: elf64-ppc.c:6340 #, c-format msgid "can't build branch stub `%s'" msgstr "kan inte bygga grenstubb \"%s\"" -#: elf64-ppc.c:5179 +#: elf64-ppc.c:7047 +msgid ".glink and .plt too far apart" +msgstr ".glink och .plt för långt ifrån varandra" + +#: elf64-ppc.c:7135 msgid "stubs don't match calculated size" msgstr "stubbar stämmer inte överens med beräknad storlek" -#: elf64-ppc.c:5828 +#: elf64-ppc.c:7147 #, c-format -msgid "%s: Relocation %s is not supported for symbol %s." -msgstr "%s: Omlokaliseringen %s stöds inte för symbolen %s." +msgid "" +"linker stubs in %u groups\n" +" branch %lu\n" +" toc adjust %lu\n" +" long branch %lu\n" +" long toc adj %lu\n" +" plt call %lu" +msgstr "" +"länkarstubbar i %u grupper\n" +" gren %lu\n" +" toc-justering %lu\n" +" lång gren %lu\n" +" lång toc-just. %lu\n" +" plt-anrop %lu" + +#: elf64-ppc.c:7723 +#, c-format +msgid "%s(%s+0x%lx): automatic multiple TOCs not supported using your crt files; recompile with -mminimal-toc or upgrade gcc" +msgstr "%s(%s+0x%lx): flera automatiska TOC stöds inte vid användning av dina crt-filer; kompilera om med -mminimal-toc eller uppgradera gcc" -#: elf64-ppc.c:5872 +#: elf64-ppc.c:7731 #, c-format -msgid "%s: error: relocation %s not a multiple of 4" -msgstr "%s: fel: omlokaliseringen %s är inte en multipel av 4" +msgid "%s(%s+0x%lx): sibling call optimization to `%s' does not allow automatic multiple TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, or make `%s' extern" +msgstr "%s(%s+0x%lx): syskonanropsoptimering till \"%s\" stöder inte flera automatiska TOC; kompilera om med -mminimal-toc eller -fno-optimize-sibling-calls, eller gör \"%s\" extern" -#: elf64-sparc.c:1280 +#: elf64-ppc.c:8329 +#, c-format +msgid "%s: relocation %s is not supported for symbol %s." +msgstr "%s: omlokaliseringen %s stöds inte för symbolen %s." + +#: elf64-ppc.c:8408 +#, c-format +msgid "%s: error: relocation %s not a multiple of %d" +msgstr "%s: fel: omlokaliseringen %s är inte en multipel av %d" + +#: elf64-sparc.c:1370 #, c-format msgid "%s: check_relocs: unhandled reloc type %d" msgstr "%s: check_relocs: ohanterad omlokaliseringstyp %d" -#: elf64-sparc.c:1317 +#: elf64-sparc.c:1407 #, c-format msgid "%s: Only registers %%g[2367] can be declared using STT_REGISTER" msgstr "%s: Endast register %%g[2367] kan deklareras med STT_REGISTER" -#: elf64-sparc.c:1337 +#: elf64-sparc.c:1427 #, c-format msgid "Register %%g%d used incompatibly: %s in %s, previously %s in %s" msgstr "Register %%g%d används inkompatibelt: %s i %s, tidigare %s i %s" -#: elf64-sparc.c:1360 +#: elf64-sparc.c:1450 #, c-format msgid "Symbol `%s' has differing types: REGISTER in %s, previously %s in %s" msgstr "Symbolen \"%s\" har olika typer: REGISTER i %s, tidigare %s i %s" -#: elf64-sparc.c:1406 +#: elf64-sparc.c:1496 #, c-format msgid "Symbol `%s' has differing types: %s in %s, previously REGISTER in %s" msgstr "Symbolen \"%s\" har olika typer: %s i %s, tidigare REGISTER i %s" -#: elf64-sparc.c:2970 +#: elf64-sparc.c:3053 #, c-format msgid "%s: linking UltraSPARC specific with HAL specific code" msgstr "%s: länkar UltraSPARC-specifik med HAL-specifik kod" -#: elfcode.h:1198 +#: elf64-x86-64.c:739 +#, c-format +msgid "%s: %s' accessed both as normal and thread local symbol" +msgstr "%s: \"%s\" anropad både som lokal normal symbol och lokal trådsymbol" + +#: elfcode.h:1113 #, c-format msgid "%s: version count (%ld) does not match symbol count (%ld)" msgstr "%s: versionsantal (%ld) stämmer inte med symbolantal (%ld)" -#: elflink.c:440 +#: elfcode.h:1342 +#, c-format +msgid "%s(%s): relocation %d has invalid symbol index %ld" +msgstr "%s(%s): omlokalisering %d har ogiltigt symbolindex %ld" + +#: elflink.c:1456 #, c-format -msgid "%s: Section %s is too large to add hole of %ld bytes" -msgstr "%s: Sektionen %s är för stor för att stoppa hål med %ld byte i" +msgid "%s: warning: unexpected redefinition of indirect versioned symbol `%s'" +msgstr "%s: varning: oväntad omdefinition av indirekt versionsangiven symbol \"%s\"" -#: elflink.h:1090 +#: elflink.c:1807 #, c-format -msgid "%s: warning: unexpected redefinition of `%s'" -msgstr "%s: varning: oväntad omdefinition av \"%s\"" +msgid "%s: undefined versioned symbol name %s" +msgstr "%s: odefinierat symbolnamn med version %s" + +#: elflink.c:2142 +#, c-format +msgid "%s: relocation size mismatch in %s section %s" +msgstr "%s: omlokaliseringsstorleken stämmer inte överens i sektionen %s %s" -#: elflink.h:1727 +#: elflink.c:2434 +#, c-format +msgid "warning: type and size of dynamic symbol `%s' are not defined" +msgstr "varning: typen och storleken på dynamiska symbolen \"%s\" är inte definierade" + +#: elflink.h:1022 #, c-format msgid "%s: %s: invalid version %u (max %d)" msgstr "%s: %s: ogiltig version %u (max %d)" -#: elflink.h:1768 +#: elflink.h:1063 #, c-format msgid "%s: %s: invalid needed version %d" msgstr "%s: %s: ogiltig krävd version %d" -#: elflink.h:1890 +#: elflink.h:1238 #, c-format -msgid "Warning: size of symbol `%s' changed from %lu to %lu in %s" -msgstr "Varning: storleken på symbolen \"%s\" ändrades från %lu till %lu i %s" +msgid "Warning: alignment %u of symbol `%s' in %s is smaller than %u in %s" +msgstr "Varning: justeringen %u på symbolen \"%s\" i %s är mindre än %u i %s" -#: elflink.h:3174 +#: elflink.h:1252 #, c-format -msgid "%s: .preinit_array section is not allowed in DSO" -msgstr "%s: .preinit_array-sektionen är inte tillåten i DSO" +msgid "Warning: size of symbol `%s' changed from %lu in %s to %lu in %s" +msgstr "Varning: storleken på symbolen \"%s\" ändrades från %lu i %s till %lu i %s" -#: elflink.h:4030 +#: elflink.h:2160 #, c-format -msgid "warning: type and size of dynamic symbol `%s' are not defined" -msgstr "varning: typen och storleken på dynamiska symbolen \"%s\" är inte definierade" +msgid "%s: undefined version: %s" +msgstr "%s: odefinierad version: %s" -#: elflink.h:4345 +#: elflink.h:2226 #, c-format -msgid "%s: undefined versioned symbol name %s" -msgstr "%s: odefinierat symbolnamn med version %s" - -#: elflink.h:4611 elflink.h:4619 elflink.h:6508 elflink.h:7600 -msgid "Error: out of memory" -msgstr "Fel: slut på minne" +msgid "%s: .preinit_array section is not allowed in DSO" +msgstr "%s: .preinit_array-sektionen är inte tillåten i DSO" -#: elflink.h:4781 +#: elflink.h:3078 msgid "Not enough memory to sort relocations" msgstr "Inte tillräckligt med minne för att sortera omlokaliseringar" -#: elflink.h:5682 elflink.h:5725 +#: elflink.h:3958 elflink.h:4001 #, c-format msgid "%s: could not find output section %s" msgstr "%s: kunde inte hitta utdatasektionen %s" -#: elflink.h:5688 +#: elflink.h:3964 #, c-format msgid "warning: %s section has zero size" -msgstr "varning: %s-sektionen har nollstorlek" +msgstr "varning: sektionen %s har nollstorlek" -#: elflink.h:6275 +#: elflink.h:4483 +#, c-format +msgid "%s: %s symbol `%s' in %s is referenced by DSO" +msgstr "%s: %s-symbolen \"%s\" i %s refereras till av DSO" + +#: elflink.h:4564 #, c-format msgid "%s: could not find output section %s for input section %s" msgstr "%s: kunde inte hitta utdatasektionen %s för indatasektionen %s" -#: elflink.h:6486 +#: elflink.h:4666 #, c-format -msgid "%s: relocation size mismatch in %s section %s" -msgstr "%s: omlokaliseringsstorleken stämmer inte överens i %s-sektionen %s" - -#: elflink.h:6849 -msgid "warning: relocation against removed section; zeroing" -msgstr "varning: omlokalisering mot borttagen sektion; nollställer" +msgid "%s: %s symbol `%s' isn't defined" +msgstr "%s: %s-symbolen \"%s\" är inte definierad" -#: elflink.h:6879 -msgid "warning: relocation against removed section" -msgstr "varning: omlokalisering mot borttagen sektion" +#: elflink.h:5053 elflink.h:5095 +msgid "%T: discarded in section `%s' from %s\n" +msgstr "%T: bortkastade i sektionen \"%s\" från %s\n" -#: elflink.h:6892 -#, c-format -msgid "local symbols in discarded section %s" -msgstr "lokala symboler i bortkastade sektionen %s" - -#: elfxx-mips.c:734 +#: elfxx-mips.c:887 msgid "static procedure (no name)" msgstr "statisk procedur (inget namn)" -#: elfxx-mips.c:1601 +#: elfxx-mips.c:1897 msgid "not enough GOT space for local GOT entries" msgstr "inte tillräckligt med GOT-utrymme för lokala GOT-poster" -#: elfxx-mips.c:2750 +#: elfxx-mips.c:3691 #, c-format msgid "%s: %s+0x%lx: jump to stub routine which is not jal" msgstr "%s: %s+0x%lx: hoppa till stubbrutin som inte är jal" -#: elfxx-mips.c:4270 +#: elfxx-mips.c:5192 #, c-format msgid "%s: Malformed reloc detected for section %s" msgstr "%s: Felaktig omlokalisering för sektion %s upptäckt" -#: elfxx-mips.c:4348 +#: elfxx-mips.c:5266 #, c-format msgid "%s: CALL16 reloc at 0x%lx not against global symbol" msgstr "%s: CALL16-omlokalisering vid 0x%lx är inte mot global symbol" -#: elfxx-mips.c:7301 +#: elfxx-mips.c:8692 #, c-format msgid "%s: illegal section name `%s'" msgstr "%s: ogiltigt sektionsnamn \"%s\"" -#: elfxx-mips.c:7615 +#: elfxx-mips.c:9025 +#, c-format +msgid "%s: endianness incompatible with that of the selected emulation" +msgstr "%s: endianess inkompatibel med den för den valda emuleringen" + +#: elfxx-mips.c:9037 #, c-format -msgid "%s: linking PIC files with non-PIC files" -msgstr "%s: länkar PIC-filer med icke-PIC-filer" +msgid "%s: ABI is incompatible with that of the selected emulation" +msgstr "%s: ABI är inkompatibelt med den för den valda emuleringen" -#: elfxx-mips.c:7625 +#: elfxx-mips.c:9104 #, c-format -msgid "%s: linking abicalls files with non-abicalls files" -msgstr "%s: länkar abicalls-filer med icke-abicalls-filer" +msgid "%s: warning: linking PIC files with non-PIC files" +msgstr "%s: varning: länkar PIC-filer med icke-PIC-filer" -#: elfxx-mips.c:7654 +#: elfxx-mips.c:9121 #, c-format -msgid "%s: ISA mismatch (-mips%d) with previous modules (-mips%d)" -msgstr "%s: ISA (-mips%d) passar inte med tidigare moduler (-mips%d)" +msgid "%s: linking 32-bit code with 64-bit code" +msgstr "%s: länkar 32-bitarskod med 64-bitarskod" -#: elfxx-mips.c:7676 +#: elfxx-mips.c:9149 #, c-format -msgid "%s: ISA mismatch (%d) with previous modules (%d)" -msgstr "%s: ISA (%d) passar inte med tidigare moduler (%d)" +msgid "%s: linking %s module with previous %s modules" +msgstr "%s: länkar %s-modul med tidigare %s-moduler" -#: elfxx-mips.c:7699 +#: elfxx-mips.c:9172 #, c-format msgid "%s: ABI mismatch: linking %s module with previous %s modules" msgstr "%s: ABI passar inte: länkar %s-modul med tidigare %s-moduler" -#: elfxx-mips.c:7759 +#: elfxx-mips.c:9241 msgid " [abi=O32]" msgstr " [abi=O32]" -#: elfxx-mips.c:7761 +#: elfxx-mips.c:9243 msgid " [abi=O64]" msgstr " [abi=O64]" -#: elfxx-mips.c:7763 +#: elfxx-mips.c:9245 msgid " [abi=EABI32]" msgstr " [abi=EABI32]" -#: elfxx-mips.c:7765 +#: elfxx-mips.c:9247 msgid " [abi=EABI64]" msgstr " [abi=EABI64]" -#: elfxx-mips.c:7767 +#: elfxx-mips.c:9249 msgid " [abi unknown]" msgstr " [okänt abi]" -#: elfxx-mips.c:7769 +#: elfxx-mips.c:9251 msgid " [abi=N32]" msgstr " [abi=N32]" -#: elfxx-mips.c:7771 +#: elfxx-mips.c:9253 msgid " [abi=64]" msgstr " [abi=64]" -#: elfxx-mips.c:7773 +#: elfxx-mips.c:9255 msgid " [no abi set]" msgstr " [inget abi inställt]" -#: elfxx-mips.c:7776 +#: elfxx-mips.c:9258 msgid " [mips1]" msgstr " [mips1]" -#: elfxx-mips.c:7778 +#: elfxx-mips.c:9260 msgid " [mips2]" msgstr " [mips2]" -#: elfxx-mips.c:7780 +#: elfxx-mips.c:9262 msgid " [mips3]" msgstr " [mips3]" -#: elfxx-mips.c:7782 +#: elfxx-mips.c:9264 msgid " [mips4]" msgstr " [mips4]" -#: elfxx-mips.c:7784 +#: elfxx-mips.c:9266 msgid " [mips5]" msgstr " [mips5]" -#: elfxx-mips.c:7786 +#: elfxx-mips.c:9268 msgid " [mips32]" msgstr " [mips32]" -#: elfxx-mips.c:7788 +#: elfxx-mips.c:9270 msgid " [mips64]" msgstr " [mips64]" -#: elfxx-mips.c:7790 +#: elfxx-mips.c:9272 +msgid " [mips32r2]" +msgstr " [mips32r2]" + +#: elfxx-mips.c:9274 msgid " [unknown ISA]" msgstr " [okänd ISA]" -#: elfxx-mips.c:7793 +#: elfxx-mips.c:9277 msgid " [mdmx]" msgstr " [mdmx]" -#: elfxx-mips.c:7796 +#: elfxx-mips.c:9280 msgid " [mips16]" msgstr " [mips16]" -#: elfxx-mips.c:7799 +#: elfxx-mips.c:9283 msgid " [32bitmode]" msgstr " [32-bitarsläge]" -#: elfxx-mips.c:7801 +#: elfxx-mips.c:9285 msgid " [not 32bitmode]" msgstr " [inte 32-bitarsläge]" -#: i386linux.c:458 m68klinux.c:462 sparclinux.c:459 +#: i386linux.c:457 m68klinux.c:461 sparclinux.c:458 #, c-format msgid "Output file requires shared library `%s'\n" msgstr "Utdatafilen kräver delade biblioteket \"%s\"\n" -#: i386linux.c:466 m68klinux.c:470 sparclinux.c:467 +#: i386linux.c:465 m68klinux.c:469 sparclinux.c:466 #, c-format msgid "Output file requires shared library `%s.so.%s'\n" msgstr "Utdatafilen kräver delade biblioteket \"%s.so.%s\"\n" -#: i386linux.c:655 i386linux.c:705 m68klinux.c:662 m68klinux.c:710 -#: sparclinux.c:657 sparclinux.c:707 +#: i386linux.c:654 i386linux.c:704 m68klinux.c:661 m68klinux.c:709 +#: sparclinux.c:656 sparclinux.c:706 #, c-format msgid "Symbol %s not defined for fixups\n" msgstr "Symbolen %s är inte definierad för fixar\n" -#: i386linux.c:729 m68klinux.c:734 sparclinux.c:731 +#: i386linux.c:728 m68klinux.c:733 sparclinux.c:730 msgid "Warning: fixup count mismatch\n" msgstr "Varning: antalet fixar stämmer inte\n" -#: ieee.c:235 +#: ieee.c:293 #, c-format msgid "%s: string too long (%d chars, max 65535)" msgstr "%s: strängen är för lång (%d tecken, max 65535)" -#: ieee.c:365 +#: ieee.c:428 #, c-format msgid "%s: unrecognized symbol `%s' flags 0x%x" msgstr "%s: okänd symbol \"%s\" flaggor 0x%x" -#: ieee.c:877 +#: ieee.c:938 #, c-format msgid "%s: unimplemented ATI record %u for symbol %u" msgstr "%s: inte implementerad ATI-post %u för symbolen %u" -#: ieee.c:902 +#: ieee.c:963 #, c-format msgid "%s: unexpected ATN type %d in external part" msgstr "%s: oväntad ATN-typ %d i extern del" -#: ieee.c:924 +#: ieee.c:985 #, c-format msgid "%s: unexpected type after ATN" msgstr "%s: oväntad typ efter ATN" -#: ihex.c:258 +#: ihex.c:264 #, c-format msgid "%s:%d: unexpected character `%s' in Intel Hex file\n" msgstr "%s:%d: oväntat tecken \"%s\" i hexadecimal Intel-fil\n" -#: ihex.c:366 +#: ihex.c:372 #, c-format msgid "%s:%u: bad checksum in Intel Hex file (expected %u, found %u)" msgstr "%s:%u: felaktig kontrollsumma i hexadecimal Intel-fil (förväntade %u, hittade %u)" -#: ihex.c:420 +#: ihex.c:426 #, c-format msgid "%s:%u: bad extended address record length in Intel Hex file" msgstr "%s:%u: felaktig längd på post för utökad adress i hexadecimal Intel-fil" -#: ihex.c:437 +#: ihex.c:443 #, c-format msgid "%s:%u: bad extended start address length in Intel Hex file" msgstr "%s:%u: felaktig längd på utökad startadress i hexadecimal Intel-fil" -#: ihex.c:454 +#: ihex.c:460 #, c-format msgid "%s:%u: bad extended linear address record length in Intel Hex file" msgstr "%s:%u: felaktig längd på post för utökad linjär adress i hexadecimal Intel-fil" -#: ihex.c:471 +#: ihex.c:477 #, c-format msgid "%s:%u: bad extended linear start address length in Intel Hex file" msgstr "%s:%u: felaktig längd på post för utökad linjär startadress i hexadecimal Intel-fil" -#: ihex.c:488 +#: ihex.c:494 #, c-format msgid "%s:%u: unrecognized ihex type %u in Intel Hex file\n" msgstr "%s:%u: okänd ihex-typ %u i hexadecimal Intel-fil\n" -#: ihex.c:607 +#: ihex.c:619 #, c-format msgid "%s: internal error in ihex_read_section" msgstr "%s: internt fel i ihex_read_section" -#: ihex.c:642 +#: ihex.c:654 #, c-format msgid "%s: bad section length in ihex_read_section" msgstr "%s: felaktig sektionslängd i ihex_read_sektion" -#: ihex.c:860 +#: ihex.c:872 #, c-format msgid "%s: address 0x%s out of range for Intel Hex file" msgstr "%s: adressen 0x%s är utanför intervallet för hexadecimal Intel-fil" -#: libbfd.c:492 -#, c-format -msgid "not mapping: data=%lx mapped=%d\n" -msgstr "mappar inte: data=%lx mappat=%d\n" - -#: libbfd.c:495 -msgid "not mapping: env var not set\n" -msgstr "mappar inte: miljövariabel är inte satt\n" - -#: libbfd.c:1466 +#: libbfd.c:861 #, c-format msgid "Deprecated %s called at %s line %d in %s\n" msgstr "Föråldrad %s anropad vid %s rad %d i %s\n" -#: libbfd.c:1469 +#: libbfd.c:864 #, c-format msgid "Deprecated %s called\n" msgstr "Föråldrad %s anropad\n" -#: linker.c:1873 +#: linker.c:1829 #, c-format msgid "%s: indirect symbol `%s' to `%s' is a loop" msgstr "%s: indirekt symbol \"%s\" till \"%s\" är en slinga" -#: linker.c:2776 +#: linker.c:2697 #, c-format -msgid "Attempt to do relocateable link with %s input and %s output" +msgid "Attempt to do relocatable link with %s input and %s output" msgstr "Försök att göra en omlokaliseringsbar länk med %s-indata och %s-utdata" -#: merge.c:892 +#: merge.c:896 #, c-format msgid "%s: access beyond end of merged section (%ld + %ld)" msgstr "%s: åtkomst bortom slut på sammanslagen sektion (%ld + %ld)" -#: mmo.c:460 +#: mmo.c:503 #, c-format msgid "%s: No core to allocate section name %s\n" msgstr "%s: Ingen kärna för att allokera sektionsnamn %s\n" -#: mmo.c:536 +#: mmo.c:579 #, c-format msgid "%s: No core to allocate a symbol %d bytes long\n" msgstr "%s: Ingen kärna för att allokera en %d byte lång symbol\n" -#: mmo.c:1245 +#: mmo.c:1287 #, c-format msgid "%s: invalid mmo file: initialization value for $255 is not `Main'\n" msgstr "%s: ogiltig mmo-fil: initieringsvärde för $255 är inte \"Main\"\n" -#: mmo.c:1391 +#: mmo.c:1433 #, c-format msgid "%s: unsupported wide character sequence 0x%02X 0x%02X after symbol name starting with `%s'\n" msgstr "%s: bred teckensekvens som inte stöds 0x%02X 0x%02X efter symbolnamnet som börjar med \"%s\"\n" -#: mmo.c:1633 +#: mmo.c:1674 #, c-format msgid "%s: invalid mmo file: unsupported lopcode `%d'\n" msgstr "%s: ogiltig mmo-fil: lopkod \"%d\" stöds inte\n" -#: mmo.c:1643 +#: mmo.c:1684 #, c-format msgid "%s: invalid mmo file: expected YZ = 1 got YZ = %d for lop_quote\n" msgstr "%s: ogiltig mmo-fil: förväntade YZ = 1 fick YZ = %d för lop_quote\n" -#: mmo.c:1679 +#: mmo.c:1720 #, c-format msgid "%s: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_loc\n" msgstr "%s: ogiltig mmo-fil: förväntade z = 1 eller z = 2, fick z = %d för lop_loc\n" -#: mmo.c:1725 +#: mmo.c:1766 #, c-format msgid "%s: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_fixo\n" msgstr "%s: ogiltig mmo-fil: förväntade z = 1 eller z = 2, fick z = %d för lop_fixo\n" -#: mmo.c:1764 +#: mmo.c:1805 #, c-format msgid "%s: invalid mmo file: expected y = 0, got y = %d for lop_fixrx\n" msgstr "%s: ogiltig mmo-fil: förväntade y = 0, fick y = %d för lop_fixrx\n" -#: mmo.c:1773 +#: mmo.c:1814 #, c-format msgid "%s: invalid mmo file: expected z = 16 or z = 24, got z = %d for lop_fixrx\n" msgstr "%s: ogiltig mmo-fil: förväntade z = 16 eller z = 24, fick z = %d för lop_fixr\n" -#: mmo.c:1796 +#: mmo.c:1837 #, 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: ogiltig mmo-fil: inledande byte i operandord måste vara 0 eller 1, fick %d för lop_fixrx\n" -#: mmo.c:1819 +#: mmo.c:1860 #, c-format msgid "%s: cannot allocate file name for file number %d, %d bytes\n" msgstr "%s: kan inte allokera filnamn för fil nummer %d, %d byte\n" -#: mmo.c:1839 +#: mmo.c:1880 #, c-format msgid "%s: invalid mmo file: file number %d `%s', was already entered as `%s'\n" msgstr "%s: ogiltig mmo-fil: fil nummer %d \"%s\", var redan angiven som \"%s\"\n" -#: mmo.c:1852 +#: mmo.c:1893 #, c-format msgid "%s: invalid mmo file: file name for number %d was not specified before use\n" msgstr "%s: ogiltig mmo-fil: filnamnet för nummer %d angavs inte innan användning\n" -#: mmo.c:1958 +#: mmo.c:1999 #, c-format msgid "%s: invalid mmo file: fields y and z of lop_stab non-zero, y: %d, z: %d\n" msgstr "%s: ogiltig mmo-fil: fälten y och z i lop_stab är icke-tomma, y: %d, z: %d\n" -#: mmo.c:1994 +#: mmo.c:2035 #, c-format msgid "%s: invalid mmo file: lop_end not last item in file\n" msgstr "%s: ogiltig mmo-fil: lop_end är inte sista objektet i fil\n" -#: mmo.c:2007 +#: mmo.c:2048 #, 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: ogiltig mmo-fil: YZ i lop_end (%ld) är inte lika med antalet tetra till den föregående lop_stab (%ld)\n" -#: mmo.c:2670 +#: mmo.c:2698 #, c-format msgid "%s: invalid symbol table: duplicate symbol `%s'\n" msgstr "%s: ogiltig symboltabell: dublettsymbol \"%s\"\n" -#: mmo.c:2921 +#: mmo.c:2949 #, c-format msgid "%s: Bad symbol definition: `Main' set to %s rather than the start address %s\n" msgstr "%s: Felaktig symboldefinition: \"Main\" är inställd till %s istället för startadressen %s\n" -#: mmo.c:3011 +#: mmo.c:3039 #, 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: varning: symboltabellen är för stor för mmo, större än 65535 32-bitars ord: %d. Endast \"Main\" kommer att skickas.\n" -#: mmo.c:3056 +#: mmo.c:3084 #, c-format msgid "%s: internal error, symbol table changed size from %d to %d words\n" msgstr "%s: internt fel, symboltabellen ändrade storlek från %d till %d ord\n" -#: mmo.c:3111 +#: mmo.c:3139 #, c-format msgid "%s: internal error, internal register section %s had contents\n" msgstr "%s: internt fel, interna registersektionen %s hade innehåll\n" -#: mmo.c:3163 +#: mmo.c:3191 #, c-format msgid "%s: no initialized registers; section length 0\n" msgstr "%s: inga initierade register; sektionslängd 0\n" -#: mmo.c:3169 +#: mmo.c:3197 #, c-format msgid "%s: too many initialized registers; section length %ld\n" msgstr "%s: för många initierade register; sektionslängd %ld\n" -#: mmo.c:3174 +#: mmo.c:3202 #, c-format msgid "%s: invalid start address for initialized registers of length %ld: 0x%lx%08lx\n" msgstr "%s: ogiltig startadress för initierade register med längden %ld: 0x%lx%08lx\n" -#: oasys.c:1029 +#: oasys.c:1052 #, c-format msgid "%s: can not represent section `%s' in oasys" msgstr "%s: kan inte representera sektionen \"%s\" i oasys" -#: osf-core.c:132 +#: osf-core.c:137 #, c-format msgid "Unhandled OSF/1 core file section type %d\n" msgstr "Ohanterad sektionstyp %d för OSF/1-minnesfil\n" -#: pe-mips.c:658 +#: pe-mips.c:659 #, c-format msgid "%s: `ld -r' not supported with PE MIPS objects\n" msgstr "%s: \"ld -r\" stöds inte med PE MIPS-objekt\n" @@ -1989,53 +2227,53 @@ msgstr "%s: \"ld -r\" stöds inte med PE #. mem = pointer to memory we're fixing up #. val = VMA of what we need to refer to #. -#: pe-mips.c:794 +#: pe-mips.c:795 #, c-format msgid "%s: unimplemented %s\n" msgstr "%s: oimplementerat %s\n" -#: pe-mips.c:820 +#: pe-mips.c:821 #, c-format msgid "%s: jump too far away\n" msgstr "%s: hopp för långt bort\n" -#: pe-mips.c:847 +#: pe-mips.c:848 #, c-format msgid "%s: bad pair/reflo after refhi\n" msgstr "%s: felaktigt par/reflo efter refhi\n" #. XXX code yet to be written. -#: peicode.h:785 +#: peicode.h:787 #, c-format msgid "%s: Unhandled import type; %x" msgstr "%s: Ohanterad importtyp; %x" -#: peicode.h:790 +#: peicode.h:792 #, c-format msgid "%s: Unrecognised import type; %x" msgstr "%s: Okänd importtyp; %x" -#: peicode.h:804 +#: peicode.h:806 #, c-format msgid "%s: Unrecognised import name type; %x" msgstr "%s: Okänd importnamnstyp; %x" -#: peicode.h:1162 +#: peicode.h:1164 #, c-format msgid "%s: Unrecognised machine type (0x%x) in Import Library Format archive" msgstr "%s: Okänd maskintyp (0x%x) i Import Library Format-arkiv" -#: peicode.h:1174 +#: peicode.h:1176 #, c-format msgid "%s: Recognised but unhandled machine type (0x%x) in Import Library Format archive" msgstr "%s: Känd men ohanterad maskintyp (0x%x) i Import Library Format-arkiv" -#: peicode.h:1191 +#: peicode.h:1193 #, c-format msgid "%s: size field is zero in Import Library Format header" msgstr "%s: storleksfältet är noll i Import Library Format-huvud" -#: peicode.h:1219 +#: peicode.h:1224 #, c-format msgid "%s: string not null terminated in ILF object file." msgstr "%s: sträng inte nollterminerad i ILF-objektfil." @@ -2092,11 +2330,11 @@ msgstr "Sektor för partition[%d] = 0x%.8 msgid "Partition[%d] length = 0x%.8lx (%ld)\n" msgstr "Längd på partition[%d] = 0x%.8lx (%ld)\n" -#: som.c:5398 +#: som.c:5422 msgid "som_sizeof_headers unimplemented" msgstr "som_sizeof_headers är inte implementerat" -#: srec.c:301 +#: srec.c:302 #, c-format msgid "%s:%d: Unexpected character `%s' in S-record file\n" msgstr "%s:%d: Oväntat tecken \"%s\" i S-postfil\n" @@ -2107,7 +2345,7 @@ msgstr "%s:%d: Oväntat tecken \"%s\" i S msgid "%s(%s+0x%lx): Stabs entry has invalid string index." msgstr "%s(%s+0x%lx): Stabbpost har ogiltigt strängindex." -#: syms.c:1044 +#: syms.c:1019 msgid "Unsupported .stab relocation" msgstr ".stab-omlokalisering som inte stöds" @@ -2126,33 +2364,33 @@ msgstr "bfd_set_section_flags (%s, %x) m msgid "Size mismatch section %s=%lx, %s=%lx" msgstr "Storleken passar inte på sektion %s=%lx, %s=%lx" -#: vms-gsd.c:702 +#: vms-gsd.c:704 #, c-format msgid "unknown gsd/egsd subtype %d" msgstr "okänd gsd/egsd-undertyp %d" -#: vms-hdr.c:406 +#: vms-hdr.c:408 msgid "Object module NOT error-free !\n" msgstr "Objektmodulen INTE felfri!\n" -#: vms-misc.c:543 +#: vms-misc.c:541 #, c-format msgid "Stack overflow (%d) in _bfd_vms_push" msgstr "Stacken ger överspill (%d) i _bfd_vms_push" -#: vms-misc.c:561 +#: vms-misc.c:559 msgid "Stack underflow in _bfd_vms_pop" msgstr "Stacken ger underspill i _bfd_vms_pop" -#: vms-misc.c:919 +#: vms-misc.c:918 msgid "_bfd_vms_output_counted called with zero bytes" msgstr "_bfd_vms_output_counted anropad med noll byte" -#: vms-misc.c:924 +#: vms-misc.c:923 msgid "_bfd_vms_output_counted called with too many bytes" msgstr "_bfd_vms_output_counted called anropad med för många byte" -#: vms-misc.c:1055 +#: vms-misc.c:1054 #, c-format msgid "Symbol %s replaced by %s\n" msgstr "Symbolen %s ersatt med %s\n" @@ -2162,26 +2400,26 @@ msgstr "Symbolen %s ersatt med %s\n" msgid "failed to enter %s" msgstr "misslyckades med att gå in i %s" -#: vms-tir.c:81 +#: vms-tir.c:102 msgid "No Mem !" msgstr "Inget minne!" -#: vms-tir.c:362 +#: vms-tir.c:383 #, c-format msgid "bad section index in %s" msgstr "felaktigt sektionsindex i %s" -#: vms-tir.c:375 +#: vms-tir.c:396 #, c-format msgid "unsupported STA cmd %s" msgstr "STA-kommando %s stöds inte" -#: vms-tir.c:380 vms-tir.c:1240 +#: vms-tir.c:401 vms-tir.c:1261 #, c-format msgid "reserved STA cmd %d" msgstr "reserverat STA-kommando %d" -#: vms-tir.c:491 vms-tir.c:514 +#: vms-tir.c:512 vms-tir.c:535 #, c-format msgid "%s: no symbol \"%s\"" msgstr "%s: ingen symbol \"%s\"" @@ -2190,39 +2428,39 @@ msgstr "%s: ingen symbol \"%s\"" #. 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 +#: vms-tir.c:602 vms-tir.c:714 vms-tir.c:824 vms-tir.c:842 vms-tir.c:850 +#: vms-tir.c:859 vms-tir.c:1584 #, c-format msgid "%s: not supported" msgstr "%s: stöds inte" -#: vms-tir.c:586 vms-tir.c:1418 +#: vms-tir.c:607 vms-tir.c:1439 #, c-format msgid "%s: not implemented" msgstr "%s: inte implementerad" -#: vms-tir.c:590 vms-tir.c:1422 +#: vms-tir.c:611 vms-tir.c:1443 #, c-format msgid "reserved STO cmd %d" msgstr "reserverat STO-kommando %d" -#: vms-tir.c:708 vms-tir.c:1568 +#: vms-tir.c:729 vms-tir.c:1589 #, c-format msgid "reserved OPR cmd %d" msgstr "reserverat OPR-kommando %d" -#: vms-tir.c:776 vms-tir.c:1632 +#: vms-tir.c:797 vms-tir.c:1653 #, c-format msgid "reserved CTL cmd %d" msgstr "reserverat CTL-kommando %d" #. stack byte from image #. arg: none. -#: vms-tir.c:1148 +#: vms-tir.c:1169 msgid "stack-from-image not implemented" msgstr "stack-from-image är inte implementerat" -#: vms-tir.c:1166 +#: vms-tir.c:1187 msgid "stack-entry-mask not fully implemented" msgstr "stack-entry-mask är inte helt implementerat" @@ -2233,261 +2471,271 @@ msgstr "stack-entry-mask är inte helt im #. #. compare argument descriptor with symbol argument (ARG$V_PASSMECH) #. and stack TRUE (args match) or FALSE (args dont match) value. -#: vms-tir.c:1180 +#: vms-tir.c:1201 msgid "PASSMECH not fully implemented" msgstr "PASSMECH är inte helt implementerat" -#: vms-tir.c:1199 +#: vms-tir.c:1220 msgid "stack-local-symbol not fully implemented" msgstr "stack-local-symbol är inte helt implementerat" -#: vms-tir.c:1212 +#: vms-tir.c:1233 msgid "stack-literal not fully implemented" msgstr "stack-literal är inte helt implementerat" -#: vms-tir.c:1233 +#: vms-tir.c:1254 msgid "stack-local-symbol-entry-point-mask not fully implemented" msgstr "stack-local-symbol-entry-point-mask är inte helt implementerat" -#: 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 +#: vms-tir.c:1531 vms-tir.c:1543 vms-tir.c:1555 vms-tir.c:1567 vms-tir.c:1632 +#: vms-tir.c:1640 vms-tir.c:1648 #, c-format msgid "%s: not fully implemented" msgstr "%s: inte helt implementerat" -#: vms-tir.c:1684 +#: vms-tir.c:1705 #, c-format msgid "obj code %d not found" msgstr "objektkod %d kunde inte hittas" -#: vms-tir.c:2019 +#: vms-tir.c:2043 #, c-format msgid "SEC_RELOC with no relocs in section %s" msgstr "SEC_RELOC utan omlokaliseringar i sektion %s" -#: vms-tir.c:2307 +#: vms-tir.c:2331 #, c-format msgid "Unhandled relocation %s" msgstr "Ohanterad omlokalisering %s" -#: xcofflink.c:1243 +#: xcofflink.c:1244 #, c-format msgid "%s: `%s' has line numbers but no enclosing section" msgstr "%s: \"%s\" har radnummer men ingen inneslutande sektion" -#: xcofflink.c:1296 +#: xcofflink.c:1297 #, c-format msgid "%s: class %d symbol `%s' has no aux entries" msgstr "%s: klass %d-symbolen \"%s\" har inga yttre poster" -#: xcofflink.c:1319 +#: xcofflink.c:1320 #, c-format msgid "%s: symbol `%s' has unrecognized csect type %d" msgstr "%s: symbolen \"%s\" har okänd csect-typ %d" -#: xcofflink.c:1331 +#: xcofflink.c:1332 #, c-format msgid "%s: bad XTY_ER symbol `%s': class %d scnum %d scnlen %d" msgstr "%s: felaktig XTY_ER-symbol \"%s\": klass %d scnum %d scnlen %d" -#: xcofflink.c:1367 +#: xcofflink.c:1368 #, c-format msgid "%s: XMC_TC0 symbol `%s' is class %d scnlen %d" msgstr "%s: XMC_TC0-symbolen \"%s\" är klass %d scnlen %d" -#: xcofflink.c:1519 +#: xcofflink.c:1520 #, c-format msgid "%s: csect `%s' not in enclosing section" msgstr "%s: csect \"%s\" är inte i inneslutande sektion" -#: xcofflink.c:1626 +#: xcofflink.c:1627 #, c-format msgid "%s: misplaced XTY_LD `%s'" msgstr "%s: felaktigt placerat XTY_LD \"%s\"" -#: xcofflink.c:1957 +#: xcofflink.c:1958 #, c-format msgid "%s: reloc %s:%d not in csect" msgstr "%s: omlokaliseringen %s:%d är inte i csect" -#: xcofflink.c:2092 +#: xcofflink.c:2095 #, c-format msgid "%s: XCOFF shared object when not producing XCOFF output" msgstr "%s: XCOFF delade objekt när inte XCOFF-utdata produceras" -#: xcofflink.c:2113 +#: xcofflink.c:2116 #, c-format msgid "%s: dynamic object with no .loader section" msgstr "%s: dynamiskt objekt utan någon .loader-sektion" -#: xcofflink.c:2758 +#: xcofflink.c:2761 #, c-format msgid "%s: no such symbol" msgstr "%s: ingen sådan symbol" -#: xcofflink.c:2891 +#: xcofflink.c:2894 msgid "error: undefined symbol __rtinit" msgstr "fel: odefinierad symbol __rtinit" -#: xcofflink.c:3453 +#: xcofflink.c:3455 #, c-format msgid "warning: attempt to export undefined symbol `%s'" msgstr "varning: försök att exportera odefinierade symbolen \"%s\"" -#: xcofflink.c:4447 +#: xcofflink.c:4448 #, c-format msgid "TOC overflow: 0x%lx > 0x10000; try -mminimal-toc when compiling" msgstr "TOC ger överspill: 0x%lx > 0x10000; prova -mminimal-toc vid kompilering" -#: xcofflink.c:5287 xcofflink.c:5756 xcofflink.c:5818 xcofflink.c:6119 +#: xcofflink.c:5288 xcofflink.c:5755 xcofflink.c:5817 xcofflink.c:6119 #, c-format msgid "%s: loader reloc in unrecognized section `%s'" msgstr "%s: inläsaromlokalisering i okända sektionen \"%s\"" -#: xcofflink.c:5309 xcofflink.c:6130 +#: xcofflink.c:5310 xcofflink.c:6130 #, c-format msgid "%s: `%s' in loader reloc but not loader sym" msgstr "%s: \"%s\" i inläsaromlokalisering men inte inläsarsym" -#: xcofflink.c:5324 +#: xcofflink.c:5325 #, c-format msgid "%s: loader reloc in read-only section %s" msgstr "%s: inläsaromlokalisering i skrivskyddade sektionen %s" -#: elf32-ia64.c:2222 elf64-ia64.c:2222 +#: elf32-ia64.c:2392 elf64-ia64.c:2392 msgid "@pltoff reloc against local symbol" msgstr "@pltoff-omlokalisering mot lokal symbol" -#: elf32-ia64.c:3562 elf64-ia64.c:3562 +#: elf32-ia64.c:3804 elf64-ia64.c:3804 #, c-format msgid "%s: short data segment overflowed (0x%lx >= 0x400000)" msgstr "%s: kort datasegment spillde över (0x%lx >= 0x400000)" -#: elf32-ia64.c:3573 elf64-ia64.c:3573 +#: elf32-ia64.c:3815 elf64-ia64.c:3815 #, c-format msgid "%s: __gp does not cover short data segment" msgstr "%s: __gp täcker inte kort datasegment" -#: elf32-ia64.c:3858 elf64-ia64.c:3858 +#: elf32-ia64.c:4131 elf64-ia64.c:4131 #, c-format msgid "%s: linking non-pic code in a shared library" msgstr "%s: länkar icke-pic-kod i delat bibliotek" -#: elf32-ia64.c:3891 elf64-ia64.c:3891 +#: elf32-ia64.c:4164 elf64-ia64.c:4164 #, c-format msgid "%s: @gprel relocation against dynamic symbol %s" msgstr "%s: @gprel-omlokalisering mot dynamiska symbolen %s" -#: elf32-ia64.c:4030 elf64-ia64.c:4030 +#: elf32-ia64.c:4224 elf64-ia64.c:4224 +#, c-format +msgid "%s: linking non-pic code in a position independent executable" +msgstr "%s: länkar icke-pic-kod i en positionsoberoende körbar fil" + +#: elf32-ia64.c:4363 elf64-ia64.c:4363 #, c-format -msgid "%s: dynamic relocation against speculation fixup" -msgstr "%s: dynamisk omlokalisering utan spekulationsfixar" +msgid "%s: @internal branch to dynamic symbol %s" +msgstr "%s: @internal-gren till dynamiska symbolen %s" -#: elf32-ia64.c:4038 elf64-ia64.c:4038 +#: elf32-ia64.c:4365 elf64-ia64.c:4365 #, c-format -msgid "%s: speculation fixup against undefined weak symbol" -msgstr "%s: spekulationsfix mot odefinierad svag symbol" +msgid "%s: speculation fixup to dynamic symbol %s" +msgstr "%s: spekulationsfix till dynamiska symbolen %s" -#: elf32-ia64.c:4271 elf64-ia64.c:4271 +#: elf32-ia64.c:4367 elf64-ia64.c:4367 +#, c-format +msgid "%s: @pcrel relocation against dynamic symbol %s" +msgstr "%s: @pcrel-omlokalisering mot dynamiska symbolen %s" + +#: elf32-ia64.c:4579 elf64-ia64.c:4579 msgid "unsupported reloc" msgstr "omlokaliseringen stöds inte" -#: elf32-ia64.c:4551 elf64-ia64.c:4551 +#: elf32-ia64.c:4858 elf64-ia64.c:4858 #, c-format msgid "%s: linking trap-on-NULL-dereference with non-trapping files" msgstr "%s: länkar fånga-vid-NULL-dereferens med ickefångande filer" -#: elf32-ia64.c:4560 elf64-ia64.c:4560 +#: elf32-ia64.c:4867 elf64-ia64.c:4867 #, c-format msgid "%s: linking big-endian files with little-endian files" msgstr "%s: länkar big endian-filer med little endian-filer" -#: elf32-ia64.c:4569 elf64-ia64.c:4569 +#: elf32-ia64.c:4876 elf64-ia64.c:4876 #, c-format msgid "%s: linking 64-bit files with 32-bit files" msgstr "%s: länkar 64-bitarsfiler med 32-bitarsfiler" -#: elf32-ia64.c:4578 elf64-ia64.c:4578 +#: elf32-ia64.c:4885 elf64-ia64.c:4885 #, c-format msgid "%s: linking constant-gp files with non-constant-gp files" msgstr "%s: länkar konstant-gp-filer med icke-konstant-gp-filer" -#: elf32-ia64.c:4588 elf64-ia64.c:4588 +#: elf32-ia64.c:4895 elf64-ia64.c:4895 #, c-format msgid "%s: linking auto-pic files with non-auto-pic files" msgstr "%s: länkar auto-pic-filer med icke-auto-pic-filer" -#: peigen.c:962 pepigen.c:962 +#: peigen.c:985 pepigen.c:985 #, c-format msgid "%s: line number overflow: 0x%lx > 0xffff" msgstr "%s: radnummer ger överspill: 0x%lx > 0xffff" -#: peigen.c:979 pepigen.c:979 +#: peigen.c:1002 pepigen.c:1002 #, c-format msgid "%s: reloc overflow 1: 0x%lx > 0xffff" msgstr "%s: omlokalisering ger överspill 1: 0x%lx > 0xffff" -#: peigen.c:993 pepigen.c:993 +#: peigen.c:1016 pepigen.c:1016 msgid "Export Directory [.edata (or where ever we found it)]" msgstr "Exportkatalog [.edata (eller där vi hittade det)]" -#: peigen.c:994 pepigen.c:994 +#: peigen.c:1017 pepigen.c:1017 msgid "Import Directory [parts of .idata]" msgstr "Importkatalog [delar av .idata]" -#: peigen.c:995 pepigen.c:995 +#: peigen.c:1018 pepigen.c:1018 msgid "Resource Directory [.rsrc]" msgstr "Resurskatalog [.rsrc]" -#: peigen.c:996 pepigen.c:996 +#: peigen.c:1019 pepigen.c:1019 msgid "Exception Directory [.pdata]" msgstr "Undantagskatalog [.pdata]" -#: peigen.c:997 pepigen.c:997 +#: peigen.c:1020 pepigen.c:1020 msgid "Security Directory" msgstr "Säkerhetskatalog" -#: peigen.c:998 pepigen.c:998 +#: peigen.c:1021 pepigen.c:1021 msgid "Base Relocation Directory [.reloc]" msgstr "Basomlokaliseringskatalog [.reloc]" -#: peigen.c:999 pepigen.c:999 +#: peigen.c:1022 pepigen.c:1022 msgid "Debug Directory" msgstr "Felsökningskatalog" -#: peigen.c:1000 pepigen.c:1000 +#: peigen.c:1023 pepigen.c:1023 msgid "Description Directory" msgstr "Beskrivningskatalog" -#: peigen.c:1001 pepigen.c:1001 +#: peigen.c:1024 pepigen.c:1024 msgid "Special Directory" msgstr "Specialkatalog" -#: peigen.c:1002 pepigen.c:1002 +#: peigen.c:1025 pepigen.c:1025 msgid "Thread Storage Directory [.tls]" msgstr "Trådlagringskatalog [.tls]" -#: peigen.c:1003 pepigen.c:1003 +#: peigen.c:1026 pepigen.c:1026 msgid "Load Configuration Directory" msgstr "Inläsningskonfigurationskatalog" -#: peigen.c:1004 pepigen.c:1004 +#: peigen.c:1027 pepigen.c:1027 msgid "Bound Import Directory" msgstr "Katalog över bundna importer" -#: peigen.c:1005 pepigen.c:1005 +#: peigen.c:1028 pepigen.c:1028 msgid "Import Address Table Directory" msgstr "Importadresstabellkatalog" -#: peigen.c:1006 pepigen.c:1006 +#: peigen.c:1029 pepigen.c:1029 msgid "Delay Import Directory" msgstr "Katalog över fördröjda importer" -#: peigen.c:1007 peigen.c:1008 pepigen.c:1007 pepigen.c:1008 +#: peigen.c:1030 peigen.c:1031 pepigen.c:1030 pepigen.c:1031 msgid "Reserved" msgstr "Reserverad" -#: peigen.c:1071 pepigen.c:1071 +#: peigen.c:1094 pepigen.c:1094 msgid "" "\n" "There is an import table, but the section containing it could not be found\n" @@ -2495,7 +2743,7 @@ msgstr "" "\n" "Det finns en importtabell, men sektionen som innehåller den kunde inte hittas\n" -#: peigen.c:1076 pepigen.c:1076 +#: peigen.c:1099 pepigen.c:1099 #, c-format msgid "" "\n" @@ -2504,7 +2752,7 @@ msgstr "" "\n" "Det finns en importtabell i %s på 0x%lx\n" -#: peigen.c:1113 pepigen.c:1113 +#: peigen.c:1136 pepigen.c:1136 #, c-format msgid "" "\n" @@ -2513,12 +2761,12 @@ msgstr "" "\n" "Funktionsidentifierare hittad på startadressen: %04lx\n" -#: peigen.c:1116 pepigen.c:1116 +#: peigen.c:1139 pepigen.c:1139 #, c-format msgid "\tcode-base %08lx toc (loadable/actual) %08lx/%08lx\n" msgstr "\tkodbas %08lx toc (inläsningsbar/verklig) %08lx/%08lx\n" -#: peigen.c:1122 pepigen.c:1122 +#: peigen.c:1145 pepigen.c:1145 msgid "" "\n" "No reldata section! Function descriptor not decoded.\n" @@ -2526,7 +2774,7 @@ msgstr "" "\n" "Ingen reldata-sektion! Funktionsidentifierare avkodades inte.\n" -#: peigen.c:1127 pepigen.c:1127 +#: peigen.c:1150 pepigen.c:1150 #, c-format msgid "" "\n" @@ -2536,7 +2784,7 @@ msgstr "" "Importtabellerna (tolkade innehåll i %s-sektion)\n" # Vad är thunk? -#: peigen.c:1130 pepigen.c:1130 +#: peigen.c:1153 pepigen.c:1153 msgid "" " vma: Hint Time Forward DLL First\n" " Table Stamp Chain Name Thunk\n" @@ -2544,7 +2792,7 @@ msgstr "" " vma: Tips- Tids- Framåt- DLL- Första\n" " tabell stämpel kedja namn thunk\n" -#: peigen.c:1181 pepigen.c:1181 +#: peigen.c:1204 pepigen.c:1204 #, c-format msgid "" "\n" @@ -2553,11 +2801,11 @@ msgstr "" "\n" "\tDLL-namn: %s\n" -#: peigen.c:1192 pepigen.c:1192 +#: peigen.c:1215 pepigen.c:1215 msgid "\tvma: Hint/Ord Member-Name Bound-To\n" msgstr "\tvma: Tips/Ordn Medlemsnamn Bundet till\n" -#: peigen.c:1217 pepigen.c:1217 +#: peigen.c:1240 pepigen.c:1240 msgid "" "\n" "There is a first thunk, but the section containing it could not be found\n" @@ -2565,7 +2813,7 @@ msgstr "" "\n" "Det finns en första thunk, men sektionen som innehåller den kunde inte hittas\n" -#: peigen.c:1357 pepigen.c:1357 +#: peigen.c:1380 pepigen.c:1380 msgid "" "\n" "There is an export table, but the section containing it could not be found\n" @@ -2573,7 +2821,7 @@ msgstr "" "\n" "Det finns en exporttabell, men sektionen som innehåller den kunde inte hittas\n" -#: peigen.c:1362 pepigen.c:1362 +#: peigen.c:1385 pepigen.c:1385 #, c-format msgid "" "\n" @@ -2582,7 +2830,7 @@ msgstr "" "\n" "Det finns en exporttabell i %s vid 0x%lx\n" -#: peigen.c:1393 pepigen.c:1393 +#: peigen.c:1416 pepigen.c:1416 #, c-format msgid "" "\n" @@ -2592,61 +2840,61 @@ msgstr "" "\n" "Exporttabellerna (tolkade innehåll i %s-sektion)\n" -#: peigen.c:1397 pepigen.c:1397 +#: peigen.c:1420 pepigen.c:1420 #, c-format msgid "Export Flags \t\t\t%lx\n" msgstr "Exportflaggor \t\t\t%lx\n" -#: peigen.c:1400 pepigen.c:1400 +#: peigen.c:1423 pepigen.c:1423 #, c-format msgid "Time/Date stamp \t\t%lx\n" msgstr "Tid-/Datumstämpel \t\t%lx\n" -#: peigen.c:1403 pepigen.c:1403 +#: peigen.c:1426 pepigen.c:1426 #, c-format msgid "Major/Minor \t\t\t%d/%d\n" msgstr "Övre/Undre \t\t\t%d/%d\n" -#: peigen.c:1406 pepigen.c:1406 +#: peigen.c:1429 pepigen.c:1429 msgid "Name \t\t\t\t" msgstr "Namn \t\t\t\t" -#: peigen.c:1412 pepigen.c:1412 +#: peigen.c:1435 pepigen.c:1435 #, c-format msgid "Ordinal Base \t\t\t%ld\n" msgstr "Ordningsbas \t\t\t%ld\n" -#: peigen.c:1415 pepigen.c:1415 +#: peigen.c:1438 pepigen.c:1438 msgid "Number in:\n" msgstr "Tal i:\n" -#: peigen.c:1418 pepigen.c:1418 +#: peigen.c:1441 pepigen.c:1441 #, c-format msgid "\tExport Address Table \t\t%08lx\n" msgstr "\tExportadresstabell \t\t%08lx\n" -#: peigen.c:1422 pepigen.c:1422 +#: peigen.c:1445 pepigen.c:1445 #, c-format msgid "\t[Name Pointer/Ordinal] Table\t%08lx\n" msgstr "\t[Namnpekare/Ordningstal]-tabell\t%08lx\n" -#: peigen.c:1425 pepigen.c:1425 +#: peigen.c:1448 pepigen.c:1448 msgid "Table Addresses\n" msgstr "Tabelladresser\n" -#: peigen.c:1428 pepigen.c:1428 +#: peigen.c:1451 pepigen.c:1451 msgid "\tExport Address Table \t\t" msgstr "\tExportadresstabell \t\t" -#: peigen.c:1433 pepigen.c:1433 +#: peigen.c:1456 pepigen.c:1456 msgid "\tName Pointer Table \t\t" msgstr "\tNamnpekartabell \t\t" -#: peigen.c:1438 pepigen.c:1438 +#: peigen.c:1461 pepigen.c:1461 msgid "\tOrdinal Table \t\t\t" msgstr "\tOrdningstalstabell \t\t\t" -#: peigen.c:1453 pepigen.c:1453 +#: peigen.c:1476 pepigen.c:1476 #, c-format msgid "" "\n" @@ -2655,15 +2903,15 @@ msgstr "" "\n" "Exportadresstabell -- Orningsbas %ld\n" -#: peigen.c:1472 pepigen.c:1472 +#: peigen.c:1495 pepigen.c:1495 msgid "Forwarder RVA" msgstr "Vidarebefordrar-RVA" -#: peigen.c:1483 pepigen.c:1483 +#: peigen.c:1506 pepigen.c:1506 msgid "Export RVA" msgstr "Export-RVA" -#: peigen.c:1490 pepigen.c:1490 +#: peigen.c:1513 pepigen.c:1513 msgid "" "\n" "[Ordinal/Name Pointer] Table\n" @@ -2671,12 +2919,12 @@ msgstr "" "\n" "[Ordningstals-/Namnpekar-]tabell\n" -#: peigen.c:1545 pepigen.c:1545 +#: peigen.c:1568 pepigen.c:1568 #, c-format msgid "Warning, .pdata section size (%ld) is not a multiple of %d\n" msgstr "Varning, storleken på .pdata-sektionen (%ld) är inte en multipel av %d\n" -#: peigen.c:1549 pepigen.c:1549 +#: peigen.c:1572 pepigen.c:1572 msgid "" "\n" "The Function Table (interpreted .pdata section contents)\n" @@ -2684,11 +2932,11 @@ msgstr "" "\n" "Funktionstabellen (tolkade innehåll från .pdata-sektionen)\n" -#: peigen.c:1552 pepigen.c:1552 +#: peigen.c:1575 pepigen.c:1575 msgid " vma:\t\t\tBegin Address End Address Unwind Info\n" msgstr " vma:\t\t\tStartadress Slutadress Ospola information\n" -#: peigen.c:1554 pepigen.c:1554 +#: peigen.c:1577 pepigen.c:1577 msgid "" " vma:\t\tBegin End EH EH PrologEnd Exception\n" " \t\tAddress Address Handler Data Address Mask\n" @@ -2696,19 +2944,19 @@ msgstr "" " vma:\t\tStart- Slut- EH- EH- Prologsluts- Undantags-\n" " \t\tadress adress hanterare data adress mask\n" -#: peigen.c:1624 pepigen.c:1624 +#: peigen.c:1647 pepigen.c:1647 msgid " Register save millicode" msgstr " Registerspara millikod" -#: peigen.c:1627 pepigen.c:1627 +#: peigen.c:1650 pepigen.c:1650 msgid " Register restore millicode" msgstr " Registeråterställ millikod" -#: peigen.c:1630 pepigen.c:1630 +#: peigen.c:1653 pepigen.c:1653 msgid " Glue code sequence" msgstr " Klisterkodsekvens" -#: peigen.c:1682 pepigen.c:1682 +#: peigen.c:1705 pepigen.c:1705 msgid "" "\n" "\n" @@ -2718,7 +2966,7 @@ msgstr "" "\n" "PE-filbasomlokaliseringar (tolkat innehåll i .reloc-sektionen)\n" -#: peigen.c:1712 pepigen.c:1712 +#: peigen.c:1735 pepigen.c:1735 #, c-format msgid "" "\n" @@ -2727,7 +2975,7 @@ msgstr "" "\n" "Virtuell adress: %08lx Områdesstorlek %ld (0x%lx) Antal fixar %ld\n" -#: peigen.c:1725 pepigen.c:1725 +#: peigen.c:1748 pepigen.c:1748 #, c-format msgid "\treloc %4d offset %4x [%4lx] %s" msgstr "\tomlokalisering %4d avstånd %4x [%4lx] %s" @@ -2735,7 +2983,7 @@ msgstr "\tomlokalisering %4d avstånd %4x #. 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 +#: peigen.c:1788 pepigen.c:1788 #, c-format msgid "" "\n" @@ -2744,6 +2992,42 @@ msgstr "" "\n" "Karakteristik 0x%x\n" +#~ msgid "%s: Unknown special linker type %d" +#~ msgstr "%s: Okänd speciallänkartyp %d" + +#~ msgid "v850ea architecture" +#~ msgstr "v850ea-arkitektur" + +#~ msgid "%s: Section %s is too large to add hole of %ld bytes" +#~ msgstr "%s: Sektionen %s är för stor för att stoppa hål med %ld byte i" + +#~ msgid "Error: out of memory" +#~ msgstr "Fel: slut på minne" + +#~ msgid "warning: relocation against removed section; zeroing" +#~ msgstr "varning: omlokalisering mot borttagen sektion; nollställer" + +#~ msgid "warning: relocation against removed section" +#~ msgstr "varning: omlokalisering mot borttagen sektion" + +#~ msgid "local symbols in discarded section %s" +#~ msgstr "lokala symboler i bortkastade sektionen %s" + +#~ msgid "%s: linking abicalls files with non-abicalls files" +#~ msgstr "%s: länkar abicalls-filer med icke-abicalls-filer" + +#~ msgid "%s: ISA mismatch (-mips%d) with previous modules (-mips%d)" +#~ msgstr "%s: ISA (-mips%d) passar inte med tidigare moduler (-mips%d)" + +#~ msgid "%s: ISA mismatch (%d) with previous modules (%d)" +#~ msgstr "%s: ISA (%d) passar inte med tidigare moduler (%d)" + +#~ msgid "%s: dynamic relocation against speculation fixup" +#~ msgstr "%s: dynamisk omlokalisering utan spekulationsfixar" + +#~ msgid "%s: speculation fixup against undefined weak symbol" +#~ msgstr "%s: spekulationsfix mot odefinierad svag symbol" + #~ msgid "\tThe Import Address Table (difference found)\n" #~ msgstr "\tImportadresstabellen (skillnad hittad)\n" diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/po/tr.po binutils-2.14.90.0.5/bfd/po/tr.po --- binutils-2.14.90.0.4.1/bfd/po/tr.po 2002-09-27 08:33:09.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/po/tr.po 2003-07-23 08:08:09.000000000 -0700 @@ -1,508 +1,531 @@ -# BFD Turkish Translation. -# Copyright (C) 2001 Free Software Foundation, Inc. -# Deniz Akkus Kanca , 2001. +# translation of bfd-2.14rel030712.tr.po to Turkish +# Copyright (C) 2003 Free Software Foundation, Inc. +# Deniz Akkus Kanca , 2001,2003. # msgid "" msgstr "" -"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" +"Project-Id-Version: bfd 2.14rel030712\n" +"POT-Creation-Date: 2003-07-11 13:53+0930\n" +"PO-Revision-Date: 2003-07-13 22:07+0300\n" "Last-Translator: Deniz Akkus Kanca \n" "Language-Team: Turkish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 0.9.5\n" +"X-Generator: KBabel 1.0\n" -#: aout-adobe.c:197 +#: aout-adobe.c:204 #, 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" -#: aout-cris.c:208 +#: aout-cris.c:207 #, c-format msgid "%s: Invalid relocation type exported: %d" msgstr "%s: Geçersiz yer deÄŸiÅŸtirme türü ihraç edilmiÅŸ: %d" -#: aout-cris.c:252 +#: aout-cris.c:251 #, c-format msgid "%s: Invalid relocation type imported: %d" msgstr "%s: Geçersiz yer deÄŸiÅŸtirme türü ithal edilmiÅŸ: %d" -#: aout-cris.c:263 +#: aout-cris.c:262 #, c-format msgid "%s: Bad relocation record imported: %d" msgstr "%s: Geçersiz yer deÄŸiÅŸtirme kaydı ithal edilmiÅŸ: %d" -#: aoutx.h:1282 aoutx.h:1699 +#: aoutx.h:1295 aoutx.h:1716 #, 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" -#: aoutx.h:1669 +#: aoutx.h:1682 #, 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" -#: aoutx.h:1671 +#: aoutx.h:1684 msgid "*unknown*" msgstr "*bilinmeyen*" -#: aoutx.h:3732 +#: aoutx.h:3776 #, c-format -msgid "%s: relocateable link from %s to %s not supported" +msgid "%s: relocatable link from %s to %s not supported" msgstr "%s: %s'dan %s'ya yeri deÄŸiÅŸtirilebilen baÄŸ desteklenmiyor" -#: archive.c:1826 +#: archive.c:1751 msgid "Warning: writing archive was slow: rewriting timestamp\n" msgstr "Uyarı: arÅŸiv yazma iÅŸlemi yavaÅŸ: zaman damgası yeniden yazılıyor\n" -#: archive.c:2093 +#: archive.c:2014 msgid "Reading archive file mod timestamp" msgstr "ArÅŸiv dosyası deÄŸiÅŸim zaman damgası okunuyor" -#. FIXME: bfd can't call perror. -#: archive.c:2120 +#: archive.c:2040 msgid "Writing updated armap timestamp" msgstr "GüncellenmiÅŸ armap zaman damgası yazılıyor" -#: bfd.c:274 +#: bfd.c:280 msgid "No error" msgstr "Hata yok" -#: bfd.c:275 +#: bfd.c:281 msgid "System call error" msgstr "Sistem çaÄŸrı hatası" -#: bfd.c:276 +#: bfd.c:282 msgid "Invalid bfd target" msgstr "Geçersiz bfd hedefi" -#: bfd.c:277 +#: bfd.c:283 msgid "File in wrong format" msgstr "Dosya yanlış biçemde" -#: bfd.c:278 +#: bfd.c:284 msgid "Archive object file in wrong format" msgstr "ArÅŸiv nesne dosyası yanlış biçemde" -#: bfd.c:279 +#: bfd.c:285 msgid "Invalid operation" msgstr "Geçersiz iÅŸlem" -#: bfd.c:280 +#: bfd.c:286 msgid "Memory exhausted" msgstr "Bellek tükendi" -#: bfd.c:281 +#: bfd.c:287 msgid "No symbols" msgstr "Sembol yok" -#: bfd.c:282 +#: bfd.c:288 msgid "Archive has no index; run ranlib to add one" msgstr "ArÅŸivin indeksi yok; ranlib çalıştırarak indeks ekleyin" -#: bfd.c:283 +#: bfd.c:289 msgid "No more archived files" msgstr "BaÅŸka arÅŸivlenmiÅŸ dosya yok" -#: bfd.c:284 +#: bfd.c:290 msgid "Malformed archive" msgstr "Bozuk arÅŸiv" -#: bfd.c:285 +#: bfd.c:291 msgid "File format not recognized" msgstr "Dosya biçemi tanınmıyor" -#: bfd.c:286 +#: bfd.c:292 msgid "File format is ambiguous" msgstr "Dosya biçemi belirsiz" -#: bfd.c:287 +#: bfd.c:293 msgid "Section has no contents" msgstr "Bölümde içerik yok" -#: bfd.c:288 +#: bfd.c:294 msgid "Nonrepresentable section on output" msgstr "Çıktıda gösterilemeyen bölüm" -#: bfd.c:289 +#: bfd.c:295 msgid "Symbol needs debug section which does not exist" msgstr "Sembol, olmayan hata ayıklama bölümünü istiyor" -#: bfd.c:290 +#: bfd.c:296 msgid "Bad value" msgstr "Geçersiz deÄŸer" -#: bfd.c:291 +#: bfd.c:297 msgid "File truncated" msgstr "Dosya budandı" -#: bfd.c:292 +#: bfd.c:298 msgid "File too big" msgstr "Dosya fazla büyük" -#: bfd.c:293 +#: bfd.c:299 msgid "#" msgstr "#" -#: bfd.c:700 +#: bfd.c:687 #, c-format msgid "BFD %s assertion fail %s:%d" msgstr "BFD %s, olumlama baÅŸarısız %s:%d" -#: bfd.c:719 +#: bfd.c:703 #, 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" -#: bfd.c:723 +#: bfd.c:707 #, c-format 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:725 +#: bfd.c:709 msgid "Please report this bug.\n" msgstr "Lütfen bu hatayı bildirin.\n" +#: bfdwin.c:202 +#, c-format +msgid "not mapping: data=%lx mapped=%d\n" +msgstr "eÅŸlenmeyen: veri=%lx eÅŸleÅŸen=%d\n" + +#: bfdwin.c:205 +msgid "not mapping: env var not set\n" +msgstr "eÅŸlenmeyen: çevre deÄŸiÅŸkeni atanmamış\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." -#: coff-a29k.c:119 +#: coff-a29k.c:120 msgid "Missing IHCONST" msgstr "IHCONST yok" -#: coff-a29k.c:180 +#: coff-a29k.c:181 msgid "Missing IHIHALF" msgstr "IHIHALF yok" -#: coff-a29k.c:212 coff-or32.c:229 +#: coff-a29k.c:213 coff-or32.c:236 msgid "Unrecognized reloc" msgstr "Tanınmayan yer deÄŸiÅŸtirme" -#: coff-a29k.c:408 +#: coff-a29k.c:409 msgid "missing IHCONST reloc" msgstr "eksik IHCONST yer deÄŸiÅŸtirmesi" -#: coff-a29k.c:498 +#: coff-a29k.c:499 msgid "missing IHIHALF reloc" msgstr "eksik IHIHALF yer deÄŸiÅŸtirmesi" -#: coff-alpha.c:881 coff-alpha.c:918 coff-alpha.c:1989 coff-mips.c:1432 +#: coff-alpha.c:884 coff-alpha.c:921 coff-alpha.c:1992 coff-mips.c:1397 msgid "GP relative relocation used when GP not defined" msgstr "GP tanımlanmamışken GP göreli yer deÄŸiÅŸtirmesi kullanılmış" -#: coff-alpha.c:1485 +#: coff-alpha.c:1488 msgid "using multiple gp values" msgstr "birden fazla gp deÄŸeri kullanılıyor" -#: coff-arm.c:1066 elf32-arm.h:285 +#: coff-arm.c:1066 elf32-arm.h:294 #, 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ı " -#: coff-arm.c:1096 elf32-arm.h:320 +#: coff-arm.c:1096 elf32-arm.h:329 #, 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ı" -#: coff-arm.c:1391 coff-arm.c:1486 elf32-arm.h:887 elf32-arm.h:991 +#: coff-arm.c:1394 coff-arm.c:1489 elf32-arm.h:892 elf32-arm.h:999 #, c-format msgid "%s(%s): warning: interworking not enabled." msgstr "%s(%s): uyarı: beraber çalışma kipi etkin deÄŸil." -#: coff-arm.c:1395 elf32-arm.h:994 +#: coff-arm.c:1398 elf32-arm.h:1002 #, c-format msgid " first occurrence: %s: arm call to thumb" msgstr " ilk ortaya çıkış: %s: thumb'a arm'dan çaÄŸrı" -#: coff-arm.c:1490 elf32-arm.h:890 +#: coff-arm.c:1493 elf32-arm.h:895 #, c-format msgid " first occurrence: %s: thumb call to arm" msgstr " ilk ortaya çıkış: %s: arm'a thumb'dan çaÄŸrı" -#: coff-arm.c:1493 +#: coff-arm.c:1496 msgid " consider relinking with --support-old-code enabled" msgstr " --support-old-code seçeneÄŸi ile yeniden baÄŸlamayı deneyin" -#: coff-arm.c:1785 coff-tic80.c:686 cofflink.c:3031 +#: coff-arm.c:1788 coff-tic80.c:687 cofflink.c:3038 #, 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" -#: coff-arm.c:2127 +#: coff-arm.c:2132 #, c-format msgid "%s: illegal symbol index in reloc: %d" msgstr "%s: yer deÄŸiÅŸtirmede geçersiz sembol indeksi: %d" -#: coff-arm.c:2255 +#: coff-arm.c:2265 #, c-format 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:2270 elf32-arm.h:2297 +#: coff-arm.c:2280 elf32-arm.h:2328 #, c-format 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:2273 elf32-arm.h:2302 +#: coff-arm.c:2283 elf32-arm.h:2333 #, c-format 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:2288 +#: coff-arm.c:2298 #, c-format 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:2291 +#: coff-arm.c:2301 #, c-format 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:2320 elf32-arm.h:2358 +#: coff-arm.c:2330 elf32-arm.h:2405 #, c-format msgid "Warning: %s supports interworking, whereas %s does not" msgstr "Uyarı: %s girdi dosyası beraber çalışmayı destekliyor, fakat %s desteklemiyor." -#: coff-arm.c:2323 elf32-arm.h:2365 +#: coff-arm.c:2333 elf32-arm.h:2412 #, c-format 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:2350 +#: coff-arm.c:2360 #, c-format msgid "private flags = %x:" msgstr "özel bayraklar = %x:" -#: coff-arm.c:2358 elf32-arm.h:2418 +#: coff-arm.c:2368 elf32-arm.h:2467 msgid " [floats passed in float registers]" msgstr " [kayan sayılar kayan yazmaçlarda geçirildi]" -#: coff-arm.c:2360 +#: coff-arm.c:2370 msgid " [floats passed in integer registers]" msgstr " [kayan sayılar tamsayı yazmaçlarda geçirildi]" -#: coff-arm.c:2363 elf32-arm.h:2421 +#: coff-arm.c:2373 elf32-arm.h:2470 msgid " [position independent]" msgstr " [yerden bağımsız]" -#: coff-arm.c:2365 +#: coff-arm.c:2375 msgid " [absolute position]" msgstr " [yere bağımlı]" -#: coff-arm.c:2369 +#: coff-arm.c:2379 msgid " [interworking flag not initialised]" msgstr " [beraber çalışma bayrağına öndeÄŸer atanmamış]" -#: coff-arm.c:2371 +#: coff-arm.c:2381 msgid " [interworking supported]" msgstr " [beraber çalışma destekleniyor]" -#: coff-arm.c:2373 +#: coff-arm.c:2383 msgid " [interworking not supported]" msgstr " [beraber çalışma desteklenmiyor]" -#: coff-arm.c:2421 elf32-arm.h:2124 +#: coff-arm.c:2431 elf32-arm.h:2150 #, 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ÅŸ" -#: coff-arm.c:2425 elf32-arm.h:2128 +#: coff-arm.c:2435 elf32-arm.h:2154 #, 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" -#: coff-i960.c:136 coff-i960.c:485 +#: coff-h8300.c:1096 +#, c-format +msgid "cannot handle R_MEM_INDIRECT reloc when using %s output" +msgstr "%s çıktısı kullanılırken R_MEM_INDIRECT yerdeÄŸiÅŸtirmesi kullanılamıyor" + +#: coff-i960.c:137 coff-i960.c:486 msgid "uncertain calling convention for non-COFF symbol" msgstr "COFF olmayan sembol için belirsiz çaÄŸrı davranışı" -#: coff-m68k.c:481 coff-mips.c:2429 elf32-m68k.c:2157 elf32-mips.c:1844 +#: coff-m68k.c:482 coff-mips.c:2394 elf32-m68k.c:2193 elf32-mips.c:1783 msgid "unsupported reloc type" msgstr "desteklenmeyen yer deÄŸiÅŸtirme türü" -#: coff-mips.c:874 elf32-mips.c:1062 elf64-mips.c:1609 +#: coff-mips.c:839 elf32-mips.c:1088 elf64-mips.c:1590 elfn32-mips.c:1554 msgid "GP relative relocation when _gp not defined" 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:2466 +#: coff-mips.c:2431 msgid "reloc against unsupported section" msgstr "desteklenmeyen bölümde yer deÄŸiÅŸtirme" -#: coff-mips.c:2474 +#: coff-mips.c:2439 msgid "reloc not properly aligned" msgstr "yer deÄŸiÅŸtirme doÄŸru hizalanmamış" -#: coff-rs6000.c:2766 +#: coff-rs6000.c:2790 #, c-format msgid "%s: unsupported relocation type 0x%02x" msgstr "%s: desteklenmeyen yükleyici yerdeÄŸiÅŸimi 0x%02x" -#: coff-rs6000.c:2859 +#: coff-rs6000.c:2883 #, 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" -#: coff-rs6000.c:3590 coff64-rs6000.c:2091 +#: coff-rs6000.c:3616 coff64-rs6000.c:2109 #, c-format msgid "%s: symbol `%s' has unrecognized smclas %d" msgstr "%s: `%s' sembolünde bilinmeyen %d var" -#: coff-tic54x.c:279 coff-tic80.c:449 +#: coff-tic4x.c:170 coff-tic54x.c:288 coff-tic80.c:450 #, c-format msgid "Unrecognized reloc type 0x%x" msgstr "Bilinmeyen yer deÄŸiÅŸtirme türü 0x%x" -#: coff-tic54x.c:390 coffcode.h:4974 +#: coff-tic4x.c:218 coff-tic54x.c:373 coffcode.h:5045 #, c-format msgid "%s: warning: illegal symbol index %ld in relocs" msgstr "%s: uyarı: yer deÄŸiÅŸtirmelerde geçersiz sembol indeksi %ld" -#: coff-w65.c:363 +#: coff-w65.c:364 #, c-format msgid "ignoring reloc %s\n" msgstr "yer deÄŸiÅŸtirme %s yoksayıldı\n" -#: coffcode.h:1086 +#: coffcode.h:1108 #, c-format msgid "%s (%s): Section flag %s (0x%x) ignored" msgstr "%s (%s): Bölüm bayrağı %s (0x%x) yoksayıldı" -#: coffcode.h:2143 +#: coffcode.h:2214 #, c-format msgid "Unrecognized TI COFF target id '0x%x'" msgstr "Tanınmayan TI COFF hedef kimliÄŸi '0x%x'" -#: coffcode.h:4365 +#: coffcode.h:4437 #, c-format msgid "%s: warning: illegal symbol index %ld in line numbers" msgstr "%s: uyarı: satır numaralarında geçersiz sembol indeksi %ld" -#: coffcode.h:4379 +#: coffcode.h:4451 #, c-format msgid "%s: warning: duplicate line number information for `%s'" msgstr "%s: uyarı: `%s' için tekrarlanmış satır numarası bilgisi" -#: coffcode.h:4736 +#: coffcode.h:4805 #, 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" -#: coffcode.h:4867 +#: coffcode.h:4938 #, c-format msgid "warning: %s: local symbol `%s' has no section" msgstr "uyarı: %s: `%s' yerel sembolünün bölümü yok" -#: coffcode.h:5012 +#: coffcode.h:5083 #, 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" -#: coffgen.c:1661 +#: coffgen.c:1666 #, c-format msgid "%s: bad string table size %lu" msgstr "%s: geçersiz dizge tablo boyu %lu" -#: cofflink.c:534 elflink.h:1912 +#: cofflink.c:538 elflink.h:1276 #, 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" -#: cofflink.c:2321 +#: cofflink.c:2328 #, 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ÅŸ" -#: cofflink.c:2664 coffswap.h:877 +#: cofflink.c:2671 coffswap.h:890 #, c-format msgid "%s: %s: reloc overflow: 0x%lx > 0xffff" msgstr "%s: %s: yer deÄŸiÅŸtirme taÅŸması: 0x%lx > 0xffff" -#: cofflink.c:2673 coffswap.h:864 +#: cofflink.c:2680 coffswap.h:876 #, c-format msgid "%s: warning: %s: line number overflow: 0x%lx > 0xffff" msgstr "%s: uyarı: %s: satır numarası taÅŸması: 0x%lx > 0xffff" -#: dwarf2.c:382 +#: cpu-arm.c:196 cpu-arm.c:206 +#, c-format +msgid "ERROR: %s is compiled for the EP9312, whereas %s is compiled for XScale" +msgstr "Hata: %s EP9312 için derlenmiÅŸ, fakat %s XScale için derlenmiÅŸ" + +#: cpu-arm.c:344 +#, c-format +msgid "warning: unable to update contents of %s section in %s" +msgstr "uyarı: %2$s içinde %1$s bölümünün içeriÄŸi güncellenemedi" + +#: dwarf2.c:380 msgid "Dwarf Error: Can't find .debug_str section." msgstr "Dwarf Hatası: .debug_str bölümü bulunamadı." -#: dwarf2.c:399 +#: dwarf2.c:397 #, c-format 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 (%lu) .debug_str boyutundan (%lu) \n" " daha büyük veya eÅŸit." -#: dwarf2.c:543 +#: dwarf2.c:541 msgid "Dwarf Error: Can't find .debug_abbrev section." msgstr "Dwarf Hatası: .debug_abbrev bölümü bulunamadı." -#: dwarf2.c:560 +#: dwarf2.c:556 #, c-format msgid "Dwarf Error: Abbrev offset (%lu) greater than or equal to .debug_abbrev size (%lu)." msgstr "" "Dwarf Hatası: Kısaltma göreli konumu (%lu) kısaltma boyutundan (%lu) \n" " daha büyük veya eÅŸit." -#: dwarf2.c:757 +#: dwarf2.c:756 #, c-format msgid "Dwarf Error: Invalid or unhandled FORM value: %u." msgstr "Dwarf Hatası: Geçersiz veya desteklenmeyen FORM deÄŸeri: %u." -#: dwarf2.c:852 +#: dwarf2.c:933 msgid "Dwarf Error: mangled line number section (bad file number)." msgstr "Dwarf Hatası: bozulmuÅŸ satır numarası bölümü (geçersiz dosya numarası)." -#: dwarf2.c:938 +#: dwarf2.c:1032 msgid "Dwarf Error: Can't find .debug_line section." msgstr "Dwarf Hatası: .debug_line bölümü bulunamadı." -#: dwarf2.c:961 +#: dwarf2.c:1049 #, c-format msgid "Dwarf Error: Line offset (%lu) greater than or equal to .debug_line size (%lu)." msgstr "" "Dwarf Hatası: Satır göreli konumu (%lu) satır boyutundan (%lu)\n" " daha büyük veya eÅŸit." -#: dwarf2.c:1159 +#: dwarf2.c:1255 msgid "Dwarf Error: mangled line number section." msgstr "Dwarf Hatası: bozuk satır numarası bölümü." -#: dwarf2.c:1355 dwarf2.c:1566 +#: dwarf2.c:1470 dwarf2.c:1620 #, c-format msgid "Dwarf Error: Could not find abbrev number %u." msgstr "Dwarf Hatası: Kısaltma numarası %u bulunamadı." -#: dwarf2.c:1527 +#: dwarf2.c:1581 #, c-format 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:1534 +#: dwarf2.c:1588 #, 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." -#: dwarf2.c:1557 +#: dwarf2.c:1611 #, c-format msgid "Dwarf Error: Bad abbrev number: %u." msgstr "Dwarf Hatası: Geçersiz kısaltma numarası: %u." -#: ecoff.c:1318 +#: ecoff.c:1339 #, c-format msgid "Unknown basic type %d" msgstr "Bilinmeyen temel tür %d" -#: ecoff.c:1578 +#: ecoff.c:1599 #, c-format msgid "" "\n" @@ -511,7 +534,7 @@ msgstr "" "\n" " Son+1 sembolü: %ld" -#: ecoff.c:1585 ecoff.c:1588 +#: ecoff.c:1606 ecoff.c:1609 #, c-format msgid "" "\n" @@ -520,7 +543,7 @@ msgstr "" "\n" " Ä°lk sembol: %ld" -#: ecoff.c:1600 +#: ecoff.c:1621 #, c-format msgid "" "\n" @@ -529,7 +552,7 @@ msgstr "" "\n" " Son+1 sembolü: %-7ld Tür: %s" -#: ecoff.c:1607 +#: ecoff.c:1628 #, c-format msgid "" "\n" @@ -538,7 +561,7 @@ msgstr "" "\n" " Yerel sembol: %ld" -#: ecoff.c:1615 +#: ecoff.c:1636 #, c-format msgid "" "\n" @@ -547,7 +570,7 @@ msgstr "" "\n" " yapı; Son+1 sembolü: %ld" -#: ecoff.c:1620 +#: ecoff.c:1641 #, c-format msgid "" "\n" @@ -556,7 +579,7 @@ msgstr "" "\n" " birleÅŸim; Son+1 sembolü: %ld" -#: ecoff.c:1625 +#: ecoff.c:1646 #, c-format msgid "" "\n" @@ -565,7 +588,7 @@ msgstr "" "\n" " enum; Son+1 sembolü: %ld" -#: ecoff.c:1631 +#: ecoff.c:1652 #, c-format msgid "" "\n" @@ -574,54 +597,58 @@ msgstr "" "\n" " Tür: %s" -#: elf-hppa.h:1476 elf-hppa.h:1509 elf32-ppc.c:3091 elf32-sh.c:4213 -#: elf64-sh64.c:1659 +#: elf-hppa.h:1458 elf-hppa.h:1491 elf-m10300.c:1628 elf64-sh64.c:1704 #, 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" -#: 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 +#: elf-m10200.c:442 elf-m10300.c:1695 elf32-arm.h:2088 elf32-avr.c:812 +#: elf32-cris.c:1390 elf32-d10v.c:570 elf32-fr30.c:634 elf32-frv.c:815 +#: elf32-h8300.c:528 elf32-i860.c:1028 elf32-ip2k.c:1586 elf32-iq2000.c:699 +#: elf32-m32r.c:1283 elf32-m68hc1x.c:1305 elf32-msp430.c:510 +#: elf32-openrisc.c:436 elf32-v850.c:1777 elf32-xstormy16.c:976 +#: elf64-mmix.c:1332 msgid "internal error: out of range error" msgstr "iç hata: kapsam dışı hatası" -#: 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 +#: elf-m10200.c:446 elf-m10300.c:1699 elf32-arm.h:2092 elf32-avr.c:816 +#: elf32-cris.c:1394 elf32-d10v.c:574 elf32-fr30.c:638 elf32-frv.c:819 +#: elf32-h8300.c:532 elf32-i860.c:1032 elf32-iq2000.c:703 elf32-m32r.c:1287 +#: elf32-m68hc1x.c:1309 elf32-msp430.c:514 elf32-openrisc.c:440 +#: elf32-v850.c:1781 elf32-xstormy16.c:980 elf64-mmix.c:1336 elfxx-mips.c:6452 msgid "internal error: unsupported relocation error" msgstr "iç hata: desteklenmeyen yer deÄŸiÅŸim hatası" -#: elf-m10200.c:454 elf-m10300.c:664 elf32-arm.h:2092 elf32-d10v.c:489 -#: elf32-h8300.c:556 elf32-m32r.c:1286 +#: elf-m10200.c:450 elf-m10300.c:1703 elf32-arm.h:2096 elf32-d10v.c:578 +#: elf32-h8300.c:536 elf32-m32r.c:1291 elf32-m68hc1x.c:1313 msgid "internal error: dangerous error" msgstr "iç hata: ölümcül hata" -#: 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 +#: elf-m10200.c:454 elf-m10300.c:1707 elf32-arm.h:2100 elf32-avr.c:824 +#: elf32-cris.c:1402 elf32-d10v.c:582 elf32-fr30.c:646 elf32-frv.c:827 +#: elf32-h8300.c:540 elf32-i860.c:1040 elf32-ip2k.c:1601 elf32-iq2000.c:711 +#: elf32-m32r.c:1295 elf32-m68hc1x.c:1317 elf32-msp430.c:522 +#: elf32-openrisc.c:448 elf32-v850.c:1801 elf32-xstormy16.c:988 +#: elf64-mmix.c:1344 msgid "internal error: unknown error" msgstr "iç hata: bilinmeyen hata" -#: elf.c:343 +#: elf.c:372 #, 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" -#: elf.c:589 +#: elf.c:624 #, c-format msgid "%s: invalid SHT_GROUP entry" msgstr "%s: geçersiz SHT_GROUP girdisi" -#: elf.c:660 +#: elf.c:695 #, c-format msgid "%s: no group info for section %s" msgstr "%s: %s bölümünde grup bilgisi yok" -#: elf.c:1023 +#: elf.c:1055 msgid "" "\n" "Program Header:\n" @@ -629,7 +656,7 @@ msgstr "" "\n" "Yazılım BaÅŸlığı:\n" -#: elf.c:1073 +#: elf.c:1106 msgid "" "\n" "Dynamic Section:\n" @@ -637,7 +664,7 @@ msgstr "" "\n" "Dinamik Bölüm:\n" -#: elf.c:1202 +#: elf.c:1235 msgid "" "\n" "Version definitions:\n" @@ -645,7 +672,7 @@ msgstr "" "\n" "Sürüm tanımları:\n" -#: elf.c:1225 +#: elf.c:1258 msgid "" "\n" "Version References:\n" @@ -653,104 +680,114 @@ msgstr "" "\n" "Sürüm Referansları:\n" -#: elf.c:1230 +#: elf.c:1263 #, c-format msgid " required from %s:\n" msgstr " %s'den isteniyor:\n" -#: elf.c:1902 +#: elf.c:1944 #, 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" -#: elf.c:3603 +#: elf.c:3686 #, 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)" -#: elf.c:3708 +#: elf.c:3791 #, 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" -#: elf.c:3833 +#: elf.c:3922 #, 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" -#: elf.c:4148 +#: elf.c:4242 #, 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" -#: elf.c:4472 +#: elf.c:4566 #, c-format msgid "%s: symbol `%s' required but not present" msgstr "%s: `%s' sembolü gerekli fakat mevcut deÄŸil" -#: elf.c:4749 +#: elf.c:4854 #, c-format 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:6193 +#: elf.c:5485 +#, c-format +msgid "Unable to find equivalent output section for symbol '%s' from section '%s'" +msgstr "'%2$s' bölümünden '%1$s' sembolü için eÅŸdeÄŸer çıktı bölümü bulunamadı" + +#: elf.c:6298 #, c-format msgid "%s: unsupported relocation type %s" msgstr "%s: desteklenmeyen yerdeÄŸiÅŸim türü %s" -#: elf32-arm.h:1221 +#: elf32-arm.h:1228 #, c-format msgid "%s: Warning: Arm BLX instruction targets Arm function '%s'." msgstr "%s: Uyarı: Arm BLX iÅŸlemi Arm iÅŸlevi '%s' hedefliyor." -#: elf32-arm.h:1417 +#: elf32-arm.h:1424 #, c-format msgid "%s: Warning: Thumb BLX instruction targets thumb function '%s'." msgstr "%s: Uyarı: Thumb BLX iÅŸlemi thumb iÅŸlevi '%s'ı hedefliyor." -#: elf32-arm.h:1914 elf32-sh.c:4125 +#: elf32-arm.h:1918 elf32-sh.c:4706 elf64-sh64.c:1613 #, 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" -#: elf32-arm.h:2008 +#: elf32-arm.h:2012 #, 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" -#: elf32-arm.h:2176 +#: elf32-arm.h:2202 #, c-format 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:2271 +#: elf32-arm.h:2302 #, c-format 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:2285 +#: elf32-arm.h:2316 #, c-format 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:2313 +#: elf32-arm.h:2344 #, c-format -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" +msgid "ERROR: %s uses VFP instructions, whereas %s does not" +msgstr "Hata: %s VFP iÅŸlemi kullanıyor, fakat %s kullanmıyor" -#: elf32-arm.h:2318 +#: elf32-arm.h:2349 #, c-format -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" +msgid "ERROR: %s uses FPA instructions, whereas %s does not" +msgstr "Hata: %s FPA iÅŸlemi kullanıyor, fakat %s kullanmıyor" -#: elf32-arm.h:2338 +#: elf32-arm.h:2360 elf32-arm.h:2365 +#, c-format +msgid "ERROR: %s uses Maverick instructions, whereas %s does not" +msgstr "Hata: %s Maverick iÅŸlemi kullanıyor, fakat %s kullanmıyor" + +#: elf32-arm.h:2385 #, 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:2343 +#: elf32-arm.h:2390 #, c-format msgid "ERROR: %s uses hardware FP, whereas %s uses software FP" msgstr "" @@ -759,124 +796,129 @@ msgstr "" #. 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 +#: elf32-arm.h:2443 elf32-cris.c:2975 elf32-m68hc1x.c:1459 elf32-m68k.c:397 +#: elf32-vax.c:546 elfxx-mips.c:9238 #, c-format msgid "private flags = %lx:" msgstr "özel bayraklar = %lx:" -#: elf32-arm.h:2405 +#: elf32-arm.h:2452 msgid " [interworking enabled]" msgstr " [beraber çalışma etkinleÅŸtirilmiÅŸ]" -#: elf32-arm.h:2413 +#: elf32-arm.h:2460 msgid " [VFP float format]" msgstr " [VFP kayan nokta biçemi]" -#: elf32-arm.h:2415 +#: elf32-arm.h:2462 +msgid " [Maverick float format]" +msgstr " [Maverick kayan nokta biçemi]" + +#: elf32-arm.h:2464 msgid " [FPA float format]" msgstr " [FPA kayan nokta biçemi]" -#: elf32-arm.h:2424 +#: elf32-arm.h:2473 msgid " [new ABI]" msgstr " [yeni ABI]" -#: elf32-arm.h:2427 +#: elf32-arm.h:2476 msgid " [old ABI]" msgstr " [eski ABI]" -#: elf32-arm.h:2430 +#: elf32-arm.h:2479 msgid " [software FP]" msgstr " [yazılım FP]" -#: elf32-arm.h:2438 +#: elf32-arm.h:2488 msgid " [Version1 EABI]" msgstr " [Sürüm1 EABI]" -#: elf32-arm.h:2441 elf32-arm.h:2452 +#: elf32-arm.h:2491 elf32-arm.h:2502 msgid " [sorted symbol table]" msgstr " [sıralanmış sembol tablosu]" -#: elf32-arm.h:2443 elf32-arm.h:2454 +#: elf32-arm.h:2493 elf32-arm.h:2504 msgid " [unsorted symbol table]" msgstr " [sıralanmamış sembol tablosu]" -#: elf32-arm.h:2449 +#: elf32-arm.h:2499 msgid " [Version2 EABI]" msgstr " [Sürüm2 EABI]" -#: elf32-arm.h:2457 +#: elf32-arm.h:2507 msgid " [dynamic symbols use segment index]" msgstr " [dinamik semboller bölüm indeksini kullanıyor]" -#: elf32-arm.h:2460 +#: elf32-arm.h:2510 msgid " [mapping symbols precede others]" msgstr " [eÅŸleÅŸme sembolleri diÄŸerlerinden önceliklidir]" -#: elf32-arm.h:2467 +#: elf32-arm.h:2517 msgid " " msgstr " " -#: elf32-arm.h:2474 +#: elf32-arm.h:2524 msgid " [relocatable executable]" msgstr " [yer deÄŸiÅŸtirebilir uygulama]" -#: elf32-arm.h:2477 +#: elf32-arm.h:2527 msgid " [has entry point]" msgstr " [girdi noktası var]" -#: elf32-arm.h:2482 +#: elf32-arm.h:2532 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 +#: elf32-avr.c:820 elf32-cris.c:1398 elf32-fr30.c:642 elf32-frv.c:823 +#: elf32-i860.c:1036 elf32-ip2k.c:1597 elf32-iq2000.c:707 elf32-msp430.c:518 +#: elf32-openrisc.c:444 elf32-v850.c:1785 elf32-xstormy16.c:984 +#: elf64-mmix.c:1340 msgid "internal error: dangerous relocation" msgstr "iç hata: tehlikeli yer deÄŸiÅŸim" -#: elf32-cris.c:949 +#: elf32-cris.c:931 #, 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" -#: elf32-cris.c:1012 +#: elf32-cris.c:993 #, 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" -#: elf32-cris.c:1015 elf32-cris.c:1141 +#: elf32-cris.c:996 elf32-cris.c:1122 msgid "[whose name is lost]" msgstr "[adı kaybolmuÅŸ]" -#: elf32-cris.c:1130 +#: elf32-cris.c:1111 #, 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" -#: elf32-cris.c:1137 +#: elf32-cris.c:1118 #, 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:1155 +#: elf32-cris.c:1143 #, 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" -#: elf32-cris.c:1170 +#: elf32-cris.c:1158 #, 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 +#: elf32-cris.c:1277 #, c-format msgid "%s: Internal inconsistency; no relocation section %s" msgstr "%s: İç tutarsızlık; %s yerdeÄŸiÅŸim bölümü yok" -#: elf32-cris.c:2514 +#: elf32-cris.c:2500 #, c-format msgid "" "%s, section %s:\n" @@ -886,492 +928,645 @@ msgstr "" " %s yer deÄŸiÅŸimi paylaşımlı nesne oluÅŸtururken kullanılamaz;\n" " -fPIC ile yeniden derleyin" -#: elf32-cris.c:2991 +#: elf32-cris.c:2978 msgid " [symbols have a _ prefix]" msgstr " [semboller _ önekine sahip]" -#: elf32-cris.c:3030 +#: elf32-cris.c:3017 #, 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" -#: elf32-cris.c:3031 +#: elf32-cris.c:3018 #, 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" -#: elf32-frv.c:1217 +#: elf32-frv.c:1223 #, 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 +#: elf32-frv.c:1273 elf32-iq2000.c:895 #, 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 +#: elf32-frv.c:1285 #, 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 +#: elf32-frv.c:1321 elf32-iq2000.c:933 #, c-format msgid "private flags = 0x%lx:" msgstr "özel bayraklar = 0x%lx:" -#: elf32-gen.c:82 elf64-gen.c:82 +#: elf32-gen.c:83 elf64-gen.c:82 #, c-format msgid "%s: Relocations in generic ELF (EM: %d)" msgstr "%s: Normal ELF'de yerdeÄŸiÅŸimler (EM: %d)" -#: elf32-hppa.c:671 elf64-ppc.c:2323 +#: elf32-hppa.c:672 elf32-m68hc1x.c:176 elf64-ppc.c:3118 #, c-format msgid "%s: cannot create stub entry %s" msgstr "%s: koçan giriÅŸi %s oluÅŸturulamadı" -#: elf32-hppa.c:956 elf32-hppa.c:3555 +#: elf32-hppa.c:957 elf32-hppa.c:3538 #, 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" -#: elf32-hppa.c:1338 elf64-x86-64.c:673 +#: elf32-hppa.c:1340 elf64-x86-64.c:672 elf64-x86-64.c:797 #, 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" -#: elf32-hppa.c:1358 +#: elf32-hppa.c:1360 #, 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" -#: elf32-hppa.c:1551 +#: elf32-hppa.c:1553 #, c-format msgid "Could not find relocation section for %s" msgstr "%s için yer deÄŸiÅŸtirme bölümü bulunamadı" -#: elf32-hppa.c:2855 +#: elf32-hppa.c:2828 #, c-format msgid "%s: duplicate export stub %s" msgstr "%s: birden fazla ihraç koçanı %s" -#: elf32-hppa.c:3433 +#: elf32-hppa.c:3416 #, c-format msgid "%s(%s+0x%lx): fixing %s" msgstr "%s(%s+0x%lx): %s düzeltiliyor" -#: elf32-hppa.c:4080 +#: elf32-hppa.c:4039 #, 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" -#: elf32-hppa.c:4393 +#: elf32-hppa.c:4357 msgid ".got section not immediately after .plt section" msgstr ".got bölümü .plt bölümünün hemen arkasında deÄŸil" -#: elf32-i386.c:379 +#: elf32-i386.c:326 #, c-format msgid "%s: invalid relocation type %d" msgstr "%s: geçersiz yer deÄŸiÅŸim türü %d" -#: elf32-i386.c:876 elf32-s390.c:649 elf64-s390.c:595 elf64-x86-64.c:591 +#: elf32-i386.c:841 elf32-s390.c:990 elf32-sparc.c:887 elf32-xtensa.c:637 +#: elf64-s390.c:943 elf64-x86-64.c:650 #, c-format msgid "%s: bad symbol index: %d" msgstr "%s: geçersiz sembol indeksi: %d" -#: elf32-i386.c:948 +#: elf32-i386.c:949 elf32-s390.c:1168 elf32-sh.c:6426 elf32-sparc.c:1011 +#: elf64-s390.c:1129 #, 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:1072 elf32-s390.c:808 elf64-ppc.c:2827 elf64-s390.c:759 -#: elf64-x86-64.c:761 +#: elf32-i386.c:1064 elf32-s390.c:1279 elf64-ppc.c:3929 elf64-s390.c:1243 +#: elf64-x86-64.c:886 #, c-format msgid "%s: bad relocation section name `%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: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 +#: elf32-i386.c:2908 elf32-m68k.c:1757 elf32-s390.c:3022 elf32-sparc.c:2879 +#: elf32-xtensa.c:2193 elf64-s390.c:3018 elf64-sparc.c:2664 +#: elf64-x86-64.c:2452 #, 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" -#: elf32-i386.c:2784 elf32-s390.c:2019 elf64-ppc.c:5977 elf64-s390.c:1983 -#: elf64-x86-64.c:1986 +#: elf32-i386.c:2947 elf32-m68k.c:1796 elf32-s390.c:3072 elf64-s390.c:3068 +#: elf64-x86-64.c:2490 #, 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ı" -#: elf32-m32r.c:924 +#: elf32-ip2k.c:565 elf32-ip2k.c:571 elf32-ip2k.c:734 elf32-ip2k.c:740 +msgid "ip2k relaxer: switch table without complete matching relocation information." +msgstr "ip2k esneticisi: tamamen eÅŸleÅŸen yerdeÄŸiÅŸim bilgisi olmadan tabloyu deÄŸiÅŸtirir." + +#: elf32-ip2k.c:588 elf32-ip2k.c:767 +msgid "ip2k relaxer: switch table header corrupt." +msgstr "ip2k esneticisi: deÄŸiÅŸiklik tablosu baÅŸlığı bozuk." + +#: elf32-ip2k.c:1395 +#, c-format +msgid "ip2k linker: missing page instruction at 0x%08lx (dest = 0x%08lx)." +msgstr "ip2k baÄŸlayıcısı: 0x%08lx adresinde sayfa iÅŸlemi eksik (hedef = 0x%08lx)." + +#: elf32-ip2k.c:1409 +#, c-format +msgid "ip2k linker: redundant page instruction at 0x%08lx (dest = 0x%08lx)." +msgstr "ip2k baÄŸlayıcısı: 0x%08lx adresinde gereksiz sayfa iÅŸlemi (hedef = 0x%08lx)." + +#. Only if it's not an unresolved symbol. +#: elf32-ip2k.c:1593 +msgid "unsupported relocation between data/insn address spaces" +msgstr "veri/iÅŸlem adres yerleri arasında desteklenmeyen yerdeÄŸiÅŸim" + +#: elf32-iq2000.c:907 elf32-m68hc1x.c:1431 elf32-ppc.c:2175 elf64-sparc.c:3072 +#: elfxx-mips.c:9195 +#, 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-m32r.c:930 msgid "SDA relocation when _SDA_BASE_ not defined" msgstr "_SDA_BASE_ tanımlanmamış iken SDA yer deÄŸiÅŸimi" -#: elf32-ia64.c:3687 elf32-m32r.c:1013 elf32-ppc.c:2987 elf64-alpha.c:4185 -#: elf64-alpha.c:4313 elf64-ia64.c:3687 +#: elf32-m32r.c:1018 elf64-alpha.c:4279 elf64-alpha.c:4407 elf32-ia64.c:3958 +#: elf64-ia64.c:3958 #, c-format msgid "%s: unknown relocation type %d" msgstr "%s: bilinmeyen yer deÄŸiÅŸim türü %d" -#: elf32-m32r.c:1221 +#: elf32-m32r.c:1226 #, 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)" -#: elf32-m32r.c:1947 +#: elf32-m32r.c:1952 #, c-format msgid "%s: Instruction set mismatch with previous modules" msgstr "%s: Önceki modüllerle iÅŸlem uyuÅŸmazlığı" -#: elf32-m32r.c:1970 +#: elf32-m32r.c:1975 #, c-format msgid "private flags = %lx" msgstr "özel bayraklar = %lx" -#: elf32-m32r.c:1975 +#: elf32-m32r.c:1980 msgid ": m32r instructions" msgstr ": m32r iÅŸlemleri" -#: elf32-m32r.c:1976 +#: elf32-m32r.c:1981 msgid ": m32rx instructions" msgstr ": m32rx iÅŸlemleri" -#: elf32-m68k.c:413 +#: elf32-m68hc1x.c:1217 +#, c-format +msgid "Reference to the far symbol `%s' using a wrong relocation may result in incorrect execution" +msgstr "Uzak sembol `%s''ye yanlış bir yerdeÄŸiÅŸim ile referans yanlış iÅŸlemeye yol açabilir." + +#: elf32-m68hc1x.c:1240 +#, c-format +msgid "banked address [%lx:%04lx] (%lx) is not in the same bank as current banked address [%lx:%04lx] (%lx)" +msgstr "saklanmış adres [%lx:%04lx] (%lx) ÅŸimdiki saklanmış adres [%lx:%04lx] (%lx) ile aynı saklama bankında deÄŸil" + +#: elf32-m68hc1x.c:1259 +#, c-format +msgid "reference to a banked address [%lx:%04lx] in the normal address space at %04lx" +msgstr "%3$04lx normal adresinde saklanmış adres [%1$lx:%2$04lx]'e referans var" + +#: elf32-m68hc1x.c:1396 +#, c-format +msgid "%s: linking files compiled for 16-bit integers (-mshort) and others for 32-bit integers" +msgstr "%s: 16-bit tamsayı için derlenmiÅŸ (-mshort) dosyalar, 32 bit tamsayı için derlenmiÅŸ baÅŸka dosyalarla baÄŸlanıyor" + +#: elf32-m68hc1x.c:1404 +#, c-format +msgid "%s: linking files compiled for 32-bit double (-fshort-double) and others for 64-bit double" +msgstr "%s: 32-bit double (-fshort-double) için derlenmiÅŸ dosyalar 64-bit double için derlenmiÅŸ dosyalarla baÄŸlanıyor" + +#: elf32-m68hc1x.c:1414 +#, c-format +msgid "%s: linking files compiled for HCS12 with others compiled for HC12" +msgstr "%s: HCS12 için derlenmiÅŸ dosyalar HC12 için derlenmiÅŸ dosyalarla baÄŸlanıyor" + +#: elf32-m68hc1x.c:1462 +msgid "[abi=32-bit int, " +msgstr "[abi=32-bit int, " + +#: elf32-m68hc1x.c:1464 +msgid "[abi=16-bit int, " +msgstr "[abi=16-bit int, " + +#: elf32-m68hc1x.c:1467 +msgid "64-bit double, " +msgstr "64-bit double, " + +#: elf32-m68hc1x.c:1469 +msgid "32-bit double, " +msgstr "32-bit double, " + +#: elf32-m68hc1x.c:1472 +msgid "cpu=HC11]" +msgstr "cpu=HC11]" + +#: elf32-m68hc1x.c:1474 +msgid "cpu=HCS12]" +msgstr "cpu=HCS12]" + +#: elf32-m68hc1x.c:1476 +msgid "cpu=HC12]" +msgstr "cpu=HC12]" + +#: elf32-m68hc1x.c:1479 +msgid " [memory=bank-model]" +msgstr " [bellek=bank türü]" + +#: elf32-m68hc1x.c:1481 +msgid " [memory=flat]" +msgstr " [bellek=düz]" + +#: elf32-m68k.c:400 msgid " [cpu32]" msgstr " [cpu32]" -#: elf32-m68k.c:416 +#: elf32-m68k.c:403 msgid " [m68000]" msgstr " [m68000]" -#: elf32-mcore.c:354 elf32-mcore.c:457 +#: elf32-mcore.c:353 elf32-mcore.c:456 #, c-format msgid "%s: Relocation %s (%d) is not currently supported.\n" msgstr "%s: %s (%d) yer deÄŸiÅŸimi henüz desteklenmiyor.\n" -#: elf32-mcore.c:442 +#: elf32-mcore.c:441 #, c-format msgid "%s: Unknown relocation type %d\n" msgstr "%s: Bilinmeyen yer deÄŸiÅŸim türü %d\n" -#: elf32-mips.c:1152 elf64-mips.c:1783 +#: elf32-mips.c:1170 elf64-mips.c:1717 elfn32-mips.c:1664 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" -#: elf32-mips.c:1301 +#: elf32-mips.c:1314 elf64-mips.c:1830 elfn32-mips.c:1783 #, c-format msgid "Linking mips16 objects into %s format is not supported" msgstr "mips16 nesnelerini %s biçemine baÄŸlamak desteklenmiyor" -#: elf32-ppc.c:1460 +#: elf32-ppc.c:2056 +#, c-format +msgid "generic linker can't handle %s" +msgstr "jenerik baÄŸlayıcı %s desteklemiyor" + +#: elf32-ppc.c:2138 #, 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ı" -#: elf32-ppc.c:1468 +#: elf32-ppc.c:2147 #, 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ı" -#: 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 "%1$s: önceki modüllerden (0x%3$lx) farklı e_flags (0x%2$lx) alanları kullanılıyor" - -#: elf32-ppc.c:1592 -#, c-format -msgid "%s: Unknown special linker type %d" -msgstr "%s: Bilinmeyen özel baÄŸlayıcı türü %d" - -#: elf32-ppc.c:2273 elf32-ppc.c:2307 elf32-ppc.c:2342 +#: elf32-ppc.c:3413 #, 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" -#: elf32-ppc.c:3126 elf64-ppc.c:5473 +#. It does not make sense to have a procedure linkage +#. table entry for a local symbol. +#: elf32-ppc.c:3619 +#, c-format +msgid "%s(%s+0x%lx): %s reloc against local symbol" +msgstr "%s(%s+0x%lx): %s yerel sembole yerdeÄŸiÅŸimi" + +#: elf32-ppc.c:4862 elf64-ppc.c:7789 #, 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" -#: elf32-ppc.c:3482 elf32-ppc.c:3503 elf32-ppc.c:3553 +#: elf32-ppc.c:5113 +#, c-format +msgid "%s(%s+0x%lx): non-zero addend on %s reloc against `%s'" +msgstr "%1$s(%2$s+0x%3$lx): %5$s'ye yerdeÄŸiÅŸimde `%4$s'de sıfır olmayan ekleme" + +#: elf32-ppc.c:5399 elf32-ppc.c:5425 elf32-ppc.c:5484 #, c-format -msgid "%s: The target (%s) of a %s relocation is in the wrong output section (%s)" +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-ppc.c:3619 +#: elf32-ppc.c:5539 #, c-format -msgid "%s: Relocation %s is not yet supported for symbol %s." +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:1964 +#: elf32-ppc.c:5594 elf64-ppc.c:8461 +#, c-format +msgid "%s(%s+0x%lx): unresolvable %s relocation against symbol `%s'" +msgstr "%1$s(%2$s+0x%3$lx): `%5$s' sembolüne çözümlenemeyen yer deÄŸiÅŸimi %4$s" + +#: elf32-ppc.c:5644 elf64-ppc.c:8507 +#, c-format +msgid "%s(%s+0x%lx): %s reloc against `%s': error %d" +msgstr "%1$s(%2$s+0x%3$lx): %5$s'e %4$s yer deÄŸiÅŸimi: %6$d hatası" + +#: elf32-ppc.c:5888 +#, c-format +msgid "corrupt or empty %s section in %s" +msgstr "%2$s içinde bozuk veya boÅŸ %1$s bölümü" + +#: elf32-ppc.c:5895 +#, c-format +msgid "unable to read in %s section from %s" +msgstr "%s bölümü %s'den okunamadı" + +#: elf32-ppc.c:5901 +#, c-format +msgid "corrupt %s section in %s" +msgstr "%2$s içinde bozuk %1$s bölümü" + +#: elf32-ppc.c:5944 +#, c-format +msgid "warning: unable to set size of %s section in %s" +msgstr "uyarı: %2$s içinde %1$s bölümünün boyu atanamadı" + +#: elf32-ppc.c:5994 +msgid "failed to allocate space for new APUinfo section." +msgstr "yeni APUinfo bölümü için yer ayrılamadı." + +#: elf32-ppc.c:6013 +msgid "failed to compute new APUinfo section." +msgstr "yeni APUinfo bölümü hesaplanamadı." + +#: elf32-ppc.c:6016 +msgid "failed to install new APUinfo section." +msgstr "yeni APUinfo bölümü kurulamadı." + +#: elf32-s390.c:2256 elf64-s390.c:2226 +#, c-format +msgid "%s(%s+0x%lx): invalid instruction for TLS relocation %s" +msgstr "%s(%s+0x%lx): TLS yerdeÄŸiÅŸimi %s için geçersiz iÅŸlem" + +#: elf32-sh.c:2103 #, c-format msgid "%s: 0x%lx: warning: bad R_SH_USES offset" msgstr "%s: 0x%lx: uyarı: hatalı R_SH_USES göreli konumu" -#: elf32-sh.c:1976 +#: elf32-sh.c:2115 #, 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" -#: elf32-sh.c:1993 +#: elf32-sh.c:2132 #, 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" -#: elf32-sh.c:2008 +#: elf32-sh.c:2147 #, c-format msgid "%s: 0x%lx: warning: could not find expected reloc" msgstr "%s: 0x%lx: uyarı: beklenen yerdeÄŸiÅŸim bulunamadı" -#: elf32-sh.c:2036 +#: elf32-sh.c:2175 #, c-format msgid "%s: 0x%lx: warning: symbol in unexpected section" msgstr "%s: 0x%lx: uyarı: beklenmeyen bölümde sembol" -#: elf32-sh.c:2153 +#: elf32-sh.c:2300 #, c-format msgid "%s: 0x%lx: warning: could not find expected COUNT reloc" msgstr "%s: 0x%lx: uyarı: beklenen COUNT yerdeÄŸiÅŸimi bulunamadı" -#: elf32-sh.c:2162 +#: elf32-sh.c:2309 #, c-format msgid "%s: 0x%lx: warning: bad count" msgstr "%s: 0x%lx: uyarı: hatalı sayım" -#: elf32-sh.c:2550 elf32-sh.c:2926 +#: elf32-sh.c:2712 elf32-sh.c:3088 #, 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ı" -#: elf32-sh.c:4073 elf64-sh64.c:1576 +#: elf32-sh.c:4654 elf64-sh64.c:1585 msgid "Unexpected STO_SH5_ISA32 on local symbol is not handled" msgstr "Yerel sembolde STO_SH5_ISA32 desteklenmiyor" -#: elf32-sh.c:4284 +#: elf32-sh.c:4809 +#, c-format +msgid "%s: unresolvable relocation against symbol `%s' from %s section" +msgstr "%1$s: %3$s bölümünden `%2$s' sembolüne çözümlenemeyen yer deÄŸiÅŸimi" + +#: elf32-sh.c:4881 #, 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" -#: elf32-sh64.c:203 elf64-sh64.c:2364 +#: elf32-sh.c:6627 elf64-alpha.c:4848 +#, 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-sh64.c:221 elf64-sh64.c:2407 #, c-format 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-sh64.c:206 elf64-sh64.c:2367 +#: elf32-sh64.c:224 elf64-sh64.c:2410 #, c-format 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-sh64.c:208 elf64-sh64.c:2369 +#: elf32-sh64.c:226 elf64-sh64.c:2412 #, c-format msgid "%s: object size does not match that of target %s" msgstr "%s: nesne boyu hedef %s'nin boyuyla eÅŸleÅŸmiyor" -#: elf32-sh64.c:440 elf64-sh64.c:2941 +#: elf32-sh64.c:461 elf64-sh64.c:2990 #, c-format msgid "%s: encountered datalabel symbol in input" msgstr "%s: girdide veri etiketi sembolüne rastlandı" -#: elf32-sh64.c:523 +#: elf32-sh64.c:544 msgid "PTB mismatch: a SHmedia address (bit 0 == 1)" msgstr "PTB uyumsuzluÄŸu: SHmedia adresi (bit 0 == 1)" -#: elf32-sh64.c:526 +#: elf32-sh64.c:547 msgid "PTA mismatch: a SHcompact address (bit 0 == 0)" msgstr "PTA uyumsuzluÄŸu: SHcompact adresi (bit 0 == 0)" -#: elf32-sh64.c:544 +#: elf32-sh64.c:565 #, c-format 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-sh64.c:593 elf64-sh64.c:1703 +#: elf32-sh64.c:614 elf64-sh64.c:1748 #, c-format 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-sh64.c:677 +#: elf32-sh64.c:698 #, c-format msgid "%s: could not write out added .cranges entries" msgstr "%s: eklenen .cranges girdileri yazılamadı" -#: elf32-sh64.c:739 +#: elf32-sh64.c:760 #, c-format msgid "%s: could not write out sorted .cranges entries" msgstr "%s: sıralanmış .cranges girdileri yazılamadı" -#: elf32-sparc.c:1535 elf64-sparc.c:2224 +#: elf32-sparc.c:2521 elf64-sparc.c:2314 #, c-format msgid "%s: probably compiled without -fPIC?" msgstr "%s: acaba -fPIC olmaksızın mı derlenmiÅŸ?" -#: elf32-sparc.c:2002 +#: elf32-sparc.c:3348 #, 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" -#: elf32-sparc.c:2016 +#: elf32-sparc.c:3362 #, 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" -#: elf32-v850.c:682 +#: elf32-v850.c:753 #, 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" -#: elf32-v850.c:685 +#: elf32-v850.c:756 #, 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" -#: elf32-v850.c:688 +#: elf32-v850.c:759 #, 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" -#: elf32-v850.c:691 +#: elf32-v850.c:762 #, 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" -#: elf32-v850.c:694 +#: elf32-v850.c:765 #, 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" -#: elf32-v850.c:1072 +#: elf32-v850.c:1144 msgid "FAILED to find previous HI16 reloc\n" msgstr "önceki HI16 yerdeÄŸiÅŸimi BULUNAMADI\n" -#: elf32-v850.c:1703 +#: elf32-v850.c:1789 msgid "could not locate special linker symbol __gp" msgstr "özel baÄŸlayıcı sembolü __gp bulunamadı" -#: elf32-v850.c:1707 +#: elf32-v850.c:1793 msgid "could not locate special linker symbol __ep" msgstr "özel baÄŸlayıcı sembolü __ep bulunamadı" -#: elf32-v850.c:1711 +#: elf32-v850.c:1797 msgid "could not locate special linker symbol __ctbp" msgstr "özel baÄŸlayıcı sembolü __ctbp bulunamadı" -#: elf32-v850.c:1875 +#: elf32-v850.c:1963 #, c-format msgid "%s: Architecture mismatch with previous modules" msgstr "%s: Önceki modüllerle platform uyumsuzluÄŸu" -#: elf32-v850.c:1895 +#: elf32-v850.c:1983 #, c-format msgid "private flags = %lx: " msgstr "özel bayraklar = %lx:" -#: elf32-v850.c:1900 +#: elf32-v850.c:1988 msgid "v850 architecture" msgstr "v850 platformu" -#: elf32-v850.c:1901 +#: elf32-v850.c:1989 msgid "v850e architecture" msgstr "v850e platformu" -#: elf32-v850.c:1902 -msgid "v850ea architecture" -msgstr "v850ea platformu" - -#: elf32-vax.c:546 +#: elf32-vax.c:549 msgid " [nonpic]" msgstr " [nonpic]" -#: elf32-vax.c:549 +#: elf32-vax.c:552 msgid " [d-float]" msgstr " [d-float]" -#: elf32-vax.c:552 +#: elf32-vax.c:555 msgid " [g-float]" msgstr " [g-float]" -#: elf32-vax.c:674 +#: elf32-vax.c:663 #, 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 +#: elf32-vax.c:1667 #, 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 +#: elf32-vax.c:1802 #, 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 +#: elf32-vax.c:1808 #, 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 +#: elf32-xstormy16.c:462 elf32-ia64.c:2450 elf64-ia64.c:2450 msgid "non-zero addend in @fptr reloc" msgstr "@fptr yerdeÄŸiÅŸiminde sıfır olmayan eklenti" -#: elf64-alpha.c:1097 +#: elf64-alpha.c:1108 msgid "GPDISP relocation did not find ldah and lda instructions" msgstr "GPDISP yerdeÄŸiÅŸimi ldah ve lda iÅŸlemlerini bulamadı" -#: elf64-alpha.c:3675 +#: elf64-alpha.c:3731 #, c-format msgid "%s: .got subsegment exceeds 64K (size %d)" msgstr "%s: .got alt parçası 64K'yı aşıyor (boy %d)" -#: elf64-alpha.c:4498 elf64-alpha.c:4510 +#: elf64-alpha.c:4602 elf64-alpha.c:4614 #, c-format msgid "%s: gp-relative relocation against dynamic symbol %s" msgstr "%s: %s dinamik sembolüne gp göreceli yer deÄŸiÅŸimi" -#: elf64-alpha.c:4536 elf64-alpha.c:4676 +#: elf64-alpha.c:4640 elf64-alpha.c:4773 #, 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-alpha.c:4564 +#: elf64-alpha.c:4668 #, c-format msgid "%s: change in gp: BRSGP %s" msgstr "%s: gp içinde deÄŸiÅŸiklik: BRSGP %s" -#: elf64-alpha.c:4589 +#: elf64-alpha.c:4693 msgid "" msgstr "" -#: elf64-alpha.c:4594 +#: elf64-alpha.c:4698 #, 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 +#: elf64-alpha.c:4749 #, c-format msgid "%s: unhandled dynamic relocation against %s" msgstr "%s: %s'e desteklenmeyen dinamik yerdeÄŸiÅŸim" -#: elf64-alpha.c:4752 +#: elf64-alpha.c:4832 #, 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 +#: elf64-alpha.c:4855 #, 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 +#: elf64-hppa.c:2086 #, 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" -#: elf64-mmix.c:1002 +#: elf64-mmix.c:1032 #, c-format msgid "" "%s: Internal inconsistency error for value for\n" @@ -1380,50 +1575,50 @@ 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:1386 +#: elf64-mmix.c:1416 #, 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:1391 +#: elf64-mmix.c:1421 #, 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 +#: elf64-mmix.c:1465 #, 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 +#: elf64-mmix.c:1470 #, 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 +#: elf64-mmix.c:1507 #, 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" -#: elf64-mmix.c:1505 +#: elf64-mmix.c:1535 #, 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." -#: elf64-mmix.c:1965 +#: elf64-mmix.c:1994 #, 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" -#: elf64-mmix.c:2024 +#: elf64-mmix.c:2053 msgid "Register section has contents\n" msgstr "Yazmaç bölümünde içerik yok\n" -#: elf64-mmix.c:2186 +#: elf64-mmix.c:2216 #, c-format msgid "" "Internal inconsistency: remaining %u != max %u.\n" @@ -1432,596 +1627,639 @@ msgstr "" "İç uyumsuzluk: kalan %u != maksimum %u. \n" " Lütfen bu hatayı bildirin." -#: elf64-ppc.c:1669 libbfd.c:1435 +#: elf64-ppc.c:2388 libbfd.c:831 #, 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" -#: elf64-ppc.c:1671 libbfd.c:1437 +#: elf64-ppc.c:2391 libbfd.c:833 #, 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" -#: elf64-ppc.c:3610 +#: elf64-ppc.c:4857 #, 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 +#: elf64-ppc.c:4877 #, 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 +#: elf64-ppc.c:4897 #, 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 +#: elf64-ppc.c:6136 #, c-format msgid "can't find branch stub `%s'" msgstr "`%s' dal koçanı bulunamadı" -#: elf64-ppc.c:4436 elf64-ppc.c:4501 +#: elf64-ppc.c:6175 elf64-ppc.c:6250 #, c-format msgid "linkage table error against `%s'" msgstr "`%s'ye baÄŸlama tablosu hatası" -#: elf64-ppc.c:4573 +#: elf64-ppc.c:6340 #, c-format msgid "can't build branch stub `%s'" msgstr "`%s' dal koçanı derlenemedi" -#: elf64-ppc.c:5179 +#: elf64-ppc.c:7047 +msgid ".glink and .plt too far apart" +msgstr " glink ve plt birbirine fazla uzak" + +#: elf64-ppc.c:7135 msgid "stubs don't match calculated size" msgstr "koçanlar hesaplanan boyla eÅŸleÅŸmiyor" -#: elf64-ppc.c:5828 +#: elf64-ppc.c:7147 #, 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." +msgid "" +"linker stubs in %u groups\n" +" branch %lu\n" +" toc adjust %lu\n" +" long branch %lu\n" +" long toc adj %lu\n" +" plt call %lu" +msgstr "" +"%u grupta baÄŸlayıcı koçanları\n" +" dal %lu\n" +" toc ayarlama %lu\n" +" uzun dal %lu\n" +" uzun toc ayar%lu\n" +" plt çaÄŸrısı %lu" + +#: elf64-ppc.c:7723 +#, c-format +msgid "%s(%s+0x%lx): automatic multiple TOCs not supported using your crt files; recompile with -mminimal-toc or upgrade gcc" +msgstr "%s(%s+0x%lx): otomatik çoklu TOC sizin crt dosyalarınızı kullanarak desteklenmez; -mminimal-toc kullanarak yeniden derleyin veya gcc'de sürüm yükseltmesi yapın" + +#: elf64-ppc.c:7731 +#, c-format +msgid "%s(%s+0x%lx): sibling call optimization to `%s' does not allow automatic multiple TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, or make `%s' extern" +msgstr "%s(%s+0x%lx): `%s'e kardeÅŸ çaÄŸrı iyileÅŸtirmesi otomatik çoklu TOCa izin vermez; -mminimal-toc veya -fno-optimize-sibling-calls ile yeniden derleyin, veya make `%s' extern" + +#: elf64-ppc.c:8329 +#, c-format +msgid "%s: relocation %s is not supported for symbol %s." +msgstr "%s: %s yerdeÄŸiÅŸimi %s sembolü için desteklenmiyor." -#: elf64-ppc.c:5872 +#: elf64-ppc.c:8408 #, c-format -msgid "%s: error: relocation %s not a multiple of 4" -msgstr "%s: hata: %s yerdeÄŸiÅŸimi 4'ün katı deÄŸil" +msgid "%s: error: relocation %s not a multiple of %d" +msgstr "%s: hata: %s yerdeÄŸiÅŸimi %d'nin katı deÄŸil" -#: elf64-sparc.c:1280 +#: elf64-sparc.c:1370 #, c-format msgid "%s: check_relocs: unhandled reloc type %d" msgstr "%s: check_relocs: desteklenmeyen yerdeÄŸiÅŸim türü %d" -#: elf64-sparc.c:1317 +#: elf64-sparc.c:1407 #, 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" -#: elf64-sparc.c:1337 +#: elf64-sparc.c:1427 #, c-format 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:1360 +#: elf64-sparc.c:1450 #, c-format 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:1406 +#: elf64-sparc.c:1496 #, c-format 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:2970 +#: elf64-sparc.c:3053 #, 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" -#: elfcode.h:1198 +#: elf64-x86-64.c:739 +#, c-format +msgid "%s: %s' accessed both as normal and thread local symbol" +msgstr "%s: `%s'a hem normal, hem de iplikçik yerel sembolü olarak eriÅŸildi" + +#: elfcode.h:1113 #, 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" -#: elflink.c:440 +#: elfcode.h:1342 +#, c-format +msgid "%s(%s): relocation %d has invalid symbol index %ld" +msgstr "%s(%s): %d yerdeÄŸiÅŸimi geçersiz sembol indeksi %ld'ye sahip" + +#: elflink.c:1456 +#, c-format +msgid "%s: warning: unexpected redefinition of indirect versioned symbol `%s'" +msgstr "%s: uyarı: endirekt sürümlü sembol `%s' için beklenmeyen yeniden tanımlama" + +#: elflink.c:1807 #, 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" +msgid "%s: undefined versioned symbol name %s" +msgstr "%s: sürümlü sembol ismi %s tanımlı deÄŸil" + +#: elflink.c:2142 +#, 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:1090 +#: elflink.c:2434 #, c-format -msgid "%s: warning: unexpected redefinition of `%s'" -msgstr "%s: uyarı: `%s' için beklenmeyen yeniden tanımlama" +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" -#: elflink.h:1727 +#: elflink.h:1022 #, c-format msgid "%s: %s: invalid version %u (max %d)" msgstr "%s: %s: geçersiz sürüm %u (maksimum %d)" -#: elflink.h:1768 +#: elflink.h:1063 #, c-format msgid "%s: %s: invalid needed version %d" msgstr "%s: %s: geçersiz gerekli sürüm %d" -#: elflink.h:1890 +#: elflink.h:1238 #, 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" +msgid "Warning: alignment %u of symbol `%s' in %s is smaller than %u in %s" +msgstr "Uyarı: %3$s içinde `%2$s' sembolünün %1$u hizalaması %5$s içinde %4$u'dan daha küçük" -#: elflink.h:3174 +#: elflink.h:1252 #, c-format -msgid "%s: .preinit_array section is not allowed in DSO" -msgstr "%s: DSO içinde preinit_array'e izin verilmiyor" +msgid "Warning: size of symbol `%s' changed from %lu in %s to %lu in %s" +msgstr "Uyarı: `%1$s' sembolünün boyu %3$s içinde %2$lu'dan %5$s içinde %4$lu'ya deÄŸiÅŸti" -#: elflink.h:4030 +#: elflink.h:2160 #, 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" +msgid "%s: undefined version: %s" +msgstr "%s: tanımsız sürüm: %s" -#: elflink.h:4345 +#: elflink.h:2226 #, c-format -msgid "%s: undefined versioned symbol name %s" -msgstr "%s: sürümlü sembol ismi %s tanımlı deÄŸil" - -#: elflink.h:4611 elflink.h:4619 elflink.h:6508 elflink.h:7600 -msgid "Error: out of memory" -msgstr "Hata: bellek tükendi" +msgid "%s: .preinit_array section is not allowed in DSO" +msgstr "%s: DSO içinde preinit_array'e izin verilmiyor" -#: elflink.h:4781 +#: elflink.h:3078 msgid "Not enough memory to sort relocations" msgstr "YerdeÄŸiÅŸimleri sıralamak için gerekli bellek yok" -#: elflink.h:5682 elflink.h:5725 +#: elflink.h:3958 elflink.h:4001 #, c-format msgid "%s: could not find output section %s" msgstr "%s: çıktı bölümü %s bulunamadı" -#: elflink.h:5688 +#: elflink.h:3964 #, c-format msgid "warning: %s section has zero size" msgstr "uyarı: %s bölümü sıfır boyunda" -#: elflink.h:6275 +#: elflink.h:4483 +#, c-format +msgid "%s: %s symbol `%s' in %s is referenced by DSO" +msgstr "%1$s: %4$s içinde %2$s sembolü `%3$s' DSO tarafından referans ediliyor" + +#: elflink.h:4564 #, 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ı" -#: elflink.h:6486 +#: elflink.h:4666 #, 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ığı" +msgid "%s: %s symbol `%s' isn't defined" +msgstr "%s: %s sembol `%s' tanımlı deÄŸil" -#: elflink.h:6849 -msgid "warning: relocation against removed section; zeroing" -msgstr "uyarı: silinmiÅŸ bölüme yer deÄŸiÅŸim; sıfırlandı" +#: elflink.h:5053 elflink.h:5095 +msgid "%T: discarded in section `%s' from %s\n" +msgstr "%1$T: %3$s `%2$s' bölümünde atıldı\n" -#: elflink.h:6879 -msgid "warning: relocation against removed section" -msgstr "%1$s: silinmiÅŸ bölüme yerdeÄŸiÅŸim" - -#: elflink.h:6892 -#, c-format -msgid "local symbols in discarded section %s" -msgstr "atılmış %s bölümünde yerel semboller" - -#: elfxx-mips.c:734 +#: elfxx-mips.c:887 msgid "static procedure (no name)" msgstr "statik altyordam (isimsiz)" -#: elfxx-mips.c:1601 +#: elfxx-mips.c:1897 msgid "not enough GOT space for local GOT entries" msgstr "yerel GOT girdileri için yeterli GOT yeri yok" -#: elfxx-mips.c:2750 +#: elfxx-mips.c:3691 #, 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 +#: elfxx-mips.c:5192 #, 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 +#: elfxx-mips.c:5266 #, 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" -#: elfxx-mips.c:7301 +#: elfxx-mips.c:8692 #, c-format msgid "%s: illegal section name `%s'" msgstr "%s: geçersiz bölüm adı `%s'" -#: elfxx-mips.c:7615 +#: elfxx-mips.c:9025 #, c-format -msgid "%s: linking PIC files with non-PIC files" -msgstr "%s: PIC dosyaları PIC olmayan dosyalarla baÄŸlanıyor" +msgid "%s: endianness incompatible with that of the selected emulation" +msgstr "%s: seçilen öykünüm ile sonluluk uyumlu deÄŸil" -#: elfxx-mips.c:7625 +#: elfxx-mips.c:9037 #, c-format -msgid "%s: linking abicalls files with non-abicalls files" -msgstr "%s: abicalls dosyaları abicalls olmayan dosyalarla baÄŸlanıyor" +msgid "%s: ABI is incompatible with that of the selected emulation" +msgstr "%s: ABI, seçilen öykünümle uyumlu deÄŸil" -#: elfxx-mips.c:7654 +#: elfxx-mips.c:9104 #, 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: warning: linking PIC files with non-PIC files" +msgstr "%s: uyarı: PIC dosyaları PIC olmayan dosyalarla baÄŸlanıyor" -#: elfxx-mips.c:7676 +#: elfxx-mips.c:9121 #, 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: linking 32-bit code with 64-bit code" +msgstr "%s: 64 bitlik dosyalar 32 bitlik dosyalarla baÄŸlanıyor" -#: elfxx-mips.c:7699 +#: elfxx-mips.c:9149 +#, c-format +msgid "%s: linking %s module with previous %s modules" +msgstr "%s: %s modülü önceki %s modülle baÄŸlanıyor" + +#: elfxx-mips.c:9172 #, 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 +#: elfxx-mips.c:9241 msgid " [abi=O32]" msgstr " [abi=O32]" -#: elfxx-mips.c:7761 +#: elfxx-mips.c:9243 msgid " [abi=O64]" msgstr " [abi=O64]" -#: elfxx-mips.c:7763 +#: elfxx-mips.c:9245 msgid " [abi=EABI32]" msgstr " [abi=EABI32]" -#: elfxx-mips.c:7765 +#: elfxx-mips.c:9247 msgid " [abi=EABI64]" msgstr " [abi=EABI64]" -#: elfxx-mips.c:7767 +#: elfxx-mips.c:9249 msgid " [abi unknown]" msgstr " [abi bilinmiyor]" -#: elfxx-mips.c:7769 +#: elfxx-mips.c:9251 msgid " [abi=N32]" msgstr " [abi=N32]" -#: elfxx-mips.c:7771 +#: elfxx-mips.c:9253 msgid " [abi=64]" msgstr " [abi=64]" -#: elfxx-mips.c:7773 +#: elfxx-mips.c:9255 msgid " [no abi set]" msgstr " [abi atanmamış]" -#: elfxx-mips.c:7776 +#: elfxx-mips.c:9258 msgid " [mips1]" msgstr " [mips1]" -#: elfxx-mips.c:7778 +#: elfxx-mips.c:9260 msgid " [mips2]" msgstr " [mips2]" -#: elfxx-mips.c:7780 +#: elfxx-mips.c:9262 msgid " [mips3]" msgstr " [mips3]" -#: elfxx-mips.c:7782 +#: elfxx-mips.c:9264 msgid " [mips4]" msgstr " [mips4]" -#: elfxx-mips.c:7784 +#: elfxx-mips.c:9266 msgid " [mips5]" msgstr " [mips5]" -#: elfxx-mips.c:7786 +#: elfxx-mips.c:9268 msgid " [mips32]" msgstr " [mips32]" -#: elfxx-mips.c:7788 +#: elfxx-mips.c:9270 msgid " [mips64]" msgstr " [mips64]" -#: elfxx-mips.c:7790 +#: elfxx-mips.c:9272 +msgid " [mips32r2]" +msgstr " [mips32r2]" + +#: elfxx-mips.c:9274 msgid " [unknown ISA]" msgstr " [bilinmeyen ISA]" -#: elfxx-mips.c:7793 +#: elfxx-mips.c:9277 msgid " [mdmx]" msgstr " [mdmx]" -#: elfxx-mips.c:7796 +#: elfxx-mips.c:9280 msgid " [mips16]" msgstr " [mips16]" -#: elfxx-mips.c:7799 +#: elfxx-mips.c:9283 msgid " [32bitmode]" msgstr " [32bitkipi]" -#: elfxx-mips.c:7801 +#: elfxx-mips.c:9285 msgid " [not 32bitmode]" msgstr " [32bitkipi deÄŸil]" -#: i386linux.c:458 m68klinux.c:462 sparclinux.c:459 +#: i386linux.c:457 m68klinux.c:461 sparclinux.c:458 #, c-format msgid "Output file requires shared library `%s'\n" msgstr "Çıktı dosyası için paylaşımlı kitaplık `%s' gerekli\n" -#: i386linux.c:466 m68klinux.c:470 sparclinux.c:467 +#: i386linux.c:465 m68klinux.c:469 sparclinux.c:466 #, 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" -#: i386linux.c:655 i386linux.c:705 m68klinux.c:662 m68klinux.c:710 -#: sparclinux.c:657 sparclinux.c:707 +#: i386linux.c:654 i386linux.c:704 m68klinux.c:661 m68klinux.c:709 +#: sparclinux.c:656 sparclinux.c:706 #, c-format msgid "Symbol %s not defined for fixups\n" msgstr "%s sembolü düzeltmeler için tanımlı deÄŸil\n" -#: i386linux.c:729 m68klinux.c:734 sparclinux.c:731 +#: i386linux.c:728 m68klinux.c:733 sparclinux.c:730 msgid "Warning: fixup count mismatch\n" msgstr "Uyarı: düzeltme sayı uyumsuzluÄŸu\n" -#: ieee.c:235 +#: ieee.c:293 #, c-format msgid "%s: string too long (%d chars, max 65535)" msgstr "%s: dizge fazla uzun (%d karakter, en fazla 65535)" -#: ieee.c:365 +#: ieee.c:428 #, c-format msgid "%s: unrecognized symbol `%s' flags 0x%x" msgstr "%s: bilinmeyen `%s' sembol bayrakları 0x%x" -#: ieee.c:877 +#: ieee.c:938 #, c-format 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 +#: ieee.c:963 #, c-format msgid "%s: unexpected ATN type %d in external part" msgstr "%s: dış parçada beklenmeyen ATN türü %d" -#: ieee.c:924 +#: ieee.c:985 #, c-format msgid "%s: unexpected type after ATN" msgstr "%s: ATN'den sonra beklenmeyen tür" -#: ihex.c:258 +#: ihex.c:264 #, 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" -#: ihex.c:366 +#: ihex.c:372 #, 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" " (%u beklendi, %u bulundu)" -#: ihex.c:420 +#: ihex.c:426 #, 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" -#: ihex.c:437 +#: ihex.c:443 #, 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" -#: ihex.c:454 +#: ihex.c:460 #, 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" -#: ihex.c:471 +#: ihex.c:477 #, 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" -#: ihex.c:488 +#: ihex.c:494 #, 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" -#: ihex.c:607 +#: ihex.c:619 #, c-format msgid "%s: internal error in ihex_read_section" msgstr "%s: ihex_read_section'da iç hata" -#: ihex.c:642 +#: ihex.c:654 #, c-format msgid "%s: bad section length in ihex_read_section" msgstr "%s: ihex_read_section'da hatalı bölüm uzunluÄŸu" -#: ihex.c:860 +#: ihex.c:872 #, c-format 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" - -#: libbfd.c:495 -msgid "not mapping: env var not set\n" -msgstr "eÅŸlenmeyen: çevre deÄŸiÅŸkeni atanmamış\n" - -#: libbfd.c:1466 +#: libbfd.c:861 #, c-format 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:1469 +#: libbfd.c:864 #, c-format msgid "Deprecated %s called\n" msgstr "GeçerliliÄŸi kalkmış %s çaÄŸrıldı\n" -#: linker.c:1873 +#: linker.c:1829 #, c-format msgid "%s: indirect symbol `%s' to `%s' is a loop" msgstr "%1$s: `%3$s'den endirekt sembol `%2$s'e çevrim" -#: linker.c:2776 +#: linker.c:2697 #, c-format -msgid "Attempt to do relocateable link with %s input and %s output" +msgid "Attempt to do relocatable link with %s input and %s output" msgstr "%s girdi ve %s çıktısı ile yerdeÄŸiÅŸimli baÄŸ deneniyor" -#: merge.c:892 +#: merge.c:896 #, 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)" -#: mmo.c:460 +#: mmo.c:503 #, 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" -#: mmo.c:536 +#: mmo.c:579 #, 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" -#: mmo.c:1245 +#: mmo.c:1287 #, 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" -#: mmo.c:1391 +#: mmo.c:1433 #, 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" -#: mmo.c:1633 +#: mmo.c:1674 #, c-format msgid "%s: invalid mmo file: unsupported lopcode `%d'\n" msgstr "%s: geçersiz mmo dosyası: desteklenmeyen lopkod `%d'\n" -#: mmo.c:1643 +#: mmo.c:1684 #, 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" -#: mmo.c:1679 +#: mmo.c:1720 #, 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" -#: mmo.c:1725 +#: mmo.c:1766 #, 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" -#: mmo.c:1764 +#: mmo.c:1805 #, 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" -#: mmo.c:1773 +#: mmo.c:1814 #, 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" -#: mmo.c:1796 +#: mmo.c:1837 #, 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" -#: mmo.c:1819 +#: mmo.c:1860 #, 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" -#: mmo.c:1839 +#: mmo.c:1880 #, 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" -#: mmo.c:1852 +#: mmo.c:1893 #, 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" -#: mmo.c:1958 +#: mmo.c:1999 #, 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" " y: %d, z: %d\n" -#: mmo.c:1994 +#: mmo.c:2035 #, 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" -#: mmo.c:2007 +#: mmo.c:2048 #, 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" -#: mmo.c:2670 +#: mmo.c:2698 #, c-format msgid "%s: invalid symbol table: duplicate symbol `%s'\n" msgstr "%s: geçersiz sembol tablosu: tekrarlanmış sembol `%s'\n" -#: mmo.c:2921 +#: mmo.c:2949 #, 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" -#: mmo.c:3011 +#: mmo.c:3039 #, 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" -#: mmo.c:3056 +#: mmo.c:3084 #, 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" -#: mmo.c:3111 +#: mmo.c:3139 #, 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" -#: mmo.c:3163 +#: mmo.c:3191 #, c-format msgid "%s: no initialized registers; section length 0\n" msgstr "%s: ilklenen yazmaç yok; bölüm uzunluÄŸu 0\n" -#: mmo.c:3169 +#: mmo.c:3197 #, 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" -#: mmo.c:3174 +#: mmo.c:3202 #, 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" -#: oasys.c:1029 +#: oasys.c:1052 #, c-format msgid "%s: can not represent section `%s' in oasys" msgstr "%s: oasys'de `%s' bölümü gösterilemiyor" -#: osf-core.c:132 +#: osf-core.c:137 #, 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" -#: pe-mips.c:658 +#: pe-mips.c:659 #, c-format msgid "%s: `ld -r' not supported with PE MIPS objects\n" msgstr "%s: `ld -r' PE MIPS nesneleri ile birlikte desteklenmiyor\n" @@ -2031,53 +2269,53 @@ msgstr "%s: `ld -r' PE MIPS nesneleri il #. mem = pointer to memory we're fixing up #. val = VMA of what we need to refer to #. -#: pe-mips.c:794 +#: pe-mips.c:795 #, c-format msgid "%s: unimplemented %s\n" msgstr "%s: tamamlanmamış %s\n" -#: pe-mips.c:820 +#: pe-mips.c:821 #, c-format msgid "%s: jump too far away\n" msgstr "%s: sıçrama fazla uzak\n" -#: pe-mips.c:847 +#: pe-mips.c:848 #, c-format msgid "%s: bad pair/reflo after refhi\n" msgstr "%s: refhi'den sonra hatalı çift/reflo\n" #. XXX code yet to be written. -#: peicode.h:785 +#: peicode.h:787 #, c-format msgid "%s: Unhandled import type; %x" msgstr "%s: Desteklenmeyen ithal türü; %x" -#: peicode.h:790 +#: peicode.h:792 #, c-format msgid "%s: Unrecognised import type; %x" msgstr "%s: Tanınmayan ithal türü; %x" -#: peicode.h:804 +#: peicode.h:806 #, c-format msgid "%s: Unrecognised import name type; %x" msgstr "%s: Tanınmayan ithal isim türü; %x" -#: peicode.h:1162 +#: peicode.h:1164 #, 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) " -#: peicode.h:1174 +#: peicode.h:1176 #, 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)" -#: peicode.h:1191 +#: peicode.h:1193 #, 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" -#: peicode.h:1219 +#: peicode.h:1224 #, c-format msgid "%s: string not null terminated in ILF object file." msgstr "%s: ILF nesne dosyasında dizge boÅŸ deÄŸerle sonlanmamış." @@ -2134,11 +2372,11 @@ msgstr "Bölüm[%d] sektörü = 0x%.8lx msgid "Partition[%d] length = 0x%.8lx (%ld)\n" msgstr "Bölüm[%d] uzunluÄŸu = 0x%.8lx (%ld)\n" -#: som.c:5398 +#: som.c:5422 msgid "som_sizeof_headers unimplemented" msgstr "som_sizeof_headers tamamlanmamış" -#: srec.c:301 +#: srec.c:302 #, 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" @@ -2148,7 +2386,7 @@ msgstr "%s:%d: S-kayıt dosyasında bekl msgid "%s(%s+0x%lx): Stabs entry has invalid string index." msgstr "%s(%s+0x%lx): Stabs girdisinde geçersiz dizge indeksi." -#: syms.c:1044 +#: syms.c:1019 msgid "Unsupported .stab relocation" msgstr "Desteklenmeyen .stab yerdeÄŸiÅŸimi" @@ -2167,33 +2405,33 @@ msgstr "bfd_set_section_flags (%s, %x) b msgid "Size mismatch section %s=%lx, %s=%lx" msgstr "Boy uyumsuzluÄŸu bölümü %s=%lx, %s=%lx" -#: vms-gsd.c:702 +#: vms-gsd.c:704 #, c-format msgid "unknown gsd/egsd subtype %d" msgstr "bilinmeyen gsd/egsd alt türü %d" -#: vms-hdr.c:406 +#: vms-hdr.c:408 msgid "Object module NOT error-free !\n" msgstr "Nesne modülü hatasız DEĞİL !\n" -#: vms-misc.c:543 +#: vms-misc.c:541 #, c-format msgid "Stack overflow (%d) in _bfd_vms_push" msgstr "_bfd_vms_push'da yığıt taÅŸması (%d)" -#: vms-misc.c:561 +#: vms-misc.c:559 msgid "Stack underflow in _bfd_vms_pop" msgstr "_bfd_vms_pop'da yığıt alt taÅŸması" -#: vms-misc.c:919 +#: vms-misc.c:918 msgid "_bfd_vms_output_counted called with zero bytes" msgstr "_bfd_vms_output_counted sıfır bayt ile çaÄŸrıldı" -#: vms-misc.c:924 +#: vms-misc.c:923 msgid "_bfd_vms_output_counted called with too many bytes" msgstr "_bfd_vms_output_counted fazla bayt ile çaÄŸrıldı" -#: vms-misc.c:1055 +#: vms-misc.c:1054 #, c-format msgid "Symbol %s replaced by %s\n" msgstr "%s sembolü %s ile deÄŸiÅŸtirildi\n" @@ -2203,26 +2441,26 @@ msgstr "%s sembolü %s ile deÄŸiÅŸtirild msgid "failed to enter %s" msgstr "%s'e giriÅŸ baÅŸarısız" -#: vms-tir.c:81 +#: vms-tir.c:102 msgid "No Mem !" msgstr "Hafıza Yok !" -#: vms-tir.c:362 +#: vms-tir.c:383 #, c-format msgid "bad section index in %s" msgstr "%s içinde hatalı bölüm indeksi" -#: vms-tir.c:375 +#: vms-tir.c:396 #, c-format msgid "unsupported STA cmd %s" msgstr "Desteklenmeyen STA komutu %s" -#: vms-tir.c:380 vms-tir.c:1240 +#: vms-tir.c:401 vms-tir.c:1261 #, c-format msgid "reserved STA cmd %d" msgstr "Ayrılmış STA komutu %d" -#: vms-tir.c:491 vms-tir.c:514 +#: vms-tir.c:512 vms-tir.c:535 #, c-format msgid "%s: no symbol \"%s\"" msgstr "%s: \"%s\" sembolü yok" @@ -2231,39 +2469,39 @@ msgstr "%s: \"%s\" sembolü yok" #. 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 +#: vms-tir.c:602 vms-tir.c:714 vms-tir.c:824 vms-tir.c:842 vms-tir.c:850 +#: vms-tir.c:859 vms-tir.c:1584 #, c-format msgid "%s: not supported" msgstr "%s: desteklenmiyor" -#: vms-tir.c:586 vms-tir.c:1418 +#: vms-tir.c:607 vms-tir.c:1439 #, c-format msgid "%s: not implemented" msgstr "%s: tamamlanmamış" -#: vms-tir.c:590 vms-tir.c:1422 +#: vms-tir.c:611 vms-tir.c:1443 #, c-format msgid "reserved STO cmd %d" msgstr "Ayrılmış STO komutu %d" -#: vms-tir.c:708 vms-tir.c:1568 +#: vms-tir.c:729 vms-tir.c:1589 #, c-format msgid "reserved OPR cmd %d" msgstr "Ayrılmış OPR komutu %d" -#: vms-tir.c:776 vms-tir.c:1632 +#: vms-tir.c:797 vms-tir.c:1653 #, c-format msgid "reserved CTL cmd %d" msgstr "Ayrılmış CTL komutu %d" #. stack byte from image #. arg: none. -#: vms-tir.c:1148 +#: vms-tir.c:1169 msgid "stack-from-image not implemented" msgstr "Görüntüden-yığıt tamamlanmamış" -#: vms-tir.c:1166 +#: vms-tir.c:1187 msgid "stack-entry-mask not fully implemented" msgstr "Yığın girdi maskı tamamlanmamış" @@ -2274,261 +2512,271 @@ msgstr "Yığın girdi maskı tamamlanma #. #. compare argument descriptor with symbol argument (ARG$V_PASSMECH) #. and stack TRUE (args match) or FALSE (args dont match) value. -#: vms-tir.c:1180 +#: vms-tir.c:1201 msgid "PASSMECH not fully implemented" msgstr "PASSMECH tamamlanmamış" -#: vms-tir.c:1199 +#: vms-tir.c:1220 msgid "stack-local-symbol not fully implemented" msgstr "Yerel sembol yığıtı tamamlanmamış" -#: vms-tir.c:1212 +#: vms-tir.c:1233 msgid "stack-literal not fully implemented" msgstr "Yığıt sabiti tamamlanmamış" -#: vms-tir.c:1233 +#: vms-tir.c:1254 msgid "stack-local-symbol-entry-point-mask not fully implemented" msgstr "Yığın yerel sembol girdi noktası maskı tamamlanmamış" -#: 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 +#: vms-tir.c:1531 vms-tir.c:1543 vms-tir.c:1555 vms-tir.c:1567 vms-tir.c:1632 +#: vms-tir.c:1640 vms-tir.c:1648 #, c-format msgid "%s: not fully implemented" msgstr "%s: tamamlanmamış" -#: vms-tir.c:1684 +#: vms-tir.c:1705 #, c-format msgid "obj code %d not found" msgstr "Nesne kodu %d bulunmadı" -#: vms-tir.c:2019 +#: vms-tir.c:2043 #, 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" -#: vms-tir.c:2307 +#: vms-tir.c:2331 #, c-format msgid "Unhandled relocation %s" msgstr "Desteklenmeyen yerdeÄŸiÅŸim %s" -#: xcofflink.c:1243 +#: xcofflink.c:1244 #, 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" -#: xcofflink.c:1296 +#: xcofflink.c:1297 #, c-format msgid "%s: class %d symbol `%s' has no aux entries" msgstr "%s: sınıf %d sembol `%s'un alternatif girdileri yok" -#: xcofflink.c:1319 +#: xcofflink.c:1320 #, c-format msgid "%s: symbol `%s' has unrecognized csect type %d" msgstr "%s: `%s' sembolünde bilinmeyen csect türü %d var" -#: xcofflink.c:1331 +#: xcofflink.c:1332 #, 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" -#: xcofflink.c:1367 +#: xcofflink.c:1368 #, 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" -#: xcofflink.c:1519 +#: xcofflink.c:1520 #, c-format msgid "%s: csect `%s' not in enclosing section" msgstr "%s: csect `%s' onu içeren bölümde deÄŸil" -#: xcofflink.c:1626 +#: xcofflink.c:1627 #, c-format msgid "%s: misplaced XTY_LD `%s'" msgstr "%s: XTY_LD `%s'yanlış yerde" -#: xcofflink.c:1957 +#: xcofflink.c:1958 #, c-format msgid "%s: reloc %s:%d not in csect" msgstr "%s: yerdeÄŸiÅŸim %s:%d csect içinde deÄŸil" -#: xcofflink.c:2092 +#: xcofflink.c:2095 #, c-format msgid "%s: XCOFF shared object when not producing XCOFF output" msgstr "%s: XCOFF çıktısı oluÅŸturulmazken XCOFF paylaşımlı nesnesi" -#: xcofflink.c:2113 +#: xcofflink.c:2116 #, c-format msgid "%s: dynamic object with no .loader section" msgstr "%s: .loader bölümü olmayan dinamik nesne" -#: xcofflink.c:2758 +#: xcofflink.c:2761 #, c-format msgid "%s: no such symbol" msgstr "%s: böyle bir sembol yok" -#: xcofflink.c:2891 +#: xcofflink.c:2894 msgid "error: undefined symbol __rtinit" msgstr "hata: tanımlanmamış sembol __rtinit" -#: xcofflink.c:3453 +#: xcofflink.c:3455 #, c-format msgid "warning: attempt to export undefined symbol `%s'" msgstr "uyarı: tanımlanmamış `%s' sembolünü ihraç denemesi" -#: xcofflink.c:4447 +#: xcofflink.c:4448 #, 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" -#: xcofflink.c:5287 xcofflink.c:5756 xcofflink.c:5818 xcofflink.c:6119 +#: xcofflink.c:5288 xcofflink.c:5755 xcofflink.c:5817 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" -#: xcofflink.c:5309 xcofflink.c:6130 +#: xcofflink.c:5310 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" -#: xcofflink.c:5324 +#: xcofflink.c:5325 #, 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" -#: elf32-ia64.c:2222 elf64-ia64.c:2222 +#: elf32-ia64.c:2392 elf64-ia64.c:2392 msgid "@pltoff reloc against local symbol" msgstr "yerel sembole @pltoff yerdegisimi" -#: elf32-ia64.c:3562 elf64-ia64.c:3562 +#: elf32-ia64.c:3804 elf64-ia64.c:3804 #, 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)" -#: elf32-ia64.c:3573 elf64-ia64.c:3573 +#: elf32-ia64.c:3815 elf64-ia64.c:3815 #, c-format msgid "%s: __gp does not cover short data segment" msgstr "%s: __gp kısa veri bölümünü kapsamıyor" -#: elf32-ia64.c:3858 elf64-ia64.c:3858 +#: elf32-ia64.c:4131 elf64-ia64.c:4131 #, c-format msgid "%s: linking non-pic code in a shared library" msgstr "%s: pic olmayan kod paylaÅŸmalı kitaplıkta baÄŸlanıyor" -#: elf32-ia64.c:3891 elf64-ia64.c:3891 +#: elf32-ia64.c:4164 elf64-ia64.c:4164 #, c-format msgid "%s: @gprel relocation against dynamic symbol %s" msgstr "%s: %s dinamik sembolüne @gprel yerdeÄŸiÅŸimi" -#: elf32-ia64.c:4030 elf64-ia64.c:4030 +#: elf32-ia64.c:4224 elf64-ia64.c:4224 +#, c-format +msgid "%s: linking non-pic code in a position independent executable" +msgstr "%s: pic olmayan kod yer bağımsız uygulamaya baÄŸlanıyor" + +#: elf32-ia64.c:4363 elf64-ia64.c:4363 #, c-format -msgid "%s: dynamic relocation against speculation fixup" -msgstr "%s: kuÅŸkulu düzeltmeye dinamik yerdeÄŸiÅŸim" +msgid "%s: @internal branch to dynamic symbol %s" +msgstr "%s: %s dinamik sembolüne @internal dalı" -#: elf32-ia64.c:4038 elf64-ia64.c:4038 +#: elf32-ia64.c:4365 elf64-ia64.c:4365 #, c-format -msgid "%s: speculation fixup against undefined weak symbol" -msgstr "%s: tanımlanmamış gevÅŸek sembole tartışmalı düzeltme" +msgid "%s: speculation fixup to dynamic symbol %s" +msgstr "%s: %s dinamik sembolüne spekülasyon düzeltmesi" -#: elf32-ia64.c:4271 elf64-ia64.c:4271 +#: elf32-ia64.c:4367 elf64-ia64.c:4367 +#, c-format +msgid "%s: @pcrel relocation against dynamic symbol %s" +msgstr "%s: %s dinamik sembolüne @pcrel yerdeÄŸiÅŸimi" + +#: elf32-ia64.c:4579 elf64-ia64.c:4579 msgid "unsupported reloc" msgstr "desteklenmeyen yerdeÄŸiÅŸim" -#: elf32-ia64.c:4551 elf64-ia64.c:4551 +#: elf32-ia64.c:4858 elf64-ia64.c:4858 #, 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ı" -#: elf32-ia64.c:4560 elf64-ia64.c:4560 +#: elf32-ia64.c:4867 elf64-ia64.c:4867 #, 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" -#: elf32-ia64.c:4569 elf64-ia64.c:4569 +#: elf32-ia64.c:4876 elf64-ia64.c:4876 #, c-format msgid "%s: linking 64-bit files with 32-bit files" msgstr "%s: 64 bitlik dosyalar 32 bitlik dosyalarla baÄŸlanıyor" -#: elf32-ia64.c:4578 elf64-ia64.c:4578 +#: elf32-ia64.c:4885 elf64-ia64.c:4885 #, 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" -#: elf32-ia64.c:4588 elf64-ia64.c:4588 +#: elf32-ia64.c:4895 elf64-ia64.c:4895 #, 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" -#: peigen.c:962 pepigen.c:962 +#: peigen.c:985 pepigen.c:985 #, c-format msgid "%s: line number overflow: 0x%lx > 0xffff" msgstr "%s: satır numarası taÅŸması: 0x%lx > 0xffff" -#: peigen.c:979 pepigen.c:979 +#: peigen.c:1002 pepigen.c:1002 #, c-format msgid "%s: reloc overflow 1: 0x%lx > 0xffff" msgstr "%s: yerdeÄŸiÅŸim taÅŸması 1: 0x%lx > 0xffff" -#: peigen.c:993 pepigen.c:993 +#: peigen.c:1016 pepigen.c:1016 msgid "Export Directory [.edata (or where ever we found it)]" msgstr "Ä°hraç Dizini [.edata (veya nerede bulundu ise)]" -#: peigen.c:994 pepigen.c:994 +#: peigen.c:1017 pepigen.c:1017 msgid "Import Directory [parts of .idata]" msgstr "Ä°thal Dizini [.idata'nın parçaları]" -#: peigen.c:995 pepigen.c:995 +#: peigen.c:1018 pepigen.c:1018 msgid "Resource Directory [.rsrc]" msgstr "Kaynak Dizini [.rsrc]" -#: peigen.c:996 pepigen.c:996 +#: peigen.c:1019 pepigen.c:1019 msgid "Exception Directory [.pdata]" msgstr "Ä°stisna Dizini [.pdata]" -#: peigen.c:997 pepigen.c:997 +#: peigen.c:1020 pepigen.c:1020 msgid "Security Directory" msgstr "Güvenlik Dizini" -#: peigen.c:998 pepigen.c:998 +#: peigen.c:1021 pepigen.c:1021 msgid "Base Relocation Directory [.reloc]" msgstr "Temel YerdeÄŸiÅŸim Dizini [.reloc]" -#: peigen.c:999 pepigen.c:999 +#: peigen.c:1022 pepigen.c:1022 msgid "Debug Directory" msgstr "Hata Ayıklama Dizini" -#: peigen.c:1000 pepigen.c:1000 +#: peigen.c:1023 pepigen.c:1023 msgid "Description Directory" msgstr "Açıklama Dizini" -#: peigen.c:1001 pepigen.c:1001 +#: peigen.c:1024 pepigen.c:1024 msgid "Special Directory" msgstr "Özel Dizin" -#: peigen.c:1002 pepigen.c:1002 +#: peigen.c:1025 pepigen.c:1025 msgid "Thread Storage Directory [.tls]" msgstr "Dal Saklama Dizini [.tls]" -#: peigen.c:1003 pepigen.c:1003 +#: peigen.c:1026 pepigen.c:1026 msgid "Load Configuration Directory" msgstr "Ayar Yükleme Dizini" -#: peigen.c:1004 pepigen.c:1004 +#: peigen.c:1027 pepigen.c:1027 msgid "Bound Import Directory" msgstr "Sınır Ä°thal Dizini" -#: peigen.c:1005 pepigen.c:1005 +#: peigen.c:1028 pepigen.c:1028 msgid "Import Address Table Directory" msgstr "Adres Tablosu Ä°thal Dizini" -#: peigen.c:1006 pepigen.c:1006 +#: peigen.c:1029 pepigen.c:1029 msgid "Delay Import Directory" msgstr "Gecikmeli Ä°thal Dizini" -#: peigen.c:1007 peigen.c:1008 pepigen.c:1007 pepigen.c:1008 +#: peigen.c:1030 peigen.c:1031 pepigen.c:1030 pepigen.c:1031 msgid "Reserved" msgstr "Ayrılmış" -#: peigen.c:1071 pepigen.c:1071 +#: peigen.c:1094 pepigen.c:1094 msgid "" "\n" "There is an import table, but the section containing it could not be found\n" @@ -2536,7 +2784,7 @@ msgstr "" "\n" "Bir ithal tablosu var, fakat onu içeren bölüm bulunamadı\n" -#: peigen.c:1076 pepigen.c:1076 +#: peigen.c:1099 pepigen.c:1099 #, c-format msgid "" "\n" @@ -2545,7 +2793,7 @@ msgstr "" "\n" "%s içerisinde 0x%lx'de bir ithal tablosu var\n" -#: peigen.c:1113 pepigen.c:1113 +#: peigen.c:1136 pepigen.c:1136 #, c-format msgid "" "\n" @@ -2554,12 +2802,12 @@ msgstr "" "\n" "BaÅŸlangıç adresinde iÅŸlev betimleyicisi bulundu: %04lx\n" -#: peigen.c:1116 pepigen.c:1116 +#: peigen.c:1139 pepigen.c:1139 #, c-format msgid "\tcode-base %08lx toc (loadable/actual) %08lx/%08lx\n" msgstr "\tkod temeli %08lx toc (yüklenebilir/gerçek) %08lx/%08lx\n" -#: peigen.c:1122 pepigen.c:1122 +#: peigen.c:1145 pepigen.c:1145 msgid "" "\n" "No reldata section! Function descriptor not decoded.\n" @@ -2567,7 +2815,7 @@ msgstr "" "\n" "Reldata bölümü yok! Ä°ÅŸlev betimleyicisi çözümlenemedi.\n" -#: peigen.c:1127 pepigen.c:1127 +#: peigen.c:1150 pepigen.c:1150 #, c-format msgid "" "\n" @@ -2576,7 +2824,7 @@ msgstr "" "\n" "Ä°thal Tabloları (%s bölüm içeriÄŸi çözümlendi)\n" -#: peigen.c:1130 pepigen.c:1130 +#: peigen.c:1153 pepigen.c:1153 msgid "" " vma: Hint Time Forward DLL First\n" " Table Stamp Chain Name Thunk\n" @@ -2584,7 +2832,7 @@ msgstr "" " vma: Ä°pucu Zaman Ä°leri DLL Ä°lk\n" " Tablo Damga Zincir Ä°sim Parça\n" -#: peigen.c:1181 pepigen.c:1181 +#: peigen.c:1204 pepigen.c:1204 #, c-format msgid "" "\n" @@ -2593,11 +2841,11 @@ msgstr "" "\n" "\tDLL Adı: %s\n" -#: peigen.c:1192 pepigen.c:1192 +#: peigen.c:1215 pepigen.c:1215 msgid "\tvma: Hint/Ord Member-Name Bound-To\n" msgstr "\tvma: Ä°pucu/Sıra Ãœye-Adı Sınır\n" -#: peigen.c:1217 pepigen.c:1217 +#: peigen.c:1240 pepigen.c:1240 msgid "" "\n" "There is a first thunk, but the section containing it could not be found\n" @@ -2605,7 +2853,7 @@ msgstr "" "\n" "Bir ilk parça var, fakat onu içeren bölüm bulunamadı\n" -#: peigen.c:1357 pepigen.c:1357 +#: peigen.c:1380 pepigen.c:1380 msgid "" "\n" "There is an export table, but the section containing it could not be found\n" @@ -2613,7 +2861,7 @@ msgstr "" "\n" "Bir ihraç tablosu var, fakat onu içeren bölüm bulunamadı\n" -#: peigen.c:1362 pepigen.c:1362 +#: peigen.c:1385 pepigen.c:1385 #, c-format msgid "" "\n" @@ -2622,7 +2870,7 @@ msgstr "" "\n" "%s içinde 0x%lx'de bir ihraç tablosu var\n" -#: peigen.c:1393 pepigen.c:1393 +#: peigen.c:1416 pepigen.c:1416 #, c-format msgid "" "\n" @@ -2633,61 +2881,61 @@ msgstr "" "Ä°hraç Tabloları (%s bölüm içeriÄŸi çözümlendi)\n" "\n" -#: peigen.c:1397 pepigen.c:1397 +#: peigen.c:1420 pepigen.c:1420 #, c-format msgid "Export Flags \t\t\t%lx\n" msgstr "Ä°hraç Bayrakları \t\t\t%lx\n" -#: peigen.c:1400 pepigen.c:1400 +#: peigen.c:1423 pepigen.c:1423 #, c-format msgid "Time/Date stamp \t\t%lx\n" msgstr "Saat/Tarih damgası \t\t%lx\n" -#: peigen.c:1403 pepigen.c:1403 +#: peigen.c:1426 pepigen.c:1426 #, c-format msgid "Major/Minor \t\t\t%d/%d\n" msgstr "Majör/Minör \t\t\t%d/%d\n" -#: peigen.c:1406 pepigen.c:1406 +#: peigen.c:1429 pepigen.c:1429 msgid "Name \t\t\t\t" msgstr "Ä°sim \t\t\t\t" -#: peigen.c:1412 pepigen.c:1412 +#: peigen.c:1435 pepigen.c:1435 #, c-format msgid "Ordinal Base \t\t\t%ld\n" msgstr "Onluk Sistem \t\t\t%ld\n" -#: peigen.c:1415 pepigen.c:1415 +#: peigen.c:1438 pepigen.c:1438 msgid "Number in:\n" msgstr "Sayı içinde:\n" -#: peigen.c:1418 pepigen.c:1418 +#: peigen.c:1441 pepigen.c:1441 #, c-format msgid "\tExport Address Table \t\t%08lx\n" msgstr "\tÄ°hraç Adres Tablosu \t\t%08lx\n" -#: peigen.c:1422 pepigen.c:1422 +#: peigen.c:1445 pepigen.c:1445 #, c-format msgid "\t[Name Pointer/Ordinal] Table\t%08lx\n" msgstr "\t[Ä°sim Gösterge/Onluk] Tablo\t%08lx\n" -#: peigen.c:1425 pepigen.c:1425 +#: peigen.c:1448 pepigen.c:1448 msgid "Table Addresses\n" msgstr "Tablo Adresleri\n" -#: peigen.c:1428 pepigen.c:1428 +#: peigen.c:1451 pepigen.c:1451 msgid "\tExport Address Table \t\t" msgstr "\tÄ°hraç Adres Tablosu \t\t" -#: peigen.c:1433 pepigen.c:1433 +#: peigen.c:1456 pepigen.c:1456 msgid "\tName Pointer Table \t\t" msgstr "\tÄ°sim Gösterge Tablosu \t\t" -#: peigen.c:1438 pepigen.c:1438 +#: peigen.c:1461 pepigen.c:1461 msgid "\tOrdinal Table \t\t\t" msgstr "\tOnluk Tablo \t\t\t" -#: peigen.c:1453 pepigen.c:1453 +#: peigen.c:1476 pepigen.c:1476 #, c-format msgid "" "\n" @@ -2696,15 +2944,15 @@ msgstr "" "\n" "Ä°hraç Adres Tablosu -- Onluk Sistem %ld\n" -#: peigen.c:1472 pepigen.c:1472 +#: peigen.c:1495 pepigen.c:1495 msgid "Forwarder RVA" msgstr "RVA Yönlendiricisi" -#: peigen.c:1483 pepigen.c:1483 +#: peigen.c:1506 pepigen.c:1506 msgid "Export RVA" msgstr "RVA Ä°hracı" -#: peigen.c:1490 pepigen.c:1490 +#: peigen.c:1513 pepigen.c:1513 msgid "" "\n" "[Ordinal/Name Pointer] Table\n" @@ -2712,12 +2960,12 @@ msgstr "" "\n" "[Onluk/Ä°sim Gösterge] Tablosu\n" -#: peigen.c:1545 pepigen.c:1545 +#: peigen.c:1568 pepigen.c:1568 #, 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" -#: peigen.c:1549 pepigen.c:1549 +#: peigen.c:1572 pepigen.c:1572 msgid "" "\n" "The Function Table (interpreted .pdata section contents)\n" @@ -2725,11 +2973,11 @@ msgstr "" "\n" "Ä°ÅŸlev Tablosu (.pdata bölüm içeriÄŸi çözümlendi)\n" -#: peigen.c:1552 pepigen.c:1552 +#: peigen.c:1575 pepigen.c:1575 msgid " vma:\t\t\tBegin Address End Address Unwind Info\n" msgstr " vma:\t\t\tBaÅŸlangıç Adresi Sonlanma Adresi Geri Al Bilgisi\n" -#: peigen.c:1554 pepigen.c:1554 +#: peigen.c:1577 pepigen.c:1577 msgid "" " vma:\t\tBegin End EH EH PrologEnd Exception\n" " \t\tAddress Address Handler Data Address Mask\n" @@ -2737,19 +2985,19 @@ msgstr "" " vma:\t\tBaÅŸl. Son EH EH PrologSon Ä°stisna\n" " \t\tAdres Adres Yakalay Veri Adres Maske\n" -#: peigen.c:1624 pepigen.c:1624 +#: peigen.c:1647 pepigen.c:1647 msgid " Register save millicode" msgstr " Yazma milikodunu kaydet" -#: peigen.c:1627 pepigen.c:1627 +#: peigen.c:1650 pepigen.c:1650 msgid " Register restore millicode" msgstr " Geri alma milikodunu kaydet" -#: peigen.c:1630 pepigen.c:1630 +#: peigen.c:1653 pepigen.c:1653 msgid " Glue code sequence" msgstr " BirleÅŸtirici kod dizisi" -#: peigen.c:1682 pepigen.c:1682 +#: peigen.c:1705 pepigen.c:1705 msgid "" "\n" "\n" @@ -2759,7 +3007,7 @@ msgstr "" "\n" "PE Dosya Temel YerdeÄŸiÅŸimi (.reloc bölüm içeriÄŸi çözümlendi)\n" -#: peigen.c:1712 pepigen.c:1712 +#: peigen.c:1735 pepigen.c:1735 #, c-format msgid "" "\n" @@ -2768,7 +3016,7 @@ msgstr "" "\n" "Sanal Adres: %08lx Parça boyu %ld (0x%lx) Düzeltme Sayısı %ld\n" -#: peigen.c:1725 pepigen.c:1725 +#: peigen.c:1748 pepigen.c:1748 #, c-format msgid "\treloc %4d offset %4x [%4lx] %s" msgstr "\tyer deÄŸiÅŸim %4d göreli konum %4x [%4lx] %s" @@ -2776,7 +3024,7 @@ msgstr "\tyer deÄŸiÅŸim %4d göreli konu #. 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 +#: peigen.c:1788 pepigen.c:1788 #, c-format msgid "" "\n" @@ -2785,6 +3033,42 @@ msgstr "" "\n" "Özellikler 0x%x\n" +#~ msgid "%s: Unknown special linker type %d" +#~ msgstr "%s: Bilinmeyen özel baÄŸlayıcı türü %d" + +#~ msgid "v850ea architecture" +#~ msgstr "v850ea platformu" + +#~ 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" + +#~ msgid "Error: out of memory" +#~ msgstr "Hata: bellek tükendi" + +#~ msgid "warning: relocation against removed section; zeroing" +#~ msgstr "uyarı: silinmiÅŸ bölüme yer deÄŸiÅŸim; sıfırlandı" + +#~ msgid "warning: relocation against removed section" +#~ msgstr "%1$s: silinmiÅŸ bölüme yerdeÄŸiÅŸim" + +#~ msgid "local symbols in discarded section %s" +#~ msgstr "atılmış %s bölümünde yerel semboller" + +#~ msgid "%s: linking abicalls files with non-abicalls files" +#~ msgstr "%s: abicalls dosyaları abicalls olmayan dosyalarla baÄŸlanıyor" + +#~ 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: ISA mismatch (%d) with previous modules (%d)" +#~ msgstr "%1$s: Önceki modüllerle (%3$d) ile ISA uyumsuzluÄŸu (%2$d)" + +#~ msgid "%s: dynamic relocation against speculation fixup" +#~ msgstr "%s: kuÅŸkulu düzeltmeye dinamik yerdeÄŸiÅŸim" + +#~ msgid "%s: speculation fixup against undefined weak symbol" +#~ msgstr "%s: tanımlanmamış gevÅŸek sembole tartışmalı düzeltme" + #~ msgid "GP relative relocation when GP not defined" #~ msgstr "GP tanımlanmamışken GP göreli yer deÄŸiÅŸtirmesi" diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/reloc.c binutils-2.14.90.0.5/bfd/reloc.c --- binutils-2.14.90.0.4.1/bfd/reloc.c 2003-05-05 14:46:47.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/reloc.c 2003-07-23 08:08:09.000000000 -0700 @@ -321,8 +321,8 @@ CODE_FRAGMENT . strange relocation methods to be accomodated (e.g., i960 callj . instructions). *} . bfd_reloc_status_type (*special_function) -. PARAMS ((bfd *, arelent *, struct symbol_cache_entry *, PTR, asection *, -. bfd *, char **)); +. (bfd *, arelent *, struct symbol_cache_entry *, void *, asection *, +. bfd *, char **); . . {* The textual name of the relocation type. *} . char *name; @@ -401,7 +401,7 @@ DESCRIPTION .#define HOWTO_PREPARE(relocation, symbol) \ . { \ -. if (symbol != (asymbol *) NULL) \ +. if (symbol != NULL) \ . { \ . if (bfd_is_com_section (symbol->section)) \ . { \ @@ -429,8 +429,7 @@ DESCRIPTION */ unsigned int -bfd_get_reloc_size (howto) - reloc_howto_type *howto; +bfd_get_reloc_size (reloc_howto_type *howto) { switch (howto->size) { @@ -470,13 +469,12 @@ FUNCTION bfd_check_overflow SYNOPSIS - bfd_reloc_status_type - bfd_check_overflow - (enum complain_overflow how, - unsigned int bitsize, - unsigned int rightshift, - unsigned int addrsize, - bfd_vma relocation); + bfd_reloc_status_type bfd_check_overflow + (enum complain_overflow how, + unsigned int bitsize, + unsigned int rightshift, + unsigned int addrsize, + bfd_vma relocation); DESCRIPTION Perform overflow checking on @var{relocation} which has @@ -488,12 +486,11 @@ DESCRIPTION */ bfd_reloc_status_type -bfd_check_overflow (how, bitsize, rightshift, addrsize, relocation) - enum complain_overflow how; - unsigned int bitsize; - unsigned int rightshift; - unsigned int addrsize; - bfd_vma relocation; +bfd_check_overflow (enum complain_overflow how, + unsigned int bitsize, + unsigned int rightshift, + unsigned int addrsize, + bfd_vma relocation) { bfd_vma fieldmask, addrmask, signmask, ss, a; bfd_reloc_status_type flag = bfd_reloc_ok; @@ -553,14 +550,13 @@ FUNCTION bfd_perform_relocation SYNOPSIS - bfd_reloc_status_type - bfd_perform_relocation - (bfd *abfd, - arelent *reloc_entry, - PTR data, - asection *input_section, - bfd *output_bfd, - char **error_message); + bfd_reloc_status_type bfd_perform_relocation + (bfd *abfd, + arelent *reloc_entry, + void *data, + asection *input_section, + bfd *output_bfd, + char **error_message); DESCRIPTION If @var{output_bfd} is supplied to this function, the @@ -581,14 +577,12 @@ DESCRIPTION */ bfd_reloc_status_type -bfd_perform_relocation (abfd, reloc_entry, data, input_section, output_bfd, - error_message) - bfd *abfd; - arelent *reloc_entry; - PTR data; - asection *input_section; - bfd *output_bfd; - char **error_message; +bfd_perform_relocation (bfd *abfd, + arelent *reloc_entry, + void *data, + asection *input_section, + bfd *output_bfd, + char **error_message) { bfd_vma relocation; bfd_reloc_status_type flag = bfd_reloc_ok; @@ -600,18 +594,18 @@ bfd_perform_relocation (abfd, reloc_entr symbol = *(reloc_entry->sym_ptr_ptr); if (bfd_is_abs_section (symbol->section) - && output_bfd != (bfd *) NULL) + && output_bfd != NULL) { reloc_entry->address += input_section->output_offset; return bfd_reloc_ok; } - /* If we are not producing relocateable output, return an error if + /* If we are not producing relocatable output, return an error if the symbol is not defined. An undefined weak symbol is considered to have a value of zero (SVR4 ABI, p. 4-27). */ if (bfd_is_und_section (symbol->section) && (symbol->flags & BSF_WEAK) == 0 - && output_bfd == (bfd *) NULL) + && output_bfd == NULL) flag = bfd_reloc_undefined; /* If there is a function supplied to handle this relocation type, @@ -675,7 +669,7 @@ bfd_perform_relocation (abfd, reloc_entr include the position of the location; for example, m88kbcs, or ELF. For those targets, pcrel_offset is TRUE. - If we are producing relocateable output, then we must ensure + If we are producing relocatable output, then we must ensure that this reloc will be correctly computed when the final relocation is done. If pcrel_offset is FALSE we want to wind up with the negative of the location within the section, @@ -684,7 +678,7 @@ bfd_perform_relocation (abfd, reloc_entr we do not want to adjust the existing addend at all. FIXME: This seems logical to me, but for the case of - producing relocateable output it is not what the code + producing relocatable output it is not what the code actually does. I don't want to change it, because it seems far too likely that something will break. */ @@ -695,7 +689,7 @@ bfd_perform_relocation (abfd, reloc_entr relocation -= reloc_entry->address; } - if (output_bfd != (bfd *) NULL) + if (output_bfd != NULL) { if (! howto->partial_inplace) { @@ -739,7 +733,7 @@ Hmmm. The first obvious point is that b not have any tests that depend upon the flavour. It's seem like entirely the wrong place for such a thing. The second obvious point is that the current code ignores the reloc addend when producing -relocateable output for COFF. That's peculiar. In fact, I really +relocatable output for COFF. That's peculiar. In fact, I really have no idea what the point of the line you want to remove is. A typical COFF reloc subtracts the old value of the symbol and adds in @@ -754,9 +748,9 @@ different story (we can't change it with compatibility with old object files) (coff-i386 does subtract the old value, to be compatible with existing coff-i386 targets, like SCO). -So everything works fine when not producing relocateable output. When -we are producing relocateable output, logically we should do exactly -what we do when not producing relocateable output. Therefore, your +So everything works fine when not producing relocatable output. When +we are producing relocatable output, logically we should do exactly +what we do when not producing relocatable output. Therefore, your patch is correct. In fact, it should probably always just set reloc_entry->addend to 0 for all cases, since it is, in fact, going to add the value into the object file. This won't hurt the COFF code, @@ -764,7 +758,7 @@ which doesn't use the addend; I'm not su formats (the thing to check for would be whether any formats both use the addend and set partial_inplace). -When I wanted to make coff-i386 produce relocateable output, I ran +When I wanted to make coff-i386 produce relocatable output, I ran into the problem that you are running into: I wanted to remove that line. Rather than risk it, I made the coff-i386 relocs use a special function; it's coff_i386_reloc in coff-i386.c. The function @@ -958,13 +952,12 @@ FUNCTION bfd_install_relocation SYNOPSIS - bfd_reloc_status_type - bfd_install_relocation - (bfd *abfd, - arelent *reloc_entry, - PTR data, bfd_vma data_start, - asection *input_section, - char **error_message); + bfd_reloc_status_type bfd_install_relocation + (bfd *abfd, + arelent *reloc_entry, + void *data, bfd_vma data_start, + asection *input_section, + char **error_message); DESCRIPTION This looks remarkably like <>, except it @@ -977,14 +970,12 @@ DESCRIPTION */ bfd_reloc_status_type -bfd_install_relocation (abfd, reloc_entry, data_start, data_start_offset, - input_section, error_message) - bfd *abfd; - arelent *reloc_entry; - PTR data_start; - bfd_vma data_start_offset; - asection *input_section; - char **error_message; +bfd_install_relocation (bfd *abfd, + arelent *reloc_entry, + void *data_start, + bfd_vma data_start_offset, + asection *input_section, + char **error_message) { bfd_vma relocation; bfd_reloc_status_type flag = bfd_reloc_ok; @@ -1067,7 +1058,7 @@ bfd_install_relocation (abfd, reloc_entr include the position of the location; for example, m88kbcs, or ELF. For those targets, pcrel_offset is TRUE. - If we are producing relocateable output, then we must ensure + If we are producing relocatable output, then we must ensure that this reloc will be correctly computed when the final relocation is done. If pcrel_offset is FALSE we want to wind up with the negative of the location within the section, @@ -1076,7 +1067,7 @@ bfd_install_relocation (abfd, reloc_entr we do not want to adjust the existing addend at all. FIXME: This seems logical to me, but for the case of - producing relocateable output it is not what the code + producing relocatable output it is not what the code actually does. I don't want to change it, because it seems far too likely that something will break. */ @@ -1128,7 +1119,7 @@ Hmmm. The first obvious point is that b not have any tests that depend upon the flavour. It's seem like entirely the wrong place for such a thing. The second obvious point is that the current code ignores the reloc addend when producing -relocateable output for COFF. That's peculiar. In fact, I really +relocatable output for COFF. That's peculiar. In fact, I really have no idea what the point of the line you want to remove is. A typical COFF reloc subtracts the old value of the symbol and adds in @@ -1143,9 +1134,9 @@ different story (we can't change it with compatibility with old object files) (coff-i386 does subtract the old value, to be compatible with existing coff-i386 targets, like SCO). -So everything works fine when not producing relocateable output. When -we are producing relocateable output, logically we should do exactly -what we do when not producing relocateable output. Therefore, your +So everything works fine when not producing relocatable output. When +we are producing relocatable output, logically we should do exactly +what we do when not producing relocatable output. Therefore, your patch is correct. In fact, it should probably always just set reloc_entry->addend to 0 for all cases, since it is, in fact, going to add the value into the object file. This won't hurt the COFF code, @@ -1153,7 +1144,7 @@ which doesn't use the addend; I'm not su formats (the thing to check for would be whether any formats both use the addend and set partial_inplace). -When I wanted to make coff-i386 produce relocateable output, I ran +When I wanted to make coff-i386 produce relocatable output, I ran into the problem that you are running into: I wanted to remove that line. Rather than risk it, I made the coff-i386 relocs use a special function; it's coff_i386_reloc in coff-i386.c. The function @@ -1277,32 +1268,32 @@ space consuming. For each target: { case 0: { - char x = bfd_get_8 (abfd, (char *) data); + char x = bfd_get_8 (abfd, data); DOIT (x); - bfd_put_8 (abfd, x, (unsigned char *) data); + bfd_put_8 (abfd, x, data); } break; case 1: { - short x = bfd_get_16 (abfd, (bfd_byte *) data); + short x = bfd_get_16 (abfd, data); DOIT (x); - bfd_put_16 (abfd, (bfd_vma) x, (unsigned char *) data); + bfd_put_16 (abfd, (bfd_vma) x, data); } break; case 2: { - long x = bfd_get_32 (abfd, (bfd_byte *) data); + long x = bfd_get_32 (abfd, data); DOIT (x); - bfd_put_32 (abfd, (bfd_vma) x, (bfd_byte *) data); + bfd_put_32 (abfd, (bfd_vma) x, data); } break; case -2: { - long x = bfd_get_32 (abfd, (bfd_byte *) data); + long x = bfd_get_32 (abfd, data); relocation = -relocation; DOIT (x); - bfd_put_32 (abfd, (bfd_vma) x, (bfd_byte *) data); + bfd_put_32 (abfd, (bfd_vma) x, data); } break; @@ -1312,9 +1303,9 @@ space consuming. For each target: case 4: { - bfd_vma x = bfd_get_64 (abfd, (bfd_byte *) data); + bfd_vma x = bfd_get_64 (abfd, data); DOIT (x); - bfd_put_64 (abfd, x, (bfd_byte *) data); + bfd_put_64 (abfd, x, data); } break; default: @@ -1331,7 +1322,7 @@ space consuming. For each target: function than to try to deal with it. This routine does a final relocation. Whether it is useful for a - relocateable link depends upon how the object format defines + relocatable link depends upon how the object format defines relocations. FIXME: This routine ignores any special_function in the HOWTO, @@ -1347,15 +1338,13 @@ space consuming. For each target: ADDEND is the addend of the reloc. */ bfd_reloc_status_type -_bfd_final_link_relocate (howto, input_bfd, input_section, contents, address, - value, addend) - reloc_howto_type *howto; - bfd *input_bfd; - asection *input_section; - bfd_byte *contents; - bfd_vma address; - bfd_vma value; - bfd_vma addend; +_bfd_final_link_relocate (reloc_howto_type *howto, + bfd *input_bfd, + asection *input_section, + bfd_byte *contents, + bfd_vma address, + bfd_vma value, + bfd_vma addend) { bfd_vma relocation; @@ -1394,11 +1383,10 @@ _bfd_final_link_relocate (howto, input_b /* Relocate a given location using a given value and howto. */ bfd_reloc_status_type -_bfd_relocate_contents (howto, input_bfd, relocation, location) - reloc_howto_type *howto; - bfd *input_bfd; - bfd_vma relocation; - bfd_byte *location; +_bfd_relocate_contents (reloc_howto_type *howto, + bfd *input_bfd, + bfd_vma relocation, + bfd_byte *location) { int size; bfd_vma x = 0; @@ -2155,6 +2143,42 @@ ENUMDOC MIPS ELF relocations. COMMENT +ENUM + BFD_RELOC_MN10300_GOTOFF24 +ENUMDOC + This is a 24bit GOT-relative reloc for the mn10300. +ENUM + BFD_RELOC_MN10300_GOT32 +ENUMDOC + This is a 32bit GOT-relative reloc for the mn10300, offset by two bytes + in the instruction. +ENUM + BFD_RELOC_MN10300_GOT24 +ENUMDOC + This is a 24bit GOT-relative reloc for the mn10300, offset by two bytes + in the instruction. +ENUM + BFD_RELOC_MN10300_GOT16 +ENUMDOC + This is a 16bit GOT-relative reloc for the mn10300, offset by two bytes + in the instruction. +ENUM + BFD_RELOC_MN10300_COPY +ENUMDOC + Copy symbol at runtime. +ENUM + BFD_RELOC_MN10300_GLOB_DAT +ENUMDOC + Create GOT entry. +ENUM + BFD_RELOC_MN10300_JMP_SLOT +ENUMDOC + Create PLT entry. +ENUM + BFD_RELOC_MN10300_RELATIVE +ENUMDOC + Adjust by program base. +COMMENT ENUM BFD_RELOC_386_GOT32 @@ -3385,6 +3409,17 @@ ENUMDOC s390 tls relocations. ENUM + BFD_RELOC_390_20 +ENUMX + BFD_RELOC_390_GOT20 +ENUMX + BFD_RELOC_390_GOTPLT20 +ENUMX + BFD_RELOC_390_TLS_GOTIE20 +ENUMDOC + Long displacement extension. + +ENUM BFD_RELOC_IP2K_FR9 ENUMDOC Scenix IP2K - 9-bit register number / data address @@ -3905,8 +3940,8 @@ FUNCTION bfd_reloc_type_lookup SYNOPSIS - reloc_howto_type * - bfd_reloc_type_lookup (bfd *abfd, bfd_reloc_code_real_type code); + reloc_howto_type *bfd_reloc_type_lookup + (bfd *abfd, bfd_reloc_code_real_type code); DESCRIPTION Return a pointer to a howto structure which, when @@ -3916,9 +3951,7 @@ DESCRIPTION */ reloc_howto_type * -bfd_reloc_type_lookup (abfd, code) - bfd *abfd; - bfd_reloc_code_real_type code; +bfd_reloc_type_lookup (bfd *abfd, bfd_reloc_code_real_type code) { return BFD_SEND (abfd, reloc_type_lookup, (abfd, code)); } @@ -3932,7 +3965,7 @@ INTERNAL_FUNCTION SYNOPSIS reloc_howto_type *bfd_default_reloc_type_lookup - (bfd *abfd, bfd_reloc_code_real_type code); + (bfd *abfd, bfd_reloc_code_real_type code); DESCRIPTION Provides a default relocation lookup routine for any architecture. @@ -3940,9 +3973,7 @@ DESCRIPTION */ reloc_howto_type * -bfd_default_reloc_type_lookup (abfd, code) - bfd *abfd; - bfd_reloc_code_real_type code; +bfd_default_reloc_type_lookup (bfd *abfd, bfd_reloc_code_real_type code) { switch (code) { @@ -3963,7 +3994,7 @@ bfd_default_reloc_type_lookup (abfd, cod default: BFD_FAIL (); } - return (reloc_howto_type *) NULL; + return NULL; } /* @@ -3979,12 +4010,11 @@ DESCRIPTION */ const char * -bfd_get_reloc_code_name (code) - bfd_reloc_code_real_type code; +bfd_get_reloc_code_name (bfd_reloc_code_real_type code) { - if ((int) code > (int) BFD_RELOC_UNUSED) + if (code > BFD_RELOC_UNUSED) return 0; - return bfd_reloc_code_real_names[(int)code]; + return bfd_reloc_code_real_names[code]; } /* @@ -3993,10 +4023,10 @@ INTERNAL_FUNCTION SYNOPSIS bfd_boolean bfd_generic_relax_section - (bfd *abfd, - asection *section, - struct bfd_link_info *, - bfd_boolean *); + (bfd *abfd, + asection *section, + struct bfd_link_info *, + bfd_boolean *); DESCRIPTION Provides default handling for relaxing for back ends which @@ -4004,11 +4034,10 @@ DESCRIPTION */ bfd_boolean -bfd_generic_relax_section (abfd, section, link_info, again) - bfd *abfd ATTRIBUTE_UNUSED; - asection *section ATTRIBUTE_UNUSED; - struct bfd_link_info *link_info ATTRIBUTE_UNUSED; - bfd_boolean *again; +bfd_generic_relax_section (bfd *abfd ATTRIBUTE_UNUSED, + asection *section ATTRIBUTE_UNUSED, + struct bfd_link_info *link_info ATTRIBUTE_UNUSED, + bfd_boolean *again) { *again = FALSE; return TRUE; @@ -4020,7 +4049,7 @@ INTERNAL_FUNCTION SYNOPSIS bfd_boolean bfd_generic_gc_sections - (bfd *, struct bfd_link_info *); + (bfd *, struct bfd_link_info *); DESCRIPTION Provides default handling for relaxing for back ends which @@ -4028,9 +4057,8 @@ DESCRIPTION */ bfd_boolean -bfd_generic_gc_sections (abfd, link_info) - bfd *abfd ATTRIBUTE_UNUSED; - struct bfd_link_info *link_info ATTRIBUTE_UNUSED; +bfd_generic_gc_sections (bfd *abfd ATTRIBUTE_UNUSED, + struct bfd_link_info *link_info ATTRIBUTE_UNUSED) { return TRUE; } @@ -4041,7 +4069,7 @@ INTERNAL_FUNCTION SYNOPSIS bfd_boolean bfd_generic_merge_sections - (bfd *, struct bfd_link_info *); + (bfd *, struct bfd_link_info *); DESCRIPTION Provides default handling for SEC_MERGE section merging for back ends @@ -4049,9 +4077,8 @@ DESCRIPTION */ bfd_boolean -bfd_generic_merge_sections (abfd, link_info) - bfd *abfd ATTRIBUTE_UNUSED; - struct bfd_link_info *link_info ATTRIBUTE_UNUSED; +bfd_generic_merge_sections (bfd *abfd ATTRIBUTE_UNUSED, + struct bfd_link_info *link_info ATTRIBUTE_UNUSED) { return TRUE; } @@ -4061,13 +4088,13 @@ INTERNAL_FUNCTION bfd_generic_get_relocated_section_contents SYNOPSIS - bfd_byte * - bfd_generic_get_relocated_section_contents (bfd *abfd, - struct bfd_link_info *link_info, - struct bfd_link_order *link_order, - bfd_byte *data, - bfd_boolean relocateable, - asymbol **symbols); + bfd_byte *bfd_generic_get_relocated_section_contents + (bfd *abfd, + struct bfd_link_info *link_info, + struct bfd_link_order *link_order, + bfd_byte *data, + bfd_boolean relocatable, + asymbol **symbols); DESCRIPTION Provides default handling of relocation effort for back ends @@ -4076,14 +4103,12 @@ DESCRIPTION */ bfd_byte * -bfd_generic_get_relocated_section_contents (abfd, link_info, link_order, data, - relocateable, symbols) - bfd *abfd; - struct bfd_link_info *link_info; - struct bfd_link_order *link_order; - bfd_byte *data; - bfd_boolean relocateable; - asymbol **symbols; +bfd_generic_get_relocated_section_contents (bfd *abfd, + struct bfd_link_info *link_info, + struct bfd_link_order *link_order, + bfd_byte *data, + bfd_boolean relocatable, + asymbol **symbols) { /* Get enough memory to hold the stuff. */ bfd *input_bfd = link_order->u.indirect.section->owner; @@ -4096,15 +4121,15 @@ bfd_generic_get_relocated_section_conten if (reloc_size < 0) goto error_return; - reloc_vector = (arelent **) bfd_malloc ((bfd_size_type) reloc_size); + reloc_vector = bfd_malloc (reloc_size); if (reloc_vector == NULL && reloc_size != 0) goto error_return; /* Read in the section. */ if (!bfd_get_section_contents (input_bfd, input_section, - (PTR) data, - (bfd_vma) 0, + data, + 0, input_section->_raw_size)) goto error_return; @@ -4122,19 +4147,18 @@ bfd_generic_get_relocated_section_conten if (reloc_count > 0) { arelent **parent; - for (parent = reloc_vector; *parent != (arelent *) NULL; - parent++) + for (parent = reloc_vector; *parent != NULL; parent++) { - char *error_message = (char *) NULL; + char *error_message = NULL; bfd_reloc_status_type r = bfd_perform_relocation (input_bfd, *parent, - (PTR) data, + data, input_section, - relocateable ? abfd : (bfd *) NULL, + relocatable ? abfd : NULL, &error_message); - if (relocateable) + if (relocatable) { asection *os = input_section->output_section; @@ -4155,7 +4179,7 @@ bfd_generic_get_relocated_section_conten goto error_return; break; case bfd_reloc_dangerous: - BFD_ASSERT (error_message != (char *) NULL); + BFD_ASSERT (error_message != NULL); if (!((*link_info->callbacks->reloc_dangerous) (link_info, error_message, input_bfd, input_section, (*parent)->address))) diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/reloc16.c binutils-2.14.90.0.5/bfd/reloc16.c --- binutils-2.14.90.0.4.1/bfd/reloc16.c 2002-12-16 12:22:52.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/reloc16.c 2003-07-23 08:08:09.000000000 -0700 @@ -1,6 +1,6 @@ /* 8 and 16 bit COFF relocation functions, for BFD. Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 2000, 2001, - 2002 Free Software Foundation, Inc. + 2002, 2003 Free Software Foundation, Inc. Written by Cygnus Support. This file is part of BFD, the Binary File Descriptor library. @@ -240,13 +240,13 @@ bfd_coff_reloc16_get_relocated_section_c link_info, link_order, data, - relocateable, + relocatable, symbols) bfd *in_abfd; struct bfd_link_info *link_info; struct bfd_link_order *link_order; bfd_byte *data; - bfd_boolean relocateable; + bfd_boolean relocatable; asymbol **symbols; { /* Get enough memory to hold the stuff. */ @@ -259,11 +259,11 @@ bfd_coff_reloc16_get_relocated_section_c if (reloc_size < 0) return NULL; - /* If producing relocateable output, don't bother to relax. */ - if (relocateable) + /* If producing relocatable output, don't bother to relax. */ + if (relocatable) return bfd_generic_get_relocated_section_contents (in_abfd, link_info, link_order, - data, relocateable, + data, relocatable, symbols); /* Read in the section. */ diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/section.c binutils-2.14.90.0.5/bfd/section.c --- binutils-2.14.90.0.4.1/bfd/section.c 2003-05-05 14:46:47.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/section.c 2003-07-23 08:08:09.000000000 -0700 @@ -399,8 +399,10 @@ CODE_FRAGMENT . {* Nonzero if this section needs the relax finalize pass. *} . unsigned int need_finalize_relax:1; . +. {* Nonzero if this section has a gp reloc. *} +. unsigned int has_gp_reloc:1; +. . {* Usused bits. *} -. unsigned int flag12:1; . unsigned int flag13:1; . unsigned int flag14:1; . unsigned int flag15:1; @@ -473,7 +475,7 @@ CODE_FRAGMENT . file_ptr line_filepos; . . {* Pointer to data for applications. *} -. PTR userdata; +. void *userdata; . . {* If the SEC_IN_MEMORY flag is set, this points to the actual . contents. *} @@ -491,6 +493,10 @@ CODE_FRAGMENT . {* Optional information about a COMDAT entry; NULL if not COMDAT. *} . struct bfd_comdat_info *comdat; . +. {* Points to the kept section if this section is a link-once section, +. and is discarded. *} +. struct sec *kept_section; +. . {* When a section is being output, this value changes as more . linenumbers are written out. *} . file_ptr moving_line_filepos; @@ -498,7 +504,7 @@ CODE_FRAGMENT . {* What the section number is in the target world. *} . int target_index; . -. PTR used_by_bfd; +. void *used_by_bfd; . . {* If this is a constructor section then here is a list of the . relocations created to relocate items within it. *} @@ -617,8 +623,11 @@ static const asymbol global_syms[] = /* linker_mark, linker_has_input, gc_mark, segment_mark, */ \ 0, 0, 1, 0, \ \ - /* sec_info_type, use_rela_p, has_tls_reloc, need_finalize_relax, flag12, */ \ - 0, 0, 0, 0, 0, \ + /* sec_info_type, use_rela_p, has_tls_reloc, */ \ + 0, 0, 0, \ + \ + /* need_finalize_relax, has_gp_reloc, */ \ + 0, 0, \ \ /* flag13, flag14, flag15, flag16, flag20, flag24, */ \ 0, 0, 0, 0, 0, 0, \ @@ -635,8 +644,8 @@ static const asymbol global_syms[] = /* line_filepos, userdata, contents, lineno, lineno_count, */ \ 0, NULL, NULL, NULL, 0, \ \ - /* entsize, comdat, moving_line_filepos, */ \ - 0, NULL, 0, \ + /* entsize, comdat, kept_section, moving_line_filepos, */ \ + 0, NULL, NULL, 0, \ \ /* target_index, used_by_bfd, constructor_chain, owner, */ \ 0, NULL, NULL, NULL, \ @@ -667,10 +676,9 @@ struct section_hash_entry /* Initialize an entry in the section hash table. */ struct bfd_hash_entry * -bfd_section_hash_newfunc (entry, table, string) - struct bfd_hash_entry *entry; - struct bfd_hash_table *table; - const char *string; +bfd_section_hash_newfunc (struct bfd_hash_entry *entry, + struct bfd_hash_table *table, + const char *string) { /* Allocate the structure if it has not already been allocated by a subclass. */ @@ -685,10 +693,8 @@ bfd_section_hash_newfunc (entry, table, /* Call the allocation method of the superclass. */ entry = bfd_hash_newfunc (entry, table, string); if (entry != NULL) - { - memset ((PTR) &((struct section_hash_entry *) entry)->section, - 0, sizeof (asection)); - } + memset (&((struct section_hash_entry *) entry)->section, 0, + sizeof (asection)); return entry; } @@ -699,12 +705,8 @@ bfd_section_hash_newfunc (entry, table, /* Initializes a new section. NEWSECT->NAME is already set. */ -static asection *bfd_section_init PARAMS ((bfd *, asection *)); - static asection * -bfd_section_init (abfd, newsect) - bfd *abfd; - asection *newsect; +bfd_section_init (bfd *abfd, asection *newsect) { static int section_id = 0x10; /* id 0 to 3 used by STD_SECTION. */ @@ -759,13 +761,12 @@ DESCRIPTION */ void -bfd_section_list_clear (abfd) - bfd *abfd; +bfd_section_list_clear (bfd *abfd) { abfd->sections = NULL; abfd->section_tail = &abfd->sections; abfd->section_count = 0; - memset ((PTR) abfd->section_htab.table, 0, + memset (abfd->section_htab.table, 0, abfd->section_htab.size * sizeof (struct bfd_hash_entry *)); } @@ -774,7 +775,7 @@ FUNCTION bfd_get_section_by_name SYNOPSIS - asection *bfd_get_section_by_name(bfd *abfd, const char *name); + asection *bfd_get_section_by_name (bfd *abfd, const char *name); DESCRIPTION Run through @var{abfd} and return the one of the @@ -788,9 +789,7 @@ DESCRIPTION */ asection * -bfd_get_section_by_name (abfd, name) - bfd *abfd; - const char *name; +bfd_get_section_by_name (bfd *abfd, const char *name) { struct section_hash_entry *sh; @@ -806,9 +805,8 @@ FUNCTION bfd_get_unique_section_name SYNOPSIS - char *bfd_get_unique_section_name(bfd *abfd, - const char *templat, - int *count); + char *bfd_get_unique_section_name + (bfd *abfd, const char *templat, int *count); DESCRIPTION Invent a section name that is unique in @var{abfd} by tacking @@ -819,17 +817,14 @@ DESCRIPTION */ char * -bfd_get_unique_section_name (abfd, templat, count) - bfd *abfd; - const char *templat; - int *count; +bfd_get_unique_section_name (bfd *abfd, const char *templat, int *count) { int num; unsigned int len; char *sname; len = strlen (templat); - sname = bfd_malloc ((bfd_size_type) len + 8); + sname = bfd_malloc (len + 8); if (sname == NULL) return NULL; memcpy (sname, templat, len); @@ -856,7 +851,7 @@ FUNCTION bfd_make_section_old_way SYNOPSIS - asection *bfd_make_section_old_way(bfd *abfd, const char *name); + asection *bfd_make_section_old_way (bfd *abfd, const char *name); DESCRIPTION Create a new empty section called @var{name} @@ -877,9 +872,7 @@ DESCRIPTION */ asection * -bfd_make_section_old_way (abfd, name) - bfd *abfd; - const char *name; +bfd_make_section_old_way (bfd *abfd, const char *name) { struct section_hash_entry *sh; asection *newsect; @@ -922,7 +915,7 @@ FUNCTION bfd_make_section_anyway SYNOPSIS - asection *bfd_make_section_anyway(bfd *abfd, const char *name); + asection *bfd_make_section_anyway (bfd *abfd, const char *name); DESCRIPTION Create a new empty section called @var{name} and attach it to the end of @@ -935,9 +928,7 @@ DESCRIPTION */ sec_ptr -bfd_make_section_anyway (abfd, name) - bfd *abfd; - const char *name; +bfd_make_section_anyway (bfd *abfd, const char *name) { struct section_hash_entry *sh; asection *newsect; @@ -959,7 +950,7 @@ bfd_make_section_anyway (abfd, name) section_htab without generating a unique section name and that would be pointless; We don't need to traverse the hash table. */ - newsect = (asection *) bfd_zalloc (abfd, sizeof (asection)); + newsect = bfd_zalloc (abfd, sizeof (asection)); if (newsect == NULL) return NULL; } @@ -973,7 +964,7 @@ FUNCTION bfd_make_section SYNOPSIS - asection *bfd_make_section(bfd *, const char *name); + asection *bfd_make_section (bfd *, const char *name); DESCRIPTION Like <>, but return <> (without calling @@ -983,9 +974,7 @@ DESCRIPTION */ asection * -bfd_make_section (abfd, name) - bfd *abfd; - const char *name; +bfd_make_section (bfd *abfd, const char *name) { struct section_hash_entry *sh; asection *newsect; @@ -1010,7 +999,7 @@ bfd_make_section (abfd, name) if (newsect->name != NULL) { /* Section already exists. */ - return newsect; + return NULL; } newsect->name = name; @@ -1022,7 +1011,8 @@ FUNCTION bfd_set_section_flags SYNOPSIS - bfd_boolean bfd_set_section_flags (bfd *abfd, asection *sec, flagword flags); + bfd_boolean bfd_set_section_flags + (bfd *abfd, asection *sec, flagword flags); DESCRIPTION Set the attributes of the section @var{sec} in the BFD @@ -1038,10 +1028,9 @@ DESCRIPTION /*ARGSUSED*/ bfd_boolean -bfd_set_section_flags (abfd, section, flags) - bfd *abfd ATTRIBUTE_UNUSED; - sec_ptr section; - flagword flags; +bfd_set_section_flags (bfd *abfd ATTRIBUTE_UNUSED, + sec_ptr section, + flagword flags) { #if 0 /* If you try to copy a text section from an input file (where it @@ -1065,34 +1054,32 @@ FUNCTION bfd_map_over_sections SYNOPSIS - void bfd_map_over_sections(bfd *abfd, - void (*func) (bfd *abfd, - asection *sect, - PTR obj), - PTR obj); + void bfd_map_over_sections + (bfd *abfd, + void (*func) (bfd *abfd, asection *sect, void *obj), + void *obj); DESCRIPTION Call the provided function @var{func} for each section attached to the BFD @var{abfd}, passing @var{obj} as an argument. The function will be called as if by -| func(abfd, the_section, obj); +| func (abfd, the_section, obj); This is the prefered method for iterating over sections; an alternative would be to use a loop: | section *p; | for (p = abfd->sections; p != NULL; p = p->next) -| func(abfd, p, ...) +| func (abfd, p, ...) */ /*VARARGS2*/ void -bfd_map_over_sections (abfd, operation, user_storage) - bfd *abfd; - void (*operation) PARAMS ((bfd * abfd, asection * sect, PTR obj)); - PTR user_storage; +bfd_map_over_sections (bfd *abfd, + void (*operation) (bfd *, asection *, void *), + void *user_storage) { asection *sect; unsigned int i = 0; @@ -1109,7 +1096,8 @@ FUNCTION bfd_set_section_size SYNOPSIS - bfd_boolean bfd_set_section_size (bfd *abfd, asection *sec, bfd_size_type val); + bfd_boolean bfd_set_section_size + (bfd *abfd, asection *sec, bfd_size_type val); DESCRIPTION Set @var{sec} to the size @var{val}. If the operation is @@ -1122,10 +1110,7 @@ DESCRIPTION */ bfd_boolean -bfd_set_section_size (abfd, ptr, val) - bfd *abfd; - sec_ptr ptr; - bfd_size_type val; +bfd_set_section_size (bfd *abfd, sec_ptr ptr, bfd_size_type val) { /* Once you've started writing to any section you cannot create or change the size of any others. */ @@ -1147,9 +1132,9 @@ FUNCTION bfd_set_section_contents SYNOPSIS - bfd_boolean bfd_set_section_contents (bfd *abfd, asection *section, - PTR data, file_ptr offset, - bfd_size_type count); + bfd_boolean bfd_set_section_contents + (bfd *abfd, asection *section, void *data, file_ptr offset, + bfd_size_type count); DESCRIPTION Sets the contents of the section @var{section} in BFD @@ -1169,18 +1154,17 @@ DESCRIPTION */ -#define bfd_get_section_size_now(abfd,sec) \ -(sec->reloc_done \ - ? bfd_get_section_size_after_reloc (sec) \ - : bfd_get_section_size_before_reloc (sec)) +#define bfd_get_section_size_now(abfd, sec) \ + (sec->reloc_done \ + ? bfd_get_section_size_after_reloc (sec) \ + : bfd_get_section_size_before_reloc (sec)) bfd_boolean -bfd_set_section_contents (abfd, section, location, offset, count) - bfd *abfd; - sec_ptr section; - PTR location; - file_ptr offset; - bfd_size_type count; +bfd_set_section_contents (bfd *abfd, + sec_ptr section, + void *location, + file_ptr offset, + bfd_size_type count) { bfd_size_type sz; @@ -1220,7 +1204,7 @@ bfd_set_section_contents (abfd, section, /* Record a copy of the data in memory if desired. */ if (section->contents - && location != (PTR) (section->contents + offset)) + && location != section->contents + offset) memcpy (section->contents + offset, location, (size_t) count); if (BFD_SEND (abfd, _bfd_set_section_contents, @@ -1238,9 +1222,9 @@ FUNCTION bfd_get_section_contents SYNOPSIS - bfd_boolean bfd_get_section_contents (bfd *abfd, asection *section, - PTR location, file_ptr offset, - bfd_size_type count); + bfd_boolean bfd_get_section_contents + (bfd *abfd, asection *section, void *location, file_ptr offset, + bfd_size_type count); DESCRIPTION Read data from @var{section} in BFD @var{abfd} @@ -1256,12 +1240,11 @@ DESCRIPTION */ bfd_boolean -bfd_get_section_contents (abfd, section, location, offset, count) - bfd *abfd; - sec_ptr section; - PTR location; - file_ptr offset; - bfd_size_type count; +bfd_get_section_contents (bfd *abfd, + sec_ptr section, + void *location, + file_ptr offset, + bfd_size_type count) { bfd_size_type sz; @@ -1308,8 +1291,8 @@ FUNCTION bfd_copy_private_section_data SYNOPSIS - bfd_boolean bfd_copy_private_section_data (bfd *ibfd, asection *isec, - bfd *obfd, asection *osec); + bfd_boolean bfd_copy_private_section_data + (bfd *ibfd, asection *isec, bfd *obfd, asection *osec); DESCRIPTION Copy private section information from @var{isec} in the BFD @@ -1331,7 +1314,7 @@ FUNCTION SYNOPSIS void _bfd_strip_section_from_output - (struct bfd_link_info *info, asection *section); + (struct bfd_link_info *info, asection *section); DESCRIPTION Remove @var{section} from the output. If the output section @@ -1342,9 +1325,7 @@ DESCRIPTION to remove sections. */ void -_bfd_strip_section_from_output (info, s) - struct bfd_link_info *info; - asection *s; +_bfd_strip_section_from_output (struct bfd_link_info *info, asection *s) { asection *os; asection *is; @@ -1383,9 +1364,8 @@ DESCRIPTION */ bfd_boolean -bfd_generic_discard_group (abfd, group) - bfd *abfd ATTRIBUTE_UNUSED; - asection *group ATTRIBUTE_UNUSED; +bfd_generic_discard_group (bfd *abfd ATTRIBUTE_UNUSED, + asection *group ATTRIBUTE_UNUSED) { return TRUE; } diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/simple.c binutils-2.14.90.0.5/bfd/simple.c --- binutils-2.14.90.0.4.1/bfd/simple.c 2003-05-05 14:46:47.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/simple.c 2003-07-23 08:08:09.000000000 -0700 @@ -24,89 +24,56 @@ #include "libbfd.h" #include "bfdlink.h" -static bfd_boolean simple_dummy_warning - PARAMS ((struct bfd_link_info *, const char *, const char *, bfd *, - asection *, bfd_vma)); - -static bfd_boolean simple_dummy_undefined_symbol - PARAMS ((struct bfd_link_info *, const char *, bfd *, asection *, - bfd_vma, bfd_boolean)); - -static bfd_boolean simple_dummy_reloc_overflow - PARAMS ((struct bfd_link_info *, const char *, const char *, bfd_vma, - bfd *, asection *, bfd_vma)); - -static bfd_boolean simple_dummy_reloc_dangerous - PARAMS ((struct bfd_link_info *, const char *, bfd *, asection *, bfd_vma)); - -static bfd_boolean simple_dummy_unattached_reloc - PARAMS ((struct bfd_link_info *, const char *, bfd *, asection *, bfd_vma)); - -static void simple_save_output_info - PARAMS ((bfd *, asection *, PTR)); - -static void simple_restore_output_info - PARAMS ((bfd *, asection *, PTR)); - -bfd_byte * bfd_simple_get_relocated_section_contents - PARAMS ((bfd *, asection *, bfd_byte *, asymbol **)); - static bfd_boolean -simple_dummy_warning (link_info, warning, symbol, abfd, section, address) - struct bfd_link_info *link_info ATTRIBUTE_UNUSED; - const char *warning ATTRIBUTE_UNUSED; - const char *symbol ATTRIBUTE_UNUSED; - bfd *abfd ATTRIBUTE_UNUSED; - asection *section ATTRIBUTE_UNUSED; - bfd_vma address ATTRIBUTE_UNUSED; +simple_dummy_warning (struct bfd_link_info *link_info ATTRIBUTE_UNUSED, + const char *warning ATTRIBUTE_UNUSED, + const char *symbol ATTRIBUTE_UNUSED, + bfd *abfd ATTRIBUTE_UNUSED, + asection *section ATTRIBUTE_UNUSED, + bfd_vma address ATTRIBUTE_UNUSED) { return TRUE; } static bfd_boolean -simple_dummy_undefined_symbol (link_info, name, abfd, section, address, fatal) - struct bfd_link_info *link_info ATTRIBUTE_UNUSED; - const char *name ATTRIBUTE_UNUSED; - bfd *abfd ATTRIBUTE_UNUSED; - asection *section ATTRIBUTE_UNUSED; - bfd_vma address ATTRIBUTE_UNUSED; - bfd_boolean fatal ATTRIBUTE_UNUSED; +simple_dummy_undefined_symbol (struct bfd_link_info *link_info ATTRIBUTE_UNUSED, + const char *name ATTRIBUTE_UNUSED, + bfd *abfd ATTRIBUTE_UNUSED, + asection *section ATTRIBUTE_UNUSED, + bfd_vma address ATTRIBUTE_UNUSED, + bfd_boolean fatal ATTRIBUTE_UNUSED) { return TRUE; } static bfd_boolean -simple_dummy_reloc_overflow (link_info, name, reloc_name, addend, abfd, - section, address) - struct bfd_link_info *link_info ATTRIBUTE_UNUSED; - const char *name ATTRIBUTE_UNUSED; - const char *reloc_name ATTRIBUTE_UNUSED; - bfd_vma addend ATTRIBUTE_UNUSED; - bfd *abfd ATTRIBUTE_UNUSED; - asection *section ATTRIBUTE_UNUSED; - bfd_vma address ATTRIBUTE_UNUSED; +simple_dummy_reloc_overflow (struct bfd_link_info *link_info ATTRIBUTE_UNUSED, + const char *name ATTRIBUTE_UNUSED, + const char *reloc_name ATTRIBUTE_UNUSED, + bfd_vma addend ATTRIBUTE_UNUSED, + bfd *abfd ATTRIBUTE_UNUSED, + asection *section ATTRIBUTE_UNUSED, + bfd_vma address ATTRIBUTE_UNUSED) { return TRUE; } static bfd_boolean -simple_dummy_reloc_dangerous (link_info, message, abfd, section, address) - struct bfd_link_info *link_info ATTRIBUTE_UNUSED; - const char *message ATTRIBUTE_UNUSED; - bfd *abfd ATTRIBUTE_UNUSED; - asection *section ATTRIBUTE_UNUSED; - bfd_vma address ATTRIBUTE_UNUSED; +simple_dummy_reloc_dangerous (struct bfd_link_info *link_info ATTRIBUTE_UNUSED, + const char *message ATTRIBUTE_UNUSED, + bfd *abfd ATTRIBUTE_UNUSED, + asection *section ATTRIBUTE_UNUSED, + bfd_vma address ATTRIBUTE_UNUSED) { return TRUE; } static bfd_boolean -simple_dummy_unattached_reloc (link_info, name, abfd, section, address) - struct bfd_link_info *link_info ATTRIBUTE_UNUSED; - const char *name ATTRIBUTE_UNUSED; - bfd *abfd ATTRIBUTE_UNUSED; - asection *section ATTRIBUTE_UNUSED; - bfd_vma address ATTRIBUTE_UNUSED; +simple_dummy_unattached_reloc (struct bfd_link_info *link_info ATTRIBUTE_UNUSED, + const char *name ATTRIBUTE_UNUSED, + bfd *abfd ATTRIBUTE_UNUSED, + asection *section ATTRIBUTE_UNUSED, + bfd_vma address ATTRIBUTE_UNUSED) { return TRUE; } @@ -118,12 +85,11 @@ struct saved_output_info }; static void -simple_save_output_info (abfd, section, ptr) - bfd *abfd ATTRIBUTE_UNUSED; - asection *section; - PTR ptr; +simple_save_output_info (bfd *abfd ATTRIBUTE_UNUSED, + asection *section, + void *ptr) { - struct saved_output_info *output_info = (struct saved_output_info *) ptr; + struct saved_output_info *output_info = ptr; output_info[section->index].offset = section->output_offset; output_info[section->index].section = section->output_section; section->output_offset = 0; @@ -131,12 +97,11 @@ simple_save_output_info (abfd, section, } static void -simple_restore_output_info (abfd, section, ptr) - bfd *abfd ATTRIBUTE_UNUSED; - asection *section; - PTR ptr; +simple_restore_output_info (bfd *abfd ATTRIBUTE_UNUSED, + asection *section, + void *ptr) { - struct saved_output_info *output_info = (struct saved_output_info *) ptr; + struct saved_output_info *output_info = ptr; section->output_offset = output_info[section->index].offset; section->output_section = output_info[section->index].section; } @@ -146,7 +111,8 @@ FUNCTION bfd_simple_relocate_secton SYNOPSIS - bfd_byte *bfd_simple_get_relocated_section_contents (bfd *abfd, asection *sec, bfd_byte *outbuf, asymbol **symbol_table); + bfd_byte *bfd_simple_get_relocated_section_contents + (bfd *abfd, asection *sec, bfd_byte *outbuf, asymbol **symbol_table); DESCRIPTION Returns the relocated contents of section @var{sec}. The symbols in @@ -163,18 +129,17 @@ DESCRIPTION */ bfd_byte * -bfd_simple_get_relocated_section_contents (abfd, sec, outbuf, symbol_table) - bfd *abfd; - asection *sec; - bfd_byte *outbuf; - asymbol **symbol_table; +bfd_simple_get_relocated_section_contents (bfd *abfd, + asection *sec, + bfd_byte *outbuf, + asymbol **symbol_table) { struct bfd_link_info link_info; struct bfd_link_order link_order; struct bfd_link_callbacks callbacks; bfd_byte *contents, *data; int storage_needed; - PTR saved_offsets; + void *saved_offsets; if (! (sec->flags & SEC_RELOC)) { @@ -243,10 +208,10 @@ bfd_simple_get_relocated_section_content if (symbol_table == NULL) { - bfd_link_add_symbols (abfd, &link_info); + _bfd_generic_link_add_symbols (abfd, &link_info); storage_needed = bfd_get_symtab_upper_bound (abfd); - symbol_table = (asymbol **) bfd_malloc (storage_needed); + symbol_table = bfd_malloc (storage_needed); bfd_canonicalize_symtab (abfd, symbol_table); } else diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/sparclinux.c binutils-2.14.90.0.5/bfd/sparclinux.c --- binutils-2.14.90.0.4.1/bfd/sparclinux.c 2003-03-19 09:19:13.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/sparclinux.c 2003-07-23 08:08:09.000000000 -0700 @@ -354,7 +354,7 @@ linux_add_one_symbol (info, abfd, name, insert = FALSE; - if (! info->relocateable + if (! info->relocatable && linux_hash_table (info)->dynobj == NULL && strcmp (name, SHARABLE_CONFLICTS) == 0 && (flags & BSF_CONSTRUCTOR) != 0 diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/sunos.c binutils-2.14.90.0.5/bfd/sunos.c --- binutils-2.14.90.0.4.1/bfd/sunos.c 2002-12-16 12:22:52.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/sunos.c 2003-07-23 08:08:09.000000000 -0700 @@ -1,6 +1,6 @@ /* BFD backend for SunOS binaries. Copyright 1990, 1991, 1992, 1994, 1995, 1996, 1997, 1998, 2000, 2001, - 2002 Free Software Foundation, Inc. + 2002, 2003 Free Software Foundation, Inc. Written by Cygnus Support. This file is part of BFD, the Binary File Descriptor library. @@ -884,7 +884,7 @@ sunos_add_dynamic_symbols (abfd, info, s { if (! sunos_create_dynamic_sections (abfd, info, ((abfd->flags & DYNAMIC) != 0 - && !info->relocateable))) + && !info->relocatable))) return FALSE; } @@ -911,7 +911,7 @@ sunos_add_dynamic_symbols (abfd, info, s /* The native linker seems to just ignore dynamic objects when -r is used. */ - if (info->relocateable) + if (info->relocatable) return TRUE; /* There's no hope of using a dynamic object which does not exactly @@ -1326,7 +1326,7 @@ bfd_sunos_size_dynamic_sections (output_ *sneedptr = NULL; *srulesptr = NULL; - if (info->relocateable) + if (info->relocatable) return TRUE; if (output_bfd->xvec != &MY(vec)) diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/syms.c binutils-2.14.90.0.5/bfd/syms.c --- binutils-2.14.90.0.4.1/bfd/syms.c 2003-03-19 09:19:13.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/syms.c 2003-07-23 08:08:09.000000000 -0700 @@ -77,7 +77,7 @@ SUBSECTION | if (storage_needed == 0) | return; | -| symbol_table = (asymbol **) xmalloc (storage_needed); +| symbol_table = xmalloc (storage_needed); | ... | number_of_symbols = | bfd_canonicalize_symtab (abfd, symbol_table); @@ -122,7 +122,7 @@ SUBSECTION | new->value = 0x12345; | | ptrs[0] = new; -| ptrs[1] = (asymbol *)0; +| ptrs[1] = 0; | | bfd_set_symtab (abfd, ptrs, 1); | bfd_close (abfd); @@ -298,7 +298,7 @@ CODE_FRAGMENT . {* Back end special data. *} . union . { -. PTR p; +. void *p; . bfd_vma i; . } . udata; @@ -314,10 +314,6 @@ CODE_FRAGMENT #include "bfdlink.h" #include "aout/stab_gnu.h" -static char coff_section_type PARAMS ((const char *)); -static char decode_section_type PARAMS ((const struct sec *)); -static int cmpindexentry PARAMS ((const PTR, const PTR)); - /* DOCDD INODE @@ -354,9 +350,7 @@ DESCRIPTION */ bfd_boolean -bfd_is_local_label (abfd, sym) - bfd *abfd; - asymbol *sym; +bfd_is_local_label (bfd *abfd, asymbol *sym) { /* The BSF_SECTION_SYM check is needed for IA-64, where every label that starts with '.' is local. This would accidentally catch section names @@ -382,7 +376,7 @@ DESCRIPTION local label. .#define bfd_is_local_label_name(abfd, name) \ -. BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name)) +. BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name)) . */ @@ -398,8 +392,7 @@ DESCRIPTION including the NULL. .#define bfd_canonicalize_symtab(abfd, location) \ -. BFD_SEND (abfd, _bfd_canonicalize_symtab,\ -. (abfd, location)) +. BFD_SEND (abfd, _bfd_canonicalize_symtab, (abfd, location)) . */ @@ -408,7 +401,8 @@ FUNCTION bfd_set_symtab SYNOPSIS - bfd_boolean bfd_set_symtab (bfd *abfd, asymbol **location, unsigned int count); + bfd_boolean bfd_set_symtab + (bfd *abfd, asymbol **location, unsigned int count); DESCRIPTION Arrange that when the output BFD @var{abfd} is closed, @@ -417,12 +411,9 @@ DESCRIPTION */ bfd_boolean -bfd_set_symtab (abfd, location, symcount) - bfd *abfd; - asymbol **location; - unsigned int symcount; +bfd_set_symtab (bfd *abfd, asymbol **location, unsigned int symcount) { - if ((abfd->format != bfd_object) || (bfd_read_p (abfd))) + if (abfd->format != bfd_object || bfd_read_p (abfd)) { bfd_set_error (bfd_error_invalid_operation); return FALSE; @@ -438,25 +429,21 @@ FUNCTION bfd_print_symbol_vandf SYNOPSIS - void bfd_print_symbol_vandf (bfd *abfd, PTR file, asymbol *symbol); + void bfd_print_symbol_vandf (bfd *abfd, void *file, asymbol *symbol); DESCRIPTION Print the value and flags of the @var{symbol} supplied to the stream @var{file}. */ void -bfd_print_symbol_vandf (abfd, arg, symbol) - bfd *abfd; - PTR arg; - asymbol *symbol; +bfd_print_symbol_vandf (bfd *abfd, void *arg, asymbol *symbol) { - FILE *file = (FILE *) arg; + FILE *file = arg; flagword type = symbol->flags; - if (symbol->section != (asection *) NULL) - bfd_fprintf_vma (abfd, file, - symbol->value + symbol->section->vma); + if (symbol->section != NULL) + bfd_fprintf_vma (abfd, file, symbol->value + symbol->section->vma); else bfd_fprintf_vma (abfd, file, symbol->value); @@ -493,7 +480,7 @@ DESCRIPTION information, and will cause problems later on. .#define bfd_make_empty_symbol(abfd) \ -. BFD_SEND (abfd, _bfd_make_empty_symbol, (abfd)) +. BFD_SEND (abfd, _bfd_make_empty_symbol, (abfd)) . */ @@ -502,7 +489,7 @@ FUNCTION _bfd_generic_make_empty_symbol SYNOPSIS - asymbol * _bfd_generic_make_empty_symbol (bfd *); + asymbol *_bfd_generic_make_empty_symbol (bfd *); DESCRIPTION Create a new <> structure for the BFD @var{abfd} @@ -512,11 +499,10 @@ DESCRIPTION */ asymbol * -_bfd_generic_make_empty_symbol (abfd) - bfd *abfd; +_bfd_generic_make_empty_symbol (bfd *abfd) { bfd_size_type amt = sizeof (asymbol); - asymbol *new = (asymbol *) bfd_zalloc (abfd, amt); + asymbol *new = bfd_zalloc (abfd, amt); if (new) new->the_bfd = abfd; return new; @@ -532,7 +518,7 @@ DESCRIPTION yet to be worked out. .#define bfd_make_debug_symbol(abfd,ptr,size) \ -. BFD_SEND (abfd, _bfd_make_debug_symbol, (abfd, ptr, size)) +. BFD_SEND (abfd, _bfd_make_debug_symbol, (abfd, ptr, size)) . */ @@ -576,8 +562,7 @@ static const struct section_to_type stt[ 't' as well as .text */ static char -coff_section_type (s) - const char *s; +coff_section_type (const char *s) { const struct section_to_type *t; @@ -596,8 +581,7 @@ coff_section_type (s) we could perhaps obsolete coff_section_type. */ static char -decode_section_type (section) - const struct sec *section; +decode_section_type (const struct sec *section) { if (section->flags & SEC_CODE) return 't'; @@ -619,6 +603,8 @@ decode_section_type (section) } if (section->flags & SEC_DEBUGGING) return 'N'; + if ((section->flags & SEC_HAS_CONTENTS) && (section->flags & SEC_READONLY)) + return 'n'; return '?'; } @@ -635,8 +621,7 @@ SYNOPSIS int bfd_decode_symclass (asymbol *symbol); */ int -bfd_decode_symclass (symbol) - asymbol *symbol; +bfd_decode_symclass (asymbol *symbol) { char c; @@ -708,8 +693,7 @@ SYNOPSIS */ bfd_boolean -bfd_is_undefined_symclass (symclass) - int symclass; +bfd_is_undefined_symclass (int symclass) { return symclass == 'U' || symclass == 'w' || symclass == 'v'; } @@ -728,9 +712,7 @@ SYNOPSIS */ void -bfd_symbol_info (symbol, ret) - asymbol *symbol; - symbol_info *ret; +bfd_symbol_info (asymbol *symbol, symbol_info *ret) { ret->type = bfd_decode_symclass (symbol); @@ -747,7 +729,8 @@ FUNCTION bfd_copy_private_symbol_data SYNOPSIS - bfd_boolean bfd_copy_private_symbol_data (bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym); + bfd_boolean bfd_copy_private_symbol_data + (bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym); DESCRIPTION Copy private symbol information from @var{isym} in the BFD @@ -759,8 +742,8 @@ DESCRIPTION Not enough memory exists to create private data for @var{osec}. .#define bfd_copy_private_symbol_data(ibfd, isymbol, obfd, osymbol) \ -. BFD_SEND (obfd, _bfd_copy_private_symbol_data, \ -. (ibfd, isymbol, obfd, osymbol)) +. BFD_SEND (obfd, _bfd_copy_private_symbol_data, \ +. (ibfd, isymbol, obfd, osymbol)) . */ @@ -769,11 +752,10 @@ DESCRIPTION version. It just uses BFD asymbol structures as mini symbols. */ long -_bfd_generic_read_minisymbols (abfd, dynamic, minisymsp, sizep) - bfd *abfd; - bfd_boolean dynamic; - PTR *minisymsp; - unsigned int *sizep; +_bfd_generic_read_minisymbols (bfd *abfd, + bfd_boolean dynamic, + void **minisymsp, + unsigned int *sizep) { long storage; asymbol **syms = NULL; @@ -788,7 +770,7 @@ _bfd_generic_read_minisymbols (abfd, dyn if (storage == 0) return 0; - syms = (asymbol **) bfd_malloc ((bfd_size_type) storage); + syms = bfd_malloc (storage); if (syms == NULL) goto error_return; @@ -799,7 +781,7 @@ _bfd_generic_read_minisymbols (abfd, dyn if (symcount < 0) goto error_return; - *minisymsp = (PTR) syms; + *minisymsp = syms; *sizep = sizeof (asymbol *); return symcount; @@ -815,11 +797,10 @@ _bfd_generic_read_minisymbols (abfd, dyn we just return the asymbol the minisymbol points to. */ asymbol * -_bfd_generic_minisymbol_to_symbol (abfd, dynamic, minisym, sym) - bfd *abfd ATTRIBUTE_UNUSED; - bfd_boolean dynamic ATTRIBUTE_UNUSED; - const PTR minisym; - asymbol *sym ATTRIBUTE_UNUSED; +_bfd_generic_minisymbol_to_symbol (bfd *abfd ATTRIBUTE_UNUSED, + bfd_boolean dynamic ATTRIBUTE_UNUSED, + const void *minisym, + asymbol *sym ATTRIBUTE_UNUSED) { return *(asymbol **) minisym; } @@ -854,12 +835,10 @@ struct indexentry /* Compare two indexentry structures. This is called via qsort. */ static int -cmpindexentry (a, b) - const PTR a; - const PTR b; +cmpindexentry (const void *a, const void *b) { - const struct indexentry *contestantA = (const struct indexentry *) a; - const struct indexentry *contestantB = (const struct indexentry *) b; + const struct indexentry *contestantA = a; + const struct indexentry *contestantB = b; if (contestantA->val < contestantB->val) return -1; @@ -900,17 +879,15 @@ struct stab_find_info }; bfd_boolean -_bfd_stab_section_find_nearest_line (abfd, symbols, section, offset, pfound, - pfilename, pfnname, pline, pinfo) - bfd *abfd; - asymbol **symbols; - asection *section; - bfd_vma offset; - bfd_boolean *pfound; - const char **pfilename; - const char **pfnname; - unsigned int *pline; - PTR *pinfo; +_bfd_stab_section_find_nearest_line (bfd *abfd, + asymbol **symbols, + asection *section, + bfd_vma offset, + bfd_boolean *pfound, + const char **pfilename, + const char **pfnname, + unsigned int *pline, + void **pinfo) { struct stab_find_info *info; bfd_size_type stabsize, strsize; @@ -948,7 +925,7 @@ _bfd_stab_section_find_nearest_line (abf #define VALOFF (8) #define STABSIZE (12) - info = (struct stab_find_info *) *pinfo; + info = *pinfo; if (info != NULL) { if (info->stabsec == NULL || info->strsec == NULL) @@ -969,7 +946,7 @@ _bfd_stab_section_find_nearest_line (abf char *function_name; bfd_size_type amt = sizeof *info; - info = (struct stab_find_info *) bfd_zalloc (abfd, amt); + info = bfd_zalloc (abfd, amt); if (info == NULL) return FALSE; @@ -984,15 +961,15 @@ _bfd_stab_section_find_nearest_line (abf { /* No stabs debugging information. Set *pinfo so that we can return quickly in the info != NULL case above. */ - *pinfo = (PTR) info; + *pinfo = info; return TRUE; } stabsize = info->stabsec->_raw_size; strsize = info->strsec->_raw_size; - info->stabs = (bfd_byte *) bfd_alloc (abfd, stabsize); - info->strs = (bfd_byte *) bfd_alloc (abfd, strsize); + info->stabs = bfd_alloc (abfd, stabsize); + info->strs = bfd_alloc (abfd, strsize); if (info->stabs == NULL || info->strs == NULL) return FALSE; @@ -1002,14 +979,14 @@ _bfd_stab_section_find_nearest_line (abf (bfd_vma) 0, strsize)) return FALSE; - /* If this is a relocateable object file, we have to relocate + /* If this is a relocatable object file, we have to relocate the entries in .stab. This should always be simple 32 bit relocations against symbols defined in this object file, so this should be no big deal. */ reloc_size = bfd_get_reloc_upper_bound (abfd, info->stabsec); if (reloc_size < 0) return FALSE; - reloc_vector = (arelent **) bfd_malloc ((bfd_size_type) reloc_size); + reloc_vector = bfd_malloc (reloc_size); if (reloc_vector == NULL && reloc_size != 0) return FALSE; reloc_count = bfd_canonicalize_reloc (abfd, info->stabsec, reloc_vector, @@ -1102,7 +1079,7 @@ _bfd_stab_section_find_nearest_line (abf amt = info->indextablesize; amt *= sizeof (struct indexentry); - info->indextable = (struct indexentry *) bfd_alloc (abfd, amt); + info->indextable = bfd_alloc (abfd, amt); if (info->indextable == NULL) return FALSE; @@ -1223,7 +1200,7 @@ _bfd_stab_section_find_nearest_line (abf qsort (info->indextable, (size_t) i, sizeof (struct indexentry), cmpindexentry); - *pinfo = (PTR) info; + *pinfo = info; } /* We are passed a section relative offset. The offsets in the @@ -1357,7 +1334,7 @@ _bfd_stab_section_find_nearest_line (abf if (info->filename != NULL) free (info->filename); len = strlen (file_name) + 1; - info->filename = (char *) bfd_malloc ((bfd_size_type) dirlen + len); + info->filename = bfd_malloc (dirlen + len); if (info->filename == NULL) return FALSE; memcpy (info->filename, directory_name, dirlen); diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/targets.c binutils-2.14.90.0.5/bfd/targets.c --- binutils-2.14.90.0.4.1/bfd/targets.c 2003-05-05 14:46:47.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/targets.c 2003-07-23 08:08:09.000000000 -0700 @@ -103,7 +103,7 @@ DESCRIPTION someone wants to fix this and not break the above, please do. .#define BFD_SEND(bfd, message, arglist) \ -. ((*((bfd)->xvec->message)) arglist) +. ((*((bfd)->xvec->message)) arglist) . .#ifdef DEBUG_BFD_SEND .#undef BFD_SEND @@ -116,7 +116,7 @@ DESCRIPTION For operations which index on the BFD format: .#define BFD_SEND_FMT(bfd, message, arglist) \ -. (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist) +. (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist) . .#ifdef DEBUG_BFD_SEND .#undef BFD_SEND_FMT @@ -203,264 +203,266 @@ DESCRIPTION . {* Entries for byte swapping for data. These are different from the . other entry points, since they don't take a BFD asthe first argument. . Certain other handlers could do the same. *} -. bfd_vma (*bfd_getx64) PARAMS ((const bfd_byte *)); -. bfd_signed_vma (*bfd_getx_signed_64) PARAMS ((const bfd_byte *)); -. void (*bfd_putx64) PARAMS ((bfd_vma, bfd_byte *)); -. bfd_vma (*bfd_getx32) PARAMS ((const bfd_byte *)); -. bfd_signed_vma (*bfd_getx_signed_32) PARAMS ((const bfd_byte *)); -. void (*bfd_putx32) PARAMS ((bfd_vma, bfd_byte *)); -. bfd_vma (*bfd_getx16) PARAMS ((const bfd_byte *)); -. bfd_signed_vma (*bfd_getx_signed_16) PARAMS ((const bfd_byte *)); -. void (*bfd_putx16) PARAMS ((bfd_vma, bfd_byte *)); +. bfd_vma (*bfd_getx64) (const bfd_byte *); +. bfd_signed_vma (*bfd_getx_signed_64) (const bfd_byte *); +. void (*bfd_putx64) (bfd_vma, bfd_byte *); +. bfd_vma (*bfd_getx32) (const bfd_byte *); +. bfd_signed_vma (*bfd_getx_signed_32) (const bfd_byte *); +. void (*bfd_putx32) (bfd_vma, bfd_byte *); +. bfd_vma (*bfd_getx16) (const bfd_byte *); +. bfd_signed_vma (*bfd_getx_signed_16) (const bfd_byte *); +. void (*bfd_putx16) (bfd_vma, bfd_byte *); . . {* Byte swapping for the headers. *} -. bfd_vma (*bfd_h_getx64) PARAMS ((const bfd_byte *)); -. bfd_signed_vma (*bfd_h_getx_signed_64) PARAMS ((const bfd_byte *)); -. void (*bfd_h_putx64) PARAMS ((bfd_vma, bfd_byte *)); -. bfd_vma (*bfd_h_getx32) PARAMS ((const bfd_byte *)); -. bfd_signed_vma (*bfd_h_getx_signed_32) PARAMS ((const bfd_byte *)); -. void (*bfd_h_putx32) PARAMS ((bfd_vma, bfd_byte *)); -. bfd_vma (*bfd_h_getx16) PARAMS ((const bfd_byte *)); -. bfd_signed_vma (*bfd_h_getx_signed_16) PARAMS ((const bfd_byte *)); -. void (*bfd_h_putx16) PARAMS ((bfd_vma, bfd_byte *)); +. bfd_vma (*bfd_h_getx64) (const bfd_byte *); +. bfd_signed_vma (*bfd_h_getx_signed_64) (const bfd_byte *); +. void (*bfd_h_putx64) (bfd_vma, bfd_byte *); +. bfd_vma (*bfd_h_getx32) (const bfd_byte *); +. bfd_signed_vma (*bfd_h_getx_signed_32) (const bfd_byte *); +. void (*bfd_h_putx32) (bfd_vma, bfd_byte *); +. bfd_vma (*bfd_h_getx16) (const bfd_byte *); +. bfd_signed_vma (*bfd_h_getx_signed_16) (const bfd_byte *); +. void (*bfd_h_putx16) (bfd_vma, bfd_byte *); . . {* Format dependent routines: these are vectors of entry points . within the target vector structure, one for each format to check. *} . . {* Check the format of a file being read. Return a <> or zero. *} -. const struct bfd_target *(*_bfd_check_format[bfd_type_end]) PARAMS ((bfd *)); +. const struct bfd_target *(*_bfd_check_format[bfd_type_end]) (bfd *); . . {* Set the format of a file being written. *} -. bfd_boolean (*_bfd_set_format[bfd_type_end]) PARAMS ((bfd *)); +. bfd_boolean (*_bfd_set_format[bfd_type_end]) (bfd *); . . {* Write cached information into a file being written, at <>. *} -. bfd_boolean (*_bfd_write_contents[bfd_type_end]) PARAMS ((bfd *)); +. bfd_boolean (*_bfd_write_contents[bfd_type_end]) (bfd *); . The general target vector. These vectors are initialized using the BFD_JUMP_TABLE macros. . . {* Generic entry points. *} -Do not "beautify" the CONCAT* macro args. Traditional C will not -remove whitespace added here, and thus will fail to concatenate -the tokens. .#define BFD_JUMP_TABLE_GENERIC(NAME) \ -.CONCAT2 (NAME,_close_and_cleanup), \ -.CONCAT2 (NAME,_bfd_free_cached_info), \ -.CONCAT2 (NAME,_new_section_hook), \ -.CONCAT2 (NAME,_get_section_contents), \ -.CONCAT2 (NAME,_get_section_contents_in_window) +. NAME##_close_and_cleanup, \ +. NAME##_bfd_free_cached_info, \ +. NAME##_new_section_hook, \ +. NAME##_get_section_contents, \ +. NAME##_get_section_contents_in_window . . {* Called when the BFD is being closed to do any necessary cleanup. *} -. bfd_boolean (*_close_and_cleanup) PARAMS ((bfd *)); +. bfd_boolean (*_close_and_cleanup) (bfd *); . {* Ask the BFD to free all cached information. *} -. bfd_boolean (*_bfd_free_cached_info) PARAMS ((bfd *)); +. bfd_boolean (*_bfd_free_cached_info) (bfd *); . {* Called when a new section is created. *} -. bfd_boolean (*_new_section_hook) PARAMS ((bfd *, sec_ptr)); +. bfd_boolean (*_new_section_hook) (bfd *, sec_ptr); . {* Read the contents of a section. *} . bfd_boolean (*_bfd_get_section_contents) -. PARAMS ((bfd *, sec_ptr, PTR, file_ptr, bfd_size_type)); +. (bfd *, sec_ptr, void *, file_ptr, bfd_size_type); . bfd_boolean (*_bfd_get_section_contents_in_window) -. PARAMS ((bfd *, sec_ptr, bfd_window *, file_ptr, bfd_size_type)); +. (bfd *, sec_ptr, bfd_window *, file_ptr, bfd_size_type); . . {* Entry points to copy private data. *} .#define BFD_JUMP_TABLE_COPY(NAME) \ -.CONCAT2 (NAME,_bfd_copy_private_bfd_data), \ -.CONCAT2 (NAME,_bfd_merge_private_bfd_data), \ -.CONCAT2 (NAME,_bfd_copy_private_section_data), \ -.CONCAT2 (NAME,_bfd_copy_private_symbol_data), \ -.CONCAT2 (NAME,_bfd_set_private_flags), \ -.CONCAT2 (NAME,_bfd_print_private_bfd_data) \ +. NAME##_bfd_copy_private_bfd_data, \ +. NAME##_bfd_merge_private_bfd_data, \ +. NAME##_bfd_copy_private_section_data, \ +. NAME##_bfd_copy_private_symbol_data, \ +. NAME##_bfd_set_private_flags, \ +. NAME##_bfd_print_private_bfd_data +. . {* Called to copy BFD general private data from one object file . to another. *} -. bfd_boolean (*_bfd_copy_private_bfd_data) PARAMS ((bfd *, bfd *)); +. bfd_boolean (*_bfd_copy_private_bfd_data) (bfd *, bfd *); . {* Called to merge BFD general private data from one object file . to a common output file when linking. *} -. bfd_boolean (*_bfd_merge_private_bfd_data) PARAMS ((bfd *, bfd *)); +. bfd_boolean (*_bfd_merge_private_bfd_data) (bfd *, bfd *); . {* Called to copy BFD private section data from one object file . to another. *} . bfd_boolean (*_bfd_copy_private_section_data) -. PARAMS ((bfd *, sec_ptr, bfd *, sec_ptr)); +. (bfd *, sec_ptr, bfd *, sec_ptr); . {* Called to copy BFD private symbol data from one symbol . to another. *} . bfd_boolean (*_bfd_copy_private_symbol_data) -. PARAMS ((bfd *, asymbol *, bfd *, asymbol *)); +. (bfd *, asymbol *, bfd *, asymbol *); . {* Called to set private backend flags. *} -. bfd_boolean (*_bfd_set_private_flags) PARAMS ((bfd *, flagword)); +. bfd_boolean (*_bfd_set_private_flags) (bfd *, flagword); . . {* Called to print private BFD data. *} -. bfd_boolean (*_bfd_print_private_bfd_data) PARAMS ((bfd *, PTR)); +. bfd_boolean (*_bfd_print_private_bfd_data) (bfd *, void *); . . {* Core file entry points. *} .#define BFD_JUMP_TABLE_CORE(NAME) \ -.CONCAT2 (NAME,_core_file_failing_command), \ -.CONCAT2 (NAME,_core_file_failing_signal), \ -.CONCAT2 (NAME,_core_file_matches_executable_p) -. char * (*_core_file_failing_command) PARAMS ((bfd *)); -. int (*_core_file_failing_signal) PARAMS ((bfd *)); -. bfd_boolean (*_core_file_matches_executable_p) PARAMS ((bfd *, bfd *)); +. NAME##_core_file_failing_command, \ +. NAME##_core_file_failing_signal, \ +. NAME##_core_file_matches_executable_p +. +. char * (*_core_file_failing_command) (bfd *); +. int (*_core_file_failing_signal) (bfd *); +. bfd_boolean (*_core_file_matches_executable_p) (bfd *, bfd *); . . {* Archive entry points. *} .#define BFD_JUMP_TABLE_ARCHIVE(NAME) \ -.CONCAT2 (NAME,_slurp_armap), \ -.CONCAT2 (NAME,_slurp_extended_name_table), \ -.CONCAT2 (NAME,_construct_extended_name_table), \ -.CONCAT2 (NAME,_truncate_arname), \ -.CONCAT2 (NAME,_write_armap), \ -.CONCAT2 (NAME,_read_ar_hdr), \ -.CONCAT2 (NAME,_openr_next_archived_file), \ -.CONCAT2 (NAME,_get_elt_at_index), \ -.CONCAT2 (NAME,_generic_stat_arch_elt), \ -.CONCAT2 (NAME,_update_armap_timestamp) -. bfd_boolean (*_bfd_slurp_armap) PARAMS ((bfd *)); -. bfd_boolean (*_bfd_slurp_extended_name_table) PARAMS ((bfd *)); +. NAME##_slurp_armap, \ +. NAME##_slurp_extended_name_table, \ +. NAME##_construct_extended_name_table, \ +. NAME##_truncate_arname, \ +. NAME##_write_armap, \ +. NAME##_read_ar_hdr, \ +. NAME##_openr_next_archived_file, \ +. NAME##_get_elt_at_index, \ +. NAME##_generic_stat_arch_elt, \ +. NAME##_update_armap_timestamp +. +. bfd_boolean (*_bfd_slurp_armap) (bfd *); +. bfd_boolean (*_bfd_slurp_extended_name_table) (bfd *); . bfd_boolean (*_bfd_construct_extended_name_table) -. PARAMS ((bfd *, char **, bfd_size_type *, const char **)); -. void (*_bfd_truncate_arname) PARAMS ((bfd *, const char *, char *)); +. (bfd *, char **, bfd_size_type *, const char **); +. void (*_bfd_truncate_arname) (bfd *, const char *, char *); . bfd_boolean (*write_armap) -. PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int)); -. PTR (*_bfd_read_ar_hdr_fn) PARAMS ((bfd *)); -. bfd * (*openr_next_archived_file) PARAMS ((bfd *, bfd *)); -.#define bfd_get_elt_at_index(b,i) BFD_SEND(b, _bfd_get_elt_at_index, (b,i)) -. bfd * (*_bfd_get_elt_at_index) PARAMS ((bfd *, symindex)); -. int (*_bfd_stat_arch_elt) PARAMS ((bfd *, struct stat *)); -. bfd_boolean (*_bfd_update_armap_timestamp) PARAMS ((bfd *)); +. (bfd *, unsigned int, struct orl *, unsigned int, int); +. void * (*_bfd_read_ar_hdr_fn) (bfd *); +. bfd * (*openr_next_archived_file) (bfd *, bfd *); +.#define bfd_get_elt_at_index(b,i) BFD_SEND (b, _bfd_get_elt_at_index, (b,i)) +. bfd * (*_bfd_get_elt_at_index) (bfd *, symindex); +. int (*_bfd_stat_arch_elt) (bfd *, struct stat *); +. bfd_boolean (*_bfd_update_armap_timestamp) (bfd *); . . {* Entry points used for symbols. *} .#define BFD_JUMP_TABLE_SYMBOLS(NAME) \ -.CONCAT2 (NAME,_get_symtab_upper_bound), \ -.CONCAT2 (NAME,_get_symtab), \ -.CONCAT2 (NAME,_make_empty_symbol), \ -.CONCAT2 (NAME,_print_symbol), \ -.CONCAT2 (NAME,_get_symbol_info), \ -.CONCAT2 (NAME,_bfd_is_local_label_name), \ -.CONCAT2 (NAME,_get_lineno), \ -.CONCAT2 (NAME,_find_nearest_line), \ -.CONCAT2 (NAME,_bfd_make_debug_symbol), \ -.CONCAT2 (NAME,_read_minisymbols), \ -.CONCAT2 (NAME,_minisymbol_to_symbol) -. long (*_bfd_get_symtab_upper_bound) PARAMS ((bfd *)); -. long (*_bfd_canonicalize_symtab) PARAMS ((bfd *, -. struct symbol_cache_entry **)); +. NAME##_get_symtab_upper_bound, \ +. NAME##_get_symtab, \ +. NAME##_make_empty_symbol, \ +. NAME##_print_symbol, \ +. NAME##_get_symbol_info, \ +. NAME##_bfd_is_local_label_name, \ +. NAME##_get_lineno, \ +. NAME##_find_nearest_line, \ +. NAME##_bfd_make_debug_symbol, \ +. NAME##_read_minisymbols, \ +. NAME##_minisymbol_to_symbol +. +. long (*_bfd_get_symtab_upper_bound) (bfd *); +. long (*_bfd_canonicalize_symtab) +. (bfd *, struct symbol_cache_entry **); . struct symbol_cache_entry * -. (*_bfd_make_empty_symbol) PARAMS ((bfd *)); +. (*_bfd_make_empty_symbol) (bfd *); . void (*_bfd_print_symbol) -. PARAMS ((bfd *, PTR, struct symbol_cache_entry *, bfd_print_symbol_type)); -.#define bfd_print_symbol(b,p,s,e) BFD_SEND(b, _bfd_print_symbol, (b,p,s,e)) +. (bfd *, void *, struct symbol_cache_entry *, bfd_print_symbol_type); +.#define bfd_print_symbol(b,p,s,e) BFD_SEND (b, _bfd_print_symbol, (b,p,s,e)) . void (*_bfd_get_symbol_info) -. PARAMS ((bfd *, struct symbol_cache_entry *, symbol_info *)); -.#define bfd_get_symbol_info(b,p,e) BFD_SEND(b, _bfd_get_symbol_info, (b,p,e)) -. bfd_boolean (*_bfd_is_local_label_name) PARAMS ((bfd *, const char *)); +. (bfd *, struct symbol_cache_entry *, symbol_info *); +.#define bfd_get_symbol_info(b,p,e) BFD_SEND (b, _bfd_get_symbol_info, (b,p,e)) +. bfd_boolean (*_bfd_is_local_label_name) (bfd *, const char *); . -. alent * (*_get_lineno) PARAMS ((bfd *, struct symbol_cache_entry *)); +. alent * (*_get_lineno) (bfd *, struct symbol_cache_entry *); . bfd_boolean (*_bfd_find_nearest_line) -. PARAMS ((bfd *, struct sec *, struct symbol_cache_entry **, bfd_vma, -. const char **, const char **, unsigned int *)); +. (bfd *, struct sec *, struct symbol_cache_entry **, bfd_vma, +. const char **, const char **, unsigned int *); . {* Back-door to allow format-aware applications to create debug symbols . while using BFD for everything else. Currently used by the assembler . when creating COFF files. *} . asymbol * (*_bfd_make_debug_symbol) -. PARAMS ((bfd *, void *, unsigned long size)); +. (bfd *, void *, unsigned long size); .#define bfd_read_minisymbols(b, d, m, s) \ . BFD_SEND (b, _read_minisymbols, (b, d, m, s)) . long (*_read_minisymbols) -. PARAMS ((bfd *, bfd_boolean, PTR *, unsigned int *)); +. (bfd *, bfd_boolean, void **, unsigned int *); .#define bfd_minisymbol_to_symbol(b, d, m, f) \ . BFD_SEND (b, _minisymbol_to_symbol, (b, d, m, f)) . asymbol * (*_minisymbol_to_symbol) -. PARAMS ((bfd *, bfd_boolean, const PTR, asymbol *)); +. (bfd *, bfd_boolean, const void *, asymbol *); . . {* Routines for relocs. *} .#define BFD_JUMP_TABLE_RELOCS(NAME) \ -.CONCAT2 (NAME,_get_reloc_upper_bound), \ -.CONCAT2 (NAME,_canonicalize_reloc), \ -.CONCAT2 (NAME,_bfd_reloc_type_lookup) -. long (*_get_reloc_upper_bound) PARAMS ((bfd *, sec_ptr)); +. NAME##_get_reloc_upper_bound, \ +. NAME##_canonicalize_reloc, \ +. NAME##_bfd_reloc_type_lookup +. +. long (*_get_reloc_upper_bound) (bfd *, sec_ptr); . long (*_bfd_canonicalize_reloc) -. PARAMS ((bfd *, sec_ptr, arelent **, struct symbol_cache_entry **)); +. (bfd *, sec_ptr, arelent **, struct symbol_cache_entry **); . {* See documentation on reloc types. *} . reloc_howto_type * -. (*reloc_type_lookup) PARAMS ((bfd *, bfd_reloc_code_real_type)); +. (*reloc_type_lookup) (bfd *, bfd_reloc_code_real_type); . . {* Routines used when writing an object file. *} .#define BFD_JUMP_TABLE_WRITE(NAME) \ -.CONCAT2 (NAME,_set_arch_mach), \ -.CONCAT2 (NAME,_set_section_contents) +. NAME##_set_arch_mach, \ +. NAME##_set_section_contents +. . bfd_boolean (*_bfd_set_arch_mach) -. PARAMS ((bfd *, enum bfd_architecture, unsigned long)); +. (bfd *, enum bfd_architecture, unsigned long); . bfd_boolean (*_bfd_set_section_contents) -. PARAMS ((bfd *, sec_ptr, PTR, file_ptr, bfd_size_type)); +. (bfd *, sec_ptr, void *, file_ptr, bfd_size_type); . . {* Routines used by the linker. *} .#define BFD_JUMP_TABLE_LINK(NAME) \ -.CONCAT2 (NAME,_sizeof_headers), \ -.CONCAT2 (NAME,_bfd_get_relocated_section_contents), \ -.CONCAT2 (NAME,_bfd_relax_section), \ -.CONCAT2 (NAME,_bfd_link_hash_table_create), \ -.CONCAT2 (NAME,_bfd_link_hash_table_free), \ -.CONCAT2 (NAME,_bfd_link_add_symbols), \ -.CONCAT2 (NAME,_bfd_link_just_syms), \ -.CONCAT2 (NAME,_bfd_final_link), \ -.CONCAT2 (NAME,_bfd_link_split_section), \ -.CONCAT2 (NAME,_bfd_gc_sections), \ -.CONCAT2 (NAME,_bfd_merge_sections), \ -.CONCAT2 (NAME,_bfd_discard_group) -. int (*_bfd_sizeof_headers) PARAMS ((bfd *, bfd_boolean)); +. NAME##_sizeof_headers, \ +. NAME##_bfd_get_relocated_section_contents, \ +. NAME##_bfd_relax_section, \ +. NAME##_bfd_link_hash_table_create, \ +. NAME##_bfd_link_hash_table_free, \ +. NAME##_bfd_link_add_symbols, \ +. NAME##_bfd_link_just_syms, \ +. NAME##_bfd_final_link, \ +. NAME##_bfd_link_split_section, \ +. NAME##_bfd_gc_sections, \ +. NAME##_bfd_merge_sections, \ +. NAME##_bfd_discard_group +. +. int (*_bfd_sizeof_headers) (bfd *, bfd_boolean); . bfd_byte * (*_bfd_get_relocated_section_contents) -. PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *, -. bfd_byte *, bfd_boolean, struct symbol_cache_entry **)); +. (bfd *, struct bfd_link_info *, struct bfd_link_order *, +. bfd_byte *, bfd_boolean, struct symbol_cache_entry **); . . bfd_boolean (*_bfd_relax_section) -. PARAMS ((bfd *, struct sec *, struct bfd_link_info *, bfd_boolean *)); +. (bfd *, struct sec *, struct bfd_link_info *, bfd_boolean *); . . {* Create a hash table for the linker. Different backends store . different information in this table. *} . struct bfd_link_hash_table * -. (*_bfd_link_hash_table_create) PARAMS ((bfd *)); +. (*_bfd_link_hash_table_create) (bfd *); . . {* Release the memory associated with the linker hash table. *} -. void (*_bfd_link_hash_table_free) -. PARAMS ((struct bfd_link_hash_table *)); +. void (*_bfd_link_hash_table_free) (struct bfd_link_hash_table *); . . {* Add symbols from this object file into the hash table. *} -. bfd_boolean (*_bfd_link_add_symbols) -. PARAMS ((bfd *, struct bfd_link_info *)); +. bfd_boolean (*_bfd_link_add_symbols) (bfd *, struct bfd_link_info *); . . {* Indicate that we are only retrieving symbol values from this section. *} -. void (*_bfd_link_just_syms) -. PARAMS ((asection *, struct bfd_link_info *)); +. void (*_bfd_link_just_syms) (asection *, struct bfd_link_info *); . . {* Do a link based on the link_order structures attached to each . section of the BFD. *} -. bfd_boolean (*_bfd_final_link) PARAMS ((bfd *, struct bfd_link_info *)); +. bfd_boolean (*_bfd_final_link) (bfd *, struct bfd_link_info *); . . {* Should this section be split up into smaller pieces during linking. *} -. bfd_boolean (*_bfd_link_split_section) PARAMS ((bfd *, struct sec *)); +. bfd_boolean (*_bfd_link_split_section) (bfd *, struct sec *); . . {* Remove sections that are not referenced from the output. *} -. bfd_boolean (*_bfd_gc_sections) PARAMS ((bfd *, struct bfd_link_info *)); +. bfd_boolean (*_bfd_gc_sections) (bfd *, struct bfd_link_info *); . . {* Attempt to merge SEC_MERGE sections. *} -. bfd_boolean (*_bfd_merge_sections) PARAMS ((bfd *, struct bfd_link_info *)); +. bfd_boolean (*_bfd_merge_sections) (bfd *, struct bfd_link_info *); . . {* Discard members of a group. *} -. bfd_boolean (*_bfd_discard_group) PARAMS ((bfd *, struct sec *)); +. bfd_boolean (*_bfd_discard_group) (bfd *, struct sec *); . . {* Routines to handle dynamic symbols and relocs. *} .#define BFD_JUMP_TABLE_DYNAMIC(NAME) \ -.CONCAT2 (NAME,_get_dynamic_symtab_upper_bound), \ -.CONCAT2 (NAME,_canonicalize_dynamic_symtab), \ -.CONCAT2 (NAME,_get_dynamic_reloc_upper_bound), \ -.CONCAT2 (NAME,_canonicalize_dynamic_reloc) +. NAME##_get_dynamic_symtab_upper_bound, \ +. NAME##_canonicalize_dynamic_symtab, \ +. NAME##_get_dynamic_reloc_upper_bound, \ +. NAME##_canonicalize_dynamic_reloc +. . {* Get the amount of memory required to hold the dynamic symbols. *} -. long (*_bfd_get_dynamic_symtab_upper_bound) PARAMS ((bfd *)); +. long (*_bfd_get_dynamic_symtab_upper_bound) (bfd *); . {* Read in the dynamic symbols. *} . long (*_bfd_canonicalize_dynamic_symtab) -. PARAMS ((bfd *, struct symbol_cache_entry **)); +. (bfd *, struct symbol_cache_entry **); . {* Get the amount of memory required to hold the dynamic relocs. *} -. long (*_bfd_get_dynamic_reloc_upper_bound) PARAMS ((bfd *)); +. long (*_bfd_get_dynamic_reloc_upper_bound) (bfd *); . {* Read in the dynamic relocs. *} . long (*_bfd_canonicalize_dynamic_reloc) -. PARAMS ((bfd *, arelent **, struct symbol_cache_entry **)); +. (bfd *, arelent **, struct symbol_cache_entry **); . A pointer to an alternative bfd_target in case the current one is not @@ -475,7 +477,7 @@ to find an alternative output format tha . {* Data for use by back-end routines, which isn't . generic enough to belong in this structure. *} -. PTR backend_data; +. void *backend_data; . .} bfd_target; . @@ -587,8 +589,6 @@ extern const bfd_target bfd_elf64_big_ge extern const bfd_target bfd_elf64_bigmips_vec; extern const bfd_target bfd_elf64_hppa_linux_vec; extern const bfd_target bfd_elf64_hppa_vec; -extern const bfd_target bfd_elf64_ia64_aix_big_vec; -extern const bfd_target bfd_elf64_ia64_aix_little_vec; extern const bfd_target bfd_elf64_ia64_big_vec; extern const bfd_target bfd_elf64_ia64_hpux_big_vec; extern const bfd_target bfd_elf64_ia64_little_vec; @@ -741,6 +741,7 @@ extern const bfd_target ptrace_core_vec; extern const bfd_target sco5_core_vec; extern const bfd_target trad_core_vec; +extern const bfd_target bfd_elf32_am33lin_vec; static const bfd_target * const _bfd_target_vector[] = { #ifdef SELECT_VECS @@ -882,8 +883,6 @@ static const bfd_target * const _bfd_tar &bfd_elf64_bigmips_vec, &bfd_elf64_hppa_linux_vec, &bfd_elf64_hppa_vec, - &bfd_elf64_ia64_aix_big_vec, - &bfd_elf64_ia64_aix_little_vec, &bfd_elf64_ia64_big_vec, &bfd_elf64_ia64_hpux_big_vec, &bfd_elf64_ia64_little_vec, @@ -1059,6 +1058,7 @@ static const bfd_target * const _bfd_tar &w65_vec, &we32kcoff_vec, &z8kcoff_vec, + &bfd_elf32_am33lin_vec, #endif /* not SELECT_VECS */ /* Always support S-records, for convenience. */ @@ -1156,13 +1156,10 @@ static const struct targmatch bfd_target { NULL, NULL } }; -static const bfd_target *find_target PARAMS ((const char *)); - /* Find a target vector, given a name or configuration triplet. */ static const bfd_target * -find_target (name) - const char *name; +find_target (const char *name) { const bfd_target * const *target; const struct targmatch *match; @@ -1203,8 +1200,7 @@ DESCRIPTION */ bfd_boolean -bfd_set_default_target (name) - const char *name; +bfd_set_default_target (const char *name) { const bfd_target *target; @@ -1240,9 +1236,7 @@ DESCRIPTION */ const bfd_target * -bfd_find_target (target_name, abfd) - const char *target_name; - bfd *abfd; +bfd_find_target (const char *target_name, bfd *abfd) { const char *targname; const bfd_target *target; @@ -1288,9 +1282,9 @@ DESCRIPTION */ const char ** -bfd_target_list () +bfd_target_list (void) { - int vec_length= 0; + int vec_length = 0; bfd_size_type amt; #if defined (HOST_HPPAHPUX) && ! defined (__STDC__) /* The native compiler on the HP9000/700 has a bug which causes it @@ -1304,7 +1298,7 @@ bfd_target_list () vec_length++; amt = (vec_length + 1) * sizeof (char **); - name_ptr = name_list = (const char **) bfd_malloc (amt); + name_ptr = name_list = bfd_malloc (amt); if (name_list == NULL) return NULL; @@ -1323,9 +1317,9 @@ FUNCTION bfd_seach_for_target SYNOPSIS - const bfd_target * bfd_search_for_target (int (* search_func) - (const bfd_target *, void *), - void *); + const bfd_target *bfd_search_for_target + (int (*search_func) (const bfd_target *, void *), + void *); DESCRIPTION Return a pointer to the first transfer vector in the list of @@ -1336,15 +1330,14 @@ DESCRIPTION */ const bfd_target * -bfd_search_for_target (search_func, data) - int (* search_func) PARAMS ((const bfd_target * target, void * data)); - void * data; +bfd_search_for_target (int (*search_func) (const bfd_target *, void *), + void *data) { - const bfd_target * const * target; + const bfd_target * const *target; - for (target = bfd_target_vector; * target != NULL; target ++) - if (search_func (* target, data)) - return * target; + for (target = bfd_target_vector; *target != NULL; target ++) + if (search_func (*target, data)) + return *target; return NULL; } diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/versados.c binutils-2.14.90.0.5/bfd/versados.c --- binutils-2.14.90.0.4.1/bfd/versados.c 2002-12-16 12:22:52.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/versados.c 2003-07-23 08:08:09.000000000 -0700 @@ -1,5 +1,5 @@ /* BFD back-end for VERSAdos-E objects. - Copyright 1995, 1996, 1998, 1999, 2000, 2001, 2002 + Copyright 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Written by Steve Chamberlain of Cygnus Support . @@ -23,11 +23,11 @@ /* SUBSECTION - VERSAdos-E relocateable object file format + VERSAdos-E relocatable object file format DESCRIPTION - This module supports reading of VERSAdos relocateable + This module supports reading of VERSAdos relocatable object files. A VERSAdos file looks like contains diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/version.h binutils-2.14.90.0.5/bfd/version.h --- binutils-2.14.90.0.4.1/bfd/version.h 2003-05-23 07:18:52.000000000 -0700 +++ binutils-2.14.90.0.5/bfd/version.h 2003-07-23 08:08:09.000000000 -0700 @@ -1,3 +1,3 @@ -#define BFD_VERSION_DATE 20030523 +#define BFD_VERSION_DATE 20030722 #define BFD_VERSION @bfd_version@ #define BFD_VERSION_STRING @bfd_version_string@ diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/vms.c binutils-2.14.90.0.5/bfd/vms.c --- binutils-2.14.90.0.4.1/bfd/vms.c 2002-12-16 12:22:52.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/vms.c 2003-07-23 08:08:09.000000000 -0700 @@ -1,6 +1,6 @@ /* vms.c -- BFD back-end for VAX (openVMS/VAX) and EVAX (openVMS/Alpha) files. - Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 + Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Written by Klaus K"ampf (kkaempf@rmi.de) @@ -132,7 +132,7 @@ static int vms_sizeof_headers static bfd_byte *vms_bfd_get_relocated_section_contents PARAMS ((bfd *abfd, struct bfd_link_info *link_info, struct bfd_link_order *link_order, bfd_byte *data, - bfd_boolean relocateable, asymbol **symbols)); + bfd_boolean relocatable, asymbol **symbols)); static bfd_boolean vms_bfd_relax_section PARAMS ((bfd *abfd, asection *section, struct bfd_link_info *link_info, bfd_boolean *again)); @@ -1691,17 +1691,17 @@ vms_sizeof_headers (abfd, reloc) static bfd_byte * vms_bfd_get_relocated_section_contents (abfd, link_info, link_order, data, - relocateable, symbols) + relocatable, symbols) bfd *abfd ATTRIBUTE_UNUSED; struct bfd_link_info *link_info ATTRIBUTE_UNUSED; struct bfd_link_order *link_order ATTRIBUTE_UNUSED; bfd_byte *data ATTRIBUTE_UNUSED; - bfd_boolean relocateable ATTRIBUTE_UNUSED; + bfd_boolean relocatable ATTRIBUTE_UNUSED; asymbol **symbols ATTRIBUTE_UNUSED; { #if VMS_DEBUG vms_debug (1, "vms_bfd_get_relocated_section_contents(%p, %p, %p, %p, %s, %p)\n", - abfd, link_info, link_order, data, (relocateable)?"True":"False", symbols); + abfd, link_info, link_order, data, (relocatable)?"True":"False", symbols); #endif return 0; } diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/bfd/xcofflink.c binutils-2.14.90.0.5/bfd/xcofflink.c --- binutils-2.14.90.0.4.1/bfd/xcofflink.c 2002-12-16 12:22:52.000000000 -0800 +++ binutils-2.14.90.0.5/bfd/xcofflink.c 2003-07-23 08:08:09.000000000 -0700 @@ -1,5 +1,5 @@ /* POWER/PowerPC XCOFF linker support. - Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 + Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Written by Ian Lance Taylor , Cygnus Support. @@ -2932,7 +2932,7 @@ bfd_xcoff_size_dynamic_sections (output_ } /* Garbage collect unused sections. */ - if (info->relocateable + if (info->relocatable || ! gc || hentry == NULL || (hentry->root.type != bfd_link_hash_defined @@ -5294,7 +5294,7 @@ xcoff_link_input_bfd (finfo, input_bfd) } else { - if (! finfo->info->relocateable + if (! finfo->info->relocatable && (h->flags & XCOFF_DEF_DYNAMIC) == 0 && (h->flags & XCOFF_IMPORT) == 0) { diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/binutils/ChangeLog binutils-2.14.90.0.5/binutils/ChangeLog --- binutils-2.14.90.0.4.1/binutils/ChangeLog 2003-05-23 07:18:52.000000000 -0700 +++ binutils-2.14.90.0.5/binutils/ChangeLog 2003-07-23 08:08:09.000000000 -0700 @@ -1,3 +1,184 @@ +2003-07-22 Salvador Eduardo Tropea + + * objdump.c: New command line option --debugging-tags. + * doc/binutils.texi: Document new command line option. + * prdbg.c: Code to print the debug info as tags compatible + with ctags. + * budbg.h: Adjust prototype. + * NEWS: Mention new switch + +2003-07-18 Nick Clifton + + * objdump.c (main) :Accept multiple -M switch. + * doc/binutils.texi: Document that multiple -M switches are + accepted and that a single -M switch can contain comma + separated options. + +2003-07-17 Nick Clifton + + * objdump.c (main): Issue a warning message if multiple -M + switches are used. + + * doc/binutils.texi (objdump): Update documentation about -M + option. + +2003-07-17 Nick Clifton + + * po/es.po: New Spanish translation. + +2003-07-11 Alan Modra + + * po/binutils.pot: Regenerate. + +2003-07-05 Christopher Faylor + + * dlltool.c (prefix_encode): Use a fixed length for alpha. + +2003-07-04 Christopher Faylor + + * dlltool.c (prefix_encode): New function. Encode temp file prefix + from pid. + (dlltmp): Pass address of pointer being alloced or suffer neverending + mallocs. + (make_one_lib_file): Allocate enough space for new longer stub names. + (gen_lib_file): Ditto. + (main): Generate the temp file prefix from the pid if prefix was not + specified on the command line. + +2003-07-04 Nick Clifton + + * readelf.c (get_data): Print (unsigned) hex values for size and + offset in error messages. + (process_section_headers): If the string table could not be + allocated, do not continue. + +2003-07-01 Jakub Jelinek + + * readelf.c (dynamic_segment_ia64_val): Print address and newline + for sections by default. Comment fix. + +2003-06-28 Danny Smith + + * rcparse.y (res_text_field): New res_id variable. + (res_null_text): New static const struct res_id object, + with empty unicode name field. + (control): Pop parsing of optresidc up one level. Set + res_text_field to $2 except for controls which do not accept + a text field. Set res_text_field to res_null_text for the + special cases (viz. COMBOBOX, EDITTEXT, LISTBOX, SCROLLBAR). + (control_params): Adjust to use res_text_field rather + than optresidc. + (COMBOBOX): Add comment about discrepency between documented + vs. observed default style. + * resrc.c (define_control): Make first param const. + * windres.h (define_control): Adjust prototype. + +2003-06-27 Nick Clifton + + * objcopy.c (copy_object): Replace call to + bfd_create_gnu_debuglink_section with seperate calls to + bfd_add_gnu_debuglink_section and + bfd_fill_in_gnu_debuglink_section, seperated by a walk over the + symbol tables. + +2003-06-26 Roland McGrath + + * readelf.c (loadaddr): Variable removed. + (dynamic_info, version_info): Fix type long -> bfd_vma. + (program_headers): New variable. + (get_program_headers): New function, broken out of + process_program_headers. + (process_program_headers): Call it. Don't set `loadaddr'. + (slurp_ia64_unwind_table): Use get_program_headers. + (process_corefile_note_segments): Likewise. + (offset_from_vma): New function. + (process_relocs, process_dynamic_segment): Call that instead of + subtracting `loadaddr'. + (process_version_sections, process_symbol_table): Likewise. + (process_mips_specific): Likewise. + +2003-06-26 Nick Clifton + + * objcopy (enum strip_action): Add STRIP_NONDEBUG. + (OPTION_ONLY_KEEP_DEBUG): New. + (strip_options): Add --only-keep-debug. + (copy_options): Likewise. + (is_strip_section): Invert return value if STRIP_NONDEBUG is + active. + (copy_object): Do not copy private data when STRIP_NONDEBUG is + active. + (setup_section): Likewise. + (strip_main): Handle --only-keep-debug. + (copy_main): Likewise. + * NEWS: Mention new switch + * doc/binutils.texi: Document new switch. + +2003-06-25 Alan Modra + + * NEWS: Correct spelling of "relocatable". + * objdump.c: Likewise. + * sysroff.info: Likewise. + +2003-06-19 Nick Clifton + + * readelf.c (print_vma): When printing DEC_5 values, if the + number is bigger than 99999 switch to using hexadecimal + notation. + +2003-06-11 Nick Clifton + + * objcopy.c (gnu_debuglink_filename): New variable. + (OPTION_ADD_GNU_DEBUGLINK): New switch + (copy_options): Describe --add-gnu-debuglink switch. + Mention that --strip-debug removes sections as well. + (is_strip_section): Process the sections removed and kept + lists before checking for debugging sections. + (add_redefine_syms_file): Make function static. + (copy_object): Use is_strip_section. + Check to see if a .gnu_debuglink section should be added. If + so, call bfd_add_gnu_debuglink. + (setup_section): Use is_strip_section. + (copy_section): Use is_strip_section. + (copy_main): Handle OPTION_ADD_GNU_DEBUGLINK. + * NEWS: Mention new objcopy switch. + * doc/binutils.texi: Document new switch. + +2003-06-11 H.J. Lu + + * po/Make-in (DESTDIR): New. + (install-data-yes): Support $(DESTDIR). + (uninstall): Likewise. + +2003-06-11 Alan Modra + + * Makefile.in: Regenerate. + +2003-05-23 Jakub Jelinek + + * readelf.c (get_segment_type): Handle PT_GNU_STACK. + +2003-06-03 Elias Athanasopoulos + + * NEWS: Document the new BSD/POSIX single-character mapping for + .comment/.note sections. + +2003-06-02 Chris Demetriou + Jason Thorpe + + * objcopy.c (redefine_list_append): Add an argument that + indicates the context from which this function is being + called. Change all callers. + (copy_options): Add a new option, --redefine-syms. + (copy_usage): Document new option. + (copy_main): Handle the --redefine-syms option. + * doc/binutils.text (objcopy): Document new option. + +2003-05-31 Richard Henderson + + * readelf.c (byte_get_signed): New. + (get_encoded_value): New. + (display_debug_frames): Use it. Always pre-process opcodes. + 2003-05-20 Michal Ludvig * readelf.c (display_debug_frames): Print both registers diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/binutils/MAINTAINERS binutils-2.14.90.0.5/binutils/MAINTAINERS --- binutils-2.14.90.0.4.1/binutils/MAINTAINERS 2003-05-15 13:42:25.000000000 -0700 +++ binutils-2.14.90.0.5/binutils/MAINTAINERS 2003-07-23 08:08:09.000000000 -0700 @@ -75,6 +75,7 @@ responsibility among the other maintaine M68k Ben Elliston M88k Ben Elliston MIPS Eric Christopher + MIPS Thiemo Seufer MMIX Hans-Peter Nilsson MN10300 Eric Christopher MN10300 Alexandre Oliva diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/binutils/Makefile.in binutils-2.14.90.0.5/binutils/Makefile.in --- binutils-2.14.90.0.4.1/binutils/Makefile.in 2003-05-05 14:46:47.000000000 -0700 +++ binutils-2.14.90.0.5/binutils/Makefile.in 2003-07-23 08:08:09.000000000 -0700 @@ -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 @@ -442,7 +442,7 @@ configure.in deflex.c defparse.c nlmhead DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) -TAR = gtar +TAR = tar GZIP_ENV = --best SOURCES = $(nlmconv_SOURCES) $(srconv_SOURCES) $(sysdump_SOURCES) $(coffdump_SOURCES) $(dlltool_SOURCES) $(windres_SOURCES) $(dllwrap_SOURCES) $(size_SOURCES) $(objdump_SOURCES) $(ar_SOURCES) $(strings_SOURCES) $(ranlib_SOURCES) $(objcopy_SOURCES) $(addr2line_SOURCES) $(readelf_SOURCES) $(nm_new_SOURCES) $(strip_new_SOURCES) $(cxxfilt_SOURCES) OBJECTS = $(nlmconv_OBJECTS) $(srconv_OBJECTS) $(sysdump_OBJECTS) $(coffdump_OBJECTS) $(dlltool_OBJECTS) $(windres_OBJECTS) $(dllwrap_OBJECTS) $(size_OBJECTS) $(objdump_OBJECTS) $(ar_OBJECTS) $(strings_OBJECTS) $(ranlib_OBJECTS) $(objcopy_OBJECTS) $(addr2line_OBJECTS) $(readelf_OBJECTS) $(nm_new_OBJECTS) $(strip_new_OBJECTS) $(cxxfilt_OBJECTS) @@ -870,7 +870,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 "arlex.cdeflex.crclex.carparse.harparse.cdefparse.hdefparse.cnlmheader.hnlmheader.crcparse.hrcparse.c" || rm -f arlex.c deflex.c rclex.c arparse.h arparse.c defparse.h defparse.c nlmheader.h nlmheader.c rcparse.h rcparse.c mostlyclean-am: mostlyclean-hdr mostlyclean-binPROGRAMS \ mostlyclean-noinstPROGRAMS mostlyclean-compile \ mostlyclean-libtool mostlyclean-tags \ diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/binutils/NEWS binutils-2.14.90.0.5/binutils/NEWS --- binutils-2.14.90.0.4.1/binutils/NEWS 2003-05-05 14:46:47.000000000 -0700 +++ binutils-2.14.90.0.5/binutils/NEWS 2003-07-23 08:08:09.000000000 -0700 @@ -1,5 +1,22 @@ -*- text -*- +* objdump now accepts --debugging-tags to print the debug information in a + format compatible with ctags tool. + +* objcopy and strip now accept --only-keep-debug to create a file containing + those sections that would be stripped out by --strip-debug. The idea is that + this can be used in conjunction with the --add-gnu-debuglink switch to create + a two part program distribution - one a stripped executable and the other the + debugging info. + +* objcopy now accepts --add-gnu-debuglink= to insert a .gnu_debuglink + section into a (presumably stripped) executable. This allows the debug + information for the file to be held in a seperate file. + +* BFD marks the sections .comment and .note as 'n' in the BSD/POSIX + single-character representation. This can be checked by running nm + with the -a switch. + * Added --info switch to objcopy and strip. * Support for Vitesse IQ2000 added by Red Hat. @@ -173,7 +190,7 @@ Changes in binutils 2.6: Changes in binutils 2.5: * Changed objdump -dr to dump the relocs interspersed with the assembly - listing, for a more useful listing of relocateable files. + listing, for a more useful listing of relocatable files. * Changed objdump -d/--disassemble to only disassemble SEC_CODE sections. Added -D/--disassemble-all option to disassemble all sections. diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/binutils/budbg.h binutils-2.14.90.0.5/binutils/budbg.h --- binutils-2.14.90.0.4.1/binutils/budbg.h 2002-12-16 12:22:52.000000000 -0800 +++ binutils-2.14.90.0.5/binutils/budbg.h 2003-07-23 08:08:09.000000000 -0700 @@ -1,5 +1,5 @@ /* budbg.c -- Interfaces to the generic debugging information routines. - Copyright 1995, 1996, 2002 Free Software Foundation, Inc. + Copyright 1995, 1996, 2002, 2003 Free Software Foundation, Inc. Written by Ian Lance Taylor . This file is part of GNU Binutils. @@ -26,13 +26,13 @@ /* Routine used to read generic debugging information. */ -extern PTR read_debugging_info +extern PTR read_debugging_info PARAMS ((bfd *, asymbol **, long)); - + /* Routine used to print generic debugging information. */ extern bfd_boolean print_debugging_info - PARAMS ((FILE *, PTR)); + (FILE *, void *, bfd *, asymbol **, void *, bfd_boolean); /* Routines used to read and write stabs information. */ diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/binutils/dlltool.c binutils-2.14.90.0.5/binutils/dlltool.c --- binutils-2.14.90.0.4.1/binutils/dlltool.c 2003-05-05 14:46:47.000000000 -0700 +++ binutils-2.14.90.0.5/binutils/dlltool.c 2003-07-23 08:08:09.000000000 -0700 @@ -350,7 +350,7 @@ static iheadtype *import_list = NULL; static char *as_name = NULL; static char * as_flags = ""; -static char *tmp_prefix = "d"; +static char *tmp_prefix; static int no_idata4; static int no_idata5; @@ -440,12 +440,12 @@ char *tmp_tail_s_buf; char *tmp_tail_o_buf; char *tmp_stub_buf; -#define TMP_ASM dlltmp (tmp_asm_buf, "%sc.s") -#define TMP_HEAD_S dlltmp (tmp_head_s_buf, "%sh.s") -#define TMP_HEAD_O dlltmp (tmp_head_o_buf, "%sh.o") -#define TMP_TAIL_S dlltmp (tmp_tail_s_buf, "%st.s") -#define TMP_TAIL_O dlltmp (tmp_tail_o_buf, "%st.o") -#define TMP_STUB dlltmp (tmp_stub_buf, "%ss") +#define TMP_ASM dlltmp (&tmp_asm_buf, "%sc.s") +#define TMP_HEAD_S dlltmp (&tmp_head_s_buf, "%sh.s") +#define TMP_HEAD_O dlltmp (&tmp_head_o_buf, "%sh.o") +#define TMP_TAIL_S dlltmp (&tmp_tail_s_buf, "%st.s") +#define TMP_TAIL_O dlltmp (&tmp_tail_o_buf, "%st.o") +#define TMP_STUB dlltmp (&tmp_stub_buf, "%ss") /* This bit of assemly does jmp * .... */ static const unsigned char i386_jtab[] = @@ -751,14 +751,31 @@ static void inform PARAMS ((const char *, ...)); static char * -dlltmp PARAMS ((char *buf, const char *fmt)) +prefix_encode PARAMS ((char *start, unsigned code)) { - if (!buf) - buf = malloc (strlen (tmp_prefix) + 17); - sprintf (buf, fmt, tmp_prefix); + static char alpha[26] = "abcdefghijklmnopqrstuvwxyz"; + static char buf[32]; + char *p; + strcpy (buf, start); + p = strchr (buf, '\0'); + do + *p++ = alpha[code % sizeof (alpha)]; + while ((code /= sizeof (alpha)) != 0); + *p = '\0'; return buf; } +static char * +dlltmp PARAMS ((char **buf, const char *fmt)) +{ + if (!*buf) + { + *buf = malloc (strlen (tmp_prefix) + 64); + sprintf (*buf, fmt, tmp_prefix); + } + return *buf; +} + static void inform VPARAMS ((const char * message, ...)) { @@ -2348,7 +2365,7 @@ make_one_lib_file (exp, i) asymbol * ptrs[NSECS + 4 + EXTRA + 1]; flagword applicable; - char * outname = xmalloc (10); + char * outname = xmalloc (strlen (TMP_STUB) + 10); int oidx = 0; @@ -2925,7 +2942,7 @@ gen_lib_file () { char *name; - name = (char *) alloca (sizeof TMP_STUB + 10); + name = (char *) alloca (strlen (TMP_STUB) + 10); for (i = 0, exp = d_exports; exp; i++, exp = exp->next) { sprintf (name, "%s%05d.o", TMP_STUB, i); @@ -3421,6 +3438,9 @@ main (ac, av) } } + if (!tmp_prefix) + tmp_prefix = prefix_encode ("d", getpid ()); + for (i = 0; mtable[i].type; i++) if (strcmp (mtable[i].type, mname) == 0) break; diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/binutils/doc/binutils.texi binutils-2.14.90.0.5/binutils/doc/binutils.texi --- binutils-2.14.90.0.4.1/binutils/doc/binutils.texi 2003-05-05 14:46:47.000000000 -0700 +++ binutils-2.14.90.0.5/binutils/doc/binutils.texi 2003-07-23 08:08:09.000000000 -0700 @@ -932,21 +932,25 @@ objcopy [@option{-F} @var{bfdname}|@opti [@option{-I} @var{bfdname}|@option{--input-target=}@var{bfdname}] [@option{-O} @var{bfdname}|@option{--output-target=}@var{bfdname}] [@option{-B} @var{bfdarch}|@option{--binary-architecture=}@var{bfdarch}] - [@option{-S}|@option{--strip-all}] [@option{-g}|@option{--strip-debug}] + [@option{-S}|@option{--strip-all}] + [@option{-g}|@option{--strip-debug}] [@option{-K} @var{symbolname}|@option{--keep-symbol=}@var{symbolname}] [@option{-N} @var{symbolname}|@option{--strip-symbol=}@var{symbolname}] [@option{-G} @var{symbolname}|@option{--keep-global-symbol=}@var{symbolname}] [@option{-L} @var{symbolname}|@option{--localize-symbol=}@var{symbolname}] [@option{-W} @var{symbolname}|@option{--weaken-symbol=}@var{symbolname}] - [@option{-x}|@option{--discard-all}] [@option{-X}|@option{--discard-locals}] + [@option{-x}|@option{--discard-all}] + [@option{-X}|@option{--discard-locals}] [@option{-b} @var{byte}|@option{--byte=}@var{byte}] [@option{-i} @var{interleave}|@option{--interleave=}@var{interleave}] [@option{-j} @var{sectionname}|@option{--only-section=}@var{sectionname}] [@option{-R} @var{sectionname}|@option{--remove-section=}@var{sectionname}] [@option{-p}|@option{--preserve-dates}] [@option{--debugging}] - [@option{--gap-fill=}@var{val}] [@option{--pad-to=}@var{address}] - [@option{--set-start=}@var{val}] [@option{--adjust-start=}@var{incr}] + [@option{--gap-fill=}@var{val}] + [@option{--pad-to=}@var{address}] + [@option{--set-start=}@var{val}] + [@option{--adjust-start=}@var{incr}] [@option{--change-addresses=}@var{incr}] [@option{--change-section-address} @var{section}@{=,+,-@}@var{val}] [@option{--change-section-lma} @var{section}@{=,+,-@}@var{val}] @@ -955,9 +959,10 @@ objcopy [@option{-F} @var{bfdname}|@opti [@option{--set-section-flags} @var{section}=@var{flags}] [@option{--add-section} @var{sectionname}=@var{filename}] [@option{--rename-section} @var{oldname}=@var{newname}[,@var{flags}]] - [@option{--change-leading-char} ] [@option{--remove-leading-char}] - [@option{--srec-len=}@var{ival} ] [@option{--srec-forceS3}] - [@option{--redefine-sym} @var{old}=@var{new} ] + [@option{--change-leading-char}] [@option{--remove-leading-char}] + [@option{--srec-len=}@var{ival}] [@option{--srec-forceS3}] + [@option{--redefine-sym} @var{old}=@var{new}] + [@option{--redefine-syms=}@var{filename}] [@option{--weaken}] [@option{--keep-symbols=}@var{filename}] [@option{--strip-symbols=}@var{filename}] @@ -968,6 +973,8 @@ objcopy [@option{-F} @var{bfdname}|@opti [@option{--prefix-symbols=}@var{string}] [@option{--prefix-sections=}@var{string}] [@option{--prefix-alloc-sections=}@var{string}] + [@option{--add-gnu-debuglink=}@var{path-to-file}] + [@option{--only-keep-debug}] [@option{-v}|@option{--verbose}] [@option{-V}|@option{--version}] [@option{--help}] [@option{--info}] @@ -1068,7 +1075,7 @@ Do not copy relocation and symbol inform @item -g @itemx --strip-debug -Do not copy debugging symbols from the source file. +Do not copy debugging symbols or sections from the source file. @item --strip-unneeded Strip all symbols that are not needed for relocation processing. @@ -1284,6 +1291,12 @@ Change the name of a symbol @var{old}, t when one is trying link two things together for which you have no source, and there are name collisions. +@item --redefine-syms=@var{filename} +Apply @option{--redefine-sym} to each symbol pair "@var{old} @var{new}" +listed in the file @var{filename}. @var{filename} is simply a flat file, +with one symbol pair per line. Line comments may be introduced by the hash +character. This option may be given more than once. + @item --weaken Change all global symbols in the file to be weak. This can be useful when building an object which will be linked against other objects using @@ -1337,6 +1350,47 @@ Prefix all section names in the output f Prefix all the names of all allocated sections in the output file with @var{string}. +@item --add-gnu-debuglink=@var{path-to-file} +Creates a .gnu_debuglink section which contains a reference to @var{path-to-file} +and adds it to the output file. + +@item --only-keep-debug +Strip a file, removing any sections that would be stripped by +@option{--strip-debug} and leaving the debugging sections. + +The intention is that this option will be used in conjunction with +@option{--add-gnu-debuglink} to create a two part executable. One a +stripped binary which will occupy less space in RAM and in a +distribution and the second a debugging information file which is only +needed if debugging abilities are required. The suggested procedure +to create these files is as follows: + +@enumerate +@item Link the executable as normal. Assuming that is is called +@code{foo} then... +@item Run @code{objcopy --only-keep-debug foo foo.dbg} to +create a file containing the debugging info. +@item Run @code{objcopy --strip-debug foo} to create a +stripped executable. +@item Run @code{objcopy --add-gnu-debuglink=foo.dbg foo} +to add a link to the debugging info into the stripped executable. +@end enumerate + +Note - the choice of @code{.dbg} as an extension for the debug info +file is arbitrary. Also the @code{--only-keep-debug} step is +optional. You could instead do this: + +@enumerate +@item Link the executable as normal. +@item Copy @code{foo} to @code{foo.full} +@item Run @code{objcopy --strip-debug foo} +@item Run @code{objcopy --add-gnu-debuglink=foo.full foo} +@end enumerate + +ie the file pointed to by the @option{--add-gnu-debuglink} can be the +full executable. It does not have to be a file created by the +@option{--only-keep-debug} switch. + @item -V @itemx --version Show the version number of @command{objcopy}. @@ -1381,6 +1435,7 @@ objdump [@option{-a}|@option{--archive-h [@option{-f}|@option{--file-headers}] [@option{--file-start-context}] [@option{-g}|@option{--debugging}] + [@option{-e}|@option{--debugging-tags}] [@option{-h}|@option{--section-headers}|@option{--headers}] [@option{-i}|@option{--info}] [@option{-j} @var{section}|@option{--section=}@var{section}] @@ -1426,7 +1481,7 @@ object files. The long and short forms of options, shown here as alternatives, are equivalent. At least one option from the list -@option{-a,-d,-D,-f,-g,-G,-h,-H,-p,-r,-R,-S,-t,-T,-V,-x} must be given. +@option{-a,-d,-D,-e,-f,-g,-G,-h,-H,-p,-r,-R,-S,-t,-T,-V,-x} must be given. @table @env @item -a @@ -1482,6 +1537,11 @@ Only certain types of debugging informat Some other types are supported by @command{readelf -w}. @xref{readelf}. +@item -e +@itemx --debugging-tags +Like @option{-g}, but the information is generated in a format compatible +with ctags tool. + @item -d @itemx --disassemble @cindex disassembling object code @@ -1571,7 +1631,9 @@ architectures with the @option{-i} optio @item -M @var{options} @itemx --disassembler-options=@var{options} Pass target specific information to the disassembler. Only supported on -some targets. +some targets. If it is necessary to specify more than one +disassembler option then multiple @option{-M} options can be used or +can be placed together into a comma separated list. If the target is an ARM architecture then this switch can be used to select which register name set is used during disassembler. Specifying @@ -2047,15 +2109,17 @@ and the Info entries for @file{binutils} @smallexample @c man begin SYNOPSIS strip -strip [@option{-F} @var{bfdname} |@option{--target=}@var{bfdname} ] - [@option{-I} @var{bfdname} |@option{--input-target=}@var{bfdname} ] - [@option{-O} @var{bfdname} |@option{--output-target=}@var{bfdname} ] - [@option{-s}|@option{--strip-all}] [@option{-S}|@option{-g}|@option{-d}|@option{--strip-debug}] - [@option{-K} @var{symbolname} |@option{--keep-symbol=}@var{symbolname} ] - [@option{-N} @var{symbolname} |@option{--strip-symbol=}@var{symbolname} ] - [@option{-x}|@option{--discard-all} ] [@option{-X} |@option{--discard-locals}] - [@option{-R} @var{sectionname} |@option{--remove-section=}@var{sectionname} ] - [@option{-o} @var{file} ] [@option{-p}|@option{--preserve-dates}] +strip [@option{-F} @var{bfdname} |@option{--target=}@var{bfdname}] + [@option{-I} @var{bfdname} |@option{--input-target=}@var{bfdname}] + [@option{-O} @var{bfdname} |@option{--output-target=}@var{bfdname}] + [@option{-s}|@option{--strip-all}] + [@option{-S}|@option{-g}|@option{-d}|@option{--strip-debug}] + [@option{-K} @var{symbolname} |@option{--keep-symbol=}@var{symbolname}] + [@option{-N} @var{symbolname} |@option{--strip-symbol=}@var{symbolname}] + [@option{-x}|@option{--discard-all}] [@option{-X} |@option{--discard-locals}] + [@option{-R} @var{sectionname} |@option{--remove-section=}@var{sectionname}] + [@option{-o} @var{file}] [@option{-p}|@option{--preserve-dates}] + [@option{--only-keep-debug}] [@option{-v} |@option{--verbose}] [@option{-V}|@option{--version}] [@option{--help}] [@option{--info}] @var{objfile}@dots{} @@ -2147,6 +2211,43 @@ Remove non-global symbols. Remove compiler-generated local symbols. (These usually start with @samp{L} or @samp{.}.) +@item --only-keep-debug +Strip a file, removing any sections that would be stripped by +@option{--strip-debug} and leaving the debugging sections. + +The intention is that this option will be used in conjunction with +@option{--add-gnu-debuglink} to create a two part executable. One a +stripped binary which will occupy less space in RAM and in a +distribution and the second a debugging information file which is only +needed if debugging abilities are required. The suggested procedure +to create these files is as follows: + +@enumerate +@item Link the executable as normal. Assuming that is is called +@code{foo} then... +@item Run @code{objcopy --only-keep-debug foo foo.dbg} to +create a file containing the debugging info. +@item Run @code{objcopy --strip-debug foo} to create a +stripped executable. +@item Run @code{objcopy --add-gnu-debuglink=foo.dbg foo} +to add a link to the debugging info into the stripped executable. +@end enumerate + +Note - the choice of @code{.dbg} as an extension for the debug info +file is arbitrary. Also the @code{--only-keep-debug} step is +optional. You could instead do this: + +@enumerate +@item Link the executable as normal. +@item Copy @code{foo} to @code{foo.full} +@item Run @code{strip --strip-debug foo} +@item Run @code{objcopy --add-gnu-debuglink=foo.full foo} +@end enumerate + +ie the file pointed to by the @option{--add-gnu-debuglink} can be the +full executable. It does not have to be a file created by the +@option{--only-keep-debug} switch. + @item -V @itemx --version Show the version number for @command{strip}. diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/binutils/objcopy.c binutils-2.14.90.0.5/binutils/objcopy.c --- binutils-2.14.90.0.4.1/binutils/objcopy.c 2003-05-15 13:42:25.000000000 -0700 +++ binutils-2.14.90.0.5/binutils/objcopy.c 2003-07-23 08:08:09.000000000 -0700 @@ -105,11 +105,13 @@ static int copy_main static const char *lookup_sym_redefinition PARAMS((const char *)); static void redefine_list_append - PARAMS ((const char *, const char *)); + PARAMS ((const char *, const char *, const char *)); static const char * find_section_rename PARAMS ((bfd *, sec_ptr, flagword *)); static void add_section_rename PARAMS ((const char *, const char *, flagword)); +static void add_redefine_syms_file + PARAMS ((const char *)); #define RETURN_NONFATAL(s) {bfd_nonfatal (s); status = 1; return;} @@ -130,6 +132,7 @@ enum strip_action STRIP_NONE, /* don't strip */ STRIP_DEBUG, /* strip all debugger symbols */ STRIP_UNNEEDED, /* strip unnecessary symbols */ + STRIP_NONDEBUG, /* Strip everything but debug info. */ STRIP_ALL /* strip all symbols */ }; @@ -217,6 +220,10 @@ struct section_add /* List of sections to add to the output BFD. */ static struct section_add *add_sections; +/* If non-NULL the argument to --add-gnu-debuglink. + This should be the filename to store in the .gnu_debuglink section. */ +static const char * gnu_debuglink_filename = NULL; + /* Whether to convert debugging information. */ static bfd_boolean convert_debugging = FALSE; @@ -263,7 +270,8 @@ static char *prefix_alloc_sections_strin #define OPTION_STRIP_UNNEEDED (OPTION_SET_START + 1) #define OPTION_WEAKEN (OPTION_STRIP_UNNEEDED + 1) #define OPTION_REDEFINE_SYM (OPTION_WEAKEN + 1) -#define OPTION_SREC_LEN (OPTION_REDEFINE_SYM + 1) +#define OPTION_REDEFINE_SYMS (OPTION_REDEFINE_SYM + 1) +#define OPTION_SREC_LEN (OPTION_REDEFINE_SYMS + 1) #define OPTION_SREC_FORCES3 (OPTION_SREC_LEN + 1) #define OPTION_STRIP_SYMBOLS (OPTION_SREC_FORCES3 + 1) #define OPTION_KEEP_SYMBOLS (OPTION_STRIP_SYMBOLS + 1) @@ -276,6 +284,8 @@ static char *prefix_alloc_sections_strin #define OPTION_PREFIX_SECTIONS (OPTION_PREFIX_SYMBOLS + 1) #define OPTION_PREFIX_ALLOC_SECTIONS (OPTION_PREFIX_SECTIONS + 1) #define OPTION_FORMATS_INFO (OPTION_PREFIX_ALLOC_SECTIONS + 1) +#define OPTION_ADD_GNU_DEBUGLINK (OPTION_FORMATS_INFO + 1) +#define OPTION_ONLY_KEEP_DEBUG (OPTION_ADD_GNU_DEBUGLINK + 1) /* Options to handle if running as "strip". */ @@ -289,6 +299,7 @@ static struct option strip_options[] = {"input-format", required_argument, 0, 'I'}, /* Obsolete */ {"input-target", required_argument, 0, 'I'}, {"keep-symbol", required_argument, 0, 'K'}, + {"only-keep-debug", no_argument, 0, OPTION_ONLY_KEEP_DEBUG}, {"output-format", required_argument, 0, 'O'}, /* Obsolete */ {"output-target", required_argument, 0, 'O'}, {"output-file", required_argument, 0, 'o'}, @@ -308,6 +319,7 @@ static struct option strip_options[] = static struct option copy_options[] = { + {"add-gnu-debuglink", required_argument, 0, OPTION_ADD_GNU_DEBUGLINK}, {"add-section", required_argument, 0, OPTION_ADD_SECTION}, {"adjust-start", required_argument, 0, OPTION_CHANGE_START}, {"adjust-vma", required_argument, 0, OPTION_CHANGE_ADDRESSES}, @@ -341,6 +353,7 @@ static struct option copy_options[] = {"localize-symbols", required_argument, 0, OPTION_LOCALIZE_SYMBOLS}, {"no-adjust-warnings", no_argument, 0, OPTION_NO_CHANGE_WARNINGS}, {"no-change-warnings", no_argument, 0, OPTION_NO_CHANGE_WARNINGS}, + {"only-keep-debug", no_argument, 0, OPTION_ONLY_KEEP_DEBUG}, {"only-section", required_argument, 0, 'j'}, {"output-format", required_argument, 0, 'O'}, /* Obsolete */ {"output-target", required_argument, 0, 'O'}, @@ -350,6 +363,7 @@ static struct option copy_options[] = {"prefix-alloc-sections", required_argument, 0, OPTION_PREFIX_ALLOC_SECTIONS}, {"preserve-dates", no_argument, 0, 'p'}, {"redefine-sym", required_argument, 0, OPTION_REDEFINE_SYM}, + {"redefine-syms", required_argument, 0, OPTION_REDEFINE_SYMS}, {"remove-leading-char", no_argument, 0, OPTION_REMOVE_LEADING_CHAR}, {"remove-section", required_argument, 0, 'R'}, {"rename-section", required_argument, 0, OPTION_RENAME_SECTION}, @@ -408,9 +422,10 @@ copy_usage (stream, exit_status) --debugging Convert debugging information, if possible\n\ -p --preserve-dates Copy modified/access timestamps to the output\n\ -j --only-section Only copy section into the output\n\ + --add-gnu-debuglink= Add section .gnu_debuglink linking to \n\ -R --remove-section Remove section from the output\n\ -S --strip-all Remove all symbol and relocation information\n\ - -g --strip-debug Remove all debugging symbols\n\ + -g --strip-debug Remove all debugging symbols & sections\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\ @@ -444,6 +459,8 @@ copy_usage (stream, exit_status) --change-leading-char Force output format's leading character style\n\ --remove-leading-char Remove leading character from global symbols\n\ --redefine-sym = Redefine symbol name to \n\ + --redefine-syms --redefine-sym for all symbol pairs \n\ + listed in \n\ --srec-len Restrict the length of generated Srecords\n\ --srec-forceS3 Restrict the type of generated Srecords to S3\n\ --strip-symbols -N for all symbols listed in \n\ @@ -483,7 +500,7 @@ strip_usage (stream, exit_status) -p --preserve-dates Copy modified/access timestamps to the output\n\ -R --remove-section= Remove section from the output\n\ -s --strip-all Remove all symbol and relocation information\n\ - -g -S -d --strip-debug Remove all debugging symbols\n\ + -g -S -d --strip-debug Remove all debugging symbols & sections\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\ @@ -748,25 +765,32 @@ is_strip_section (abfd, sec) bfd *abfd ATTRIBUTE_UNUSED; asection *sec; { - struct section_list *p; + if (sections_removed || sections_copied) + { + struct section_list *p; + + p = find_section_list (bfd_get_section_name (abfd, sec), FALSE); + + if (sections_removed && p != NULL && p->remove) + return TRUE; + if (sections_copied && (p == NULL || ! p->copy)) + return TRUE; + } - if ((bfd_get_section_flags (abfd, sec) & SEC_DEBUGGING) != 0 - && (strip_symbols == STRIP_DEBUG + if ((bfd_get_section_flags (abfd, sec) & SEC_DEBUGGING) != 0) + { + if (strip_symbols == STRIP_DEBUG || strip_symbols == STRIP_UNNEEDED || strip_symbols == STRIP_ALL || discard_locals == LOCALS_ALL - || convert_debugging)) - return TRUE; + || convert_debugging) + return TRUE; - if (! sections_removed && ! sections_copied) - return FALSE; + if (strip_symbols == STRIP_NONDEBUG) + return FALSE; + } - p = find_section_list (bfd_get_section_name (abfd, sec), FALSE); - if (sections_removed && p != NULL && p->remove) - return TRUE; - if (sections_copied && (p == NULL || ! p->copy)) - return TRUE; - return FALSE; + return strip_symbols == STRIP_NONDEBUG ? TRUE : FALSE; } /* Choose which symbol entries to copy; put the result in OSYMS. @@ -940,7 +964,8 @@ lookup_sym_redefinition (source) /* Add a node to a symbol redefine list. */ static void -redefine_list_append (source, target) +redefine_list_append (cause, source, target) + const char *cause; const char *source; const char *target; { @@ -952,13 +977,11 @@ redefine_list_append (source, target) { if (strcmp (source, list->source) == 0) fatal (_("%s: Multiple redefinition of symbol \"%s\""), - "--redefine-sym", - source); + cause, source); if (strcmp (target, list->target) == 0) fatal (_("%s: Symbol \"%s\" is target of more than one redefinition"), - "--redefine-sym", - target); + cause, target); } new_node = (struct redefine_node *) xmalloc (sizeof (struct redefine_node)); @@ -970,6 +993,116 @@ redefine_list_append (source, target) *p = new_node; } +/* Handle the --redefine-syms option. Read lines containing "old new" + from the file, and add them to the symbol redefine list. */ + +static void +add_redefine_syms_file (filename) + const char *filename; +{ + FILE *file; + char *buf; + size_t bufsize, len, outsym_off; + int c, lineno; + + file = fopen (filename, "r"); + if (file == (FILE *) NULL) + fatal (_("couldn't open symbol redefinition file %s (error: %s)"), + filename, strerror (errno)); + + bufsize = 100; + buf = (char *) xmalloc (bufsize); + + lineno = 1; + c = getc (file); + len = 0; + outsym_off = 0; + while (c != EOF) + { + /* Collect the input symbol name. */ + while (! IS_WHITESPACE (c) && ! IS_LINE_TERMINATOR (c) && c != EOF) + { + if (c == '#') + goto comment; + buf[len++] = c; + if (len >= bufsize) + { + bufsize *= 2; + buf = xrealloc (buf, bufsize); + } + c = getc (file); + } + buf[len++] = '\0'; + if (c == EOF) + break; + + /* Eat white space between the symbol names. */ + while (IS_WHITESPACE (c)) + c = getc (file); + if (c == '#' || IS_LINE_TERMINATOR (c)) + goto comment; + if (c == EOF) + break; + + /* Collect the output symbol name. */ + outsym_off = len; + while (! IS_WHITESPACE (c) && ! IS_LINE_TERMINATOR (c) && c != EOF) + { + if (c == '#') + goto comment; + buf[len++] = c; + if (len >= bufsize) + { + bufsize *= 2; + buf = xrealloc (buf, bufsize); + } + c = getc (file); + } + buf[len++] = '\0'; + if (c == EOF) + break; + + /* Eat white space at end of line. */ + while (! IS_LINE_TERMINATOR(c) && c != EOF && IS_WHITESPACE (c)) + c = getc (file); + if (c == '#') + goto comment; + /* Handle \r\n. */ + if ((c == '\r' && (c = getc (file)) == '\n') + || c == '\n' || c == EOF) + { + end_of_line: + /* Append the redefinition to the list. */ + if (buf[0] != '\0') + redefine_list_append (filename, &buf[0], &buf[outsym_off]); + + lineno++; + len = 0; + outsym_off = 0; + if (c == EOF) + break; + c = getc (file); + continue; + } + else + fatal (_("%s: garbage at end of line %d"), filename, lineno); + comment: + if (len != 0 && (outsym_off == 0 || outsym_off == len)) + fatal (_("%s: missing new symbol name at line %d"), filename, lineno); + buf[len++] = '\0'; + + /* Eat the rest of the line and finish it. */ + while (c != '\n' && c != EOF) + c = getc (file); + goto end_of_line; + } + + if (len != 0) + fatal (_("%s: premature end of file at line %d"), filename, lineno); + + free (buf); +} + /* Keep only every `copy_byte'th byte in MEMHUNK, which is *SIZE bytes long. Adjust *SIZE. */ @@ -999,6 +1132,7 @@ copy_object (ibfd, obfd) bfd_vma start; long symcount; asection **osections = NULL; + asection * gnu_debuglink_section = NULL; bfd_size_type *gaps = NULL; bfd_size_type max_gap = 0; long symsize; @@ -1069,6 +1203,8 @@ copy_object (ibfd, obfd) for (padd = add_sections; padd != NULL; padd = padd->next) { + flagword flags; + padd->section = bfd_make_section (obfd, padd->name); if (padd->section == NULL) { @@ -1077,45 +1213,52 @@ copy_object (ibfd, obfd) status = 1; return; } - else - { - flagword flags; - - if (! bfd_set_section_size (obfd, padd->section, padd->size)) - RETURN_NONFATAL (bfd_get_filename (obfd)); - pset = find_section_list (padd->name, FALSE); - if (pset != NULL) - pset->used = TRUE; + if (! bfd_set_section_size (obfd, padd->section, padd->size)) + RETURN_NONFATAL (bfd_get_filename (obfd)); - if (pset != NULL && pset->set_flags) - flags = pset->flags | SEC_HAS_CONTENTS; - else - flags = SEC_HAS_CONTENTS | SEC_READONLY | SEC_DATA; + pset = find_section_list (padd->name, FALSE); + if (pset != NULL) + pset->used = TRUE; - if (! bfd_set_section_flags (obfd, padd->section, flags)) - RETURN_NONFATAL (bfd_get_filename (obfd)); + if (pset != NULL && pset->set_flags) + flags = pset->flags | SEC_HAS_CONTENTS; + else + flags = SEC_HAS_CONTENTS | SEC_READONLY | SEC_DATA; - if (pset != NULL) - { - if (pset->change_vma != CHANGE_IGNORE) - if (! bfd_set_section_vma (obfd, padd->section, pset->vma_val)) - RETURN_NONFATAL (bfd_get_filename (obfd)); + if (! bfd_set_section_flags (obfd, padd->section, flags)) + RETURN_NONFATAL (bfd_get_filename (obfd)); - if (pset->change_lma != CHANGE_IGNORE) - { - padd->section->lma = pset->lma_val; + if (pset != NULL) + { + if (pset->change_vma != CHANGE_IGNORE) + if (! bfd_set_section_vma (obfd, padd->section, pset->vma_val)) + RETURN_NONFATAL (bfd_get_filename (obfd)); - if (! bfd_set_section_alignment - (obfd, padd->section, - bfd_section_alignment (obfd, padd->section))) - RETURN_NONFATAL (bfd_get_filename (obfd)); - } + if (pset->change_lma != CHANGE_IGNORE) + { + padd->section->lma = pset->lma_val; + + if (! bfd_set_section_alignment + (obfd, padd->section, + bfd_section_alignment (obfd, padd->section))) + RETURN_NONFATAL (bfd_get_filename (obfd)); } } } } + if (gnu_debuglink_filename != NULL) + { + gnu_debuglink_section = bfd_create_gnu_debuglink_section (obfd, gnu_debuglink_filename); + + if (gnu_debuglink_section == NULL) + { + fprintf (stderr, "UGG\n"); + RETURN_NONFATAL (gnu_debuglink_filename); + } + } + if (gap_fill_set || pad_to_set) { asection **set; @@ -1216,6 +1359,7 @@ copy_object (ibfd, obfd) if (strip_symbols == STRIP_DEBUG || strip_symbols == STRIP_ALL || strip_symbols == STRIP_UNNEEDED + || strip_symbols == STRIP_NONDEBUG || discard_locals != LOCALS_UNDEF || strip_specific_list != NULL || keep_specific_list != NULL @@ -1275,6 +1419,16 @@ copy_object (ibfd, obfd) } } + if (gnu_debuglink_filename != NULL) + { + if (! bfd_fill_in_gnu_debuglink_section + (obfd, gnu_debuglink_section, gnu_debuglink_filename)) + { + fprintf (stderr, "UGG 2\n"); + RETURN_NONFATAL (gnu_debuglink_filename); + } + } + if (gap_fill_set || pad_to_set) { bfd_byte *buf; @@ -1321,7 +1475,12 @@ copy_object (ibfd, obfd) from the input BFD to the output BFD. This is done last to permit the routine to look at the filtered symbol table, which is important for the ECOFF code at least. */ - if (! bfd_copy_private_bfd_data (ibfd, obfd)) + if (bfd_get_flavour (ibfd) == bfd_target_elf_flavour + && strip_symbols == STRIP_NONDEBUG) + /* Do not copy the private data when creating an ELF format + debug info file. We do not want the program headers. */ + ; + else if (! bfd_copy_private_bfd_data (ibfd, obfd)) { non_fatal (_("%s: error copying private BFD data: %s"), bfd_get_filename (obfd), @@ -1648,23 +1807,13 @@ setup_section (ibfd, isection, obfdarg) const char * name; char *prefix = NULL; - if ((bfd_get_section_flags (ibfd, isection) & SEC_DEBUGGING) != 0 - && (strip_symbols == STRIP_DEBUG - || strip_symbols == STRIP_UNNEEDED - || strip_symbols == STRIP_ALL - || discard_locals == LOCALS_ALL - || convert_debugging)) + if (is_strip_section (ibfd, isection)) return; p = find_section_list (bfd_section_name (ibfd, isection), FALSE); if (p != NULL) p->used = TRUE; - if (sections_removed && p != NULL && p->remove) - return; - if (sections_copied && (p == NULL || ! p->copy)) - return; - /* Get the, possibly new, name of the output section. */ name = find_section_rename (ibfd, isection, & flags); @@ -1759,7 +1908,12 @@ setup_section (ibfd, isection, obfdarg) /* Allow the BFD backend to copy any private data it understands from the input section to the output section. */ - if (!bfd_copy_private_section_data (ibfd, isection, obfd, osection)) + if (bfd_get_flavour (ibfd) == bfd_target_elf_flavour + && strip_symbols == STRIP_NONDEBUG) + /* Do not copy the private data when creating an ELF format + debug info file. We do not want the program headers. */ + ; + else if (!bfd_copy_private_section_data (ibfd, isection, obfd, osection)) { err = _("private data"); goto loser; @@ -1800,31 +1954,21 @@ copy_section (ibfd, isection, obfdarg) if (status != 0) return; - flags = bfd_get_section_flags (ibfd, isection); - if ((flags & SEC_DEBUGGING) != 0 - && (strip_symbols == STRIP_DEBUG - || strip_symbols == STRIP_UNNEEDED - || strip_symbols == STRIP_ALL - || discard_locals == LOCALS_ALL - || convert_debugging)) + if (is_strip_section (ibfd, isection)) return; + flags = bfd_get_section_flags (ibfd, isection); if ((flags & SEC_GROUP) != 0) return; - p = find_section_list (bfd_section_name (ibfd, isection), FALSE); - - if (sections_removed && p != NULL && p->remove) - return; - if (sections_copied && (p == NULL || ! p->copy)) - return; - osection = isection->output_section; size = bfd_get_section_size_before_reloc (isection); if (size == 0 || osection == 0) return; + p = find_section_list (bfd_get_section_name (ibfd, isection), FALSE); + /* Core files do not need to be relocated. */ if (bfd_get_format (obfd) == bfd_core) relsize = 0; @@ -2152,6 +2296,9 @@ strip_main (argc, argv) case OPTION_FORMATS_INFO: formats_info = TRUE; break; + case OPTION_ONLY_KEEP_DEBUG: + strip_symbols = STRIP_NONDEBUG; + break; case 0: /* We've been given a long option. */ break; @@ -2305,6 +2452,14 @@ copy_main (argc, argv) strip_symbols = STRIP_UNNEEDED; break; + case OPTION_ONLY_KEEP_DEBUG: + strip_symbols = STRIP_NONDEBUG; + break; + + case OPTION_ADD_GNU_DEBUGLINK: + gnu_debuglink_filename = optarg; + break; + case 'K': add_specific_symbol (optarg, &keep_specific_list); break; @@ -2547,13 +2702,17 @@ copy_main (argc, argv) target = (char *) xmalloc (len + 1); strcpy (target, nextarg); - redefine_list_append (source, target); + redefine_list_append ("--redefine-sym", source, target); free (source); free (target); } break; + case OPTION_REDEFINE_SYMS: + add_redefine_syms_file (optarg); + break; + case OPTION_SET_SECTION_FLAGS: { const char *s; @@ -2672,7 +2831,8 @@ copy_main (argc, argv) break; case 0: - break; /* we've been given a long option */ + /* We've been given a long option. */ + break; case 'H': case 'h': diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/binutils/objdump.c binutils-2.14.90.0.5/binutils/objdump.c --- binutils-2.14.90.0.4.1/binutils/objdump.c 2003-05-05 14:46:47.000000000 -0700 +++ binutils-2.14.90.0.5/binutils/objdump.c 2003-07-23 08:08:09.000000000 -0700 @@ -74,6 +74,7 @@ static int wide_output; /* -w */ static bfd_vma start_address = (bfd_vma) -1; /* --start-address */ static bfd_vma stop_address = (bfd_vma) -1; /* --stop-address */ static int dump_debugging; /* --debugging */ +static int dump_debugging_tags; /* --debugging-tags */ static bfd_vma adjust_section_vma = 0; /* --adjust-vma */ static int file_start_context = 0; /* --file-start-context */ @@ -208,6 +209,7 @@ usage (stream, status) -S, --source Intermix source code with disassembly\n\ -s, --full-contents Display the full contents of all sections requested\n\ -g, --debugging Display debug information in object file\n\ + -e, --debugging-tags Display debug information using ctags style\n\ -G, --stabs Display (in raw form) any STABS info in the file\n\ -t, --syms Display the contents of the symbol table(s)\n\ -T, --dynamic-syms Display the contents of the dynamic symbol table\n\ @@ -266,6 +268,7 @@ static struct option long_options[]= {"architecture", required_argument, NULL, 'm'}, {"archive-headers", no_argument, NULL, 'a'}, {"debugging", no_argument, NULL, 'g'}, + {"debugging-tags", no_argument, NULL, 'e'}, {"demangle", optional_argument, NULL, 'C'}, {"demangler", required_argument, NULL, OPTION_DEMANGLER}, {"disassemble", no_argument, NULL, 'd'}, @@ -736,7 +739,7 @@ find_symbol_for_address (abfd, sec, vma, == bfd_asymbol_value (sorted_syms[thisplace - 1]))) --thisplace; - /* If the file is relocateable, and the symbol could be from this + /* If the file is relocatable, and the symbol could be from this section, prefer a symbol from this section over symbols from others, even if the other symbol's value might be closer. @@ -2069,15 +2072,17 @@ dump_bfd (abfd) } } - printf (_("\n%s: file format %s\n"), bfd_get_filename (abfd), - abfd->xvec->name); + if (! dump_debugging_tags) + printf (_("\n%s: file format %s\n"), bfd_get_filename (abfd), + abfd->xvec->name); if (dump_ar_hdrs) print_arelt_descr (stdout, abfd, TRUE); if (dump_file_header) dump_bfd_header (abfd); if (dump_private_headers) dump_bfd_private_header (abfd); - putchar ('\n'); + if (! dump_debugging_tags) + putchar ('\n'); if (dump_section_headers) dump_headers (abfd); @@ -2107,7 +2112,8 @@ dump_bfd (abfd) dhandle = read_debugging_info (abfd, syms, symcount); if (dhandle != NULL) { - if (! print_debugging_info (stdout, dhandle)) + if (! print_debugging_info (stdout, dhandle, abfd, syms, demangle, + dump_debugging_tags ? TRUE : FALSE)) { non_fatal (_("%s: printing debugging information failed"), bfd_get_filename (abfd)); @@ -2650,7 +2656,7 @@ main (argc, argv) bfd_init (); set_default_bfd_target (); - while ((c = getopt_long (argc, argv, "pib:m:M:VvCdDlfaHhrRtTxsSj:wE:zgG", + while ((c = getopt_long (argc, argv, "pib:m:M:VvCdDlfaHhrRtTxsSj:wE:zgeG", long_options, (int *) 0)) != EOF) { @@ -2662,7 +2668,11 @@ main (argc, argv) machine = optarg; break; case 'M': - disassembler_options = optarg; + if (disassembler_options) + /* Ignore potential memory leak for now. */ + disassembler_options = concat (disassembler_options, ",", optarg, NULL); + else + disassembler_options = optarg; break; case 'j': if (only == NULL) @@ -2774,6 +2784,12 @@ main (argc, argv) dump_debugging = 1; seenflag = TRUE; break; + case 'e': + dump_debugging = 1; + dump_debugging_tags = 1; + do_demangle = TRUE; + seenflag = TRUE; + break; case 'G': dump_stab_section_info = TRUE; seenflag = TRUE; diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/binutils/po/Make-in binutils-2.14.90.0.5/binutils/po/Make-in --- binutils-2.14.90.0.4.1/binutils/po/Make-in 1999-06-03 11:01:56.000000000 -0700 +++ binutils-2.14.90.0.5/binutils/po/Make-in 2003-07-23 08:08:09.000000000 -0700 @@ -24,6 +24,8 @@ gnulocaledir = $(prefix)/share/locale gettextsrcdir = $(prefix)/share/gettext/po subdir = po +DESTDIR = + INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ MKINSTALLDIRS = @MKINSTALLDIRS@ @@ -111,9 +113,9 @@ install-data: install-data-@USE_NLS@ install-data-no: all install-data-yes: all if test -r $(MKINSTALLDIRS); then \ - $(MKINSTALLDIRS) $(datadir); \ + $(MKINSTALLDIRS) $(DESTDIR)$(datadir); \ else \ - $(top_srcdir)/mkinstalldirs $(datadir); \ + $(top_srcdir)/mkinstalldirs $(DESTDIR)$(datadir); \ fi @catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ @@ -123,7 +125,7 @@ install-data-yes: all *) destdir=$(localedir);; \ esac; \ lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ - dir=$$destdir/$$lang/LC_MESSAGES; \ + dir=$(DESTDIR)$$destdir/$$lang/LC_MESSAGES; \ if test -r $(MKINSTALLDIRS); then \ $(MKINSTALLDIRS) $$dir; \ else \ @@ -153,12 +155,12 @@ install-data-yes: all done if test "$(PACKAGE)" = "gettext"; then \ if test -r $(MKINSTALLDIRS); then \ - $(MKINSTALLDIRS) $(gettextsrcdir); \ + $(MKINSTALLDIRS) $(DESTDIR)$(gettextsrcdir); \ else \ - $(top_srcdir)/mkinstalldirs $(gettextsrcdir); \ + $(top_srcdir)/mkinstalldirs $(DESTDIR)$(gettextsrcdir); \ fi; \ $(INSTALL_DATA) $(srcdir)/Makefile.in.in \ - $(gettextsrcdir)/Makefile.in.in; \ + $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \ else \ : ; \ fi @@ -171,12 +173,12 @@ uninstall: for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ - rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \ - rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \ - rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \ - rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \ + rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \ + rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \ + rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \ + rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \ done - rm -f $(gettextsrcdir)/po-Makefile.in.in + rm -f $(DESTDIR)$(gettextsrcdir)/po-Makefile.in.in check: all diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/binutils/po/binutils.pot binutils-2.14.90.0.5/binutils/po/binutils.pot --- binutils-2.14.90.0.4.1/binutils/po/binutils.pot 2002-10-29 20:09:13.000000000 -0800 +++ binutils-2.14.90.0.5/binutils/po/binutils.pot 2003-07-23 08:08:09.000000000 -0700 @@ -1,12 +1,13 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR Free Software Foundation, Inc. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2002-10-23 15:47+0100\n" +"POT-Creation-Date: 2003-07-11 13:56+0930\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -42,9 +43,9 @@ msgid "" "\n" msgstr "" -#: addr2line.c:89 ar.c:297 coffdump.c:479 nlmconv.c:1119 objcopy.c:424 -#: objcopy.c:457 readelf.c:2328 size.c:104 srconv.c:1962 strings.c:666 -#: sysdump.c:774 windres.c:733 +#: addr2line.c:89 ar.c:297 coffdump.c:479 nlmconv.c:1121 objcopy.c:484 +#: objcopy.c:518 readelf.c:2649 size.c:104 srconv.c:1962 strings.c:673 +#: sysdump.c:774 windres.c:702 #, c-format msgid "Report bugs to %s\n" msgstr "" @@ -54,7 +55,7 @@ msgstr "" msgid "%s: can not get addresses from archive" msgstr "" -#: addr2line.c:317 nm.c:395 objdump.c:2782 +#: addr2line.c:317 nm.c:433 objdump.c:2693 #, c-format msgid "unknown demangling style `%s'" msgstr "" @@ -213,7 +214,7 @@ msgstr "" msgid "internal error -- this option not implemented" msgstr "" -#: ar.c:837 ar.c:888 ar.c:1333 objcopy.c:1350 +#: ar.c:837 ar.c:888 ar.c:1333 objcopy.c:1579 #, c-format msgid "internal stat error on %s" msgstr "" @@ -322,40 +323,45 @@ msgid " No emulation specific options\n msgstr "" #. Macros for common output. -#: binemul.h:42 +#: binemul.h:52 #, c-format msgid " emulation options: \n" msgstr "" -#: bucomm.c:106 +#: bucomm.c:113 #, c-format msgid "can't set BFD default target to `%s': %s" msgstr "" -#: bucomm.c:118 +#: bucomm.c:125 #, c-format msgid "%s: Matching formats:" msgstr "" -#: bucomm.c:135 +#: bucomm.c:142 msgid "Supported targets:" msgstr "" -#: bucomm.c:137 +#: bucomm.c:144 #, c-format msgid "%s: supported targets:" msgstr "" -#: bucomm.c:155 +#: bucomm.c:162 msgid "Supported architectures:" msgstr "" -#: bucomm.c:157 +#: bucomm.c:164 #, c-format msgid "%s: supported architectures:" msgstr "" -#: bucomm.c:264 +#: bucomm.c:360 +#, c-format +msgid "BFD header file version %s\n" +msgstr "" + +#: bucomm.c:467 #, c-format msgid "%s: bad number: %s" msgstr "" @@ -386,95 +392,91 @@ msgstr "" msgid "no input file specified" msgstr "" -#: debug.c:653 +#: debug.c:654 msgid "debug_add_to_current_namespace: no current file" msgstr "" -#: debug.c:736 +#: debug.c:737 msgid "debug_start_source: no debug_set_filename call" msgstr "" -#: debug.c:795 +#: debug.c:796 msgid "debug_record_function: no debug_set_filename call" msgstr "" -#: debug.c:851 +#: debug.c:852 msgid "debug_record_parameter: no current function" msgstr "" -#: debug.c:885 +#: debug.c:886 msgid "debug_end_function: no current function" msgstr "" -#: debug.c:891 +#: debug.c:892 msgid "debug_end_function: some blocks were not closed" msgstr "" -#: debug.c:921 +#: debug.c:922 msgid "debug_start_block: no current block" msgstr "" -#: debug.c:959 +#: debug.c:960 msgid "debug_end_block: no current block" msgstr "" -#: debug.c:966 +#: debug.c:967 msgid "debug_end_block: attempt to close top level block" msgstr "" -#: debug.c:992 +#: debug.c:993 msgid "debug_record_line: no current unit" msgstr "" #. FIXME -#: debug.c:1046 +#: debug.c:1047 msgid "debug_start_common_block: not implemented" msgstr "" #. FIXME -#: debug.c:1058 +#: debug.c:1059 msgid "debug_end_common_block: not implemented" msgstr "" #. FIXME. -#: debug.c:1152 +#: debug.c:1153 msgid "debug_record_label: not implemented" msgstr "" -#: debug.c:1178 +#: debug.c:1179 msgid "debug_record_variable: no current file" msgstr "" -#: debug.c:1194 -msgid "debug_record_variable: no current block" -msgstr "" - -#: debug.c:1763 +#: debug.c:1762 msgid "debug_make_undefined_type: unsupported kind" msgstr "" -#: debug.c:1964 +#: debug.c:1963 msgid "debug_name_type: no current file" msgstr "" -#: debug.c:2012 +#: debug.c:2011 msgid "debug_tag_type: no current file" msgstr "" -#: debug.c:2020 +#: debug.c:2019 msgid "debug_tag_type: extra tag attempted" msgstr "" -#: debug.c:2059 +#: debug.c:2058 #, c-format msgid "Warning: changing type size from %d to %d\n" msgstr "" -#: debug.c:2083 +#: debug.c:2082 msgid "debug_find_named_type: no current compilation unit" msgstr "" -#: debug.c:2190 +#: debug.c:2189 #, c-format msgid "debug_get_real_type: circular debug information for %s\n" msgstr "" @@ -483,325 +485,325 @@ msgstr "" msgid "debug_write_type: illegal type encountered" msgstr "" -#: dlltool.c:735 dlltool.c:760 dlltool.c:786 +#: dlltool.c:812 dlltool.c:837 dlltool.c:863 #, c-format msgid "Internal error: Unknown machine type: %d" msgstr "" -#: dlltool.c:823 +#: dlltool.c:900 #, c-format msgid "Can't open def file: %s" msgstr "" -#: dlltool.c:828 +#: dlltool.c:905 #, c-format msgid "Processing def file: %s" msgstr "" -#: dlltool.c:832 +#: dlltool.c:909 msgid "Processed def file" msgstr "" -#: dlltool.c:858 +#: dlltool.c:935 #, c-format msgid "Syntax error in def file %s:%d" msgstr "" -#: dlltool.c:897 +#: dlltool.c:974 #, c-format msgid "NAME: %s base: %x" msgstr "" -#: dlltool.c:900 dlltool.c:919 +#: dlltool.c:977 dlltool.c:996 msgid "Can't have LIBRARY and NAME" msgstr "" -#: dlltool.c:916 +#: dlltool.c:993 #, c-format msgid "LIBRARY: %s base: %x" msgstr "" -#: dlltool.c:1174 resrc.c:271 +#: dlltool.c:1251 resrc.c:271 #, c-format msgid "wait: %s" msgstr "" -#: dlltool.c:1179 dllwrap.c:430 resrc.c:276 +#: dlltool.c:1256 dllwrap.c:430 resrc.c:276 #, c-format msgid "subprocess got fatal signal %d" msgstr "" -#: dlltool.c:1185 dllwrap.c:437 resrc.c:283 +#: dlltool.c:1262 dllwrap.c:437 resrc.c:283 #, c-format msgid "%s exited with status %d" msgstr "" -#: dlltool.c:1217 +#: dlltool.c:1294 #, c-format msgid "Sucking in info from %s section in %s" msgstr "" -#: dlltool.c:1341 +#: dlltool.c:1423 #, c-format msgid "Excluding symbol: %s" msgstr "" -#: dlltool.c:1436 dlltool.c:1447 nm.c:959 nm.c:970 +#: dlltool.c:1518 dlltool.c:1529 nm.c:1004 nm.c:1015 #, c-format msgid "%s: no symbols" msgstr "" -#. FIXME: we ought to read in and block out the base relocations -#: dlltool.c:1474 +#. FIXME: we ought to read in and block out the base relocations. +#: dlltool.c:1556 #, c-format msgid "Done reading %s" msgstr "" -#: dlltool.c:1485 +#: dlltool.c:1567 #, c-format msgid "Unable to open object file: %s" msgstr "" -#: dlltool.c:1488 +#: dlltool.c:1570 #, c-format msgid "Scanning object file %s" msgstr "" -#: dlltool.c:1503 +#: dlltool.c:1585 #, c-format msgid "Cannot produce mcore-elf dll from archive file: %s" msgstr "" -#: dlltool.c:1595 +#: dlltool.c:1677 msgid "Adding exports to output file" msgstr "" -#: dlltool.c:1640 +#: dlltool.c:1724 msgid "Added exports to output file" msgstr "" -#: dlltool.c:1764 +#: dlltool.c:1848 #, c-format msgid "Generating export file: %s" msgstr "" -#: dlltool.c:1769 +#: dlltool.c:1853 #, c-format msgid "Unable to open temporary assembler file: %s" msgstr "" -#: dlltool.c:1772 +#: dlltool.c:1856 #, c-format msgid "Opened temporary file: %s" msgstr "" -#: dlltool.c:1996 +#: dlltool.c:2086 msgid "Generated exports file" msgstr "" -#: dlltool.c:2258 +#: dlltool.c:2378 #, c-format msgid "bfd_open failed open stub file: %s" msgstr "" -#: dlltool.c:2261 +#: dlltool.c:2381 #, c-format msgid "Creating stub file: %s" msgstr "" -#: dlltool.c:2650 +#: dlltool.c:2766 #, c-format msgid "failed to open temporary head file: %s" msgstr "" -#: dlltool.c:2709 +#: dlltool.c:2825 #, c-format msgid "failed to open temporary tail file: %s" msgstr "" -#: dlltool.c:2777 +#: dlltool.c:2892 #, c-format msgid "Can't open .lib file: %s" msgstr "" -#: dlltool.c:2780 +#: dlltool.c:2895 #, c-format msgid "Creating library file: %s" msgstr "" -#: dlltool.c:2839 +#: dlltool.c:2951 #, c-format msgid "cannot delete %s: %s" msgstr "" -#: dlltool.c:2843 +#: dlltool.c:2955 msgid "Created lib file" msgstr "" -#: dlltool.c:2948 +#: dlltool.c:3062 #, c-format msgid "Warning, ignoring duplicate EXPORT %s %d,%d" msgstr "" -#: dlltool.c:2954 +#: dlltool.c:3068 #, c-format msgid "Error, duplicate EXPORT with oridinals: %s" msgstr "" -#: dlltool.c:3081 +#: dlltool.c:3191 msgid "Processing definitions" msgstr "" -#: dlltool.c:3119 +#: dlltool.c:3223 msgid "Processed definitions" msgstr "" #. xgetext:c-format -#: dlltool.c:3130 dllwrap.c:495 +#: dlltool.c:3234 dllwrap.c:495 #, c-format msgid "Usage %s \n" msgstr "" #. xgetext:c-format -#: dlltool.c:3132 +#: dlltool.c:3236 #, c-format msgid "" " -m --machine Create as DLL for . [default: %s]\n" msgstr "" -#: dlltool.c:3133 +#: dlltool.c:3237 msgid "" " possible : arm[_interwork], i386, mcore[-elf]{-le|-be}, " "ppc, thumb\n" msgstr "" -#: dlltool.c:3134 +#: dlltool.c:3238 msgid " -e --output-exp Generate an export file.\n" msgstr "" -#: dlltool.c:3135 +#: dlltool.c:3239 msgid " -l --output-lib Generate an interface library.\n" msgstr "" -#: dlltool.c:3136 +#: dlltool.c:3240 msgid " -a --add-indirect Add dll indirects to export file.\n" msgstr "" -#: dlltool.c:3137 +#: dlltool.c:3241 msgid "" " -D --dllname Name of input dll to put into interface lib.\n" msgstr "" -#: dlltool.c:3138 +#: dlltool.c:3242 msgid " -d --input-def Name of .def file to be read in.\n" msgstr "" -#: dlltool.c:3139 +#: dlltool.c:3243 msgid " -z --output-def Name of .def file to be created.\n" msgstr "" -#: dlltool.c:3140 +#: dlltool.c:3244 msgid " --export-all-symbols Export all symbols to .def\n" msgstr "" -#: dlltool.c:3141 +#: dlltool.c:3245 msgid " --no-export-all-symbols Only export listed symbols\n" msgstr "" -#: dlltool.c:3142 +#: dlltool.c:3246 msgid " --exclude-symbols Don't export \n" msgstr "" -#: dlltool.c:3143 +#: dlltool.c:3247 msgid " --no-default-excludes Clear default exclude symbols\n" msgstr "" -#: dlltool.c:3144 +#: dlltool.c:3248 msgid " -b --base-file Read linker generated base file.\n" msgstr "" -#: dlltool.c:3145 +#: dlltool.c:3249 msgid " -x --no-idata4 Don't generate idata$4 section.\n" msgstr "" -#: dlltool.c:3146 +#: dlltool.c:3250 msgid " -c --no-idata5 Don't generate idata$5 section.\n" msgstr "" -#: dlltool.c:3147 +#: dlltool.c:3251 msgid "" " -U --add-underscore Add underscores to symbols in interface " "library.\n" msgstr "" -#: dlltool.c:3148 +#: dlltool.c:3252 msgid " -k --kill-at Kill @ from exported names.\n" msgstr "" -#: dlltool.c:3149 +#: dlltool.c:3253 msgid " -A --add-stdcall-alias Add aliases without @.\n" msgstr "" -#: dlltool.c:3150 +#: dlltool.c:3254 msgid " -S --as Use for assembler.\n" msgstr "" -#: dlltool.c:3151 +#: dlltool.c:3255 msgid " -f --as-flags Pass to the assembler.\n" msgstr "" -#: dlltool.c:3152 +#: dlltool.c:3256 msgid "" " -C --compat-implib Create backward compatible import library.\n" msgstr "" -#: dlltool.c:3153 +#: dlltool.c:3257 msgid "" " -n --no-delete Keep temp files (repeat for extra " "preservation).\n" msgstr "" -#: dlltool.c:3154 +#: dlltool.c:3258 msgid " -v --verbose Be verbose.\n" msgstr "" -#: dlltool.c:3155 +#: dlltool.c:3259 msgid " -V --version Display the program version.\n" msgstr "" -#: dlltool.c:3156 +#: dlltool.c:3260 msgid " -h --help Display this information.\n" msgstr "" -#: dlltool.c:3158 +#: dlltool.c:3262 msgid "" " -M --mcore-elf Process mcore-elf object files into .\n" msgstr "" -#: dlltool.c:3159 +#: dlltool.c:3263 msgid " -L --linker Use as the linker.\n" msgstr "" -#: dlltool.c:3160 +#: dlltool.c:3264 msgid " -F --linker-flags Pass to the linker.\n" msgstr "" -#: dlltool.c:3310 +#: dlltool.c:3418 #, c-format msgid "Unable to open base-file: %s" msgstr "" -#: dlltool.c:3339 +#: dlltool.c:3450 #, c-format msgid "Machine '%s' not supported" msgstr "" -#: dlltool.c:3442 dllwrap.c:214 +#: dlltool.c:3553 dllwrap.c:214 #, c-format msgid "Tried file: %s" msgstr "" -#: dlltool.c:3449 dllwrap.c:221 +#: dlltool.c:3560 dllwrap.c:221 #, c-format msgid "Using file: %s" msgstr "" @@ -1007,375 +1009,375 @@ msgstr "" msgid "DRIVER options : %s\n" msgstr "" -#: emul_aix.c:52 +#: emul_aix.c:58 #, c-format msgid " [-g] - 32 bit small archive\n" msgstr "" -#: emul_aix.c:53 +#: emul_aix.c:59 msgid " [-X32] - ignores 64 bit objects\n" msgstr "" -#: emul_aix.c:54 +#: emul_aix.c:60 msgid " [-X64] - ignores 32 bit objects\n" msgstr "" -#: emul_aix.c:55 +#: emul_aix.c:61 msgid " [-X32_64] - accepts 32 and 64 bit objects\n" msgstr "" -#: ieee.c:317 +#: ieee.c:326 msgid "unexpected end of debugging information" msgstr "" -#: ieee.c:412 +#: ieee.c:421 msgid "invalid number" msgstr "" -#: ieee.c:471 +#: ieee.c:480 msgid "invalid string length" msgstr "" -#: ieee.c:528 ieee.c:569 +#: ieee.c:537 ieee.c:578 msgid "expression stack overflow" msgstr "" -#: ieee.c:548 +#: ieee.c:557 msgid "unsupported IEEE expression operator" msgstr "" -#: ieee.c:563 +#: ieee.c:572 msgid "unknown section" msgstr "" -#: ieee.c:584 +#: ieee.c:593 msgid "expression stack underflow" msgstr "" -#: ieee.c:598 +#: ieee.c:607 msgid "expression stack mismatch" msgstr "" -#: ieee.c:637 +#: ieee.c:646 msgid "unknown builtin type" msgstr "" -#: ieee.c:782 +#: ieee.c:791 msgid "BCD float type not supported" msgstr "" -#: ieee.c:928 +#: ieee.c:937 msgid "unexpected number" msgstr "" -#: ieee.c:935 +#: ieee.c:944 msgid "unexpected record type" msgstr "" -#: ieee.c:968 +#: ieee.c:977 msgid "blocks left on stack at end" msgstr "" -#: ieee.c:1233 +#: ieee.c:1242 msgid "unknown BB type" msgstr "" -#: ieee.c:1242 +#: ieee.c:1251 msgid "stack overflow" msgstr "" -#: ieee.c:1267 +#: ieee.c:1276 msgid "stack underflow" msgstr "" -#: ieee.c:1381 ieee.c:1453 ieee.c:2152 +#: ieee.c:1390 ieee.c:1462 ieee.c:2161 msgid "illegal variable index" msgstr "" -#: ieee.c:1431 +#: ieee.c:1440 msgid "illegal type index" msgstr "" -#: ieee.c:1441 ieee.c:1478 +#: ieee.c:1450 ieee.c:1487 msgid "unknown TY code" msgstr "" -#: ieee.c:1460 +#: ieee.c:1469 msgid "undefined variable in TY" msgstr "" #. Pascal file name. FIXME. -#: ieee.c:1871 +#: ieee.c:1880 msgid "Pascal file name not supported" msgstr "" -#: ieee.c:1919 +#: ieee.c:1928 msgid "unsupported qualifier" msgstr "" -#: ieee.c:2190 +#: ieee.c:2199 msgid "undefined variable in ATN" msgstr "" -#: ieee.c:2233 +#: ieee.c:2242 msgid "unknown ATN type" msgstr "" #. Reserved for FORTRAN common. -#: ieee.c:2355 +#: ieee.c:2364 msgid "unsupported ATN11" msgstr "" #. We have no way to record this information. FIXME. -#: ieee.c:2382 +#: ieee.c:2391 msgid "unsupported ATN12" msgstr "" -#: ieee.c:2442 +#: ieee.c:2451 msgid "unexpected string in C++ misc" msgstr "" -#: ieee.c:2455 +#: ieee.c:2464 msgid "bad misc record" msgstr "" -#: ieee.c:2498 +#: ieee.c:2507 msgid "unrecognized C++ misc record" msgstr "" -#: ieee.c:2615 +#: ieee.c:2624 msgid "undefined C++ object" msgstr "" -#: ieee.c:2649 +#: ieee.c:2658 msgid "unrecognized C++ object spec" msgstr "" -#: ieee.c:2685 +#: ieee.c:2694 msgid "unsupported C++ object type" msgstr "" -#: ieee.c:2695 +#: ieee.c:2704 msgid "C++ base class not defined" msgstr "" -#: ieee.c:2707 ieee.c:2812 +#: ieee.c:2716 ieee.c:2821 msgid "C++ object has no fields" msgstr "" -#: ieee.c:2726 +#: ieee.c:2735 msgid "C++ base class not found in container" msgstr "" -#: ieee.c:2833 +#: ieee.c:2842 msgid "C++ data member not found in container" msgstr "" -#: ieee.c:2874 ieee.c:3024 +#: ieee.c:2883 ieee.c:3033 msgid "unknown C++ visibility" msgstr "" -#: ieee.c:2908 +#: ieee.c:2917 msgid "bad C++ field bit pos or size" msgstr "" -#: ieee.c:3000 +#: ieee.c:3009 msgid "bad type for C++ method function" msgstr "" -#: ieee.c:3010 +#: ieee.c:3019 msgid "no type information for C++ method function" msgstr "" -#: ieee.c:3049 +#: ieee.c:3058 msgid "C++ static virtual method" msgstr "" -#: ieee.c:3144 +#: ieee.c:3153 msgid "unrecognized C++ object overhead spec" msgstr "" -#: ieee.c:3183 +#: ieee.c:3192 msgid "undefined C++ vtable" msgstr "" -#: ieee.c:3254 +#: ieee.c:3263 msgid "C++ default values not in a function" msgstr "" -#: ieee.c:3294 +#: ieee.c:3303 msgid "unrecognized C++ default type" msgstr "" -#: ieee.c:3325 +#: ieee.c:3334 msgid "reference parameter is not a pointer" msgstr "" -#: ieee.c:3410 +#: ieee.c:3419 msgid "unrecognized C++ reference type" msgstr "" -#: ieee.c:3492 +#: ieee.c:3501 msgid "C++ reference not found" msgstr "" -#: ieee.c:3500 +#: ieee.c:3509 msgid "C++ reference is not pointer" msgstr "" -#: ieee.c:3529 ieee.c:3537 +#: ieee.c:3538 ieee.c:3546 msgid "missing required ASN" msgstr "" -#: ieee.c:3567 ieee.c:3575 +#: ieee.c:3576 ieee.c:3584 msgid "missing required ATN65" msgstr "" -#: ieee.c:3589 +#: ieee.c:3598 msgid "bad ATN65 record" msgstr "" -#: ieee.c:4234 +#: ieee.c:4286 msgid "IEEE numeric overflow: 0x" msgstr "" -#: ieee.c:4280 +#: ieee.c:4332 #, c-format msgid "IEEE string length overflow: %u\n" msgstr "" -#: ieee.c:5330 +#: ieee.c:5382 #, c-format msgid "IEEE unsupported integer type size %u\n" msgstr "" -#: ieee.c:5366 +#: ieee.c:5418 #, c-format msgid "IEEE unsupported float type size %u\n" msgstr "" -#: ieee.c:5402 +#: ieee.c:5454 #, c-format msgid "IEEE unsupported complex type size %u\n" msgstr "" -#: nlmconv.c:281 srconv.c:2043 +#: nlmconv.c:282 srconv.c:2043 msgid "input and output files must be different" msgstr "" -#: nlmconv.c:328 +#: nlmconv.c:329 msgid "input file named both on command line and with INPUT" msgstr "" -#: nlmconv.c:337 +#: nlmconv.c:338 msgid "no input file" msgstr "" -#: nlmconv.c:367 +#: nlmconv.c:368 msgid "no name for output file" msgstr "" -#: nlmconv.c:380 +#: nlmconv.c:382 msgid "warning: input and output formats are not compatible" msgstr "" -#: nlmconv.c:409 +#: nlmconv.c:411 msgid "make .bss section" msgstr "" -#: nlmconv.c:418 +#: nlmconv.c:420 msgid "make .nlmsections section" msgstr "" -#: nlmconv.c:420 +#: nlmconv.c:422 msgid "set .nlmsections flags" msgstr "" -#: nlmconv.c:448 +#: nlmconv.c:450 msgid "set .bss vma" msgstr "" -#: nlmconv.c:455 +#: nlmconv.c:457 msgid "set .data size" msgstr "" -#: nlmconv.c:635 +#: nlmconv.c:637 #, c-format msgid "warning: symbol %s imported but not in import list" msgstr "" -#: nlmconv.c:655 +#: nlmconv.c:657 msgid "set start address" msgstr "" -#: nlmconv.c:704 +#: nlmconv.c:706 #, c-format msgid "warning: START procedure %s not defined" msgstr "" -#: nlmconv.c:706 +#: nlmconv.c:708 #, c-format msgid "warning: EXIT procedure %s not defined" msgstr "" -#: nlmconv.c:708 +#: nlmconv.c:710 #, c-format msgid "warning: CHECK procedure %s not defined" msgstr "" -#: nlmconv.c:729 nlmconv.c:918 +#: nlmconv.c:731 nlmconv.c:920 msgid "custom section" msgstr "" -#: nlmconv.c:750 nlmconv.c:947 +#: nlmconv.c:752 nlmconv.c:949 msgid "help section" msgstr "" -#: nlmconv.c:772 nlmconv.c:965 +#: nlmconv.c:774 nlmconv.c:967 msgid "message section" msgstr "" -#: nlmconv.c:788 nlmconv.c:998 +#: nlmconv.c:790 nlmconv.c:1000 msgid "module section" msgstr "" -#: nlmconv.c:808 nlmconv.c:1014 +#: nlmconv.c:810 nlmconv.c:1016 msgid "rpc section" msgstr "" #. There is no place to record this information. -#: nlmconv.c:844 +#: nlmconv.c:846 #, c-format msgid "%s: warning: shared libraries can not have uninitialized data" msgstr "" -#: nlmconv.c:865 nlmconv.c:1033 +#: nlmconv.c:867 nlmconv.c:1035 msgid "shared section" msgstr "" -#: nlmconv.c:873 +#: nlmconv.c:875 msgid "warning: No version number given" msgstr "" -#: nlmconv.c:913 nlmconv.c:942 nlmconv.c:960 nlmconv.c:1009 nlmconv.c:1028 +#: nlmconv.c:915 nlmconv.c:944 nlmconv.c:962 nlmconv.c:1011 nlmconv.c:1030 #, c-format msgid "%s: read: %s" msgstr "" -#: nlmconv.c:935 +#: nlmconv.c:937 msgid "warning: MAP and FULLMAP are not supported; try ld -M" msgstr "" -#: nlmconv.c:1107 +#: nlmconv.c:1109 #, c-format msgid "Usage: %s [option(s)] [in-file [out-file]]\n" msgstr "" -#: nlmconv.c:1108 +#: nlmconv.c:1110 msgid " Convert an object file into a NetWare Loadable Module\n" msgstr "" -#: nlmconv.c:1109 +#: nlmconv.c:1111 msgid "" " The options are:\n" " -I --input-target= Set the input binary file format\n" @@ -1387,73 +1389,73 @@ msgid "" " -v --version Display the program's version\n" msgstr "" -#: nlmconv.c:1151 +#: nlmconv.c:1153 #, c-format msgid "support not compiled in for %s" msgstr "" -#: nlmconv.c:1191 +#: nlmconv.c:1193 msgid "make section" msgstr "" -#: nlmconv.c:1205 +#: nlmconv.c:1207 msgid "set section size" msgstr "" -#: nlmconv.c:1211 +#: nlmconv.c:1213 msgid "set section alignment" msgstr "" -#: nlmconv.c:1215 +#: nlmconv.c:1217 msgid "set section flags" msgstr "" -#: nlmconv.c:1226 +#: nlmconv.c:1228 msgid "set .nlmsections size" msgstr "" -#: nlmconv.c:1314 nlmconv.c:1322 nlmconv.c:1331 nlmconv.c:1336 +#: nlmconv.c:1316 nlmconv.c:1324 nlmconv.c:1333 nlmconv.c:1338 msgid "set .nlmsection contents" msgstr "" -#: nlmconv.c:1837 +#: nlmconv.c:1839 msgid "stub section sizes" msgstr "" -#: nlmconv.c:1886 +#: nlmconv.c:1888 msgid "writing stub" msgstr "" -#: nlmconv.c:1975 +#: nlmconv.c:1977 #, c-format msgid "unresolved PC relative reloc against %s" msgstr "" -#: nlmconv.c:2039 +#: nlmconv.c:2041 #, c-format msgid "overflow when adjusting relocation against %s" msgstr "" -#: nlmconv.c:2156 +#: nlmconv.c:2158 #, c-format msgid "%s: execution of %s failed: " msgstr "" -#: nlmconv.c:2171 +#: nlmconv.c:2173 #, c-format msgid "Execution of %s failed" msgstr "" -#: nm.c:246 size.c:85 strings.c:650 +#: nm.c:283 size.c:85 strings.c:657 #, c-format msgid "Usage: %s [option(s)] [file(s)]\n" msgstr "" -#: nm.c:247 +#: nm.c:284 msgid " List symbols in [file(s)] (a.out by default).\n" msgstr "" -#: nm.c:248 +#: nm.c:285 msgid "" " The options are:\n" " -a, --debug-syms Display debugger-only symbols\n" @@ -1463,7 +1465,9 @@ msgid "" "names\n" " The STYLE, if specified, can be `auto' (the " "default),\n" -" `gnu', 'lucid', 'arm', 'hp', 'edg' or 'gnu-v3'\n" +" `gnu', `lucid', `arm', `hp', `edg', `gnu-v3', " +"`java'\n" +" or `gnat'\n" " --no-demangle Do not demangle low-level symbol names\n" " -D, --dynamic Display dynamic symbols instead of normal symbols\n" " --defined-only Display only defined symbols\n" @@ -1491,46 +1495,54 @@ msgid "" "\n" msgstr "" -#: nm.c:281 objdump.c:219 +#: nm.c:319 objdump.c:250 #, c-format msgid "Report bugs to %s.\n" msgstr "" -#: nm.c:314 +#: nm.c:352 #, c-format msgid "%s: invalid radix" msgstr "" -#: nm.c:339 +#: nm.c:377 #, c-format msgid "%s: invalid output format" msgstr "" -#: nm.c:456 +#: nm.c:494 msgid "Only -X 32_64 is supported" msgstr "" -#: nm.c:498 +#: nm.c:514 +msgid "Using the --size-sort and --undefined-only options together" +msgstr "" + +#: nm.c:515 +msgid "will produce no output, since undefined symbols have no size." +msgstr "" + +#: nm.c:543 #, c-format msgid "data size %ld" msgstr "" -#: nm.c:523 readelf.c:5414 readelf.c:5450 +#: nm.c:568 readelf.c:5809 readelf.c:5845 #, c-format msgid ": %d" msgstr "" -#: nm.c:525 readelf.c:5416 readelf.c:5462 +#: nm.c:570 readelf.c:5811 readelf.c:5857 #, c-format msgid ": %d" msgstr "" -#: nm.c:527 readelf.c:5418 readelf.c:5465 +#: nm.c:572 readelf.c:5813 readelf.c:5860 #, c-format msgid ": %d" msgstr "" -#: nm.c:1339 +#: nm.c:1376 #, c-format msgid "" "\n" @@ -1539,7 +1551,7 @@ msgid "" "\n" msgstr "" -#: nm.c:1341 +#: nm.c:1378 #, c-format msgid "" "\n" @@ -1548,21 +1560,21 @@ msgid "" "\n" msgstr "" -#: nm.c:1343 nm.c:1401 +#: nm.c:1380 nm.c:1438 msgid "" "Name Value Class Type Size Line " "Section\n" "\n" msgstr "" -#: nm.c:1346 nm.c:1404 +#: nm.c:1383 nm.c:1441 msgid "" "Name Value Class Type " "Size Line Section\n" "\n" msgstr "" -#: nm.c:1397 +#: nm.c:1434 #, c-format msgid "" "\n" @@ -1571,7 +1583,7 @@ msgid "" "\n" msgstr "" -#: nm.c:1399 +#: nm.c:1436 #, c-format msgid "" "\n" @@ -1580,26 +1592,26 @@ msgid "" "\n" msgstr "" -#: nm.c:1614 +#: nm.c:1658 msgid "" "\n" "Archive index:\n" msgstr "" -#: objcopy.c:363 srconv.c:1952 +#: objcopy.c:414 srconv.c:1952 #, c-format msgid "Usage: %s [option(s)] in-file [out-file]\n" msgstr "" -#: objcopy.c:364 +#: objcopy.c:415 msgid " Copies a binary file, possibly transforming it in the process\n" msgstr "" -#: objcopy.c:365 objcopy.c:435 +#: objcopy.c:416 objcopy.c:495 msgid " The options are:\n" msgstr "" -#: objcopy.c:366 +#: objcopy.c:417 msgid "" " -I --input-target Assume input file is in format \n" " -O --output-target Create an output file in format " @@ -1613,10 +1625,12 @@ msgid "" " -p --preserve-dates Copy modified/access timestamps to the " "output\n" " -j --only-section Only copy section into the output\n" +" --add-gnu-debuglink= Add section .gnu_debuglink linking to " +"\n" " -R --remove-section Remove section from the output\n" " -S --strip-all Remove all symbol and relocation " "information\n" -" -g --strip-debug Remove all debugging symbols\n" +" -g --strip-debug Remove all debugging symbols & sections\n" " --strip-unneeded Remove all symbols not needed by " "relocations\n" " -N --strip-symbol Do not copy symbol \n" @@ -1665,6 +1679,8 @@ msgid "" " --remove-leading-char Remove leading character from global " "symbols\n" " --redefine-sym = Redefine symbol name to \n" +" --redefine-syms --redefine-sym for all symbol pairs \n" +" listed in \n" " --srec-len Restrict the length of generated " "Srecords\n" " --srec-forceS3 Restrict the type of generated Srecords " @@ -1675,21 +1691,31 @@ msgid "" " --keep-global-symbols -G for all symbols listed in \n" " --weaken-symbols -W for all symbols listed in \n" " --alt-machine-code Use alternate machine code for output\n" +" --prefix-symbols Add to start of every symbol " +"name\n" +" --prefix-sections Add to start of every section " +"name\n" +" --prefix-alloc-sections \n" +" Add to start of every " +"allocatable\n" +" section name\n" " -v --verbose List all object files modified\n" " -V --version Display this program's version number\n" " -h --help Display this output\n" +" --info List object formats & architectures " +"supported\n" msgstr "" -#: objcopy.c:433 +#: objcopy.c:493 #, c-format msgid "Usage: %s in-file(s)\n" msgstr "" -#: objcopy.c:434 +#: objcopy.c:494 msgid " Removes symbols and sections from files\n" msgstr "" -#: objcopy.c:436 +#: objcopy.c:496 msgid "" " -I --input-target= Assume input file is in format \n" " -O --output-target= Create an output file in format " @@ -1701,7 +1727,7 @@ msgid "" " -R --remove-section= Remove section from the output\n" " -s --strip-all Remove all symbol and relocation " "information\n" -" -g -S -d --strip-debug Remove all debugging symbols\n" +" -g -S -d --strip-debug Remove all debugging symbols & sections\n" " --strip-unneeded Remove all symbols not needed by " "relocations\n" " -N --strip-symbol= Do not copy symbol \n" @@ -1711,217 +1737,239 @@ msgid "" " -v --verbose List all object files modified\n" " -V --version Display this program's version number\n" " -h --help Display this output\n" +" --info List object formats & architectures " +"supported\n" " -o Place stripped output into \n" msgstr "" -#: objcopy.c:506 +#: objcopy.c:567 #, c-format msgid "unrecognized section flag `%s'" msgstr "" -#: objcopy.c:507 +#: objcopy.c:568 #, c-format msgid "supported flags: %s" msgstr "" -#: objcopy.c:584 objcopy.c:2266 +#: objcopy.c:645 objcopy.c:2526 #, c-format msgid "cannot stat: %s: %s" msgstr "" -#: objcopy.c:591 objcopy.c:2284 +#: objcopy.c:652 objcopy.c:2544 #, c-format msgid "cannot open: %s: %s" msgstr "" -#: objcopy.c:594 objcopy.c:2288 +#: objcopy.c:655 objcopy.c:2548 #, c-format msgid "%s: fread failed" msgstr "" -#: objcopy.c:667 +#: objcopy.c:728 #, c-format msgid "Ignoring rubbish found on line %d of %s" msgstr "" -#: objcopy.c:888 +#: objcopy.c:979 #, c-format msgid "%s: Multiple redefinition of symbol \"%s\"" msgstr "" -#: objcopy.c:893 +#: objcopy.c:983 #, c-format msgid "%s: Symbol \"%s\" is target of more than one redefinition" msgstr "" -#: objcopy.c:945 +#: objcopy.c:1010 +#, c-format +msgid "couldn't open symbol redefinition file %s (error: %s)" +msgstr "" + +#: objcopy.c:1088 +#, c-format +msgid "%s: garbage at end of line %d" +msgstr "" + +#: objcopy.c:1091 +#, c-format +msgid "%s: missing new symbol name at line %d" +msgstr "" + +#: objcopy.c:1101 +#, c-format +msgid "%s: premature end of file at line %d" +msgstr "" + +#: objcopy.c:1147 msgid "Unable to change endianness of input file(s)" msgstr "" -#: objcopy.c:953 +#: objcopy.c:1155 #, c-format msgid "copy from %s(%s) to %s(%s)\n" msgstr "" -#: objcopy.c:979 +#: objcopy.c:1182 #, c-format msgid "Warning: Output file cannot represent architecture %s" msgstr "" -#: objcopy.c:1006 +#: objcopy.c:1211 #, c-format msgid "can't create section `%s': %s" msgstr "" -#: objcopy.c:1092 +#: objcopy.c:1304 #, c-format msgid "Can't fill gap after %s: %s" msgstr "" -#: objcopy.c:1117 +#: objcopy.c:1329 #, c-format msgid "Can't add padding to %s: %s" msgstr "" -#: objcopy.c:1256 +#: objcopy.c:1485 #, c-format msgid "%s: error copying private BFD data: %s" msgstr "" -#: objcopy.c:1269 +#: objcopy.c:1498 msgid "unknown alternate machine code, ignored" msgstr "" -#: objcopy.c:1302 objcopy.c:1332 +#: objcopy.c:1531 objcopy.c:1561 #, c-format msgid "cannot mkdir %s for archive copying (error: %s)" msgstr "" -#: objcopy.c:1520 +#: objcopy.c:1749 #, c-format msgid "Multiple renames of section %s" msgstr "" -#: objcopy.c:1604 +#: objcopy.c:1840 msgid "making" msgstr "" -#: objcopy.c:1613 +#: objcopy.c:1849 msgid "size" msgstr "" -#: objcopy.c:1627 +#: objcopy.c:1863 msgid "vma" msgstr "" -#: objcopy.c:1653 +#: objcopy.c:1888 msgid "alignment" msgstr "" -#: objcopy.c:1661 +#: objcopy.c:1896 msgid "flags" msgstr "" -#: objcopy.c:1678 +#: objcopy.c:1918 msgid "private data" msgstr "" -#: objcopy.c:1686 +#: objcopy.c:1926 #, c-format msgid "%s: section `%s': error in %s: %s" msgstr "" -#: objcopy.c:1969 +#: objcopy.c:2199 #, c-format msgid "%s: can't create debugging section: %s" msgstr "" -#: objcopy.c:1984 +#: objcopy.c:2214 #, c-format msgid "%s: can't set debugging section contents: %s" msgstr "" -#: objcopy.c:1993 +#: objcopy.c:2223 #, c-format msgid "%s: don't know how to write debugging information for %s" msgstr "" -#: objcopy.c:2101 +#: objcopy.c:2346 #, c-format msgid "%s: cannot stat: %s" msgstr "" -#: objcopy.c:2152 +#: objcopy.c:2400 msgid "byte number must be non-negative" msgstr "" -#: objcopy.c:2162 +#: objcopy.c:2410 msgid "interleave must be positive" msgstr "" -#: objcopy.c:2182 objcopy.c:2190 +#: objcopy.c:2430 objcopy.c:2438 #, c-format msgid "%s both copied and removed" msgstr "" -#: objcopy.c:2263 objcopy.c:2333 objcopy.c:2433 objcopy.c:2460 objcopy.c:2484 -#: objcopy.c:2488 objcopy.c:2508 +#: objcopy.c:2523 objcopy.c:2593 objcopy.c:2693 objcopy.c:2724 objcopy.c:2748 +#: objcopy.c:2752 objcopy.c:2772 #, c-format msgid "bad format for %s" msgstr "" -#: objcopy.c:2402 +#: objcopy.c:2662 #, c-format msgid "Warning: truncating gap-fill from 0x%s to 0x%x" msgstr "" -#: objcopy.c:2554 +#: objcopy.c:2818 msgid "alternate machine code index must be positive" msgstr "" -#: objcopy.c:2573 +#: objcopy.c:2856 msgid "byte number must be less than interleave" msgstr "" -#: objcopy.c:2600 +#: objcopy.c:2883 #, c-format msgid "architecture %s unknown" msgstr "" -#: objcopy.c:2604 +#: objcopy.c:2887 msgid "" "Warning: input target 'binary' required for binary architecture parameter." msgstr "" -#: objcopy.c:2605 +#: objcopy.c:2888 #, c-format msgid " Argument %s ignored" msgstr "" -#: objcopy.c:2611 +#: objcopy.c:2894 #, c-format msgid "Cannot stat: %s: %s" msgstr "" -#: objcopy.c:2651 objcopy.c:2665 +#: objcopy.c:2934 objcopy.c:2948 #, c-format msgid "%s %s%c0x%s never used" msgstr "" -#: objdump.c:167 +#: objdump.c:197 #, c-format msgid "Usage: %s \n" msgstr "" -#: objdump.c:168 +#: objdump.c:198 msgid " Display information from object .\n" msgstr "" -#: objdump.c:169 +#: objdump.c:199 msgid " At least one of the following switches must be given:\n" msgstr "" -#: objdump.c:170 +#: objdump.c:200 msgid "" " -a, --archive-headers Display archive header information\n" " -f, --file-headers Display the contents of the overall file header\n" @@ -1947,13 +1995,13 @@ msgid "" " -H, --help Display this information\n" msgstr "" -#: objdump.c:192 +#: objdump.c:222 msgid "" "\n" " The following switches are optional:\n" msgstr "" -#: objdump.c:193 +#: objdump.c:223 msgid "" " -b, --target=BFDNAME Specify the target object format as " "BFDNAME\n" @@ -1970,13 +2018,15 @@ msgid "" "output\n" " -C, --demangle[=STYLE] Decode mangled/processed symbol names\n" " The STYLE, if specified, can be `auto', " -"'gnu',\n" -" 'lucid', 'arm', 'hp', 'edg', or 'gnu-v3'\n" +"`gnu',\n" +" `lucid', `arm', `hp', `edg', `gnu-v3', " +"`java'\n" +" or `gnat'\n" " -w, --wide Format output for more than 80 columns\n" " -z, --disassemble-zeroes Do not skip blocks of zeroes when " "disassembling\n" -" --start-address=ADDR Only process data whoes address is >= ADDR\n" -" --stop-address=ADDR Only process data whoes address is <= ADDR\n" +" --start-address=ADDR Only process data whose address is >= ADDR\n" +" --stop-address=ADDR Only process data whose address is <= ADDR\n" " --prefix-addresses Print complete address alongside " "disassembly\n" " --[no-]show-raw-insn Display hex alongside symbolic disassembly\n" @@ -1985,327 +2035,322 @@ msgid "" "\n" msgstr "" -#: objdump.c:360 +#: objdump.c:391 msgid "Sections:\n" msgstr "" -#: objdump.c:363 objdump.c:367 +#: objdump.c:394 objdump.c:398 msgid "Idx Name Size VMA LMA File off Algn" msgstr "" -#: objdump.c:369 +#: objdump.c:400 msgid "" "Idx Name Size VMA LMA File off " "Algn" msgstr "" -#: objdump.c:373 +#: objdump.c:404 msgid " Flags" msgstr "" -#: objdump.c:375 +#: objdump.c:406 msgid " Pg" msgstr "" -#: objdump.c:420 +#: objdump.c:451 #, c-format msgid "%s: not a dynamic object" msgstr "" -#: objdump.c:1113 +#: objdump.c:1144 msgid "Out of virtual memory" msgstr "" -#: objdump.c:1542 +#: objdump.c:1574 #, c-format msgid "Can't use supplied machine %s" msgstr "" -#: objdump.c:1560 +#: objdump.c:1592 #, c-format msgid "Can't disassemble for architecture %s\n" msgstr "" -#: objdump.c:1642 +#: objdump.c:1682 #, c-format msgid "Disassembly of section %s:\n" msgstr "" -#: objdump.c:1817 +#: objdump.c:1847 #, c-format msgid "" "No %s section present\n" "\n" msgstr "" -#: objdump.c:1824 +#: objdump.c:1854 #, c-format msgid "%s has no %s section" msgstr "" -#: objdump.c:1838 +#: objdump.c:1868 #, c-format msgid "Reading %s section of %s failed: %s" msgstr "" -#: objdump.c:1850 +#: objdump.c:1880 #, c-format msgid "Reading %s section of %s failed: %s\n" msgstr "" -#: objdump.c:1893 +#: objdump.c:1923 #, c-format msgid "" "Contents of %s section:\n" "\n" msgstr "" -#: objdump.c:1993 +#: objdump.c:2021 #, c-format msgid "architecture: %s, " msgstr "" -#: objdump.c:1996 +#: objdump.c:2024 #, c-format msgid "flags 0x%08x:\n" msgstr "" -#: objdump.c:2010 +#: objdump.c:2038 msgid "" "\n" "start address 0x" msgstr "" -#: objdump.c:2042 +#: objdump.c:2071 #, c-format msgid "" "\n" "%s: file format %s\n" msgstr "" -#: objdump.c:2082 +#: objdump.c:2111 #, c-format msgid "%s: printing debugging information failed" msgstr "" -#: objdump.c:2161 +#: objdump.c:2190 #, c-format msgid "In archive %s:\n" msgstr "" -#: objdump.c:2213 +#: objdump.c:2249 #, c-format msgid "Contents of section %s:\n" msgstr "" -#: objdump.c:2298 +#: objdump.c:2369 msgid "no symbols\n" msgstr "" #: objdump.c:2718 -#, c-format -msgid "BFD header file version %s\n" -msgstr "" - -#: objdump.c:2807 msgid "unrecognized -E option" msgstr "" -#: objdump.c:2818 +#: objdump.c:2729 #, c-format msgid "unrecognized --endian type `%s'" msgstr "" -#: rdcoff.c:204 +#: rdcoff.c:206 #, c-format msgid "parse_coff_type: Bad type code 0x%x" msgstr "" -#: rdcoff.c:422 rdcoff.c:530 rdcoff.c:729 +#: rdcoff.c:424 rdcoff.c:532 rdcoff.c:731 #, c-format msgid "bfd_coff_get_syment failed: %s" msgstr "" -#: rdcoff.c:438 rdcoff.c:749 +#: rdcoff.c:440 rdcoff.c:751 #, c-format msgid "bfd_coff_get_auxent failed: %s" msgstr "" -#: rdcoff.c:816 +#: rdcoff.c:818 #, c-format msgid "%ld: .bf without preceding function" msgstr "" -#: rdcoff.c:866 +#: rdcoff.c:868 #, c-format msgid "%ld: unexpected .ef\n" msgstr "" -#: rddbg.c:87 +#: rddbg.c:91 #, c-format msgid "%s: no recognized debugging information" msgstr "" -#: rddbg.c:410 +#: rddbg.c:415 msgid "Last stabs entries before error:\n" msgstr "" -#: readelf.c:330 +#: readelf.c:455 #, c-format msgid "%s: Error: " msgstr "" -#: readelf.c:341 +#: readelf.c:466 #, c-format msgid "%s: Warning: " msgstr "" -#: readelf.c:363 +#: readelf.c:488 #, c-format -msgid "Unable to seek to %x for %s\n" +msgid "Unable to seek to 0x%x for %s\n" msgstr "" -#: readelf.c:374 +#: readelf.c:499 #, c-format -msgid "Out of memory allocating %d bytes for %s\n" +msgid "Out of memory allocating 0x%x bytes for %s\n" msgstr "" -#: readelf.c:382 +#: readelf.c:507 #, c-format -msgid "Unable to read in %d bytes of %s\n" +msgid "Unable to read in 0x%x bytes of %s\n" msgstr "" -#: readelf.c:435 readelf.c:593 +#: readelf.c:560 readelf.c:614 readelf.c:798 readelf.c:833 #, c-format msgid "Unhandled data length: %d\n" msgstr "" -#: readelf.c:679 +#: readelf.c:924 msgid "Don't know about relocations on this machine architecture\n" msgstr "" -#: readelf.c:701 readelf.c:730 readelf.c:776 readelf.c:803 +#: readelf.c:946 readelf.c:975 readelf.c:1021 readelf.c:1049 msgid "relocs" msgstr "" -#: readelf.c:712 readelf.c:741 readelf.c:786 readelf.c:813 +#: readelf.c:957 readelf.c:986 readelf.c:1031 readelf.c:1059 msgid "out of memory parsing relocs" msgstr "" -#: readelf.c:865 +#: readelf.c:1112 msgid "" " Offset Info Type Sym. Value Symbol's Name + Addend\n" msgstr "" -#: readelf.c:867 +#: readelf.c:1114 msgid " Offset Info Type Sym.Value Sym. Name + Addend\n" msgstr "" -#: readelf.c:872 +#: readelf.c:1119 msgid " Offset Info Type Sym. Value Symbol's Name\n" msgstr "" -#: readelf.c:874 +#: readelf.c:1121 msgid " Offset Info Type Sym.Value Sym. Name\n" msgstr "" -#: readelf.c:882 +#: readelf.c:1129 msgid "" -" Offset Info Type Symbol's Value " +" Offset Info Type Symbol's Value " "Symbol's Name + Addend\n" msgstr "" -#: readelf.c:884 +#: readelf.c:1131 msgid "" " Offset Info Type Sym. Value Sym. Name + " "Addend\n" msgstr "" -#: readelf.c:889 +#: readelf.c:1136 msgid "" -" Offset Info Type Symbol's Value " +" Offset Info Type Symbol's Value " "Symbol's Name\n" msgstr "" -#: readelf.c:891 +#: readelf.c:1138 msgid "" " Offset Info Type Sym. Value Sym. Name\n" msgstr "" -#: readelf.c:1147 readelf.c:1149 readelf.c:1197 readelf.c:1199 readelf.c:1208 -#: readelf.c:1210 +#: readelf.c:1414 readelf.c:1416 readelf.c:1492 readelf.c:1494 readelf.c:1503 +#: readelf.c:1505 #, c-format msgid "unrecognized: %-7lx" msgstr "" -#: readelf.c:1171 +#: readelf.c:1466 #, c-format msgid "" msgstr "" -#: readelf.c:1436 +#: readelf.c:1743 #, c-format msgid "Processor Specific: %lx" msgstr "" -#: readelf.c:1455 +#: readelf.c:1762 #, c-format msgid "Operating System specific: %lx" msgstr "" -#: readelf.c:1458 readelf.c:2101 +#: readelf.c:1765 readelf.c:2417 #, c-format msgid ": %lx" msgstr "" -#: readelf.c:1472 +#: readelf.c:1779 msgid "NONE (None)" msgstr "" -#: readelf.c:1473 +#: readelf.c:1780 msgid "REL (Relocatable file)" msgstr "" -#: readelf.c:1474 +#: readelf.c:1781 msgid "EXEC (Executable file)" msgstr "" -#: readelf.c:1475 +#: readelf.c:1782 msgid "DYN (Shared object file)" msgstr "" -#: readelf.c:1476 +#: readelf.c:1783 msgid "CORE (Core file)" msgstr "" -#: readelf.c:1480 +#: readelf.c:1787 #, c-format msgid "Processor Specific: (%x)" msgstr "" -#: readelf.c:1482 +#: readelf.c:1789 #, c-format msgid "OS Specific: (%x)" msgstr "" -#: readelf.c:1484 readelf.c:1588 readelf.c:2253 +#: readelf.c:1791 readelf.c:1898 readelf.c:2574 #, c-format msgid ": %x" msgstr "" -#: readelf.c:1497 +#: readelf.c:1804 msgid "None" msgstr "" -#: readelf.c:2295 +#: readelf.c:2616 msgid "Usage: readelf elf-file(s)\n" msgstr "" -#: readelf.c:2296 +#: readelf.c:2617 msgid " Display information about the contents of ELF format files\n" msgstr "" -#: readelf.c:2297 +#: readelf.c:2618 msgid "" " Options are:\n" " -a --all Equivalent to: -h -l -S -s -r -d -V -A -I\n" @@ -2333,13 +2378,13 @@ msgid "" " Display the contents of DWARF2 debug sections\n" msgstr "" -#: readelf.c:2319 +#: readelf.c:2640 msgid "" " -i --instruction-dump=\n" " Disassemble the contents of section \n" msgstr "" -#: readelf.c:2323 +#: readelf.c:2644 msgid "" " -I --histogram Display histogram of bucket list lengths\n" " -W --wide Allow output width to exceed 80 characters\n" @@ -2347,312 +2392,321 @@ msgid "" " -v --version Display the version number of readelf\n" msgstr "" -#: readelf.c:2345 +#: readelf.c:2666 readelf.c:10765 msgid "Out of memory allocating dump request table." msgstr "" -#: readelf.c:2509 readelf.c:2585 +#: readelf.c:2830 readelf.c:2906 #, c-format msgid "Unrecognized debug option '%s'\n" msgstr "" -#: readelf.c:2619 +#: readelf.c:2940 #, c-format msgid "Invalid option '-%c'\n" msgstr "" -#: readelf.c:2632 +#: readelf.c:2953 msgid "Nothing to do.\n" msgstr "" -#: readelf.c:2645 readelf.c:2662 readelf.c:4975 +#: readelf.c:2966 readelf.c:2983 readelf.c:5366 msgid "none" msgstr "" -#: readelf.c:2649 readelf.c:2666 readelf.c:2694 +#: readelf.c:2970 readelf.c:2987 readelf.c:3018 #, c-format msgid "" msgstr "" -#: readelf.c:2663 +#: readelf.c:2984 msgid "2's complement, little endian" msgstr "" -#: readelf.c:2664 +#: readelf.c:2985 msgid "2's complement, big endian" msgstr "" -#: readelf.c:2691 +#: readelf.c:3015 msgid "Standalone App" msgstr "" -#: readelf.c:2709 +#: readelf.c:3034 msgid "Not an ELF file - it has the wrong magic bytes at the start\n" msgstr "" -#: readelf.c:2717 +#: readelf.c:3042 msgid "ELF Header:\n" msgstr "" -#: readelf.c:2718 +#: readelf.c:3043 msgid " Magic: " msgstr "" -#: readelf.c:2722 +#: readelf.c:3047 #, c-format msgid " Class: %s\n" msgstr "" -#: readelf.c:2724 +#: readelf.c:3049 #, c-format msgid " Data: %s\n" msgstr "" -#: readelf.c:2726 +#: readelf.c:3051 #, c-format msgid " Version: %d %s\n" msgstr "" -#: readelf.c:2733 +#: readelf.c:3058 #, c-format msgid " OS/ABI: %s\n" msgstr "" -#: readelf.c:2735 +#: readelf.c:3060 #, c-format msgid " ABI Version: %d\n" msgstr "" -#: readelf.c:2737 +#: readelf.c:3062 #, c-format msgid " Type: %s\n" msgstr "" -#: readelf.c:2739 +#: readelf.c:3064 #, c-format msgid " Machine: %s\n" msgstr "" -#: readelf.c:2741 +#: readelf.c:3066 #, c-format msgid " Version: 0x%lx\n" msgstr "" -#: readelf.c:2744 +#: readelf.c:3069 msgid " Entry point address: " msgstr "" -#: readelf.c:2746 +#: readelf.c:3071 msgid "" "\n" " Start of program headers: " msgstr "" -#: readelf.c:2748 +#: readelf.c:3073 msgid "" " (bytes into file)\n" " Start of section headers: " msgstr "" -#: readelf.c:2750 +#: readelf.c:3075 msgid " (bytes into file)\n" msgstr "" -#: readelf.c:2752 +#: readelf.c:3077 #, c-format msgid " Flags: 0x%lx%s\n" msgstr "" -#: readelf.c:2755 +#: readelf.c:3080 #, c-format msgid " Size of this header: %ld (bytes)\n" msgstr "" -#: readelf.c:2757 +#: readelf.c:3082 #, c-format msgid " Size of program headers: %ld (bytes)\n" msgstr "" -#: readelf.c:2759 +#: readelf.c:3084 #, c-format msgid " Number of program headers: %ld\n" msgstr "" -#: readelf.c:2761 +#: readelf.c:3086 #, c-format msgid " Size of section headers: %ld (bytes)\n" msgstr "" -#: readelf.c:2763 +#: readelf.c:3088 #, c-format msgid " Number of section headers: %ld" msgstr "" -#: readelf.c:2768 +#: readelf.c:3093 #, c-format msgid " Section header string table index: %ld" msgstr "" -#: readelf.c:2802 readelf.c:2838 +#: readelf.c:3127 readelf.c:3163 msgid "program headers" msgstr "" -#: readelf.c:2872 +#: readelf.c:3203 readelf.c:3480 readelf.c:3526 readelf.c:3589 readelf.c:3656 +#: readelf.c:4715 readelf.c:4758 readelf.c:4948 readelf.c:5917 readelf.c:5931 +#: readelf.c:10411 +msgid "Out of memory\n" +msgstr "" + +#: readelf.c:3231 msgid "" "\n" "There are no program headers in this file.\n" msgstr "" -#: readelf.c:2878 +#: readelf.c:3237 #, c-format msgid "" "\n" "Elf file type is %s\n" msgstr "" -#: readelf.c:2879 +#: readelf.c:3238 msgid "Entry point " msgstr "" -#: readelf.c:2881 +#: readelf.c:3240 #, c-format msgid "" "\n" "There are %d program headers, starting at offset " msgstr "" -#: readelf.c:2892 readelf.c:3119 readelf.c:3165 readelf.c:3228 readelf.c:3295 -#: readelf.c:4330 readelf.c:4373 readelf.c:4562 readelf.c:5522 readelf.c:5536 -#: readelf.c:9775 readelf.c:9815 -msgid "Out of memory\n" -msgstr "" - -#: readelf.c:2910 readelf.c:2912 +#: readelf.c:3252 readelf.c:3254 msgid "" "\n" "Program Headers:\n" msgstr "" -#: readelf.c:2916 +#: readelf.c:3258 msgid "" " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align\n" msgstr "" -#: readelf.c:2919 +#: readelf.c:3261 msgid "" " Type Offset VirtAddr PhysAddr FileSiz " "MemSiz Flg Align\n" msgstr "" -#: readelf.c:2923 +#: readelf.c:3265 msgid " Type Offset VirtAddr PhysAddr\n" msgstr "" -#: readelf.c:2925 +#: readelf.c:3267 msgid " FileSiz MemSiz Flags Align\n" msgstr "" -#: readelf.c:3025 +#: readelf.c:3360 msgid "more than one dynamic segment\n" msgstr "" -#: readelf.c:3033 +#: readelf.c:3368 msgid "Unable to find program interpreter name\n" msgstr "" -#: readelf.c:3040 +#: readelf.c:3375 #, c-format msgid "" "\n" " [Requesting program interpreter: %s]" msgstr "" -#: readelf.c:3058 +#: readelf.c:3387 msgid "" "\n" " Section to Segment mapping:\n" msgstr "" -#: readelf.c:3059 +#: readelf.c:3388 msgid " Segment Sections...\n" msgstr "" -#: readelf.c:3110 readelf.c:3156 +#: readelf.c:3437 +msgid "Cannot interpret virtual addresses without program headers.\n" +msgstr "" + +#: readelf.c:3453 +#, c-format +msgid "Virtual address 0x%lx not located in any PT_LOAD segment.\n" +msgstr "" + +#: readelf.c:3471 readelf.c:3517 msgid "section headers" msgstr "" -#: readelf.c:3204 readelf.c:3271 +#: readelf.c:3565 readelf.c:3632 msgid "symbols" msgstr "" -#: readelf.c:3215 readelf.c:3282 +#: readelf.c:3576 readelf.c:3643 msgid "symtab shndx" msgstr "" -#: readelf.c:3384 +#: readelf.c:3745 msgid "" "\n" "There are no sections in this file.\n" msgstr "" -#: readelf.c:3390 +#: readelf.c:3751 #, c-format msgid "There are %d section headers, starting at offset 0x%lx:\n" msgstr "" -#: readelf.c:3407 readelf.c:3721 readelf.c:4068 readelf.c:5673 +#: readelf.c:3768 readelf.c:4098 readelf.c:4433 readelf.c:6070 msgid "string table" msgstr "" -#: readelf.c:3428 +#: readelf.c:3793 msgid "File contains multiple dynamic symbol tables\n" msgstr "" -#: readelf.c:3440 +#: readelf.c:3805 msgid "File contains multiple dynamic string tables\n" msgstr "" -#: readelf.c:3446 +#: readelf.c:3811 msgid "dynamic strings" msgstr "" -#: readelf.c:3452 +#: readelf.c:3817 msgid "File contains multiple symtab shndx tables\n" msgstr "" -#: readelf.c:3490 +#: readelf.c:3855 msgid "" "\n" "Section Headers:\n" msgstr "" -#: readelf.c:3492 +#: readelf.c:3857 msgid "" "\n" "Section Header:\n" msgstr "" -#: readelf.c:3496 +#: readelf.c:3861 msgid "" " [Nr] Name Type Addr Off Size ES Flg Lk " "Inf Al\n" msgstr "" -#: readelf.c:3499 +#: readelf.c:3864 msgid "" " [Nr] Name Type Address Off Size ES " "Flg Lk Inf Al\n" msgstr "" -#: readelf.c:3502 +#: readelf.c:3867 msgid " [Nr] Name Type Address Offset\n" msgstr "" -#: readelf.c:3503 +#: readelf.c:3868 msgid " Size EntSize Flags Link Info Align\n" msgstr "" -#: readelf.c:3598 +#: readelf.c:3963 msgid "" "Key to Flags:\n" " W (write), A (alloc), X (execute), M (merge), S (strings)\n" @@ -2660,500 +2714,500 @@ msgid "" " O (extra OS processing required) o (OS specific), p (processor specific)\n" msgstr "" -#: readelf.c:3659 +#: readelf.c:4031 #, c-format msgid "" "\n" -"Relocation section at offset 0x%lx contains %ld bytes:\n" +"'%s' relocation section at offset 0x%lx contains %ld bytes:\n" msgstr "" -#: readelf.c:3666 +#: readelf.c:4043 msgid "" "\n" "There are no dynamic relocations in this file.\n" msgstr "" -#: readelf.c:3693 +#: readelf.c:4070 msgid "" "\n" "Relocation section " msgstr "" -#: readelf.c:3698 readelf.c:4131 readelf.c:4145 +#: readelf.c:4075 readelf.c:4496 readelf.c:4510 #, c-format msgid "'%s'" msgstr "" -#: readelf.c:3700 readelf.c:4147 +#: readelf.c:4077 readelf.c:4512 #, c-format msgid " at offset 0x%lx contains %lu entries:\n" msgstr "" -#: readelf.c:3738 +#: readelf.c:4115 msgid "" "\n" "There are no relocations in this file.\n" msgstr "" -#: readelf.c:3934 +#: readelf.c:4299 msgid "unwind table" msgstr "" -#: readelf.c:3985 readelf.c:3997 readelf.c:8006 readelf.c:8018 +#: readelf.c:4350 readelf.c:4362 readelf.c:8499 readelf.c:8511 #, c-format msgid "Skipping unexpected symbol type %u\n" msgstr "" -#: readelf.c:4005 +#: readelf.c:4370 #, c-format msgid "Skipping unexpected relocation type %s\n" msgstr "" -#: readelf.c:4050 readelf.c:4075 +#: readelf.c:4415 readelf.c:4440 msgid "" "\n" "There are no unwind sections in this file.\n" msgstr "" -#: readelf.c:4126 +#: readelf.c:4491 msgid "" "\n" "Could not find unwind info section for " msgstr "" -#: readelf.c:4138 +#: readelf.c:4503 msgid "unwind info" msgstr "" -#: readelf.c:4140 +#: readelf.c:4505 msgid "" "\n" "Unwind section " msgstr "" -#: readelf.c:4314 readelf.c:4357 +#: readelf.c:4699 readelf.c:4742 msgid "dynamic segment" msgstr "" -#: readelf.c:4435 +#: readelf.c:4820 msgid "" "\n" "There is no dynamic segment in this file.\n" msgstr "" -#: readelf.c:4469 +#: readelf.c:4854 msgid "Unable to seek to end of file!" msgstr "" -#: readelf.c:4480 +#: readelf.c:4865 msgid "Unable to determine the number of symbols to load\n" msgstr "" -#: readelf.c:4510 +#: readelf.c:4895 msgid "Unable to seek to end of file\n" msgstr "" -#: readelf.c:4516 +#: readelf.c:4901 msgid "Unable to determine the length of the dynamic string table\n" msgstr "" -#: readelf.c:4521 +#: readelf.c:4906 msgid "dynamic string table" msgstr "" -#: readelf.c:4555 +#: readelf.c:4941 msgid "symbol information" msgstr "" -#: readelf.c:4579 +#: readelf.c:4965 #, c-format msgid "" "\n" -"Dynamic segment at offset 0x%x contains %ld entries:\n" +"Dynamic segment at offset 0x%lx contains %ld entries:\n" msgstr "" -#: readelf.c:4582 +#: readelf.c:4968 msgid " Tag Type Name/Value\n" msgstr "" -#: readelf.c:4618 +#: readelf.c:5004 msgid "Auxiliary library" msgstr "" -#: readelf.c:4622 +#: readelf.c:5008 msgid "Filter library" msgstr "" -#: readelf.c:4626 +#: readelf.c:5012 msgid "Configuration file" msgstr "" -#: readelf.c:4630 +#: readelf.c:5016 msgid "Dependency audit library" msgstr "" -#: readelf.c:4634 +#: readelf.c:5020 msgid "Audit library" msgstr "" -#: readelf.c:4652 readelf.c:4680 readelf.c:4708 +#: readelf.c:5038 readelf.c:5066 readelf.c:5094 msgid "Flags:" msgstr "" -#: readelf.c:4655 readelf.c:4683 readelf.c:4710 +#: readelf.c:5041 readelf.c:5069 readelf.c:5096 msgid " None\n" msgstr "" -#: readelf.c:4830 +#: readelf.c:5217 #, c-format msgid "Shared library: [%s]" msgstr "" -#: readelf.c:4833 +#: readelf.c:5220 msgid " program interpreter" msgstr "" -#: readelf.c:4837 +#: readelf.c:5224 #, c-format msgid "Library soname: [%s]" msgstr "" -#: readelf.c:4841 +#: readelf.c:5228 #, c-format msgid "Library rpath: [%s]" msgstr "" -#: readelf.c:4845 +#: readelf.c:5232 #, c-format msgid "Library runpath: [%s]" msgstr "" -#: readelf.c:4908 +#: readelf.c:5296 #, c-format msgid "Not needed object: [%s]\n" msgstr "" -#: readelf.c:5021 +#: readelf.c:5412 #, c-format msgid "" "\n" "Version definition section '%s' contains %ld entries:\n" msgstr "" -#: readelf.c:5024 +#: readelf.c:5415 msgid " Addr: 0x" msgstr "" -#: readelf.c:5026 readelf.c:5221 +#: readelf.c:5417 readelf.c:5612 #, c-format msgid " Offset: %#08lx Link: %lx (%s)\n" msgstr "" -#: readelf.c:5033 +#: readelf.c:5424 msgid "version definition section" msgstr "" -#: readelf.c:5059 +#: readelf.c:5450 #, c-format msgid " %#06x: Rev: %d Flags: %s" msgstr "" -#: readelf.c:5062 +#: readelf.c:5453 #, c-format msgid " Index: %d Cnt: %d " msgstr "" -#: readelf.c:5073 +#: readelf.c:5464 #, c-format msgid "Name: %s\n" msgstr "" -#: readelf.c:5075 +#: readelf.c:5466 #, c-format msgid "Name index: %ld\n" msgstr "" -#: readelf.c:5090 +#: readelf.c:5481 #, c-format msgid " %#06x: Parent %d: %s\n" msgstr "" -#: readelf.c:5093 +#: readelf.c:5484 #, c-format msgid " %#06x: Parent %d, name index: %ld\n" msgstr "" -#: readelf.c:5112 +#: readelf.c:5503 #, c-format msgid "" "\n" "Version needs section '%s' contains %ld entries:\n" msgstr "" -#: readelf.c:5115 +#: readelf.c:5506 msgid " Addr: 0x" msgstr "" -#: readelf.c:5117 +#: readelf.c:5508 #, c-format msgid " Offset: %#08lx Link to section: %ld (%s)\n" msgstr "" -#: readelf.c:5123 +#: readelf.c:5514 msgid "version need section" msgstr "" -#: readelf.c:5145 +#: readelf.c:5536 #, c-format msgid " %#06x: Version: %d" msgstr "" -#: readelf.c:5148 +#: readelf.c:5539 #, c-format msgid " File: %s" msgstr "" -#: readelf.c:5150 +#: readelf.c:5541 #, c-format msgid " File: %lx" msgstr "" -#: readelf.c:5152 +#: readelf.c:5543 #, c-format msgid " Cnt: %d\n" msgstr "" -#: readelf.c:5170 +#: readelf.c:5561 #, c-format msgid " %#06x: Name: %s" msgstr "" -#: readelf.c:5173 +#: readelf.c:5564 #, c-format msgid " %#06x: Name index: %lx" msgstr "" -#: readelf.c:5176 +#: readelf.c:5567 #, c-format msgid " Flags: %s Version: %d\n" msgstr "" -#: readelf.c:5212 +#: readelf.c:5603 msgid "version string table" msgstr "" -#: readelf.c:5216 +#: readelf.c:5607 #, c-format msgid "" "\n" "Version symbols section '%s' contains %d entries:\n" msgstr "" -#: readelf.c:5219 +#: readelf.c:5610 msgid " Addr: " msgstr "" -#: readelf.c:5229 +#: readelf.c:5622 msgid "version symbol data" msgstr "" -#: readelf.c:5256 +#: readelf.c:5649 msgid " 0 (*local*) " msgstr "" -#: readelf.c:5260 +#: readelf.c:5653 msgid " 1 (*global*) " msgstr "" -#: readelf.c:5295 readelf.c:5730 +#: readelf.c:5689 readelf.c:6129 msgid "version need" msgstr "" -#: readelf.c:5305 +#: readelf.c:5699 msgid "version need aux (2)" msgstr "" -#: readelf.c:5346 readelf.c:5792 +#: readelf.c:5741 readelf.c:6192 msgid "version def" msgstr "" -#: readelf.c:5365 readelf.c:5807 +#: readelf.c:5760 readelf.c:6207 msgid "version def aux" msgstr "" -#: readelf.c:5396 +#: readelf.c:5791 msgid "" "\n" "No version information found in this file.\n" msgstr "" -#: readelf.c:5528 +#: readelf.c:5923 msgid "Unable to read in dynamic data\n" msgstr "" -#: readelf.c:5570 +#: readelf.c:5967 msgid "Unable to seek to start of dynamic information" msgstr "" -#: readelf.c:5576 +#: readelf.c:5973 msgid "Failed to read in number of buckets\n" msgstr "" -#: readelf.c:5582 +#: readelf.c:5979 msgid "Failed to read in number of chains\n" msgstr "" -#: readelf.c:5602 +#: readelf.c:5999 msgid "" "\n" "Symbol table for image:\n" msgstr "" -#: readelf.c:5604 +#: readelf.c:6001 msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n" msgstr "" -#: readelf.c:5606 +#: readelf.c:6003 msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n" msgstr "" -#: readelf.c:5651 +#: readelf.c:6048 #, c-format msgid "" "\n" "Symbol table '%s' contains %lu entries:\n" msgstr "" -#: readelf.c:5655 +#: readelf.c:6052 msgid " Num: Value Size Type Bind Vis Ndx Name\n" msgstr "" -#: readelf.c:5657 +#: readelf.c:6054 msgid " Num: Value Size Type Bind Vis Ndx Name\n" msgstr "" -#: readelf.c:5703 +#: readelf.c:6101 msgid "version data" msgstr "" -#: readelf.c:5743 +#: readelf.c:6142 msgid "version need aux (3)" msgstr "" -#: readelf.c:5768 +#: readelf.c:6167 msgid "bad dynamic symbol" msgstr "" -#: readelf.c:5830 +#: readelf.c:6230 msgid "" "\n" "Dynamic symbol information is not available for displaying symbols.\n" msgstr "" -#: readelf.c:5842 +#: readelf.c:6242 #, c-format msgid "" "\n" "Histogram for bucket list length (total of %d buckets):\n" msgstr "" -#: readelf.c:5844 +#: readelf.c:6244 #, c-format msgid " Length Number %% of total Coverage\n" msgstr "" -#: readelf.c:5849 readelf.c:5868 readelf.c:9262 readelf.c:9454 +#: readelf.c:6249 readelf.c:6268 readelf.c:9898 readelf.c:10090 msgid "Out of memory" msgstr "" -#: readelf.c:5917 +#: readelf.c:6317 #, c-format msgid "" "\n" "Dynamic info segment at offset 0x%lx contains %d entries:\n" msgstr "" -#: readelf.c:5920 +#: readelf.c:6320 msgid " Num: Name BoundTo Flags\n" msgstr "" -#: readelf.c:5972 +#: readelf.c:6373 #, c-format msgid "" "\n" "Assembly dump of section %s\n" msgstr "" -#: readelf.c:5995 +#: readelf.c:6396 #, c-format msgid "" "\n" "Section '%s' has no data to dump.\n" msgstr "" -#: readelf.c:6000 +#: readelf.c:6401 #, c-format msgid "" "\n" "Hex dump of section '%s':\n" msgstr "" -#: readelf.c:6005 +#: readelf.c:6406 msgid "section data" msgstr "" -#: readelf.c:6154 +#: readelf.c:6555 msgid "badly formed extended line op encountered!\n" msgstr "" -#: readelf.c:6161 +#: readelf.c:6562 #, c-format msgid " Extended opcode %d: " msgstr "" -#: readelf.c:6166 +#: readelf.c:6567 msgid "" "End of Sequence\n" "\n" msgstr "" -#: readelf.c:6172 +#: readelf.c:6573 #, c-format msgid "set Address to 0x%lx\n" msgstr "" -#: readelf.c:6177 +#: readelf.c:6578 msgid " define new File Table entry\n" msgstr "" -#: readelf.c:6178 readelf.c:6307 +#: readelf.c:6579 readelf.c:6726 msgid " Entry\tDir\tTime\tSize\tName\n" msgstr "" -#: readelf.c:6180 +#: readelf.c:6581 #, c-format msgid " %d\t" msgstr "" -#: readelf.c:6183 readelf.c:6185 readelf.c:6187 readelf.c:6319 readelf.c:6321 -#: readelf.c:6323 +#: readelf.c:6584 readelf.c:6586 readelf.c:6588 readelf.c:6738 readelf.c:6740 +#: readelf.c:6742 #, c-format msgid "%lu\t" msgstr "" -#: readelf.c:6188 +#: readelf.c:6589 #, c-format msgid "" "%s\n" "\n" msgstr "" -#: readelf.c:6192 +#: readelf.c:6593 #, c-format msgid "UNKNOWN: length %d\n" msgstr "" -#: readelf.c:6218 +#: readelf.c:6621 #, c-format msgid "" "\n" @@ -3161,690 +3215,674 @@ msgid "" "\n" msgstr "" -#: readelf.c:6230 -msgid "64-bit DWARF line info is not supported yet.\n" -msgstr "" - -#: readelf.c:6237 +#: readelf.c:6649 msgid "The line info appears to be corrupt - the section is too small\n" msgstr "" -#: readelf.c:6245 -msgid "Only DWARF version 2 line info is currently supported.\n" +#: readelf.c:6658 +msgid "Only DWARF version 2 and 3 line info is currently supported.\n" msgstr "" -#: readelf.c:6260 +#: readelf.c:6679 #, c-format msgid " Length: %ld\n" msgstr "" -#: readelf.c:6261 +#: readelf.c:6680 #, c-format msgid " DWARF Version: %d\n" msgstr "" -#: readelf.c:6262 +#: readelf.c:6681 #, c-format msgid " Prologue Length: %d\n" msgstr "" -#: readelf.c:6263 +#: readelf.c:6682 #, c-format msgid " Minimum Instruction Length: %d\n" msgstr "" -#: readelf.c:6264 +#: readelf.c:6683 #, c-format msgid " Initial value of 'is_stmt': %d\n" msgstr "" -#: readelf.c:6265 +#: readelf.c:6684 #, c-format msgid " Line Base: %d\n" msgstr "" -#: readelf.c:6266 +#: readelf.c:6685 #, c-format msgid " Line Range: %d\n" msgstr "" -#: readelf.c:6267 +#: readelf.c:6686 #, c-format msgid " Opcode Base: %d\n" msgstr "" -#: readelf.c:6276 +#: readelf.c:6695 msgid "" "\n" " Opcodes:\n" msgstr "" -#: readelf.c:6279 +#: readelf.c:6698 #, c-format msgid " Opcode %d has %d args\n" msgstr "" -#: readelf.c:6285 +#: readelf.c:6704 msgid "" "\n" " The Directory Table is empty.\n" msgstr "" -#: readelf.c:6288 +#: readelf.c:6707 msgid "" "\n" " The Directory Table:\n" msgstr "" -#: readelf.c:6292 +#: readelf.c:6711 #, c-format msgid " %s\n" msgstr "" -#: readelf.c:6303 +#: readelf.c:6722 msgid "" "\n" " The File Name Table is empty.\n" msgstr "" -#: readelf.c:6306 +#: readelf.c:6725 msgid "" "\n" " The File Name Table:\n" msgstr "" -#: readelf.c:6314 +#: readelf.c:6733 #, c-format msgid " %d\t" msgstr "" -#: readelf.c:6325 +#: readelf.c:6744 #, c-format msgid "%s\n" msgstr "" #. Now display the statements. -#: readelf.c:6333 +#: readelf.c:6752 msgid "" "\n" " Line Number Statements:\n" msgstr "" -#: readelf.c:6349 +#: readelf.c:6768 #, c-format msgid " Special opcode %d: advance Address by %d to 0x%lx" msgstr "" -#: readelf.c:6353 +#: readelf.c:6772 #, c-format msgid " and Line by %d to %d\n" msgstr "" -#: readelf.c:6364 +#: readelf.c:6783 msgid " Copy\n" msgstr "" -#: readelf.c:6371 +#: readelf.c:6790 #, c-format msgid " Advance PC by %d to %lx\n" msgstr "" -#: readelf.c:6379 +#: readelf.c:6798 #, c-format msgid " Advance Line by %d to %d\n" msgstr "" -#: readelf.c:6386 +#: readelf.c:6805 #, c-format msgid " Set File Name to entry %d in the File Name Table\n" msgstr "" -#: readelf.c:6394 +#: readelf.c:6813 #, c-format msgid " Set column to %d\n" msgstr "" -#: readelf.c:6401 +#: readelf.c:6820 #, c-format msgid " Set is_stmt to %d\n" msgstr "" -#: readelf.c:6406 +#: readelf.c:6825 msgid " Set basic block\n" msgstr "" -#: readelf.c:6414 +#: readelf.c:6833 #, c-format msgid " Advance PC by constant %d to 0x%lx\n" msgstr "" -#: readelf.c:6422 +#: readelf.c:6841 #, c-format msgid " Advance PC by fixed size amount %d to 0x%lx\n" msgstr "" -#: readelf.c:6427 +#: readelf.c:6846 msgid " Set prologue_end to true\n" msgstr "" -#: readelf.c:6431 +#: readelf.c:6850 msgid " Set epilogue_begin to true\n" msgstr "" -#: readelf.c:6437 +#: readelf.c:6856 #, c-format msgid " Set ISA to %d\n" msgstr "" -#: readelf.c:6441 +#: readelf.c:6860 #, c-format msgid " Unknown opcode %d with operands: " msgstr "" -#: readelf.c:6473 readelf.c:6935 readelf.c:7007 +#: readelf.c:6891 readelf.c:7371 readelf.c:7443 #, c-format msgid "" "Contents of the %s section:\n" "\n" msgstr "" -#: readelf.c:6492 -msgid "64-bit DWARF pubnames are not supported yet.\n" +#: readelf.c:6931 +msgid "Only DWARF 2 and 3 pubnames are currently supported\n" msgstr "" -#: readelf.c:6502 -msgid "Only DWARF 2 pubnames are currently supported\n" -msgstr "" - -#: readelf.c:6509 +#: readelf.c:6938 #, c-format msgid " Length: %ld\n" msgstr "" -#: readelf.c:6511 +#: readelf.c:6940 #, c-format msgid " Version: %d\n" msgstr "" -#: readelf.c:6513 +#: readelf.c:6942 #, c-format msgid " Offset into .debug_info section: %ld\n" msgstr "" -#: readelf.c:6515 +#: readelf.c:6944 #, c-format msgid " Size of area in .debug_info section: %ld\n" msgstr "" -#: readelf.c:6518 +#: readelf.c:6947 msgid "" "\n" " Offset\tName\n" msgstr "" -#: readelf.c:6609 +#: readelf.c:7042 #, c-format msgid "Unknown TAG value: %lx" msgstr "" -#: readelf.c:6720 +#: readelf.c:7156 #, c-format msgid "Unknown AT value: %lx" msgstr "" -#: readelf.c:6757 +#: readelf.c:7193 #, c-format msgid "Unknown FORM value: %lx" msgstr "" -#: readelf.c:6956 +#: readelf.c:7392 #, c-format msgid " DW_MACINFO_start_file - lineno: %d filenum: %d\n" msgstr "" -#: readelf.c:6961 +#: readelf.c:7397 msgid " DW_MACINFO_end_file\n" msgstr "" -#: readelf.c:6969 +#: readelf.c:7405 #, c-format msgid " DW_MACINFO_define - lineno : %d macro : %s\n" msgstr "" -#: readelf.c:6977 +#: readelf.c:7413 #, c-format msgid " DW_MACINFO_undef - lineno : %d macro : %s\n" msgstr "" -#: readelf.c:6988 +#: readelf.c:7424 #, c-format msgid " DW_MACINFO_vendor_ext - constant : %d string : %s\n" msgstr "" -#: readelf.c:7016 +#: readelf.c:7452 msgid " Number TAG\n" msgstr "" -#: readelf.c:7022 +#: readelf.c:7458 #, c-format msgid " %ld %s [%s]\n" msgstr "" -#: readelf.c:7025 +#: readelf.c:7461 msgid "has children" msgstr "" -#: readelf.c:7025 +#: readelf.c:7461 msgid "no children" msgstr "" -#: readelf.c:7029 +#: readelf.c:7465 #, c-format msgid " %-18s %s\n" msgstr "" -#: readelf.c:7050 +#: readelf.c:7486 #, c-format msgid " %lu byte block: " msgstr "" -#: readelf.c:7378 +#: readelf.c:7814 msgid "(User defined location op)" msgstr "" -#: readelf.c:7380 +#: readelf.c:7816 msgid "(Unknown location op)" msgstr "" -#: readelf.c:7418 +#: readelf.c:7855 msgid "debug_loc section data" msgstr "" -#: readelf.c:7450 +#: readelf.c:7887 msgid "" "\n" "The .debug_loc section is empty.\n" msgstr "" -#: readelf.c:7454 +#: readelf.c:7891 msgid "" "Contents of the .debug_loc section:\n" "\n" msgstr "" -#: readelf.c:7455 +#: readelf.c:7892 msgid "" "\n" " Offset Begin End Expression\n" msgstr "" -#: readelf.c:7528 +#: readelf.c:7968 msgid "debug_str section data" msgstr "" -#: readelf.c:7547 +#: readelf.c:7987 msgid "" msgstr "" -#: readelf.c:7550 +#: readelf.c:7990 msgid "" msgstr "" -#: readelf.c:7569 +#: readelf.c:8009 msgid "" "\n" "The .debug_str section is empty.\n" msgstr "" -#: readelf.c:7573 +#: readelf.c:8013 msgid "" "Contents of the .debug_str section:\n" "\n" msgstr "" -#: readelf.c:7743 +#: readelf.c:8088 +msgid "Internal error: DWARF version is not 2 or 3.\n" +msgstr "" + +#: readelf.c:8203 #, c-format -msgid " (indirect string, offset: 0x%lx): " +msgid " (indirect string, offset: 0x%lx): %s" msgstr "" -#: readelf.c:7752 +#: readelf.c:8212 #, c-format msgid "Unrecognized form: %d\n" msgstr "" -#: readelf.c:7765 +#: readelf.c:8226 msgid "(not inlined)" msgstr "" -#: readelf.c:7766 +#: readelf.c:8229 msgid "(inlined)" msgstr "" -#: readelf.c:7767 +#: readelf.c:8232 msgid "(declared as inline but ignored)" msgstr "" -#: readelf.c:7768 +#: readelf.c:8235 msgid "(declared as inline and inlined)" msgstr "" -#: readelf.c:7769 +#: readelf.c:8238 #, c-format msgid " (Unknown inline attribute value: %lx)" msgstr "" -#: readelf.c:7940 readelf.c:8145 +#: readelf.c:8419 readelf.c:8646 #, c-format msgid "" "The section %s contains:\n" "\n" msgstr "" -#: readelf.c:7964 -msgid "64-bit DWARF debug info is not supported yet.\n" -msgstr "" - -#: readelf.c:8036 +#: readelf.c:8535 #, c-format msgid " Compilation Unit @ %lx:\n" msgstr "" -#: readelf.c:8037 +#: readelf.c:8536 #, c-format msgid " Length: %ld\n" msgstr "" -#: readelf.c:8038 +#: readelf.c:8537 #, c-format msgid " Version: %d\n" msgstr "" -#: readelf.c:8039 +#: readelf.c:8538 #, c-format msgid " Abbrev Offset: %ld\n" msgstr "" -#: readelf.c:8040 +#: readelf.c:8539 #, c-format msgid " Pointer Size: %d\n" msgstr "" -#: readelf.c:8044 -msgid "Only version 2 DWARF debug information is currently supported.\n" +#: readelf.c:8543 +msgid "Only version 2 and 3 DWARF debug information is currently supported.\n" msgstr "" -#: readelf.c:8064 +#: readelf.c:8563 msgid "Unable to locate .debug_abbrev section!\n" msgstr "" -#: readelf.c:8070 +#: readelf.c:8569 msgid "debug_abbrev section data" msgstr "" -#: readelf.c:8107 +#: readelf.c:8606 #, c-format msgid "Unable to locate entry %lu in the abbreviation table\n" msgstr "" -#: readelf.c:8112 +#: readelf.c:8611 #, c-format msgid " <%d><%lx>: Abbrev Number: %lu (%s)\n" msgstr "" -#: readelf.c:8166 -msgid "64-bit DWARF aranges are not supported yet.\n" -msgstr "" - -#: readelf.c:8172 -msgid "Only DWARF 2 aranges are currently supported.\n" +#: readelf.c:8691 +msgid "Only DWARF 2 and 3 aranges are currently supported.\n" msgstr "" -#: readelf.c:8176 +#: readelf.c:8695 #, c-format msgid " Length: %ld\n" msgstr "" -#: readelf.c:8177 +#: readelf.c:8696 #, c-format msgid " Version: %d\n" msgstr "" -#: readelf.c:8178 +#: readelf.c:8697 #, c-format msgid " Offset into .debug_info: %lx\n" msgstr "" -#: readelf.c:8179 +#: readelf.c:8698 #, c-format msgid " Pointer Size: %d\n" msgstr "" -#: readelf.c:8180 +#: readelf.c:8699 #, c-format msgid " Segment Size: %d\n" msgstr "" -#: readelf.c:8182 +#: readelf.c:8701 msgid "" "\n" " Address Length\n" msgstr "" -#: readelf.c:8364 +#: readelf.c:8903 #, c-format msgid "The section %s contains:\n" msgstr "" -#: readelf.c:8387 -msgid "64-bit DWARF format frames are not supported yet.\n" -msgstr "" - -#: readelf.c:8936 +#: readelf.c:9538 #, c-format msgid "Displaying the debug contents of section %s is not yet supported.\n" msgstr "" -#: readelf.c:9002 +#: readelf.c:9634 #, c-format msgid "" "\n" "Section '%s' has no debugging data.\n" msgstr "" -#: readelf.c:9007 readelf.c:9069 +#: readelf.c:9639 readelf.c:9701 msgid "debug section data" msgstr "" -#: readelf.c:9023 +#: readelf.c:9655 #, c-format msgid "Unrecognized debug section: %s\n" msgstr "" -#: readelf.c:9097 +#: readelf.c:9729 msgid "Some sections were not dumped because they do not exist!\n" msgstr "" -#: readelf.c:9170 readelf.c:9534 +#: readelf.c:9806 readelf.c:10170 msgid "liblist" msgstr "" -#: readelf.c:9255 +#: readelf.c:9891 msgid "options" msgstr "" -#: readelf.c:9286 +#: readelf.c:9922 #, c-format msgid "" "\n" "Section '%s' contains %d entries:\n" msgstr "" -#: readelf.c:9447 +#: readelf.c:10083 msgid "conflict list found without a dynamic symbol table" msgstr "" -#: readelf.c:9465 readelf.c:9481 +#: readelf.c:10101 readelf.c:10117 msgid "conflict" msgstr "" -#: readelf.c:9491 +#: readelf.c:10127 #, c-format msgid "" "\n" "Section '.conflict' contains %ld entries:\n" msgstr "" -#: readelf.c:9493 +#: readelf.c:10129 msgid " Num: Index Value Name" msgstr "" -#: readelf.c:9542 +#: readelf.c:10178 msgid "liblist string table" msgstr "" -#: readelf.c:9551 +#: readelf.c:10187 #, c-format msgid "" "\n" "Library list section '%s' contains %lu entries:\n" msgstr "" -#: readelf.c:9600 +#: readelf.c:10236 msgid "NT_PRSTATUS (prstatus structure)" msgstr "" -#: readelf.c:9601 +#: readelf.c:10237 msgid "NT_FPREGSET (floating point registers)" msgstr "" -#: readelf.c:9602 +#: readelf.c:10238 msgid "NT_PRPSINFO (prpsinfo structure)" msgstr "" -#: readelf.c:9603 +#: readelf.c:10239 msgid "NT_TASKSTRUCT (task structure)" msgstr "" -#: readelf.c:9604 +#: readelf.c:10240 msgid "NT_PRXFPREG (user_xfpregs structure)" msgstr "" -#: readelf.c:9605 +#: readelf.c:10241 msgid "NT_PSTATUS (pstatus structure)" msgstr "" -#: readelf.c:9606 +#: readelf.c:10242 msgid "NT_FPREGS (floating point registers)" msgstr "" -#: readelf.c:9607 +#: readelf.c:10243 msgid "NT_PSINFO (psinfo structure)" msgstr "" -#: readelf.c:9608 +#: readelf.c:10244 msgid "NT_LWPSTATUS (lwpstatus_t structure)" msgstr "" -#: readelf.c:9609 +#: readelf.c:10245 msgid "NT_LWPSINFO (lwpsinfo_t structure)" msgstr "" -#: readelf.c:9610 +#: readelf.c:10246 msgid "NT_WIN32PSTATUS (win32_pstatus structure)" msgstr "" -#: readelf.c:9612 readelf.c:9636 +#: readelf.c:10248 readelf.c:10272 #, c-format msgid "Unknown note type: (0x%08x)" msgstr "" #. NetBSD core "procinfo" structure. -#: readelf.c:9626 +#: readelf.c:10262 msgid "NetBSD procinfo structure" msgstr "" -#: readelf.c:9653 readelf.c:9667 +#: readelf.c:10289 readelf.c:10303 msgid "PT_GETREGS (reg structure)" msgstr "" -#: readelf.c:9655 readelf.c:9669 +#: readelf.c:10291 readelf.c:10305 msgid "PT_GETFPREGS (fpreg structure)" msgstr "" -#: readelf.c:9675 +#: readelf.c:10311 #, c-format msgid "PT_FIRSTMACH+%d" msgstr "" -#: readelf.c:9729 +#: readelf.c:10365 msgid "notes" msgstr "" -#: readelf.c:9735 +#: readelf.c:10371 #, c-format msgid "" "\n" "Notes at offset 0x%08lx with length 0x%08lx:\n" msgstr "" -#: readelf.c:9737 +#: readelf.c:10373 msgid " Owner\t\tData size\tDescription\n" msgstr "" -#: readelf.c:9756 +#: readelf.c:10392 #, c-format msgid "corrupt note found at offset %x into core notes\n" msgstr "" -#: readelf.c:9758 +#: readelf.c:10394 #, c-format msgid " type: %x, namesize: %08lx, descsize: %08lx\n" msgstr "" -#: readelf.c:9860 +#: readelf.c:10476 msgid "No note segments present in the core file.\n" msgstr "" -#: readelf.c:9938 +#: readelf.c:10560 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 "" -#: readelf.c:9984 +#: readelf.c:10606 #, c-format msgid "Cannot stat input file %s.\n" msgstr "" -#: readelf.c:9991 +#: readelf.c:10613 #, c-format msgid "Input file %s not found.\n" msgstr "" -#: readelf.c:9997 +#: readelf.c:10619 #, c-format msgid "%s: Failed to read file header\n" msgstr "" -#: readelf.c:10011 +#: readelf.c:10633 #, c-format msgid "" "\n" "File: %s\n" msgstr "" -#: rename.c:131 +#: rename.c:132 #, c-format msgid "%s: cannot set time: %s" msgstr "" #. We have to clean up here. -#: rename.c:170 rename.c:203 +#: rename.c:171 rename.c:204 #, c-format msgid "%s: rename: %s" msgstr "" -#: rename.c:211 +#: rename.c:212 #, c-format msgid "%s: simple_copy: %s" msgstr "" @@ -4182,7 +4220,7 @@ msgstr "" msgid "%s: read of %lu returned %lu" msgstr "" -#: resrc.c:650 resrc.c:904 resrc.c:1177 resrc.c:1331 +#: resrc.c:650 resrc.c:905 resrc.c:1178 resrc.c:1332 #, c-format msgid "stat failed on bitmap file `%s': %s" msgstr "" @@ -4192,25 +4230,25 @@ msgstr "" msgid "cursor file `%s' does not contain cursor data" msgstr "" -#: resrc.c:735 resrc.c:1048 +#: resrc.c:735 resrc.c:1049 #, c-format msgid "%s: fseek to %lu failed: %s" msgstr "" -#: resrc.c:872 +#: resrc.c:873 msgid "help ID requires DIALOGEX" msgstr "" -#: resrc.c:874 +#: resrc.c:875 msgid "control data requires DIALOGEX" msgstr "" -#: resrc.c:1017 +#: resrc.c:1018 #, c-format msgid "icon file `%s' does not contain icon data" msgstr "" -#: resrc.c:1536 +#: resrc.c:1537 #, c-format msgid "can't open `%s' for output: %s" msgstr "" @@ -4228,7 +4266,7 @@ msgstr "" msgid "" " 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 " +" -o|-d|-x --radix={8|10|16} Display numbers in octal, decimal or " "hex\n" " -t --totals Display the total sizes (Berkeley " "only)\n" @@ -4267,116 +4305,116 @@ msgstr "" msgid "unable to open output file %s" msgstr "" -#: stabs.c:343 stabs.c:1759 +#: stabs.c:346 stabs.c:1755 msgid "numeric overflow" msgstr "" -#: stabs.c:354 +#: stabs.c:357 #, c-format msgid "Bad stab: %s\n" msgstr "" -#: stabs.c:364 +#: stabs.c:367 #, c-format msgid "Warning: %s: %s\n" msgstr "" -#: stabs.c:485 +#: stabs.c:488 msgid "N_LBRAC not within function\n" msgstr "" -#: stabs.c:524 +#: stabs.c:527 msgid "Too many N_RBRACs\n" msgstr "" -#: stabs.c:769 +#: stabs.c:773 msgid "unknown C++ encoded name" msgstr "" #. Complain and keep going, so compilers can invent new #. cross-reference types. -#: stabs.c:1296 +#: stabs.c:1293 msgid "unrecognized cross reference type" msgstr "" #. Does this actually ever happen? Is that why we are worrying #. about dealing with it rather than just calling error_type? -#: stabs.c:1851 +#: stabs.c:1847 msgid "missing index type" msgstr "" -#: stabs.c:2178 +#: stabs.c:2174 msgid "unknown virtual character for baseclass" msgstr "" -#: stabs.c:2196 +#: stabs.c:2192 msgid "unknown visibility character for baseclass" msgstr "" -#: stabs.c:2388 +#: stabs.c:2384 msgid "unnamed $vb type" msgstr "" -#: stabs.c:2394 +#: stabs.c:2390 msgid "unrecognized C++ abbreviation" msgstr "" -#: stabs.c:2474 +#: stabs.c:2470 msgid "unknown visibility character for field" msgstr "" -#: stabs.c:2730 +#: stabs.c:2726 msgid "const/volatile indicator missing" msgstr "" -#: stabs.c:2971 +#: stabs.c:2967 #, c-format msgid "No mangling for \"%s\"\n" msgstr "" -#: stabs.c:3285 +#: stabs.c:3281 msgid "Undefined N_EXCL" msgstr "" -#: stabs.c:3373 +#: stabs.c:3369 #, c-format msgid "Type file number %d out of range\n" msgstr "" -#: stabs.c:3378 +#: stabs.c:3374 #, c-format msgid "Type index number %d out of range\n" msgstr "" -#: stabs.c:3465 +#: stabs.c:3461 #, c-format msgid "Unrecognized XCOFF type %d\n" msgstr "" -#: stabs.c:3764 +#: stabs.c:3762 #, c-format msgid "bad mangled name `%s'\n" msgstr "" -#: stabs.c:3861 +#: stabs.c:3859 msgid "no argument types in mangled string\n" msgstr "" -#: strings.c:200 +#: strings.c:208 #, c-format msgid "invalid number %s" msgstr "" -#: strings.c:640 +#: strings.c:647 #, c-format msgid "invalid integer argument %s" msgstr "" -#: strings.c:651 +#: strings.c:658 msgid " Display printable strings in [file(s)] (stdin by default)\n" msgstr "" -#: strings.c:652 +#: strings.c:659 msgid "" " The options are:\n" " -a - --all Scan the entire file, not just the data section\n" @@ -4388,8 +4426,9 @@ msgid "" "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" +" -e --encoding={s,S,b,l,B,L} Select character size and endianness:\n" +" s = 7-bit, 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 "" @@ -4420,100 +4459,116 @@ msgid "" "the GNU General Public License. This program has absolutely no warranty.\n" msgstr "" -#: windres.c:239 +#: windres.c:205 #, c-format msgid "can't open %s `%s': %s" msgstr "" -#: windres.c:418 +#: windres.c:384 msgid ": expected to be a directory\n" msgstr "" -#: windres.c:430 +#: windres.c:396 msgid ": expected to be a leaf\n" msgstr "" -#: windres.c:439 +#: windres.c:405 #, c-format msgid "%s: warning: " msgstr "" -#: windres.c:441 +#: windres.c:407 msgid ": duplicate value\n" msgstr "" -#: windres.c:602 +#: windres.c:569 #, c-format msgid "unknown format type `%s'" msgstr "" -#: windres.c:603 +#: windres.c:570 #, c-format msgid "%s: supported formats:" msgstr "" #. Otherwise, we give up. -#: windres.c:688 +#: windres.c:655 #, c-format msgid "can not determine type of file `%s'; use the -I option" msgstr "" -#: windres.c:702 +#: windres.c:669 #, c-format msgid "Usage: %s [option(s)] [input-file] [output-file]\n" msgstr "" -#: windres.c:704 +#: windres.c:671 msgid "" " The options are:\n" " -i --input= Name input file\n" " -o --output= Name output file\n" -" -I --input-format= Specify input format\n" +" -J --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" +" -I --include-dir= Include directory when preprocessing rc file\n" " -D --define [=] Define SYM when preprocessing rc file\n" +" -U --undefine Undefine SYM when preprocessing rc file\n" " -v --verbose Verbose - tells you what it's doing\n" -" --language= Set language when reading rc file\n" +" -l --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 "" -#: windres.c:719 +#: windres.c:687 msgid " --yydebug Turn on parser debugging\n" msgstr "" -#: windres.c:722 +#: windres.c:690 msgid "" +" -r Ignored for compatibility with rc\n" " -h --help Print this help message\n" " -V --version Print version information\n" msgstr "" -#: windres.c:725 +#: windres.c:694 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 "" -#: windres.c:988 +#: windres.c:833 +msgid "invalid option -f\n" +msgstr "" + +#: windres.c:838 +msgid "No filename following the -fo option.\n" +msgstr "" + +#: windres.c:896 +msgid "" +"Option -I is deprecated for setting the input format, please use -J " +"instead.\n" +msgstr "" + +#: windres.c:1014 msgid "no resources" msgstr "" -#: wrstabs.c:366 wrstabs.c:2026 +#: wrstabs.c:395 wrstabs.c:2055 #, c-format msgid "string_hash_lookup failed: %s" msgstr "" -#: wrstabs.c:666 +#: wrstabs.c:695 #, c-format msgid "stab_int_type: bad size %u" msgstr "" -#: wrstabs.c:1466 +#: wrstabs.c:1495 #, c-format msgid "%s: warning: unknown size for field `%s' in struct" msgstr "" diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/binutils/po/es.po binutils-2.14.90.0.5/binutils/po/es.po --- binutils-2.14.90.0.4.1/binutils/po/es.po 2002-07-29 08:19:16.000000000 -0700 +++ binutils-2.14.90.0.5/binutils/po/es.po 2003-07-23 08:08:10.000000000 -0700 @@ -1,12 +1,12 @@ -# Mensajes en español para binutils 2.12.91. -# Copyright (C) 2002 Free Software Foundation, Inc. -# Cristian Othón Martínez Vera , 2002. +# Mensajes en español para binutils 2.14rel030712. +# Copyright (C) 2002, 2003 Free Software Foundation, Inc. +# Cristian Othón Martínez Vera , 2002, 2003. # msgid "" msgstr "" -"Project-Id-Version: binutils 2.12.91\n" -"POT-Creation-Date: 2002-07-23 15:55-0400\n" -"PO-Revision-Date: 2002-07-24 16:37-0500\n" +"Project-Id-Version: binutils 2.14rel030712\n" +"POT-Creation-Date: 2003-07-11 13:56+0930\n" +"PO-Revision-Date: 2003-07-14 18:41-0500\n" "Last-Translator: Cristian Othón Martínez Vera \n" "Language-Team: Spanish \n" "MIME-Version: 1.0\n" @@ -49,19 +49,19 @@ msgstr "" " -v --version Muestra la versión del programa\n" "\n" -#: 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 +#: addr2line.c:89 ar.c:297 coffdump.c:479 nlmconv.c:1121 objcopy.c:484 +#: objcopy.c:518 readelf.c:2649 size.c:104 srconv.c:1962 strings.c:673 +#: sysdump.c:774 windres.c:702 #, c-format msgid "Report bugs to %s\n" msgstr "Reportar bichos a %s\n" -#: addr2line.c:248 +#: addr2line.c:245 #, c-format msgid "%s: can not get addresses from archive" msgstr "%s: no se pueden obtener las direcciones del archivo" -#: addr2line.c:320 nm.c:395 objdump.c:2782 +#: addr2line.c:317 nm.c:433 objdump.c:2693 #, c-format msgid "unknown demangling style `%s'" msgstr "estilo de desenredo `%s' desconocido" @@ -218,7 +218,7 @@ msgstr "El valor para `N' debe ser posit msgid "internal error -- this option not implemented" msgstr "error interno -- esta opción no está implementada" -#: ar.c:837 ar.c:888 ar.c:1333 objcopy.c:1348 +#: ar.c:837 ar.c:888 ar.c:1333 objcopy.c:1579 #, c-format msgid "internal stat error on %s" msgstr "error interno de stat en %s" @@ -330,40 +330,45 @@ msgid " No emulation specific options\n msgstr " No hay opciones específicas de la emulación\n" #. Macros for common output. -#: binemul.h:42 +#: binemul.h:52 #, c-format msgid " emulation options: \n" msgstr " opciones de emulación:\n" -#: bucomm.c:106 +#: bucomm.c:113 #, c-format msgid "can't set BFD default target to `%s': %s" msgstr "no se puede establecer el objetivo BFD por omisión a `%s': %s" -#: bucomm.c:118 +#: bucomm.c:125 #, c-format msgid "%s: Matching formats:" msgstr "%s: Formatos coincidentes:" -#: bucomm.c:135 +#: bucomm.c:142 msgid "Supported targets:" msgstr "Objetivos con soporte:" -#: bucomm.c:137 +#: bucomm.c:144 #, c-format msgid "%s: supported targets:" msgstr "%s: objetivos con soporte:" -#: bucomm.c:153 +#: bucomm.c:162 msgid "Supported architectures:" msgstr "Arquitecturas con soporte:" -#: bucomm.c:155 +#: bucomm.c:164 #, c-format msgid "%s: supported architectures:" msgstr "%s: arquitecturas con soporte:" -#: bucomm.c:262 +#: bucomm.c:360 +#, c-format +msgid "BFD header file version %s\n" +msgstr "encabezado del fichero BFD versión %s\n" + +#: bucomm.c:467 #, c-format msgid "%s: bad number: %s" msgstr "%s: número erróneo: %s" @@ -398,95 +403,91 @@ msgstr "" msgid "no input file specified" msgstr "no se especificó un fichero de entrada" -#: debug.c:653 +#: debug.c:654 msgid "debug_add_to_current_namespace: no current file" msgstr "debug_add_to_current_namespace: no hay un fichero actual" -#: debug.c:736 +#: debug.c:737 msgid "debug_start_source: no debug_set_filename call" msgstr "debug_start_source: no hay una llamada debug_set_filename" -#: debug.c:795 +#: debug.c:796 msgid "debug_record_function: no debug_set_filename call" msgstr "debug_record_function: no hay una llamada debug_set_filename" -#: debug.c:851 +#: debug.c:852 msgid "debug_record_parameter: no current function" msgstr "debug_record_parameter: no hay una función actual" -#: debug.c:885 +#: debug.c:886 msgid "debug_end_function: no current function" msgstr "debug_end_function: no hay una función actual" -#: debug.c:891 +#: debug.c:892 msgid "debug_end_function: some blocks were not closed" msgstr "debug_end_function: algunos bloques no fueron cerrados" -#: debug.c:921 +#: debug.c:922 msgid "debug_start_block: no current block" msgstr "debug_start_block: no hay un bloque actual" -#: debug.c:959 +#: debug.c:960 msgid "debug_end_block: no current block" msgstr "debug_end_block: no hay un bloque actual" -#: debug.c:966 +#: debug.c:967 msgid "debug_end_block: attempt to close top level block" msgstr "debug_end_block: intento de cerrar el bloque del nivel principal" -#: debug.c:992 +#: debug.c:993 msgid "debug_record_line: no current unit" msgstr "debug_record_line: no hay una unidad actual" #. FIXME -#: debug.c:1046 +#: debug.c:1047 msgid "debug_start_common_block: not implemented" msgstr "debug_start_common_block: no está implementado" #. FIXME -#: debug.c:1058 +#: debug.c:1059 msgid "debug_end_common_block: not implemented" msgstr "debug_end_common_block: no está implementado" #. FIXME. -#: debug.c:1152 +#: debug.c:1153 msgid "debug_record_label: not implemented" msgstr "debug_record_label: no está implementado" -#: debug.c:1178 +#: debug.c:1179 msgid "debug_record_variable: no current file" msgstr "debug_record_variable: no hay un fichero actual" -#: debug.c:1194 -msgid "debug_record_variable: no current block" -msgstr "debug_record_variable: no hay un bloque actual" - -#: debug.c:1763 +#: debug.c:1762 msgid "debug_make_undefined_type: unsupported kind" msgstr "debug_make_undefined_type: género sin soporte" -#: debug.c:1964 +#: debug.c:1963 msgid "debug_name_type: no current file" msgstr "debug_name_type: no hay fichero actual" -#: debug.c:2012 +#: debug.c:2011 msgid "debug_tag_type: no current file" msgstr "debug_tag_type: no hay fichero actual" -#: debug.c:2020 +#: debug.c:2019 msgid "debug_tag_type: extra tag attempted" msgstr "debug_tag_type: se intentó una marca extra" -#: debug.c:2059 +#: debug.c:2058 #, c-format msgid "Warning: changing type size from %d to %d\n" msgstr "Aviso: cambiando el tamaño del tipo de %d a %d\n" -#: debug.c:2083 +#: debug.c:2082 msgid "debug_find_named_type: no current compilation unit" msgstr "debug_find_named_type: no hay una unidad de compilación actual" -#: debug.c:2190 +#: debug.c:2189 #, c-format msgid "debug_get_real_type: circular debug information for %s\n" msgstr "debug_get_real_type: información de depuración circular para %s\n" @@ -495,315 +496,315 @@ msgstr "debug_get_real_type: información msgid "debug_write_type: illegal type encountered" msgstr "debug_write_type: se encontró un tipo ilegal" -#: dlltool.c:735 dlltool.c:760 dlltool.c:786 +#: dlltool.c:812 dlltool.c:837 dlltool.c:863 #, c-format msgid "Internal error: Unknown machine type: %d" msgstr "Error interno: Tipo de máquina desconocido: %d" -#: dlltool.c:823 +#: dlltool.c:900 #, c-format msgid "Can't open def file: %s" msgstr "No se puede abrir el fichero def: %s" -#: dlltool.c:828 +#: dlltool.c:905 #, c-format msgid "Processing def file: %s" msgstr "Procesando el fichero def: %s" -#: dlltool.c:832 +#: dlltool.c:909 msgid "Processed def file" msgstr "Fichero def procesado" -#: dlltool.c:858 +#: dlltool.c:935 #, c-format msgid "Syntax error in def file %s:%d" msgstr "Error sintáctico en el fichero def %s:%d" -#: dlltool.c:897 +#: dlltool.c:974 #, c-format msgid "NAME: %s base: %x" msgstr "NOMBRE: %s base: %x" -#: dlltool.c:900 dlltool.c:919 +#: dlltool.c:977 dlltool.c:996 msgid "Can't have LIBRARY and NAME" msgstr "No se puede tener BIBLIOTECA y NOMBRE" -#: dlltool.c:916 +#: dlltool.c:993 #, c-format msgid "LIBRARY: %s base: %x" msgstr "BIBLIOTECA: %s base %x" -#: dlltool.c:1174 resrc.c:271 +#: dlltool.c:1251 resrc.c:271 #, c-format msgid "wait: %s" msgstr "espera: %s" -#: dlltool.c:1179 dllwrap.c:430 resrc.c:276 +#: dlltool.c:1256 dllwrap.c:430 resrc.c:276 #, c-format msgid "subprocess got fatal signal %d" msgstr "el subproceso recibió la señal fatal %d" -#: dlltool.c:1185 dllwrap.c:437 resrc.c:283 +#: dlltool.c:1262 dllwrap.c:437 resrc.c:283 #, c-format msgid "%s exited with status %d" msgstr "%s terminó con estado %d" -#: dlltool.c:1217 +#: dlltool.c:1294 #, c-format msgid "Sucking in info from %s section in %s" msgstr "Succionando la información de la sección %s en %s" -#: dlltool.c:1341 +#: dlltool.c:1423 #, c-format msgid "Excluding symbol: %s" msgstr "Excluyendo el símbolo: %s" -#: dlltool.c:1436 dlltool.c:1447 nm.c:959 nm.c:970 objdump.c:386 objdump.c:401 +#: dlltool.c:1518 dlltool.c:1529 nm.c:1004 nm.c:1015 #, c-format msgid "%s: no symbols" msgstr "%s: no hay símbolos" -#. FIXME: we ought to read in and block out the base relocations -#: dlltool.c:1474 +#. FIXME: we ought to read in and block out the base relocations. +#: dlltool.c:1556 #, c-format msgid "Done reading %s" msgstr "%s leído" -#: dlltool.c:1485 +#: dlltool.c:1567 #, c-format msgid "Unable to open object file: %s" msgstr "No se puede abrir el fichero objeto: %s" -#: dlltool.c:1488 +#: dlltool.c:1570 #, c-format msgid "Scanning object file %s" msgstr "Revisando el fichero objeto %s" -#: dlltool.c:1503 +#: dlltool.c:1585 #, c-format msgid "Cannot produce mcore-elf dll from archive file: %s" msgstr "No se puede producir una dll mcore-elf del fichero archivo: %s" -#: dlltool.c:1595 +#: dlltool.c:1677 msgid "Adding exports to output file" msgstr "Agregando exportaciones al fichero de salida" -#: dlltool.c:1640 +#: dlltool.c:1724 msgid "Added exports to output file" msgstr "Exportaciones agregadas al fichero de salida" -#: dlltool.c:1764 +#: dlltool.c:1848 #, c-format msgid "Generating export file: %s" msgstr "Generando el fichero de exportación: %s" -#: dlltool.c:1769 +#: dlltool.c:1853 #, c-format msgid "Unable to open temporary assembler file: %s" msgstr "No se puede abrir el fichero temporal de ensamblador: %s" -#: dlltool.c:1772 +#: dlltool.c:1856 #, c-format msgid "Opened temporary file: %s" msgstr "Se abrió el fichero temporal: %s" -#: dlltool.c:1996 +#: dlltool.c:2086 msgid "Generated exports file" msgstr "Fichero de exportación generado" -#: dlltool.c:2258 +#: dlltool.c:2378 #, c-format msgid "bfd_open failed open stub file: %s" msgstr "falló bfd_open al abrirl el fichero de cabos: %s" -#: dlltool.c:2261 +#: dlltool.c:2381 #, c-format msgid "Creating stub file: %s" msgstr "Creando el ficheor de cabos: %s" -#: dlltool.c:2650 +#: dlltool.c:2766 #, c-format msgid "failed to open temporary head file: %s" msgstr "falló la apertura del inicio del fichero temporal: %s" -#: dlltool.c:2709 +#: dlltool.c:2825 #, c-format msgid "failed to open temporary tail file: %s" msgstr "falló la apertura del final del fichero temporal: %s" -#: dlltool.c:2777 +#: dlltool.c:2892 #, c-format msgid "Can't open .lib file: %s" msgstr "No se puede abrir el fichero .lib: %s" -#: dlltool.c:2780 +#: dlltool.c:2895 #, c-format msgid "Creating library file: %s" msgstr "Creando el fichero de biblioteca: %s" -#: dlltool.c:2839 +#: dlltool.c:2951 #, c-format msgid "cannot delete %s: %s" msgstr "no se puede borrar %s: %s" -#: dlltool.c:2843 +#: dlltool.c:2955 msgid "Created lib file" msgstr "Fichero de biblioteca creado" -#: dlltool.c:2948 +#: dlltool.c:3062 #, c-format msgid "Warning, ignoring duplicate EXPORT %s %d,%d" msgstr "Aviso, ignorando las EXPORTaciones duplicadas %s %d,%d" -#: dlltool.c:2954 +#: dlltool.c:3068 #, c-format msgid "Error, duplicate EXPORT with oridinals: %s" msgstr "Error, EXPORTaciones duplicadas con ordinales: %s" -#: dlltool.c:3081 +#: dlltool.c:3191 msgid "Processing definitions" msgstr "Procesando definiciones" -#: dlltool.c:3119 +#: dlltool.c:3223 msgid "Processed definitions" msgstr "Definiciones procesadas" #. xgetext:c-format -#: dlltool.c:3130 dllwrap.c:495 +#: dlltool.c:3234 dllwrap.c:495 #, c-format msgid "Usage %s \n" msgstr "Modo de empleo %s \n" #. xgetext:c-format -#: dlltool.c:3132 +#: dlltool.c:3236 #, c-format msgid " -m --machine Create as DLL for . [default: %s]\n" msgstr " -m --machine Crear una DLL para la . [por omisión: %s]\n" -#: dlltool.c:3133 +#: dlltool.c:3237 msgid " possible : arm[_interwork], i386, mcore[-elf]{-le|-be}, ppc, thumb\n" msgstr " posible: arm[_interwork], i386, mcore[-elf]{-le|-be}, ppc, thumb\n" -#: dlltool.c:3134 +#: dlltool.c:3238 msgid " -e --output-exp Generate an export file.\n" msgstr " -e --output-exp Generar un fichero de exportación.\n" -#: dlltool.c:3135 +#: dlltool.c:3239 msgid " -l --output-lib Generate an interface library.\n" msgstr " -l --output-lib Generar un fichero de interfaz.\n" -#: dlltool.c:3136 +#: dlltool.c:3240 msgid " -a --add-indirect Add dll indirects to export file.\n" msgstr " -a --add-indirect Agregar indirecciones dll al fichero de exportación.\n" -#: dlltool.c:3137 +#: dlltool.c:3241 msgid " -D --dllname Name of input dll to put into interface lib.\n" msgstr " -D --dllname Nombre de la dll de entrada a colocar en la biblioteca de interfaz.\n" -#: dlltool.c:3138 +#: dlltool.c:3242 msgid " -d --input-def Name of .def file to be read in.\n" msgstr " -d --input-def Nombre del fichero .def para leer.\n" -#: dlltool.c:3139 +#: dlltool.c:3243 msgid " -z --output-def Name of .def file to be created.\n" msgstr " -z --output-def Nombre del fichero .def para crear.\n" -#: dlltool.c:3140 +#: dlltool.c:3244 msgid " --export-all-symbols Export all symbols to .def\n" msgstr " --export-all-symbols Exportar todos los símbolos a un .def\n" -#: dlltool.c:3141 +#: dlltool.c:3245 msgid " --no-export-all-symbols Only export listed symbols\n" msgstr " --no-export-all-symbols Sólo exportar los símbolos enlistados\n" -#: dlltool.c:3142 +#: dlltool.c:3246 msgid " --exclude-symbols Don't export \n" msgstr " --exclude-symbols No exportar la a\n" -#: dlltool.c:3143 +#: dlltool.c:3247 msgid " --no-default-excludes Clear default exclude symbols\n" msgstr " --no-default-excludes Limpiar los símbolos excluídos por omisión\n" -#: dlltool.c:3144 +#: dlltool.c:3248 msgid " -b --base-file Read linker generated base file.\n" msgstr " -b --base-file Leer el fichero base generado por el enlazador.\n" -#: dlltool.c:3145 +#: dlltool.c:3249 msgid " -x --no-idata4 Don't generate idata$4 section.\n" msgstr " -x --no-idata4 No generar la sección idata$4.\n" -#: dlltool.c:3146 +#: dlltool.c:3250 msgid " -c --no-idata5 Don't generate idata$5 section.\n" msgstr " -c --no-idata5 No generar la sección idata$5.\n" -#: dlltool.c:3147 +#: dlltool.c:3251 msgid " -U --add-underscore Add underscores to symbols in interface library.\n" msgstr " -U --add-underscore Agregar subrayado a los símbolos en la biblioteca de interfaz.\n" -#: dlltool.c:3148 +#: dlltool.c:3252 msgid " -k --kill-at Kill @ from exported names.\n" msgstr " -k --kill-at Eliminar @ de los nombres exportados.\n" -#: dlltool.c:3149 +#: dlltool.c:3253 msgid " -A --add-stdcall-alias Add aliases without @.\n" msgstr " -A --add-stdcall-alias Agregar aliases sin @.\n" -#: dlltool.c:3150 +#: dlltool.c:3254 msgid " -S --as Use for assembler.\n" msgstr " -S --as Usar para ensamblador.\n" -#: dlltool.c:3151 +#: dlltool.c:3255 msgid " -f --as-flags Pass to the assembler.\n" msgstr " -f --as-flags Pasar al ensamblador.\n" -#: dlltool.c:3152 +#: dlltool.c:3256 msgid " -C --compat-implib Create backward compatible import library.\n" msgstr " -C --compat-implib Crear biblioteca de importación compatible hacia atrás.\n" -#: dlltool.c:3153 +#: dlltool.c:3257 msgid " -n --no-delete Keep temp files (repeat for extra preservation).\n" msgstr " -n --no-delete Conservar los ficheros temporales (repetir para conservación extra).\n" -#: dlltool.c:3154 +#: dlltool.c:3258 msgid " -v --verbose Be verbose.\n" msgstr " -v --verbose Detallado.\n" -#: dlltool.c:3155 +#: dlltool.c:3259 msgid " -V --version Display the program version.\n" msgstr " -V --version Muestra la versión del programa.\n" -#: dlltool.c:3156 +#: dlltool.c:3260 msgid " -h --help Display this information.\n" msgstr " -h --help Muestra esta información.\n" -#: dlltool.c:3158 +#: dlltool.c:3262 msgid " -M --mcore-elf Process mcore-elf object files into .\n" msgstr " -M --mcore-elf Procesa los ficheros objeto mcore-elf hacia .\n" -#: dlltool.c:3159 +#: dlltool.c:3263 msgid " -L --linker Use as the linker.\n" msgstr " -L --linker Usa como el enlazador.\n" -#: dlltool.c:3160 +#: dlltool.c:3264 msgid " -F --linker-flags Pass to the linker.\n" msgstr " -F --linker-flags Pasa al enlazador.\n" -#: dlltool.c:3310 +#: dlltool.c:3418 #, c-format msgid "Unable to open base-file: %s" msgstr "No se puede abrir el fichero-base: %s" -#: dlltool.c:3339 +#: dlltool.c:3450 #, c-format msgid "Machine '%s' not supported" msgstr "La máquina '%s' no tiene soporte" -#: dlltool.c:3442 dllwrap.c:214 +#: dlltool.c:3553 dllwrap.c:214 #, c-format msgid "Tried file: %s" msgstr "Fichero intentado: %s" -#: dlltool.c:3449 dllwrap.c:221 +#: dlltool.c:3560 dllwrap.c:221 #, c-format msgid "Using file: %s" msgstr "Usando el fichero: %s" @@ -1012,375 +1013,375 @@ msgstr "nombre DRIVER : %s\n" msgid "DRIVER options : %s\n" msgstr "opciones DRIVER : %s\n" -#: emul_aix.c:52 +#: emul_aix.c:58 #, c-format msgid " [-g] - 32 bit small archive\n" msgstr " [-g] - archivo small de 32 bit\n" -#: emul_aix.c:53 +#: emul_aix.c:59 msgid " [-X32] - ignores 64 bit objects\n" msgstr " [-X32] - ignora los objetos de 64 bit\n" -#: emul_aix.c:54 +#: emul_aix.c:60 msgid " [-X64] - ignores 32 bit objects\n" msgstr " [-X64] - ignora los objetos de 32 bit\n" -#: emul_aix.c:55 +#: emul_aix.c:61 msgid " [-X32_64] - accepts 32 and 64 bit objects\n" msgstr " [-X32_64] -acepta objetos de 32 y 64 bit\n" -#: ieee.c:317 +#: ieee.c:326 msgid "unexpected end of debugging information" msgstr "fin inesperado de la información de depuración" -#: ieee.c:412 +#: ieee.c:421 msgid "invalid number" msgstr "número inválido" -#: ieee.c:471 +#: ieee.c:480 msgid "invalid string length" msgstr "longitud de cadena inválida" -#: ieee.c:528 ieee.c:569 +#: ieee.c:537 ieee.c:578 msgid "expression stack overflow" msgstr "desbordamiento de la pila de expresión" -#: ieee.c:548 +#: ieee.c:557 msgid "unsupported IEEE expression operator" msgstr "operador de expresión IEEE sin soporte" -#: ieee.c:563 +#: ieee.c:572 msgid "unknown section" msgstr "sección desconocida" -#: ieee.c:584 +#: ieee.c:593 msgid "expression stack underflow" msgstr "desbordamiento por debajo de la pila de expresión" -#: ieee.c:598 +#: ieee.c:607 msgid "expression stack mismatch" msgstr "no hay coincidencia en la pila de expresión" -#: ieee.c:637 +#: ieee.c:646 msgid "unknown builtin type" msgstr "tipo interno desconocido" -#: ieee.c:782 +#: ieee.c:791 msgid "BCD float type not supported" msgstr "tipo de coma flotante BCD sin soporte" -#: ieee.c:928 +#: ieee.c:937 msgid "unexpected number" msgstr "número inesperado" -#: ieee.c:935 +#: ieee.c:944 msgid "unexpected record type" msgstr "tipo de grabación inesperado" -#: ieee.c:968 +#: ieee.c:977 msgid "blocks left on stack at end" msgstr "se dejaron bloques en la pila al final" -#: ieee.c:1233 +#: ieee.c:1242 msgid "unknown BB type" msgstr "typo BB desconocido" -#: ieee.c:1242 +#: ieee.c:1251 msgid "stack overflow" msgstr "desbordamiento de la pila" -#: ieee.c:1267 +#: ieee.c:1276 msgid "stack underflow" msgstr "desbordamiento de la pila por debajo" -#: ieee.c:1381 ieee.c:1453 ieee.c:2152 +#: ieee.c:1390 ieee.c:1462 ieee.c:2161 msgid "illegal variable index" msgstr "índice de variable ilegal" -#: ieee.c:1431 +#: ieee.c:1440 msgid "illegal type index" msgstr "índice de tipo ilegal" -#: ieee.c:1441 ieee.c:1478 +#: ieee.c:1450 ieee.c:1487 msgid "unknown TY code" msgstr "código TY desconocido" -#: ieee.c:1460 +#: ieee.c:1469 msgid "undefined variable in TY" msgstr "variable indefinida en TY" #. Pascal file name. FIXME. -#: ieee.c:1871 +#: ieee.c:1880 msgid "Pascal file name not supported" msgstr "El nombre de fichero Pascal no tiene soporte" -#: ieee.c:1919 +#: ieee.c:1928 msgid "unsupported qualifier" msgstr "calificador sin soporte" -#: ieee.c:2190 +#: ieee.c:2199 msgid "undefined variable in ATN" msgstr "variable indefinida en ATN" -#: ieee.c:2233 +#: ieee.c:2242 msgid "unknown ATN type" msgstr "tipo ATN desconocido" #. Reserved for FORTRAN common. -#: ieee.c:2355 +#: ieee.c:2364 msgid "unsupported ATN11" msgstr "ATN11 sin soporte" #. We have no way to record this information. FIXME. -#: ieee.c:2382 +#: ieee.c:2391 msgid "unsupported ATN12" msgstr "ATN12 sin soporte" -#: ieee.c:2442 +#: ieee.c:2451 msgid "unexpected string in C++ misc" msgstr "cadena inesperada en misc de C++" -#: ieee.c:2455 +#: ieee.c:2464 msgid "bad misc record" msgstr "grabación misc errónea" -#: ieee.c:2498 +#: ieee.c:2507 msgid "unrecognized C++ misc record" msgstr "grabación misc de C++ no reconocida" -#: ieee.c:2615 +#: ieee.c:2624 msgid "undefined C++ object" msgstr "objeto C++ no definido" -#: ieee.c:2649 +#: ieee.c:2658 msgid "unrecognized C++ object spec" msgstr "especificación de objeto C++ no reconocida" -#: ieee.c:2685 +#: ieee.c:2694 msgid "unsupported C++ object type" msgstr "tipo de objeto C++ sin soporte" -#: ieee.c:2695 +#: ieee.c:2704 msgid "C++ base class not defined" msgstr "no está definida la clase base de C++" -#: ieee.c:2707 ieee.c:2812 +#: ieee.c:2716 ieee.c:2821 msgid "C++ object has no fields" msgstr "el objeto C++ no tiene campos" -#: ieee.c:2726 +#: ieee.c:2735 msgid "C++ base class not found in container" msgstr "no se encuentra la clase base C++ en el contenedor" -#: ieee.c:2833 +#: ieee.c:2842 msgid "C++ data member not found in container" msgstr "no se encuentra los datos miembros C++ en el contenedor" -#: ieee.c:2874 ieee.c:3024 +#: ieee.c:2883 ieee.c:3033 msgid "unknown C++ visibility" msgstr "visibilidad C++ desconocida" -#: ieee.c:2908 +#: ieee.c:2917 msgid "bad C++ field bit pos or size" msgstr "posición o tamaño erróneo del campo de bit C++" -#: ieee.c:3000 +#: ieee.c:3009 msgid "bad type for C++ method function" msgstr "tipo erróneo para la función del método C++" -#: ieee.c:3010 +#: ieee.c:3019 msgid "no type information for C++ method function" msgstr "no hay información de tipo para la función del método C++" -#: ieee.c:3049 +#: ieee.c:3058 msgid "C++ static virtual method" msgstr "método virtual static de C++" -#: ieee.c:3144 +#: ieee.c:3153 msgid "unrecognized C++ object overhead spec" msgstr "especificación de adelanto de objeto C++ no reconocida" -#: ieee.c:3183 +#: ieee.c:3192 msgid "undefined C++ vtable" msgstr "vtable C++ no definida" -#: ieee.c:3254 +#: ieee.c:3263 msgid "C++ default values not in a function" msgstr "valores C++ por omisión no están en una función" -#: ieee.c:3294 +#: ieee.c:3303 msgid "unrecognized C++ default type" msgstr "tipo por omisión de C++ no reconocido" -#: ieee.c:3325 +#: ieee.c:3334 msgid "reference parameter is not a pointer" msgstr "el parámetro de referencia no es un apuntador" -#: ieee.c:3410 +#: ieee.c:3419 msgid "unrecognized C++ reference type" msgstr "tipo de referencia de C++ no reconocido" -#: ieee.c:3492 +#: ieee.c:3501 msgid "C++ reference not found" msgstr "no se encontró la referencia C++" -#: ieee.c:3500 +#: ieee.c:3509 msgid "C++ reference is not pointer" msgstr "la referencia C++ no es un apuntador" -#: ieee.c:3529 ieee.c:3537 +#: ieee.c:3538 ieee.c:3546 msgid "missing required ASN" msgstr "falta el ASN requerido" -#: ieee.c:3567 ieee.c:3575 +#: ieee.c:3576 ieee.c:3584 msgid "missing required ATN65" msgstr "falta el ATN65 requerido" -#: ieee.c:3589 +#: ieee.c:3598 msgid "bad ATN65 record" msgstr "registro ATN65 erróneo" -#: ieee.c:4234 +#: ieee.c:4286 msgid "IEEE numeric overflow: 0x" msgstr "desbordamiento numérico IEEE: 0x" -#: ieee.c:4280 +#: ieee.c:4332 #, c-format msgid "IEEE string length overflow: %u\n" msgstr "desbordamiento de longitud de cadena IEEE: %u\n" -#: ieee.c:5330 +#: ieee.c:5382 #, c-format msgid "IEEE unsupported integer type size %u\n" msgstr "tamaño de tipo entero IEEE %u sin soporte\n" -#: ieee.c:5366 +#: ieee.c:5418 #, c-format msgid "IEEE unsupported float type size %u\n" msgstr "tamaño de tipo coma flotante IEEE %u sin soporte\n" -#: ieee.c:5402 +#: ieee.c:5454 #, c-format msgid "IEEE unsupported complex type size %u\n" msgstr "tamaño de tipo complejo IEEE %u sin soporte\n" -#: nlmconv.c:281 srconv.c:2043 +#: nlmconv.c:282 srconv.c:2043 msgid "input and output files must be different" msgstr "los ficheros de entrada y salida deben ser diferentes" -#: nlmconv.c:328 +#: nlmconv.c:329 msgid "input file named both on command line and with INPUT" msgstr "fichero de entrada nombrado en la línea de comandos y con INPUT" -#: nlmconv.c:337 +#: nlmconv.c:338 msgid "no input file" msgstr "no hay fichero de entrada" -#: nlmconv.c:367 +#: nlmconv.c:368 msgid "no name for output file" msgstr "no hay nombre para el fichero de salida" -#: nlmconv.c:380 +#: nlmconv.c:382 msgid "warning: input and output formats are not compatible" msgstr "aviso: los formatos de entrada y salida no son compatibles" -#: nlmconv.c:409 +#: nlmconv.c:411 msgid "make .bss section" msgstr "hacer sección .bss" -#: nlmconv.c:418 +#: nlmconv.c:420 msgid "make .nlmsections section" msgstr "hacer sección .nlmsections" -#: nlmconv.c:420 +#: nlmconv.c:422 msgid "set .nlmsections flags" msgstr "establecer opciones .nlmsections" -#: nlmconv.c:448 +#: nlmconv.c:450 msgid "set .bss vma" msgstr "establecer vma .bss" -#: nlmconv.c:455 +#: nlmconv.c:457 msgid "set .data size" msgstr "establecer tamaño de .data" -#: nlmconv.c:635 +#: nlmconv.c:637 #, c-format msgid "warning: symbol %s imported but not in import list" msgstr "aviso: se importó el símbolo %s pero no está en la lista de importación" -#: nlmconv.c:655 +#: nlmconv.c:657 msgid "set start address" msgstr "establecer la dirección de inicio" -#: nlmconv.c:704 +#: nlmconv.c:706 #, c-format msgid "warning: START procedure %s not defined" msgstr "aviso: el procedimiento START %s no está definido" -#: nlmconv.c:706 +#: nlmconv.c:708 #, c-format msgid "warning: EXIT procedure %s not defined" msgstr "aviso: el procedimiento EXIT %s no está definido" -#: nlmconv.c:708 +#: nlmconv.c:710 #, c-format msgid "warning: CHECK procedure %s not defined" msgstr "aviso: el procedimiento CHECK %s no está definido" -#: nlmconv.c:729 nlmconv.c:918 +#: nlmconv.c:731 nlmconv.c:920 msgid "custom section" msgstr "sección a la medida" -#: nlmconv.c:750 nlmconv.c:947 +#: nlmconv.c:752 nlmconv.c:949 msgid "help section" msgstr "sección de ayuda" -#: nlmconv.c:772 nlmconv.c:965 +#: nlmconv.c:774 nlmconv.c:967 msgid "message section" msgstr "sección de mensajes" -#: nlmconv.c:788 nlmconv.c:998 +#: nlmconv.c:790 nlmconv.c:1000 msgid "module section" msgstr "sección de módulos" -#: nlmconv.c:808 nlmconv.c:1014 +#: nlmconv.c:810 nlmconv.c:1016 msgid "rpc section" msgstr "sección de rpc" #. There is no place to record this information. -#: nlmconv.c:844 +#: nlmconv.c:846 #, c-format msgid "%s: warning: shared libraries can not have uninitialized data" msgstr "%s: aviso: las bibliotecas compartidas no pueden tener datos sin iniciar" -#: nlmconv.c:865 nlmconv.c:1033 +#: nlmconv.c:867 nlmconv.c:1035 msgid "shared section" msgstr "sección compartida" -#: nlmconv.c:873 +#: nlmconv.c:875 msgid "warning: No version number given" msgstr "aviso: No se dió un número de versión" -#: nlmconv.c:913 nlmconv.c:942 nlmconv.c:960 nlmconv.c:1009 nlmconv.c:1028 +#: nlmconv.c:915 nlmconv.c:944 nlmconv.c:962 nlmconv.c:1011 nlmconv.c:1030 #, c-format msgid "%s: read: %s" msgstr "%s: leído: %s" -#: nlmconv.c:935 +#: nlmconv.c:937 msgid "warning: MAP and FULLMAP are not supported; try ld -M" msgstr "aviso: MAP y FULLMAP no tienen soporte; pruebe ld -M" -#: nlmconv.c:1107 +#: nlmconv.c:1109 #, c-format msgid "Usage: %s [option(s)] [in-file [out-file]]\n" msgstr "Modo de empleo: %s [opcion(es)] [fichero-entrada [fichero-salida]]\n" -#: nlmconv.c:1108 +#: nlmconv.c:1110 msgid " Convert an object file into a NetWare Loadable Module\n" msgstr "Convertir un fichero objeto en un Módulo Cargable de NetWare (NLM)\n" -#: nlmconv.c:1109 +#: nlmconv.c:1111 msgid "" " The options are:\n" " -I --input-target= Set the input binary file format\n" @@ -1400,73 +1401,73 @@ msgstr "" " -h --help Muestra esta información\n" " -v --version Muestra la versión del programa\n" -#: nlmconv.c:1151 +#: nlmconv.c:1153 #, c-format msgid "support not compiled in for %s" msgstr "soporte no compilado para %s" -#: nlmconv.c:1191 +#: nlmconv.c:1193 msgid "make section" msgstr "sección make" -#: nlmconv.c:1205 +#: nlmconv.c:1207 msgid "set section size" msgstr "establecer el tamaño de la sección" -#: nlmconv.c:1211 +#: nlmconv.c:1213 msgid "set section alignment" msgstr "establecer la alineación de la sección" -#: nlmconv.c:1215 +#: nlmconv.c:1217 msgid "set section flags" msgstr "establecer las opciones de la sección" -#: nlmconv.c:1226 +#: nlmconv.c:1228 msgid "set .nlmsections size" msgstr "establecer el tamaño de .nlmsections" -#: nlmconv.c:1314 nlmconv.c:1322 nlmconv.c:1331 nlmconv.c:1336 +#: nlmconv.c:1316 nlmconv.c:1324 nlmconv.c:1333 nlmconv.c:1338 msgid "set .nlmsection contents" msgstr "establecer el contenido de .nlmsection" -#: nlmconv.c:1837 +#: nlmconv.c:1839 msgid "stub section sizes" msgstr "tamaños de la sección de cabos" -#: nlmconv.c:1886 +#: nlmconv.c:1888 msgid "writing stub" msgstr "escribiendo cabo" -#: nlmconv.c:1975 +#: nlmconv.c:1977 #, c-format msgid "unresolved PC relative reloc against %s" msgstr "reubicación relativa PC contra %s sin resolver" -#: nlmconv.c:2039 +#: nlmconv.c:2041 #, c-format msgid "overflow when adjusting relocation against %s" msgstr "desbordamiento al ajustar la reubicación contra %s" -#: nlmconv.c:2156 +#: nlmconv.c:2158 #, c-format msgid "%s: execution of %s failed: " msgstr "%s: falló la ejecución de %s: " -#: nlmconv.c:2171 +#: nlmconv.c:2173 #, c-format msgid "Execution of %s failed" msgstr "Falló la ejecución de %s" -#: nm.c:246 size.c:85 strings.c:650 +#: nm.c:283 size.c:85 strings.c:657 #, c-format msgid "Usage: %s [option(s)] [file(s)]\n" msgstr "Modo de empleo: %s [opcion(es)] [fichero(s)]\n" -#: nm.c:247 +#: nm.c:284 msgid " List symbols in [file(s)] (a.out by default).\n" msgstr "Lista de símbolos en [fichero(s)] (a.out por omisión).\n" -#: nm.c:248 +#: nm.c:285 msgid "" " The options are:\n" " -a, --debug-syms Display debugger-only symbols\n" @@ -1474,7 +1475,8 @@ msgid "" " -B Same as --format=bsd\n" " -C, --demangle[=STYLE] Decode low-level symbol names into user-level names\n" " The STYLE, if specified, can be `auto' (the default),\n" -" `gnu', 'lucid', 'arm', 'hp', 'edg' or 'gnu-new-abi'\n" +" `gnu', `lucid', `arm', `hp', `edg', `gnu-v3', `java'\n" +" or `gnat'\n" " --no-demangle Do not demangle low-level symbol names\n" " -D, --dynamic Display dynamic symbols instead of normal symbols\n" " --defined-only Display only defined symbols\n" @@ -1508,8 +1510,8 @@ msgstr "" " -C, --demangle[=ESTILO] Decodifica los nombres de símbolo de bajo nivel en\n" " nombres de nivel de usuario\n" " El ESTILO, si se especifica, puede ser `auto'\n" -" (por omisión), `gnu', 'lucid', 'arm', 'hp', 'edg'\n" -" o 'gnu-new-abi'\n" +" (por omisión), `gnu', `lucid', `arm', `hp', `edg',\n" +" `gnu-v3', `java' o `gnat'\n" " --no-demangle No decodifica los nombres de símbolo de bajo nivel\n" " -D, --dynamic Muestra los símbolos dinámicos en lugar de los\n" " símbolos normales\n" @@ -1540,46 +1542,54 @@ msgstr "" " -V, --version Muestra el número de versión de este programa\n" "\n" -#: nm.c:281 objdump.c:217 +#: nm.c:319 objdump.c:250 #, c-format msgid "Report bugs to %s.\n" msgstr "Reportar bichos a %s.\n" -#: nm.c:314 +#: nm.c:352 #, c-format msgid "%s: invalid radix" msgstr "%s: radical inválido" -#: nm.c:339 +#: nm.c:377 #, c-format msgid "%s: invalid output format" msgstr "%s: formato de salida inválido" -#: nm.c:456 +#: nm.c:494 msgid "Only -X 32_64 is supported" msgstr "Solamente -X 32_64 tiene soporte" -#: nm.c:498 +#: nm.c:514 +msgid "Using the --size-sort and --undefined-only options together" +msgstr "Al usar juntas las opciones --size-sort y --undefined-only" + +#: nm.c:515 +msgid "will produce no output, since undefined symbols have no size." +msgstr "no se producirá salida, porque los símbolos indefinidos no tienen tamaño." + +#: nm.c:543 #, c-format msgid "data size %ld" msgstr "tamaño de datos %ld" -#: nm.c:523 readelf.c:5306 readelf.c:5342 +#: nm.c:568 readelf.c:5809 readelf.c:5845 #, c-format msgid ": %d" msgstr " %d:" -#: nm.c:525 readelf.c:5308 readelf.c:5354 +#: nm.c:570 readelf.c:5811 readelf.c:5857 #, c-format msgid ": %d" msgstr ": %d" -#: nm.c:527 readelf.c:5310 readelf.c:5357 +#: nm.c:572 readelf.c:5813 readelf.c:5860 #, c-format msgid ": %d" msgstr ": %d" -#: nm.c:1339 +#: nm.c:1376 #, c-format msgid "" "\n" @@ -1592,7 +1602,7 @@ msgstr "" "Símbolos indefinidos de %s:\n" "\n" -#: nm.c:1341 +#: nm.c:1378 #, c-format msgid "" "\n" @@ -1605,7 +1615,7 @@ msgstr "" "Símbolos de %s:\n" "\n" -#: nm.c:1343 nm.c:1401 +#: nm.c:1380 nm.c:1438 msgid "" "Name Value Class Type Size Line Section\n" "\n" @@ -1613,7 +1623,7 @@ msgstr "" "Nombre Valor Clase Tipo Tamaño Línea Sección\n" "\n" -#: nm.c:1346 nm.c:1404 +#: nm.c:1383 nm.c:1441 msgid "" "Name Value Class Type Size Line Section\n" "\n" @@ -1621,7 +1631,7 @@ msgstr "" "Nombre Valor Clase Tipo Tamaño Línea Sección\n" "\n" -#: nm.c:1397 +#: nm.c:1434 #, c-format msgid "" "\n" @@ -1634,7 +1644,7 @@ msgstr "" "Símbolos indefinidos de %s[%s]:\n" "\n" -#: nm.c:1399 +#: nm.c:1436 #, c-format msgid "" "\n" @@ -1647,7 +1657,7 @@ msgstr "" "Símbolos de %s[%s]:\n" "\n" -#: nm.c:1614 +#: nm.c:1658 msgid "" "\n" "Archive index:\n" @@ -1655,20 +1665,20 @@ msgstr "" "\n" "Índice del archivo:\n" -#: objcopy.c:363 srconv.c:1952 +#: objcopy.c:414 srconv.c:1952 #, c-format msgid "Usage: %s [option(s)] in-file [out-file]\n" msgstr "Modo de empleo: %s [opcion(es)] fichero-entrada [fichero-salida]\n" -#: objcopy.c:364 +#: objcopy.c:415 msgid " Copies a binary file, possibly transforming it in the process\n" msgstr " Copia un fichero binario, posiblemente transformándolo en el proceso\n" -#: objcopy.c:365 objcopy.c:435 +#: objcopy.c:416 objcopy.c:495 msgid " The options are:\n" msgstr " Las opciones son:\n" -#: objcopy.c:366 +#: objcopy.c:417 msgid "" " -I --input-target Assume input file is in format \n" " -O --output-target Create an output file in format \n" @@ -1677,9 +1687,10 @@ msgid "" " --debugging Convert debugging information, if possible\n" " -p --preserve-dates Copy modified/access timestamps to the output\n" " -j --only-section Only copy section into the output\n" +" --add-gnu-debuglink= Add section .gnu_debuglink linking to \n" " -R --remove-section Remove section from the output\n" " -S --strip-all Remove all symbol and relocation information\n" -" -g --strip-debug Remove all debugging symbols\n" +" -g --strip-debug Remove all debugging symbols & sections\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" @@ -1713,6 +1724,8 @@ msgid "" " --change-leading-char Force output format's leading character style\n" " --remove-leading-char Remove leading character from global symbols\n" " --redefine-sym = Redefine symbol name to \n" +" --redefine-syms --redefine-sym for all symbol pairs \n" +" listed in \n" " --srec-len Restrict the length of generated Srecords\n" " --srec-forceS3 Restrict the type of generated Srecords to S3\n" " --strip-symbols -N for all symbols listed in \n" @@ -1721,9 +1734,15 @@ msgid "" " --keep-global-symbols -G for all symbols listed in \n" " --weaken-symbols -W for all symbols listed in \n" " --alt-machine-code Use alternate machine code for output\n" +" --prefix-symbols Add to start of every symbol name\n" +" --prefix-sections Add to start of every section name\n" +" --prefix-alloc-sections \n" +" Add to start of every allocatable\n" +" section name\n" " -v --verbose List all object files modified\n" " -V --version Display this program's version number\n" " -h --help Display this output\n" +" --info List object formats & architectures supported\n" msgstr "" " -I --input-target Asume que el fichero de entrada está en\n" " el formato \n" @@ -1738,18 +1757,21 @@ msgstr "" " -p --preserve-dates Copiar las marcas de tiempo de modificación y\n" " acceso a la salida\n" " -j --only-section Sólo copiar la sección en la salida\n" +" --add-gnu-debuglink= Agregar la sección de enlazado .gnu_debuglink\n" +" al ero\n" " -R --remove-section Borrar la sección de la salida\n" " -S --strip-all Borrar todos los símbolos y la información de\n" " reubicación\n" -" -g --strip-debug Borrar todos los símbolos de depuración\n" +" -g --strip-debug Borrar todos los símbolos y secciones de\n" +" depuración\n" " --strip-unneeded Borrar todos los símbolos innecesarios para\n" " las reubicaciones\n" " -N --strip-symbol No copiar el símbolo \n" " -K --keep-symbol Sólo copiar el símbolo \n" -" -L --localize-symbol Fuerza que el símbolo se marque como local\n" +" -L --localize-symbol Forzar que el símbolo se marque como local\n" " -G --keep-global-symbol Volver locales todos los símbolos excepto \n" -" -W --weaken-symbol Fuerza que el símbolo se marque como débil\n" -" --weaken Fuerza que todos los símbolos se marquen como débiles\n" +" -W --weaken-symbol Forzar que el símbolo se marque como débil\n" +" --weaken Forzar que todos los símbolos se marquen como débiles\n" " -x --discard-all Borra todos los símbolos que no son globales\n" " -X --discard-locals Borra cualquier símbolo generado por el compilador\n" " -i --interleave Sólo copia uno de cada bytes\n" @@ -1789,20 +1811,27 @@ msgstr "" " --keep-global-symbols -G para todos los símbolos enlistados en el ero\n" " --weaken-symbols -W para todos los símbolos enlistados en el \n" " --alt-machine-code <índice> Utiliza código máquina alternativo para la salida\n" +" --prefix-symbols Agrega al inicio de cada nombre de símbolo\n" +" --prefix-sections Agrega al inicio de cada nombre de sección\n" +" --prefix-alloc-sections \n" +" Agrega al inicio de cada nombre de\n" +" sección alojable\n" " -v --verbose Enlista todos los ficheros objeto modificados\n" " -V --version Muestra el número de versión de este programa\n" " -h --help Muestra esta salida\n" +" --info Enlista los formatos objeto y arquitecturas\n" +" que se soportan\n" -#: objcopy.c:433 +#: objcopy.c:493 #, c-format msgid "Usage: %s in-file(s)\n" msgstr "Modo de empleo: %s fichero(s)-entrada\n" -#: objcopy.c:434 +#: objcopy.c:494 msgid " Removes symbols and sections from files\n" msgstr " Remueve símbolos y secciones de los ficheros\n" -#: objcopy.c:436 +#: objcopy.c:496 msgid "" " -I --input-target= Assume input file is in format \n" " -O --output-target= Create an output file in format \n" @@ -1810,7 +1839,7 @@ msgid "" " -p --preserve-dates Copy modified/access timestamps to the output\n" " -R --remove-section= Remove section from the output\n" " -s --strip-all Remove all symbol and relocation information\n" -" -g -S -d --strip-debug Remove all debugging symbols\n" +" -g -S -d --strip-debug Remove all debugging symbols & sections\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" @@ -1819,6 +1848,7 @@ msgid "" " -v --verbose List all object files modified\n" " -V --version Display this program's version number\n" " -h --help Display this output\n" +" --info List object formats & architectures supported\n" " -o Place stripped output into \n" msgstr "" " -I --input-target Asume que el fichero de entrada está en\n" @@ -1829,14 +1859,15 @@ msgstr "" " el de entrada a \n" " -p --preserve-dates Copiar las marcas de tiempo de modificación y\n" " acceso a la salida\n" -" -R --remove-section Borrar la sección de la salida\n" -" -s --strip-all Borrar todos los símbolos y la información\n" +" -R --remove-section Borra la sección de la salida\n" +" -s --strip-all Borra todos los símbolos y la información\n" " de reubicación\n" -" -g -S --strip-debug Borrar todos los símbolos de depuración\n" -" --strip-unneeded Borrar todos los símbolos innecesarios para\n" +" -g -S --strip-debug Borra todos los símbolos y secciones de\n" +" depuración\n" +" --strip-unneeded Borra todos los símbolos innecesarios para\n" " las reubicaciones\n" -" -N --strip-symbol No copiar el símbolo \n" -" -K --keep-symbol Sólo copiar el símbolo \n" +" -N --strip-symbol No copia el símbolo \n" +" -K --keep-symbol Sólo copia el símbolo \n" " -x --discard-all Borra todos los símbolos que no son globales\n" " -X --discard-locals Borra cualquier símbolo generado por\n" " el compilador\n" @@ -1845,213 +1876,233 @@ msgstr "" " -h --help Muestra esta salida\n" " -o Coloca la salida limpia en el \n" -#: objcopy.c:506 +#: objcopy.c:567 #, c-format msgid "unrecognized section flag `%s'" msgstr "opción de sección `%s' desconocida" -#: objcopy.c:507 +#: objcopy.c:568 #, c-format msgid "supported flags: %s" msgstr "opciones con soporte: %s" -#: objcopy.c:584 objcopy.c:2243 +#: objcopy.c:645 objcopy.c:2526 #, c-format msgid "cannot stat: %s: %s" msgstr "no se puede obtener la información de stat: %s: %s" -#: objcopy.c:591 objcopy.c:2261 +#: objcopy.c:652 objcopy.c:2544 #, c-format msgid "cannot open: %s: %s" msgstr "no se puede abrir: %s: %s" -#: objcopy.c:594 objcopy.c:2265 +#: objcopy.c:655 objcopy.c:2548 #, c-format msgid "%s: fread failed" msgstr "%s: fread falló" -#: objcopy.c:667 +#: objcopy.c:728 #, c-format msgid "Ignoring rubbish found on line %d of %s" msgstr "Ignorando la basura encontrada en la línea %d de %s" -#: objcopy.c:888 +#: objcopy.c:979 #, c-format msgid "%s: Multiple redefinition of symbol \"%s\"" msgstr "%s: Redefiniciones múltiples del símbolo \"%s\"" -#: objcopy.c:893 +#: objcopy.c:983 #, c-format msgid "%s: Symbol \"%s\" is target of more than one redefinition" msgstr "%s: El símbolo \"%s\" es objetivo de más de una redefinición" -#: objcopy.c:945 +#: objcopy.c:1010 +#, c-format +msgid "couldn't open symbol redefinition file %s (error: %s)" +msgstr "no se puede abrir el fichero de redefinición de símbolos %s (error: %s)" + +#: objcopy.c:1088 +#, c-format +msgid "%s: garbage at end of line %d" +msgstr "%s: basura al final de la línea %d" + +#: objcopy.c:1091 +#, c-format +msgid "%s: missing new symbol name at line %d" +msgstr "%s: falta el nombre del símbolo nuevo en la línea %d" + +#: objcopy.c:1101 +#, c-format +msgid "%s: premature end of file at line %d" +msgstr "%s: fin de fichero prematuro en la línea %d" + +#: objcopy.c:1147 msgid "Unable to change endianness of input file(s)" msgstr "No se puede cambiar la endianez del (los) fichero(s) de entrada" -#: objcopy.c:953 +#: objcopy.c:1155 #, c-format msgid "copy from %s(%s) to %s(%s)\n" msgstr "copiar de %s(%s) a %s(%s)\n" -#: objcopy.c:977 +#: objcopy.c:1182 #, c-format msgid "Warning: Output file cannot represent architecture %s" msgstr "Aviso: El fichero de salida no puede representar a la arquitectura %s" -#: objcopy.c:1004 +#: objcopy.c:1211 #, c-format msgid "can't create section `%s': %s" msgstr "no se puede crear la sección `%s' %s" -#: objcopy.c:1090 +#: objcopy.c:1304 #, c-format msgid "Can't fill gap after %s: %s" msgstr "No se puede llenar el espacio después de %s: %s" -#: objcopy.c:1115 +#: objcopy.c:1329 #, c-format msgid "Can't add padding to %s: %s" msgstr "No se puede agregar relleno a %s: %s" -#: objcopy.c:1254 +#: objcopy.c:1485 #, c-format msgid "%s: error copying private BFD data: %s" msgstr "%s: error al copiar los datos privados BFD: %s" -#: objcopy.c:1267 +#: objcopy.c:1498 msgid "unknown alternate machine code, ignored" msgstr "código máquina alternativo desconocido, ignorado" -#: objcopy.c:1300 objcopy.c:1330 +#: objcopy.c:1531 objcopy.c:1561 #, c-format msgid "cannot mkdir %s for archive copying (error: %s)" msgstr "no se puede crear el directorio %s para copiar el archivo (error: %s)" -#: objcopy.c:1497 +#: objcopy.c:1749 #, c-format msgid "Multiple renames of section %s" msgstr "Renombrado múltiple de la sección %s" -#: objcopy.c:1581 +#: objcopy.c:1840 msgid "making" msgstr "haciendo" -#: objcopy.c:1590 +#: objcopy.c:1849 msgid "size" msgstr "tamaño" -#: objcopy.c:1604 +#: objcopy.c:1863 msgid "vma" msgstr "vma" -#: objcopy.c:1630 +#: objcopy.c:1888 msgid "alignment" msgstr "alineación" -#: objcopy.c:1638 +#: objcopy.c:1896 msgid "flags" msgstr "opciones" -#: objcopy.c:1655 +#: objcopy.c:1918 msgid "private data" msgstr "datos privados" -#: objcopy.c:1663 +#: objcopy.c:1926 #, c-format msgid "%s: section `%s': error in %s: %s" msgstr "%s: sección `%s': error en %s: %s" -#: objcopy.c:1946 +#: objcopy.c:2199 #, c-format msgid "%s: can't create debugging section: %s" msgstr "%s: no se puede crear la sección de depuración: %s" -#: objcopy.c:1961 +#: objcopy.c:2214 #, c-format msgid "%s: can't set debugging section contents: %s" msgstr "%s: no se puede establecer el contenido de la sección de depuración: %s" -#: objcopy.c:1970 +#: objcopy.c:2223 #, c-format msgid "%s: don't know how to write debugging information for %s" msgstr "%s: se ignora cómo escribir la información de depuración para %s" -#: objcopy.c:2078 +#: objcopy.c:2346 #, c-format msgid "%s: cannot stat: %s" msgstr "%s: no se puede obtener la información de stat: %s" -#: objcopy.c:2129 +#: objcopy.c:2400 msgid "byte number must be non-negative" msgstr "el número de bytes no debe ser negativo" -#: objcopy.c:2139 +#: objcopy.c:2410 msgid "interleave must be positive" msgstr "el espacio debe ser positivo" -#: objcopy.c:2159 objcopy.c:2167 +#: objcopy.c:2430 objcopy.c:2438 #, c-format msgid "%s both copied and removed" msgstr "%s copiado y borrado" -#: objcopy.c:2240 objcopy.c:2310 objcopy.c:2410 objcopy.c:2437 objcopy.c:2461 -#: objcopy.c:2465 objcopy.c:2485 +#: objcopy.c:2523 objcopy.c:2593 objcopy.c:2693 objcopy.c:2724 objcopy.c:2748 +#: objcopy.c:2752 objcopy.c:2772 #, c-format msgid "bad format for %s" msgstr "formato erróneo para %s" -#: objcopy.c:2379 +#: objcopy.c:2662 #, c-format msgid "Warning: truncating gap-fill from 0x%s to 0x%x" msgstr "Aviso: truncando el relleno de espacio de 0x%s a 0x%x" -#: objcopy.c:2531 +#: objcopy.c:2818 msgid "alternate machine code index must be positive" msgstr "el índice de código máquina alternativo debe ser positivo" -#: objcopy.c:2550 +#: objcopy.c:2856 msgid "byte number must be less than interleave" msgstr "el número de bytes debe ser menor al espacio" -#: objcopy.c:2577 +#: objcopy.c:2883 #, c-format msgid "architecture %s unknown" msgstr "arquitectura %s desconocida" -#: objcopy.c:2581 +#: objcopy.c:2887 msgid "Warning: input target 'binary' required for binary architecture parameter." msgstr "Aviso: se requiere el objetivo de entrada 'binary' para el parámeto binario de arquitectura." -#: objcopy.c:2582 +#: objcopy.c:2888 #, c-format msgid " Argument %s ignored" msgstr " Se ignora el argumento %s" -#: objcopy.c:2588 +#: objcopy.c:2894 #, c-format msgid "Cannot stat: %s: %s" msgstr "No se puede obtener la información de stat: %s: %s" -#: objcopy.c:2628 objcopy.c:2642 +#: objcopy.c:2934 objcopy.c:2948 #, c-format msgid "%s %s%c0x%s never used" msgstr "%s nunca se usa %s%c0x%s" -#: objdump.c:165 +#: objdump.c:197 #, c-format msgid "Usage: %s \n" msgstr "Modo de empleo: %s \n" -#: objdump.c:166 +#: objdump.c:198 msgid " Display information from object .\n" msgstr "Muestra la información de objeto.\n" -#: objdump.c:167 +#: objdump.c:199 msgid " At least one of the following switches must be given:\n" msgstr "Por lo menos se requiere una de los siguientes opciones:\n" -#: objdump.c:168 +#: objdump.c:200 msgid "" " -a, --archive-headers Display archive header information\n" " -f, --file-headers Display the contents of the overall file header\n" @@ -2100,7 +2151,7 @@ msgstr "" " con soporte\n" " -H, --help Muestra esta información\n" -#: objdump.c:190 +#: objdump.c:222 msgid "" "\n" " The following switches are optional:\n" @@ -2108,7 +2159,7 @@ msgstr "" "\n" " Los siguientes interruptores son opcionales:\n" -#: objdump.c:191 +#: objdump.c:223 msgid "" " -b, --target=BFDNAME Specify the target object format as BFDNAME\n" " -m, --architecture=MACHINE Specify the target architecture as MACHINE\n" @@ -2119,12 +2170,13 @@ msgid "" " --file-start-context Include context from start of file (with -S)\n" " -l, --line-numbers Include line numbers and filenames in output\n" " -C, --demangle[=STYLE] Decode mangled/processed symbol names\n" -" The STYLE, if specified, can be `auto', 'gnu',\n" -" 'lucid', 'arm', 'hp', 'edg', or 'gnu-new-abi'\n" +" The STYLE, if specified, can be `auto', `gnu',\n" +" `lucid', `arm', `hp', `edg', `gnu-v3', `java'\n" +" or `gnat'\n" " -w, --wide Format output for more than 80 columns\n" " -z, --disassemble-zeroes Do not skip blocks of zeroes when disassembling\n" -" --start-address=ADDR Only process data whoes address is >= ADDR\n" -" --stop-address=ADDR Only process data whoes address is <= ADDR\n" +" --start-address=ADDR Only process data whose address is >= ADDR\n" +" --stop-address=ADDR Only process data whose address is <= ADDR\n" " --prefix-addresses Print complete address alongside disassembly\n" " --[no-]show-raw-insn Display hex alongside symbolic disassembly\n" " --adjust-vma=OFFSET Add OFFSET to all displayed section addresses\n" @@ -2141,7 +2193,8 @@ msgstr "" " en la salida\n" " -C, --demangle[=ESTILO] Decodifica los nombres de símbolo obtenidos/procesados\n" " El ESTILO, si se especifica, puede ser `auto', 'gnu',\n" -" 'lucid', 'arm', 'hp', 'edg', ó 'gnu-new-abi'\n" +" `lucid', `arm', `hp', `edg', `gnu-v3', `java'\n" +" o `gnat'\n" " -w, --wide Da formato a la salida para más de 80 columnas\n" " -z, --disassemble-zeroes No salta los bloques de ceros al desensamblar\n" " --start-address=DIR Sólo procesa los datos cuya dirección es >= DIR\n" @@ -2152,52 +2205,51 @@ msgstr "" " mostradas de sección\n" "\n" -#: objdump.c:358 +#: objdump.c:391 msgid "Sections:\n" msgstr "Secciones:\n" -#: objdump.c:361 objdump.c:365 +#: objdump.c:394 objdump.c:398 msgid "Idx Name Size VMA LMA File off Algn" msgstr "Ind Nombre Tamaño VMA LMA Desp fich Alin" -#: objdump.c:367 +#: objdump.c:400 msgid "Idx Name Size VMA LMA File off Algn" msgstr "Ind Nombre Tamaño VMA LMA Desp fich Alin" -#: objdump.c:371 +#: objdump.c:404 msgid " Flags" msgstr " Opciones" -#: objdump.c:419 +#: objdump.c:406 +msgid " Pg" +msgstr " Pg" + +#: objdump.c:451 #, c-format msgid "%s: not a dynamic object" msgstr "%s: no es un objeto dinámico" -#: objdump.c:433 -#, c-format -msgid "%s: No dynamic symbols" -msgstr "%s: No hay símbolos dinámicos" - -#: objdump.c:1114 +#: objdump.c:1144 msgid "Out of virtual memory" msgstr "Memoria agotada" -#: objdump.c:1543 +#: objdump.c:1574 #, c-format msgid "Can't use supplied machine %s" msgstr "No se puede utilizar la máquina %s proporcionada" -#: objdump.c:1561 +#: objdump.c:1592 #, c-format msgid "Can't disassemble for architecture %s\n" msgstr "No se puede desensamblar para la arquitectura %s\n" -#: objdump.c:1643 +#: objdump.c:1682 #, c-format msgid "Disassembly of section %s:\n" msgstr "Desensamblado de la sección %s:\n" -#: objdump.c:1818 +#: objdump.c:1847 #, c-format msgid "" "No %s section present\n" @@ -2206,22 +2258,22 @@ msgstr "" "No está presente la sección %s\n" "\n" -#: objdump.c:1825 +#: objdump.c:1854 #, c-format msgid "%s has no %s section" msgstr "%s no tiene una sección %s" -#: objdump.c:1839 +#: objdump.c:1868 #, c-format msgid "Reading %s section of %s failed: %s" msgstr "Falló al leer la sección %s de %s: %s" -#: objdump.c:1851 +#: objdump.c:1880 #, c-format msgid "Reading %s section of %s failed: %s\n" msgstr "Falló al leer la sección %s de %s: %s\n" -#: objdump.c:1894 +#: objdump.c:1923 #, c-format msgid "" "Contents of %s section:\n" @@ -2230,17 +2282,17 @@ msgstr "" "Contenido de la sección %s:\n" "\n" -#: objdump.c:1994 +#: objdump.c:2021 #, c-format msgid "architecture: %s, " msgstr "arquitectura: %s, " -#: objdump.c:1997 +#: objdump.c:2024 #, c-format msgid "flags 0x%08x:\n" msgstr "opciones 0x%08x:\n" -#: objdump.c:2010 +#: objdump.c:2038 msgid "" "\n" "start address 0x" @@ -2248,7 +2300,7 @@ msgstr "" "\n" "dirección de inicio 0x" -#: objdump.c:2042 +#: objdump.c:2071 #, c-format msgid "" "\n" @@ -2257,217 +2309,216 @@ msgstr "" "\n" "%s: formato del fichero %s\n" -#: objdump.c:2084 +#: objdump.c:2111 #, c-format msgid "%s: printing debugging information failed" msgstr "%s: falló al mostrar la información de depuración" -#: objdump.c:2161 +#: objdump.c:2190 #, c-format msgid "In archive %s:\n" msgstr "En el fichero %s:\n" -#: objdump.c:2213 +#: objdump.c:2249 #, c-format msgid "Contents of section %s:\n" msgstr "Contenido de la sección %s:\n" -#: objdump.c:2718 -#, c-format -msgid "BFD header file version %s\n" -msgstr "encabezado del fichero BFD versión %s\n" +#: objdump.c:2369 +msgid "no symbols\n" +msgstr "no hay símbolos\n" -#: objdump.c:2807 +#: objdump.c:2718 msgid "unrecognized -E option" msgstr "opción -E no reconocida" -#: objdump.c:2818 +#: objdump.c:2729 #, c-format msgid "unrecognized --endian type `%s'" msgstr "tipo --endian `%s' no reconocido" -#: rdcoff.c:204 +#: rdcoff.c:206 #, c-format msgid "parse_coff_type: Bad type code 0x%x" msgstr "parse_coff_type: Código de tipo 0x%x erróneo" -#: rdcoff.c:422 rdcoff.c:530 rdcoff.c:729 +#: rdcoff.c:424 rdcoff.c:532 rdcoff.c:731 #, c-format msgid "bfd_coff_get_syment failed: %s" msgstr "bfd_coff_get_syment falló: %s" -#: rdcoff.c:438 rdcoff.c:749 +#: rdcoff.c:440 rdcoff.c:751 #, c-format msgid "bfd_coff_get_auxent failed: %s" msgstr "bfd_coff_get_auxent falló: %s" -#: rdcoff.c:816 +#: rdcoff.c:818 #, c-format msgid "%ld: .bf without preceding function" msgstr "%ld: .bf sin una función precedente" -#: rdcoff.c:866 +#: rdcoff.c:868 #, c-format msgid "%ld: unexpected .ef\n" msgstr "%ld: .ef inesperado\n" -#: rddbg.c:87 +#: rddbg.c:91 #, c-format msgid "%s: no recognized debugging information" msgstr "%s: no se reconoce la información de depuración" -#: rddbg.c:410 +#: rddbg.c:415 msgid "Last stabs entries before error:\n" msgstr "Últimas entradas stabs antes del error:\n" -#: readelf.c:328 +#: readelf.c:455 #, c-format msgid "%s: Error: " msgstr "%s: Error: " -#: readelf.c:339 +#: readelf.c:466 #, c-format msgid "%s: Warning: " msgstr "%s: Aviso: " -#: readelf.c:361 +#: readelf.c:488 #, c-format -msgid "Unable to seek to %x for %s\n" -msgstr "No se puede buscar para %x para %s\n" +msgid "Unable to seek to 0x%x for %s\n" +msgstr "No se puede buscar a 0x%x para %s\n" -#: readelf.c:372 +#: readelf.c:499 #, c-format -msgid "Out of memory allocating %d bytes for %s\n" -msgstr "Memoria agotada al asignar %d bytes para %s\n" +msgid "Out of memory allocating 0x%x bytes for %s\n" +msgstr "Memoria agotada al asignar 0x%x bytes para %s\n" -#: readelf.c:380 +#: readelf.c:507 #, c-format -msgid "Unable to read in %d bytes of %s\n" -msgstr "No se pueden leer %d bytes de %s\n" +msgid "Unable to read in 0x%x bytes of %s\n" +msgstr "No se pueden leer 0x%x bytes de %s\n" -#: readelf.c:433 readelf.c:591 +#: readelf.c:560 readelf.c:614 readelf.c:798 readelf.c:833 #, c-format msgid "Unhandled data length: %d\n" msgstr "Longitud de datos sin manejar: %d\n" -#: readelf.c:675 +#: readelf.c:924 msgid "Don't know about relocations on this machine architecture\n" msgstr "No se conocen las reubicaciones en esta arquitectura de máquina\n" -#: readelf.c:697 readelf.c:726 readelf.c:772 readelf.c:799 +#: readelf.c:946 readelf.c:975 readelf.c:1021 readelf.c:1049 msgid "relocs" msgstr "reubicaciones" -#: readelf.c:708 readelf.c:737 readelf.c:782 readelf.c:809 +#: readelf.c:957 readelf.c:986 readelf.c:1031 readelf.c:1059 msgid "out of memory parsing relocs" msgstr "memoria agotada al decodificar reubicaciones" -#: readelf.c:861 +#: readelf.c:1112 msgid " Offset Info Type Sym. Value Symbol's Name + Addend\n" msgstr " Desplaz Info Tipo Val. Símbolo Nombre Símbolo + Adend\n" -#: readelf.c:863 +#: readelf.c:1114 msgid " Offset Info Type Sym.Value Sym. Name + Addend\n" msgstr " Desplaz Info Tipo Val.Símbolo Nom.Símbolo + Adend\n" -#: readelf.c:868 +#: readelf.c:1119 msgid " Offset Info Type Sym. Value Symbol's Name\n" msgstr " Desplaz Info Tipo Val. Símbolo Nombre Símbolo\n" -#: readelf.c:870 +#: readelf.c:1121 msgid " Offset Info Type Sym.Value Sym. Name\n" msgstr " Desplaz Info Tipo Val.Símbolo Nom. Símbolo\n" -#: readelf.c:878 -msgid " Offset Info Type Symbol's Value Symbol's Name + Addend\n" -msgstr " Desplaz Info Tipo Valor Símbolo Nombre Símbolo + Adend\n" +#: readelf.c:1129 +msgid " Offset Info Type Symbol's Value Symbol's Name + Addend\n" +msgstr " Desplaz Info Tipo Valor Símbolo Nombre Símbolo + Adend\n" -#: readelf.c:880 +#: readelf.c:1131 msgid " Offset Info Type Sym. Value Sym. Name + Addend\n" msgstr " Desplaz Info Tipo Val. Símbolo Nom. Símbolo + Adend\n" -#: readelf.c:885 -msgid " Offset Info Type Symbol's Value Symbol's Name\n" -msgstr " Desplaz Info Tipo Valor Símbolo Nombre Símbolo\n" +#: readelf.c:1136 +msgid " Offset Info Type Symbol's Value Symbol's Name\n" +msgstr " Desplaz Info Tipo Valor Símbolo Nombre Símbolo\n" -#: readelf.c:887 +#: readelf.c:1138 msgid " Offset Info Type Sym. Value Sym. Name\n" msgstr " Desplaz Info Tipo Val. Símbolo Nom. Símbolo\n" -#: readelf.c:1134 readelf.c:1136 readelf.c:1184 readelf.c:1186 readelf.c:1195 -#: readelf.c:1197 +#: readelf.c:1414 readelf.c:1416 readelf.c:1492 readelf.c:1494 readelf.c:1503 +#: readelf.c:1505 #, c-format msgid "unrecognized: %-7lx" msgstr "no reconocido: %-7lx" -#: readelf.c:1158 +#: readelf.c:1466 #, c-format msgid "" msgstr "<índice de la tabla de cadenas %3ld>" -#: readelf.c:1423 +#: readelf.c:1743 #, c-format msgid "Processor Specific: %lx" msgstr "Específico del Procesador: %lx" -#: readelf.c:1442 +#: readelf.c:1762 #, c-format msgid "Operating System specific: %lx" msgstr "específico del Sistema Operativo: %lx" -#: readelf.c:1445 readelf.c:2086 +#: readelf.c:1765 readelf.c:2417 #, c-format msgid ": %lx" msgstr ": %lx" -#: readelf.c:1459 +#: readelf.c:1779 msgid "NONE (None)" msgstr "NONE (Ninguno)" -#: readelf.c:1460 +#: readelf.c:1780 msgid "REL (Relocatable file)" msgstr "REL (Fichero reubicable)" -#: readelf.c:1461 +#: readelf.c:1781 msgid "EXEC (Executable file)" msgstr "EXEC (Fichero ejecutable)" -#: readelf.c:1462 +#: readelf.c:1782 msgid "DYN (Shared object file)" msgstr "DYN (Fichero objeto compartido)" -#: readelf.c:1463 +#: readelf.c:1783 msgid "CORE (Core file)" msgstr "CORE (Fichero núcleo)" -#: readelf.c:1467 +#: readelf.c:1787 #, c-format msgid "Processor Specific: (%x)" msgstr "Específico del Procesado: (%x)" -#: readelf.c:1469 +#: readelf.c:1789 #, c-format msgid "OS Specific: (%x)" msgstr "Específico del SO: (%x)" -#: readelf.c:1471 readelf.c:1573 readelf.c:2238 +#: readelf.c:1791 readelf.c:1898 readelf.c:2574 #, c-format msgid ": %x" msgstr ": %x" -#: readelf.c:1484 +#: readelf.c:1804 msgid "None" msgstr "Ninguno" -#: readelf.c:2278 +#: readelf.c:2616 msgid "Usage: readelf elf-file(s)\n" msgstr "Modo de empleo: readelf fichero(s)-elf\n" -#: readelf.c:2279 +#: readelf.c:2617 msgid " Display information about the contents of ELF format files\n" msgstr " Muestra información sobre el contenido de los ficheros de formato ELF\n" -#: readelf.c:2280 +#: readelf.c:2618 msgid "" " Options are:\n" " -a --all Equivalent to: -h -l -S -s -r -d -V -A -I\n" @@ -2487,7 +2538,8 @@ msgid "" " -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" +" -w[liaprmfFso] or\n" +" --debug-dump[=line,=info,=abbrev,=pubnames,=ranges,=macro,=frames,=str,=loc]\n" " Display the contents of DWARF2 debug sections\n" msgstr "" " Las opciones son:\n" @@ -2510,11 +2562,12 @@ msgstr "" " -D --use-dynamic Usa la información de la sección dinámica cuando\n" " muestra símbolos\n" " -x --hex-dump= Vuelca el contenido de la sección \n" -" -w --debug-dump[=line,=info,=abbrev,=pubnames,=ranges,=macro,=frames,=str,=loc]\n" +" -w[liaprmfFso] ó\n" +" --debug-dump[=line,=info,=abbrev,=pubnames,=ranges,=macro,=frames,=str,=loc]\n" " Muestra el contenido de las secciones de depuración\n" " DWARF2\n" -#: readelf.c:2301 +#: readelf.c:2640 msgid "" " -i --instruction-dump=\n" " Disassemble the contents of section \n" @@ -2522,7 +2575,7 @@ msgstr "" " -i --instruction-dump=\n" " Desensambla el contenido de la sección \n" -#: readelf.c:2305 +#: readelf.c:2644 msgid "" " -I --histogram Display histogram of bucket list lengths\n" " -W --wide Allow output width to exceed 80 characters\n" @@ -2535,102 +2588,102 @@ msgstr "" " -H --help Muestra esta información\n" " -v --version Muestra el número de versión de readelf\n" -#: readelf.c:2327 +#: readelf.c:2666 readelf.c:10765 msgid "Out of memory allocating dump request table." msgstr "Memoria agotada al asignar la tabla de petición de volcado." -#: readelf.c:2491 +#: readelf.c:2830 readelf.c:2906 #, c-format msgid "Unrecognized debug option '%s'\n" msgstr "Opción de depuración '%s' no reconocida\n" -#: readelf.c:2519 +#: readelf.c:2940 #, c-format msgid "Invalid option '-%c'\n" msgstr "Opción '-%c' inválida\n" -#: readelf.c:2532 +#: readelf.c:2953 msgid "Nothing to do.\n" msgstr "Nada por hacer.\n" -#: readelf.c:2545 readelf.c:2562 readelf.c:4867 +#: readelf.c:2966 readelf.c:2983 readelf.c:5366 msgid "none" msgstr "ninguno" -#: readelf.c:2549 readelf.c:2566 readelf.c:2594 +#: readelf.c:2970 readelf.c:2987 readelf.c:3018 #, c-format msgid "" msgstr "" -#: readelf.c:2563 +#: readelf.c:2984 msgid "2's complement, little endian" msgstr "complemento a 2, little endian" -#: readelf.c:2564 +#: readelf.c:2985 msgid "2's complement, big endian" msgstr "complemento a 2, big endian" -#: readelf.c:2591 +#: readelf.c:3015 msgid "Standalone App" msgstr "Aplicación por Sí Sola" -#: readelf.c:2609 +#: readelf.c:3034 msgid "Not an ELF file - it has the wrong magic bytes at the start\n" msgstr "No es un fichero ELF - tiene los bytes mágicos erróneos en el inicio\n" -#: readelf.c:2617 +#: readelf.c:3042 msgid "ELF Header:\n" msgstr "Encabezado ELF:\n" -#: readelf.c:2618 +#: readelf.c:3043 msgid " Magic: " msgstr " Mágico: " -#: readelf.c:2622 +#: readelf.c:3047 #, c-format msgid " Class: %s\n" msgstr " Clase: %s\n" -#: readelf.c:2624 +#: readelf.c:3049 #, c-format msgid " Data: %s\n" msgstr " Datos: %s\n" -#: readelf.c:2626 +#: readelf.c:3051 #, c-format msgid " Version: %d %s\n" msgstr " Versión: %d %s\n" -#: readelf.c:2633 +#: readelf.c:3058 #, c-format msgid " OS/ABI: %s\n" msgstr " OS/ABI: %s\n" -#: readelf.c:2635 +#: readelf.c:3060 #, c-format msgid " ABI Version: %d\n" msgstr " Versión ABI: %d\n" -#: readelf.c:2637 +#: readelf.c:3062 #, c-format msgid " Type: %s\n" msgstr " Tipo: %s\n" -#: readelf.c:2639 +#: readelf.c:3064 #, c-format msgid " Machine: %s\n" msgstr " Máquina: %s\n" -#: readelf.c:2641 +#: readelf.c:3066 #, c-format msgid " Version: 0x%lx\n" msgstr " Versión: 0x%lx\n" -#: readelf.c:2644 +#: readelf.c:3069 msgid " Entry point address: " msgstr " Dirección del punto de entrada: " -#: readelf.c:2646 +#: readelf.c:3071 msgid "" "\n" " Start of program headers: " @@ -2638,7 +2691,7 @@ msgstr "" "\n" " Inicio de encabezados de programa: " -#: readelf.c:2648 +#: readelf.c:3073 msgid "" " (bytes into file)\n" " Start of section headers: " @@ -2646,50 +2699,56 @@ msgstr "" " (bytes en el fichero)\n" " Inicio de encabezados de sección: " -#: readelf.c:2650 +#: readelf.c:3075 msgid " (bytes into file)\n" msgstr " (bytes en el fichero)\n" -#: readelf.c:2652 +#: readelf.c:3077 #, c-format msgid " Flags: 0x%lx%s\n" msgstr " Opciones: 0x%lx%s\n" -#: readelf.c:2655 +#: readelf.c:3080 #, c-format msgid " Size of this header: %ld (bytes)\n" msgstr " Tamaño de este encabezado: %ld (bytes)\n" -#: readelf.c:2657 +#: readelf.c:3082 #, c-format msgid " Size of program headers: %ld (bytes)\n" msgstr " Tamaño de encabezados de programa: %ld (bytes)\n" -#: readelf.c:2659 +#: readelf.c:3084 #, c-format msgid " Number of program headers: %ld\n" msgstr " Número de encabezados de programa: %ld\n" -#: readelf.c:2661 +#: readelf.c:3086 #, c-format msgid " Size of section headers: %ld (bytes)\n" msgstr " Tamaño de encabezados de sección: %ld (bytes)\n" -#: readelf.c:2663 +#: readelf.c:3088 #, c-format msgid " Number of section headers: %ld" msgstr " Número de encabezados de sección: %ld" -#: readelf.c:2668 +#: readelf.c:3093 #, c-format msgid " Section header string table index: %ld" msgstr " Índice de tabla de cadenas de sección de encabezado: %ld" -#: readelf.c:2702 readelf.c:2738 +#: readelf.c:3127 readelf.c:3163 msgid "program headers" msgstr "encabezados de programa" -#: readelf.c:2772 +#: readelf.c:3203 readelf.c:3480 readelf.c:3526 readelf.c:3589 readelf.c:3656 +#: readelf.c:4715 readelf.c:4758 readelf.c:4948 readelf.c:5917 readelf.c:5931 +#: readelf.c:10411 +msgid "Out of memory\n" +msgstr "Memoria agotada\n" + +#: readelf.c:3231 msgid "" "\n" "There are no program headers in this file.\n" @@ -2697,7 +2756,7 @@ msgstr "" "\n" "No hay encabezados de programa en este fichero.\n" -#: readelf.c:2778 +#: readelf.c:3237 #, c-format msgid "" "\n" @@ -2706,11 +2765,11 @@ msgstr "" "\n" "El tipo del fichero elf es %s\n" -#: readelf.c:2779 +#: readelf.c:3238 msgid "Entry point " msgstr "Punto de entrada " -#: readelf.c:2781 +#: readelf.c:3240 #, c-format msgid "" "\n" @@ -2719,13 +2778,7 @@ msgstr "" "\n" "Hay %d encabezados de programa, empezando en el desplazamiento " -#: 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 "Memoria agotada\n" - -#: readelf.c:2810 readelf.c:2812 +#: readelf.c:3252 readelf.c:3254 msgid "" "\n" "Program Headers:\n" @@ -2733,31 +2786,31 @@ msgstr "" "\n" "Encabezados de Programa:\n" -#: readelf.c:2816 +#: readelf.c:3258 msgid " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align\n" msgstr " Tipo Desplaz DirVirt DirFísica TamFich TamMem Opt Alin\n" -#: readelf.c:2819 +#: readelf.c:3261 msgid " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align\n" msgstr " Tipo Desplaz DirVirt DirFísica TamFich TamMem Opt Alin\n" -#: readelf.c:2823 +#: readelf.c:3265 msgid " Type Offset VirtAddr PhysAddr\n" msgstr " Tipo Desplazamiento DirVirtual DirFísica\n" -#: readelf.c:2825 +#: readelf.c:3267 msgid " FileSiz MemSiz Flags Align\n" msgstr " TamFichero TamMemoria Opts Alineación\n" -#: readelf.c:2925 +#: readelf.c:3360 msgid "more than one dynamic segment\n" msgstr "más de un segmento dinámico\n" -#: readelf.c:2933 +#: readelf.c:3368 msgid "Unable to find program interpreter name\n" msgstr "No se puede encontrar el nombre del programa intérprete\n" -#: readelf.c:2940 +#: readelf.c:3375 #, c-format msgid "" "\n" @@ -2766,7 +2819,7 @@ msgstr "" "\n" " [Solicitando el programa intérprete: %s]" -#: readelf.c:2958 +#: readelf.c:3387 msgid "" "\n" " Section to Segment mapping:\n" @@ -2774,24 +2827,33 @@ msgstr "" "\n" " mapeo de Sección a Segmento:\n" -#: readelf.c:2959 +#: readelf.c:3388 msgid " Segment Sections...\n" msgstr " Segmento Secciones...\n" -#: readelf.c:3010 readelf.c:3056 +#: readelf.c:3437 +msgid "Cannot interpret virtual addresses without program headers.\n" +msgstr "No se pueden interpretar direcciones virtuales sin encabezados de programa.\n" + +#: readelf.c:3453 +#, c-format +msgid "Virtual address 0x%lx not located in any PT_LOAD segment.\n" +msgstr "La dirección virtual 0x%lx no está ubicada en ningún segmento PT_LOAD.\n" + +#: readelf.c:3471 readelf.c:3517 msgid "section headers" msgstr "encabezados de sección" -#: readelf.c:3104 readelf.c:3171 +#: readelf.c:3565 readelf.c:3632 msgid "symbols" msgstr "símbolos" # ¿Cómo se traduce esto? cfuga -#: readelf.c:3115 readelf.c:3182 +#: readelf.c:3576 readelf.c:3643 msgid "symtab shndx" msgstr "symtab shndx" -#: readelf.c:3284 +#: readelf.c:3745 msgid "" "\n" "There are no sections in this file.\n" @@ -2799,32 +2861,32 @@ msgstr "" "\n" "No hay secciones en este fichero.\n" -#: readelf.c:3290 +#: readelf.c:3751 #, c-format msgid "There are %d section headers, starting at offset 0x%lx:\n" msgstr "Hay %d encabezados de sección, comenzando en el desplazamiento: 0x%lx:\n" -#: readelf.c:3307 readelf.c:3621 readelf.c:3968 readelf.c:5565 +#: readelf.c:3768 readelf.c:4098 readelf.c:4433 readelf.c:6070 msgid "string table" msgstr "tabla de cadenas" -#: readelf.c:3328 +#: readelf.c:3793 msgid "File contains multiple dynamic symbol tables\n" msgstr "El fichero contiene múltiples tablas dinámicas de símbolos\n" -#: readelf.c:3340 +#: readelf.c:3805 msgid "File contains multiple dynamic string tables\n" msgstr "El fichero contiene múltiples tablas dinámicas de cadenas\n" -#: readelf.c:3346 +#: readelf.c:3811 msgid "dynamic strings" msgstr "cadenas dinámicas" -#: readelf.c:3352 +#: readelf.c:3817 msgid "File contains multiple symtab shndx tables\n" msgstr "El fichero contiene múltiples tablas symtab shndx\n" -#: readelf.c:3390 +#: readelf.c:3855 msgid "" "\n" "Section Headers:\n" @@ -2832,7 +2894,7 @@ msgstr "" "\n" "Encabezados de Sección:\n" -#: readelf.c:3392 +#: readelf.c:3857 msgid "" "\n" "Section Header:\n" @@ -2840,23 +2902,23 @@ msgstr "" "\n" "Encabezados de Sección:\n" -#: readelf.c:3396 +#: readelf.c:3861 msgid " [Nr] Name Type Addr Off Size ES Flg Lk Inf Al\n" msgstr " [Nr] Nombre Tipo Direc Desp Tam ES Opt En Inf Al\n" -#: readelf.c:3399 +#: readelf.c:3864 msgid " [Nr] Name Type Address Off Size ES Flg Lk Inf Al\n" msgstr " [Nr] Nombre Tipo Direc Desp Tam ES Opt En Inf Al\n" -#: readelf.c:3402 +#: readelf.c:3867 msgid " [Nr] Name Type Address Offset\n" msgstr " [Nr] Nombre Tipo Dirección Despl\n" -#: readelf.c:3403 +#: readelf.c:3868 msgid " Size EntSize Flags Link Info Align\n" msgstr " Tamaño TamEnt Opts Enl Info Alin\n" -#: readelf.c:3498 +#: readelf.c:3963 msgid "" "Key to Flags:\n" " W (write), A (alloc), X (execute), M (merge), S (strings)\n" @@ -2869,16 +2931,16 @@ msgstr "" " O (se requiere procesamiento extra del SO) o (específico del SO)\n" " p (específico del procesador)\n" -#: readelf.c:3559 +#: readelf.c:4031 #, c-format msgid "" "\n" -"Relocation section at offset 0x%lx contains %ld bytes:\n" +"'%s' relocation section at offset 0x%lx contains %ld bytes:\n" msgstr "" "\n" -"La sección de reubicación en el desplazamiento 0x%lx contiene %ld bytes:\n" +"'%s' la sección de reubicación en el desplazamiento 0x%lx contiene %ld bytes:\n" -#: readelf.c:3566 +#: readelf.c:4043 msgid "" "\n" "There are no dynamic relocations in this file.\n" @@ -2886,7 +2948,7 @@ msgstr "" "\n" "No hay reubicaciones dinámicas en este fichero.\n" -#: readelf.c:3593 +#: readelf.c:4070 msgid "" "\n" "Relocation section " @@ -2894,17 +2956,17 @@ msgstr "" "\n" "La sección de reubicación " -#: readelf.c:3598 readelf.c:4031 readelf.c:4045 +#: readelf.c:4075 readelf.c:4496 readelf.c:4510 #, c-format msgid "'%s'" msgstr "'%s'" -#: readelf.c:3600 readelf.c:4047 +#: readelf.c:4077 readelf.c:4512 #, c-format msgid " at offset 0x%lx contains %lu entries:\n" msgstr " en el desplazamiento 0x%lx contiene %lu entradas:\n" -#: readelf.c:3638 +#: readelf.c:4115 msgid "" "\n" "There are no relocations in this file.\n" @@ -2912,21 +2974,21 @@ msgstr "" "\n" "No hay reubicaciones en este fichero.\n" -#: readelf.c:3834 +#: readelf.c:4299 msgid "unwind table" msgstr "tabla desenredada" -#: readelf.c:3885 readelf.c:3897 readelf.c:7890 readelf.c:7901 +#: readelf.c:4350 readelf.c:4362 readelf.c:8499 readelf.c:8511 #, c-format msgid "Skipping unexpected symbol type %u\n" msgstr "Saltando el tipo de símbolo %u inesperado\n" -#: readelf.c:3905 +#: readelf.c:4370 #, c-format msgid "Skipping unexpected relocation type %s\n" msgstr "Saltando el tipo de reubicación %s inesperado\n" -#: readelf.c:3950 readelf.c:3975 +#: readelf.c:4415 readelf.c:4440 msgid "" "\n" "There are no unwind sections in this file.\n" @@ -2934,7 +2996,7 @@ msgstr "" "\n" "No hay secciones de desenredo en este fichero.\n" -#: readelf.c:4026 +#: readelf.c:4491 msgid "" "\n" "Could not find unwind info section for " @@ -2942,11 +3004,11 @@ msgstr "" "\n" "No se puede encontrar la sección de información de desenredo para " -#: readelf.c:4038 +#: readelf.c:4503 msgid "unwind info" msgstr "información de desenredo" -#: readelf.c:4040 +#: readelf.c:4505 msgid "" "\n" "Unwind section " @@ -2954,11 +3016,11 @@ msgstr "" "\n" "Sección de desenredo " -#: readelf.c:4213 readelf.c:4256 +#: readelf.c:4699 readelf.c:4742 msgid "dynamic segment" msgstr "segmento dinámico" -#: readelf.c:4334 +#: readelf.c:4820 msgid "" "\n" "There is no dynamic segment in this file.\n" @@ -2966,101 +3028,101 @@ msgstr "" "\n" "No hay segmento dinámico en este fichero.\n" -#: readelf.c:4368 +#: readelf.c:4854 msgid "Unable to seek to end of file!" msgstr "¡No se puede alcanzar el final del fichero!" -#: readelf.c:4379 +#: readelf.c:4865 msgid "Unable to determine the number of symbols to load\n" msgstr "No se puede determinar el número de símbolos a cargar\n" -#: readelf.c:4409 +#: readelf.c:4895 msgid "Unable to seek to end of file\n" msgstr "No se puede alcanzar el final del fichero\n" -#: readelf.c:4415 +#: readelf.c:4901 msgid "Unable to determine the length of the dynamic string table\n" msgstr "No se puede determinar la longitud de la tabla dinámica de cadenas\n" -#: readelf.c:4420 +#: readelf.c:4906 msgid "dynamic string table" msgstr "tabla de cadena dinámicas" -#: readelf.c:4454 +#: readelf.c:4941 msgid "symbol information" msgstr "información del símbolo" -#: readelf.c:4478 +#: readelf.c:4965 #, c-format msgid "" "\n" -"Dynamic segment at offset 0x%x contains %ld entries:\n" +"Dynamic segment at offset 0x%lx contains %ld entries:\n" msgstr "" "\n" -"El segmento dinámico en el desplazamiento 0x%x contiene %ld entradas:\n" +"El segmento dinámico en el desplazamiento 0x%lx contiene %ld entradas:\n" -#: readelf.c:4481 +#: readelf.c:4968 msgid " Tag Type Name/Value\n" msgstr " Marca Tipo Nombre/Valor\n" -#: readelf.c:4517 +#: readelf.c:5004 msgid "Auxiliary library" msgstr "Biblioteca auxiliar" -#: readelf.c:4521 +#: readelf.c:5008 msgid "Filter library" msgstr "Biblioteca de filtro" -#: readelf.c:4525 +#: readelf.c:5012 msgid "Configuration file" msgstr "Fichero de configuración" -#: readelf.c:4529 +#: readelf.c:5016 msgid "Dependency audit library" msgstr "Biblioteca de auditoría de dependencias" -#: readelf.c:4533 +#: readelf.c:5020 msgid "Audit library" msgstr "Biblioteca de auditoría" -#: readelf.c:4551 readelf.c:4577 readelf.c:4603 +#: readelf.c:5038 readelf.c:5066 readelf.c:5094 msgid "Flags:" msgstr "Opciones:" -#: readelf.c:4553 readelf.c:4579 readelf.c:4605 +#: readelf.c:5041 readelf.c:5069 readelf.c:5096 msgid " None\n" msgstr " Ninguna\n" -#: readelf.c:4724 +#: readelf.c:5217 #, c-format msgid "Shared library: [%s]" msgstr "Biblioteca compartida: [%s]" -#: readelf.c:4727 +#: readelf.c:5220 msgid " program interpreter" msgstr " programa intérprete" -#: readelf.c:4731 +#: readelf.c:5224 #, c-format msgid "Library soname: [%s]" msgstr "Nombre-so de la biblioteca: [%s]" -#: readelf.c:4735 +#: readelf.c:5228 #, c-format msgid "Library rpath: [%s]" msgstr "Rpath de la biblioteca: [%s]" -#: readelf.c:4739 +#: readelf.c:5232 #, c-format msgid "Library runpath: [%s]" msgstr "Ruta de ejecución de la biblioteca: [%s]" -#: readelf.c:4802 +#: readelf.c:5296 #, c-format msgid "Not needed object: [%s]\n" msgstr "Objeto innecesario: [%s]\n" -#: readelf.c:4913 +#: readelf.c:5412 #, c-format msgid "" "\n" @@ -3069,50 +3131,50 @@ msgstr "" "\n" "La sección de definición de la versión '%s' contiene %ld entradas:\n" -#: readelf.c:4916 +#: readelf.c:5415 msgid " Addr: 0x" msgstr " Dir: 0x" -#: readelf.c:4918 readelf.c:5113 +#: readelf.c:5417 readelf.c:5612 #, c-format msgid " Offset: %#08lx Link: %lx (%s)\n" msgstr " Despl: %#08lx Enl: %lx (%s)\n" -#: readelf.c:4925 +#: readelf.c:5424 msgid "version definition section" msgstr "sección de definición de versión" -#: readelf.c:4951 +#: readelf.c:5450 #, c-format msgid " %#06x: Rev: %d Flags: %s" msgstr " %#06x: Rev: %d Opts: %s" -#: readelf.c:4954 +#: readelf.c:5453 #, c-format msgid " Index: %d Cnt: %d " msgstr " Ind: %d Cnt: %d " -#: readelf.c:4965 +#: readelf.c:5464 #, c-format msgid "Name: %s\n" msgstr "Nombre: %s\n" -#: readelf.c:4967 +#: readelf.c:5466 #, c-format msgid "Name index: %ld\n" msgstr "Índice de nombres: %ld\n" -#: readelf.c:4982 +#: readelf.c:5481 #, c-format msgid " %#06x: Parent %d: %s\n" msgstr " %#06x: Padre %d: %s\n" -#: readelf.c:4985 +#: readelf.c:5484 #, c-format msgid " %#06x: Parent %d, name index: %ld\n" msgstr " %#06x: Padre %d, índice de nombres: %ld\n" -#: readelf.c:5004 +#: readelf.c:5503 #, c-format msgid "" "\n" @@ -3121,59 +3183,59 @@ msgstr "" "\n" "La sección de requerimientos de versión '%s' contiene %ld entradas:\n" -#: readelf.c:5007 +#: readelf.c:5506 msgid " Addr: 0x" msgstr " Dir: 0x" -#: readelf.c:5009 +#: readelf.c:5508 #, c-format msgid " Offset: %#08lx Link to section: %ld (%s)\n" msgstr " Despl: %#08lx Enlace a sección: %ld (%s)\n" -#: readelf.c:5015 +#: readelf.c:5514 msgid "version need section" msgstr "sección de versiones necesarias" -#: readelf.c:5037 +#: readelf.c:5536 #, c-format msgid " %#06x: Version: %d" msgstr " %#06x: Versión: %d" -#: readelf.c:5040 +#: readelf.c:5539 #, c-format msgid " File: %s" msgstr " Fichero: %s" -#: readelf.c:5042 +#: readelf.c:5541 #, c-format msgid " File: %lx" msgstr " Fichero: %lx" -#: readelf.c:5044 +#: readelf.c:5543 #, c-format msgid " Cnt: %d\n" msgstr " Cnt: %d\n" -#: readelf.c:5062 +#: readelf.c:5561 #, c-format msgid " %#06x: Name: %s" msgstr " %#06x: Nombre: %s" -#: readelf.c:5065 +#: readelf.c:5564 #, c-format msgid " %#06x: Name index: %lx" msgstr " %#06x: Índice de nombres: %lx" -#: readelf.c:5068 +#: readelf.c:5567 #, c-format msgid " Flags: %s Version: %d\n" msgstr " Opts: %s Versión: %d\n" -#: readelf.c:5104 +#: readelf.c:5603 msgid "version string table" msgstr "versión de tabla de cadenas" -#: readelf.c:5108 +#: readelf.c:5607 #, c-format msgid "" "\n" @@ -3182,39 +3244,39 @@ msgstr "" "\n" "La sección de símbolos de versión '%s' contiene %d entradas:\n" -#: readelf.c:5111 +#: readelf.c:5610 msgid " Addr: " msgstr " Dir: " -#: readelf.c:5121 +#: readelf.c:5622 msgid "version symbol data" msgstr "datos de símbolos de versión" -#: readelf.c:5148 +#: readelf.c:5649 msgid " 0 (*local*) " msgstr " 0 (*local*) " -#: readelf.c:5152 +#: readelf.c:5653 msgid " 1 (*global*) " msgstr " 1 (*global*) " -#: readelf.c:5187 readelf.c:5622 +#: readelf.c:5689 readelf.c:6129 msgid "version need" msgstr "la versión necesita" -#: readelf.c:5197 +#: readelf.c:5699 msgid "version need aux (2)" msgstr "la versión necesita aux (2)" -#: readelf.c:5238 readelf.c:5684 +#: readelf.c:5741 readelf.c:6192 msgid "version def" msgstr "versión definida" -#: readelf.c:5257 readelf.c:5699 +#: readelf.c:5760 readelf.c:6207 msgid "version def aux" msgstr "versión definida auxiliar" -#: readelf.c:5288 +#: readelf.c:5791 msgid "" "\n" "No version information found in this file.\n" @@ -3222,23 +3284,23 @@ msgstr "" "\n" "No se encontró información de versión en este fichero.\n" -#: readelf.c:5420 +#: readelf.c:5923 msgid "Unable to read in dynamic data\n" msgstr "No se pueden leer los datos dinámicos\n" -#: readelf.c:5462 +#: readelf.c:5967 msgid "Unable to seek to start of dynamic information" msgstr "No se puede encontrar el inicio de la información dinámica" -#: readelf.c:5468 +#: readelf.c:5973 msgid "Failed to read in number of buckets\n" msgstr "Falló la lectura en el número de cubos\n" -#: readelf.c:5474 +#: readelf.c:5979 msgid "Failed to read in number of chains\n" msgstr "Falló la lectura en el número de cadenas\n" -#: readelf.c:5494 +#: readelf.c:5999 msgid "" "\n" "Symbol table for image:\n" @@ -3246,15 +3308,15 @@ msgstr "" "\n" "Tabla de símbolos por imagen:\n" -#: readelf.c:5496 +#: readelf.c:6001 msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n" msgstr " Num Cub: Valor Tamaño Tipo Uni Vis Nombre Ind\n" -#: readelf.c:5498 +#: readelf.c:6003 msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n" msgstr " Num Cub: Valor Tamaño Typo Uni Vis Nombre Ind\n" -#: readelf.c:5543 +#: readelf.c:6048 #, c-format msgid "" "\n" @@ -3263,27 +3325,27 @@ msgstr "" "\n" "La tabla de símbolos '%s' contiene %lu entradas:\n" -#: readelf.c:5547 +#: readelf.c:6052 msgid " Num: Value Size Type Bind Vis Ndx Name\n" msgstr " Num: Valor Tam Tipo Unión Vis Nombre Ind\n" -#: readelf.c:5549 +#: readelf.c:6054 msgid " Num: Value Size Type Bind Vis Ndx Name\n" msgstr " Num: Valor Tam Tipo Unión Vis Nombre Ind\n" -#: readelf.c:5595 +#: readelf.c:6101 msgid "version data" msgstr "datos de versión" -#: readelf.c:5635 +#: readelf.c:6142 msgid "version need aux (3)" msgstr "la versión necesita aux (3)" -#: readelf.c:5660 +#: readelf.c:6167 msgid "bad dynamic symbol" msgstr "símbolo dinámico erróneo" -#: readelf.c:5722 +#: readelf.c:6230 msgid "" "\n" "Dynamic symbol information is not available for displaying symbols.\n" @@ -3291,7 +3353,7 @@ msgstr "" "\n" "La información de símbolos dinámicos no está disponible para mostrar los símbolos.\n" -#: readelf.c:5734 +#: readelf.c:6242 #, c-format msgid "" "\n" @@ -3300,16 +3362,16 @@ msgstr "" "\n" "Histograma para la longitud de lista de cubos (total de %d cubos):\n" -#: readelf.c:5736 +#: readelf.c:6244 #, c-format msgid " Length Number %% of total Coverage\n" msgstr " Long Número %% del total Cobertura\n" -#: readelf.c:5741 readelf.c:5760 readelf.c:9146 readelf.c:9338 +#: readelf.c:6249 readelf.c:6268 readelf.c:9898 readelf.c:10090 msgid "Out of memory" msgstr "Memoria agotada" -#: readelf.c:5809 +#: readelf.c:6317 #, c-format msgid "" "\n" @@ -3318,11 +3380,11 @@ msgstr "" "\n" "El segmento de información dinámica en el desplazamiento 0x%lx contiene %d entradas:\n" -#: readelf.c:5812 +#: readelf.c:6320 msgid " Num: Name BoundTo Flags\n" msgstr " Num: Nombre EnlaceA Opts\n" -#: readelf.c:5864 +#: readelf.c:6373 #, c-format msgid "" "\n" @@ -3331,7 +3393,7 @@ msgstr "" "\n" "Volcado ensamblador de la sección %s\n" -#: readelf.c:5887 +#: readelf.c:6396 #, c-format msgid "" "\n" @@ -3340,7 +3402,7 @@ msgstr "" "\n" "La sección '%s' no tiene datos para volcar.\n" -#: readelf.c:5892 +#: readelf.c:6401 #, c-format msgid "" "\n" @@ -3349,20 +3411,20 @@ msgstr "" "\n" "Volcado hexadecimal de la sección '%s':\n" -#: readelf.c:5897 +#: readelf.c:6406 msgid "section data" msgstr "datos de sección" -#: readelf.c:6046 +#: readelf.c:6555 msgid "badly formed extended line op encountered!\n" msgstr "¡se encontró un operador extendido de línea mal formado!\n" -#: readelf.c:6053 +#: readelf.c:6562 #, c-format msgid " Extended opcode %d: " msgstr " Código de operación extendido %d: " -#: readelf.c:6058 +#: readelf.c:6567 msgid "" "End of Sequence\n" "\n" @@ -3370,31 +3432,31 @@ msgstr "" "Fin de la Secuencia\n" "\n" -#: readelf.c:6064 +#: readelf.c:6573 #, c-format msgid "set Address to 0x%lx\n" msgstr "establecer la Dirección a 0x%lx\n" -#: readelf.c:6069 +#: readelf.c:6578 msgid " define new File Table entry\n" msgstr " definir la nueva entrada en la Tabla de Ficheros\n" -#: readelf.c:6070 readelf.c:6199 +#: readelf.c:6579 readelf.c:6726 msgid " Entry\tDir\tTime\tSize\tName\n" msgstr " Entr\tDir\tHora\tTam\tNombre\n" -#: readelf.c:6072 +#: readelf.c:6581 #, c-format msgid " %d\t" msgstr " %d\t" -#: readelf.c:6075 readelf.c:6077 readelf.c:6079 readelf.c:6211 readelf.c:6213 -#: readelf.c:6215 +#: readelf.c:6584 readelf.c:6586 readelf.c:6588 readelf.c:6738 readelf.c:6740 +#: readelf.c:6742 #, c-format msgid "%lu\t" msgstr "%lu\t" -#: readelf.c:6080 +#: readelf.c:6589 #, c-format msgid "" "%s\n" @@ -3403,12 +3465,12 @@ msgstr "" "%s\n" "\n" -#: readelf.c:6084 +#: readelf.c:6593 #, c-format msgid "UNKNOWN: length %d\n" msgstr "UNKNOWN: longitud %d\n" -#: readelf.c:6110 +#: readelf.c:6621 #, c-format msgid "" "\n" @@ -3419,59 +3481,55 @@ msgstr "" "Volcado del contenido de depuración de la sección %s:\n" "\n" -#: readelf.c:6122 -msgid "64-bit DWARF line info is not supported yet.\n" -msgstr "La información de línea de DWARF 64-bit aún no tiene soporte.\n" - -#: readelf.c:6129 +#: readelf.c:6649 msgid "The line info appears to be corrupt - the section is too small\n" msgstr "La información de línea parece estar corrupta - esta sección es demasiado pequeña\n" -#: readelf.c:6137 -msgid "Only DWARF version 2 line info is currently supported.\n" -msgstr "Solamente la información de línea de DWARF versión 2 tiene soporte.\n" +#: readelf.c:6658 +msgid "Only DWARF version 2 and 3 line info is currently supported.\n" +msgstr "Solamente la información de línea de DWARF versión 2 y 3 tiene soporte actualmente.\n" -#: readelf.c:6152 +#: readelf.c:6679 #, c-format msgid " Length: %ld\n" msgstr " Longitud: %ld\n" -#: readelf.c:6153 +#: readelf.c:6680 #, c-format msgid " DWARF Version: %d\n" msgstr " Versión DWARF: %d\n" -#: readelf.c:6154 +#: readelf.c:6681 #, c-format msgid " Prologue Length: %d\n" msgstr " Longitud del Prólogo: %d\n" -#: readelf.c:6155 +#: readelf.c:6682 #, c-format msgid " Minimum Instruction Length: %d\n" msgstr " Longitud Mínima Instrucción: %d\n" -#: readelf.c:6156 +#: readelf.c:6683 #, c-format msgid " Initial value of 'is_stmt': %d\n" msgstr " Valor inicial de 'is_stmt': %d\n" -#: readelf.c:6157 +#: readelf.c:6684 #, c-format msgid " Line Base: %d\n" msgstr " Base Línea: %d\n" -#: readelf.c:6158 +#: readelf.c:6685 #, c-format msgid " Line Range: %d\n" msgstr " Rango Lìnea: %d\n" -#: readelf.c:6159 +#: readelf.c:6686 #, c-format msgid " Opcode Base: %d\n" msgstr " Base de Código de Operación: %d\n" -#: readelf.c:6168 +#: readelf.c:6695 msgid "" "\n" " Opcodes:\n" @@ -3479,12 +3537,12 @@ msgstr "" "\n" " Códigos de operación:\n" -#: readelf.c:6171 +#: readelf.c:6698 #, c-format msgid " Opcode %d has %d args\n" msgstr " El código de operación %d tiene %d argumentos\n" -#: readelf.c:6177 +#: readelf.c:6704 msgid "" "\n" " The Directory Table is empty.\n" @@ -3492,7 +3550,7 @@ msgstr "" "\n" " La Tabla de Directorios está vacía.\n" -#: readelf.c:6180 +#: readelf.c:6707 msgid "" "\n" " The Directory Table:\n" @@ -3500,12 +3558,12 @@ msgstr "" "\n" " La Tabla de Directorios:\n" -#: readelf.c:6184 +#: readelf.c:6711 #, c-format msgid " %s\n" msgstr " %s\n" -#: readelf.c:6195 +#: readelf.c:6722 msgid "" "\n" " The File Name Table is empty.\n" @@ -3513,7 +3571,7 @@ msgstr "" "\n" " La Tabla de Nombres de Fichero está vacía.\n" -#: readelf.c:6198 +#: readelf.c:6725 msgid "" "\n" " The File Name Table:\n" @@ -3521,18 +3579,18 @@ msgstr "" "\n" " La Tabla de Nombres de Fichero:\n" -#: readelf.c:6206 +#: readelf.c:6733 #, c-format msgid " %d\t" msgstr " %d\t" -#: readelf.c:6217 +#: readelf.c:6744 #, c-format msgid "%s\n" msgstr "%s\n" #. Now display the statements. -#: readelf.c:6225 +#: readelf.c:6752 msgid "" "\n" " Line Number Statements:\n" @@ -3540,78 +3598,78 @@ msgstr "" "\n" " Declaraciones de Número de Línea:\n" -#: readelf.c:6241 +#: readelf.c:6768 #, c-format msgid " Special opcode %d: advance Address by %d to 0x%lx" msgstr " código de Operación especial %d: Dirección de avance por %d a 0x%lx" -#: readelf.c:6245 +#: readelf.c:6772 #, c-format msgid " and Line by %d to %d\n" msgstr " y Línea por %d a %d\n" -#: readelf.c:6256 +#: readelf.c:6783 msgid " Copy\n" msgstr " Copiar\n" -#: readelf.c:6263 +#: readelf.c:6790 #, c-format msgid " Advance PC by %d to %lx\n" msgstr " Avanzar el PC por %d para %lx\n" -#: readelf.c:6271 +#: readelf.c:6798 #, c-format msgid " Advance Line by %d to %d\n" msgstr " Línea de Avance por %d para %d\n" -#: readelf.c:6278 +#: readelf.c:6805 #, c-format msgid " Set File Name to entry %d in the File Name Table\n" msgstr " Establecer el Nombre de Fichero para la entrada %d en la Tabla de Nombres de Fichero\n" -#: readelf.c:6286 +#: readelf.c:6813 #, c-format msgid " Set column to %d\n" msgstr " Establecer la columna a %d\n" -#: readelf.c:6293 +#: readelf.c:6820 #, c-format msgid " Set is_stmt to %d\n" msgstr " Establecer is_stmt a %d\n" -#: readelf.c:6298 +#: readelf.c:6825 msgid " Set basic block\n" msgstr " Establecer el bloque básico\n" -#: readelf.c:6306 +#: readelf.c:6833 #, c-format msgid " Advance PC by constant %d to 0x%lx\n" msgstr " Avanzar el PC por la constante %d a 0x%lx\n" -#: readelf.c:6314 +#: readelf.c:6841 #, c-format msgid " Advance PC by fixed size amount %d to 0x%lx\n" msgstr " Avanzar el PC por la cantidad de tamaño fijo %d a 0x%lx\n" -#: readelf.c:6319 +#: readelf.c:6846 msgid " Set prologue_end to true\n" msgstr " Establecer prologue_end a true\n" -#: readelf.c:6323 +#: readelf.c:6850 msgid " Set epilogue_begin to true\n" msgstr " Establecer epilogue_begin a true\n" -#: readelf.c:6329 +#: readelf.c:6856 #, c-format msgid " Set ISA to %d\n" msgstr " Establecer ISA a %d\n" -#: readelf.c:6333 +#: readelf.c:6860 #, c-format msgid " Unknown opcode %d with operands: " msgstr " Código de operación desconocido %d con los operandos: " -#: readelf.c:6365 readelf.c:6827 readelf.c:6899 +#: readelf.c:6891 readelf.c:7371 readelf.c:7443 #, c-format msgid "" "Contents of the %s section:\n" @@ -3620,35 +3678,31 @@ msgstr "" "Contenido de la sección %s:\n" "\n" -#: readelf.c:6384 -msgid "64-bit DWARF pubnames are not supported yet.\n" -msgstr "Los nombres públicos DWARF de 64-bit no tienen soporte aún.\n" - -#: readelf.c:6394 -msgid "Only DWARF 2 pubnames are currently supported\n" -msgstr "Actualmente sólo tienen soporte los nombres públicos DWARF2\n" +#: readelf.c:6931 +msgid "Only DWARF 2 and 3 pubnames are currently supported\n" +msgstr "Actualmente sólo tienen soporte los nombres públicos DWARF 2 y 3\n" -#: readelf.c:6401 +#: readelf.c:6938 #, c-format msgid " Length: %ld\n" msgstr " Longitud: %ld\n" -#: readelf.c:6403 +#: readelf.c:6940 #, c-format msgid " Version: %d\n" msgstr " Versión: %d\n" -#: readelf.c:6405 +#: readelf.c:6942 #, c-format msgid " Offset into .debug_info section: %ld\n" msgstr " Desplazamiento en sección .debug_info: %ld\n" -#: readelf.c:6407 +#: readelf.c:6944 #, c-format msgid " Size of area in .debug_info section: %ld\n" msgstr " Tamaño de área en sección .debug_info: %ld\n" -#: readelf.c:6410 +#: readelf.c:6947 msgid "" "\n" " Offset\tName\n" @@ -3656,85 +3710,85 @@ msgstr "" "\n" " Desplazamiento\tNombre\n" -#: readelf.c:6501 +#: readelf.c:7042 #, c-format msgid "Unknown TAG value: %lx" msgstr "Valor TAG desconocido: %lx" -#: readelf.c:6612 +#: readelf.c:7156 #, c-format msgid "Unknown AT value: %lx" msgstr "Valor AT desconocido: %lx" -#: readelf.c:6649 +#: readelf.c:7193 #, c-format msgid "Unknown FORM value: %lx" msgstr "Valor FORM desconocido: %lx" -#: readelf.c:6848 +#: readelf.c:7392 #, c-format msgid " DW_MACINFO_start_file - lineno: %d filenum: %d\n" msgstr " DW_MACINFO_start_file - numlinea: %d numfichero: %d\n" -#: readelf.c:6853 +#: readelf.c:7397 msgid " DW_MACINFO_end_file\n" msgstr " DW_MACINFO_end_file\n" -#: readelf.c:6861 +#: readelf.c:7405 #, c-format msgid " DW_MACINFO_define - lineno : %d macro : %s\n" msgstr " DW_MACINFO_define - numlinea : %d macro : %s\n" -#: readelf.c:6869 +#: readelf.c:7413 #, c-format msgid " DW_MACINFO_undef - lineno : %d macro : %s\n" msgstr " DW_MACINFO_undef - numlinea : %d macro : %s\n" -#: readelf.c:6880 +#: readelf.c:7424 #, c-format msgid " DW_MACINFO_vendor_ext - constant : %d string : %s\n" msgstr " DW_MACINFO_vendor_ext - constante : %d cadena : %s\n" -#: readelf.c:6908 +#: readelf.c:7452 msgid " Number TAG\n" msgstr " Número TAG\n" -#: readelf.c:6914 +#: readelf.c:7458 #, c-format msgid " %ld %s [%s]\n" msgstr " %ld %s [%s]\n" -#: readelf.c:6917 +#: readelf.c:7461 msgid "has children" msgstr "tiene hijos" -#: readelf.c:6917 +#: readelf.c:7461 msgid "no children" msgstr "sin hijos" -#: readelf.c:6921 +#: readelf.c:7465 #, c-format msgid " %-18s %s\n" msgstr " %-18s %s\n" -#: readelf.c:6942 +#: readelf.c:7486 #, c-format msgid " %lu byte block: " msgstr " bloque de bytes %lu: " -#: readelf.c:7265 +#: readelf.c:7814 msgid "(User defined location op)" msgstr "(Operador de ubicación definido por el usuario)" -#: readelf.c:7267 +#: readelf.c:7816 msgid "(Unknown location op)" msgstr "(Operador de ubicación desconocido)" -#: readelf.c:7305 +#: readelf.c:7855 msgid "debug_loc section data" msgstr "sección de datos debug_loc" -#: readelf.c:7336 +#: readelf.c:7887 msgid "" "\n" "The .debug_loc section is empty.\n" @@ -3742,7 +3796,7 @@ msgstr "" "\n" "La sección .debug_loc está vacía.\n" -#: readelf.c:7339 +#: readelf.c:7891 msgid "" "Contents of the .debug_loc section:\n" "\n" @@ -3750,7 +3804,7 @@ msgstr "" "Contenido de la sección .debug_loc:\n" "\n" -#: readelf.c:7340 +#: readelf.c:7892 msgid "" "\n" " Offset Begin End Expression\n" @@ -3758,19 +3812,19 @@ msgstr "" "\n" " Desplaz Inicio Fin Expresión\n" -#: readelf.c:7412 +#: readelf.c:7968 msgid "debug_str section data" msgstr "sección de datos debug_str" -#: readelf.c:7431 +#: readelf.c:7987 msgid "" msgstr "" -#: readelf.c:7434 +#: readelf.c:7990 msgid "" msgstr "" -#: readelf.c:7454 +#: readelf.c:8009 msgid "" "\n" "The .debug_str section is empty.\n" @@ -3778,7 +3832,7 @@ msgstr "" "\n" "La sección .debug_str está vacía.\n" -#: readelf.c:7458 +#: readelf.c:8013 msgid "" "Contents of the .debug_str section:\n" "\n" @@ -3786,38 +3840,42 @@ msgstr "" "Contenido de la sección .debug_str:\n" "\n" -#: readelf.c:7629 +#: readelf.c:8088 +msgid "Internal error: DWARF version is not 2 or 3.\n" +msgstr "Error interno: la versión DWARF no es 2 ó 3.\n" + +#: readelf.c:8203 #, c-format -msgid " (indirect string, offset: 0x%lx): " -msgstr " (cadena indirecta, desplazamiento 0x%lx): " +msgid " (indirect string, offset: 0x%lx): %s" +msgstr " (cadena indirecta, desplazamiento 0x%lx): %s" -#: readelf.c:7638 +#: readelf.c:8212 #, c-format msgid "Unrecognized form: %d\n" msgstr "Form no reconocido: %d\n" -#: readelf.c:7651 +#: readelf.c:8226 msgid "(not inlined)" msgstr "(no es inlined)" -#: readelf.c:7652 +#: readelf.c:8229 msgid "(inlined)" msgstr "(inlined)" -#: readelf.c:7653 +#: readelf.c:8232 msgid "(declared as inline but ignored)" msgstr "(declarado como inline pero ignorado)" -#: readelf.c:7654 +#: readelf.c:8235 msgid "(declared as inline and inlined)" msgstr "(declarado como inline y es inline)" -#: readelf.c:7655 +#: readelf.c:8238 #, c-format msgid " (Unknown inline attribute value: %lx)" msgstr " (Valor desconocido de atributo inline: %lx)" -#: readelf.c:7826 readelf.c:8029 +#: readelf.c:8419 readelf.c:8646 #, c-format msgid "" "The section %s contains:\n" @@ -3826,91 +3884,83 @@ msgstr "" "La sección %s contiene:\n" "\n" -#: readelf.c:7850 -msgid "64-bit DWARF debug info is not supported yet.\n" -msgstr "La información de depuración DWARF 64-bit aún no tiene soporte.\n" - -#: readelf.c:7919 +#: readelf.c:8535 #, c-format msgid " Compilation Unit @ %lx:\n" msgstr " Unidad de Compilación @ %lx:\n" -#: readelf.c:7920 +#: readelf.c:8536 #, c-format msgid " Length: %ld\n" msgstr " Longitud: %ld\n" -#: readelf.c:7921 +#: readelf.c:8537 #, c-format msgid " Version: %d\n" msgstr " Versión: %d\n" -#: readelf.c:7922 +#: readelf.c:8538 #, c-format msgid " Abbrev Offset: %ld\n" msgstr " Desplaz Abrev: %ld\n" -#: readelf.c:7923 +#: readelf.c:8539 #, c-format msgid " Pointer Size: %d\n" msgstr " Tamaño de Apuntador: %d\n" -#: readelf.c:7927 -msgid "Only version 2 DWARF debug information is currently supported.\n" -msgstr "Sólo la información de depuración DWARF versión 2 tiene soporte actualmente.\n" +#: readelf.c:8543 +msgid "Only version 2 and 3 DWARF debug information is currently supported.\n" +msgstr "Sólo la información de depuración DWARF versión 2 y 3 tiene soporte actualmente.\n" -#: readelf.c:7948 +#: readelf.c:8563 msgid "Unable to locate .debug_abbrev section!\n" msgstr "¡No se puede localizar la sección .debug_abbrev!\n" -#: readelf.c:7954 +#: readelf.c:8569 msgid "debug_abbrev section data" msgstr "sección de datos debug_abbrev" -#: readelf.c:7991 +#: readelf.c:8606 #, c-format msgid "Unable to locate entry %lu in the abbreviation table\n" msgstr "No se puede localizar la entrada %lu en la tabla de abreviaciones\n" -#: readelf.c:7996 +#: readelf.c:8611 #, c-format msgid " <%d><%lx>: Abbrev Number: %lu (%s)\n" msgstr " <%d><%lx>: Número de Abrev: %lu (%s)\n" -#: readelf.c:8050 -msgid "64-bit DWARF aranges are not supported yet.\n" -msgstr "Los rangos-a de DWARF 64-bit aún no tienen soporte.\n" - -#: readelf.c:8056 -msgid "Only DWARF 2 aranges are currently supported.\n" -msgstr "Sólo los rangos-a de DWARF2 tienen soporte actualmente.\n" +#: readelf.c:8691 +msgid "Only DWARF 2 and 3 aranges are currently supported.\n" +msgstr "Sólo los rangos-a de DWARF 2 y 3 tienen soporte actualmente.\n" -#: readelf.c:8060 +#: readelf.c:8695 #, c-format msgid " Length: %ld\n" msgstr " Longitud: %ld\n" -#: readelf.c:8061 +#: readelf.c:8696 #, c-format msgid " Version: %d\n" msgstr " Versión: %d\n" -#: readelf.c:8062 +#: readelf.c:8697 #, c-format msgid " Offset into .debug_info: %lx\n" msgstr " Desplaz. en .debug_info: %lx\n" -#: readelf.c:8063 +#: readelf.c:8698 #, c-format msgid " Pointer Size: %d\n" msgstr " Tamaño del Apuntador: %d\n" -#: readelf.c:8064 +#: readelf.c:8699 #, c-format msgid " Segment Size: %d\n" msgstr " Tamaño del Segmento: %d\n" -#: readelf.c:8066 +#: readelf.c:8701 msgid "" "\n" " Address Length\n" @@ -3918,21 +3968,17 @@ msgstr "" "\n" " Longitud de la Dirección\n" -#: readelf.c:8248 +#: readelf.c:8903 #, c-format msgid "The section %s contains:\n" msgstr "La sección %s contiene:\n" -#: readelf.c:8271 -msgid "64-bit DWARF format frames are not supported yet.\n" -msgstr "Los marcos de formato de DWARF 64-bit aú no tienen soporte.\n" - -#: readelf.c:8820 +#: readelf.c:9538 #, c-format msgid "Displaying the debug contents of section %s is not yet supported.\n" msgstr "Aún no tiene soporte el mostrar el contenido de depuración de la sección %s.\n" -#: readelf.c:8886 +#: readelf.c:9634 #, c-format msgid "" "\n" @@ -3941,28 +3987,28 @@ msgstr "" "\n" "La sección '%s' no tiene datos de depuración.\n" -#: readelf.c:8891 readelf.c:8953 +#: readelf.c:9639 readelf.c:9701 msgid "debug section data" msgstr "sección de datos de depuración" -#: readelf.c:8907 +#: readelf.c:9655 #, c-format msgid "Unrecognized debug section: %s\n" msgstr "Sección de depuración no reconocida: %s\n" -#: readelf.c:8981 +#: readelf.c:9729 msgid "Some sections were not dumped because they do not exist!\n" msgstr "¡Algunas secciones no se volcaron porque no existen!\n" -#: readelf.c:9054 readelf.c:9418 +#: readelf.c:9806 readelf.c:10170 msgid "liblist" msgstr "lista de bibliotecas" -#: readelf.c:9139 +#: readelf.c:9891 msgid "options" msgstr "opciones" -#: readelf.c:9170 +#: readelf.c:9922 #, c-format msgid "" "\n" @@ -3971,15 +4017,15 @@ msgstr "" "\n" "La sección '%s' contiene %d entradas:\n" -#: readelf.c:9331 +#: readelf.c:10083 msgid "conflict list found without a dynamic symbol table" msgstr "se encontró una lista de conflictos sin una tabla de símbolos dinámicos" -#: readelf.c:9349 readelf.c:9365 +#: readelf.c:10101 readelf.c:10117 msgid "conflict" msgstr "tiene conflictos con" -#: readelf.c:9375 +#: readelf.c:10127 #, c-format msgid "" "\n" @@ -3988,15 +4034,15 @@ msgstr "" "\n" "La sección '.conflict' contiene %ld entradas:\n" -#: readelf.c:9377 +#: readelf.c:10129 msgid " Num: Index Value Name" msgstr " Num: Índice Valor Nombre" -#: readelf.c:9426 +#: readelf.c:10178 msgid "liblist string table" msgstr "tabla de cadenas liblist" -#: readelf.c:9435 +#: readelf.c:10187 #, c-format msgid "" "\n" @@ -4005,78 +4051,78 @@ msgstr "" "\n" "La sección de lista de bibliotecas '%s' contiene %lu entradas:\n" -#: readelf.c:9484 +#: readelf.c:10236 msgid "NT_PRSTATUS (prstatus structure)" msgstr "NT_PRSTATUS (estructura prstatus)" -#: readelf.c:9485 +#: readelf.c:10237 msgid "NT_FPREGSET (floating point registers)" msgstr "NT_FPREGSET (registros de coma flotante)" -#: readelf.c:9486 +#: readelf.c:10238 msgid "NT_PRPSINFO (prpsinfo structure)" msgstr "NT_PRPSINFO (estructura prpsinfo)" -#: readelf.c:9487 +#: readelf.c:10239 msgid "NT_TASKSTRUCT (task structure)" msgstr "NT_TASKSTRUCT (estructura task)" -#: readelf.c:9488 +#: readelf.c:10240 msgid "NT_PRXFPREG (user_xfpregs structure)" msgstr "NT_PRXFPREG (estructura user_xfpregs)" -#: readelf.c:9489 +#: readelf.c:10241 msgid "NT_PSTATUS (pstatus structure)" msgstr "NT_PSTATUS (estructura pstatus)" -#: readelf.c:9490 +#: readelf.c:10242 msgid "NT_FPREGS (floating point registers)" msgstr "NT_FPREGS (registros de coma flotante)" -#: readelf.c:9491 +#: readelf.c:10243 msgid "NT_PSINFO (psinfo structure)" msgstr "NT_PSINFO (estructura psinfo)" -#: readelf.c:9492 +#: readelf.c:10244 msgid "NT_LWPSTATUS (lwpstatus_t structure)" msgstr "NT_LWPSTATUS (estructura lwpstatus_t)" -#: readelf.c:9493 +#: readelf.c:10245 msgid "NT_LWPSINFO (lwpsinfo_t structure)" msgstr "NT_LWPSINFO (estructura lwpsinfo_t)" -#: readelf.c:9494 +#: readelf.c:10246 msgid "NT_WIN32PSTATUS (win32_pstatus structure)" msgstr "NT_WIN32PSTATUS (estructura win32_pstatus)" -#: readelf.c:9496 readelf.c:9520 +#: readelf.c:10248 readelf.c:10272 #, c-format msgid "Unknown note type: (0x%08x)" msgstr "Tipo de nota desconocido: (0x%08x)" #. NetBSD core "procinfo" structure. -#: readelf.c:9510 +#: readelf.c:10262 msgid "NetBSD procinfo structure" msgstr "estructura procinfo de NetBSD" -#: readelf.c:9537 readelf.c:9551 +#: readelf.c:10289 readelf.c:10303 msgid "PT_GETREGS (reg structure)" msgstr "PT_GETREGS (estructura reg)" -#: readelf.c:9539 readelf.c:9553 +#: readelf.c:10291 readelf.c:10305 msgid "PT_GETFPREGS (fpreg structure)" msgstr "PT_GETFPREGS (estructura fpreg)" -#: readelf.c:9559 +#: readelf.c:10311 #, c-format msgid "PT_FIRSTMACH+%d" msgstr "PT_FIRSTMACH+%d" -#: readelf.c:9613 +#: readelf.c:10365 msgid "notes" msgstr "notas" -#: readelf.c:9619 +#: readelf.c:10371 #, c-format msgid "" "\n" @@ -4085,25 +4131,25 @@ msgstr "" "\n" "Notas en el desplazamiento 0x%08lx con longitud 0x%08lx:\n" -#: readelf.c:9621 +#: readelf.c:10373 msgid " Owner\t\tData size\tDescription\n" msgstr " Prop\t\tTamaño datos\tDescripción\n" -#: readelf.c:9640 +#: readelf.c:10392 #, c-format msgid "corrupt note found at offset %x into core notes\n" msgstr "se encontró una nota corrupta en el desplazamiento %x en las notas de núcleo\n" -#: readelf.c:9642 +#: readelf.c:10394 #, c-format msgid " type: %x, namesize: %08lx, descsize: %08lx\n" msgstr " tipo: %x, tamañonombre: %08lx, tamañodesc: %08lx\n" -#: readelf.c:9744 +#: readelf.c:10476 msgid "No note segments present in the core file.\n" msgstr "No hay segmentos de notas presentes el el fichero core.\n" -#: readelf.c:9822 +#: readelf.c:10560 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" @@ -4111,22 +4157,22 @@ msgstr "" "Esta instancia de readelf ha sido construida sin soporte para un\n" "tipo de datos de 64 bit y por eso no puede leer ficheros ELF de 64 bit.\n" -#: readelf.c:9868 +#: readelf.c:10606 #, c-format msgid "Cannot stat input file %s.\n" msgstr "No se puede obtener la información stat del fichero de entrada %s.\n" -#: readelf.c:9875 +#: readelf.c:10613 #, c-format msgid "Input file %s not found.\n" msgstr "No se encuentra el fichero de entrada %s.\n" -#: readelf.c:9881 +#: readelf.c:10619 #, c-format msgid "%s: Failed to read file header\n" msgstr "%s: Falló al leer el encabezado del fichero\n" -#: readelf.c:9895 +#: readelf.c:10633 #, c-format msgid "" "\n" @@ -4135,18 +4181,18 @@ msgstr "" "\n" "Fichero: %s\n" -#: rename.c:131 +#: rename.c:132 #, c-format msgid "%s: cannot set time: %s" msgstr "%s: no se puede establecer la hora: %s" #. We have to clean up here. -#: rename.c:170 rename.c:203 +#: rename.c:171 rename.c:204 #, c-format msgid "%s: rename: %s" msgstr "%s: rename: %s" -#: rename.c:211 +#: rename.c:212 #, c-format msgid "%s: simple_copy: %s" msgstr "%s: simple_copy: %s" @@ -4484,7 +4530,7 @@ msgstr "%s: fin de fichero inesperado" msgid "%s: read of %lu returned %lu" msgstr "%s: la lectura de %lu devolvió %lu" -#: resrc.c:650 resrc.c:904 resrc.c:1177 resrc.c:1331 +#: resrc.c:650 resrc.c:905 resrc.c:1178 resrc.c:1332 #, c-format msgid "stat failed on bitmap file `%s': %s" msgstr "stat falló en el fichero bitmap `%s': %s" @@ -4494,25 +4540,25 @@ msgstr "stat falló en el fichero bitmap msgid "cursor file `%s' does not contain cursor data" msgstr "el fichero de cursor `%s' no contiene datos de cursor" -#: resrc.c:735 resrc.c:1048 +#: resrc.c:735 resrc.c:1049 #, c-format msgid "%s: fseek to %lu failed: %s" msgstr "%s: falló fseek para %lu: %s" -#: resrc.c:872 +#: resrc.c:873 msgid "help ID requires DIALOGEX" msgstr "el ID de ayuda requiere DIALOGEX" -#: resrc.c:874 +#: resrc.c:875 msgid "control data requires DIALOGEX" msgstr "los datos de control requieren DIALOGEX" -#: resrc.c:1017 +#: resrc.c:1018 #, c-format msgid "icon file `%s' does not contain icon data" msgstr "el fichero de icono `%s' no contiene datos de icono" -#: resrc.c:1536 +#: resrc.c:1537 #, c-format msgid "can't open `%s' for output: %s" msgstr "no se puede abrir `%s' para salida: %s" @@ -4530,7 +4576,7 @@ msgstr "Si no se especifica(n) fichero(s msgid "" " 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" +" -o|-d|-x --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" @@ -4540,7 +4586,7 @@ msgstr "" " Las opciones son:\n" " -A|-B --format={sysv|berkeley} Selecciona el estilo de salida output\n" " (por omisión es %s)\n" -" -o|-d|-h --radix={8|10|16} Muestra los números en octal, decimal o\n" +" -o|-d|-x --radix={8|10|16} Muestra los números en octal, decimal o\n" " hexadecimal\n" " -t --totals Muestra los tamaños totales\n" " (sólo Berkeley)\n" @@ -4584,88 +4630,88 @@ msgstr "" msgid "unable to open output file %s" msgstr "no se puede abrir el fichero de salida %s" -#: stabs.c:343 stabs.c:1759 +#: stabs.c:346 stabs.c:1755 msgid "numeric overflow" msgstr "desbordamiento numérico" -#: stabs.c:354 +#: stabs.c:357 #, c-format msgid "Bad stab: %s\n" msgstr "Stab erróneo: %s\n" -#: stabs.c:364 +#: stabs.c:367 #, c-format msgid "Warning: %s: %s\n" msgstr "Aviso: %s: %s\n" -#: stabs.c:485 +#: stabs.c:488 msgid "N_LBRAC not within function\n" msgstr "N_LBRAC no está dentro de una función\n" -#: stabs.c:524 +#: stabs.c:527 msgid "Too many N_RBRACs\n" msgstr "Demasiados N_RBRACs\n" -#: stabs.c:769 +#: stabs.c:773 msgid "unknown C++ encoded name" msgstr "nombre C++ codificado desconocido" #. Complain and keep going, so compilers can invent new #. cross-reference types. -#: stabs.c:1296 +#: stabs.c:1293 msgid "unrecognized cross reference type" msgstr "tipo de referencia cruzada no reconocido" #. Does this actually ever happen? Is that why we are worrying #. about dealing with it rather than just calling error_type? -#: stabs.c:1851 +#: stabs.c:1847 msgid "missing index type" msgstr "tipo de índice desconocido" -#: stabs.c:2178 +#: stabs.c:2174 msgid "unknown virtual character for baseclass" msgstr "carácter virtual desconocido para la clase base" -#: stabs.c:2196 +#: stabs.c:2192 msgid "unknown visibility character for baseclass" msgstr "carácter de visibilidad desconocido para la clase base" -#: stabs.c:2388 +#: stabs.c:2384 msgid "unnamed $vb type" msgstr "tipo $vb sin nombre" -#: stabs.c:2394 +#: stabs.c:2390 msgid "unrecognized C++ abbreviation" msgstr "abreviación C++ no reconocida" -#: stabs.c:2474 +#: stabs.c:2470 msgid "unknown visibility character for field" msgstr "carácter de visibilidad desconocido para el campo" -#: stabs.c:2730 +#: stabs.c:2726 msgid "const/volatile indicator missing" msgstr "falta el indicador const/volatile" -#: stabs.c:2970 +#: stabs.c:2967 #, c-format msgid "No mangling for \"%s\"\n" msgstr "No hay desenredo para \"%s\"\n" -#: stabs.c:3283 +#: stabs.c:3281 msgid "Undefined N_EXCL" msgstr "N_EXCL indefinido" -#: stabs.c:3371 +#: stabs.c:3369 #, c-format msgid "Type file number %d out of range\n" msgstr "Número de tipo de fichero %d fuera de rango\n" -#: stabs.c:3376 +#: stabs.c:3374 #, c-format msgid "Type index number %d out of range\n" msgstr "Número de tipo de índice %d fuera de rango\n" -#: stabs.c:3463 +#: stabs.c:3461 #, c-format msgid "Unrecognized XCOFF type %d\n" msgstr "Tipo XCOFF %d no reconocido\n" @@ -4675,25 +4721,25 @@ msgstr "Tipo XCOFF %d no reconocido\n" msgid "bad mangled name `%s'\n" msgstr "nombre desenredado erróneamente `%s'\n" -#: stabs.c:3858 +#: stabs.c:3859 msgid "no argument types in mangled string\n" msgstr "no hay tipos de argumento en la cadena desenredada\n" -#: strings.c:200 +#: strings.c:208 #, c-format msgid "invalid number %s" msgstr "número %s inválido" -#: strings.c:640 +#: strings.c:647 #, c-format msgid "invalid integer argument %s" msgstr "argumento entero %s inválido" -#: strings.c:651 +#: strings.c:658 msgid " Display printable strings in [file(s)] (stdin by default)\n" msgstr " Muestra las cadenas imprimibles en [fichero(s)] (por omisión entrada estándar)\n" -#: strings.c:652 +#: strings.c:659 msgid "" " The options are:\n" " -a - --all Scan the entire file, not just the data section\n" @@ -4703,8 +4749,8 @@ msgid "" " -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" +" -e --encoding={s,S,b,l,B,L} Select character size and endianness:\n" +" s = 7-bit, 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 "" @@ -4717,8 +4763,8 @@ msgstr "" " -t --radix={o,x,d} Muestra la ubicación de la cadena en base 8, 10 ó 16\n" " -o Un alias para --radix=o\n" " -T --target= Especifica el formato de fichero binario\n" -" -e --encoding={s,b,l,B,L} Selecciona el tamaño del carácter y la \"endianez\":\n" -" s = 8-bit, {b,l} = 16-bit, {B,L} = 32-bit\n" +" -e --encoding={s,S,b,l,B,L} Selecciona el tamaño del carácter y la \"endianez\":\n" +" s = 7-bit, S = 8-bit, {b,l} = 16-bit, {B,L} = 32-bit\n" " -h --help Muestra esta información\n" " -v --version Muestra el número de versión del programa\n" @@ -4741,11 +4787,11 @@ msgstr "" msgid "cannot open input file %s" msgstr "no se puede abrir el fichero de entrada %s" -#: version.c:35 +#: version.c:36 msgid "Copyright 2002 Free Software Foundation, Inc.\n" msgstr "Copyright 2002 Free Software Foundation, Inc.\n" -#: version.c:36 +#: version.c:37 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" @@ -4753,95 +4799,99 @@ msgstr "" "Este programa es software libre; se puede redistribuir bajo los términos de\n" "la Licencia Pública General de GNU. Este programa no tiene ninguna garantía.\n" -#: windres.c:239 +#: windres.c:205 #, c-format msgid "can't open %s `%s': %s" msgstr "no se puede abrir %s `%s': %s" -#: windres.c:418 +#: windres.c:384 msgid ": expected to be a directory\n" msgstr ": se esperaba que fuera un directorio\n" -#: windres.c:430 +#: windres.c:396 msgid ": expected to be a leaf\n" msgstr ": se esperaba que fuera una hoja\n" -#: windres.c:439 +#: windres.c:405 #, c-format msgid "%s: warning: " msgstr "%s: aviso: " -#: windres.c:441 +#: windres.c:407 msgid ": duplicate value\n" msgstr ": valor duplicado\n" -#: windres.c:602 +#: windres.c:569 #, c-format msgid "unknown format type `%s'" msgstr "tipo de formato `%s' desconocido" -#: windres.c:603 +#: windres.c:570 #, c-format msgid "%s: supported formats:" msgstr "%s: formatos con soporte:" #. Otherwise, we give up. -#: windres.c:688 +#: windres.c:655 #, c-format msgid "can not determine type of file `%s'; use the -I option" msgstr "no se puede determinar el tipo del fichero `%s'; use la opción -I" -#: windres.c:702 +#: windres.c:669 #, c-format msgid "Usage: %s [option(s)] [input-file] [output-file]\n" msgstr "Modo de empleo: %s [opcion(es)] [fichero-entrada] [fichero-salida]\n" -#: windres.c:704 +#: windres.c:671 msgid "" " The options are:\n" " -i --input= Name input file\n" " -o --output= Name output file\n" -" -I --input-format= Specify input format\n" +" -J --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" +" -I --include-dir= Include directory when preprocessing rc file\n" " -D --define [=] Define SYM when preprocessing rc file\n" +" -U --undefine Undefine SYM when preprocessing rc file\n" " -v --verbose Verbose - tells you what it's doing\n" -" --language= Set language when reading rc file\n" +" -l --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 "" -"Opciones:\n" +"Las opciones son:\n" " -i --input= Nombra el fichero de entrada\n" " -o --output= Nombra el fichero de salida\n" " -I --input-format= Especifica el formato de entrada\n" " -O --output-format= Especifica el formato de salida\n" " -F --target= Especifica el objetivo COFF\n" " --preprocessor= Programa a utilizar para preprocesar el fichero rc\n" -" --include-dir= Incluye el directorio al preprocesar el fichero rc\n" -" -D --define [=val]\n" -" Define un SIMbolo al preprocesar el fichero rc\n" +" -I --include-dir= Incluye el directorio al preprocesar el fichero rc\n" +" -D --define [=val] Define un SIMbolo al preprocesar el fichero rc\n" +" -U --undefine No define el SIMbolo al preprocesar el fichero rc\n" " -v --verbose Detallado - dice lo que está haciendo\n" -" --language= Establece el lenguaje al leer el fichero rc\n" +" -l --language= Establece el lenguaje al leer el fichero rc\n" " --use-temp-file Usa un fichero temporal en lugar de popen para\n" " leer la salida del preprocesador\n" " --no-use-temp-file Usa popen (por omisión)\n" -#: windres.c:719 +#: windres.c:687 msgid " --yydebug Turn on parser debugging\n" msgstr " --yydebug Activa el decodificador de depuración\n" -#: windres.c:722 +#: windres.c:690 msgid "" +" -r Ignored for compatibility with rc\n" " -h --help Print this help message\n" " -V --version Print version information\n" msgstr "" +" Las opciones son:\n" +" -r Se ignora por compatibilidad con rc\n" " -h --help Muestra este mensaje de ayuda\n" " -V --version Muestra la información de versión\n" -#: windres.c:725 +#: windres.c:694 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" @@ -4852,25 +4902,65 @@ msgstr "" "entrada. Sin fichero de entrada es la entrada estándar, por omisión rc.\n" "Sin fichero de salida es la salida estándar, por omisión rc.\n" -#: windres.c:988 +#: windres.c:833 +msgid "invalid option -f\n" +msgstr "opción -f inválida\n" + +#: windres.c:838 +msgid "No filename following the -fo option.\n" +msgstr "No hay un nombre de fichero a continuación de la opción -fo.\n" + +#: windres.c:896 +msgid "Option -I is deprecated for setting the input format, please use -J instead.\n" +msgstr "La opción -I es obsoleta para establecer el formato de salida, por favor use -J en su lugar.\n" + +#: windres.c:1014 msgid "no resources" msgstr "no hay recursos" -#: wrstabs.c:366 wrstabs.c:2026 +#: wrstabs.c:395 wrstabs.c:2055 #, c-format msgid "string_hash_lookup failed: %s" msgstr "string_hash_lookup falló: %s" -#: wrstabs.c:666 +#: wrstabs.c:695 #, c-format msgid "stab_int_type: bad size %u" msgstr "stab_int_type: tipo %u erróneo" -#: wrstabs.c:1466 +#: wrstabs.c:1495 #, c-format msgid "%s: warning: unknown size for field `%s' in struct" msgstr "%s: aviso: tamaño desconocido para el campo `%s' en la estructura" +#~ msgid "debug_record_variable: no current block" +#~ msgstr "debug_record_variable: no hay un bloque actual" + +#~ msgid "%s: No dynamic symbols" +#~ msgstr "%s: No hay símbolos dinámicos" + +#~ msgid "64-bit DWARF line info is not supported yet.\n" +#~ msgstr "La información de línea de DWARF 64-bit aún no tiene soporte.\n" + +#~ msgid "64-bit DWARF pubnames are not supported yet.\n" +#~ msgstr "Los nombres públicos DWARF de 64-bit no tienen soporte aún.\n" + +#~ msgid "64-bit DWARF debug info is not supported yet.\n" +#~ msgstr "La información de depuración DWARF 64-bit aún no tiene soporte.\n" + +#~ msgid "64-bit DWARF aranges are not supported yet.\n" +#~ msgstr "Los rangos-a de DWARF 64-bit aún no tienen soporte.\n" + +#~ msgid "64-bit DWARF format frames are not supported yet.\n" +#~ msgstr "Los marcos de formato de DWARF 64-bit aú no tienen soporte.\n" + +#~ msgid "" +#~ " -h --help Print this help message\n" +#~ " -V --version Print version information\n" +#~ msgstr "" +#~ " -h --help Muestra este mensaje de ayuda\n" +#~ " -V --version Muestra la información de versión\n" + #~ msgid "" #~ "Usage: %s [-CfsHV] [-b bfdname] [--target=bfdname]\n" #~ " [-e executable] [--exe=executable] [--demangle[=style]]\n" diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/binutils/prdbg.c binutils-2.14.90.0.5/binutils/prdbg.c --- binutils-2.14.90.0.4.1/binutils/prdbg.c 2002-12-16 12:22:52.000000000 -0800 +++ binutils-2.14.90.0.5/binutils/prdbg.c 2003-07-23 08:08:09.000000000 -0700 @@ -1,6 +1,7 @@ /* prdbg.c -- Print out generic debugging information. - Copyright 1995, 1996, 2002 Free Software Foundation, Inc. + Copyright 1995, 1996, 2002, 2003 Free Software Foundation, Inc. Written by Ian Lance Taylor . + Tags style generation written by Salvador E. Tropea . This file is part of GNU Binutils. @@ -43,6 +44,15 @@ struct pr_handle struct pr_stack *stack; /* Parameter number we are about to output. */ int parameter; + /* The following are used only by the tags code (tg_). */ + /* Name of the file we are using. */ + char *filename; + /* The BFD. */ + bfd *abfd; + /* The symbols table for this BFD. */ + asymbol **syms; + /* Pointer to a function to demangle symbols. */ + char *(*demangler) (bfd *, const char *); }; /* The type stack. */ @@ -57,6 +67,13 @@ struct pr_stack enum debug_visibility visibility; /* Name of the current method we are handling. */ const char *method; + /* The following are used only by the tags code (tg_). */ + /* Type for the container (struct, union, class, union class). */ + const char *flavor; + /* A comma separated list of parent classes. */ + char *parents; + /* How many parents contains parents. */ + int num_parents; }; static void indent @@ -168,7 +185,40 @@ static bfd_boolean pr_end_function PARAMS ((PTR)); static bfd_boolean pr_lineno PARAMS ((PTR, const char *, unsigned long, bfd_vma)); - +static bfd_boolean append_parent (struct pr_handle *, const char *); +/* Only used by tg_ code. */ +static bfd_boolean tg_fix_visibility (struct pr_handle *, enum debug_visibility); +static void find_address_in_section (bfd *, asection *, void *); +static void translate_addresses (bfd *, char *, FILE *, asymbol **); +static const char *visibility_name (enum debug_visibility); +/* Tags style replacements. */ +static bfd_boolean tg_start_compilation_unit (void *, const char *); +static bfd_boolean tg_start_source (void *, const char *); +static bfd_boolean tg_enum_type (void *, const char *, const char **, bfd_signed_vma *); +static bfd_boolean tg_start_struct_type (void *, const char *, unsigned int, bfd_boolean, unsigned int); +static bfd_boolean pr_struct_field (void *, const char *, bfd_vma, bfd_vma, enum debug_visibility); +static bfd_boolean tg_struct_field (void *, const char *, bfd_vma, bfd_vma, enum debug_visibility); +static bfd_boolean tg_struct_field (void *, const char *, bfd_vma, bfd_vma, enum debug_visibility); +static bfd_boolean tg_end_struct_type (void *); +static bfd_boolean tg_start_class_type (void *, const char *, unsigned int, bfd_boolean, unsigned int, bfd_boolean, bfd_boolean); +static bfd_boolean tg_class_static_member (void *, const char *, const char *, enum debug_visibility); +static bfd_boolean tg_class_baseclass (void *, bfd_vma, bfd_boolean, enum debug_visibility); +static bfd_boolean tg_class_method_variant (void *, const char *, enum debug_visibility, bfd_boolean, bfd_boolean, bfd_vma, bfd_boolean); +static bfd_boolean tg_class_static_method_variant (void *, const char *, enum debug_visibility, bfd_boolean, bfd_boolean); +static bfd_boolean tg_end_class_type (void *); +static bfd_boolean tg_tag_type (void *, const char *, unsigned int, enum debug_type_kind); +static bfd_boolean tg_typdef (void *, const char *); +static bfd_boolean tg_tag (void *, const char *); +static bfd_boolean tg_int_constant (void *, const char *, bfd_vma); +static bfd_boolean tg_float_constant (void *, const char *, double); +static bfd_boolean tg_typed_constant (void *, const char *, bfd_vma); +static bfd_boolean tg_variable (void *, const char *, enum debug_var_kind, bfd_vma); +static bfd_boolean tg_start_function (void *, const char *, bfd_boolean); +static bfd_boolean tg_function_parameter (void *, const char *, enum debug_parm_kind, bfd_vma); +static bfd_boolean tg_start_block (void *, bfd_vma); +static bfd_boolean tg_end_block (void *, bfd_vma); +static bfd_boolean tg_lineno (void *, const char *, unsigned long, bfd_vma); + static const struct debug_write_fns pr_fns = { pr_start_compilation_unit, @@ -217,12 +267,64 @@ static const struct debug_write_fns pr_f pr_lineno }; +static const struct debug_write_fns tg_fns = +{ + tg_start_compilation_unit, + tg_start_source, + pr_empty_type, /* Same, push_type. */ + pr_void_type, /* Same, push_type. */ + pr_int_type, /* Same, push_type. */ + pr_float_type, /* Same, push_type. */ + pr_complex_type, /* Same, push_type. */ + pr_bool_type, /* Same, push_type. */ + tg_enum_type, + pr_pointer_type, /* Same, changes to pointer. */ + pr_function_type, /* Same, push_type. */ + pr_reference_type, /* Same, changes to reference. */ + pr_range_type, /* FIXME: What's that?. */ + pr_array_type, /* Same, push_type. */ + pr_set_type, /* FIXME: What's that?. */ + pr_offset_type, /* FIXME: What's that?. */ + pr_method_type, /* Same. */ + pr_const_type, /* Same, changes to const. */ + pr_volatile_type, /* Same, changes to volatile. */ + tg_start_struct_type, + tg_struct_field, + tg_end_struct_type, + tg_start_class_type, + tg_class_static_member, + tg_class_baseclass, + pr_class_start_method, /* Same, remmembers that's a method. */ + tg_class_method_variant, + tg_class_static_method_variant, + pr_class_end_method, /* Same, forgets that's a method. */ + tg_end_class_type, + pr_typedef_type, /* Same, just push type. */ + tg_tag_type, + tg_typdef, + tg_tag, + tg_int_constant, /* Untested. */ + tg_float_constant, /* Untested. */ + tg_typed_constant, /* Untested. */ + tg_variable, + tg_start_function, + tg_function_parameter, + tg_start_block, + tg_end_block, + pr_end_function, /* Same, does nothing. */ + tg_lineno +}; + /* Print out the generic debugging information recorded in dhandle. */ bfd_boolean -print_debugging_info (f, dhandle) +print_debugging_info (f, dhandle, abfd, syms, demangler, as_tags) FILE *f; PTR dhandle; + bfd *abfd; + asymbol **syms; + PTR demangler; + bfd_boolean as_tags; { struct pr_handle info; @@ -230,8 +332,21 @@ print_debugging_info (f, dhandle) info.indent = 0; info.stack = NULL; info.parameter = 0; + info.filename = NULL; + info.abfd = abfd; + info.syms = syms; + info.demangler = demangler; + + if (as_tags) + { + fputs ("!_TAG_FILE_FORMAT\t2\t/extended format/\n", f); + fputs ("!_TAG_FILE_SORTED\t0\t/0=unsorted, 1=sorted/\n", f); + fputs ("!_TAG_PROGRAM_AUTHOR\tIan Lance Taylor, Salvador E. Tropea and others\t//\n", f); + fputs ("!_TAG_PROGRAM_NAME\tobjdump\t/From GNU binutils/\n", f); + } - return debug_write (dhandle, &pr_fns, (PTR) &info); + return as_tags ? debug_write (dhandle, &tg_fns, (void *) & info) + : debug_write (dhandle, &pr_fns, (void *) & info); } /* Indent to the current indentation level. */ @@ -311,6 +426,26 @@ append_type (info, s) return TRUE; } +/* Append a string to the parents on the top of the type stack. */ + +static bfd_boolean +append_parent (struct pr_handle *info, const char *s) +{ + unsigned int len; + + if (s == NULL) + return FALSE; + + assert (info->stack != NULL); + + len = info->stack->parents ? strlen (info->stack->parents) : 0; + info->stack->parents = (char *) xrealloc (info->stack->parents, + len + strlen (s) + 1); + strcpy (info->stack->parents + len, s); + + return TRUE; +} + /* We use an underscore to indicate where the name should go in a type string. This function substitutes a string for the underscore. If there is no underscore, the name follows the type. */ @@ -1894,3 +2029,922 @@ pr_end_function (p) { return TRUE; } + +/* Tags style generation functions start here. */ + +/* Variables for address to line translation. */ +static bfd_vma pc; +static const char *filename; +static const char *functionname; +static unsigned int line; +static bfd_boolean found; + +/* Look for an address in a section. This is called via + bfd_map_over_sections. */ + +static void +find_address_in_section (bfd *abfd, asection *section, void *data) +{ + bfd_vma vma; + bfd_size_type size; + asymbol **syms = (asymbol **) data; + + if (found) + return; + + if ((bfd_get_section_flags (abfd, section) & SEC_ALLOC) == 0) + return; + + vma = bfd_get_section_vma (abfd, section); + if (pc < vma) + return; + + size = bfd_get_section_size_before_reloc (section); + if (pc >= vma + size) + return; + + found = bfd_find_nearest_line (abfd, section, syms, pc - vma, + &filename, &functionname, &line); +} + +static void +translate_addresses (bfd *abfd, char *addr_hex, FILE *f, asymbol **syms) +{ + pc = bfd_scan_vma (addr_hex, NULL, 16); + found = FALSE; + bfd_map_over_sections (abfd, find_address_in_section, syms); + + if (! found) + fprintf (f, "??"); + else + fprintf (f, "%u", line); +} + +/* Start a new compilation unit. */ + +static bfd_boolean +tg_start_compilation_unit (void * p, const char *filename ATTRIBUTE_UNUSED) +{ + struct pr_handle *info = (struct pr_handle *) p; + + fprintf (stderr, "New compilation unit: %s\n", filename); + + free (info->filename); + /* Should it be relative? best way to do it here?. */ + info->filename = strdup (filename); + + return TRUE; +} + +/* Start a source file within a compilation unit. */ + +static bfd_boolean +tg_start_source (void *p, const char *filename) +{ + struct pr_handle *info = (struct pr_handle *) p; + + free (info->filename); + /* Should it be relative? best way to do it here?. */ + info->filename = strdup (filename); + + return TRUE; +} + +/* Push an enum type onto the type stack. */ + +static bfd_boolean +tg_enum_type (void *p, const char *tag, const char **names, + bfd_signed_vma *values) +{ + struct pr_handle *info = (struct pr_handle *) p; + unsigned int i; + const char *name; + char ab[20]; + + if (! pr_enum_type (p, tag, names, values)) + return FALSE; + + name = tag ? tag : "unknown"; + /* Generate an entry for the enum. */ + if (tag) + fprintf (info->f, "%s\t%s\t0;\"\tkind:e\ttype:%s\n", tag, + info->filename, info->stack->type); + + /* Generate entries for the values. */ + if (names != NULL) + { + for (i = 0; names[i] != NULL; i++) + { + print_vma (values[i], ab, FALSE, FALSE); + fprintf (info->f, "%s\t%s\t0;\"\tkind:g\tenum:%s\tvalue:%s\n", + names[i], info->filename, name, ab); + } + } + + return TRUE; +} + +/* Start accumulating a struct type. */ + +static bfd_boolean +tg_start_struct_type (void *p, const char *tag, unsigned int id, + bfd_boolean structp, unsigned int size ATTRIBUTE_UNUSED) +{ + struct pr_handle *info = (struct pr_handle *) p; + const char *name; + char idbuf[20]; + + if (tag != NULL) + name = tag; + else + { + name = idbuf; + sprintf (idbuf, "%%anon%u", id); + } + + if (! push_type (info, name)) + return FALSE; + + info->stack->flavor = structp ? "struct" : "union"; + + fprintf (info->f, "%s\t%s\t0;\"\tkind:%c\n", name, info->filename, + info->stack->flavor[0]); + + info->stack->visibility = DEBUG_VISIBILITY_PUBLIC; + + return indent_type (info); +} + +/* Output the visibility of a field in a struct. */ + +static bfd_boolean +tg_fix_visibility (struct pr_handle *info, enum debug_visibility visibility) +{ + assert (info->stack != NULL); + + if (info->stack->visibility == visibility) + return TRUE; + + assert (info->stack->visibility != DEBUG_VISIBILITY_IGNORE); + + info->stack->visibility = visibility; + + return TRUE; +} + +/* Add a field to a struct type. */ + +static bfd_boolean +tg_struct_field (void *p, const char *name, bfd_vma bitpos ATTRIBUTE_UNUSED, + bfd_vma bitsize ATTRIBUTE_UNUSED, + enum debug_visibility visibility) +{ + struct pr_handle *info = (struct pr_handle *) p; + char *t; + + t = pop_type (info); + if (t == NULL) + return FALSE; + + if (! tg_fix_visibility (info, visibility)) + return FALSE; + + /* It happends, a bug? */ + if (! name[0]) + return TRUE; + + fprintf (info->f, "%s\t%s\t0;\"\tkind:m\ttype:%s\t%s:%s\taccess:%s\n", + name, info->filename, t, info->stack->flavor, info->stack->type, + visibility_name (visibility)); + + return TRUE; +} + +/* Finish a struct type. */ + +static bfd_boolean +tg_end_struct_type (void *p ATTRIBUTE_UNUSED) +{ + struct pr_handle *info = (struct pr_handle *) p; + assert (info->stack != NULL); + + return TRUE; +} + +/* Start a class type. */ + +static bfd_boolean +tg_start_class_type (void *p, const char *tag, unsigned int id, + bfd_boolean structp, unsigned int size, + bfd_boolean vptr, bfd_boolean ownvptr) +{ + struct pr_handle *info = (struct pr_handle *) p; + char *tv = NULL; + const char *name; + + info->indent += 2; + + if (vptr && ! ownvptr) + { + tv = pop_type (info); + if (tv == NULL) + return FALSE; + } + + if (tag != NULL) + name = tag; + else + { + char idbuf[20]; + + sprintf (idbuf, "%%anon%u", id); + name = idbuf; + } + + if (! push_type (info, name)) + return FALSE; + + info->stack->flavor = structp ? "class" : "union class"; + info->stack->parents = NULL; + info->stack->num_parents = 0; + + if (size != 0 || vptr || ownvptr || tag != NULL) + { + if (vptr) + { + if (! append_type (info, " vtable ")) + return FALSE; + if (ownvptr) + { + if (! append_type (info, "self ")) + return FALSE; + } + else + { + if (! append_type (info, tv) + || ! append_type (info, " ")) + return FALSE; + } + } + } + + info->stack->visibility = DEBUG_VISIBILITY_PRIVATE; + + return TRUE; +} + +/* Add a static member to a class. */ + +static bfd_boolean +tg_class_static_member (void *p, const char *name, + const char *physname ATTRIBUTE_UNUSED, + enum debug_visibility visibility) +{ + struct pr_handle *info = (struct pr_handle *) p; + char *t; + int len_var, len_class; + char *full_name; + + len_var = strlen (name); + len_class = strlen (info->stack->next->type); + full_name = (char *) xmalloc (len_var + len_class + 3); + if (! full_name) + return FALSE; + memcpy (full_name, info->stack->next->type, len_class); + memcpy (full_name + len_class, "::", 2); + memcpy (full_name + len_class + 2, name, len_var + 1); + + if (! substitute_type (info, full_name)) + return FALSE; + + if (! prepend_type (info, "static ")) + return FALSE; + + t = pop_type (info); + if (t == NULL) + return FALSE; + + if (! tg_fix_visibility (info, visibility)) + return FALSE; + + fprintf (info->f, "%s\t%s\t0;\"\tkind:x\ttype:%s\tclass:%s\taccess:%s\n", + name, info->filename, t, info->stack->type, + visibility_name (visibility)); + free (t); + free (full_name); + + return TRUE; +} + +/* Add a base class to a class. */ + +static bfd_boolean +tg_class_baseclass (void *p, bfd_vma bitpos ATTRIBUTE_UNUSED, + bfd_boolean virtual, enum debug_visibility visibility) +{ + struct pr_handle *info = (struct pr_handle *) p; + char *t; + const char *prefix; + + assert (info->stack != NULL && info->stack->next != NULL); + + t = pop_type (info); + if (t == NULL) + return FALSE; + + if (strncmp (t, "class ", sizeof "class " - 1) == 0) + t += sizeof "class " - 1; + + /* Push it back on to take advantage of the prepend_type and + append_type routines. */ + if (! push_type (info, t)) + return FALSE; + + if (virtual) + { + if (! prepend_type (info, "virtual ")) + return FALSE; + } + + switch (visibility) + { + case DEBUG_VISIBILITY_PUBLIC: + prefix = "public "; + break; + case DEBUG_VISIBILITY_PROTECTED: + prefix = "protected "; + break; + case DEBUG_VISIBILITY_PRIVATE: + prefix = "private "; + break; + default: + prefix = "/* unknown visibility */ "; + break; + } + + if (! prepend_type (info, prefix)) + return FALSE; + + t = pop_type (info); + if (t == NULL) + return FALSE; + + if (info->stack->num_parents && ! append_parent (info, ", ")) + return FALSE; + + if (! append_parent (info, t)) + return FALSE; + info->stack->num_parents++; + + free (t); + + return TRUE; +} + +/* Add a variant to a method. */ + +static bfd_boolean +tg_class_method_variant (void *p, const char *physname ATTRIBUTE_UNUSED, + enum debug_visibility visibility, + bfd_boolean constp, bfd_boolean volatilep, + bfd_vma voffset ATTRIBUTE_UNUSED, + bfd_boolean context) +{ + struct pr_handle *info = (struct pr_handle *) p; + char *method_type; + char *context_type; + char *method_name; + + assert (info->stack != NULL); + assert (info->stack->next != NULL); + + /* Put the const and volatile qualifiers on the type. */ + if (volatilep) + { + if (! append_type (info, " volatile")) + return FALSE; + } + if (constp) + { + if (! append_type (info, " const")) + return FALSE; + } + + method_name = strdup (context ? info->stack->next->next->method + : info->stack->next->method); + + /* Stick the name of the method into its type. */ + if (! substitute_type (info, method_name)) + return FALSE; + + /* Get the type. */ + method_type = pop_type (info); + if (method_type == NULL) + return FALSE; + + /* Pull off the context type if there is one. */ + if (! context) + context_type = NULL; + else + { + context_type = pop_type (info); + if (context_type == NULL) + return FALSE; + } + + /* Now the top of the stack is the class. */ + if (! tg_fix_visibility (info, visibility)) + return FALSE; + + fprintf (info->f, "%s\t%s\t0;\"\tkind:p\ttype:%s\tclass:%s\n", + method_name, info->filename, method_type, info->stack->type); + free (method_type); + free (method_name); + free (context_type); + + return TRUE; +} + +/* Add a static variant to a method. */ + +static bfd_boolean +tg_class_static_method_variant (void *p, + const char *physname ATTRIBUTE_UNUSED, + enum debug_visibility visibility, + bfd_boolean constp, + bfd_boolean volatilep) +{ + struct pr_handle *info = (struct pr_handle *) p; + char *method_type; + char *method_name; + + assert (info->stack != NULL); + assert (info->stack->next != NULL); + assert (info->stack->next->method != NULL); + + /* Put the const and volatile qualifiers on the type. */ + if (volatilep) + { + if (! append_type (info, " volatile")) + return FALSE; + } + if (constp) + { + if (! append_type (info, " const")) + return FALSE; + } + + /* Mark it as static. */ + if (! prepend_type (info, "static ")) + return FALSE; + + method_name = strdup (info->stack->next->method); + /* Stick the name of the method into its type. */ + if (! substitute_type (info, info->stack->next->method)) + return FALSE; + + /* Get the type. */ + method_type = pop_type (info); + if (method_type == NULL) + return FALSE; + + /* Now the top of the stack is the class. */ + if (! tg_fix_visibility (info, visibility)) + return FALSE; + + fprintf (info->f, "%s\t%s\t0;\"\tkind:p\ttype:%s\tclass:%s\taccess:%s\n", + method_name, info->filename, method_type, info->stack->type, + visibility_name (visibility)); + free (method_type); + free (method_name); + + return TRUE; +} + +/* Finish up a class. */ + +static bfd_boolean +tg_end_class_type (void *p) +{ + struct pr_handle *info = (struct pr_handle *) p; + + fprintf (info->f, "%s\t%s\t0;\"\tkind:c\ttype:%s", info->stack->type, + info->filename, info->stack->flavor); + if (info->stack->num_parents) + { + fprintf (info->f, "\tinherits:%s", info->stack->parents); + free (info->stack->parents); + } + fputc ('\n', info->f); + + return tg_end_struct_type (p); +} + +/* Push a type on the stack using a tag name. */ + +static bfd_boolean +tg_tag_type (void *p, const char *name, unsigned int id, + enum debug_type_kind kind) +{ + struct pr_handle *info = (struct pr_handle *) p; + const char *t, *tag; + char idbuf[20]; + + switch (kind) + { + case DEBUG_KIND_STRUCT: + t = "struct "; + break; + case DEBUG_KIND_UNION: + t = "union "; + break; + case DEBUG_KIND_ENUM: + t = "enum "; + break; + case DEBUG_KIND_CLASS: + t = "class "; + break; + case DEBUG_KIND_UNION_CLASS: + t = "union class "; + break; + default: + abort (); + return FALSE; + } + + if (! push_type (info, t)) + return FALSE; + if (name != NULL) + tag = name; + else + { + sprintf (idbuf, "%%anon%u", id); + tag = idbuf; + } + + if (! append_type (info, tag)) + return FALSE; + + return TRUE; +} + +/* Output a typedef. */ + +static bfd_boolean +tg_typdef (void *p, const char *name) +{ + struct pr_handle *info = (struct pr_handle *) p; + char *s; + + s = pop_type (info); + if (s == NULL) + return FALSE; + + fprintf (info->f, "%s\t%s\t0;\"\tkind:t\ttype:%s\n", name, + info->filename, s); + + free (s); + + return TRUE; +} + +/* Output a tag. The tag should already be in the string on the + stack, so all we have to do here is print it out. */ + +static bfd_boolean +tg_tag (void *p ATTRIBUTE_UNUSED, const char *name ATTRIBUTE_UNUSED) +{ + struct pr_handle *info = (struct pr_handle *) p; + char *t; + + t = pop_type (info); + if (t == NULL) + return FALSE; + free (t); + + return TRUE; +} + +/* Output an integer constant. */ + +static bfd_boolean +tg_int_constant (void *p, const char *name, bfd_vma val) +{ + struct pr_handle *info = (struct pr_handle *) p; + char ab[20]; + + indent (info); + print_vma (val, ab, FALSE, FALSE); + fprintf (info->f, "%s\t%s\t0;\"\tkind:v\ttype:const int\tvalue:%s\n", + name, info->filename, ab); + return TRUE; +} + +/* Output a floating point constant. */ + +static bfd_boolean +tg_float_constant (void *p, const char *name, double val) +{ + struct pr_handle *info = (struct pr_handle *) p; + + indent (info); + fprintf (info->f, "%s\t%s\t0;\"\tkind:v\ttype:const double\tvalue:%g\n", + name, info->filename, val); + return TRUE; +} + +/* Output a typed constant. */ + +static bfd_boolean +tg_typed_constant (void *p, const char *name, bfd_vma val) +{ + struct pr_handle *info = (struct pr_handle *) p; + char *t; + char ab[20]; + + t = pop_type (info); + if (t == NULL) + return FALSE; + + indent (info); + print_vma (val, ab, FALSE, FALSE); + fprintf (info->f, "%s\t%s\t0;\"\tkind:v\ttype:const %s\tvalue:%s\n", + name, info->filename, t, ab); + + free (t); + + return TRUE; +} + +/* Output a variable. */ + +static bfd_boolean +tg_variable (void *p, const char *name, enum debug_var_kind kind, + bfd_vma val ATTRIBUTE_UNUSED) +{ + struct pr_handle *info = (struct pr_handle *) p; + char *t; + const char *dname, *from_class; + + t = pop_type (info); + if (t == NULL) + return FALSE; + + dname = name; + if (info->demangler) + { + dname = info->demangler (info->abfd, name); + if (strcmp (name, dname) == 0) + { + free ((char *) dname); + dname = name; + } + } + + if (dname != name) + { + char *sep; + sep = strstr (dname, "::"); + if (sep) + { + *sep = 0; + name = sep + 2; + from_class = dname; + } + else + { + /* Obscure types as vts and type_info nodes. */ + name = dname; + from_class = NULL; + } + } + else + from_class = NULL; + + fprintf (info->f, "%s\t%s\t0;\"\tkind:v\ttype:%s", name, info->filename, t); + + switch (kind) + { + case DEBUG_STATIC: + case DEBUG_LOCAL_STATIC: + fprintf (info->f, "\tfile:"); + break; + case DEBUG_REGISTER: + fprintf (info->f, "\tregister:"); + break; + default: + break; + } + + if (from_class) + { + fprintf (info->f, "\tclass:%s",from_class); + free ((char *) dname); + } + + fprintf (info->f, "\n"); + + free (t); + + return TRUE; +} + +/* Start outputting a function. */ + +static bfd_boolean +tg_start_function (void *p, const char *name, bfd_boolean global) +{ + struct pr_handle *info = (struct pr_handle *) p; + const char *dname; + + if (! global) + info->stack->flavor = "static"; + else + info->stack->flavor = NULL; + + dname = name; + if (info->demangler) + { + dname = info->demangler (info->abfd, name); + if (strcmp (name, dname) == 0) + { + free ((char *) dname); + dname = name; + } + } + + if (! substitute_type (info, dname)) + return FALSE; + + if (dname != name) + { + char *sep; + sep = strstr (dname, "::"); + if (sep) + { + info->stack->method = dname; + *sep = 0; + name = sep + 2; + } + else + { + info->stack->method = ""; + name = dname; + } + sep = strchr (name, '('); + if (sep) + *sep = 0; + /* Obscure functions as type_info function. */ + } + else + info->stack->method = NULL; + + info->stack->parents = strdup (name); + + if (! info->stack->method && ! append_type (info, "(")) + return FALSE; + + info->parameter = 1; + + return TRUE; +} + +/* Output a function parameter. */ + +static bfd_boolean +tg_function_parameter (void *p, const char *name, enum debug_parm_kind kind, + bfd_vma val ATTRIBUTE_UNUSED) +{ + struct pr_handle *info = (struct pr_handle *) p; + char *t; + + if (kind == DEBUG_PARM_REFERENCE + || kind == DEBUG_PARM_REF_REG) + { + if (! pr_reference_type (p)) + return FALSE; + } + + if (! substitute_type (info, name)) + return FALSE; + + t = pop_type (info); + if (t == NULL) + return FALSE; + + if (! info->stack->method) + { + if (info->parameter != 1 && ! append_type (info, ", ")) + return FALSE; + + if (kind == DEBUG_PARM_REG || kind == DEBUG_PARM_REF_REG) + if (! append_type (info, "register ")) + return FALSE; + + if (! append_type (info, t)) + return FALSE; + } + + free (t); + + ++info->parameter; + + return TRUE; +} + +/* Start writing out a block. */ + +static bfd_boolean +tg_start_block (void *p, bfd_vma addr) +{ + struct pr_handle *info = (struct pr_handle *) p; + char ab[20], kind, *partof; + char *t; + bfd_boolean local; + + if (info->parameter > 0) + { + info->parameter = 0; + + /* Delayed name. */ + fprintf (info->f, "%s\t%s\t", info->stack->parents, info->filename); + free (info->stack->parents); + + print_vma (addr, ab, TRUE, TRUE); + translate_addresses (info->abfd, ab, info->f, info->syms); + local = info->stack->flavor != NULL; + if (info->stack->method && *info->stack->method) + { + kind = 'm'; + partof = (char *) info->stack->method; + } + else + { + kind = 'f'; + partof = NULL; + if (! info->stack->method && ! append_type (info, ")")) + return FALSE; + } + t = pop_type (info); + if (t == NULL) + return FALSE; + fprintf (info->f, ";\"\tkind:%c\ttype:%s", kind, t); + if (local) + fputs ("\tfile:", info->f); + if (partof) + { + fprintf (info->f, "\tclass:%s", partof); + free (partof); + } + fputc ('\n', info->f); + } + + return TRUE; +} + +/* Write out line number information. */ + +static bfd_boolean +tg_lineno (void *p ATTRIBUTE_UNUSED, + const char *filename ATTRIBUTE_UNUSED, + unsigned long lineno ATTRIBUTE_UNUSED, + bfd_vma addr ATTRIBUTE_UNUSED) +{ + return TRUE; +} + +/* Finish writing out a block. */ + +static bfd_boolean +tg_end_block (void *p ATTRIBUTE_UNUSED, bfd_vma addr ATTRIBUTE_UNUSED) +{ + return TRUE; +} + +/* Convert the visibility value into a human readable name. */ + +static const char * +visibility_name (enum debug_visibility visibility) +{ + const char *s; + + switch (visibility) + { + case DEBUG_VISIBILITY_PUBLIC: + s = "public"; + break; + case DEBUG_VISIBILITY_PRIVATE: + s = "private"; + break; + case DEBUG_VISIBILITY_PROTECTED: + s = "protected"; + break; + case DEBUG_VISIBILITY_IGNORE: + s = "/* ignore */"; + break; + default: + abort (); + return FALSE; + } + return s; +} diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/binutils/rcparse.y binutils-2.14.90.0.5/binutils/rcparse.y --- binutils-2.14.90.0.4.1/binutils/rcparse.y 2003-05-05 14:46:47.000000000 -0700 +++ binutils-2.14.90.0.5/binutils/rcparse.y 2003-07-23 08:08:09.000000000 -0700 @@ -52,6 +52,11 @@ static unsigned long style; static unsigned long base_style; static unsigned long default_style; static unsigned long class; +static struct res_id res_text_field; + +/* This is used for COMBOBOX, LISTBOX and EDITTEXT which + do not allow resource 'text' field in control definition. */ +static const struct res_id res_null_text = { 1, {{0, L""}}}; %} @@ -533,64 +538,72 @@ controls: ; control: - AUTO3STATE + AUTO3STATE optresidc { default_style = BS_AUTO3STATE | WS_TABSTOP; base_style = BS_AUTO3STATE; class = CTL_BUTTON; + res_text_field = $2; } control_params { - $$ = $3; + $$ = $4; } - | AUTOCHECKBOX + | AUTOCHECKBOX optresidc { default_style = BS_AUTOCHECKBOX | WS_TABSTOP; base_style = BS_AUTOCHECKBOX; class = CTL_BUTTON; + res_text_field = $2; } control_params { - $$ = $3; + $$ = $4; } - | AUTORADIOBUTTON + | AUTORADIOBUTTON optresidc { default_style = BS_AUTORADIOBUTTON | WS_TABSTOP; base_style = BS_AUTORADIOBUTTON; class = CTL_BUTTON; + res_text_field = $2; } control_params { - $$ = $3; + $$ = $4; } - | BEDIT + | BEDIT optresidc { default_style = ES_LEFT | WS_BORDER | WS_TABSTOP; base_style = ES_LEFT | WS_BORDER | WS_TABSTOP; class = CTL_EDIT; + res_text_field = $2; } control_params { - $$ = $3; + $$ = $4; if (dialog.ex == NULL) rcparse_warning (_("BEDIT requires DIALOGEX")); res_string_to_id (&$$->class, "BEDIT"); } - | CHECKBOX + | CHECKBOX optresidc { default_style = BS_CHECKBOX | WS_TABSTOP; base_style = BS_CHECKBOX | WS_TABSTOP; class = CTL_BUTTON; + res_text_field = $2; } control_params { - $$ = $3; + $$ = $4; } | COMBOBOX { + /* This is as per MSDN documentation. With some (???) + versions of MS rc.exe their is no default style. */ default_style = CBS_SIMPLE | WS_TABSTOP; base_style = 0; class = CTL_COMBOBOX; + res_text_field = res_null_text; } control_params { @@ -640,55 +653,60 @@ control: $$->class.named = 1; unicode_from_ascii (&$$->class.u.n.length, &$$->class.u.n.name, $5); } - | CTEXT + | CTEXT optresidc { default_style = SS_CENTER | WS_GROUP; base_style = SS_CENTER; class = CTL_STATIC; + res_text_field = $2; } control_params { - $$ = $3; + $$ = $4; } - | DEFPUSHBUTTON + | DEFPUSHBUTTON optresidc { default_style = BS_DEFPUSHBUTTON | WS_TABSTOP; base_style = BS_DEFPUSHBUTTON | WS_TABSTOP; class = CTL_BUTTON; + res_text_field = $2; } control_params { - $$ = $3; + $$ = $4; } | EDITTEXT { default_style = ES_LEFT | WS_BORDER | WS_TABSTOP; base_style = ES_LEFT | WS_BORDER | WS_TABSTOP; class = CTL_EDIT; + res_text_field = res_null_text; } control_params { $$ = $3; } - | GROUPBOX + | GROUPBOX optresidc { default_style = BS_GROUPBOX; base_style = BS_GROUPBOX; class = CTL_BUTTON; + res_text_field = $2; } control_params { - $$ = $3; + $$ = $4; } - | HEDIT + | HEDIT optresidc { default_style = ES_LEFT | WS_BORDER | WS_TABSTOP; base_style = ES_LEFT | WS_BORDER | WS_TABSTOP; class = CTL_EDIT; + res_text_field = $2; } control_params { - $$ = $3; + $$ = $4; if (dialog.ex == NULL) rcparse_warning (_("IEDIT requires DIALOGEX")); res_string_to_id (&$$->class, "HEDIT"); @@ -716,15 +734,16 @@ control: $$ = define_icon_control ($2, $3, $4, $5, style, $9, $10, $11, dialog.ex); } - | IEDIT + | IEDIT optresidc { default_style = ES_LEFT | WS_BORDER | WS_TABSTOP; base_style = ES_LEFT | WS_BORDER | WS_TABSTOP; class = CTL_EDIT; + res_text_field = $2; } control_params { - $$ = $3; + $$ = $4; if (dialog.ex == NULL) rcparse_warning (_("IEDIT requires DIALOGEX")); res_string_to_id (&$$->class, "IEDIT"); @@ -734,22 +753,24 @@ control: default_style = LBS_NOTIFY | WS_BORDER; base_style = LBS_NOTIFY | WS_BORDER; class = CTL_LISTBOX; + res_text_field = res_null_text; } control_params { $$ = $3; } - | LTEXT + | LTEXT optresidc { default_style = SS_LEFT | WS_GROUP; base_style = SS_LEFT; class = CTL_STATIC; + res_text_field = $2; } control_params { - $$ = $3; + $$ = $4; } - | PUSHBOX + | PUSHBOX optresidc { default_style = BS_PUSHBOX | WS_TABSTOP; base_style = BS_PUSHBOX; @@ -757,57 +778,62 @@ control: } control_params { - $$ = $3; + $$ = $4; } - | PUSHBUTTON + | PUSHBUTTON optresidc { default_style = BS_PUSHBUTTON | WS_TABSTOP; base_style = BS_PUSHBUTTON | WS_TABSTOP; class = CTL_BUTTON; + res_text_field = $2; } control_params { - $$ = $3; + $$ = $4; } - | RADIOBUTTON + | RADIOBUTTON optresidc { default_style = BS_RADIOBUTTON | WS_TABSTOP; base_style = BS_RADIOBUTTON; class = CTL_BUTTON; + res_text_field = $2; } control_params { - $$ = $3; + $$ = $4; } - | RTEXT + | RTEXT optresidc { default_style = SS_RIGHT | WS_GROUP; base_style = SS_RIGHT; class = CTL_STATIC; + res_text_field = $2; } control_params { - $$ = $3; + $$ = $4; } | SCROLLBAR { default_style = SBS_HORZ; base_style = 0; class = CTL_SCROLLBAR; + res_text_field = res_null_text; } control_params { $$ = $3; } - | STATE3 + | STATE3 optresidc { default_style = BS_3STATE | WS_TABSTOP; base_style = BS_3STATE; class = CTL_BUTTON; + res_text_field = $2; } control_params { - $$ = $3; + $$ = $4; } | USERBUTTON resref numexpr ',' numexpr ',' numexpr ',' numexpr ',' numexpr ',' @@ -827,37 +853,36 @@ control: style. CLASS is the class of the control. */ control_params: - optresidc numexpr cnumexpr cnumexpr cnumexpr cnumexpr - opt_control_data + numexpr cnumexpr cnumexpr cnumexpr cnumexpr opt_control_data { - $$ = define_control ($1, $2, $3, $4, $5, $6, class, + $$ = define_control (res_text_field, $1, $2, $3, $4, $5, class, default_style | WS_CHILD | WS_VISIBLE, 0); - if ($7 != NULL) + if ($6 != NULL) { if (dialog.ex == NULL) rcparse_warning (_("control data requires DIALOGEX")); - $$->data = $7; + $$->data = $6; } } - | optresidc numexpr cnumexpr cnumexpr cnumexpr cnumexpr + | numexpr cnumexpr cnumexpr cnumexpr cnumexpr control_params_styleexpr optcnumexpr opt_control_data { - $$ = define_control ($1, $2, $3, $4, $5, $6, class, style, $8); - if ($9 != NULL) + $$ = define_control (res_text_field, $1, $2, $3, $4, $5, class, style, $7); + if ($8 != NULL) { if (dialog.ex == NULL) rcparse_warning (_("control data requires DIALOGEX")); - $$->data = $9; + $$->data = $8; } } - | optresidc numexpr cnumexpr cnumexpr cnumexpr cnumexpr + | numexpr cnumexpr cnumexpr cnumexpr cnumexpr control_params_styleexpr cnumexpr cnumexpr opt_control_data { - $$ = define_control ($1, $2, $3, $4, $5, $6, class, style, $8); + $$ = define_control (res_text_field, $1, $2, $3, $4, $5, class, style, $7); if (dialog.ex == NULL) rcparse_warning (_("help ID requires DIALOGEX")); - $$->help = $9; - $$->data = $10; + $$->help = $8; + $$->data = $9; } ; diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/binutils/readelf.c binutils-2.14.90.0.5/binutils/readelf.c --- binutils-2.14.90.0.4.1/binutils/readelf.c 2003-05-23 07:18:52.000000000 -0700 +++ binutils-2.14.90.0.5/binutils/readelf.c 2003-07-23 08:08:09.000000000 -0700 @@ -106,11 +106,11 @@ Elf_Internal_Syminfo *dynamic_syminfo; unsigned long dynamic_syminfo_offset; unsigned int dynamic_syminfo_nent; char program_interpreter[64]; -long dynamic_info[DT_JMPREL + 1]; -long version_info[16]; -long loadaddr = 0; +bfd_vma dynamic_info[DT_JMPREL + 1]; +bfd_vma version_info[16]; Elf_Internal_Ehdr elf_header; Elf_Internal_Shdr *section_headers; +Elf_Internal_Phdr *program_headers; Elf_Internal_Dyn *dynamic_segment; Elf_Internal_Shdr *symtab_shndx_hdr; int show_name; @@ -173,6 +173,8 @@ static bfd_vma byte_get_little_endian PARAMS ((unsigned char *, int)); static bfd_vma byte_get_big_endian PARAMS ((unsigned char *, int)); +static bfd_vma byte_get_signed + PARAMS ((unsigned char *, int)); static void (*byte_put) PARAMS ((unsigned char *, bfd_vma, int)); static void byte_put_little_endian @@ -280,6 +282,8 @@ static int get_32bit_program_headers PARAMS ((FILE *, Elf_Internal_Phdr *)); static int get_64bit_program_headers PARAMS ((FILE *, Elf_Internal_Phdr *)); +static int get_program_headers + PARAMS ((FILE *)); static int get_file_header PARAMS ((FILE *)); static Elf_Internal_Sym *get_32bit_elf_symbols @@ -294,6 +298,8 @@ static int get_32bit_dynamic_segment PARAMS ((FILE *)); static int get_64bit_dynamic_segment PARAMS ((FILE *)); +static long offset_from_vma + PARAMS ((FILE *, bfd_vma vma, bfd_size_type size)); #ifdef SUPPORT_DISASSEMBLY static int disassemble_section PARAMS ((Elf_Internal_Shdr *, FILE *)); @@ -479,7 +485,7 @@ get_data (var, file, offset, size, reaso if (fseek (file, offset, SEEK_SET)) { - error (_("Unable to seek to %x for %s\n"), offset, reason); + error (_("Unable to seek to 0x%x for %s\n"), offset, reason); return NULL; } @@ -490,7 +496,7 @@ get_data (var, file, offset, size, reaso if (mvar == NULL) { - error (_("Out of memory allocating %d bytes for %s\n"), + error (_("Out of memory allocating 0x%x bytes for %s\n"), size, reason); return NULL; } @@ -498,7 +504,7 @@ get_data (var, file, offset, size, reaso if (fread (mvar, size, 1, file) != 1) { - error (_("Unable to read in %d bytes of %s\n"), size, reason); + error (_("Unable to read in 0x%x bytes of %s\n"), size, reason); if (mvar != var) free (mvar); return NULL; @@ -556,6 +562,29 @@ byte_get_little_endian (field, size) } } +static bfd_vma +byte_get_signed (field, size) + unsigned char *field; + int size; +{ + bfd_vma x = byte_get (field, size); + + switch (size) + { + case 1: + return (x ^ 0x80) - 0x80; + case 2: + return (x ^ 0x8000) - 0x8000; + case 4: + return (x ^ 0x80000000) - 0x80000000; + case 8: + case -8: + return x; + default: + abort (); + } +} + static void byte_put_little_endian (field, value, size) unsigned char * field; @@ -599,13 +628,34 @@ print_vma (vma, mode) { switch (mode) { - case FULL_HEX: printf ("0x"); /* drop through */ - case LONG_HEX: printf ("%8.8lx", (unsigned long) vma); break; - case PREFIX_HEX: printf ("0x"); /* drop through */ - case HEX: printf ("%lx", (unsigned long) vma); break; - case DEC: printf ("%ld", (unsigned long) vma); break; - case DEC_5: printf ("%5ld", (long) vma); break; - case UNSIGNED: printf ("%lu", (unsigned long) vma); break; + case FULL_HEX: + printf ("0x"); + /* Drop through. */ + case LONG_HEX: + printf ("%8.8lx", (unsigned long) vma); + break; + + case DEC_5: + if (vma <= 99999) + { + printf ("%5ld", (long) vma); + break; + } + /* Drop through. */ + case PREFIX_HEX: + printf ("0x"); + /* Drop through. */ + case HEX: + printf ("%lx", (unsigned long) vma); + break; + + case DEC: + printf ("%ld", (unsigned long) vma); + break; + + case UNSIGNED: + printf ("%lu", (unsigned long) vma); + break; } } #ifdef BFD64 @@ -615,7 +665,7 @@ print_vma (vma, mode) { case FULL_HEX: printf ("0x"); - /* drop through */ + /* Drop through. */ case LONG_HEX: printf_vma (vma); @@ -623,7 +673,7 @@ print_vma (vma, mode) case PREFIX_HEX: printf ("0x"); - /* drop through */ + /* Drop through. */ case HEX: #if BFD_HOST_64BIT_LONG @@ -650,13 +700,18 @@ print_vma (vma, mode) case DEC_5: #if BFD_HOST_64BIT_LONG - printf ("%5ld", vma); + if (vma <= 99999) + printf ("%5ld", vma); + else + printf ("%#lx", vma); #else if (_bfd_int64_high (vma)) /* ugg */ printf ("++%ld", _bfd_int64_low (vma)); - else + else if (vma <= 99999) printf ("%5ld", _bfd_int64_low (vma)); + else + printf ("%#lx", _bfd_int64_low (vma)); #endif break; @@ -2307,6 +2362,7 @@ get_segment_type (p_type) case PT_GNU_EH_FRAME: return "GNU_EH_FRAME"; + case PT_GNU_STACK: return "STACK"; default: if ((p_type >= PT_LOPROC) && (p_type <= PT_HIPROC)) @@ -3127,13 +3183,45 @@ get_64bit_program_headers (file, program return 1; } +/* Returns 1 if the program headers were read into `program_headers'. */ + +static int +get_program_headers (file) + FILE *file; +{ + Elf_Internal_Phdr *phdrs; + + /* Check cache of prior read. */ + if (program_headers != NULL) + return 1; + + phdrs = (Elf_Internal_Phdr *) malloc + (elf_header.e_phnum * sizeof (Elf_Internal_Phdr)); + + if (phdrs == NULL) + { + error (_("Out of memory\n")); + return 0; + } + + if (is_32bit_elf + ? get_32bit_program_headers (file, phdrs) + : get_64bit_program_headers (file, phdrs)) + { + program_headers = phdrs; + return 1; + } + + free (phdrs); + return 0; +} + /* Returns 1 if the program headers were loaded. */ static int process_program_headers (file) FILE *file; { - Elf_Internal_Phdr *program_headers; Elf_Internal_Phdr *segment; unsigned int i; @@ -3155,25 +3243,8 @@ process_program_headers (file) printf ("\n"); } - program_headers = (Elf_Internal_Phdr *) malloc - (elf_header.e_phnum * sizeof (Elf_Internal_Phdr)); - - if (program_headers == NULL) - { - error (_("Out of memory\n")); + if (! get_program_headers (file)) return 0; - } - - if (is_32bit_elf) - i = get_32bit_program_headers (file, program_headers); - else - i = get_64bit_program_headers (file, program_headers); - - if (i == 0) - { - free (program_headers); - return 0; - } if (do_segments) { @@ -3197,7 +3268,6 @@ process_program_headers (file) } } - loadaddr = -1; dynamic_addr = 0; dynamic_size = 0; @@ -3285,18 +3355,6 @@ process_program_headers (file) switch (segment->p_type) { - case PT_LOAD: - if (loadaddr == -1) - { - unsigned long align_mask = -segment->p_align; - - if (align_mask == 0) - --align_mask; - loadaddr = ((segment->p_vaddr & align_mask) - - (segment->p_offset & align_mask)); - } - break; - case PT_DYNAMIC: if (dynamic_addr) error (_("more than one dynamic segment\n")); @@ -3324,12 +3382,6 @@ process_program_headers (file) putc ('\n', stdout); } - if (loadaddr == -1) - { - /* Very strange. */ - loadaddr = 0; - } - if (do_segments && section_headers != NULL) { printf (_("\n Section to Segment mapping:\n")); @@ -3366,12 +3418,44 @@ process_program_headers (file) } } - free (program_headers); - return 1; } +/* Find the file offset corresponding to VMA by using the program headers. */ + +static long +offset_from_vma (file, vma, size) + FILE *file; + bfd_vma vma; + bfd_size_type size; +{ + Elf_Internal_Phdr *seg; + + if (! get_program_headers (file)) + { + warn (_("Cannot interpret virtual addresses without program headers.\n")); + return (long) vma; + } + + for (seg = program_headers; + seg < program_headers + elf_header.e_phnum; + ++seg) + { + if (seg->p_type != PT_LOAD) + continue; + + if (vma >= (seg->p_vaddr & -seg->p_align) + && vma + size <= seg->p_vaddr + seg->p_filesz) + return vma - seg->p_vaddr + seg->p_offset; + } + + warn (_("Virtual address 0x%lx not located in any PT_LOAD segment.\n"), + (long) vma); + return (long) vma; +} + + static int get_32bit_section_headers (file, num) FILE *file; @@ -3683,6 +3767,9 @@ process_section_headers (file) string_table = (char *) get_data (NULL, file, section->sh_offset, section->sh_size, _("string table")); + if (string_table == NULL) + return 0; + string_table_length = section->sh_size; } @@ -3944,7 +4031,9 @@ process_relocs (file) (_("\n'%s' relocation section at offset 0x%lx contains %ld bytes:\n"), name, rel_offset, rel_size); - dump_relocations (file, rel_offset - loadaddr, rel_size, + dump_relocations (file, + offset_from_vma (file, rel_offset, rel_size), + rel_size, dynamic_symbols, num_dynamic_syms, dynamic_strings, is_rela); } @@ -4170,14 +4259,13 @@ slurp_ia64_unwind_table (file, aux, sec) Elf_Internal_Shdr *sec; { unsigned long size, addr_size, nrelas, i; - Elf_Internal_Phdr *prog_hdrs, *seg; + Elf_Internal_Phdr *seg; struct unw_table_entry *tep; Elf_Internal_Shdr *relsec; Elf_Internal_Rela *rela, *rp; unsigned char *table, *tp; Elf_Internal_Sym *sym; const char *relname; - int result; addr_size = is_32bit_elf ? 4 : 8; @@ -4186,21 +4274,12 @@ slurp_ia64_unwind_table (file, aux, sec) if (elf_header.e_phnum) { - prog_hdrs = (Elf_Internal_Phdr *) - xmalloc (elf_header.e_phnum * sizeof (Elf_Internal_Phdr)); - - if (is_32bit_elf) - result = get_32bit_program_headers (file, prog_hdrs); - else - result = get_64bit_program_headers (file, prog_hdrs); - - if (!result) - { - free (prog_hdrs); + if (! get_program_headers (file)) return 0; - } - for (seg = prog_hdrs; seg < prog_hdrs + elf_header.e_phnum; ++seg) + for (seg = program_headers; + seg < program_headers + elf_header.e_phnum; + ++seg) { if (seg->p_type != PT_LOAD) continue; @@ -4212,8 +4291,6 @@ slurp_ia64_unwind_table (file, aux, sec) break; } } - - free (prog_hdrs); } /* Second, build the unwind table from the contents of the unwind section: */ @@ -4597,12 +4674,17 @@ dynamic_segment_ia64_val (entry) switch (entry->d_tag) { case DT_IA_64_PLT_RESERVE: - /* First 3 bytes reserved. */ + /* First 3 slots reserved. */ print_vma (entry->d_un.d_ptr, PREFIX_HEX); printf (" -- "); print_vma (entry->d_un.d_ptr + (3 * 8), PREFIX_HEX); - printf ("\n"); + break; + + default: + print_vma (entry->d_un.d_ptr, PREFIX_HEX); + break; } + putchar ('\n'); } static int @@ -4766,7 +4848,7 @@ process_dynamic_segment (file) we default to reading in the entire file (!) and processing that. This is overkill, I know, but it should work. */ - section.sh_offset = entry->d_un.d_val - loadaddr; + section.sh_offset = offset_from_vma (file, entry->d_un.d_val, 0); if (fseek (file, 0, SEEK_END)) error (_("Unable to seek to end of file!")); @@ -4808,7 +4890,7 @@ process_dynamic_segment (file) processing that. This is overkill, I know, but it should work. */ - offset = entry->d_un.d_val - loadaddr; + offset = offset_from_vma (file, entry->d_un.d_val, 0); if (fseek (file, 0, SEEK_END)) error (_("Unable to seek to end of file\n")); str_tab_len = ftell (file) - offset; @@ -4844,7 +4926,8 @@ process_dynamic_segment (file) else if (entry->d_tag == DT_SYMINSZ) syminsz = entry->d_un.d_val; else if (entry->d_tag == DT_SYMINFO) - dynamic_syminfo_offset = entry->d_un.d_val - loadaddr; + dynamic_syminfo_offset = offset_from_vma (file, entry->d_un.d_val, + syminsz); } if (dynamic_syminfo_offset != 0 && syminsz != 0) @@ -5533,7 +5616,9 @@ process_version_sections (file) edata = ((unsigned char *) get_data (NULL, file, - version_info[DT_VERSIONTAGIDX (DT_VERSYM)] - loadaddr, + offset_from_vma + (file, version_info[DT_VERSIONTAGIDX (DT_VERSYM)], + total * sizeof (short)), total * sizeof (short), _("version symbol data"))); if (!edata) { @@ -5589,8 +5674,9 @@ process_version_sections (file) Elf_Internal_Verneed ivn; unsigned long offset; - offset = version_info[DT_VERSIONTAGIDX (DT_VERNEED)] - - loadaddr; + offset = offset_from_vma + (file, version_info[DT_VERSIONTAGIDX (DT_VERNEED)], + sizeof (Elf_External_Verneed)); do { @@ -5645,8 +5731,9 @@ process_version_sections (file) Elf_External_Verdef evd; unsigned long offset; - offset = (version_info[DT_VERSIONTAGIDX (DT_VERDEF)] - - loadaddr); + offset = offset_from_vma + (file, version_info[DT_VERSIONTAGIDX (DT_VERDEF)], + sizeof evd); do { @@ -5873,7 +5960,9 @@ process_symbol_table (file) if (dynamic_info[DT_HASH] && ((do_using_dynamic && dynamic_strings != NULL) || do_histogram)) { - if (fseek (file, dynamic_info[DT_HASH] - loadaddr, SEEK_SET)) + if (fseek (file, offset_from_vma (file, dynamic_info[DT_HASH], + sizeof nb + sizeof nc), + SEEK_SET)) { error (_("Unable to seek to start of dynamic information")); return 0; @@ -6004,8 +6093,9 @@ process_symbol_table (file) int is_nobits; int check_def; - offset = version_info[DT_VERSIONTAGIDX (DT_VERSYM)] - - loadaddr; + offset = offset_from_vma + (file, version_info[DT_VERSIONTAGIDX (DT_VERSYM)], + sizeof data + si * sizeof (vers_data)); get_data (&data, file, offset + si * sizeof (vers_data), sizeof (data), _("version data")); @@ -6027,8 +6117,9 @@ process_symbol_table (file) Elf_Internal_Vernaux ivna; /* We must test both. */ - offset = (version_info[DT_VERSIONTAGIDX (DT_VERNEED)] - - loadaddr); + offset = offset_from_vma + (file, version_info[DT_VERSIONTAGIDX (DT_VERNEED)], + sizeof evn); do { @@ -6088,9 +6179,10 @@ process_symbol_table (file) Elf_External_Verdaux evda; unsigned long offset; - offset - = (version_info[DT_VERSIONTAGIDX (DT_VERDEF)] - - loadaddr); + offset = offset_from_vma + (file, + version_info[DT_VERSIONTAGIDX (DT_VERDEF)], + sizeof (Elf_External_Verdef)); do { @@ -8668,6 +8760,7 @@ Frame_Chunk; static void frame_need_space PARAMS ((Frame_Chunk *, int)); static void frame_display_row PARAMS ((Frame_Chunk *, int *, int *)); static int size_of_encoded_value PARAMS ((int)); +static bfd_vma get_encoded_value PARAMS ((unsigned char *, int)); static void frame_need_space (fc, reg) @@ -8775,6 +8868,18 @@ size_of_encoded_value (encoding) } } +static bfd_vma +get_encoded_value (data, encoding) + unsigned char *data; + int encoding; +{ + int size = size_of_encoded_value (encoding); + if (encoding & DW_EH_PE_signed) + return byte_get_signed (data, size); + else + return byte_get (data, size); +} + #define GET(N) byte_get (start, N); start += N #define LEB() read_leb128 (start, & length_return, 0); start += length_return #define SLEB() read_leb128 (start, & length_return, 1); start += length_return @@ -8980,7 +9085,7 @@ display_debug_frames (section, start, fi if (fc->fde_encoding) encoded_ptr_size = size_of_encoded_value (fc->fde_encoding); - fc->pc_begin = byte_get (start, encoded_ptr_size); + fc->pc_begin = get_encoded_value (start, fc->fde_encoding); if ((fc->fde_encoding & 0x70) == DW_EH_PE_pcrel) fc->pc_begin += section->sh_addr + (start - section_start); start += encoded_ptr_size; @@ -9011,8 +9116,12 @@ display_debug_frames (section, start, fi /* At this point, fc is the current chunk, cie (if any) is set, and we're about to interpret instructions for the chunk. */ - - if (do_debug_frames_interp) + /* ??? At present we need to do this always, since this sizes the + fc->col_type and fc->col_offset arrays, which we write into always. + We should probably split the interpreted and non-interpreted bits + into two different routines, since there's so much that doesn't + really overlap between them. */ + if (1 || do_debug_frames_interp) { /* Start by making a pass over the chunk, allocating storage and taking note of what registers are used. */ @@ -9175,7 +9284,7 @@ display_debug_frames (section, start, fi break; case DW_CFA_set_loc: - vma = byte_get (start, encoded_ptr_size); + vma = get_encoded_value (start, fc->fde_encoding); if ((fc->fde_encoding & 0x70) == DW_EH_PE_pcrel) vma += section->sh_addr + (start - section_start); start += encoded_ptr_size; @@ -9664,16 +9773,20 @@ process_mips_specific (file) switch (entry->d_tag) { case DT_MIPS_LIBLIST: - liblist_offset = entry->d_un.d_val - loadaddr; + liblist_offset + = offset_from_vma (file, entry->d_un.d_val, + liblistno * sizeof (Elf32_External_Lib)); break; case DT_MIPS_LIBLISTNO: liblistno = entry->d_un.d_val; break; case DT_MIPS_OPTIONS: - options_offset = entry->d_un.d_val - loadaddr; + options_offset = offset_from_vma (file, entry->d_un.d_val, 0); break; case DT_MIPS_CONFLICT: - conflicts_offset = entry->d_un.d_val - loadaddr; + conflicts_offset + = offset_from_vma (file, entry->d_un.d_val, + conflictsno * sizeof (Elf32_External_Conflict)); break; case DT_MIPS_CONFLICTNO: conflictsno = entry->d_un.d_val; @@ -10325,30 +10438,12 @@ static int process_corefile_note_segments (file) FILE *file; { - Elf_Internal_Phdr *program_headers; Elf_Internal_Phdr *segment; unsigned int i; int res = 1; - program_headers = (Elf_Internal_Phdr *) malloc - (elf_header.e_phnum * sizeof (Elf_Internal_Phdr)); - - if (program_headers == NULL) - { - error (_("Out of memory\n")); - return 0; - } - - if (is_32bit_elf) - i = get_32bit_program_headers (file, program_headers); - else - i = get_64bit_program_headers (file, program_headers); - - if (i == 0) - { - free (program_headers); + if (! get_program_headers (file)) return 0; - } for (i = 0, segment = program_headers; i < elf_header.e_phnum; @@ -10360,8 +10455,6 @@ process_corefile_note_segments (file) (bfd_vma) segment->p_filesz); } - free (program_headers); - return res; } @@ -10578,6 +10671,12 @@ process_file (file_name) fclose (file); + if (program_headers) + { + free (program_headers); + program_headers = NULL; + } + if (section_headers) { free (section_headers); diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/binutils/resrc.c binutils-2.14.90.0.5/binutils/resrc.c --- binutils-2.14.90.0.4.1/binutils/resrc.c 2003-05-05 14:46:47.000000000 -0700 +++ binutils-2.14.90.0.5/binutils/resrc.c 2003-07-23 08:08:09.000000000 -0700 @@ -819,7 +819,7 @@ define_dialog (id, resinfo, dialog) struct dialog_control * define_control (iid, id, x, y, width, height, class, style, exstyle) - struct res_id iid; + const struct res_id iid; unsigned long id; unsigned long x; unsigned long y; diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/binutils/sysroff.info binutils-2.14.90.0.5/binutils/sysroff.info --- binutils-2.14.90.0.4.1/binutils/sysroff.info 1999-06-03 11:01:56.000000000 -0700 +++ binutils-2.14.90.0.5/binutils/sysroff.info 2003-07-23 08:08:09.000000000 -0700 @@ -172,7 +172,7 @@ ("rl" 0x20 - (("boundary of relocateable area") (4 bits) ("boundary")) + (("boundary of relocatable area") (4 bits) ("boundary")) (("address polarity") (1 bit) ("apol")) (("segment number") (1 bit) ("segment")) (("sign of relocation") (1 bit) ("sign")) diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/binutils/testsuite/ChangeLog binutils-2.14.90.0.5/binutils/testsuite/ChangeLog --- binutils-2.14.90.0.4.1/binutils/testsuite/ChangeLog 2003-05-05 14:46:47.000000000 -0700 +++ binutils-2.14.90.0.5/binutils/testsuite/ChangeLog 2003-07-23 08:08:10.000000000 -0700 @@ -1,3 +1,31 @@ +2003-06-29 Danny Smith + + * binutils-all/objcopy.exp: Initialise $test_prog to + testprog.exe on mingw targeted systems too. + +2003-06-28 Danny Smith + + * binutils-all/windres/checkbox.rc: New file. + * binutils-all/windres/checkbox.rsd: New file. + * binutils-all/windres/combobox.rc: New file. + * binutils-all/windres/combobox.rsd: New file. + * binutils-all/windres/edittext.rc: New file. + * binutils-all/windres/edittext.rsd: New file. + * binutils-all/windres/listbox.rc: New file. + * binutils-all/windres/listbox.rsd: New file. + * binutils-all/windres/scrollbar.rc: New file. + * binutils-all/windres/scrollbar.rsd: New file. + +2003-06-27 Thiemo Seufer + + * binutils-all/readelf.ss-tmips: Adjust symbol indices. + +2003-06-19 Nick Clifton + + * binutils-all/objcopy.exp: Replace occurances of testprog with + $test_prog. Initialise this variable to testprog.exe on Cygwin + targeted systems. + 2003-04-26 Nick Clifton * binutils-all/readelf.exp (prune_read_warnings): Rename to diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/binutils/testsuite/binutils-all/objcopy.exp binutils-2.14.90.0.5/binutils/testsuite/binutils-all/objcopy.exp --- binutils-2.14.90.0.4.1/binutils/testsuite/binutils-all/objcopy.exp 2002-11-26 09:20:33.000000000 -0800 +++ binutils-2.14.90.0.5/binutils/testsuite/binutils-all/objcopy.exp 2003-07-23 08:08:10.000000000 -0700 @@ -425,10 +425,17 @@ strip_test_with_saving_a_symbol # Build a final executable. +if { [istarget *-*-cygwin] || [istarget *-*-mingw32] } { + set test_prog "testprog.exe" +} else { + set test_prog "testprog" +} + proc copy_setup { } { global srcdir global subdir global gcc_gas_flag + global test_prog set res [build_wrapper testglue.o]; set flags { debug }; @@ -445,11 +452,11 @@ proc copy_setup { } { set flags "additional_flags=$i $flags" } } - if { [target_compile "$srcdir/$subdir/testprog.c $add_libs" tmpdir/testprog executable $flags] != "" } { + if { [target_compile "$srcdir/$subdir/testprog.c $add_libs" tmpdir/$test_prog executable $flags] != "" } { return 2 } - set result [remote_load target tmpdir/testprog]; + set result [remote_load target tmpdir/$test_prog]; set status [lindex $result 0]; if { $status != "pass" } { @@ -470,12 +477,13 @@ proc copy_setup { } { # Test copying an executable. proc copy_executable { prog flags test1 test2 } { + global test_prog if [is_remote host] { - set testfile [remote_download host tmpdir/testprog]; + set testfile [remote_download host tmpdir/$test_prog]; set testcopy copyprog } else { - set testfile tmpdir/testprog + set testfile tmpdir/$test_prog set testcopy tmpdir/copyprog } remote_file host delete $testcopy; @@ -492,7 +500,7 @@ proc copy_executable { prog flags test1 remote_upload host $testcopy tmpdir/copyprog } - set status [remote_exec build "cmp" "tmpdir/testprog tmpdir/copyprog"] + set status [remote_exec build "cmp" "tmpdir/$test_prog tmpdir/copyprog"] set exec_output [lindex $status 1]; if [string match "" $exec_output] then { diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/binutils/testsuite/binutils-all/readelf.ss-tmips binutils-2.14.90.0.5/binutils/testsuite/binutils-all/readelf.ss-tmips --- binutils-2.14.90.0.4.1/binutils/testsuite/binutils-all/readelf.ss-tmips 2001-06-09 00:13:01.000000000 -0700 +++ binutils-2.14.90.0.5/binutils/testsuite/binutils-all/readelf.ss-tmips 2003-07-23 08:08:10.000000000 -0700 @@ -3,13 +3,13 @@ Symbol table '.symtab' contains 12 entri Num: Value Size Type Bind Vis Ndx Name 0: 00000000 0 NOTYPE LOCAL DEFAULT UND 1: 00000000 0 SECTION LOCAL DEFAULT 1 - 2: 00000000 0 SECTION LOCAL DEFAULT 4 - 3: 00000000 0 SECTION LOCAL DEFAULT 5 + 2: 00000000 0 SECTION LOCAL DEFAULT 3 + 3: 00000000 0 SECTION LOCAL DEFAULT 4 4: 00000000 0 NOTYPE LOCAL DEFAULT 1 static_text_symbol - 5: 00000000 0 NOTYPE LOCAL DEFAULT 4 static_data_symbol - 6: 00000000 0 SECTION LOCAL DEFAULT 6 - 7: 00000000 0 SECTION LOCAL DEFAULT 7 + 5: 00000000 0 NOTYPE LOCAL DEFAULT 3 static_data_symbol + 6: 00000000 0 SECTION LOCAL DEFAULT 5 + 7: 00000000 0 SECTION LOCAL DEFAULT 6 8: 00000000 0 OBJECT GLOBAL DEFAULT 1 text_symbol 9: 00000000 0 NOTYPE GLOBAL DEFAULT UND external_symbol - 10: 00000000 0 OBJECT GLOBAL DEFAULT 4 data_symbol + 10: 00000000 0 OBJECT GLOBAL DEFAULT 3 data_symbol 11: 00000004 4 OBJECT GLOBAL DEFAULT (PRC|COM) common_symbol diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/binutils/testsuite/binutils-all/windres/checkbox.rc binutils-2.14.90.0.5/binutils/testsuite/binutils-all/windres/checkbox.rc --- binutils-2.14.90.0.4.1/binutils/testsuite/binutils-all/windres/checkbox.rc 1969-12-31 16:00:00.000000000 -0800 +++ binutils-2.14.90.0.5/binutils/testsuite/binutils-all/windres/checkbox.rc 2003-07-23 08:08:10.000000000 -0700 @@ -0,0 +1,5 @@ +501 DIALOGEX DISCARDABLE 0, 0, 168, 137 +BEGIN + CHECKBOX 108, 1002, 12, 76, 123, 41 + CHECKBOX "tick me", 1001, 12, 15, 123, 41 +END diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/binutils/testsuite/binutils-all/windres/checkbox.rsd binutils-2.14.90.0.5/binutils/testsuite/binutils-all/windres/checkbox.rsd --- binutils-2.14.90.0.4.1/binutils/testsuite/binutils-all/windres/checkbox.rsd 1969-12-31 16:00:00.000000000 -0800 +++ binutils-2.14.90.0.5/binutils/testsuite/binutils-all/windres/checkbox.rsd 2003-07-23 08:08:10.000000000 -0700 @@ -0,0 +1,12 @@ + 0000 00000000 20000000 ffff0000 ffff0000 .... ........... + 0010 00000000 00000000 00000000 00000000 ................ + 0020 72000000 20000000 ffff0500 fffff501 r... ........... + 0030 00000000 30100904 00000000 00000000 ....0........... + 0040 0100ffff 00000000 00000000 00008880 ................ + 0050 02000000 0000a800 89000000 00000000 ................ + 0060 00000000 00000000 02000150 0c004c00 ...........P..L. + 0070 7b002900 ea030000 ffff8000 ffff6c00 {.)...........l. + 0080 00000000 00000000 00000000 02000150 ...............P + 0090 0c000f00 7b002900 e9030000 ffff8000 ....{.)......... + 00a0 74006900 63006b00 20006d00 65000000 t.i.c.k. .m.e... + 00b0 00000000 .... diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/binutils/testsuite/binutils-all/windres/combobox.rc binutils-2.14.90.0.5/binutils/testsuite/binutils-all/windres/combobox.rc --- binutils-2.14.90.0.4.1/binutils/testsuite/binutils-all/windres/combobox.rc 1969-12-31 16:00:00.000000000 -0800 +++ binutils-2.14.90.0.5/binutils/testsuite/binutils-all/windres/combobox.rc 2003-07-23 08:08:10.000000000 -0700 @@ -0,0 +1,8 @@ +#define CBS_SIMPLE 0x1 +#define WS_TABSTOP 0x10000 + +501 DIALOG DISCARDABLE 0, 0, 168, 137 +BEGIN + COMBOBOX 1001,10,10,50,54, CBS_SIMPLE | WS_TABSTOP +END + diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/binutils/testsuite/binutils-all/windres/combobox.rsd binutils-2.14.90.0.5/binutils/testsuite/binutils-all/windres/combobox.rsd --- binutils-2.14.90.0.4.1/binutils/testsuite/binutils-all/windres/combobox.rsd 1969-12-31 16:00:00.000000000 -0800 +++ binutils-2.14.90.0.5/binutils/testsuite/binutils-all/windres/combobox.rsd 2003-07-23 08:08:10.000000000 -0700 @@ -0,0 +1,8 @@ + 0000 00000000 20000000 ffff0000 ffff0000 .... ........... + 0010 00000000 00000000 00000000 00000000 ................ + 0020 32000000 20000000 ffff0500 fffff501 2... ........... + 0030 00000000 30100904 00000000 00000000 ....0........... + 0040 00008880 00000000 01000000 0000a800 ................ + 0050 89000000 00000000 01000150 00000000 ...........P.... + 0060 0a000a00 32003600 e903ffff 85000000 ....2.6......... + 0070 00000000 .... diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/binutils/testsuite/binutils-all/windres/edittext.rc binutils-2.14.90.0.5/binutils/testsuite/binutils-all/windres/edittext.rc --- binutils-2.14.90.0.4.1/binutils/testsuite/binutils-all/windres/edittext.rc 1969-12-31 16:00:00.000000000 -0800 +++ binutils-2.14.90.0.5/binutils/testsuite/binutils-all/windres/edittext.rc 2003-07-23 08:08:10.000000000 -0700 @@ -0,0 +1,4 @@ +501 DIALOG DISCARDABLE 0, 0, 168, 137 +BEGIN + EDITTEXT 1001, 28, 63, 137, 52 +END diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/binutils/testsuite/binutils-all/windres/edittext.rsd binutils-2.14.90.0.5/binutils/testsuite/binutils-all/windres/edittext.rsd --- binutils-2.14.90.0.4.1/binutils/testsuite/binutils-all/windres/edittext.rsd 1969-12-31 16:00:00.000000000 -0800 +++ binutils-2.14.90.0.5/binutils/testsuite/binutils-all/windres/edittext.rsd 2003-07-23 08:08:10.000000000 -0700 @@ -0,0 +1,8 @@ + 0000 00000000 20000000 ffff0000 ffff0000 .... ........... + 0010 00000000 00000000 00000000 00000000 ................ + 0020 32000000 20000000 ffff0500 fffff501 2... ........... + 0030 00000000 30100904 00000000 00000000 ....0........... + 0040 00008880 00000000 01000000 0000a800 ................ + 0050 89000000 00000000 00008150 00000000 ...........P.... + 0060 1c003f00 89003400 e903ffff 81000000 ..?...4......... + 0070 00000000 .... diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/binutils/testsuite/binutils-all/windres/listbox.rc binutils-2.14.90.0.5/binutils/testsuite/binutils-all/windres/listbox.rc --- binutils-2.14.90.0.4.1/binutils/testsuite/binutils-all/windres/listbox.rc 1969-12-31 16:00:00.000000000 -0800 +++ binutils-2.14.90.0.5/binutils/testsuite/binutils-all/windres/listbox.rc 2003-07-23 08:08:10.000000000 -0700 @@ -0,0 +1,4 @@ +501 DIALOG DISCARDABLE 0, 0, 168, 137 +BEGIN + LISTBOX 1001, 28, 63, 137, 52 +END diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/binutils/testsuite/binutils-all/windres/listbox.rsd binutils-2.14.90.0.5/binutils/testsuite/binutils-all/windres/listbox.rsd --- binutils-2.14.90.0.4.1/binutils/testsuite/binutils-all/windres/listbox.rsd 1969-12-31 16:00:00.000000000 -0800 +++ binutils-2.14.90.0.5/binutils/testsuite/binutils-all/windres/listbox.rsd 2003-07-23 08:08:10.000000000 -0700 @@ -0,0 +1,8 @@ + 0000 00000000 20000000 ffff0000 ffff0000 .... ........... + 0010 00000000 00000000 00000000 00000000 ................ + 0020 32000000 20000000 ffff0500 fffff501 2... ........... + 0030 00000000 30100904 00000000 00000000 ....0........... + 0040 00008880 00000000 01000000 0000a800 ................ + 0050 89000000 00000000 01008050 00000000 ...........P.... + 0060 1c003f00 89003400 e903ffff 83000000 ..?...4......... + 0070 00000000 .... diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/binutils/testsuite/binutils-all/windres/scrollbar.rc binutils-2.14.90.0.5/binutils/testsuite/binutils-all/windres/scrollbar.rc --- binutils-2.14.90.0.4.1/binutils/testsuite/binutils-all/windres/scrollbar.rc 1969-12-31 16:00:00.000000000 -0800 +++ binutils-2.14.90.0.5/binutils/testsuite/binutils-all/windres/scrollbar.rc 2003-07-23 08:08:10.000000000 -0700 @@ -0,0 +1,4 @@ +501 DIALOGEX 0, 0, 168, 137 +BEGIN + SCROLLBAR 1001,43,68,105,10,0,0,0x81f503e9 +END diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/binutils/testsuite/binutils-all/windres/scrollbar.rsd binutils-2.14.90.0.5/binutils/testsuite/binutils-all/windres/scrollbar.rsd --- binutils-2.14.90.0.4.1/binutils/testsuite/binutils-all/windres/scrollbar.rsd 1969-12-31 16:00:00.000000000 -0800 +++ binutils-2.14.90.0.5/binutils/testsuite/binutils-all/windres/scrollbar.rsd 2003-07-23 08:08:10.000000000 -0700 @@ -0,0 +1,8 @@ + 0000 00000000 20000000 ffff0000 ffff0000 .... ........... + 0010 00000000 00000000 00000000 00000000 ................ + 0020 40000000 20000000 ffff0500 fffff501 @... ........... + 0030 00000000 30100904 00000000 00000000 ....0........... + 0040 0100ffff 00000000 00000000 00008880 ................ + 0050 01000000 0000a800 89000000 00000000 ................ + 0060 e903f581 00000000 00000050 2b004400 ...........P+.D. + 0070 69000a00 e9030000 ffff8400 00000000 i............... diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/binutils/windres.h binutils-2.14.90.0.5/binutils/windres.h --- binutils-2.14.90.0.4.1/binutils/windres.h 2003-05-05 14:46:47.000000000 -0700 +++ binutils-2.14.90.0.5/binutils/windres.h 2003-07-23 08:08:09.000000000 -0700 @@ -814,7 +814,7 @@ extern void define_cursor extern void define_dialog PARAMS ((struct res_id, const struct res_res_info *, const struct dialog *)); extern struct dialog_control *define_control - PARAMS ((struct res_id, unsigned long, unsigned long, unsigned long, + PARAMS ((const struct res_id, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long)); extern struct dialog_control *define_icon_control diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/binutils.spec binutils-2.14.90.0.5/binutils.spec --- binutils-2.14.90.0.4.1/binutils.spec 2003-06-24 13:18:20.000000000 -0700 +++ binutils-2.14.90.0.5/binutils.spec 2003-07-22 17:02:39.000000000 -0700 @@ -12,7 +12,7 @@ Summary: A GNU collection of binary utilities. Name: binutils -Version: 2.14.90.0.4.1 +Version: 2.14.90.0.5 Release: 1 Copyright: GPL Group: Development/Tools diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/config/ChangeLog binutils-2.14.90.0.5/config/ChangeLog --- binutils-2.14.90.0.4.1/config/ChangeLog 2003-05-23 07:18:52.000000000 -0700 +++ binutils-2.14.90.0.5/config/ChangeLog 2003-07-23 08:08:10.000000000 -0700 @@ -1,3 +1,14 @@ +2003-07-07 Zack Weinberg + + * gettext.m4: Delete all former contents. + (ZW_GNU_GETTEXT_SISTER_DIR): New macro. + * progtest.m4: New file. + +2003-07-04 Zack Weinberg + + * gettext.m4: New file - copy of gettext.m4 from binutils + CVS, with added AC_ISC_POSIX macro from gcc/aclocal.m4. + 2003-05-14 Kelley Cook * acinclude.m4: Accept i[3456789]86 for machine type. @@ -15,7 +26,7 @@ 2002-12-28 Alexandre Oliva * acx.m4: Name cache variables properly. - (NCN_STRICT_CHECK_TOOL): If program is not found and + (NCN_STRICT_CHECK_TOOL): If program is not found and value-if-not-found is empty, use ${ncn_tool_prefix}$2 or $2, depending on whether build != host or not. (NCN_STRICT_CHECK_TARGET_TOOL): Ditto, with the target prefix. @@ -139,7 +150,7 @@ 2000-07-21 Andrew Haley * mh-ia64pic: New file. - * mt-ia64pic: New file. + * mt-ia64pic: New file. 2001-02-09 Martin Schwidefsky @@ -207,8 +218,8 @@ Wed Nov 18 20:29:46 1998 Christopher Fa Mon Nov 2 15:15:33 1998 Geoffrey Noer - * mh-cygwin32: delete - * mh-cygwin: was mh-cygwin32 + * mh-cygwin32: delete + * mh-cygwin: was mh-cygwin32 1998-10-26 Syd Polk @@ -235,7 +246,7 @@ Mon Aug 10 00:15:47 1998 HJ Lu (hjl@gnu 1998-05-29 Rob Savoye * acinclude.m4: New collection of generic autoconf macros. - + Wed Apr 22 12:24:28 1998 Michael Meissner * mt-ospace: New file, support using -Os instead of -O2 to compile @@ -278,8 +289,8 @@ Tue Mar 25 18:16:43 1997 Geoffrey Noer Wed Jan 8 19:56:43 1997 Geoffrey Noer - * mh-cygwin32: override CFLAGS so debug info isn't included - in cygwin32-hosted tools by default + * mh-cygwin32: override CFLAGS so debug info isn't included + in cygwin32-hosted tools by default Tue Dec 31 16:04:26 1996 Ian Lance Taylor @@ -377,7 +388,7 @@ Tue Nov 7 15:41:30 1995 Stan Shebs @@ -412,7 +423,7 @@ Thu Jun 22 17:47:24 1995 Stan Shebs * mpw-mh-mpw (EXTRALIBS): Always link in Math.o, CSANELIB.o, - and ToolLibs.o. + and ToolLibs.o. * mpw-mh-mpw (CC): Define ALMOST_STDC. (CFLAGS): Remove ALMOST_STDC, -mc68881. diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/config/gettext.m4 binutils-2.14.90.0.5/config/gettext.m4 --- binutils-2.14.90.0.4.1/config/gettext.m4 1969-12-31 16:00:00.000000000 -0800 +++ binutils-2.14.90.0.5/config/gettext.m4 2003-07-23 08:08:10.000000000 -0700 @@ -0,0 +1,66 @@ +# intl sister-directory configuration rules. +# + +# The idea behind this macro is that there's no need to repeat all the +# autoconf probes done by the intl directory - it's already done them +# for us. In fact, there's no need even to look at the cache for the +# answers. All we need to do is nab a few pieces of information. +# The intl directory is set up to make this easy, by generating a +# small file which can be sourced as a shell script; then we produce +# the necessary substitutions and definitions for this directory. + +AC_DEFUN(ZW_GNU_GETTEXT_SISTER_DIR, +[# If we haven't got the data from the intl directory, +# assume NLS is disabled. +USE_NLS=no AC_SUBST(USE_NLS) +LIBINTL= AC_SUBST(LIBINTL) +LIBINTL_DEP= AC_SUBST(LIBINTL_DEP) +INCINTL= AC_SUBST(INCINTL) +XGETTEXT= AC_SUBST(XGETTEXT) +GMSGFMT= AC_SUBST(GMSGFMT) +POSUB= AC_SUBST(POSUB) +if test -f ../intl/config.intl; then + . ../intl/config.intl +fi +AC_MSG_CHECKING([whether NLS is requested]) +if test x"$USE_NLS" != xyes; then + AC_MSG_RESULT(no) +else + AC_MSG_RESULT(yes) + AC_DEFINE(ENABLE_NLS, 1, + [Define to 1 if translation of program messages to the + user's native language is requested.]) + + AC_MSG_CHECKING(for catalogs to be installed) + # Look for .po and .gmo files in the source directory. + CATALOGS= AC_SUBST(CATALOGS) + XLINGUAS= + for cat in $srcdir/po/*.gmo $srcdir/po/*.po; do + # If there aren't any .gmo files the shell will give us the + # literal string "../path/to/srcdir/po/*.gmo" which has to be + # weeded out. + case "$cat" in *\**) + continue;; + esac + # The quadruple backslash is collapsed to a double backslash + # by the backticks, then collapsed again by the double quotes, + # leaving us with one backslash in the sed expression (right + # before the dot that mustn't act as a wildcard). + cat=`echo $cat | sed -e "s!$srcdir/!!" -e "s!\\\\.po!.gmo!"` + lang=`echo $cat | sed -e 's!po/!!' -e "s!\\\\.gmo!!"` + # The user is allowed to set LINGUAS to a list of languages to + # install catalogs for. If it's empty that means "all of them." + if test "x$LINGUAS" = x; then + CATALOGS="$CATALOGS $cat" + XLINGUAS="$XLINGUAS $lang" + else + case "$LINGUAS" in *$lang*) + CATALOGS="$CATALOGS $cat" + XLINGUAS="$XLINGUAS $lang" + ;; + esac + fi + done + LINGUAS="$XLINGUAS" + AC_MSG_RESULT($LINGUAS) +fi]) diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/config/progtest.m4 binutils-2.14.90.0.5/config/progtest.m4 --- binutils-2.14.90.0.4.1/config/progtest.m4 1969-12-31 16:00:00.000000000 -0800 +++ binutils-2.14.90.0.5/config/progtest.m4 2003-07-23 08:08:10.000000000 -0700 @@ -0,0 +1,91 @@ +# progtest.m4 serial 3 (gettext-0.12) +dnl Copyright (C) 1996-2003 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper , 1996. + +# Search path for a program which passes the given test. + +dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, +dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) +AC_DEFUN([AM_PATH_PROG_WITH_TEST], +[ +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + +# Find out how to test for executable files. Don't use a zero-byte file, +# as systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + ac_executable_p="test -x" +else + ac_executable_p="test -f" +fi +rm -f conf$$.file + +# Extract the first word of "$2", so it can be a program name with args. +set dummy $2; ac_word=[$]2 +AC_MSG_CHECKING([for $ac_word]) +AC_CACHE_VAL(ac_cv_path_$1, +[case "[$]$1" in + [[\\/]]* | ?:[[\\/]]*) + ac_cv_path_$1="[$]$1" # Let the user override the test with a path. + ;; + *) + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in ifelse([$5], , $PATH, [$5]); do + IFS="$ac_save_IFS" + test -z "$ac_dir" && ac_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then + if [$3]; then + ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext" + break 2 + fi + fi + done + done + IFS="$ac_save_IFS" +dnl If no 4th arg is given, leave the cache variable unset, +dnl so AC_PATH_PROGS will keep looking. +ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" +])dnl + ;; +esac])dnl +$1="$ac_cv_path_$1" +if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then + AC_MSG_RESULT([$]$1) +else + AC_MSG_RESULT(no) +fi +AC_SUBST($1)dnl +]) diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/config-ml.in binutils-2.14.90.0.5/config-ml.in --- binutils-2.14.90.0.4.1/config-ml.in 2003-05-05 14:46:46.000000000 -0700 +++ binutils-2.14.90.0.5/config-ml.in 2003-07-23 08:08:08.000000000 -0700 @@ -500,7 +500,7 @@ multidirs=`echo "$multidirs" | sed -e 's cat > Multi.tem <<\EOF -PWD=$${PWDCMD-pwd} +PWD_COMMAND=$${PWDCMD-pwd} # FIXME: There should be an @-sign in front of the `if'. # Leave out until this is tested a bit more. @@ -508,8 +508,8 @@ multi-do: if [ -z "$(MULTIDIRS)" ]; then \ true; \ else \ - rootpre=`${PWD}`/; export rootpre; \ - srcrootpre=`cd $(srcdir); ${PWD}`/; export srcrootpre; \ + rootpre=`${PWD_COMMAND}`/; export rootpre; \ + srcrootpre=`cd $(srcdir); ${PWD_COMMAND}`/; export srcrootpre; \ lib=`echo $${rootpre} | sed -e 's,^.*/\([^/][^/]*\)/$$,\1,'`; \ compiler="$(CC)"; \ for i in `$${compiler} --print-multi-lib 2>/dev/null`; do \ @@ -546,7 +546,7 @@ multi-clean: if [ -z "$(MULTIDIRS)" ]; then \ true; \ else \ - lib=`${PWD} | sed -e 's,^.*/\([^/][^/]*\)$$,\1,'`; \ + lib=`${PWD_COMMAND} | sed -e 's,^.*/\([^/][^/]*\)$$,\1,'`; \ for dir in Makefile $(MULTIDIRS); do \ if [ -f ../$${dir}/$${lib}/Makefile ]; then \ if (cd ../$${dir}/$${lib}; $(MAKE) $(FLAGS_TO_PASS) $(DO)); \ diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/config.guess binutils-2.14.90.0.5/config.guess --- binutils-2.14.90.0.4.1/config.guess 2003-05-15 13:42:24.000000000 -0700 +++ binutils-2.14.90.0.5/config.guess 2003-07-23 08:08:08.000000000 -0700 @@ -3,7 +3,7 @@ # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -timestamp='2003-05-09' +timestamp='2003-06-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 @@ -106,6 +106,7 @@ trap "rm -f \$tmpfiles 2>/dev/null; rmdi : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; @@ -282,6 +283,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit 0 ;; + Alpha*:OpenVMS:*:*) + echo alpha-hp-vms + exit 0 ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead @@ -320,6 +324,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit 0 ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit 0 ;; DRS?6000:UNIX_SV:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7 && exit 0 ;; @@ -767,8 +774,8 @@ EOF i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit 0 ;; - x86:Interix*:3*) - echo i586-pc-interix3 + x86:Interix*:[34]*) + echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' exit 0 ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks @@ -797,6 +804,9 @@ EOF arm*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; + cris:Linux:*:*) + echo cris-axis-linux-gnu + exit 0 ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/config.if binutils-2.14.90.0.5/config.if --- binutils-2.14.90.0.4.1/config.if 2003-03-19 09:19:12.000000000 -0800 +++ binutils-2.14.90.0.5/config.if 2003-07-23 08:08:08.000000000 -0700 @@ -3,7 +3,6 @@ # determine: # # 1. libstcxx_incdir: the interface name for libstdc++. -# 2. libc_interface: the interface name for libc. # # Get the top level src dir. @@ -36,53 +35,3 @@ if test -z "$gcc_version"; then fi libstdcxx_incdir=c++/${gcc_version} -# The trickiest part is libc_interface. -if [ -z "${libc_interface}" ] -then - case ${target_os} in - *linux*libc1*|*linux*libc5*) - case ${target_alias} in - *alpha*|*powerpc*) - libc_interface=-libc5.9- - ;; - *) - libc_interface=-libc5- - ;; - esac - ;; - *linux*gnu*) - # We have to work harder to figure it out. - if [ ${target_alias} = ${build_alias} ] - then - dummy=if$$ - cat >$dummy.c < -main(argc, argv) - int argc; - char *argv[]; -{ - printf("%d\n", __GLIBC_MINOR__); - return 0; -} -EOF - ${CC-cc} $dummy.c -o $dummy 2>/dev/null - if [ "$?" = 0 ] - then - libc_interface=-libc6.`./$dummy`- - rm -f $dummy.c $dummy - else - # It should never happen. - echo "Cannot find the GNU C library minor version number." >&2 - rm -f $dummy.c $dummy - exit 1 - fi - else - # Cross compiling. Assume glibc 2.1. - libc_interface=-libc6.1- - fi - ;; - *) - libc_interface=- - ;; - esac -fi diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/config.sub binutils-2.14.90.0.5/config.sub --- binutils-2.14.90.0.4.1/config.sub 2003-05-15 13:42:24.000000000 -0700 +++ binutils-2.14.90.0.5/config.sub 2003-07-23 08:08:08.000000000 -0700 @@ -3,7 +3,7 @@ # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -timestamp='2003-05-09' +timestamp='2003-06-13' # 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 \ - | clipper \ + | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ @@ -265,7 +265,7 @@ case $basic_machine in | sh64 | sh64le \ | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ | strongarm \ - | tahoe | thumb | tic80 | tron \ + | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xscale | xstormy16 | xtensa \ @@ -775,18 +775,24 @@ case $basic_machine in pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; - pentiumii | pentium2) + pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; + pentium4) + basic_machine=i786-pc + ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; - pentiumii-* | pentium2-*) + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; + pentium4-*) + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; pn) basic_machine=pn-gould ;; @@ -926,10 +932,6 @@ 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 @@ -1135,7 +1137,7 @@ case $os in | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ - | -powermax* | -dnix*) + | -powermax* | -dnix* | -nx6 | -nx7) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1281,6 +1283,9 @@ case $basic_machine in arm*-semi) os=-aout ;; + c4x-* | tic4x-*) + os=-coff + ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/configure binutils-2.14.90.0.5/configure --- binutils-2.14.90.0.4.1/configure 2003-05-23 07:18:52.000000000 -0700 +++ binutils-2.14.90.0.5/configure 2003-07-23 08:08:24.000000000 -0700 @@ -12,10 +12,10 @@ ac_help= ac_default_prefix=/usr/local # Any additions from configure.in: ac_help="$ac_help - --disable-serial-[{host,target,build}-]configure - Don't force sequential configuration of + --enable-serial-[{host,target,build}-]configure + Force sequential configuration of sub-packages for the host, target or build - machine, or of any sub-packages at all" + machine, or all sub-packages" ac_help="$ac_help --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer" @@ -658,6 +658,72 @@ test "$program_suffix" != NONE && test "$program_transform_name" = "" && program_transform_name="s,x,x," +# Get 'install' or 'install-sh' and its variants. +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# 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:675: 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 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + # Autoconf M4 include file defining utility macros for complex Canadian # cross builds. @@ -782,7 +848,7 @@ fi # these libraries are used by various programs built for the host environment # -host_libs="intl mmalloc libiberty opcodes bfd readline tcl tk itcl tix libgui zlib" +host_libs="intl mmalloc libiberty demangler opcodes bfd readline tcl tk itcl tix libgui zlib" # these tools are built for the host environment # Note, the powerpc-eabi build depends on sim occurring before gdb in order to @@ -801,18 +867,19 @@ libgcj="target-libffi \ # these libraries are built for the target environment, and are built after # the host libraries and the host tools (which may be a cross compiler) # -target_libs="target-libiberty \ +target_libraries="target-libiberty \ target-libgloss \ target-newlib \ target-libstdc++-v3 \ + target-demangler \ target-libf2c \ ${libgcj} \ target-libobjc" -# these tools are built using the target libs, and are intended to run only -# in the target environment +# these tools are built using the target libraries, and are intended to +# run only in the target environment # -# note: any program that *uses* libraries that are in the "target_libs" +# note: any program that *uses* libraries that are in the "target_libraries" # list belongs in this list. those programs are also very likely # candidates for the "native_only" list which follows # @@ -827,13 +894,13 @@ target_tools="target-examples target-gro ## ${target_configdirs} is directories we build using the target tools. # configdirs=`echo ${host_libs} ${host_tools}` -target_configdirs=`echo ${target_libs} ${target_tools}` +target_configdirs=`echo ${target_libraries} ${target_tools}` # Only make build modules if build != host. # This should be done more generally, but at the moment it doesn't matter. if test ${host_alias} != ${build_alias} ; then # This is the only build module. - build_modules=libiberty + build_modules="libiberty demangler" else build_modules= fi @@ -1032,11 +1099,13 @@ case "${target}" in skipdirs="target-libiberty ${libgcj} target-libstdc++-v3 target-libf2c target-librx" skipdirs="$skipdirs target-libobjc target-examples target-groff target-gperf" skipdirs="$skipdirs zlib fastjar target-libjava target-boehm-gc target-zlib" + skipdirs="$skipdirs target-demangler" noconfigdirs="$noconfigdirs target-libgloss" ;; *-*-netbsd*) # Skip some stuff on all NetBSD configurations. noconfigdirs="$noconfigdirs target-newlib target-libiberty target-libgloss" + noconfigdirs="$noconfigdirs target-demangler" # Skip some stuff that's unsupported on some NetBSD configurations. case "${target}" in @@ -1049,6 +1118,7 @@ case "${target}" in ;; *-*-netware) noconfigdirs="$noconfigdirs target-libstdc++-v3 target-newlib target-libiberty target-libgloss ${libgcj}" + noconfigdirs="$noconfigdirs target-demangler" ;; *-*-rtems*) noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" @@ -1082,6 +1152,9 @@ case "${target}" in # newlib is not 64 bit ready noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}" ;; + am33_2.0-*-linux*) + noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss" + ;; sh-*-linux*) noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss" ;; @@ -1089,6 +1162,7 @@ case "${target}" in noconfigdirs="$noconfigdirs ${libgcj}" noconfigdirs="$noconfigdirs target-examples" noconfigdirs="$noconfigdirs target-libiberty texinfo send-pr" + noconfigdirs="$noconfigdirs target-demangler" noconfigdirs="$noconfigdirs tcl tix tk itcl libgui sim" noconfigdirs="$noconfigdirs expect dejagnu" # the C++ libraries don't build on top of CE's C libraries @@ -1132,6 +1206,7 @@ case "${target}" in ;; avr-*-*) noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}" + noconfigdirs="$noconfigdirs target-demangler" ;; c4x-*-* | tic4x-*-*) noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}" @@ -1140,22 +1215,22 @@ case "${target}" in noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj} gcc gdb newlib" ;; cris-*-*) - noconfigdirs="$noconfigdirs ${libgcj}" + noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss" ;; d10v-*-*) noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}" ;; d30v-*-*) - noconfigdirs="$noconfigdirs ${libgcj}" + noconfigdirs="$noconfigdirs ${libgcj} gdb" ;; fr30-*-elf*) - noconfigdirs="$noconfigdirs ${libgcj}" + noconfigdirs="$noconfigdirs ${libgcj} gdb" ;; frv-*-*) noconfigdirs="$noconfigdirs ${libgcj}" ;; h8300*-*-*) - noconfigdirs="$noconfigdirs target-libgloss" + noconfigdirs="$noconfigdirs target-libgloss ${libgcj} target-libf2c" ;; h8500-*-*) noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj} target-libf2c" @@ -1179,6 +1254,9 @@ case "${target}" in # build on HP-UX 10.20. noconfigdirs="$noconfigdirs ld shellutils ${libgcj}" ;; + i960-*-*) + noconfigdirs="$noconfigdirs ${libgcj} gdb" + ;; ia64*-*-elf*) # No gdb support yet. noconfigdirs="$noconfigdirs tix readline mmalloc libgui itcl gdb" @@ -1256,8 +1334,12 @@ case "${target}" in i[3456789]86-*-beos*) noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}" ;; + m32r-*-*) + noconfigdirs="$noconfigdirs ${libgcj} gdb" + ;; m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*) noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}" + noconfigdirs="$noconfigdirs target-demangler" ;; m68k-*-elf*) noconfigdirs="$noconfigdirs ${libgcj}" @@ -1389,8 +1471,12 @@ case "${target}" in vax-*-*) noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}" ;; + xtensa-*-*) + noconfigdirs="$noconfigdirs ${libgcj}" + ;; ip2k-*-*) noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}" + noconfigdirs="$noconfigdirs target-demangler" ;; *-*-linux*) noconfigdirs="$noconfigdirs target-newlib target-libgloss" @@ -1435,24 +1521,24 @@ enable_languages=`echo "${enable_languag # First scan to see if an enabled language requires some other language. # We assume that a given config-lang.in will list all the language # front ends it requires, even if some are required indirectly. -for lang in ${srcdir}/gcc/*/config-lang.in .. -do - case $lang in +for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do + case ${lang_frag} in ..) ;; # The odd quoting in the next line works around # an apparent bug in bash 1.12 on linux. ${srcdir}/gcc/[*]/config-lang.in) ;; *) - lang_alias=`sed -n -e 's,^language=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^language=\([^ ]*\).*$,\1,p' $lang` - this_lang_requires=`sed -n -e 's,^lang_requires=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^lang_requires=\([^ ]*\).*$,\1,p' $lang` - for other in $this_lang_requires - do + # From the config-lang.in, get $language, $lang_requires + language= + lang_requires= + . ${lang_frag} + for other in ${lang_requires} ; do case ,${enable_languages}, in *,$other,*) ;; *,all,*) ;; - *,$lang_alias,*) - echo " \`$other' language required by \`$lang_alias'; enabling" 1>&2 - enable_languages="$enable_languages,$other" + *,$language,*) + echo " \`$other' language required by \`$language'; enabling" 1>&2 + enable_languages="${enable_languages},${other}" ;; esac done @@ -1460,35 +1546,44 @@ do esac done -subdirs= -for lang in ${srcdir}/gcc/*/config-lang.in .. -do - case $lang in +for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do + case ${lang_frag} in ..) ;; # The odd quoting in the next line works around # an apparent bug in bash 1.12 on linux. ${srcdir}/gcc/[*]/config-lang.in) ;; *) - lang_alias=`sed -n -e 's,^language=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^language=\([^ ]*\).*$,\1,p' $lang` - this_lang_libs=`sed -n -e 's,^target_libs=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^target_libs=\([^ ]*\).*$,\1,p' $lang` - this_lang_dirs=`sed -n -e 's,^lang_dirs=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^lang_dirs=\([^ ]*\).*$,\1,p' $lang` - build_by_default=`sed -n -e 's,^build_by_default=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^build_by_default=\([^ ]*\).*$,\1,p' $lang` - if test "x$lang_alias" = x - then - echo "$lang doesn't set \$language." 1>&2 + # From the config-lang.in, get $language, $target_libs, + # $lang_dirs, and $build_by_default + language= + target_libs= + lang_dirs= + build_by_default= + . ${lang_frag} + if test "x$language" = x ; then + echo "${lang_frag} doesn't set \$language." 1>&2 exit 1 fi - case ${build_by_default},${enable_languages}, in - *,$lang_alias,*) add_this_lang=yes ;; - no,*) add_this_lang=no ;; - *,all,*) add_this_lang=yes ;; + case ,${enable_languages}, in + *,${language},*) + # Language was explicitly selected; include it. + add_this_lang=yes + ;; + *,all,*) + # 'all' was selected; include 'default' languages. + case ${build_by_default} in + no) add_this_lang=no ;; + *) add_this_lang=yes ;; + esac + ;; *) add_this_lang=no ;; esac - if test x"${add_this_lang}" = xyes; then - eval target_libs='"$target_libs "'\"$this_lang_libs\" - else - eval noconfigdirs='"$noconfigdirs "'\"$this_lang_libs $this_lang_dirs\" - fi + case ${add_this_lang} in + no) + # Remove language-dependent dirs. + eval noconfigdirs='"$noconfigdirs "'\"$target_libs $lang_dirs\" + ;; + esac ;; esac done @@ -1527,7 +1622,7 @@ done 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 "$i" != "libiberty" && test "$i" != "demangler" ; then if test -r $srcdir/$i/configure ; then others=yes; break; @@ -1916,10 +2011,6 @@ fi # Default to using --with-stabs for certain targets. if test x${with_stabs} = x ; then case "${target}" in - mips*-*-irix6*o32) - with_stabs=yes; - extra_host_args="${extra_host_args} --with-stabs" - ;; mips*-*-irix6*) ;; mips*-*-* | alpha*-*-osf*) @@ -2341,7 +2432,8 @@ rm -f maybedep.tmp echo '# maybedep.tmp' > maybedep.tmp # Make-targets which may need maybe dependencies. -mts="configure all install check" +mts="configure all install check clean distclean dvi info install-info" +mts="${mts} installcheck mostlyclean maintainer-clean TAGS" # Loop over modules and make-targets. for module in ${build_modules} ; do @@ -2389,13 +2481,20 @@ if test "${enable_serial_configure+set}" fi +case ${enable_serial_configure} in + yes) + enable_serial_build_configure=yes + enable_serial_host_configure=yes + enable_serial_target_configure=yes + ;; +esac + # These force 'configure's to be done one at a time, to avoid problems # with contention over a shared config.cache. rm -f serdep.tmp echo '# serdep.tmp' > serdep.tmp olditem= -test "x${enable_serial_configure}" = xno || -test "x${enable_serial_build_configure}" = xno || +test "x${enable_serial_build_configure}" = xyes && for item in ${build_configdirs} ; do case ${olditem} in "") ;; @@ -2404,8 +2503,7 @@ for item in ${build_configdirs} ; do olditem=${item} done olditem= -test "x${enable_serial_configure}" = xno || -test "x${enable_serial_host_configure}" = xno || +test "x${enable_serial_host_configure}" = xyes && for item in ${configdirs} ; do case ${olditem} in "") ;; @@ -2414,8 +2512,7 @@ for item in ${configdirs} ; do olditem=${item} done olditem= -test "x${enable_serial_configure}" = xno || -test "x${enable_serial_target_configure}" = xno || +test "x${enable_serial_target_configure}" = xyes && for item in ${target_configdirs} ; do case ${olditem} in "") ;; @@ -2593,7 +2690,7 @@ fi GCJ_FOR_TARGET=$GCJ_FOR_TARGET' $(FLAGS_FOR_TARGET)' # Don't use libstdc++-v3's flags to configure/build itself. -libstdcxx_flags='`test ! -f $$r/$(TARGET_SUBDIR)/libstdc++-v3/testsuite_flags || $(SHELL) $$r/$(TARGET_SUBDIR)/libstdc++-v3/testsuite_flags --build-includes` -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs' +libstdcxx_flags='`test ! -f $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags || $(SHELL) $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags --build-includes` -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs' raw_libstdcxx_flags=' -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs' if test "x${CXX_FOR_TARGET+set}" = xset; then @@ -2691,7 +2788,7 @@ test -n "$target_alias" && ncn_target_to # Extract the first word of "${ncn_tool_prefix}ar", so it can be a program name with args. set dummy ${ncn_tool_prefix}ar; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2695: checking for $ac_word" >&5 +echo "configure:2792: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2724,7 +2821,7 @@ if test -z "$ac_cv_prog_AR" ; then # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2728: checking for $ac_word" >&5 +echo "configure:2825: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_AR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2763,7 +2860,7 @@ fi # Extract the first word of "${ncn_tool_prefix}as", so it can be a program name with args. set dummy ${ncn_tool_prefix}as; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2767: checking for $ac_word" >&5 +echo "configure:2864: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2796,7 +2893,7 @@ if test -z "$ac_cv_prog_AS" ; then # Extract the first word of "as", so it can be a program name with args. set dummy as; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2800: checking for $ac_word" >&5 +echo "configure:2897: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_AS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2835,7 +2932,7 @@ fi # Extract the first word of "${ncn_tool_prefix}dlltool", so it can be a program name with args. set dummy ${ncn_tool_prefix}dlltool; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2839: checking for $ac_word" >&5 +echo "configure:2936: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_DLLTOOL'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2868,7 +2965,7 @@ if test -z "$ac_cv_prog_DLLTOOL" ; then # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2872: checking for $ac_word" >&5 +echo "configure:2969: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_DLLTOOL'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2907,7 +3004,7 @@ fi # Extract the first word of "${ncn_tool_prefix}ld", so it can be a program name with args. set dummy ${ncn_tool_prefix}ld; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2911: checking for $ac_word" >&5 +echo "configure:3008: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2940,7 +3037,7 @@ if test -z "$ac_cv_prog_LD" ; then # Extract the first word of "ld", so it can be a program name with args. set dummy ld; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2944: checking for $ac_word" >&5 +echo "configure:3041: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_LD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2979,7 +3076,7 @@ fi # Extract the first word of "${ncn_tool_prefix}nm", so it can be a program name with args. set dummy ${ncn_tool_prefix}nm; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2983: checking for $ac_word" >&5 +echo "configure:3080: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_NM'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3012,7 +3109,7 @@ if test -z "$ac_cv_prog_NM" ; then # Extract the first word of "nm", so it can be a program name with args. set dummy nm; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3016: checking for $ac_word" >&5 +echo "configure:3113: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_NM'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3051,7 +3148,7 @@ fi # Extract the first word of "${ncn_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ncn_tool_prefix}ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3055: checking for $ac_word" >&5 +echo "configure:3152: 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 @@ -3084,7 +3181,7 @@ if test -z "$ac_cv_prog_RANLIB" ; 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:3088: checking for $ac_word" >&5 +echo "configure:3185: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3123,7 +3220,7 @@ fi # Extract the first word of "${ncn_tool_prefix}windres", so it can be a program name with args. set dummy ${ncn_tool_prefix}windres; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3127: checking for $ac_word" >&5 +echo "configure:3224: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_WINDRES'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3156,7 +3253,7 @@ if test -z "$ac_cv_prog_WINDRES" ; then # Extract the first word of "windres", so it can be a program name with args. set dummy windres; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3160: checking for $ac_word" >&5 +echo "configure:3257: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_WINDRES'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3195,7 +3292,7 @@ fi # Extract the first word of "${ncn_tool_prefix}objcopy", so it can be a program name with args. set dummy ${ncn_tool_prefix}objcopy; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3199: checking for $ac_word" >&5 +echo "configure:3296: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_OBJCOPY'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3228,7 +3325,7 @@ if test -z "$ac_cv_prog_OBJCOPY" ; then # Extract the first word of "objcopy", so it can be a program name with args. set dummy objcopy; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3232: checking for $ac_word" >&5 +echo "configure:3329: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_OBJCOPY'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3267,7 +3364,7 @@ fi # Extract the first word of "${ncn_tool_prefix}objdump", so it can be a program name with args. set dummy ${ncn_tool_prefix}objdump; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3271: checking for $ac_word" >&5 +echo "configure:3368: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_OBJDUMP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3300,7 +3397,7 @@ if test -z "$ac_cv_prog_OBJDUMP" ; then # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3304: checking for $ac_word" >&5 +echo "configure:3401: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_OBJDUMP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3348,7 +3445,7 @@ fi # Extract the first word of "${ncn_target_tool_prefix}ar", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}ar; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3352: checking for $ac_word" >&5 +echo "configure:3449: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AR_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3381,7 +3478,7 @@ if test -z "$ac_cv_prog_AR_FOR_TARGET" ; # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3385: checking for $ac_word" >&5 +echo "configure:3482: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_AR_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3420,7 +3517,7 @@ fi # Extract the first word of "${ncn_target_tool_prefix}as", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}as; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3424: checking for $ac_word" >&5 +echo "configure:3521: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AS_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3453,7 +3550,7 @@ if test -z "$ac_cv_prog_AS_FOR_TARGET" ; # Extract the first word of "as", so it can be a program name with args. set dummy as; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3457: checking for $ac_word" >&5 +echo "configure:3554: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_AS_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3492,7 +3589,7 @@ fi # Extract the first word of "${ncn_target_tool_prefix}dlltool", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}dlltool; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3496: checking for $ac_word" >&5 +echo "configure:3593: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_DLLTOOL_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3525,7 +3622,7 @@ if test -z "$ac_cv_prog_DLLTOOL_FOR_TARG # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3529: checking for $ac_word" >&5 +echo "configure:3626: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_DLLTOOL_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3564,7 +3661,7 @@ fi # Extract the first word of "${ncn_target_tool_prefix}ld", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}ld; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3568: checking for $ac_word" >&5 +echo "configure:3665: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LD_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3597,7 +3694,7 @@ if test -z "$ac_cv_prog_LD_FOR_TARGET" ; # Extract the first word of "ld", so it can be a program name with args. set dummy ld; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3601: checking for $ac_word" >&5 +echo "configure:3698: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_LD_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3636,7 +3733,7 @@ fi # Extract the first word of "${ncn_target_tool_prefix}nm", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}nm; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3640: checking for $ac_word" >&5 +echo "configure:3737: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_NM_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3669,7 +3766,7 @@ if test -z "$ac_cv_prog_NM_FOR_TARGET" ; # Extract the first word of "nm", so it can be a program name with args. set dummy nm; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3673: checking for $ac_word" >&5 +echo "configure:3770: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_NM_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3708,7 +3805,7 @@ fi # Extract the first word of "${ncn_target_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3712: checking for $ac_word" >&5 +echo "configure:3809: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3741,7 +3838,7 @@ if test -z "$ac_cv_prog_RANLIB_FOR_TARGE # 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:3745: checking for $ac_word" >&5 +echo "configure:3842: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_RANLIB_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3780,7 +3877,7 @@ fi # Extract the first word of "${ncn_target_tool_prefix}windres", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}windres; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3784: checking for $ac_word" >&5 +echo "configure:3881: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_WINDRES_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3813,7 +3910,7 @@ if test -z "$ac_cv_prog_WINDRES_FOR_TARG # Extract the first word of "windres", so it can be a program name with args. set dummy windres; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3817: checking for $ac_word" >&5 +echo "configure:3914: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_WINDRES_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3880,7 +3977,7 @@ RANLIB_FOR_TARGET=${RANLIB_FOR_TARGET}${ NM_FOR_TARGET=${NM_FOR_TARGET}${extra_nmflags_for_target} echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 -echo "configure:3884: checking whether to enable maintainer-specific portions of Makefiles" >&5 +echo "configure:3981: 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" @@ -3967,15 +4064,34 @@ trap 'rm -f $CONFIG_STATUS conftest*; ex # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. -cat > conftest.defs <<\EOF -s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g -s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g -s%\[%\\&%g -s%\]%\\&%g -s%\$%$$%g -EOF -DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` -rm -f conftest.defs +# +# If the first sed substitution is executed (which looks for macros that +# take arguments), then we branch to the quote section. Otherwise, +# look for a macro that doesn't take arguments. +cat >confdef2opt.sed <<\_ACEOF +t clear +: clear +s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g +t quote +s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g +t quote +d +: quote +s,[ `~#$^&*(){}\\|;'"<>?],\\&,g +s,\[,\\&,g +s,\],\\&,g +s,\$,$$,g +p +_ACEOF +# We use echo to avoid assuming a particular line-breaking character. +# The extra dot is to prevent the shell from consuming trailing +# line-breaks from the sub-command output. A line-break within +# single-quotes doesn't work because, if this script is created in a +# platform that uses two characters for line-breaks (e.g., DOS), tr +# would break. +ac_LF_and_DOT=`echo; echo .` +DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'` +rm -f confdef2opt.sed # Without the "./", some shells look in PATH for config.status. @@ -4012,6 +4128,7 @@ do done ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 EOF @@ -4060,6 +4177,9 @@ s%@build_alias@%$build_alias%g s%@build_cpu@%$build_cpu%g s%@build_vendor@%$build_vendor%g s%@build_os@%$build_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g s%@TOPLEVEL_CONFIGURE_ARGUMENTS@%$TOPLEVEL_CONFIGURE_ARGUMENTS%g s%@build_subdir@%$build_subdir%g s%@host_subdir@%$host_subdir%g @@ -4225,6 +4345,10 @@ for ac_file in .. $CONFIG_FILES; do if t top_srcdir="$ac_dots$ac_given_srcdir" ;; esac + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac echo creating "$ac_file" rm -f "$ac_file" @@ -4240,6 +4364,7 @@ for ac_file in .. $CONFIG_FILES; do if t s%@configure_input@%$configure_input%g s%@srcdir@%$srcdir%g s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g " $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file fi; done rm -f conftest.s* diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/configure.in binutils-2.14.90.0.5/configure.in --- binutils-2.14.90.0.4.1/configure.in 2003-05-23 07:18:52.000000000 -0700 +++ binutils-2.14.90.0.5/configure.in 2003-07-23 08:08:23.000000000 -0700 @@ -23,6 +23,9 @@ AC_PREREQ(2.13) AC_CANONICAL_SYSTEM AC_ARG_PROGRAM +# Get 'install' or 'install-sh' and its variants. +AC_PROG_INSTALL + sinclude(config/acx.m4) ### we might need to use some other shell than /bin/sh for running subshells @@ -117,7 +120,7 @@ fi # these libraries are used by various programs built for the host environment # -host_libs="intl mmalloc libiberty opcodes bfd readline tcl tk itcl tix libgui zlib" +host_libs="intl mmalloc libiberty demangler opcodes bfd readline tcl tk itcl tix libgui zlib" # these tools are built for the host environment # Note, the powerpc-eabi build depends on sim occurring before gdb in order to @@ -136,18 +139,19 @@ libgcj="target-libffi \ # these libraries are built for the target environment, and are built after # the host libraries and the host tools (which may be a cross compiler) # -target_libs="target-libiberty \ +target_libraries="target-libiberty \ target-libgloss \ target-newlib \ target-libstdc++-v3 \ + target-demangler \ target-libf2c \ ${libgcj} \ target-libobjc" -# these tools are built using the target libs, and are intended to run only -# in the target environment +# these tools are built using the target libraries, and are intended to +# run only in the target environment # -# note: any program that *uses* libraries that are in the "target_libs" +# note: any program that *uses* libraries that are in the "target_libraries" # list belongs in this list. those programs are also very likely # candidates for the "native_only" list which follows # @@ -162,13 +166,13 @@ target_tools="target-examples target-gro ## ${target_configdirs} is directories we build using the target tools. # configdirs=`echo ${host_libs} ${host_tools}` -target_configdirs=`echo ${target_libs} ${target_tools}` +target_configdirs=`echo ${target_libraries} ${target_tools}` # Only make build modules if build != host. # This should be done more generally, but at the moment it doesn't matter. if test ${host_alias} != ${build_alias} ; then # This is the only build module. - build_modules=libiberty + build_modules="libiberty demangler" else build_modules= fi @@ -346,11 +350,13 @@ case "${target}" in skipdirs="target-libiberty ${libgcj} target-libstdc++-v3 target-libf2c target-librx" skipdirs="$skipdirs target-libobjc target-examples target-groff target-gperf" skipdirs="$skipdirs zlib fastjar target-libjava target-boehm-gc target-zlib" + skipdirs="$skipdirs target-demangler" noconfigdirs="$noconfigdirs target-libgloss" ;; *-*-netbsd*) # Skip some stuff on all NetBSD configurations. noconfigdirs="$noconfigdirs target-newlib target-libiberty target-libgloss" + noconfigdirs="$noconfigdirs target-demangler" # Skip some stuff that's unsupported on some NetBSD configurations. case "${target}" in @@ -363,6 +369,7 @@ case "${target}" in ;; *-*-netware) noconfigdirs="$noconfigdirs target-libstdc++-v3 target-newlib target-libiberty target-libgloss ${libgcj}" + noconfigdirs="$noconfigdirs target-demangler" ;; *-*-rtems*) noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" @@ -396,6 +403,9 @@ case "${target}" in # newlib is not 64 bit ready noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}" ;; + am33_2.0-*-linux*) + noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss" + ;; sh-*-linux*) noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss" ;; @@ -403,6 +413,7 @@ case "${target}" in noconfigdirs="$noconfigdirs ${libgcj}" noconfigdirs="$noconfigdirs target-examples" noconfigdirs="$noconfigdirs target-libiberty texinfo send-pr" + noconfigdirs="$noconfigdirs target-demangler" noconfigdirs="$noconfigdirs tcl tix tk itcl libgui sim" noconfigdirs="$noconfigdirs expect dejagnu" # the C++ libraries don't build on top of CE's C libraries @@ -446,6 +457,7 @@ case "${target}" in ;; avr-*-*) noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}" + noconfigdirs="$noconfigdirs target-demangler" ;; c4x-*-* | tic4x-*-*) noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}" @@ -454,22 +466,22 @@ case "${target}" in noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj} gcc gdb newlib" ;; cris-*-*) - noconfigdirs="$noconfigdirs ${libgcj}" + noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss" ;; d10v-*-*) noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}" ;; d30v-*-*) - noconfigdirs="$noconfigdirs ${libgcj}" + noconfigdirs="$noconfigdirs ${libgcj} gdb" ;; fr30-*-elf*) - noconfigdirs="$noconfigdirs ${libgcj}" + noconfigdirs="$noconfigdirs ${libgcj} gdb" ;; frv-*-*) noconfigdirs="$noconfigdirs ${libgcj}" ;; h8300*-*-*) - noconfigdirs="$noconfigdirs target-libgloss" + noconfigdirs="$noconfigdirs target-libgloss ${libgcj} target-libf2c" ;; h8500-*-*) noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj} target-libf2c" @@ -493,6 +505,9 @@ case "${target}" in # build on HP-UX 10.20. noconfigdirs="$noconfigdirs ld shellutils ${libgcj}" ;; + i960-*-*) + noconfigdirs="$noconfigdirs ${libgcj} gdb" + ;; ia64*-*-elf*) # No gdb support yet. noconfigdirs="$noconfigdirs tix readline mmalloc libgui itcl gdb" @@ -570,8 +585,12 @@ case "${target}" in i[[3456789]]86-*-beos*) noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}" ;; + m32r-*-*) + noconfigdirs="$noconfigdirs ${libgcj} gdb" + ;; m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*) noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}" + noconfigdirs="$noconfigdirs target-demangler" ;; m68k-*-elf*) noconfigdirs="$noconfigdirs ${libgcj}" @@ -703,8 +722,12 @@ case "${target}" in vax-*-*) noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}" ;; + xtensa-*-*) + noconfigdirs="$noconfigdirs ${libgcj}" + ;; ip2k-*-*) noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}" + noconfigdirs="$noconfigdirs target-demangler" ;; *-*-linux*) noconfigdirs="$noconfigdirs target-newlib target-libgloss" @@ -749,24 +772,24 @@ enable_languages=`echo "${enable_languag # First scan to see if an enabled language requires some other language. # We assume that a given config-lang.in will list all the language # front ends it requires, even if some are required indirectly. -for lang in ${srcdir}/gcc/*/config-lang.in .. -do - case $lang in +for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do + case ${lang_frag} in ..) ;; # The odd quoting in the next line works around # an apparent bug in bash 1.12 on linux. ${srcdir}/gcc/[[*]]/config-lang.in) ;; *) - lang_alias=`sed -n -e 's,^language=[['"'"'"'"]]\(.*\)[["'"'"'"']].*$,\1,p' -e 's,^language=\([[^ ]]*\).*$,\1,p' $lang` - this_lang_requires=`sed -n -e 's,^lang_requires=[['"'"'"'"]]\(.*\)[["'"'"'"']].*$,\1,p' -e 's,^lang_requires=\([[^ ]]*\).*$,\1,p' $lang` - for other in $this_lang_requires - do + # From the config-lang.in, get $language, $lang_requires + language= + lang_requires= + . ${lang_frag} + for other in ${lang_requires} ; do case ,${enable_languages}, in *,$other,*) ;; *,all,*) ;; - *,$lang_alias,*) - echo " \`$other' language required by \`$lang_alias'; enabling" 1>&2 - enable_languages="$enable_languages,$other" + *,$language,*) + echo " \`$other' language required by \`$language'; enabling" 1>&2 + enable_languages="${enable_languages},${other}" ;; esac done @@ -774,35 +797,44 @@ do esac done -subdirs= -for lang in ${srcdir}/gcc/*/config-lang.in .. -do - case $lang in +for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do + case ${lang_frag} in ..) ;; # The odd quoting in the next line works around # an apparent bug in bash 1.12 on linux. ${srcdir}/gcc/[[*]]/config-lang.in) ;; *) - lang_alias=`sed -n -e 's,^language=[['"'"'"'"]]\(.*\)[["'"'"'"']].*$,\1,p' -e 's,^language=\([[^ ]]*\).*$,\1,p' $lang` - this_lang_libs=`sed -n -e 's,^target_libs=[['"'"'"'"]]\(.*\)[["'"'"'"']].*$,\1,p' -e 's,^target_libs=\([[^ ]]*\).*$,\1,p' $lang` - this_lang_dirs=`sed -n -e 's,^lang_dirs=[['"'"'"'"]]\(.*\)[["'"'"'"']].*$,\1,p' -e 's,^lang_dirs=\([[^ ]]*\).*$,\1,p' $lang` - build_by_default=`sed -n -e 's,^build_by_default=[['"'"'"'"]]\(.*\)[["'"'"'"']].*$,\1,p' -e 's,^build_by_default=\([[^ ]]*\).*$,\1,p' $lang` - if test "x$lang_alias" = x - then - echo "$lang doesn't set \$language." 1>&2 + # From the config-lang.in, get $language, $target_libs, + # $lang_dirs, and $build_by_default + language= + target_libs= + lang_dirs= + build_by_default= + . ${lang_frag} + if test "x$language" = x ; then + echo "${lang_frag} doesn't set \$language." 1>&2 exit 1 fi - case ${build_by_default},${enable_languages}, in - *,$lang_alias,*) add_this_lang=yes ;; - no,*) add_this_lang=no ;; - *,all,*) add_this_lang=yes ;; + case ,${enable_languages}, in + *,${language},*) + # Language was explicitly selected; include it. + add_this_lang=yes + ;; + *,all,*) + # 'all' was selected; include 'default' languages. + case ${build_by_default} in + no) add_this_lang=no ;; + *) add_this_lang=yes ;; + esac + ;; *) add_this_lang=no ;; esac - if test x"${add_this_lang}" = xyes; then - eval target_libs='"$target_libs "'\"$this_lang_libs\" - else - eval noconfigdirs='"$noconfigdirs "'\"$this_lang_libs $this_lang_dirs\" - fi + case ${add_this_lang} in + no) + # Remove language-dependent dirs. + eval noconfigdirs='"$noconfigdirs "'\"$target_libs $lang_dirs\" + ;; + esac ;; esac done @@ -841,7 +873,7 @@ done 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 "$i" != "libiberty" && test "$i" != "demangler" ; then if test -r $srcdir/$i/configure ; then others=yes; break; @@ -1230,10 +1262,6 @@ fi # Default to using --with-stabs for certain targets. if test x${with_stabs} = x ; then case "${target}" in - mips*-*-irix6*o32) - with_stabs=yes; - extra_host_args="${extra_host_args} --with-stabs" - ;; mips*-*-irix6*) ;; mips*-*-* | alpha*-*-osf*) @@ -1655,7 +1683,8 @@ rm -f maybedep.tmp echo '# maybedep.tmp' > maybedep.tmp # Make-targets which may need maybe dependencies. -mts="configure all install check" +mts="configure all install check clean distclean dvi info install-info" +mts="${mts} installcheck mostlyclean maintainer-clean TAGS" # Loop over modules and make-targets. for module in ${build_modules} ; do @@ -1697,18 +1726,25 @@ AC_SUBST_FILE(maybe_dependencies) # Create the serialization dependencies. This uses a temporary file. AC_ARG_ENABLE([serial-configure], -[ --disable-serial-[{host,target,build}-]configure - Don't force sequential configuration of +[ --enable-serial-[{host,target,build}-]configure + Force sequential configuration of sub-packages for the host, target or build - machine, or of any sub-packages at all]) + machine, or all sub-packages]) + +case ${enable_serial_configure} in + yes) + enable_serial_build_configure=yes + enable_serial_host_configure=yes + enable_serial_target_configure=yes + ;; +esac # These force 'configure's to be done one at a time, to avoid problems # with contention over a shared config.cache. rm -f serdep.tmp echo '# serdep.tmp' > serdep.tmp olditem= -test "x${enable_serial_configure}" = xno || -test "x${enable_serial_build_configure}" = xno || +test "x${enable_serial_build_configure}" = xyes && for item in ${build_configdirs} ; do case ${olditem} in "") ;; @@ -1717,8 +1753,7 @@ for item in ${build_configdirs} ; do olditem=${item} done olditem= -test "x${enable_serial_configure}" = xno || -test "x${enable_serial_host_configure}" = xno || +test "x${enable_serial_host_configure}" = xyes && for item in ${configdirs} ; do case ${olditem} in "") ;; @@ -1727,8 +1762,7 @@ for item in ${configdirs} ; do olditem=${item} done olditem= -test "x${enable_serial_configure}" = xno || -test "x${enable_serial_target_configure}" = xno || +test "x${enable_serial_target_configure}" = xyes && for item in ${target_configdirs} ; do case ${olditem} in "") ;; @@ -1906,7 +1940,7 @@ fi GCJ_FOR_TARGET=$GCJ_FOR_TARGET' $(FLAGS_FOR_TARGET)' # Don't use libstdc++-v3's flags to configure/build itself. -libstdcxx_flags='`test ! -f $$r/$(TARGET_SUBDIR)/libstdc++-v3/testsuite_flags || $(SHELL) $$r/$(TARGET_SUBDIR)/libstdc++-v3/testsuite_flags --build-includes` -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs' +libstdcxx_flags='`test ! -f $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags || $(SHELL) $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags --build-includes` -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs' raw_libstdcxx_flags=' -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs' if test "x${CXX_FOR_TARGET+set}" = xset; then diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/cpu/ChangeLog binutils-2.14.90.0.5/cpu/ChangeLog --- binutils-2.14.90.0.4.1/cpu/ChangeLog 2003-05-05 14:46:47.000000000 -0700 +++ binutils-2.14.90.0.5/cpu/ChangeLog 2003-07-23 08:08:10.000000000 -0700 @@ -1,3 +1,55 @@ +2003-06-10 Doug Evans + + * frv.cpu: Add IDOC attribute. + +2003-06-06 Andrew Cagney + + Contributed by Red Hat. + * iq2000.cpu: New file. Written by Ben Elliston, Jeff Johnston, + Stan Cox, and Frank Ch. Eigler. + * iq2000.opc: New file. Written by Ben Elliston, Frank + Ch. Eigler, Chris Moller, Jeff Johnston, and Stan Cox. + * iq2000m.cpu: New file. Written by Jeff Johnston. + * iq10.cpu: New file. Written by Jeff Johnston. + +2003-06-05 Nick Clifton + + * frv.cpu (FRintieven): New operand. An even-numbered only + version of the FRinti operand. + (FRintjeven): Likewise for FRintj. + (FRintkeven): Likewise for FRintk. + (mdcutssi, media-dual-word-rotate-r-r, mqsaths, + media-quad-arith-sat-semantics, media-quad-arith-sat, + conditional-media-quad-arith-sat, mdunpackh, + media-quad-multiply-semantics, media-quad-multiply, + conditional-media-quad-multiply, media-quad-complex-i, + media-quad-multiply-acc-semantics, media-quad-multiply-acc, + conditional-media-quad-multiply-acc, munpackh, + media-quad-multiply-cross-acc-semantics, mdpackh, + media-quad-multiply-cross-acc, mbtoh-semantics, + media-quad-cross-multiply-cross-acc-semantics, + media-quad-cross-multiply-cross-acc, mbtoh, mhtob-semantics, + media-quad-cross-multiply-acc-semantics, cmbtoh, + media-quad-cross-multiply-acc, media-quad-complex, mhtob, + media-expand-halfword-to-double-semantics, mexpdhd, cmexpdhd, + cmhtob): Use new operands. + * frv.opc (CGEN_VERBOSE_ASSEMBLER_ERRORS): Define. + (parse_even_register): New function. + +2003-06-03 Nick Clifton + + * frv.cpu (media-dual-word-rotate-r-r): Use a signed 6-bit + immediate value not unsigned. + +2003-06-03 Andrew Cagney + + Contributed by Red Hat. + * frv.cpu: New file. Written by Dave Brolley, Catherine Moore, + and Eric Christopher. + * frv.opc: New file. Written by Catherine Moore, and Dave + Brolley. + * simplify.inc: New file. Written by Doug Evans. + 2003-05-02 Andrew Cagney * New file. diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/cpu/frv.cpu binutils-2.14.90.0.5/cpu/frv.cpu --- binutils-2.14.90.0.4.1/cpu/frv.cpu 1969-12-31 16:00:00.000000000 -0800 +++ binutils-2.14.90.0.5/cpu/frv.cpu 2003-07-23 08:08:10.000000000 -0700 @@ -0,0 +1,8195 @@ +; Fujitsu FRV opcode support, for GNU Binutils. -*- Scheme -*- +; +; Copyright 2000, 2001 Free Software Foundation, Inc. +; +; Contributed by Red Hat Inc; developed under contract from Fujitsu. +; +; This file is part of the GNU Binutils. +; +; This program is free software; you can redistribute it and/or modify +; it under the terms of the GNU General Public License as published by +; the Free Software Foundation; either version 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 "simplify.inc") + +; define-arch must appear first + +(define-arch + (name frv) ; name of cpu architecture + (comment "Fujitsu FRV") + (insn-lsb0? #t) + (machs frv fr500 fr400 tomcat simple) + (isas frv) +) + +(define-isa + (name frv) + (base-insn-bitsize 32) + ; Initial bitnumbers to decode insns by. + (decode-assist (24 23 22 21 20 19 18)) + (liw-insns 1) ; The frv fetches up to 1 insns at a time. + (parallel-insns 4) ; The frv executes up to 4 insns at a time. +) + +; Cpu family definitions. +; +(define-cpu + ; cpu names must be distinct from the architecture name and machine names. + ; The "b" suffix stands for "base" and is the convention. + ; The "f" suffix stands for "family" and is the convention. + (name frvbf) + (comment "Fujitsu FRV base family") + (endian big) + (word-bitsize 32) +) + +; Generic FR-V machine. Supports the entire architecture +(define-mach + (name frv) + (comment "Generic FRV cpu") + (cpu frvbf) +) +(define-model + (name frv) (comment "Generic FRV model") (attrs) + (mach frv) + + (pipeline all "" () ((fetch) (decode) (execute) (writeback))) + + ; `state' is a list of variables for recording model state + ; (state) + + (unit u-exec "Execution Unit" () + 1 1 ; issue done + () ; state + () ; inputs + () ; outputs + () ; profile action (default) + ) +) + +; FR500 machine. +(define-mach + (name fr500) + (comment "FR500 cpu") + (cpu frvbf) +) +(define-model + (name fr500) (comment "FR500 model") (attrs) + (mach fr500) + + (pipeline all "" () ((fetch) (decode) (execute) (writeback))) + + ; `state' is a list of variables for recording model state + (state + ; State items + ; These are all masks with each bit representing one register. + (prev-fpop DI) ; Previous use of FR register was floating point insn + (prev-media DI) ; Previous use of FR register was a media insn + (prev-cc-complex DI) ; Previous use of ICC register was not simple + (cur-fpop DI) ; Current use of FR register was floating point insn + (cur-media DI) ; Current use of FR register was a media insn + (cur-cc-complex DI) ; Current use of ICC register was not simple + ) + ; Basic unit for instructions with no latency penalties + (unit u-exec "Execution Unit" () + 1 1 ; issue done + () ; state + () ; inputs + () ; outputs + () ; profile action (default) + ) + ; Basic integer insn unit + (unit u-integer "Integer Unit" () + 1 1 ; issue done + () ; state + ((GRi INT -1) (GRj INT -1)) ; inputs + ((GRk INT -1) (ICCi_1 INT -1)) ; outputs + () ; profile action (default) + ) + ; Integer multiplication unit + (unit u-imul "Integer Multiplication Unit" () + 1 1 ; issue done + () ; state + ((GRi INT -1) (GRj INT -1)) ; inputs + ((GRdoublek INT -1) (ICCi_1 INT -1)) ; outputs + () ; profile action (default) + ) + ; Integer division unit + (unit u-idiv "Integer Division Unit" () + 1 1 ; issue done + () ; state + ((GRi INT -1) (GRj INT -1)) ; inputs + ((GRk INT -1) (ICCi_1 INT -1)) ; outputs + () ; profile action (default) + ) + ; Branch unit + (unit u-branch "Branch Unit" () + 1 1 ; issue done + () ; state + ((GRi INT -1) (GRj INT -1) + (ICCi_2 INT -1) (FCCi_2 INT -1)) ; inputs + ((pc)) ; outputs + () ; profile action (default) + ) + ; Trap unit + (unit u-trap "Trap Unit" () + 1 1 ; issue done + () ; state + ((GRi INT -1) (GRj INT -1) + (ICCi_2 INT -1) (FCCi_2 INT -1)) ; inputs + () ; outputs + () ; profile action (default) + ) + ; Condition code check unit + (unit u-check "Check Unit" () + 1 1 ; issue done + () ; state + ((ICCi_3 INT -1) (FCCi_3 INT -1)) ; inputs + () ; outputs + () ; profile action (default) + ) + ; GR set half unit + (unit u-set-hilo "GR Set Half" () + 1 1 ; issue done + () ; state + () ; inputs + ((GRkhi INT -1) (GRklo INT -1)) ; outputs + () ; profile action (default) + ) + ; GR load unit -- TODO doesn't handle quad + (unit u-gr-load "GR Load Unit" () + 1 1 ; issue done + () ; state + ((GRi INT -1) (GRj INT -1)) ; inputs + ((GRk INT -1) (GRdoublek INT -1)) ; outputs + () ; profile action (default) + ) + ; GR store unit -- TODO doesn't handle quad + (unit u-gr-store "GR Store Unit" () + 1 1 ; issue done + () ; state + ((GRi INT -1) (GRj INT -1) (GRk INT -1) (GRdoublek INT -1)) ; inputs + () ; outputs + () ; profile action (default) + ) + ; GR recovering store unit -- TODO doesn't handle quad + (unit u-gr-r-store "GR Recovering Store Unit" () + 1 1 ; issue done + () ; state + ((GRi INT -1) (GRj INT -1) (GRk INT -1) (GRdoublek INT -1)) ; inputs + () ; outputs + () ; profile action (default) + ) + ; FR load unit -- TODO doesn't handle quad + (unit u-fr-load "FR Load Unit" () + 1 1 ; issue done + () ; state + ((GRi INT -1) (GRj INT -1)) ; inputs + ((FRintk INT -1) (FRdoublek INT -1)) ; outputs + () ; profile action (default) + ) + ; FR store unit -- TODO doesn't handle quad + (unit u-fr-store "FR Store Unit" () + 1 1 ; issue done + () ; state + ((GRi INT -1) (GRj INT -1) (FRintk INT -1) (FRdoublek INT -1)) ; inputs + () ; outputs + () ; profile action (default) + ) + ; FR recovering store unit -- TODO doesn't handle quad + (unit u-fr-r-store "FR Recovering Store Unit" () + 1 1 ; issue done + () ; state + ((GRi INT -1) (GRj INT -1) (FRintk INT -1) (FRdoublek INT -1)) ; inputs + () ; outputs + () ; profile action (default) + ) + ; Swap unit + (unit u-swap "Swap Unit" () + 1 1 ; issue done + () ; state + ((GRi INT -1) (GRj INT -1)) ; inputs + ((GRk INT -1)) ; outputs + () ; profile action (default) + ) + ; FR Move to FR unit + (unit u-fr2fr "FR Move to FR Unit" () + 1 1 ; issue done + () ; state + ((FRi INT -1)) ; inputs + ((FRk INT -1)) ; outputs + () ; profile action (default) + ) + ; FR Move to GR unit + (unit u-fr2gr "FR Move to GR Unit" () + 1 1 ; issue done + () ; state + ((FRintk INT -1)) ; inputs + ((GRj INT -1)) ; outputs + () ; profile action (default) + ) + ; SPR Move to GR unit + (unit u-spr2gr "SPR Move to GR Unit" () + 1 1 ; issue done + () ; state + ((spr INT -1)) ; inputs + ((GRj INT -1)) ; outputs + () ; profile action (default) + ) + ; GR Move to FR unit + (unit u-gr2fr "GR Move to FR Unit" () + 1 1 ; issue done + () ; state + ((GRj INT -1)) ; inputs + ((FRintk INT -1)) ; outputs + () ; profile action (default) + ) + ; GR Move to SPR unit + (unit u-gr2spr "GR Move to SPR Unit" () + 1 1 ; issue done + () ; state + ((GRj INT -1)) ; inputs + ((spr INT -1)) ; outputs + () ; profile action (default) + ) + ; Float Arithmetic unit + (unit u-float-arith "Float Arithmetic unit" () + 1 1 ; issue done + () ; state + ((FRi INT -1) (FRj INT -1) ; inputs + (FRdoublei INT -1) (FRdoublej INT -1)) ; inputs + ((FRk INT -1) (FRdoublek INT -1)) ; outputs + () ; profile action (default) + ) + ; Float Dual Arithmetic unit + (unit u-float-dual-arith "Float Arithmetic unit" () + 1 1 ; issue done + () ; state + ((FRi INT -1) (FRj INT -1) ; inputs + (FRdoublei INT -1) (FRdoublej INT -1)) ; inputs + ((FRk INT -1) (FRdoublek INT -1)) ; outputs + () ; profile action (default) + ) + ; Float Div unit + (unit u-float-div "Float Div unit" () + 1 1 ; issue done + () ; state + ((FRi INT -1) (FRj INT -1)) ; inputs + ((FRk INT -1)) ; outputs + () ; profile action (default) + ) + ; Float Square Root unit + (unit u-float-sqrt "Float Square Root unit" () + 1 1 ; issue done + () ; state + ((FRj INT -1) (FRdoublej INT -1)) ; inputs + ((FRk INT -1) (FRdoublek INT -1)) ; outputs + () ; profile action (default) + ) + ; Float Dual Square Root unit + (unit u-float-dual-sqrt "Float Dual Square Root unit" () + 1 1 ; issue done + () ; state + ((FRj INT -1)) ; inputs + ((FRk INT -1)) ; outputs + () ; profile action (default) + ) + ; Float Compare unit + (unit u-float-compare "Float Compare unit" () + 1 1 ; issue done + () ; state + ((FRi INT -1) (FRj INT -1) + (FRdoublei INT -1) (FRdoublej INT -1)) ; inputs + ((FCCi_2 INT -1)) ; outputs + () ; profile action (default) + ) + ; Dual Float Compare unit + (unit u-float-dual-compare "Float Dual Compare unit" () + 1 1 ; issue done + () ; state + ((FRi INT -1) (FRj INT -1)) ; inputs + ((FCCi_2 INT -1)) ; outputs + () ; profile action (default) + ) + ; Float Conversion unit + (unit u-float-convert "Float Conversion unit" () + 1 1 ; issue done + () ; state + ((FRj INT -1) (FRintj INT -1) (FRdoublej INT -1)) ; inputs + ((FRk INT -1) (FRintk INT -1) (FRdoublek INT -1)) ; outputs + () ; profile action (default) + ) + ; Dual Float Conversion unit + (unit u-float-dual-convert "Float Dual Conversion unit" () + 1 1 ; issue done + () ; state + ((FRj INT -1) (FRintj INT -1)) ; inputs + ((FRk INT -1) (FRintk INT -1)) ; outputs + () ; profile action (default) + ) + ; Media unit + (unit u-media "Media unit" () + 1 1 ; issue done + () ; state + ((FRinti INT -1) (FRintj INT -1) (ACC40Si INT -1) (ACCGi INT -1)) ; inputs + ((FRintk INT -1) (ACC40Sk INT -1) (ACC40Uk INT -1) (ACCGk INT -1)) ; outputs + () ; profile action (default) + ) + ; Media Quad Arithmetic unit + (unit u-media-quad-arith "Media Quad Arithmetic unit" () + 1 1 ; issue done + () ; state + ((FRinti INT -1) (FRintj INT -1)) ; inputs + ((FRintk INT -1)) ; outputs + () ; profile action (default) + ) + ; Media Dual Multiplication unit + (unit u-media-dual-mul "Media Dual Multiplication unit" () + 1 1 ; issue done + () ; state + ((FRinti INT -1) (FRintj INT -1)) ; inputs + ((ACC40Sk INT -1) (ACC40Uk INT -1)) ; outputs + () ; profile action (default) + ) + ; Media Quad Multiplication unit + (unit u-media-quad-mul "Media Quad Multiplication unit" () + 1 1 ; issue done + () ; state + ((FRinti INT -1) (FRintj INT -1)) ; inputs + ((ACC40Sk INT -1) (ACC40Uk INT -1)) ; outputs + () ; profile action (default) + ) + ; Media Quad Complex unit + (unit u-media-quad-complex "Media Quad Complex unit" () + 1 1 ; issue done + () ; state + ((FRinti INT -1) (FRintj INT -1)) ; inputs + ((ACC40Sk INT -1)) ; outputs + () ; profile action (default) + ) + ; Media Dual Expand unit + (unit u-media-dual-expand "Media Dual Expand unit" () + 1 1 ; issue done + () ; state + ((FRinti INT -1)) ; inputs + ((FRintk INT -1)) ; outputs + () ; profile action (default) + ) + ; Media Dual Unpack unit + (unit u-media-dual-unpack "Media Dual Unpack unit" () + 1 1 ; issue done + () ; state + ((FRinti INT -1)) ; inputs + ((FRintk INT -1)) ; outputs + () ; profile action (default) + ) + ; Media Dual byte to half unit + (unit u-media-dual-btoh "Media Byte to byte" () + 1 1 ; issue done + () ; state + ((FRintj INT -1)) ; inputs + ((FRintk INT -1)) ; outputs + () ; profile action (default) + ) + ; Media Dual half to byte unit + (unit u-media-dual-htob "Media Half to byte" () + 1 1 ; issue done + () ; state + ((FRintj INT -1)) ; inputs + ((FRintk INT -1)) ; outputs + () ; profile action (default) + ) + ; Media Dual byte to half unit extended + (unit u-media-dual-btohe "Media Byte to byte extended" () + 1 1 ; issue done + () ; state + ((FRintj INT -1)) ; inputs + ((FRintk INT -1)) ; outputs + () ; profile action (default) + ) + ; Barrier unit + (unit u-barrier "Barrier unit" () + 1 1 ; issue done + () ; state + () ; inputs + () ; outputs + () ; profile action (default) + ) + ; Memory Barrier unit + (unit u-membar "Memory Barrier unit" () + 1 1 ; issue done + () ; state + () ; inputs + () ; outputs + () ; profile action (default) + ) + ; Insn cache invalidate unit + (unit u-ici "Insn cache invalidate unit" () + 1 1 ; issue done + () ; state + ((GRi INT -1) (GRj INT -1)) ; inputs + () ; outputs + () ; profile action (default) + ) + ; Data cache invalidate unit + (unit u-dci "Data cache invalidate unit" () + 1 1 ; issue done + () ; state + ((GRi INT -1) (GRj INT -1)) ; inputs + () ; outputs + () ; profile action (default) + ) + ; Data cache flush unit + (unit u-dcf "Data cache flush unit" () + 1 1 ; issue done + () ; state + ((GRi INT -1) (GRj INT -1)) ; inputs + () ; outputs + () ; profile action (default) + ) + ; Insn cache preload unit + (unit u-icpl "Insn cache preload unit" () + 1 1 ; issue done + () ; state + ((GRi INT -1) (GRj INT -1)) ; inputs + () ; outputs + () ; profile action (default) + ) + ; Data cache preload unit + (unit u-dcpl "Data cache preload unit" () + 1 1 ; issue done + () ; state + ((GRi INT -1) (GRj INT -1)) ; inputs + () ; outputs + () ; profile action (default) + ) + ; Insn cache unlock unit + (unit u-icul "Insn cache unlock unit" () + 1 1 ; issue done + () ; state + ((GRi INT -1) (GRj INT -1)) ; inputs + () ; outputs + () ; profile action (default) + ) + ; Data cache unlock unit + (unit u-dcul "Data cache unlock unit" () + 1 1 ; issue done + () ; state + ((GRi INT -1) (GRj INT -1)) ; inputs + () ; outputs + () ; profile action (default) + ) +) + +; Tomcat machine. Early version of fr500 machine +(define-mach + (name tomcat) + (comment "Tomcat -- early version of fr500") + (cpu frvbf) +) +(define-model + (name tomcat) (comment "Tomcat model") (attrs) + (mach tomcat) + + (pipeline all "" () ((fetch) (decode) (execute) (writeback))) + + ; `state' is a list of variables for recording model state + ; (state) + + (unit u-exec "Execution Unit" () + 1 1 ; issue done + () ; state + () ; inputs + () ; outputs + () ; profile action (default) + ) +) + +; FR400 machine +(define-mach + (name fr400) + (comment "FR400 cpu") + (cpu frvbf) +) +(define-model + (name fr400) (comment "FR400 model") (attrs) + (mach fr400) + (pipeline all "" () ((fetch) (decode) (execute) (writeback))) + ; `state' is a list of variables for recording model state + (state + ; State items + ; These are all masks with each bit representing one register. + (prev-fp-load DI) ; Previous use of FR register was floating point load + (prev-fr-p4 DI) ; Previous use of FR register was media unit 4 + (prev-fr-p6 DI) ; Previous use of FR register was media unit 6 + (prev-acc-p2 DI) ; Previous use of ACC register was media unit 2 + (prev-acc-p4 DI) ; Previous use of ACC register was media unit 4 + (cur-fp-load DI) ; Current use of FR register is floating point load + (cur-fr-p4 DI) ; Current use of FR register is media unit 4 + (cur-fr-p6 DI) ; Current use of FR register is media unit 6 + (cur-acc-p2 DI) ; Current use of ACC register is media unit 2 + (cur-acc-p4 DI) ; Current use of ACC register is media unit 4 + ) + (unit u-exec "Execution Unit" () + 1 1 ; issue done + () ; state + () ; inputs + () ; outputs + () ; profile action (default) + ) + ; Basic integer insn unit + (unit u-integer "Integer Unit" () + 1 1 ; issue done + () ; state + ((GRi INT -1) (GRj INT -1)) ; inputs + ((GRk INT -1) (ICCi_1 INT -1)) ; outputs + () ; profile action (default) + ) + ; Integer multiplication unit + (unit u-imul "Integer Multiplication Unit" () + 1 1 ; issue done + () ; state + ((GRi INT -1) (GRj INT -1)) ; inputs + ((GRdoublek INT -1) (ICCi_1 INT -1)) ; outputs + () ; profile action (default) + ) + ; Integer division unit + (unit u-idiv "Integer Division Unit" () + 1 1 ; issue done + () ; state + ((GRi INT -1) (GRj INT -1)) ; inputs + ((GRk INT -1) (ICCi_1 INT -1)) ; outputs + () ; profile action (default) + ) + ; Branch unit + (unit u-branch "Branch Unit" () + 1 1 ; issue done + () ; state + ((GRi INT -1) (GRj INT -1) + (ICCi_2 INT -1) (FCCi_2 INT -1)) ; inputs + ((pc)) ; outputs + () ; profile action (default) + ) + ; Trap unit + (unit u-trap "Trap Unit" () + 1 1 ; issue done + () ; state + ((GRi INT -1) (GRj INT -1) + (ICCi_2 INT -1) (FCCi_2 INT -1)) ; inputs + () ; outputs + () ; profile action (default) + ) + ; Condition code check unit + (unit u-check "Check Unit" () + 1 1 ; issue done + () ; state + ((ICCi_3 INT -1) (FCCi_3 INT -1)) ; inputs + () ; outputs + () ; profile action (default) + ) + ; GR set half unit + (unit u-set-hilo "GR Set Half" () + 1 1 ; issue done + () ; state + () ; inputs + ((GRkhi INT -1) (GRklo INT -1)) ; outputs + () ; profile action (default) + ) + ; GR load unit -- TODO doesn't handle quad + (unit u-gr-load "GR Load Unit" () + 1 1 ; issue done + () ; state + ((GRi INT -1) (GRj INT -1)) ; inputs + ((GRk INT -1) (GRdoublek INT -1)) ; outputs + () ; profile action (default) + ) + ; GR store unit -- TODO doesn't handle quad + (unit u-gr-store "GR Store Unit" () + 1 1 ; issue done + () ; state + ((GRi INT -1) (GRj INT -1) (GRk INT -1) (GRdoublek INT -1)) ; inputs + () ; outputs + () ; profile action (default) + ) + ; FR load unit -- TODO doesn't handle quad + (unit u-fr-load "FR Load Unit" () + 1 1 ; issue done + () ; state + ((GRi INT -1) (GRj INT -1)) ; inputs + ((FRintk INT -1) (FRdoublek INT -1)) ; outputs + () ; profile action (default) + ) + ; FR store unit -- TODO doesn't handle quad + (unit u-fr-store "FR Store Unit" () + 1 1 ; issue done + () ; state + ((GRi INT -1) (GRj INT -1) (FRintk INT -1) (FRdoublek INT -1)) ; inputs + () ; outputs + () ; profile action (default) + ) + ; Swap unit + (unit u-swap "Swap Unit" () + 1 1 ; issue done + () ; state + ((GRi INT -1) (GRj INT -1)) ; inputs + ((GRk INT -1)) ; outputs + () ; profile action (default) + ) + ; FR Move to GR unit + (unit u-fr2gr "FR Move to GR Unit" () + 1 1 ; issue done + () ; state + ((FRintk INT -1)) ; inputs + ((GRj INT -1)) ; outputs + () ; profile action (default) + ) + ; SPR Move to GR unit + (unit u-spr2gr "SPR Move to GR Unit" () + 1 1 ; issue done + () ; state + ((spr INT -1)) ; inputs + ((GRj INT -1)) ; outputs + () ; profile action (default) + ) + ; GR Move to FR unit + (unit u-gr2fr "GR Move to FR Unit" () + 1 1 ; issue done + () ; state + ((GRj INT -1)) ; inputs + ((FRintk INT -1)) ; outputs + () ; profile action (default) + ) + ; GR Move to SPR unit + (unit u-gr2spr "GR Move to SPR Unit" () + 1 1 ; issue done + () ; state + ((GRj INT -1)) ; inputs + ((spr INT -1)) ; outputs + () ; profile action (default) + ) + ; Media unit M1 -- see table 13-8 in the fr400 LSI + (unit u-media-1 "Media-1 unit" () + 1 1 ; issue done + () ; state + ((FRinti INT -1) (FRintj INT -1)) ; inputs + ((FRintk INT -1)) ; outputs + () ; profile action (default) + ) + (unit u-media-1-quad "Media-1-quad unit" () + 1 1 ; issue done + () ; state + ((FRinti INT -1) (FRintj INT -1)) ; inputs + ((FRintk INT -1)) ; outputs + () ; profile action (default) + ) + (unit u-media-hilo "Media-hilo unit -- a variation of the Media-1 unit" () + 1 1 ; issue done + () ; state + () ; inputs + ((FRkhi INT -1) (FRklo INT -1)) ; outputs + () ; profile action (default) + ) + ; Media unit M2 -- see table 13-8 in the fr400 LSI + (unit u-media-2 "Media-2 unit" () + 1 1 ; issue done + () ; state + ((FRinti INT -1) (FRintj INT -1)) ; inputs + ((ACC40Sk INT -1) (ACC40Uk INT -1)) ; outputs + () ; profile action (default) + ) + (unit u-media-2-quad "Media-2-quad unit" () + 1 1 ; issue done + () ; state + ((FRinti INT -1) (FRintj INT -1)) ; inputs + ((ACC40Sk INT -1) (ACC40Uk INT -1)) ; outputs + () ; profile action (default) + ) + (unit u-media-2-acc "Media-2-acc unit" () + 1 1 ; issue done + () ; state + ((ACC40Si INT -1)) ; inputs + ((ACC40Sk INT -1)) ; outputs + () ; profile action (default) + ) + (unit u-media-2-acc-dual "Media-2-acc-dual unit" () + 1 1 ; issue done + () ; state + ((ACC40Si INT -1)) ; inputs + ((ACC40Sk INT -1)) ; outputs + () ; profile action (default) + ) + (unit u-media-2-add-sub "Media-2-add-sub unit" () + 1 1 ; issue done + () ; state + ((ACC40Si INT -1)) ; inputs + ((ACC40Sk INT -1)) ; outputs + () ; profile action (default) + ) + (unit u-media-2-add-sub-dual "Media-2-add-sub-dual unit" () + 1 1 ; issue done + () ; state + ((ACC40Si INT -1)) ; inputs + ((ACC40Sk INT -1)) ; outputs + () ; profile action (default) + ) + ; Media unit M3 -- see table 13-8 in the fr400 LSI + (unit u-media-3 "Media-3 unit" () + 1 1 ; issue done + () ; state + ((FRinti INT -1) (FRintj INT -1)) ; inputs + ((FRintk INT -1)) ; outputs + () ; profile action (default) + ) + (unit u-media-3-dual "Media-3-dual unit" () + 1 1 ; issue done + () ; state + ((FRinti INT -1)) ; inputs + ((FRintk INT -1)) ; outputs + () ; profile action (default) + ) + (unit u-media-3-quad "Media-3-quad unit" () + 1 1 ; issue done + () ; state + ((FRinti INT -1) (FRintj INT -1)) ; inputs + ((FRintk INT -1)) ; outputs + () ; profile action (default) + ) + ; Media unit M4 -- see table 13-8 in the fr400 LSI + (unit u-media-4 "Media-4 unit" () + 1 1 ; issue done + () ; state + ((ACC40Si INT -1) (FRintj INT -1)) ; inputs + ((ACC40Sk INT -1) (FRintk INT -1)) ; outputs + () ; profile action (default) + ) + (unit u-media-4-accg "Media-4-accg unit" () + 1 1 ; issue done + () ; state + ((ACCGi INT -1) (FRinti INT -1)) ; inputs + ((ACCGk INT -1) (FRintk INT -1)) ; outputs + () ; profile action (default) + ) + (unit u-media-4-acc-dual "Media-4-acc-dual unit" () + 1 1 ; issue done + () ; state + ((ACC40Si INT -1)) ; inputs + ((FRintk INT -1)) ; outputs + () ; profile action (default) + ) + ; Media unit M6 -- see table 13-8 in the fr400 LSI + (unit u-media-6 "Media-6 unit" () + 1 1 ; issue done + () ; state + ((FRinti INT -1)) ; inputs + ((FRintk INT -1)) ; outputs + () ; profile action (default) + ) + ; Media unit M7 -- see table 13-8 in the fr400 LSI + (unit u-media-7 "Media-1 unit" () + 1 1 ; issue done + () ; state + ((FRinti INT -1) (FRintj INT -1)) ; inputs + ((FCCk INT -1)) ; outputs + () ; profile action (default) + ) + ; Media Dual Expand unit + (unit u-media-dual-expand "Media Dual Expand unit" () + 1 1 ; issue done + () ; state + ((FRinti INT -1)) ; inputs + ((FRintk INT -1)) ; outputs + () ; profile action (default) + ) + ; Media Dual half to byte unit + (unit u-media-dual-htob "Media Half to byte" () + 1 1 ; issue done + () ; state + ((FRintj INT -1)) ; inputs + ((FRintk INT -1)) ; outputs + () ; profile action (default) + ) + ; Barrier unit + (unit u-barrier "Barrier unit" () + 1 1 ; issue done + () ; state + () ; inputs + () ; outputs + () ; profile action (default) + ) + ; Memory Barrier unit + (unit u-membar "Memory Barrier unit" () + 1 1 ; issue done + () ; state + () ; inputs + () ; outputs + () ; profile action (default) + ) + ; Insn cache invalidate unit + (unit u-ici "Insn cache invalidate unit" () + 1 1 ; issue done + () ; state + ((GRi INT -1) (GRj INT -1)) ; inputs + () ; outputs + () ; profile action (default) + ) + ; Data cache invalidate unit + (unit u-dci "Data cache invalidate unit" () + 1 1 ; issue done + () ; state + ((GRi INT -1) (GRj INT -1)) ; inputs + () ; outputs + () ; profile action (default) + ) + ; Data cache flush unit + (unit u-dcf "Data cache flush unit" () + 1 1 ; issue done + () ; state + ((GRi INT -1) (GRj INT -1)) ; inputs + () ; outputs + () ; profile action (default) + ) + ; Insn cache preload unit + (unit u-icpl "Insn cache preload unit" () + 1 1 ; issue done + () ; state + ((GRi INT -1) (GRj INT -1)) ; inputs + () ; outputs + () ; profile action (default) + ) + ; Data cache preload unit + (unit u-dcpl "Data cache preload unit" () + 1 1 ; issue done + () ; state + ((GRi INT -1) (GRj INT -1)) ; inputs + () ; outputs + () ; profile action (default) + ) + ; Insn cache unlock unit + (unit u-icul "Insn cache unlock unit" () + 1 1 ; issue done + () ; state + ((GRi INT -1) (GRj INT -1)) ; inputs + () ; outputs + () ; profile action (default) + ) + ; Data cache unlock unit + (unit u-dcul "Data cache unlock unit" () + 1 1 ; issue done + () ; state + ((GRi INT -1) (GRj INT -1)) ; inputs + () ; outputs + () ; profile action (default) + ) +) + +; Simple machine - single issue integer machine +(define-mach + (name simple) + (comment "Simple single issue integer cpu") + (cpu frvbf) +) +(define-model + (name simple) (comment "Simple model") (attrs) + (mach simple) + (pipeline all "" () ((fetch) (decode) (execute) (writeback))) + ; `state' is a list of variables for recording model state + (state) + (unit u-exec "Execution Unit" () + 1 1 ; issue done + () ; state + () ; inputs + () ; outputs + () ; profile action (default) + ) +) + +; The instruction fetch/execute cycle. +; +; This is how to fetch and decode an instruction. +; Leave it out for now + +; (define-extract (const SI 0)) + +; This is how to execute a decoded instruction. +; Leave it out for now + +; (define-execute (const SI 0)) + +; An attribute to describe which unit an insn runs in. +(define-attr + (for insn) + (type enum) + (name UNIT) + (comment "parallel execution pipeline selection") + ; The order of declaration is significant. Keep variations on the same unit + ; together and keep the '01' variation last within each unit. + (values NIL + I0 I1 I01 + FM0 FM1 FM01 + B0 B1 B01 + C + MULT-DIV ; multiply/division slotted differently on different machines + LOAD ; loads slotted differently on different machines + NUM_UNITS + ) +) +; Attributes to describe major categories of insns +(define-attr + (for insn) + (type enum) + (name FR400-MAJOR) + (comment "fr400 major insn categories") + ; The order of declaration is significant. Keep variations on the same major + ; together. + (values NONE + I-1 I-2 I-3 I-4 I-5 + B-1 B-2 B-3 B-4 B-5 B-6 + C-1 C-2 + M-1 M-2 + ) +) +(define-attr + (for insn) + (type enum) + (name FR500-MAJOR) + (comment "fr500 major insn categories") + ; The order of declaration is significant. Keep variations on the same major + ; together. + (values NONE + I-1 I-2 I-3 I-4 I-5 I-6 + B-1 B-2 B-3 B-4 B-5 B-6 + C-1 C-2 + F-1 F-2 F-3 F-4 F-5 F-6 F-7 F-8 + M-1 M-2 M-3 M-4 M-5 M-6 M-7 M-8 + ) +) +; Privileged insn +(define-attr + (for insn) + (type boolean) + (name PRIVILEGED) + (comment "insn only allowed in supervisor mode") +) +; Non-Excepting insn +(define-attr + (for insn) + (type boolean) + (name NON-EXCEPTING) + (comment "non-excepting insn") +) +; Conditional insn +(define-attr + (for insn) + (type boolean) + (name CONDITIONAL) + (comment "conditional insn") +) +; insn accesses FR registers +(define-attr + (for insn) + (type boolean) + (name FR-ACCESS) + (comment "insn accesses FR registers") +) +; insn preserves MSR.OVF +(define-attr + (for insn) + (type boolean) + (name PRESERVE-OVF) + (comment "Preserve value of MSR.OVF") +) +; null attribute -- used as a place holder for where an attribue it required. +(define-attr + (for insn) + (type boolean) + (name NA) + (comment "placeholder attribute") + (attrs META) ; do not define in any generated file for now +) + +; IDOC attribute for instruction documentation. + +(define-attr + (for insn) + (type enum) + (name IDOC) + (comment "insn kind for documentation") + (attrs META) + (values + (MEM - () "Memory") + (ALU - () "ALU") + (FPU - () "FPU") + (BR - () "Branch") + (PRIV - () "Priviledged") + (MISC - () "Miscellaneous") + ) +) + +; Instruction fields. +; +; Attributes: +; PCREL-ADDR: pc relative value (for reloc and disassembly purposes) +; ABS-ADDR: absolute address (for reloc and disassembly purposes?) +; RESERVED: bits are not used to decode insn, must be all 0 +(dnf f-pack "packing bit" () 31 1) +(dnf f-op "primary opcode" () 24 7) +(dnf f-ope1 "extended opcode" () 11 6) +(dnf f-ope2 "extended opcode" () 9 4) +(dnf f-ope3 "extended opcode" () 15 3) +(dnf f-ope4 "extended opcode" () 7 2) + +(dnf f-GRi "source register 1" () 17 6) +(dnf f-GRj "source register 2" () 5 6) +(dnf f-GRk "destination register" () 30 6) + +(dnf f-FRi "source register 1" () 17 6) +(dnf f-FRj "source register 2" () 5 6) +(dnf f-FRk "destination register" () 30 6) + +(dnf f-CPRi "source register 1" () 17 6) +(dnf f-CPRj "source register 2" () 5 6) +(dnf f-CPRk "destination register" () 30 6) + +(dnf f-ACCGi "source register" () 17 6) +(dnf f-ACCGk "destination register" () 30 6) + +(dnf f-ACC40Si "40 bit signed accumulator" () 17 6) +(dnf f-ACC40Ui "40 bit unsigned accumulator" () 17 6) +(dnf f-ACC40Sk "40 bit accumulator" () 30 6) +(dnf f-ACC40Uk "40 bit accumulator" () 30 6) + +(dnf f-CRi "source register" () 14 3) +(dnf f-CRj "source register" () 2 3) +(dnf f-CRk "destination register" () 27 3) +(dnf f-CCi "condition register" () 11 3) + +(df f-CRj_int "target cr for ck insns" () 26 2 UINT + ((value pc) (sub WI value 4)) + ((value pc) (add WI value 4)) +) +(dnf f-CRj_float "target cr for fck insns" () 26 2) + +(dnf f-ICCi_1 "condition register" () 11 2) +(dnf f-ICCi_2 "condition register" () 26 2) +(dnf f-ICCi_3 "condition register" () 1 2) +(dnf f-FCCi_1 "condition register" () 11 2) +(dnf f-FCCi_2 "condition register" () 26 2) +(dnf f-FCCi_3 "condition register" () 1 2) +(dnf f-FCCk "condition register" () 26 2) +(dnf f-eir "exception insn register" () 17 6) + +(df f-s10 "10 bit sign extended" () 9 10 INT #f #f) +(df f-s12 "12 bit sign extended" () 11 12 INT #f #f) +(df f-d12 "12 bit sign extended" () 11 12 INT #f #f) +(df f-u16 "16 bit unsigned" () 15 16 UINT #f #f) +(df f-s16 "16 bit sign extended" () 15 16 INT #f #f) +(df f-s6 "6 bit signed" () 5 6 INT #f #f) +(df f-s6_1 "6 bit signed" () 11 6 INT #f #f) +(df f-u6 "6 bit unsigned" () 5 6 UINT #f #f) +(df f-s5 "5 bit signed" () 4 5 INT #f #f) + +(df f-u12-h "upper 6 bits of u12" () 17 6 INT #f #f) +(df f-u12-l "lower 6 bits of u12" () 5 6 UINT #f #f) +(dnmf f-u12 "12 bit signed immediate" () INT + (f-u12-h f-u12-l) + (sequence () ; insert + (set (ifield f-u12-h) (sra SI (ifield f-u12) 6)) + (set (ifield f-u12-l) (and (ifield f-u12) #x3f)) + ) + (sequence () ; extract + (set (ifield f-u12) (or (sll (ifield f-u12-h) 6) + (ifield f-u12-l))) + ) +) + +(dnf f-int-cc "integer branch conditions" () 30 4) +(dnf f-flt-cc "floating branch conditions" () 30 4) +(df f-cond "conditional arithmetic" () 8 1 UINT #f #f) +(df f-ccond "lr branch condition" () 12 1 UINT #f #f) +(df f-hint "2 bit branch prediction hint" () 17 2 UINT #f #f) +(df f-LI "link indicator" () 25 1 UINT #f #f) +(df f-lock "cache lock indicator" () 25 1 UINT #f #f) +(df f-debug "debug mode indicator" () 25 1 UINT #f #f) +(df f-A "all accumulator bit" () 17 1 UINT #f #f) +(df f-ae "cache all entries indicator" () 25 1 UINT #f #f) + +(dnf f-spr-h "upper 6 bits of spr" () 30 6) +(dnf f-spr-l "lower 6 bits of spr" () 17 6) +(dnmf f-spr "special purpose register" () UINT + (f-spr-h f-spr-l) + (sequence () ; insert + (set (ifield f-spr-h) (srl (ifield f-spr) (const 6))) + (set (ifield f-spr-l) (and (ifield f-spr) (const #x3f))) + ) + (sequence () ; extract + (set (ifield f-spr) (or (sll (ifield f-spr-h) (const 6)) + (ifield f-spr-l))) + ) +) + +(df f-label16 "18 bit pc relative signed offset" (PCREL-ADDR) 15 16 INT + ((value pc) (sra WI (sub WI value pc) (const 2))) + ((value pc) (add WI (sll WI value (const 2)) pc)) +) + +(df f-labelH6 "upper 6 bits of label24" () 30 6 INT #f #f) +(dnf f-labelL18 "lower 18 bits of label24" () 17 18) +(dnmf f-label24 "26 bit signed offset" (PCREL-ADDR) INT + (f-labelH6 f-labelL18) + ; insert + (sequence () + (set (ifield f-labelH6) + (sra WI (sub (ifield f-label24) pc) (const 20))) + (set (ifield f-labelL18) + (and (srl (sub (ifield f-label24) pc) (const 2)) + (const #x3ffff))) + ) + ; extract + (sequence () + (set (ifield f-label24) + (add (sll (or (sll (ifield f-labelH6) (const 18)) + (ifield f-labelL18)) + (const 2)) + pc))) +) + +(dnf f-ICCi_1-null "null field" (RESERVED) 11 2) +(dnf f-ICCi_2-null "null field" (RESERVED) 26 2) +(dnf f-ICCi_3-null "null field" (RESERVED) 1 2) +(dnf f-FCCi_1-null "null field" (RESERVED) 11 2) +(dnf f-FCCi_2-null "null field" (RESERVED) 26 2) +(dnf f-FCCi_3-null "null field" (RESERVED) 1 2) +(dnf f-rs-null "null field" (RESERVED) 17 6) +(dnf f-GRi-null "null field" (RESERVED) 17 6) +(dnf f-GRj-null "null field" (RESERVED) 5 6) +(dnf f-GRk-null "null field" (RESERVED) 30 6) +(dnf f-FRi-null "null field" (RESERVED) 17 6) +(dnf f-FRj-null "null field" (RESERVED) 5 6) +(dnf f-ACCj-null "null field" (RESERVED) 5 6) +(dnf f-rd-null "null field" (RESERVED) 30 6) +(dnf f-cond-null "null field" (RESERVED) 30 4) +(dnf f-ccond-null "null field" (RESERVED) 12 1) +(dnf f-s12-null "null field" (RESERVED) 11 12) +(dnf f-label16-null "null field" (RESERVED) 15 16) +(dnf f-misc-null-1 "null field" (RESERVED) 30 5) +(dnf f-misc-null-2 "null field" (RESERVED) 11 6) +(dnf f-misc-null-3 "null field" (RESERVED) 11 4) +(dnf f-misc-null-4 "null field" (RESERVED) 17 2) +(dnf f-misc-null-5 "null field" (RESERVED) 17 16) +(dnf f-misc-null-6 "null field" (RESERVED) 30 3) +(dnf f-misc-null-7 "null field" (RESERVED) 17 3) +(dnf f-misc-null-8 "null field" (RESERVED) 5 3) +(dnf f-misc-null-9 "null field" (RESERVED) 5 4) +(dnf f-misc-null-10 "null field" (RESERVED) 16 5) +(dnf f-misc-null-11 "null field" (RESERVED) 5 1) + +(dnf f-LI-off "null field" (RESERVED) 25 1) +(dnf f-LI-on "null field" (RESERVED) 25 1) + +; Enums. + +; insn-op: +; FIXME: should use die macro or some such +(define-normal-insn-enum insn-op "insn op enums" () OP_ f-op + ( + "00" "01" "02" "03" "04" "05" "06" "07" "08" "09" "0A" "0B" "0C" "0D" "0E" "0F" + "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" "1A" "1B" "1C" "1D" "1E" "1F" + "20" "21" "22" "23" "24" "25" "26" "27" "28" "29" "2A" "2B" "2C" "2D" "2E" "2F" + "30" "31" "32" "33" "34" "35" "36" "37" "38" "39" "3A" "3B" "3C" "3D" "3E" "3F" + "40" "41" "42" "43" "44" "45" "46" "47" "48" "49" "4A" "4B" "4C" "4D" "4E" "4F" + "50" "51" "52" "53" "54" "55" "56" "57" "58" "59" "5A" "5B" "5C" "5D" "5E" "5F" + "60" "61" "62" "63" "64" "65" "66" "67" "68" "69" "6A" "6B" "6C" "6D" "6E" "6F" + "70" "71" "72" "73" "74" "75" "76" "77" "78" "79" "7A" "7B" "7C" "7D" "7E" "7F" + ) +) + +(define-normal-insn-enum insn-ope1 "insn ope enums" () OPE1_ f-ope1 + ( + "00" "01" "02" "03" "04" "05" "06" "07" "08" "09" "0A" "0B" "0C" "0D" "0E" "0F" + "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" "1A" "1B" "1C" "1D" "1E" "1F" + "20" "21" "22" "23" "24" "25" "26" "27" "28" "29" "2A" "2B" "2C" "2D" "2E" "2F" + "30" "31" "32" "33" "34" "35" "36" "37" "38" "39" "3A" "3B" "3C" "3D" "3E" "3F" + ) +) + +(define-normal-insn-enum insn-ope2 "insn ope enums" () OPE2_ f-ope2 + ( + "00" "01" "02" "03" "04" "05" "06" "07" "08" "09" "0A" "0B" "0C" "0D" "0E" "0F" + ) +) + +(define-normal-insn-enum insn-ope3 "insn ope enums" () OPE3_ f-ope3 + ( + "00" "01" "02" "03" "04" "05" "06" "07" + ) +) + +(define-normal-insn-enum insn-ope4 "insn ope enums" () OPE4_ f-ope4 + ( + "0" "1" "2" "3" + ) +) + +; int-cc: integer branch conditions +; FIXME: should use die macro or some such +(define-normal-insn-enum int-cc "integer branch cond enums" () ICC_ f-int-cc + ( + "nev" "c" "v" "lt" "eq" "ls" "n" "le" + "ra" "nc" "nv" "ge" "ne" "hi" "p" "gt" + ) +) + +; flt-cc: floating-point/media branch conditions +; FIXME: should use die macro or some such +(define-normal-insn-enum flt-cc "float branch cond enums" () FCC_ f-flt-cc + ("nev" "u" "gt" "ug" "lt" "ul" "lg" "ne" + "eq" "ue" "ge" "uge" "le" "ule" "o" "ra") +) + +; Hardware pieces. +; These entries list the elements of the raw hardware. +; They're also used to provide tables and other elements of the assembly +; language. +(dnh h-pc "program counter" (PC PROFILE) (pc) () () ()) + +; The PSR. The individual fields are referenced more than the entire +; register, so reference them directly. We can assemble the +; entire register contents when necessary. +; +(dsh h-psr_imple "PSR.IMPLE" () (register UQI)) +(dsh h-psr_ver "PSR.VER" () (register UQI)) +(dsh h-psr_ice "PSR.ICE bit" () (register BI)) +(dsh h-psr_nem "PSR.NEM bit" () (register BI)) +(dsh h-psr_cm "PSR.CM bit" () (register BI)) +(dsh h-psr_be "PSR.BE bit" () (register BI)) +(dsh h-psr_esr "PSR.ESR bit" () (register BI)) +(dsh h-psr_ef "PSR.EF bit" () (register BI)) +(dsh h-psr_em "PSR.EM bit" () (register BI)) +(dsh h-psr_pil "PSR.PIL " () (register UQI)) +(dsh h-psr_ps "PSR.PS bit" () (register BI)) +(dsh h-psr_et "PSR.ET bit" () (register BI)) + +; PSR.S requires special handling because the shadow registers (SR0-SR4) must +; be switched with GR4-GR7 when changing from user to supervisor mode or +; vice-versa. +(define-hardware + (name h-psr_s) + (comment "PSR.S bit") + (attrs) + (type register BI) + (get) + (set (newval) (c-call VOID "@cpu@_h_psr_s_set_handler" newval)) +) + +; The TBR. The individual bits are referenced more than the entire +; register, so reference them directly. We can assemble the +; entire register contents when necessary. +; +(dsh h-tbr_tba "TBR.TBA" () (register UWI)) +(dsh h-tbr_tt "TBR.TT" () (register UQI)) + +; The BPSR. The individual bits are referenced more than the entire +; register, so reference them directly. We can assemble the +; entire register contents when necessary. +; +(dsh h-bpsr_bs "PSR.S bit" () (register BI)) +(dsh h-bpsr_bet "PSR.ET bit" () (register BI)) + +; General registers +; +(define-keyword + (name gr-names) + (print-name h-gr) + (prefix "") + (values + (sp 1) (fp 2) + (gr0 0)(gr1 1)(gr2 2)(gr3 3)(gr4 4)(gr5 5)(gr6 6)(gr7 7) + (gr8 8)(gr9 9)(gr10 10)(gr11 11)(gr12 12)(gr13 13)(gr14 14)(gr15 15) + (gr16 16)(gr17 17)(gr18 18)(gr19 19)(gr20 20)(gr21 21)(gr22 22)(gr23 23) + (gr24 24)(gr25 25)(gr26 26)(gr27 27)(gr28 28)(gr29 29)(gr30 30)(gr31 31) + (gr32 32)(gr33 33)(gr34 34)(gr35 35)(gr36 36)(gr37 37)(gr38 38)(gr39 39) + (gr40 40)(gr41 41)(gr42 42)(gr43 43)(gr44 44)(gr45 45)(gr46 46)(gr47 47) + (gr48 48)(gr49 49)(gr50 50)(gr51 51)(gr52 52)(gr53 53)(gr54 54)(gr55 55) + (gr56 56)(gr57 57)(gr58 58)(gr59 59)(gr60 60)(gr61 61)(gr62 62)(gr63 63) + ) +) + +(define-hardware + (name h-gr) + (comment "general registers") + (attrs PROFILE) + (type register USI (64)) + (indices extern-keyword gr-names) + (get (index) (c-call WI "@cpu@_h_gr_get_handler" index)) + (set (index newval) (c-call VOID "@cpu@_h_gr_set_handler" index newval)) +) + +; General Registers as double words +; These registers are shadowed onto h-gr +(define-hardware + (name h-gr_double) + (comment "general registers as double words") + (attrs PROFILE VIRTUAL) + (type register DI (32)) + ; FIXME: Need constraint to prohibit odd numbers. + (indices extern-keyword gr-names) + (get (index) + (c-call DI "@cpu@_h_gr_double_get_handler" index)) + (set (index newval) + (c-call VOID "@cpu@_h_gr_double_set_handler" index newval)) +) + +; General Registers as high and low half words +; These registers are shadowed onto h-gr +(define-hardware + (name h-gr_hi) + (comment "general registers as high half word") + (attrs PROFILE VIRTUAL) + (type register UHI (64)) + (indices extern-keyword gr-names) + (get (index) (c-call UHI "@cpu@_h_gr_hi_get_handler" index)) + (set (index newval) (c-call VOID "@cpu@_h_gr_hi_set_handler" index newval)) +) +(define-hardware + (name h-gr_lo) + (comment "general registers as low half word") + (attrs PROFILE VIRTUAL) + (type register UHI (64)) + (indices extern-keyword gr-names) + (get (index) (c-call UHI "@cpu@_h_gr_lo_get_handler" index)) + (set (index newval) (c-call VOID "@cpu@_h_gr_lo_set_handler" index newval)) +) + +; Floating Point Registers +(define-keyword + (name fr-names) + (print-name h-fr) + (prefix "") + (values + (fr0 0)(fr1 1)(fr2 2)(fr3 3)(fr4 4)(fr5 5)(fr6 6)(fr7 7) + (fr8 8)(fr9 9)(fr10 10)(fr11 11)(fr12 12)(fr13 13)(fr14 14)(fr15 15) + (fr16 16)(fr17 17)(fr18 18)(fr19 19)(fr20 20)(fr21 21)(fr22 22)(fr23 23) + (fr24 24)(fr25 25)(fr26 26)(fr27 27)(fr28 28)(fr29 29)(fr30 30)(fr31 31) + (fr32 32)(fr33 33)(fr34 34)(fr35 35)(fr36 36)(fr37 37)(fr38 38)(fr39 39) + (fr40 40)(fr41 41)(fr42 42)(fr43 43)(fr44 44)(fr45 45)(fr46 46)(fr47 47) + (fr48 48)(fr49 49)(fr50 50)(fr51 51)(fr52 52)(fr53 53)(fr54 54)(fr55 55) + (fr56 56)(fr57 57)(fr58 58)(fr59 59)(fr60 60)(fr61 61)(fr62 62)(fr63 63) + ) +) + +(define-hardware + (name h-fr) + (comment "floating point registers") + (attrs PROFILE) + (type register SF (64)) + (indices extern-keyword fr-names) + (get (index) (c-call SF "@cpu@_h_fr_get_handler" index)) + (set (index newval) (c-call VOID "@cpu@_h_fr_set_handler" index newval)) +) + +; Floating Point Registers as double precision +; These registers are shadowed onto h-fr + +(define-hardware + (name h-fr_double) + (comment "floating point registers as double precision") + (attrs PROFILE VIRTUAL) + (type register DF (32)) + ; FIXME: Need constraint to prohibit odd numbers. + (indices extern-keyword fr-names) + (get (index) + (c-call DF "@cpu@_h_fr_double_get_handler" index)) + (set (index newval) + (c-call VOID "@cpu@_h_fr_double_set_handler" index newval)) +) + +; Floating Point Registers as integer words. +; These registers are shadowed onto h-fr + +(define-hardware + (name h-fr_int) + (comment "floating point registers as integers") + (attrs PROFILE VIRTUAL) + (type register USI (64)) + (indices extern-keyword fr-names) + (get (index) + (c-call USI "@cpu@_h_fr_int_get_handler" index)) + (set (index newval) + (c-call VOID "@cpu@_h_fr_int_set_handler" index newval)) +) + +; Floating Point Registers as high and low half words +; These registers are shadowed onto h-fr +(define-hardware + (name h-fr_hi) + (comment "floating point registers as unsigned high half word") + (attrs PROFILE VIRTUAL) + (type register UHI (64)) + (indices extern-keyword fr-names) + (get (regno) (srl (reg h-fr_int regno) 16)) + (set (regno newval) (set (reg h-fr_int regno) + (or (and (reg h-fr_int regno) #xffff) + (sll newval 16)))) +) +(define-hardware + (name h-fr_lo) + (comment "floating point registers as unsigned low half word") + (attrs PROFILE VIRTUAL) + (type register UHI (64)) + (indices extern-keyword fr-names) + (get (regno) (and (reg h-fr_int regno) #xffff)) + (set (regno newval) (set (reg h-fr_int regno) + (or (and (reg h-fr_int regno) #xffff0000) + (and newval #xffff)))) +) + +; Floating Point Registers as unsigned bytes +; These registers are shadowed onto h-fr +(define-hardware + (name h-fr_0) + (comment "floating point registers as unsigned byte 0") + (attrs PROFILE VIRTUAL) + (type register UHI (64)) + (indices extern-keyword fr-names) + (get (regno) (and (reg h-fr_int regno) #xff)) + (set (regno newval) + (sequence () + (if (gt USI newval #xff) + (set newval #xff)) + (set (reg h-fr_int regno) (or (and (reg h-fr_int regno) #xffffff00) + newval)))) +) +(define-hardware + (name h-fr_1) + (comment "floating point registers as unsigned byte 1") + (attrs PROFILE VIRTUAL) + (type register UHI (64)) + (indices extern-keyword fr-names) + (get (regno) (and (srl (reg h-fr_int regno) 8) #xff)) + (set (regno newval) + (sequence () + (if (gt USI newval #xff) + (set newval #xff)) + (set (reg h-fr_int regno) (or (and (reg h-fr_int regno) #xffff00ff) + (sll newval 8))))) +) +(define-hardware + (name h-fr_2) + (comment "floating point registers as unsigned byte 2") + (attrs PROFILE VIRTUAL) + (type register UHI (64)) + (indices extern-keyword fr-names) + (get (regno) (and (srl (reg h-fr_int regno) 16) #xff)) + (set (regno newval) + (sequence () + (if (gt USI newval #xff) + (set newval #xff)) + (set (reg h-fr_int regno) (or (and (reg h-fr_int regno) #xff00ffff) + (sll newval 16))))) +) +(define-hardware + (name h-fr_3) + (comment "floating point registers as unsigned byte 3") + (attrs PROFILE VIRTUAL) + (type register UHI (64)) + (indices extern-keyword fr-names) + (get (regno) (and (srl (reg h-fr_int regno) 24) #xff)) + (set (regno newval) + (sequence () + (if (gt USI newval #xff) + (set newval #xff)) + (set (reg h-fr_int regno) (or (and (reg h-fr_int regno) #x00ffffff) + (sll newval 24))))) +) +; Coprocessor Registers +; +(define-keyword + (name cpr-names) + (print-name h-cpr) + (prefix "") + (values +(cpr0 0)(cpr1 1)(cpr2 2)(cpr3 3)(cpr4 4)(cpr5 5)(cpr6 6)(cpr7 7) +(cpr8 8)(cpr9 9)(cpr10 10)(cpr11 11)(cpr12 12)(cpr13 13)(cpr14 14)(cpr15 15) +(cpr16 16)(cpr17 17)(cpr18 18)(cpr19 19)(cpr20 20)(cpr21 21)(cpr22 22)(cpr23 23) +(cpr24 24)(cpr25 25)(cpr26 26)(cpr27 27)(cpr28 28)(cpr29 29)(cpr30 30)(cpr31 31) +(cpr32 32)(cpr33 33)(cpr34 34)(cpr35 35)(cpr36 36)(cpr37 37)(cpr38 38)(cpr39 39) +(cpr40 40)(cpr41 41)(cpr42 42)(cpr43 43)(cpr44 44)(cpr45 45)(cpr46 46)(cpr47 47) +(cpr48 48)(cpr49 49)(cpr50 50)(cpr51 51)(cpr52 52)(cpr53 53)(cpr54 54)(cpr55 55) +(cpr56 56)(cpr57 57)(cpr58 58)(cpr59 59)(cpr60 60)(cpr61 61)(cpr62 62)(cpr63 63) + ) +) + +(define-hardware + (name h-cpr) + (comment "coprocessor registers") + (attrs PROFILE (MACH frv)) + (type register WI (64)) + (indices extern-keyword cpr-names) +) + +; Coprocessor Registers as double words +; These registers are shadowed onto h-cpr +(define-hardware + (name h-cpr_double) + (comment "coprocessor registers as double words") + (attrs PROFILE VIRTUAL (MACH frv)) + (type register DI (32)) + ; FIXME: Need constraint to prohibit odd numbers. + (indices extern-keyword cpr-names) + (get (index) + (c-call DI "@cpu@_h_cpr_double_get_handler" index)) + (set (index newval) + (c-call VOID "@cpu@_h_cpr_double_set_handler" index newval)) +) + +; Special Purpose Registers +; +(define-keyword + (name spr-names) + (print-name h-spr) + (prefix "") + (values + (psr 0) (pcsr 1) (bpcsr 2) (tbr 3) (bpsr 4) + + (hsr0 16) (hsr1 17) (hsr2 18) (hsr3 19) + (hsr4 20) (hsr5 21) (hsr6 22) (hsr7 23) + (hsr8 24) (hsr9 25) (hsr10 26) (hsr11 27) + (hsr12 28) (hsr13 29) (hsr14 30) (hsr15 31) + (hsr16 32) (hsr17 33) (hsr18 34) (hsr19 35) + (hsr20 36) (hsr21 37) (hsr22 38) (hsr23 39) + (hsr24 40) (hsr25 41) (hsr26 42) (hsr27 43) + (hsr28 44) (hsr29 45) (hsr30 46) (hsr31 47) + (hsr32 48) (hsr33 49) (hsr34 50) (hsr35 51) + (hsr36 52) (hsr37 53) (hsr38 54) (hsr39 55) + (hsr40 56) (hsr41 57) (hsr42 58) (hsr43 59) + (hsr44 60) (hsr45 61) (hsr46 62) (hsr47 63) + (hsr48 64) (hsr49 65) (hsr50 66) (hsr51 67) + (hsr52 68) (hsr53 69) (hsr54 70) (hsr55 71) + (hsr56 72) (hsr57 73) (hsr58 74) (hsr59 75) + (hsr60 76) (hsr61 77) (hsr62 78) (hsr63 79) + + (ccr 256) (cccr 263) (lr 272) (lcr 273) (isr 288) + + (neear0 352) (neear1 353) (neear2 354) (neear3 355) + (neear4 356) (neear5 357) (neear6 358) (neear7 359) + (neear8 360) (neear9 361) (neear10 362) (neear11 363) + (neear12 364) (neear13 365) (neear14 366) (neear15 367) + (neear16 368) (neear17 369) (neear18 370) (neear19 371) + (neear20 372) (neear21 373) (neear22 374) (neear23 375) + (neear24 376) (neear25 377) (neear26 378) (neear27 379) + (neear28 380) (neear29 381) (neear30 382) (neear31 383) + + (nesr0 384) (nesr1 385) (nesr2 386) (nesr3 387) + (nesr4 388) (nesr5 389) (nesr6 390) (nesr7 391) + (nesr8 392) (nesr9 393) (nesr10 394) (nesr11 395) + (nesr12 396) (nesr13 397) (nesr14 398) (nesr15 399) + (nesr16 400) (nesr17 401) (nesr18 402) (nesr19 403) + (nesr20 404) (nesr21 405) (nesr22 406) (nesr23 407) + (nesr24 408) (nesr25 409) (nesr26 410) (nesr27 411) + (nesr28 412) (nesr29 413) (nesr30 414) (nesr31 415) + + (necr 416) + + (gner0 432) (gner1 433) + + (fner0 434) (fner1 435) + + (epcr0 512) (epcr1 513) (epcr2 514) (epcr3 515) + (epcr4 516) (epcr5 517) (epcr6 518) (epcr7 519) + (epcr8 520) (epcr9 521) (epcr10 522) (epcr11 523) + (epcr12 524) (epcr13 525) (epcr14 526) (epcr15 527) + (epcr16 528) (epcr17 529) (epcr18 530) (epcr19 531) + (epcr20 532) (epcr21 533) (epcr22 534) (epcr23 535) + (epcr24 536) (epcr25 537) (epcr26 538) (epcr27 539) + (epcr28 540) (epcr29 541) (epcr30 542) (epcr31 543) + (epcr32 544) (epcr33 545) (epcr34 546) (epcr35 547) + (epcr36 548) (epcr37 549) (epcr38 550) (epcr39 551) + (epcr40 552) (epcr41 553) (epcr42 554) (epcr43 555) + (epcr44 556) (epcr45 557) (epcr46 558) (epcr47 559) + (epcr48 560) (epcr49 561) (epcr50 562) (epcr51 563) + (epcr52 564) (epcr53 565) (epcr54 566) (epcr55 567) + (epcr56 568) (epcr57 569) (epcr58 570) (epcr59 571) + (epcr60 572) (epcr61 573) (epcr62 574) (epcr63 575) + + (esr0 576) (esr1 577) (esr2 578) (esr3 579) + (esr4 580) (esr5 581) (esr6 582) (esr7 583) + (esr8 584) (esr9 585) (esr10 586) (esr11 587) + (esr12 588) (esr13 589) (esr14 590) (esr15 591) + (esr16 592) (esr17 593) (esr18 594) (esr19 595) + (esr20 596) (esr21 597) (esr22 598) (esr23 599) + (esr24 600) (esr25 601) (esr26 602) (esr27 603) + (esr28 604) (esr29 605) (esr30 606) (esr31 607) + (esr32 608) (esr33 609) (esr34 610) (esr35 611) + (esr36 612) (esr37 613) (esr38 614) (esr39 615) + (esr40 616) (esr41 617) (esr42 618) (esr43 619) + (esr44 620) (esr45 621) (esr46 622) (esr47 623) + (esr48 624) (esr49 625) (esr50 626) (esr51 627) + (esr52 628) (esr53 629) (esr54 630) (esr55 631) + (esr56 632) (esr57 633) (esr58 634) (esr59 635) + (esr60 636) (esr61 637) (esr62 638) (esr63 639) + + (eir0 640) (eir1 641) (eir2 642) (eir3 643) + (eir4 644) (eir5 645) (eir6 646) (eir7 647) + (eir8 648) (eir9 649) (eir10 650) (eir11 651) + (eir12 652) (eir13 653) (eir14 654) (eir15 655) + (eir16 656) (eir17 657) (eir18 658) (eir19 659) + (eir20 660) (eir21 661) (eir22 662) (eir23 663) + (eir24 664) (eir25 665) (eir26 666) (eir27 667) + (eir28 668) (eir29 669) (eir30 670) (eir31 671) + + (esfr0 672) (esfr1 673) + + (sr0 768) (sr1 769) (sr2 770) (sr3 771) + + (fsr0 1024) (fsr1 1025) (fsr2 1026) (fsr3 1027) + (fsr4 1028) (fsr5 1029) (fsr6 1030) (fsr7 1031) + (fsr8 1032) (fsr9 1033) (fsr10 1034) (fsr11 1035) + (fsr12 1036) (fsr13 1037) (fsr14 1038) (fsr15 1039) + (fsr16 1040) (fsr17 1041) (fsr18 1042) (fsr19 1043) + (fsr20 1044) (fsr21 1045) (fsr22 1046) (fsr23 1047) + (fsr24 1048) (fsr25 1049) (fsr26 1050) (fsr27 1051) + (fsr28 1052) (fsr29 1053) (fsr30 1054) (fsr31 1055) + (fsr32 1056) (fsr33 1057) (fsr34 1058) (fsr35 1059) + (fsr36 1060) (fsr37 1061) (fsr38 1062) (fsr39 1063) + (fsr40 1064) (fsr41 1065) (fsr42 1066) (fsr43 1067) + (fsr44 1068) (fsr45 1069) (fsr46 1070) (fsr47 1071) + (fsr48 1072) (fsr49 1073) (fsr50 1074) (fsr51 1075) + (fsr52 1076) (fsr53 1077) (fsr54 1078) (fsr55 1079) + (fsr56 1080) (fsr57 1081) (fsr58 1082) (fsr59 1083) + (fsr60 1084) (fsr61 1085) (fsr62 1086) (fsr63 1087) + + ; FQ0-FQ31 are 64 bit registers. + ; These names allow access to the upper 32 bits of the FQ registers. + (fqop0 1088) (fqop1 1090) (fqop2 1092) (fqop3 1094) + (fqop4 1096) (fqop5 1098) (fqop6 1100) (fqop7 1102) + (fqop8 1104) (fqop9 1106) (fqop10 1108) (fqop11 1110) + (fqop12 1112) (fqop13 1114) (fqop14 1116) (fqop15 1118) + (fqop16 1120) (fqop17 1122) (fqop18 1124) (fqop19 1126) + (fqop20 1128) (fqop21 1130) (fqop22 1132) (fqop23 1134) + (fqop24 1136) (fqop25 1138) (fqop26 1140) (fqop27 1142) + (fqop28 1144) (fqop29 1146) (fqop30 1148) (fqop31 1150) + ; These names allow access to the lower 32 bits of the FQ registers. + (fqst0 1089) (fqst1 1091) (fqst2 1093) (fqst3 1095) + (fqst4 1097) (fqst5 1099) (fqst6 1101) (fqst7 1103) + (fqst8 1105) (fqst9 1107) (fqst10 1109) (fqst11 1111) + (fqst12 1113) (fqst13 1115) (fqst14 1117) (fqst15 1119) + (fqst16 1121) (fqst17 1123) (fqst18 1125) (fqst19 1127) + (fqst20 1129) (fqst21 1131) (fqst22 1133) (fqst23 1135) + (fqst24 1137) (fqst25 1139) (fqst26 1141) (fqst27 1143) + (fqst28 1145) (fqst29 1147) (fqst30 1149) (fqst31 1151) + ; These also access the lower 32 bits of the FQ registers. + ; These are not accessible as spr registers (see LSI appendix - section 13.4) +; (fq0 1089) (fq1 1091) (fq2 1093) (fq3 1095) +; (fq4 1097) (fq5 1099) (fq6 1101) (fq7 1103) +; (fq8 1105) (fq9 1107) (fq10 1109) (fq11 1111) +; (fq12 1113) (fq13 1115) (fq14 1117) (fq15 1119) +; (fq16 1121) (fq17 1123) (fq18 1125) (fq19 1127) +; (fq20 1129) (fq21 1131) (fq22 1133) (fq23 1135) +; (fq24 1137) (fq25 1139) (fq26 1141) (fq27 1143) +; (fq28 1145) (fq29 1147) (fq30 1149) (fq31 1151) + + (mcilr0 1272) (mcilr1 1273) + + (msr0 1280) (msr1 1281) (msr2 1282) (msr3 1283) + (msr4 1284) (msr5 1285) (msr6 1286) (msr7 1287) + (msr8 1288) (msr9 1289) (msr10 1290) (msr11 1291) + (msr12 1292) (msr13 1293) (msr14 1294) (msr15 1295) + (msr16 1296) (msr17 1297) (msr18 1298) (msr19 1299) + (msr20 1300) (msr21 1301) (msr22 1302) (msr23 1303) + (msr24 1304) (msr25 1305) (msr26 1306) (msr27 1307) + (msr28 1308) (msr29 1309) (msr30 1310) (msr31 1311) + (msr32 1312) (msr33 1313) (msr34 1314) (msr35 1315) + (msr36 1316) (msr37 1317) (msr38 1318) (msr39 1319) + (msr40 1320) (msr41 1321) (msr42 1322) (msr43 1323) + (msr44 1324) (msr45 1325) (msr46 1326) (msr47 1327) + (msr48 1328) (msr49 1329) (msr50 1330) (msr51 1331) + (msr52 1332) (msr53 1333) (msr54 1334) (msr55 1335) + (msr56 1336) (msr57 1337) (msr58 1338) (msr59 1339) + (msr60 1340) (msr61 1341) (msr62 1342) (msr63 1343) + + ; MQ0-MQ31 are 64 bit registers. + ; These names allow access to the upper 32 bits of the MQ registers. + (mqop0 1344) (mqop1 1346) (mqop2 1348) (mqop3 1350) + (mqop4 1352) (mqop5 1354) (mqop6 1356) (mqop7 1358) + (mqop8 1360) (mqop9 1362) (mqop10 1364) (mqop11 1366) + (mqop12 1368) (mqop13 1370) (mqop14 1372) (mqop15 1374) + (mqop16 1376) (mqop17 1378) (mqop18 1380) (mqop19 1382) + (mqop20 1384) (mqop21 1386) (mqop22 1388) (mqop23 1390) + (mqop24 1392) (mqop25 1394) (mqop26 1396) (mqop27 1398) + (mqop28 1400) (mqop29 1402) (mqop30 1404) (mqop31 1406) + ; These names allow access to the lower 32 bits of the MQ registers. + (mqst0 1345) (mqst1 1347) (mqst2 1349) (mqst3 1351) + (mqst4 1353) (mqst5 1355) (mqst6 1357) (mqst7 1359) + (mqst8 1361) (mqst9 1363) (mqst10 1365) (mqst11 1367) + (mqst12 1369) (mqst13 1371) (mqst14 1373) (mqst15 1375) + (mqst16 1377) (mqst17 1379) (mqst18 1381) (mqst19 1383) + (mqst20 1385) (mqst21 1387) (mqst22 1389) (mqst23 1391) + (mqst24 1393) (mqst25 1395) (mqst26 1397) (mqst27 1399) + (mqst28 1401) (mqst29 1403) (mqst30 1405) (mqst31 1407) + ; These also access the lower 32 bits of the MQ registers. + ; These are not accessible as spr registers (see LSI appendix - section 13.4) +; (mq0 1345) (mq1 1347) (mq2 1349) (mq3 1351) +; (mq4 1353) (mq5 1355) (mq6 1357) (mq7 1359) +; (mq8 1361) (mq9 1363) (mq10 1365) (mq11 1367) +; (mq12 1369) (mq13 1371) (mq14 1373) (mq15 1375) +; (mq16 1377) (mq17 1379) (mq18 1381) (mq19 1383) +; (mq20 1385) (mq21 1387) (mq22 1389) (mq23 1391) +; (mq24 1393) (mq25 1395) (mq26 1397) (mq27 1399) +; (mq28 1401) (mq29 1403) (mq30 1405) (mq31 1407) + + ; These are not accessible as spr registers (see LSI appendix - section 13.4) +; (acc0 1408) (acc1 1409) (acc2 1410) (acc3 1411) +; (acc4 1412) (acc5 1413) (acc6 1414) (acc7 1415) +; (acc8 1416) (acc9 1417) (acc10 1418) (acc11 1419) +; (acc12 1420) (acc13 1421) (acc14 1422) (acc15 1423) +; (acc16 1424) (acc17 1425) (acc18 1426) (acc19 1427) +; (acc20 1428) (acc21 1429) (acc22 1430) (acc23 1431) +; (acc24 1432) (acc25 1433) (acc26 1434) (acc27 1435) +; (acc28 1436) (acc29 1437) (acc30 1438) (acc31 1439) +; (acc32 1440) (acc33 1441) (acc34 1442) (acc35 1443) +; (acc36 1444) (acc37 1445) (acc38 1446) (acc39 1447) +; (acc40 1448) (acc41 1449) (acc42 1450) (acc43 1451) +; (acc44 1452) (acc45 1453) (acc46 1454) (acc47 1455) +; (acc48 1456) (acc49 1457) (acc50 1458) (acc51 1459) +; (acc52 1460) (acc53 1461) (acc54 1462) (acc55 1463) +; (acc56 1464) (acc57 1465) (acc58 1466) (acc59 1467) +; (acc60 1468) (acc61 1469) (acc62 1470) (acc63 1471) + +; (accg0 1472) (accg1 1473) (accg2 1474) (accg3 1475) +; (accg4 1476) (accg5 1477) (accg6 1478) (accg7 1479) +; (accg8 1480) (accg9 1481) (accg10 1482) (accg11 1483) +; (accg12 1484) (accg13 1485) (accg14 1486) (accg15 1487) +; (accg16 1488) (accg17 1489) (accg18 1490) (accg19 1491) +; (accg20 1492) (accg21 1493) (accg22 1494) (accg23 1495) +; (accg24 1496) (accg25 1497) (accg26 1498) (accg27 1499) +; (accg28 1500) (accg29 1501) (accg30 1502) (accg31 1503) +; (accg32 1504) (accg33 1505) (accg34 1506) (accg35 1507) +; (accg36 1508) (accg37 1509) (accg38 1510) (accg39 1511) +; (accg40 1512) (accg41 1513) (accg42 1514) (accg43 1515) +; (accg44 1516) (accg45 1517) (accg46 1518) (accg47 1519) +; (accg48 1520) (accg49 1521) (accg50 1522) (accg51 1523) +; (accg52 1524) (accg53 1525) (accg54 1526) (accg55 1527) +; (accg56 1528) (accg57 1529) (accg58 1530) (accg59 1531) +; (accg60 1532) (accg61 1533) (accg62 1534) (accg63 1535) + + (ear0 1536) (ear1 1537) (ear2 1538) (ear3 1539) + (ear4 1540) (ear5 1541) (ear6 1542) (ear7 1543) + (ear8 1544) (ear9 1545) (ear10 1546) (ear11 1547) + (ear12 1548) (ear13 1549) (ear14 1550) (ear15 1551) + (ear16 1552) (ear17 1553) (ear18 1554) (ear19 1555) + (ear20 1556) (ear21 1557) (ear22 1558) (ear23 1559) + (ear24 1560) (ear25 1561) (ear26 1562) (ear27 1563) + (ear28 1564) (ear29 1565) (ear30 1566) (ear31 1567) + (ear32 1568) (ear33 1569) (ear34 1570) (ear35 1571) + (ear36 1572) (ear37 1573) (ear38 1574) (ear39 1575) + (ear40 1576) (ear41 1577) (ear42 1578) (ear43 1579) + (ear44 1580) (ear45 1581) (ear46 1582) (ear47 1583) + (ear48 1584) (ear49 1585) (ear50 1586) (ear51 1587) + (ear52 1588) (ear53 1589) (ear54 1590) (ear55 1591) + (ear56 1592) (ear57 1593) (ear58 1594) (ear59 1595) + (ear60 1596) (ear61 1597) (ear62 1598) (ear63 1599) + + (edr0 1600) (edr1 1601) (edr2 1602) (edr3 1603) + (edr4 1604) (edr5 1605) (edr6 1606) (edr7 1607) + (edr8 1608) (edr9 1609) (edr10 1610) (edr11 1611) + (edr12 1612) (edr13 1613) (edr14 1614) (edr15 1615) + (edr16 1616) (edr17 1617) (edr18 1618) (edr19 1619) + (edr20 1620) (edr21 1621) (edr22 1622) (edr23 1623) + (edr24 1624) (edr25 1625) (edr26 1626) (edr27 1627) + (edr28 1628) (edr29 1629) (edr30 1630) (edr31 1631) + (edr32 1632) (edr33 1636) (edr34 1634) (edr35 1635) + (edr36 1636) (edr37 1637) (edr38 1638) (edr39 1639) + (edr40 1640) (edr41 1641) (edr42 1642) (edr43 1643) + (edr44 1644) (edr45 1645) (edr46 1646) (edr47 1647) + (edr48 1648) (edr49 1649) (edr50 1650) (edr51 1651) + (edr52 1652) (edr53 1653) (edr54 1654) (edr55 1655) + (edr56 1656) (edr57 1657) (edr58 1658) (edr59 1659) + (edr60 1660) (edr61 1661) (edr62 1662) (edr63 1663) + + (iamlr0 1664) (iamlr1 1665) (iamlr2 1666) (iamlr3 1667) + (iamlr4 1668) (iamlr5 1669) (iamlr6 1670) (iamlr7 1671) + (iamlr8 1672) (iamlr9 1673) (iamlr10 1674) (iamlr11 1675) + (iamlr12 1676) (iamlr13 1677) (iamlr14 1678) (iamlr15 1679) + (iamlr16 1680) (iamlr17 1681) (iamlr18 1682) (iamlr19 1683) + (iamlr20 1684) (iamlr21 1685) (iamlr22 1686) (iamlr23 1687) + (iamlr24 1688) (iamlr25 1689) (iamlr26 1690) (iamlr27 1691) + (iamlr28 1692) (iamlr29 1693) (iamlr30 1694) (iamlr31 1695) + (iamlr32 1696) (iamlr33 1697) (iamlr34 1698) (iamlr35 1699) + (iamlr36 1700) (iamlr37 1701) (iamlr38 1702) (iamlr39 1703) + (iamlr40 1704) (iamlr41 1705) (iamlr42 1706) (iamlr43 1707) + (iamlr44 1708) (iamlr45 1709) (iamlr46 1710) (iamlr47 1711) + (iamlr48 1712) (iamlr49 1713) (iamlr50 1714) (iamlr51 1715) + (iamlr52 1716) (iamlr53 1717) (iamlr54 1718) (iamlr55 1719) + (iamlr56 1720) (iamlr57 1721) (iamlr58 1722) (iamlr59 1723) + (iamlr60 1724) (iamlr61 1725) (iamlr62 1726) (iamlr63 1727) + + (iampr0 1728) (iampr1 1729) (iampr2 1730) (iampr3 1731) + (iampr4 1732) (iampr5 1733) (iampr6 1734) (iampr7 1735) + (iampr8 1736) (iampr9 1737) (iampr10 1738) (iampr11 1739) + (iampr12 1740) (iampr13 1741) (iampr14 1742) (iampr15 1743) + (iampr16 1744) (iampr17 1745) (iampr18 1746) (iampr19 1747) + (iampr20 1748) (iampr21 1749) (iampr22 1750) (iampr23 1751) + (iampr24 1752) (iampr25 1753) (iampr26 1754) (iampr27 1755) + (iampr28 1756) (iampr29 1757) (iampr30 1758) (iampr31 1759) + (iampr32 1760) (iampr33 1761) (iampr34 1762) (iampr35 1763) + (iampr36 1764) (iampr37 1765) (iampr38 1766) (iampr39 1767) + (iampr40 1768) (iampr41 1769) (iampr42 1770) (iampr43 1771) + (iampr44 1772) (iampr45 1773) (iampr46 1774) (iampr47 1775) + (iampr48 1776) (iampr49 1777) (iampr50 1778) (iampr51 1779) + (iampr52 1780) (iampr53 1781) (iampr54 1782) (iampr55 1783) + (iampr56 1784) (iampr57 1785) (iampr58 1786) (iampr59 1787) + (iampr60 1788) (iampr61 1789) (iampr62 1790) (iampr63 1791) + + (damlr0 1792) (damlr1 1793) (damlr2 1794) (damlr3 1795) + (damlr4 1796) (damlr5 1797) (damlr6 1798) (damlr7 1799) + (damlr8 1800) (damlr9 1801) (damlr10 1802) (damlr11 1803) + (damlr12 1804) (damlr13 1805) (damlr14 1806) (damlr15 1807) + (damlr16 1808) (damlr17 1809) (damlr18 1810) (damlr19 1811) + (damlr20 1812) (damlr21 1813) (damlr22 1814) (damlr23 1815) + (damlr24 1816) (damlr25 1817) (damlr26 1818) (damlr27 1819) + (damlr28 1820) (damlr29 1821) (damlr30 1822) (damlr31 1823) + (damlr32 1824) (damlr33 1825) (damlr34 1826) (damlr35 1827) + (damlr36 1828) (damlr37 1829) (damlr38 1830) (damlr39 1831) + (damlr40 1832) (damlr41 1833) (damlr42 1834) (damlr43 1835) + (damlr44 1836) (damlr45 1837) (damlr46 1838) (damlr47 1839) + (damlr48 1840) (damlr49 1841) (damlr50 1842) (damlr51 1843) + (damlr52 1844) (damlr53 1845) (damlr54 1846) (damlr55 1847) + (damlr56 1848) (damlr57 1849) (damlr58 1850) (damlr59 1851) + (damlr60 1852) (damlr61 1853) (damlr62 1854) (damlr63 1855) + + (dampr0 1856) (dampr1 1857) (dampr2 1858) (dampr3 1859) + (dampr4 1860) (dampr5 1861) (dampr6 1862) (dampr7 1863) + (dampr8 1864) (dampr9 1865) (dampr10 1866) (dampr11 1867) + (dampr12 1868) (dampr13 1869) (dampr14 1870) (dampr15 1871) + (dampr16 1872) (dampr17 1873) (dampr18 1874) (dampr19 1875) + (dampr20 1876) (dampr21 1877) (dampr22 1878) (dampr23 1879) + (dampr24 1880) (dampr25 1881) (dampr26 1882) (dampr27 1883) + (dampr28 1884) (dampr29 1885) (dampr30 1886) (dampr31 1887) + (dampr32 1888) (dampr33 1889) (dampr34 1890) (dampr35 1891) + (dampr36 1892) (dampr37 1893) (dampr38 1894) (dampr39 1895) + (dampr40 1896) (dampr41 1897) (dampr42 1898) (dampr43 1899) + (dampr44 1900) (dampr45 1901) (dampr46 1902) (dampr47 1903) + (dampr48 1904) (dampr49 1905) (dampr50 1906) (dampr51 1907) + (dampr52 1908) (dampr53 1909) (dampr54 1910) (dampr55 1911) + (dampr56 1912) (dampr57 1913) (dampr58 1914) (dampr59 1915) + (dampr60 1916) (dampr61 1917) (dampr62 1918) (dampr63 1919) + + (amcr 1920) (stbar 1921) (mmcr 1922) + (dcr 2048) (brr 2049) (nmar 2050) + + (ibar0 2052) (ibar1 2053) (ibar2 2054) (ibar3 2055) + (dbar0 2056) (dbar1 2057) (dbar2 2058) (dbar3 2059) + + (dbdr00 2060) (dbdr01 2061) (dbdr02 2062) (dbdr03 2063) + (dbdr10 2064) (dbdr11 2065) (dbdr12 2066) (dbdr13 2067) + (dbdr20 2068) (dbdr21 2069) (dbdr22 2070) (dbdr23 2071) + (dbdr30 2072) (dbdr31 2073) (dbdr32 2074) (dbdr33 2075) + + (dbmr00 2076) (dbmr01 2077) (dbmr02 2078) (dbmr03 2079) + (dbmr10 2080) (dbmr11 2081) (dbmr12 2082) (dbmr13 2083) + (dbmr20 2084) (dbmr21 2085) (dbmr22 2086) (dbmr23 2087) + (dbmr30 2088) (dbmr31 2089) (dbmr32 2090) (dbmr33 2091) + + (cpcfr 2092) (cpcr 2093) (cpsr 2094) + + (cpesr0 2096) (cpesr1 2097) + (cpemr0 2098) (cpemr1 2099) + + (ihsr8 3848) + ) +) + +(define-hardware + (name h-spr) + (comment "special purpose registers") + (attrs PROFILE) + (type register UWI (4096)) + (indices extern-keyword spr-names) + (get (index) (c-call UWI "@cpu@_h_spr_get_handler" index)) + (set (index newval) (c-call VOID "@cpu@_h_spr_set_handler" index newval)) +) + +(define-pmacro (spr-pcsr) (reg h-spr 1)) +(define-pmacro (spr-bpcsr) (reg h-spr 2)) +(define-pmacro (spr-lr) (reg h-spr 272)) +(define-pmacro (spr-lcr) (reg h-spr 273)) +(define-pmacro (spr-sr0) (reg h-spr 768)) +(define-pmacro (spr-sr1) (reg h-spr 769)) +(define-pmacro (spr-sr2) (reg h-spr 770)) +(define-pmacro (spr-sr3) (reg h-spr 771)) + +; Accumulator guard. Actually a subset of the SPR registers, but those SPRs +; are read-only in most insns. This hardware element is used by those insns +; which have direct access (mwtaccg, mrdaccg). +(define-keyword + (name accg-names) + (print-name h-accg) + (prefix "") + (values + (accg0 0)(accg1 1)(accg2 2)(accg3 3) + (accg4 4)(accg5 5)(accg6 6)(accg7 7) + (accg8 8)(accg9 9)(accg10 10)(accg11 11) + (accg12 12)(accg13 13)(accg14 14)(accg15 15) + (accg16 16)(accg17 17)(accg18 18)(accg19 19) + (accg20 20)(accg21 21)(accg22 22)(accg23 23) + (accg24 24)(accg25 25)(accg26 26)(accg27 27) + (accg28 28)(accg29 29)(accg30 30)(accg31 31) + (accg32 32)(accg33 33)(accg34 34)(accg35 35) + (accg36 36)(accg37 37)(accg38 38)(accg39 39) + (accg40 40)(accg41 41)(accg42 42)(accg43 43) + (accg44 44)(accg45 45)(accg46 46)(accg47 47) + (accg48 48)(accg49 49)(accg50 50)(accg51 51) + (accg52 52)(accg53 53)(accg54 54)(accg55 55) + (accg56 56)(accg57 57)(accg58 58)(accg59 59) + (accg60 60)(accg61 61)(accg62 62)(accg63 63) + ) +) + +(define-hardware + (name h-accg) + (comment "accumulator guard") + (attrs PROFILE VIRTUAL) + (type register UWI (64)) + (indices extern-keyword accg-names) + (get (index) + (and (reg h-spr (add index 1472)) #xff)) + (set (index newval) + (set (raw-reg UWI h-spr (add index 1472)) (and newval #xff))) +) + +; 40 bit accumulator. Composed of ACCG and ACC registers concatenated, but +; referenced more often as the composed 40 bits. +(define-keyword + (name acc-names) + (print-name h-acc40) + (prefix "") + (values +(acc0 0)(acc1 1)(acc2 2)(acc3 3)(acc4 4)(acc5 5)(acc6 6)(acc7 7) +(acc8 8)(acc9 9)(acc10 10)(acc11 11)(acc12 12)(acc13 13)(acc14 14)(acc15 15) +(acc16 16)(acc17 17)(acc18 18)(acc19 19)(acc20 20)(acc21 21)(acc22 22)(acc23 23) +(acc24 24)(acc25 25)(acc26 26)(acc27 27)(acc28 28)(acc29 29)(acc30 30)(acc31 31) +(acc32 32)(acc33 33)(acc34 34)(acc35 35)(acc36 36)(acc37 37)(acc38 38)(acc39 39) +(acc40 40)(acc41 41)(acc42 42)(acc43 43)(acc44 44)(acc45 45)(acc46 46)(acc47 47) +(acc48 48)(acc49 49)(acc50 50)(acc51 51)(acc52 52)(acc53 53)(acc54 54)(acc55 55) +(acc56 56)(acc57 57)(acc58 58)(acc59 59)(acc60 60)(acc61 61)(acc62 62)(acc63 63) + ) +) + +(define-hardware + (name h-acc40S) + (comment "40 bit signed accumulator") + (attrs PROFILE VIRTUAL) + (type register DI (64)) + (indices extern-keyword acc-names) + ; The accumlator is made up of two 32 bit registers, accgi/acci. + ; We want to extract this as a combined 40 signed bits + (get (index) + (or DI + (sll DI (ext DI (trunc QI (reg h-spr (add index 1472)))) + 32) + (zext DI (reg h-spr (add index 1408))))) + ; Bits 40-63 are not written. raw-reg is used to bypass read-only restrictions + ; on ACC and ACCG registers + (set (index newval) + (sequence () + (c-call VOID "frv_check_spr_write_access" (add index 1408)) + (set (raw-reg UWI h-spr + (add index 1472)) (and (srl newval 32) #xff)) + (set (raw-reg UWI h-spr + (add index 1408)) (trunc USI newval)))) +) + +(define-hardware + (name h-acc40U) + (comment "40 bit unsigned accumulator") + (attrs PROFILE VIRTUAL) + (type register UDI (64)) + (indices extern-keyword acc-names) + ; The accumlator is made up of two 32 bit registers, accgi/acci. + ; We want to extract this as a combined 40 unsigned bits + (get (index) + (or DI + (sll DI (zext DI (reg h-spr (add index 1472))) 32) + (zext DI (reg h-spr (add index 1408))))) + ; Bits 40-63 are not written. raw-reg is used to bypass read-only restrictions + ; on ACC and ACCG registers + (set (index newval) + (sequence () + (c-call VOID "frv_check_spr_write_access" (add index 1408)) + (set (raw-reg UWI h-spr + (add index 1472)) (and (srl newval 32) #xff)) + (set (raw-reg UWI h-spr + (add index 1408)) (trunc USI newval)))) +) + +; Integer condition code registers (CCR) +; +; The individual sub registers bits of the CCR are referenced more often than +; the entire register so set them directly. We can assemble the +; entire register when necessary. +; +(define-keyword + (name iccr-names) + (print-name h-iccr) + (prefix "") + (values (icc0 0) (icc1 1) (icc2 2) (icc3 3)) +) + +(define-hardware + (name h-iccr) + (comment "Integer condition code registers") + (attrs PROFILE) + (type register UQI (4)) + (indices extern-keyword iccr-names) +) + +; Floating point condition code registers (CCR) +; +; The individual sub registers bits of the CCR are referenced more often than +; the entire register so set them directly. We can assemble the +; entire register when necessary. +; +(define-keyword + (name fccr-names) + (print-name h-fccr) + (prefix "") + (values (fcc0 0) (fcc1 1) (fcc2 2) (fcc3 3)) +) + +(define-hardware + (name h-fccr) + (comment "Integer condition code registers") + (attrs PROFILE) + (type register UQI (4)) + (indices extern-keyword fccr-names) +) + +; C condition code registers (CCCR) +; +(define-keyword + (name cccr-names) + (print-name h-cccr) + (prefix "") + (values (cc0 0) (cc1 1) (cc2 2) (cc3 3) (cc4 4) (cc5 5) (cc6 6) (cc7 7)) +) + +(define-hardware + (name h-cccr) + (comment "Condition code registers") + (attrs PROFILE) + (type register UQI (8)) + (indices extern-keyword cccr-names) +) + +; Dummy hardware used to define packing bit on insns +; +(define-hardware + (name h-pack) + (comment "Packing bit dummy hardware") + (type immediate (UINT 1)) + (values keyword "" (("" 1) (".p" 0) (".P" 0))) +) +; Dummy hardware used to define hint field for branches always taken +; +(define-hardware + (name h-hint-taken) + (comment "Branch taken hint dummy hardware") + (type immediate (UINT 1)) + ; The order of these is important. We want '2' to get written by default, + ; but we also want the docoder/disassembler to allow the values '0', '1' and + ; '3'. + (values keyword "" (("" 2) ("" 0) ("" 1) ("" 3))) +) +; Dummy hardware used to define hint field for branches never taken +; +(define-hardware + (name h-hint-not-taken) + (comment "Branch not taken hint dummy hardware") + (type immediate (UINT 1)) + ; The order of these is important. We want '0' to get written by default, + ; but we also want the docoder/disassembler to allow the values '1', '2' and + ; '3'. + (values keyword "" (("" 0) ("" 1) ("" 2) ("" 3))) +) + +; Instruction Operands. +; These entries provide a layer between the assembler and the raw hardware +; description, and are used to refer to hardware elements in the semantic +; code. Usually there's a bit of over-specification, but in more complicated +; instruction sets there isn't. + +; FRV specific operand attributes: + +(define-attr + (for operand) + (type boolean) + (name HASH-PREFIX) + (comment "immediates have an optional '#' prefix") +) + +; ??? Convention says this should be o-sr, but then the insn definitions +; should refer to o-sr which is clumsy. The "o-" could be implicit, but +; then it should be implicit for all the symbols here, but then there would +; be confusion between (f-)simm8 and (h-)simm8. +; So for now the rule is exactly as it appears here. + +; dnmop: define-normal-mode-operand: temporary, pending potential removal +; of modes from h/w. +(define-pmacro (dnmop xname xcomment xattrs xtype xindex xmode) + (define-operand + (name xname) + (comment xcomment) + (.splice attrs (.unsplice xattrs)) + (type xtype) + (index xindex) + (mode xmode) + ) +) + +(dnop pack "packing bit" () h-pack f-pack) + +(dnmop GRi "source register 1" () h-gr f-GRi SI) +(dnmop GRj "source register 2" () h-gr f-GRj SI) +(dnmop GRk "destination register" () h-gr f-GRk SI) +(dnmop GRkhi "destination register" () h-gr_hi f-GRk UHI) +(dnmop GRklo "destination register" () h-gr_lo f-GRk UHI) +(dnmop GRdoublek "destination register" () h-gr_double f-GRk DI) +(dnmop ACC40Si "signed accumulator" () h-acc40S f-ACC40Si DI) +(dnmop ACC40Ui "unsigned accumulator" () h-acc40U f-ACC40Ui UDI) +(dnmop ACC40Sk "target accumulator" () h-acc40S f-ACC40Sk DI) +(dnmop ACC40Uk "target accumulator" () h-acc40U f-ACC40Uk UDI) +(dnmop ACCGi "source register" () h-accg f-ACCGi UWI) +(dnmop ACCGk "target register" () h-accg f-ACCGk UWI) + +(dnmop CPRi "source register" ((MACH frv)) h-cpr f-CPRi SI) +(dnmop CPRj "source register" ((MACH frv)) h-cpr f-CPRj SI) +(dnmop CPRk "destination register" ((MACH frv)) h-cpr f-CPRk SI) +(dnmop CPRdoublek "destination register" ((MACH frv)) h-cpr_double f-CPRk DI) + +; floating point operands +(dnmop FRinti "source register 1" () h-fr_int f-FRi SI) +(dnmop FRintj "source register 2" () h-fr_int f-FRj SI) +(dnmop FRintk "target register" () h-fr_int f-FRk SI) +(dnmop FRi "source register 1" () h-fr f-FRi SF) +(dnmop FRj "source register 2" () h-fr f-FRj SF) +(dnmop FRk "destination register" () h-fr f-FRk SF) +(dnmop FRkhi "destination register" () h-fr_hi f-FRk UHI) +(dnmop FRklo "destination register" () h-fr_lo f-FRk UHI) +(dnmop FRdoublei "source register 1" () h-fr_double f-FRi DF) +(dnmop FRdoublej "source register 2" () h-fr_double f-FRj DF) +(dnmop FRdoublek "target register" () h-fr_double f-FRk DF) + +(dnop CRi "source register 1" () h-cccr f-CRi) +(dnop CRj "source register 2" () h-cccr f-CRj) +(dnop CRj_int "destination register" () h-cccr f-CRj_int) +(dnop CRj_float "destination register" () h-cccr f-CRj_float) +(dnop CRk "destination register" () h-cccr f-CRk) +(dnop CCi "condition register" () h-cccr f-CCi) + +(dnop ICCi_1 "condition register" () h-iccr f-ICCi_1) +(dnop ICCi_2 "condition register" () h-iccr f-ICCi_2) +(dnop ICCi_3 "condition register" () h-iccr f-ICCi_3) +(dnop FCCi_1 "condition register" () h-fccr f-FCCi_1) +(dnop FCCi_2 "condition register" () h-fccr f-FCCi_2) +(dnop FCCi_3 "condition register" () h-fccr f-FCCi_3) +(dnop FCCk "condition register" () h-fccr f-FCCk) + +(dnop eir "exception insn reg" () h-uint f-eir) +(dnop s10 "10 bit signed immediate" (HASH-PREFIX) h-sint f-s10) +(dnop u16 "16 bit unsigned immediate" (HASH-PREFIX) h-uint f-u16) +(dnop s16 "16 bit signed immediate" (HASH-PREFIX) h-sint f-s16) +(dnop s6 "6 bit signed immediate" (HASH-PREFIX) h-sint f-s6) +(dnop s6_1 "6 bit signed immediate" (HASH-PREFIX) h-sint f-s6_1) +(dnop u6 "6 bit unsigned immediate" (HASH-PREFIX) h-uint f-u6) +(dnop s5 "5 bit signed immediate" (HASH-PREFIX) h-sint f-s5) +(dnop cond "conditional arithmetic" (HASH-PREFIX) h-uint f-cond) +(dnop ccond "lr branch condition" (HASH-PREFIX) h-uint f-ccond) +(dnop hint "2 bit branch predictor" (HASH-PREFIX) h-uint f-hint) +(dnop hint_taken "2 bit branch predictor" () h-hint-taken f-hint) +(dnop hint_not_taken "2 bit branch predictor" () h-hint-not-taken f-hint) + +(dnop LI "link indicator" () h-uint f-LI) +(dnop lock "cache lock indicator" (HASH-PREFIX) h-uint f-lock) +(dnop debug "debug mode indicator" (HASH-PREFIX) h-uint f-debug) +(dnop A "all accumulator indicator" (HASH-PREFIX) h-uint f-A) +(dnop ae "all entries indicator" (HASH-PREFIX) h-uint f-ae) + +(dnop label16 "18 bit pc relative address" () h-iaddr f-label16) +(dnop label24 "26 bit pc relative address" () h-iaddr f-label24) + +(define-operand + (name FRintieven) + (comment "(even) source register 1") + (attrs) + (type h-fr_int) + (index f-FRi) + (mode SI) + (handlers (parse "even_register")) +) + +(define-operand + (name FRintjeven) + (comment "(even) source register 2") + (attrs) + (type h-fr_int) + (index f-FRj) + (mode SI) + (handlers (parse "even_register")) +) + +(define-operand + (name FRintkeven) + (comment "(even) target register") + (attrs) + (type h-fr_int) + (index f-FRk) + (mode SI) + (handlers (parse "even_register")) +) + +(define-operand + (name d12) + (comment "12 bit signed immediate") + (attrs) + (type h-sint) + (index f-d12) + (handlers (parse "d12")) +) + +(define-operand + (name s12) + (comment "12 bit signed immediate") + (attrs HASH-PREFIX) + (type h-sint) + (index f-d12) + (handlers (parse "s12")) +) + +(define-operand + (name u12) + (comment "12 bit signed immediate") + (attrs HASH-PREFIX) + (type h-sint) + (index f-u12) + (handlers (parse "u12")) +) + +(define-operand + (name spr) + (comment "special purpose register") + (attrs) + (type h-spr) + (index f-spr) + (handlers (parse "spr") (print "spr")) +) + +(define-operand + (name ulo16) + (comment "16 bit unsigned immediate, for #lo()") + (attrs) + (type h-uint) + (index f-u16) + (handlers (parse "ulo16") (print "lo")) +) + +(define-operand + (name slo16) + (comment "16 bit unsigned immediate, for #lo()") + (attrs) + (type h-sint) + (index f-s16) + (handlers (parse "uslo16") (print "lo")) +) + +(define-operand + (name uhi16) + (comment "16 bit unsigned immediate, for #hi()") + (attrs) + (type h-uint) + (index f-u16) + (handlers (parse "uhi16") (print "hi")) +) + +; operands representing hardware +; +(dnop psr_esr "PSR.ESR bit" (SEM-ONLY) h-psr_esr f-nil) +(dnop psr_s "PSR.S bit" (SEM-ONLY) h-psr_s f-nil) +(dnop psr_ps "PSR.PS bit" (SEM-ONLY) h-psr_ps f-nil) +(dnop psr_et "PSR.ET bit" (SEM-ONLY) h-psr_et f-nil) + +(dnop bpsr_bs "BPSR.BS bit" (SEM-ONLY) h-bpsr_bs f-nil) +(dnop bpsr_bet "BPSR.BET bit" (SEM-ONLY) h-bpsr_bet f-nil) + +(dnop tbr_tba "TBR.TBA" (SEM-ONLY) h-tbr_tba f-nil) +(dnop tbr_tt "TBR.TT" (SEM-ONLY) h-tbr_tt f-nil) + +; Null operands +; +(define-pmacro (ICCi_1-null) (f-ICCi_1-null 0)) +(define-pmacro (ICCi_2-null) (f-ICCi_2-null 0)) +(define-pmacro (ICCi_3-null) (f-ICCi_3-null 0)) +(define-pmacro (FCCi_1-null) (f-FCCi_1-null 0)) +(define-pmacro (FCCi_2-null) (f-FCCi_2-null 0)) +(define-pmacro (FCCi_3-null) (f-FCCi_3-null 0)) +(define-pmacro (rs-null) (f-rs-null 0)) +(define-pmacro (GRi-null) (f-GRi-null 0)) +(define-pmacro (GRj-null) (f-GRj-null 0)) +(define-pmacro (GRk-null) (f-GRk-null 0)) +(define-pmacro (FRi-null) (f-FRi-null 0)) +(define-pmacro (FRj-null) (f-FRj-null 0)) +(define-pmacro (ACCj-null) (f-ACCj-null 0)) +(define-pmacro (rd-null) (f-rd-null 0)) +(define-pmacro (cond-null) (f-cond-null 0)) +(define-pmacro (ccond-null) (f-ccond-null 0)) +(define-pmacro (s12-null) (f-s12-null 0)) +(define-pmacro (label16-null) (f-label16-null 0)) +(define-pmacro (misc-null-1) (f-misc-null-1 0)) +(define-pmacro (misc-null-2) (f-misc-null-2 0)) +(define-pmacro (misc-null-3) (f-misc-null-3 0)) +(define-pmacro (misc-null-4) (f-misc-null-4 0)) +(define-pmacro (misc-null-5) (f-misc-null-5 0)) +(define-pmacro (misc-null-6) (f-misc-null-6 0)) +(define-pmacro (misc-null-7) (f-misc-null-7 0)) +(define-pmacro (misc-null-8) (f-misc-null-8 0)) +(define-pmacro (misc-null-9) (f-misc-null-9 0)) +(define-pmacro (misc-null-10) (f-misc-null-10 0)) +(define-pmacro (misc-null-11) (f-misc-null-11 0)) + +(define-pmacro (LI-on) (f-LI-on 1)) +(define-pmacro (LI-off) (f-LI-off 0)) + +; Instruction definitions. +; +; Notes: +; - dni is short for "define-normal-instruction" +; - Macros are used to represent each insn format. These should be used as much +; as possible unless an insn has exceptional behaviour +; + +; Commonly used Macros +; +; Specific registers +; + +; Integer condition code manipulation +; +(define-pmacro (set-z-and-n icc x) + (if (eq x 0) + (set icc (or (and icc #x7) #x4)) + (if (lt x 0) + (set icc (or (and icc #xb) #x8)) + (set icc (and icc #x3)))) +) + +(define-pmacro (set-n icc val) + (if (eq val 0) + (set icc (and icc #x7)) + (set icc (or icc #x8))) +) + +(define-pmacro (set-z icc val) + (if (eq val 0) + (set icc (and icc #xb)) + (set icc (or icc #x4))) +) + +(define-pmacro (set-v icc val) + (if (eq val 0) + (set icc (and icc #xd)) + (set icc (or icc #x2))) +) + +(define-pmacro (set-c icc val) + (if (eq val 0) + (set icc (and icc #xe)) + (set icc (or icc #x1))) +) + +(define-pmacro (nbit icc) + (trunc BI (srl (and icc #x8) 3)) +) + +(define-pmacro (zbit icc) + (trunc BI (srl (and icc #x4) 2)) +) + +(define-pmacro (vbit icc) + (trunc BI (srl (and icc #x2) 1)) +) + +(define-pmacro (cbit icc) + (trunc BI (and icc #x1)) +) + +(define-pmacro (ebit icc) + (trunc BI (srl (and icc #x8) 3)) +) + +(define-pmacro (lbit icc) + (trunc BI (srl (and icc #x4) 2)) +) + +(define-pmacro (gbit icc) + (trunc BI (srl (and icc #x2) 1)) +) + +(define-pmacro (ubit icc) + (trunc BI (and icc #x1)) +) + +; FRV specific insn attributes: +; + +; Format: INT, Logic, Shift r-r +; +(define-pmacro (int-logic-r-r name operation op ope comment) + (dni name + (comment) + ((UNIT I01) (FR500-MAJOR I-1) (FR400-MAJOR I-1)) + (.str name "$pack $GRi,$GRj,$GRk") + (+ pack GRk op GRi (ICCi_1-null) ope GRj) + (set GRk (operation GRi GRj)) + ((fr400 (unit u-integer)) + (fr500 (unit u-integer))) + ) +) + +(int-logic-r-r add add OP_00 OPE2_00 "add reg/reg") +(int-logic-r-r sub sub OP_00 OPE2_04 "sub reg/reg") +(int-logic-r-r and and OP_01 OPE2_00 "and reg/reg") +(int-logic-r-r or or OP_01 OPE2_02 "or reg/reg") +(int-logic-r-r xor xor OP_01 OPE2_04 "xor reg/reg") + +(dni not + ("not") + ((UNIT I01) (FR500-MAJOR I-1) (FR400-MAJOR I-1)) + ("not$pack $GRj,$GRk") + (+ pack GRk OP_01 (rs-null) (ICCi_1-null) OPE2_06 GRj) + (set GRk (inv GRj)) + ((fr400 (unit u-integer)) + (fr500 (unit u-integer))) +) + +(dni sdiv + "signed division" + ((UNIT MULT-DIV) (FR500-MAJOR I-1) (FR400-MAJOR I-1)) + "sdiv$pack $GRi,$GRj,$GRk" + (+ pack GRk OP_00 GRi (ICCi_1-null) OPE2_0E GRj) + (sequence () + (c-call VOID "@cpu@_signed_integer_divide" + GRi GRj (index-of GRk) 0) + (clobber GRk)) + ((fr400 (unit u-idiv)) + (fr500 (unit u-idiv))) +) + +(dni nsdiv + "non excepting signed division" + ((UNIT MULT-DIV) (FR500-MAJOR I-1) NON-EXCEPTING + (MACH simple,tomcat,fr500,frv)) + "nsdiv$pack $GRi,$GRj,$GRk" + (+ pack GRk OP_01 GRi (ICCi_1-null) OPE2_0E GRj) + (sequence () + (c-call VOID "@cpu@_signed_integer_divide" + GRi GRj (index-of GRk) 1) + (clobber GRk)) + ((fr400 (unit u-idiv)) + (fr500 (unit u-idiv))) +) + +(dni udiv + "unsigned division reg/reg" + ((UNIT MULT-DIV) (FR500-MAJOR I-1) (FR400-MAJOR I-1)) + "udiv$pack $GRi,$GRj,$GRk" + (+ pack GRk OP_00 GRi (ICCi_1-null) OPE2_0F GRj) + (sequence () + (c-call VOID "@cpu@_unsigned_integer_divide" + GRi GRj (index-of GRk) 0) + (clobber GRk)) + ((fr400 (unit u-idiv)) + (fr500 (unit u-idiv))) +) + +(dni nudiv + "non excepting unsigned division" + ((UNIT MULT-DIV) (FR500-MAJOR I-1) NON-EXCEPTING + (MACH simple,tomcat,fr500,frv)) + "nudiv$pack $GRi,$GRj,$GRk" + (+ pack GRk OP_01 GRi (ICCi_1-null) OPE2_0F GRj) + (sequence () + (c-call VOID "@cpu@_unsigned_integer_divide" + GRi GRj (index-of GRk) 1) + (clobber GRk)) + ((fr400 (unit u-idiv)) + (fr500 (unit u-idiv))) +) + +; Multiplication +; +(define-pmacro (multiply-r-r name signop op ope comment) + (dni name + (comment) + ((UNIT MULT-DIV) (FR500-MAJOR I-1) (FR400-MAJOR I-1)) + (.str name "$pack $GRi,$GRj,$GRdoublek") + (+ pack GRdoublek op GRi (ICCi_1-null) ope GRj) + (set GRdoublek (mul DI (signop DI GRi) (signop DI GRj))) + ((fr400 (unit u-imul)) + (fr500 (unit u-imul))) + ) +) + +(multiply-r-r smul ext OP_00 OPE2_08 "signed multiply reg/reg") +(multiply-r-r umul zext OP_00 OPE2_0A "unsigned multiply reg/reg") + +(define-pmacro (int-shift-r-r name op ope comment) + (dni name + (comment) + ((UNIT I01) (FR500-MAJOR I-1) (FR400-MAJOR I-1)) + (.str name "$pack $GRi,$GRj,$GRk") + (+ pack GRk op GRi (ICCi_1-null) ope GRj) + (set GRk (name GRi (and GRj #x1f))) + ((fr400 (unit u-integer)) + (fr500 (unit u-integer))) + ) +) + +(int-shift-r-r sll OP_01 OPE2_08 "shift left logical reg/reg") +(int-shift-r-r srl OP_01 OPE2_0A "shift right logical reg/reg") +(int-shift-r-r sra OP_01 OPE2_0C "shift right arith reg/reg") + +(define-pmacro (scan-semantics arg1 arg2 targ) + (sequence ((WI tmp1) (WI tmp2)) + (set tmp1 arg1) + (set tmp2 (sra arg2 1)) + (set targ (c-call WI "@cpu@_scan_result" (xor tmp1 tmp2)))) +) + +(dni scan + "scan" + ((UNIT MULT-DIV) (FR500-MAJOR I-1) (FR400-MAJOR I-1)) + "scan$pack $GRi,$GRj,$GRk" + (+ pack GRk OP_0B GRi (ICCi_1-null) OPE2_00 GRj) + (scan-semantics GRi GRj GRk) + ((fr400 (unit u-integer)) + (fr500 (unit u-integer))) +) + +; Format: conditional INT, Logic, Shift r-r +; +(define-pmacro (conditional-int-logic name operation op ope comment) + (dni name + (comment) + ((UNIT I01) (FR500-MAJOR I-1) (FR400-MAJOR I-1) CONDITIONAL) + (.str name "$pack $GRi,$GRj,$GRk,$CCi,$cond") + (+ pack GRk op GRi CCi cond ope GRj) + (if (eq CCi (or cond 2)) + (set GRk (operation GRi GRj))) + ((fr400 (unit u-integer)) + (fr500 (unit u-integer))) + ) +) + +(conditional-int-logic cadd add OP_58 OPE4_0 "conditional add") +(conditional-int-logic csub sub OP_58 OPE4_1 "conditional sub") +(conditional-int-logic cand and OP_5A OPE4_0 "conditional and") +(conditional-int-logic cor or OP_5A OPE4_1 "conditional or") +(conditional-int-logic cxor xor OP_5A OPE4_2 "conditional xor") + +(dni cnot + "conditional not" + ((UNIT I01) (FR500-MAJOR I-1) (FR400-MAJOR I-1) CONDITIONAL) + "cnot$pack $GRj,$GRk,$CCi,$cond" + (+ pack GRk OP_5A (rs-null) CCi cond OPE4_3 GRj) + (if (eq CCi (or cond 2)) + (set GRk (inv GRj))) + ((fr400 (unit u-integer)) + (fr500 (unit u-integer))) +) + +(dni csmul + "conditional signed multiply" + ((UNIT MULT-DIV) (FR500-MAJOR I-1) (FR400-MAJOR I-1) CONDITIONAL) + "csmul$pack $GRi,$GRj,$GRdoublek,$CCi,$cond" + (+ pack GRdoublek OP_58 GRi CCi cond OPE4_2 GRj) + (if (eq CCi (or cond 2)) + (set GRdoublek (mul DI (ext DI GRi) (ext DI GRj)))) + ((fr400 (unit u-imul)) + (fr500 (unit u-imul))) +) + +(dni csdiv + "conditional signed division" + ((UNIT MULT-DIV) (FR500-MAJOR I-1) (FR400-MAJOR I-1) CONDITIONAL) + "csdiv$pack $GRi,$GRj,$GRk,$CCi,$cond" + (+ pack GRk OP_58 GRi CCi cond OPE4_3 GRj) + (if (eq CCi (or cond 2)) + (sequence () + (c-call VOID "@cpu@_signed_integer_divide" + GRi GRj (index-of GRk) 0) + (clobber GRk))) + ((fr400 (unit u-idiv)) + (fr500 (unit u-idiv))) +) + +(dni cudiv + "conditional unsigned division" + ((UNIT MULT-DIV) (FR500-MAJOR I-1) (FR400-MAJOR I-1) CONDITIONAL) + "cudiv$pack $GRi,$GRj,$GRk,$CCi,$cond" + (+ pack GRk OP_59 GRi CCi cond OPE4_3 GRj) + (if (eq CCi (or cond 2)) + (sequence () + (c-call VOID "@cpu@_unsigned_integer_divide" + GRi GRj (index-of GRk) 0) + (clobber GRk))) + ((fr400 (unit u-idiv)) + (fr500 (unit u-idiv))) +) + +(define-pmacro (conditional-shift name operation op ope comment) + (dni name + (comment) + ((UNIT I01) (FR500-MAJOR I-1) (FR400-MAJOR I-1) CONDITIONAL) + (.str name "$pack $GRi,$GRj,$GRk,$CCi,$cond") + (+ pack GRk op GRi CCi cond ope GRj) + (if (eq CCi (or cond 2)) + (set GRk (operation GRi (and GRj #x1f)))) + ((fr400 (unit u-integer)) + (fr500 (unit u-integer))) + ) +) + +(conditional-shift csll sll OP_5C OPE4_0 "conditional shift left logical") +(conditional-shift csrl srl OP_5C OPE4_1 "conditional shift right logical") +(conditional-shift csra sra OP_5C OPE4_2 "conditional shift right arith") + +(dni cscan + "conditional scan" + ((UNIT MULT-DIV) (FR500-MAJOR I-1) (FR400-MAJOR I-1) CONDITIONAL) + "cscan$pack $GRi,$GRj,$GRk,$CCi,$cond" + (+ pack GRk OP_65 GRi CCi cond OPE4_3 GRj) + (if (eq CCi (or cond 2)) + (scan-semantics GRi GRj GRk)) + ((fr400 (unit u-integer)) + (fr500 (unit u-integer))) +) + +; Format: INT, Logic, Shift, cc r-r +; +(define-pmacro (int-arith-cc-semantics operation icc) + (sequence ((BI tmp) (QI cc) (SI result)) + (set cc icc) + (set tmp ((.sym operation -oflag) GRi GRj (const 0))) + (set-v cc tmp) + (set tmp ((.sym operation -cflag) GRi GRj (const 0))) + (set-c cc tmp) + (set result (operation GRi GRj)) + (set-z-and-n cc result) + (set GRk result) + (set icc cc)) +) + +(define-pmacro (int-arith-cc-r-r name operation op ope comment) + (dni name + (comment) + ((UNIT I01) (FR500-MAJOR I-1) (FR400-MAJOR I-1)) + (.str name "$pack $GRi,$GRj,$GRk,$ICCi_1") + (+ pack GRk op GRi ICCi_1 ope GRj) + (int-arith-cc-semantics operation ICCi_1) + ((fr400 (unit u-integer)) + (fr500 (unit u-integer))) + ) +) + +(int-arith-cc-r-r addcc add OP_00 OPE2_01 "add reg/reg, set icc") +(int-arith-cc-r-r subcc sub OP_00 OPE2_05 "sub reg/reg, set icc") + +(define-pmacro (int-logic-cc-semantics op icc) + (sequence ((SI tmp)) + (set tmp (op GRi GRj)) + (set GRk tmp) + (set-z-and-n icc tmp)) +) + +(define-pmacro (int-logic-cc-r-r name op ope comment) + (dni (.sym name cc) + (comment) + ((UNIT I01) (FR500-MAJOR I-1) (FR400-MAJOR I-1)) + (.str (.sym name cc) "$pack $GRi,$GRj,$GRk,$ICCi_1") + (+ pack GRk op GRi ICCi_1 ope GRj) + (int-logic-cc-semantics name ICCi_1) + ((fr400 (unit u-integer)) + (fr500 (unit u-integer))) + ) +) + +(int-logic-cc-r-r and OP_01 OPE2_01 "and reg/reg, set icc") +(int-logic-cc-r-r or OP_01 OPE2_03 "or reg/reg, set icc") +(int-logic-cc-r-r xor OP_01 OPE2_05 "xor reg/reg, set icc") + +(define-pmacro (int-shift-cc-semantics op l-r icc) + (sequence ((WI shift) (SI tmp) (QI cc)) + (set shift (and GRj #x1f)) + (set cc (c-call QI (.str "@cpu@_set_icc_for_shift_" l-r) + GRi shift icc)) + (set tmp (op GRi shift)) + (set GRk tmp) + (set-z-and-n cc tmp) + (set icc cc)) +) + +(define-pmacro (int-shift-cc-r-r name l-r op ope comment) + (dni (.sym name cc) + (comment) + ((UNIT I01) (FR500-MAJOR I-1) (FR400-MAJOR I-1)) + (.str (.sym name cc) "$pack $GRi,$GRj,$GRk,$ICCi_1") + (+ pack GRk op GRi ICCi_1 ope GRj) + (int-shift-cc-semantics name l-r ICCi_1) + ((fr400 (unit u-integer)) + (fr500 (unit u-integer))) + ) +) + +(int-shift-cc-r-r sll left OP_01 OPE2_09 "shift left logical reg/reg,set icc") +(int-shift-cc-r-r srl right OP_01 OPE2_0B "shift right logical reg/reg,set icc") +(int-shift-cc-r-r sra right OP_01 OPE2_0D "shift right arith reg/reg,set icc") + +(define-pmacro (multiply-cc-semantics signop arg1 arg2 targ icc) + (sequence ((DI tmp) (QI cc)) + (set cc icc) + (set tmp (mul DI (signop DI arg1) (signop DI arg2))) + (set-n cc (srl DI tmp 63)) + (set-z cc (eq tmp 0)) + (set targ tmp) + (set icc cc)) +) + +(define-pmacro (multiply-cc-r-r name signop op ope comment) + (dni name + (comment) + ((UNIT MULT-DIV) (FR500-MAJOR I-1) (FR400-MAJOR I-1)) + (.str name "$pack $GRi,$GRj,$GRdoublek,$ICCi_1") + (+ pack GRdoublek op GRi ICCi_1 ope GRj) + (multiply-cc-semantics signop GRi GRj GRdoublek ICCi_1) + ((fr400 (unit u-imul)) + (fr500 (unit u-imul))) + ) +) + +(multiply-cc-r-r smulcc ext OP_00 OPE2_09 "signed multiply reg/reg") +(multiply-cc-r-r umulcc zext OP_00 OPE2_0B "unsigned multiply reg/reg") + + +; Format: conditional INT, Logic, Shift, cc r-r +; +(define-pmacro (conditional-int-arith-cc name operation op ope comment) + (dni name + (comment) + ((UNIT I01) (FR500-MAJOR I-1) (FR400-MAJOR I-1) CONDITIONAL) + (.str name "$pack $GRi,$GRj,$GRk,$CCi,$cond") + (+ pack GRk op GRi CCi cond ope GRj) + (if (eq CCi (or cond 2)) + (int-arith-cc-semantics operation + (reg h-iccr (and (index-of CCi) 3)))) + ((fr400 (unit u-integer)) + (fr500 (unit u-integer))) + ) +) + +(conditional-int-arith-cc caddcc add OP_59 OPE4_0 "add, set icc") +(conditional-int-arith-cc csubcc sub OP_59 OPE4_1 "sub, set icc") + +(dni csmulcc + "conditional signed multiply and set condition code" + ((UNIT MULT-DIV) (FR500-MAJOR I-1) (FR400-MAJOR I-1) CONDITIONAL) + "csmulcc$pack $GRi,$GRj,$GRdoublek,$CCi,$cond" + (+ pack GRdoublek OP_59 GRi CCi cond OPE4_2 GRj) + (if (eq CCi (or cond 2)) + (multiply-cc-semantics ext GRi GRj GRdoublek + (reg h-iccr (and (index-of CCi) 3)))) + ((fr400 (unit u-imul)) + (fr500 (unit u-imul))) +) + +(define-pmacro (conditional-int-logic-cc name operation op ope comment) + (dni name + (comment) + ((UNIT I01) (FR500-MAJOR I-1) (FR400-MAJOR I-1) CONDITIONAL) + (.str name "$pack $GRi,$GRj,$GRk,$CCi,$cond") + (+ pack GRk op GRi CCi cond ope GRj) + (if (eq CCi (or cond 2)) + (int-logic-cc-semantics operation + (reg h-iccr (and (index-of CCi) 3)))) + ((fr400 (unit u-integer)) + (fr500 (unit u-integer))) + ) +) + +(conditional-int-logic-cc candcc and OP_5B OPE4_0 "conditional and, set icc") +(conditional-int-logic-cc corcc or OP_5B OPE4_1 "conditional or , set icc") +(conditional-int-logic-cc cxorcc xor OP_5B OPE4_2 "conditional xor, set icc") + +(define-pmacro (conditional-int-shift-cc name l-r op ope comment) + (dni (.sym c name cc) + (comment) + ((UNIT I01) (FR500-MAJOR I-1) (FR400-MAJOR I-1) CONDITIONAL) + (.str (.sym c name cc) "$pack $GRi,$GRj,$GRk,$CCi,$cond") + (+ pack GRk op GRi CCi cond ope GRj) + (if (eq CCi (or cond 2)) + (int-shift-cc-semantics name l-r + (reg h-iccr (and (index-of CCi) 3)))) + ((fr400 (unit u-integer)) + (fr500 (unit u-integer))) + ) +) + +(conditional-int-shift-cc sll left OP_5D OPE4_0 "shift left logical, set icc") +(conditional-int-shift-cc srl right OP_5D OPE4_1 "shift right logical, set icc") +(conditional-int-shift-cc sra right OP_5D OPE4_2 "shift right arith , set icc") + +; Add and subtract with carry +; +(define-pmacro (int-arith-x-r-r name operation op ope comment) + (dni name + (comment) + ((UNIT I01) (FR500-MAJOR I-1) (FR400-MAJOR I-1)) + (.str name "$pack $GRi,$GRj,$GRk,$ICCi_1") + (+ pack GRk op GRi ICCi_1 ope GRj) + (set GRk ((.sym operation c) GRi GRj (cbit ICCi_1))) + ((fr400 (unit u-integer)) + (fr500 (unit u-integer))) + ) +) + +(int-arith-x-r-r addx add OP_00 OPE2_02 "Add reg/reg, with carry") +(int-arith-x-r-r subx sub OP_00 OPE2_06 "Sub reg/reg, with carry") + +(define-pmacro (int-arith-x-cc-r-r name operation op ope comment) + (dni name + (comment) + ((UNIT I01) (FR500-MAJOR I-1) (FR400-MAJOR I-1)) + (.str name "$pack $GRi,$GRj,$GRk,$ICCi_1") + (+ pack GRk op GRi ICCi_1 ope GRj) + (sequence ((WI tmp) (QI cc)) + (set cc ICCi_1) + (set tmp ((.sym operation c) GRi GRj (cbit cc))) + (set-v cc ((.sym operation -oflag) GRi GRj (cbit cc))) + (set-c cc ((.sym operation -cflag) GRi GRj (cbit cc))) + (set-z-and-n cc tmp) + (set GRk tmp) + (set ICCi_1 cc)) + ((fr400 (unit u-integer)) + (fr500 (unit u-integer))) + ) +) + +(int-arith-x-cc-r-r addxcc add OP_00 OPE2_03 "Add reg/reg, use/set carry") +(int-arith-x-cc-r-r subxcc sub OP_00 OPE2_07 "Sub reg/reg, use/set carry") + +; Format: INT, Logic, Shift r-simm +; +(define-pmacro (int-logic-r-simm name operation op comment) + (dni name + (comment) + ((UNIT I01) (FR500-MAJOR I-1) (FR400-MAJOR I-1)) + (.str name "$pack $GRi,$s12,$GRk") + (+ pack GRk op GRi s12) + (set GRk (operation GRi s12)) + ((fr400 (unit u-integer)) + (fr500 (unit u-integer))) + ) +) + +(int-logic-r-simm addi add OP_10 "add reg/immed") +(int-logic-r-simm subi sub OP_14 "sub reg/immed") +(int-logic-r-simm andi and OP_20 "and reg/immed") +(int-logic-r-simm ori or OP_22 "or reg/immed") +(int-logic-r-simm xori xor OP_24 "xor reg/immed") + +(dni sdivi + "signed division reg/immed" + ((UNIT MULT-DIV) (FR500-MAJOR I-1) (FR400-MAJOR I-1)) + "sdivi$pack $GRi,$s12,$GRk" + (+ pack GRk OP_1E GRi s12) + (sequence () + (c-call VOID "@cpu@_signed_integer_divide" + GRi s12 (index-of GRk) 0) + (clobber GRk)) + ((fr400 (unit u-idiv)) + (fr500 (unit u-idiv))) +) + +(dni nsdivi + "non excepting signed division reg/immed" + ((UNIT MULT-DIV) (FR500-MAJOR I-1) NON-EXCEPTING + (MACH simple,tomcat,fr500,frv)) + "nsdivi$pack $GRi,$s12,$GRk" + (+ pack GRk OP_2E GRi s12) + (sequence () + (c-call VOID "@cpu@_signed_integer_divide" + GRi s12 (index-of GRk) 1) + (clobber GRk)) + ((fr400 (unit u-idiv)) + (fr500 (unit u-idiv))) +) + +(dni udivi + "unsigned division reg/immed" + ((UNIT MULT-DIV) (FR500-MAJOR I-1) (FR400-MAJOR I-1)) + "udivi$pack $GRi,$s12,$GRk" + (+ pack GRk OP_1F GRi s12) + (sequence () + (c-call VOID "@cpu@_unsigned_integer_divide" + GRi s12 (index-of GRk) 0) + (clobber GRk)) + ((fr400 (unit u-idiv)) + (fr500 (unit u-idiv))) +) + +(dni nudivi + "non excepting unsigned division reg/immed" + ((UNIT MULT-DIV) (FR500-MAJOR I-1) NON-EXCEPTING + (MACH simple,tomcat,fr500,frv)) + "nudivi$pack $GRi,$s12,$GRk" + (+ pack GRk OP_2F GRi s12) + (sequence () + (c-call VOID "@cpu@_unsigned_integer_divide" + GRi s12 (index-of GRk) 1) + (clobber GRk)) + ((fr400 (unit u-idiv)) + (fr500 (unit u-idiv))) +) + +(define-pmacro (multiply-r-simm name signop op comment) + (dni name + (comment) + ((UNIT MULT-DIV) (FR500-MAJOR I-1) (FR400-MAJOR I-1)) + (.str name "$pack $GRi,$s12,$GRdoublek") + (+ pack GRdoublek op GRi s12) + (set GRdoublek (mul DI (signop DI GRi) (signop DI s12))) + ((fr400 (unit u-imul)) + (fr500 (unit u-imul))) + ) +) + +(multiply-r-simm smuli ext OP_18 "signed multiply reg/immed") +(multiply-r-simm umuli zext OP_1A "unsigned multiply reg/immed") + +(define-pmacro (int-shift-r-simm name op comment) + (dni (.sym name i) + (comment) + ((UNIT I01) (FR500-MAJOR I-1) (FR400-MAJOR I-1)) + (.str (.sym name i) "$pack $GRi,$s12,$GRk") + (+ pack GRk op GRi s12) + (set GRk (name GRi (and s12 #x1f))) + ((fr400 (unit u-integer)) + (fr500 (unit u-integer))) + ) +) + +(int-shift-r-simm sll OP_28 "shift left logical reg/immed") +(int-shift-r-simm srl OP_2A "shift right logical reg/immed") +(int-shift-r-simm sra OP_2C "shift right arith reg/immed") + +(dni scani + "scan immediate" + ((UNIT MULT-DIV) (FR500-MAJOR I-1) (FR400-MAJOR I-1)) + "scani$pack $GRi,$s12,$GRk" + (+ pack GRk OP_47 GRi s12) + (scan-semantics GRi s12 GRk) + ((fr400 (unit u-integer)) + (fr500 (unit u-integer))) +) + +; Format: INT, Logic, Shift cc r-simm +; +(define-pmacro (int-arith-cc-r-simm name operation op comment) + (dni name + (comment) + ((UNIT I01) (FR500-MAJOR I-1) (FR400-MAJOR I-1)) + (.str name "$pack $GRi,$s10,$GRk,$ICCi_1") + (+ pack GRk op GRi ICCi_1 s10) + (sequence ((BI tmp) (QI cc) (SI result)) + (set cc ICCi_1) + (set tmp ((.sym operation -oflag) GRi s10 (const 0))) + (set-v cc tmp) + (set tmp ((.sym operation -cflag) GRi s10 (const 0))) + (set-c cc tmp) + (set result (operation GRi s10)) + (set-z-and-n cc result) + (set GRk result) + (set ICCi_1 cc)) + ((fr400 (unit u-integer)) + (fr500 (unit u-integer))) + ) +) + +(int-arith-cc-r-simm addicc add OP_11 "add reg/immed, set icc") +(int-arith-cc-r-simm subicc sub OP_15 "sub reg/immed, set icc") + +(define-pmacro (int-logic-cc-r-simm name op comment) + (dni (.sym name icc) + (comment) + ((UNIT I01) (FR500-MAJOR I-1) (FR400-MAJOR I-1)) + (.str (.sym name icc) "$pack $GRi,$s10,$GRk,$ICCi_1") + (+ pack GRk op GRi ICCi_1 s10) + (sequence ((SI tmp)) + (set tmp (name GRi s10)) + (set GRk tmp) + (set-z-and-n ICCi_1 tmp)) + ((fr400 (unit u-integer)) + (fr500 (unit u-integer))) + ) +) + +(int-logic-cc-r-simm and OP_21 "and reg/immed, set icc") +(int-logic-cc-r-simm or OP_23 "or reg/immed, set icc") +(int-logic-cc-r-simm xor OP_25 "xor reg/immed, set icc") + +(define-pmacro (multiply-cc-r-simm name signop op comment) + (dni name + (comment) + ((UNIT MULT-DIV) (FR500-MAJOR I-1) (FR400-MAJOR I-1)) + (.str name "$pack $GRi,$s10,$GRdoublek,$ICCi_1") + (+ pack GRdoublek op GRi ICCi_1 s10) + (multiply-cc-semantics signop GRi s10 GRdoublek ICCi_1) + ((fr400 (unit u-imul)) + (fr500 (unit u-imul))) + ) +) + +(multiply-cc-r-simm smulicc ext OP_19 "signed multiply reg/immed") +(multiply-cc-r-simm umulicc zext OP_1B "unsigned multiply reg/immed") + +(define-pmacro (int-shift-cc-r-simm name l-r op comment) + (dni (.sym name icc) + (comment) + ((UNIT I01) (FR500-MAJOR I-1) (FR400-MAJOR I-1)) + (.str (.sym name icc) "$pack $GRi,$s10,$GRk,$ICCi_1") + (+ pack GRk op GRi ICCi_1 s10) + (sequence ((WI shift) (SI tmp) (QI cc)) + (set shift (and s10 #x1f)) + (set cc (c-call QI (.str "@cpu@_set_icc_for_shift_" l-r) + GRi shift ICCi_1)) + (set tmp (name GRi shift)) + (set GRk tmp) + (set-z-and-n cc tmp) + (set ICCi_1 cc)) + ((fr400 (unit u-integer)) + (fr500 (unit u-integer))) + ) +) + +(int-shift-cc-r-simm sll left OP_29 "shift left logical reg/immed, set icc") +(int-shift-cc-r-simm srl right OP_2B "shift right logical reg/immed, set icc") +(int-shift-cc-r-simm sra right OP_2D "shift right arith reg/immed, set icc") + +(define-pmacro (int-arith-x-r-simm name operation op comment) + (dni name + (comment) + ((UNIT I01) (FR500-MAJOR I-1) (FR400-MAJOR I-1)) + (.str name "$pack $GRi,$s10,$GRk,$ICCi_1") + (+ pack GRk op GRi ICCi_1 s10) + (set GRk ((.sym operation c) GRi s10 (cbit ICCi_1))) + ((fr400 (unit u-integer)) + (fr500 (unit u-integer))) + ) +) + +(int-arith-x-r-simm addxi add OP_12 "Add reg/immed, with carry") +(int-arith-x-r-simm subxi sub OP_16 "Sub reg/immed, with carry") + +(define-pmacro (int-arith-x-cc-r-simm name operation op comment) + (dni name + (comment) + ((UNIT I01) (FR500-MAJOR I-1) (FR400-MAJOR I-1)) + (.str name "$pack $GRi,$s10,$GRk,$ICCi_1") + (+ pack GRk op GRi ICCi_1 s10) + (sequence ((WI tmp) (QI cc)) + (set cc ICCi_1) + (set tmp ((.sym operation c) GRi s10 (cbit cc))) + (set-v cc ((.sym operation -oflag) GRi s10 (cbit cc))) + (set-c cc ((.sym operation -cflag) GRi s10 (cbit cc))) + (set-z-and-n cc tmp) + (set GRk tmp) + (set ICCi_1 cc)) + ((fr400 (unit u-integer)) + (fr500 (unit u-integer))) + ) +) + +(int-arith-x-cc-r-simm addxicc add OP_13 "Add reg/immed, with carry") +(int-arith-x-cc-r-simm subxicc sub OP_17 "Sub reg/immed, with carry") + +; Byte compare insns + +(dni cmpb + "Compare bytes" + ((UNIT I01) (FR400-MAJOR I-1) (MACH fr400)) + "cmpb$pack $GRi,$GRj,$ICCi_1" + (+ pack (GRk-null) OP_00 GRi ICCi_1 OPE2_0C GRj) + (sequence ((QI cc)) + (set-n cc (eq (and GRi #xff000000) (and GRj #xff000000))) + (set-z cc (eq (and GRi #x00ff0000) (and GRj #x00ff0000))) + (set-v cc (eq (and GRi #x0000ff00) (and GRj #x0000ff00))) + (set-c cc (eq (and GRi #x000000ff) (and GRj #x000000ff))) + (set ICCi_1 cc)) + ((fr400 (unit u-integer))) +) + +(dni cmpba + "OR of Compare bytes" + ((UNIT I01) (FR400-MAJOR I-1) (MACH fr400)) + "cmpba$pack $GRi,$GRj,$ICCi_1" + (+ pack (GRk-null) OP_00 GRi ICCi_1 OPE2_0D GRj) + (sequence ((QI cc)) + (set cc 0) + (set-c cc + (orif (eq (and GRi #xff000000) (and GRj #xff000000)) + (orif (eq (and GRi #x00ff0000) (and GRj #x00ff0000)) + (orif (eq (and GRi #x0000ff00) + (and GRj #x0000ff00)) + (eq (and GRi #x000000ff) + (and GRj #x000000ff)))))) + (set ICCi_1 cc)) + ((fr400 (unit u-integer))) +) + +; Format: Load immediate +; +(dni setlo + "set low order bits" + ((UNIT I01) (FR500-MAJOR I-1) (FR400-MAJOR I-1)) + "setlo$pack $ulo16,$GRklo" + (+ pack GRk OP_3D (misc-null-4) u16) + (set GRklo u16) + ((fr400 (unit u-set-hilo)) + (fr500 (unit u-set-hilo))) +) + +(dni sethi + "set high order bits" + ((UNIT I01) (FR500-MAJOR I-1) (FR400-MAJOR I-1)) + "sethi$pack $uhi16,$GRkhi" + (+ pack GRkhi OP_3E (misc-null-4) u16) + (set GRkhi u16) + ((fr400 (unit u-set-hilo)) + (fr500 (unit u-set-hilo))) +) + +(dni setlos + "set low order bits and extend sign" + ((UNIT I01) (FR500-MAJOR I-1) (FR400-MAJOR I-1)) + "setlos$pack $slo16,$GRk" + (+ pack GRk OP_3F (misc-null-4) s16) + (set GRk s16) + ((fr400 (unit u-integer)) + (fr500 (unit u-integer))) +) + +(define-pmacro (load-gr-r name mode op ope comment) + (dni name + (comment) + ((UNIT LOAD) (FR500-MAJOR I-2) (FR400-MAJOR I-2)) + (.str name "$pack @($GRi,$GRj),$GRk") + (+ pack GRk op GRi ope GRj) + (set GRk (c-call mode (.str "@cpu@_read_mem_" mode) pc (add GRi GRj))) + ((fr400 (unit u-gr-load)) + (fr500 (unit u-gr-load))) + ) +) + +(load-gr-r ldsb QI OP_02 OPE1_00 "Load signed byte") +(load-gr-r ldub UQI OP_02 OPE1_01 "Load unsigned byte") +(load-gr-r ldsh HI OP_02 OPE1_02 "Load signed half") +(load-gr-r lduh UHI OP_02 OPE1_03 "Load unsigned half") +(load-gr-r ld SI OP_02 OPE1_04 "Load word") + +(define-pmacro (load-fr-r name mode op ope comment) + (dni name + (comment) + ((UNIT LOAD) (FR500-MAJOR I-2) (FR400-MAJOR I-2) FR-ACCESS) + (.str name "$pack @($GRi,$GRj),$FRintk") + (+ pack FRintk op GRi ope GRj) + (set FRintk (c-call mode (.str "@cpu@_read_mem_" mode) pc (add GRi GRj))) + ((fr400 (unit u-fr-load)) + (fr500 (unit u-fr-load))) + ) +) + +(load-fr-r ldbf UQI OP_02 OPE1_08 "Load byte float") +(load-fr-r ldhf UHI OP_02 OPE1_09 "Load half float") +(load-fr-r ldf SI OP_02 OPE1_0A "Load word float") + +(define-pmacro (load-cpr-r name mode op ope reg attr comment) + (dni name + (comment) + ((UNIT LOAD) (FR500-MAJOR I-2) attr) + (.str name "$pack @($GRi,$GRj),$" reg "k") + (+ pack (.sym reg k) op GRi ope GRj) + (set (.sym reg k) + (c-call mode (.str "@cpu@_read_mem_" mode) pc (add GRi GRj))) + () + ) +) + +(load-cpr-r ldc SI OP_02 OPE1_0D CPR (MACH frv) "Load coprocessor word") + +; These correspond to enumerators in frv-sim.h +(define-pmacro (ne-UQI-size) 0) +(define-pmacro (ne-QI-size) 1) +(define-pmacro (ne-UHI-size) 2) +(define-pmacro (ne-HI-size) 3) +(define-pmacro (ne-SI-size) 4) +(define-pmacro (ne-DI-size) 5) +(define-pmacro (ne-XI-size) 6) + +(define-pmacro (ne-load-semantics base dispix targ idisp size is_float action) + (sequence ((BI do_op)) + (set do_op + (c-call BI "@cpu@_check_non_excepting_load" + (index-of base) dispix (index-of targ) + idisp size is_float)) + (if do_op action)) +) + +(define-pmacro (ne-load-gr-r name mode op ope size comment) + (dni name + (comment) + ((UNIT LOAD) (FR500-MAJOR I-2) NON-EXCEPTING + (MACH simple,tomcat,fr500,frv)) + (.str name "$pack @($GRi,$GRj),$GRk") + (+ pack GRk op GRi ope GRj) + (ne-load-semantics GRi (index-of GRj) GRk 0 size 0 + (set GRk + (c-call mode (.str "@cpu@_read_mem_" mode) + pc (add GRi GRj)))) + ((fr500 (unit u-gr-load))) + ) +) + +(ne-load-gr-r nldsb QI OP_02 OPE1_20 (ne-QI-size) "Load signed byte") +(ne-load-gr-r nldub UQI OP_02 OPE1_21 (ne-UQI-size) "Load unsigned byte") +(ne-load-gr-r nldsh HI OP_02 OPE1_22 (ne-HI-size) "Load signed half") +(ne-load-gr-r nlduh UHI OP_02 OPE1_23 (ne-UHI-size) "Load unsigned half") +(ne-load-gr-r nld SI OP_02 OPE1_24 (ne-SI-size) "Load word") + +(define-pmacro (ne-load-fr-r name mode op ope size comment) + (dni name + (comment) + ((UNIT LOAD) (FR500-MAJOR I-2) NON-EXCEPTING FR-ACCESS + (MACH simple,tomcat,fr500,frv)) + (.str name "$pack @($GRi,$GRj),$FRintk") + (+ pack FRintk op GRi ope GRj) + (ne-load-semantics GRi (index-of GRj) FRintk 0 size 1 + (set FRintk + (c-call mode (.str "@cpu@_read_mem_" mode) + pc (add GRi GRj)))) + ((fr500 (unit u-fr-load))) + ) +) + +(ne-load-fr-r nldbf UQI OP_02 OPE1_28 (ne-UQI-size) "Load byte float") +(ne-load-fr-r nldhf UHI OP_02 OPE1_29 (ne-UHI-size) "Load half float") +(ne-load-fr-r nldf SI OP_02 OPE1_2A (ne-SI-size) "Load word float") + +; Semantics for a load-double insn +; +(define-pmacro (load-double-semantics not_gr mode regtype address arg) + (if (orif not_gr (ne (index-of (.sym regtype doublek)) 0)) + (sequence () + (set address (add GRi arg)) + (set (.sym regtype doublek) + (c-call mode (.str "@cpu@_read_mem_" mode) pc address)))) +) + +(define-pmacro (load-double-r-r + name not_gr mode op ope regtype attr profile comment) + (dni name + (comment) + ((UNIT LOAD) (FR500-MAJOR I-2) (FR400-MAJOR I-2) attr) + (.str name "$pack @($GRi,$GRj),$" regtype "doublek") + (+ pack (.sym regtype doublek) op GRi ope GRj) + (sequence ((WI address)) + (load-double-semantics not_gr mode regtype address GRj)) + profile + ) +) + +(load-double-r-r ldd 0 DI OP_02 OPE1_05 GR NA + ((fr400 (unit u-gr-load)) (fr500 (unit u-gr-load))) + "Load double word") +(load-double-r-r lddf 1 DF OP_02 OPE1_0B FR FR-ACCESS + ((fr400 (unit u-fr-load)) (fr500 (unit u-fr-load))) + "Load double float") +(load-double-r-r lddc 1 DI OP_02 OPE1_0E CPR (MACH frv) () + "Load coprocessor double") + +(define-pmacro (ne-load-double-r-r + name not_gr mode op ope regtype size is_float attr profile + comment) + (dni name + (comment) + ((UNIT LOAD) (FR500-MAJOR I-2) NON-EXCEPTING attr + (MACH simple,tomcat,fr500,frv)) + (.str name "$pack @($GRi,$GRj),$" regtype "doublek") + (+ pack (.sym regtype doublek) op GRi ope GRj) + (sequence ((WI address)) + (ne-load-semantics GRi (index-of GRj) (.sym regtype doublek) + 0 size is_float + (load-double-semantics not_gr mode + regtype + address GRj))) + profile + ) +) + +(ne-load-double-r-r nldd 0 DI OP_02 OPE1_25 GR (ne-DI-size) 0 NA + ((fr500 (unit u-gr-load))) "Load double word") +(ne-load-double-r-r nlddf 1 DF OP_02 OPE1_2B FR (ne-DI-size) 1 FR-ACCESS + ((fr500 (unit u-fr-load))) "Load double float") + +; Semantics for a load-quad insn +; +(define-pmacro (load-quad-semantics regtype address arg) + (sequence () + (set address (add GRi arg)) + (c-call VOID (.str "@cpu@_load_quad_" regtype) + pc address (index-of (.sym regtype k)))) +) + +(define-pmacro (load-quad-r-r name op ope regtype attr profile comment) + (dni name + (comment) + ((UNIT LOAD) (FR500-MAJOR I-2) (MACH frv) attr) + (.str name "$pack @($GRi,$GRj),$" regtype "k") + (+ pack (.sym regtype k) op GRi ope GRj) + (sequence ((WI address)) + (load-quad-semantics regtype address GRj)) + ; TODO regtype-k not referenced for profiling + profile + ) +) + +(load-quad-r-r ldq OP_02 OPE1_06 GR NA ((fr500 (unit u-gr-load))) + "Load quad word") +(load-quad-r-r ldqf OP_02 OPE1_0C FRint FR-ACCESS ((fr500 (unit u-fr-load))) + "Load quad float") +(load-quad-r-r ldqc OP_02 OPE1_0F CPR NA () "Load coprocessor quad") + +(define-pmacro (ne-load-quad-r-r + name op ope regtype size is_float attr profile comment) + (dni name + (comment) + ((UNIT LOAD) (FR500-MAJOR I-2) (MACH frv) NON-EXCEPTING attr) + (.str name "$pack @($GRi,$GRj),$" regtype "k") + (+ pack (.sym regtype k) op GRi ope GRj) + (sequence ((WI address)) + (ne-load-semantics GRi (index-of GRj) (.sym regtype k) + 0 size is_float + (load-quad-semantics regtype address GRj))) + ; TODO regtype-k not referenced for profiling + profile + ) +) + +(ne-load-quad-r-r nldq OP_02 OPE1_26 GR (ne-XI-size) 0 NA + ((fr500 (unit u-gr-load))) "Load quad word") +(ne-load-quad-r-r nldqf OP_02 OPE1_2C FRint (ne-XI-size) 1 FR-ACCESS + ((fr500 (unit u-fr-load))) "Load quad float") + +(define-pmacro (load-gr-u-semantics mode) + (sequence ((UWI address)) + (set address (add GRi GRj)) + (set GRk (c-call mode (.str "@cpu@_read_mem_" mode) pc address)) + (if (ne (index-of GRi) (index-of GRk)) + (sequence () + (set GRi address) + (c-call VOID "@cpu@_force_update")))) +) + +(define-pmacro (load-gr-u name mode op ope comment) + (dni name + (comment) + ((UNIT LOAD) (FR500-MAJOR I-2) (FR400-MAJOR I-2)) + (.str name "$pack @($GRi,$GRj),$GRk") + (+ pack GRk op GRi ope GRj) + (load-gr-u-semantics mode) + ((fr400 (unit u-gr-load)) + (fr500 (unit u-gr-load))) + ) +) + +(load-gr-u ldsbu QI OP_02 OPE1_10 "Load signed byte, update index") +(load-gr-u ldubu UQI OP_02 OPE1_11 "Load unsigned byte, update index") +(load-gr-u ldshu HI OP_02 OPE1_12 "Load signed half, update index") +(load-gr-u lduhu UHI OP_02 OPE1_13 "Load unsigned half, update index") +(load-gr-u ldu SI OP_02 OPE1_14 "Load word, update index") + +(define-pmacro (ne-load-gr-u name mode op ope size comment) + (dni name + (comment) + ((UNIT LOAD) (FR500-MAJOR I-2) NON-EXCEPTING + (MACH simple,tomcat,fr500,frv)) + (.str name "$pack @($GRi,$GRj),$GRk") + (+ pack GRk op GRi ope GRj) + (ne-load-semantics GRi (index-of GRj) GRk 0 size 0 (load-gr-u-semantics mode)) + ((fr500 (unit u-gr-load))) + ) +) + +(ne-load-gr-u nldsbu QI OP_02 OPE1_30 (ne-QI-size) "Load signed byte, update index") +(ne-load-gr-u nldubu UQI OP_02 OPE1_31 (ne-UQI-size) "Load unsigned byte, update index") +(ne-load-gr-u nldshu HI OP_02 OPE1_32 (ne-HI-size) "Load signed half, update index") +(ne-load-gr-u nlduhu UHI OP_02 OPE1_33 (ne-UHI-size) "Load unsigned half, update index") +(ne-load-gr-u nldu SI OP_02 OPE1_34 (ne-SI-size) "Load word, update index") + +(define-pmacro (load-non-gr-u-semantics mode regtype) + (sequence ((UWI address)) + (set address (add GRi GRj)) + (set (.sym regtype k) + (c-call mode (.str "@cpu@_read_mem_" mode) pc address)) + (set GRi address) + (c-call VOID "@cpu@_force_update")) +) + +(define-pmacro (load-fr-u name mode op ope comment) + (dni name + (comment) + ((UNIT LOAD) (FR500-MAJOR I-2) (FR400-MAJOR I-2) FR-ACCESS) + (.str name "$pack @($GRi,$GRj),$FRintk") + (+ pack FRintk op GRi ope GRj) + (load-non-gr-u-semantics mode FRint) + ((fr400 (unit u-fr-load)) + (fr500 (unit u-fr-load))) + ) +) + +(load-fr-u ldbfu UQI OP_02 OPE1_18 "Load byte float, update index") +(load-fr-u ldhfu UHI OP_02 OPE1_19 "Load half float, update index") +(load-fr-u ldfu SI OP_02 OPE1_1A "Load word float, update index") + +(define-pmacro (load-cpr-u name mode op ope comment) + (dni name + (comment) + ((UNIT LOAD) (FR500-MAJOR I-2) (MACH frv)) + (.str name "$pack @($GRi,$GRj),$CPRk") + (+ pack CPRk op GRi ope GRj) + (load-non-gr-u-semantics mode CPR) + () + ) +) + +(load-cpr-u ldcu SI OP_02 OPE1_1D "Load coprocessor word float,update index") + +(define-pmacro (ne-load-non-gr-u name mode op ope regtype size comment) + (dni name + (comment) + ((UNIT LOAD) (FR500-MAJOR I-2) NON-EXCEPTING FR-ACCESS + (MACH simple,tomcat,fr500,frv)) + (.str name "$pack @($GRi,$GRj),$" regtype "k") + (+ pack (.sym regtype k) op GRi ope GRj) + (ne-load-semantics GRi (index-of GRj) (.sym regtype k) 0 size 1 + (load-non-gr-u-semantics mode regtype)) + ((fr500 (unit u-fr-load))) + ) +) + +(ne-load-non-gr-u nldbfu UQI OP_02 OPE1_38 FRint (ne-UQI-size) "Load byte float, update index") +(ne-load-non-gr-u nldhfu UHI OP_02 OPE1_39 FRint (ne-UHI-size) "Load half float, update index") +(ne-load-non-gr-u nldfu SI OP_02 OPE1_3A FRint (ne-SI-size) "Load word float, update index") + +(define-pmacro (load-double-gr-u-semantics) + (sequence ((WI address)) + (load-double-semantics 0 DI GR address GRj) + (if (ne (index-of GRi) (index-of GRdoublek)) + (sequence () + (set GRi address) + (c-call VOID "@cpu@_force_update")))) +) + +(define-pmacro (load-double-gr-u name op ope comment) + (dni name + (comment) + ((UNIT LOAD) (FR500-MAJOR I-2) (FR400-MAJOR I-2)) + (.str name "$pack @($GRi,$GRj),$GRdoublek") + (+ pack GRdoublek op GRi ope GRj) + (load-double-gr-u-semantics) + ((fr400 (unit u-gr-load)) + (fr500 (unit u-gr-load))) + ) +) + +(load-double-gr-u lddu OP_02 OPE1_15 "Load double word, update index") + +(define-pmacro (ne-load-double-gr-u name op ope size comment) + (dni name + (comment) + ((UNIT LOAD) (FR500-MAJOR I-2) NON-EXCEPTING + (MACH simple,tomcat,fr500,frv)) + (.str name "$pack @($GRi,$GRj),$GRdoublek") + (+ pack GRdoublek op GRi ope GRj) + (ne-load-semantics GRi (index-of GRj) GRdoublek 0 size 0 + (load-double-gr-u-semantics)) + ((fr500 (unit u-gr-load))) + + ) +) + +(ne-load-double-gr-u nlddu OP_02 OPE1_35 (ne-DI-size) "Load double word, update index") + +(define-pmacro (load-double-non-gr-u-semantics mode regtype) + (sequence ((WI address)) + (load-double-semantics 1 mode regtype address GRj) + (set GRi address) + (c-call VOID "@cpu@_force_update")) +) + +(define-pmacro (load-double-non-gr-u + name mode op ope regtype attr profile comment) + (dni name + (comment) + ((UNIT LOAD) (FR500-MAJOR I-2) (FR400-MAJOR I-2) attr) + (.str name "$pack @($GRi,$GRj),$" regtype "doublek") + (+ pack (.sym regtype doublek) op GRi ope GRj) + (load-double-non-gr-u-semantics mode regtype) + profile + ) +) + +(load-double-non-gr-u lddfu DF OP_02 OPE1_1B FR FR-ACCESS + ((fr400 (unit u-fr-load)) (fr500 (unit u-fr-load))) + "Load double float, update index") +(load-double-non-gr-u lddcu DI OP_02 OPE1_1E CPR (MACH frv) + () "Load coprocessor double float, update index") + +(define-pmacro (ne-load-double-non-gr-u name mode op ope regtype size comment) + (dni name + (comment) + ((UNIT LOAD) (FR500-MAJOR I-2) NON-EXCEPTING FR-ACCESS + (MACH simple,tomcat,fr500,frv)) + (.str name "$pack @($GRi,$GRj),$" regtype "doublek") + (+ pack (.sym regtype doublek) op GRi ope GRj) + (ne-load-semantics GRi (index-of GRj) (.sym regtype doublek) 0 size 1 + (load-double-non-gr-u-semantics mode regtype)) + ((fr500 (unit u-fr-load))) + ) +) + +(ne-load-double-non-gr-u nlddfu DF OP_02 OPE1_3B FR (ne-DI-size) "Load double float, update index") + +(define-pmacro (load-quad-gr-u-semantics) + (sequence ((WI address)) + (load-quad-semantics GR address GRj) + (if (ne (index-of GRi) (index-of GRk)) + (sequence () + (set GRi address) + (c-call VOID "@cpu@_force_update")))) +) + +(define-pmacro (load-quad-gr-u name op ope comment) + (dni name + (comment) + ((UNIT LOAD) (FR500-MAJOR I-2) (MACH frv)) + (.str name "$pack @($GRi,$GRj),$GRk") + (+ pack GRk op GRi ope GRj) + (load-quad-gr-u-semantics) + ; TODO - GRk not referenced here for profiling + ((fr500 (unit u-gr-load))) + ) +) + +(load-quad-gr-u ldqu OP_02 OPE1_16 "Load quad word, update index") + +(define-pmacro (ne-load-quad-gr-u name op ope size comment) + (dni name + (comment) + ((UNIT LOAD) (FR500-MAJOR I-2) (MACH frv) NON-EXCEPTING) + (.str name "$pack @($GRi,$GRj),$GRk") + (+ pack GRk op GRi ope GRj) + (ne-load-semantics GRi (index-of GRj) GRk 0 size 0 + (load-quad-gr-u-semantics)) + ; TODO - GRk not referenced here for profiling + ((fr500 (unit u-gr-load))) + ) +) + +(ne-load-quad-gr-u nldqu OP_02 OPE1_36 (ne-XI-size) "Load quad word, update index") + +(define-pmacro (load-quad-non-gr-u-semantics regtype) + (sequence ((WI address)) + (load-quad-semantics regtype address GRj) + (set GRi address) + (c-call VOID "@cpu@_force_update")) +) + +(define-pmacro (load-quad-non-gr-u name op ope regtype attr profile comment) + (dni name + (comment) + ((UNIT LOAD) (FR500-MAJOR I-2) (MACH frv) attr) + (.str name "$pack @($GRi,$GRj),$" regtype "k") + (+ pack (.sym regtype k) op GRi ope GRj) + (load-quad-non-gr-u-semantics regtype) + profile + ) +) + +(load-quad-non-gr-u ldqfu OP_02 OPE1_1C FRint FR-ACCESS + ((fr500 (unit u-fr-load))) "Load quad float, update index") +(load-quad-non-gr-u ldqcu OP_02 OPE1_1F CPR NA + () "Load coprocessor quad word, update index") + +(define-pmacro (ne-load-quad-non-gr-u name op ope regtype size comment) + (dni name + (comment) + ((UNIT LOAD) (FR500-MAJOR I-2) (MACH frv) NON-EXCEPTING FR-ACCESS) + (.str name "$pack @($GRi,$GRj),$" regtype "k") + (+ pack (.sym regtype k) op GRi ope GRj) + (ne-load-semantics GRi (index-of GRj) (.sym regtype k) 0 size 1 + (load-quad-non-gr-u-semantics regtype)) + ((fr500 (unit u-fr-load))) + ) +) + +(ne-load-quad-non-gr-u nldqfu OP_02 OPE1_3C FRint (ne-XI-size) "Load quad float,update index") + +(define-pmacro (load-r-simm name mode op regtype attr profile comment) + (dni name + (comment) + ((UNIT LOAD) (FR500-MAJOR I-2) (FR400-MAJOR I-2) attr) + (.str name "$pack @($GRi,$d12),$" regtype "k") + (+ pack (.sym regtype k) op GRi d12) + (set (.sym regtype k) + (c-call mode (.str "@cpu@_read_mem_" mode) pc (add GRi d12))) + profile + ) +) + +(load-r-simm ldsbi QI OP_30 GR NA + ((fr400 (unit u-gr-load)) (fr500 (unit u-gr-load))) + "Load signed byte") +(load-r-simm ldshi HI OP_31 GR NA + ((fr400 (unit u-gr-load)) (fr500 (unit u-gr-load))) + "Load signed half") +(load-r-simm ldi SI OP_32 GR NA + ((fr400 (unit u-gr-load)) (fr500 (unit u-gr-load))) + "Load word") +(load-r-simm ldubi UQI OP_35 GR NA + ((fr400 (unit u-gr-load)) (fr500 (unit u-gr-load))) + "Load unsigned byte") +(load-r-simm lduhi UHI OP_36 GR NA + ((fr400 (unit u-gr-load)) (fr500 (unit u-gr-load))) + "Load unsigned half") + +(load-r-simm ldbfi UQI OP_38 FRint FR-ACCESS + ((fr400 (unit u-fr-load)) (fr500 (unit u-fr-load))) + "Load byte float") +(load-r-simm ldhfi UHI OP_39 FRint FR-ACCESS + ((fr400 (unit u-fr-load)) (fr500 (unit u-fr-load))) + "Load half float") +(load-r-simm ldfi SI OP_3A FRint FR-ACCESS + ((fr400 (unit u-fr-load)) (fr500 (unit u-fr-load))) + "Load word float") + +(define-pmacro (ne-load-r-simm + name mode op regtype size is_float attr profile comment) + (dni name + (comment) + ((UNIT LOAD) (FR500-MAJOR I-2) NON-EXCEPTING attr + (MACH simple,tomcat,fr500,frv)) + (.str name "$pack @($GRi,$d12),$" regtype "k") + (+ pack (.sym regtype k) op GRi d12) + (ne-load-semantics GRi -1 (.sym regtype k) d12 size is_float + (set (.sym regtype k) + (c-call mode (.str "@cpu@_read_mem_" mode) + pc (add GRi d12)))) + profile + ) +) + +(ne-load-r-simm nldsbi QI OP_40 GR (ne-QI-size) 0 NA + ((fr500 (unit u-gr-load))) "Load signed byte") +(ne-load-r-simm nldubi UQI OP_41 GR (ne-UQI-size) 0 NA + ((fr500 (unit u-gr-load))) "Load unsigned byte") +(ne-load-r-simm nldshi HI OP_42 GR (ne-HI-size) 0 NA + ((fr500 (unit u-gr-load))) "Load signed half") +(ne-load-r-simm nlduhi UHI OP_43 GR (ne-UHI-size) 0 NA + ((fr500 (unit u-gr-load))) "Load unsigned half") +(ne-load-r-simm nldi SI OP_44 GR (ne-SI-size) 0 NA + ((fr500 (unit u-gr-load))) "Load word") + +(ne-load-r-simm nldbfi UQI OP_48 FRint (ne-UQI-size) 1 FR-ACCESS + ((fr500 (unit u-fr-load))) "Load byte float") +(ne-load-r-simm nldhfi UHI OP_49 FRint (ne-UHI-size) 1 FR-ACCESS + ((fr500 (unit u-fr-load))) "Load half float") +(ne-load-r-simm nldfi SI OP_4A FRint (ne-SI-size) 1 FR-ACCESS + ((fr500 (unit u-fr-load))) "Load word float") + +(define-pmacro (load-double-r-simm + name not_gr mode op regtype attr profile comment) + (dni name + (comment) + ((UNIT LOAD) (FR500-MAJOR I-2) (FR400-MAJOR I-2) attr) + (.str name "$pack @($GRi,$d12),$" regtype "doublek") + (+ pack (.sym regtype doublek) op GRi d12) + (sequence ((WI address)) + (load-double-semantics not_gr mode regtype address d12)) + profile + ) +) + +(load-double-r-simm lddi 0 DI OP_33 GR NA + ((fr400 (unit u-gr-load)) (fr500 (unit u-gr-load))) + "Load double word") +(load-double-r-simm lddfi 1 DF OP_3B FR FR-ACCESS + ((fr400 (unit u-fr-load)) (fr500 (unit u-fr-load))) + "Load double float") + +(define-pmacro (ne-load-double-r-simm + name not_gr mode op regtype size is_float attr profile comment) + (dni name + (comment) + ((UNIT LOAD) (FR500-MAJOR I-2) NON-EXCEPTING attr + (MACH simple,tomcat,fr500,frv)) + (.str name "$pack @($GRi,$d12),$" regtype "doublek") + (+ pack (.sym regtype doublek) op GRi d12) + (sequence ((WI address)) + (ne-load-semantics GRi -1 (.sym regtype doublek) + d12 size is_float + (load-double-semantics not_gr mode + regtype + address d12))) + profile + ) +) + +(ne-load-double-r-simm nlddi 0 DI OP_45 GR (ne-DI-size) 0 NA + ((fr500 (unit u-gr-load))) "Load double word") +(ne-load-double-r-simm nlddfi 1 DF OP_4B FR (ne-DI-size) 1 FR-ACCESS + ((fr500 (unit u-fr-load))) "Load double float") + +(define-pmacro (load-quad-r-simm name op regtype attr profile comment) + (dni name + (comment) + ((UNIT LOAD) (FR500-MAJOR I-2) (MACH frv) attr) + (.str name "$pack @($GRi,$d12),$" regtype "k") + (+ pack (.sym regtype k) op GRi d12) + (sequence ((WI address)) + (load-quad-semantics regtype address d12)) + profile + ) +) + +(load-quad-r-simm ldqi OP_34 GR NA + ((fr500 (unit u-gr-load))) "Load quad word") +(load-quad-r-simm ldqfi OP_3C FRint FR-ACCESS + ((fr500 (unit u-fr-load))) "Load quad float") + +(define-pmacro (ne-load-quad-r-simm + name op regtype size is_float attr profile comment) + (dni name + (comment) + ((UNIT LOAD) (FR500-MAJOR I-2) (MACH frv) NON-EXCEPTING attr) + (.str name "$pack @($GRi,$d12),$" regtype "k") + (+ pack (.sym regtype k) op GRi d12) + (sequence ((WI address)) + (ne-load-semantics GRi -1 (.sym regtype k) d12 size is_float + (load-quad-semantics regtype address d12))) + profile + ) +) + +(ne-load-quad-r-simm nldqi OP_46 GR (ne-XI-size) 0 NA + ((fr500 (unit u-gr-load))) "Load quad word") +(ne-load-quad-r-simm nldqfi OP_4C FRint (ne-XI-size) 1 FR-ACCESS + ((fr500 (unit u-fr-load))) "Load quad float") + +(define-pmacro (store-r-r name mode op ope reg attr profile comment) + (dni name + (comment) + ((UNIT I0) (FR500-MAJOR I-3) (FR400-MAJOR I-3) attr) + (.str name "$pack $" reg "k,@($GRi,$GRj)") + (+ pack (.sym reg k) op GRi ope GRj) + (c-call VOID (.str "@cpu@_write_mem_" mode) + pc (add GRi GRj) (.sym reg k)) + profile + ) +) + +(store-r-r stb QI OP_03 OPE1_00 GR NA + ((fr400 (unit u-gr-store)) (fr500 (unit u-gr-store))) + "Store unsigned byte") +(store-r-r sth HI OP_03 OPE1_01 GR NA + ((fr400 (unit u-gr-store)) (fr500 (unit u-gr-store))) + "Store unsigned half") +(store-r-r st SI OP_03 OPE1_02 GR NA + ((fr400 (unit u-gr-store)) (fr500 (unit u-gr-store))) + "Store word") + +(store-r-r stbf QI OP_03 OPE1_08 FRint FR-ACCESS + ((fr400 (unit u-fr-store)) (fr500 (unit u-fr-store))) + "Store byte float") +(store-r-r sthf HI OP_03 OPE1_09 FRint FR-ACCESS + ((fr400 (unit u-fr-store)) (fr500 (unit u-fr-store))) + "Store half float") +(store-r-r stf SI OP_03 OPE1_0A FRint FR-ACCESS + ((fr400 (unit u-fr-store)) (fr500 (unit u-fr-store))) + "Store word float") + +(store-r-r stc SI OP_03 OPE1_25 CPR (MACH frv) () "Store coprocessor word") + +(define-pmacro (r-store name mode op ope reg size is_float profile comment) + (dni name + (comment) + ((UNIT I0) (FR500-MAJOR I-3) (MACH frv)) + (.str name "$pack $" reg "k,@($GRi,$GRj)") + (+ pack (.sym reg k) op GRi ope GRj) + (sequence ((WI address)) + (set address (add GRi GRj)) + (c-call VOID (.str "@cpu@_write_mem_" mode) + pc address (.sym reg k)) + (c-call VOID "@cpu@_check_recovering_store" + address (index-of (.sym reg k)) size is_float)) + profile + ) +) + +(r-store rstb QI OP_03 OPE1_20 GR 1 0 + ((fr500 (unit u-gr-r-store))) "Store unsigned byte") +(r-store rsth HI OP_03 OPE1_21 GR 2 0 + ((fr500 (unit u-gr-r-store))) "Store unsigned half") +(r-store rst SI OP_03 OPE1_22 GR 4 0 + ((fr500 (unit u-gr-r-store))) "Store word") + +(r-store rstbf QI OP_03 OPE1_28 FRint 1 1 + ((fr500 (unit u-fr-r-store))) "Store byte float") +(r-store rsthf HI OP_03 OPE1_29 FRint 2 1 + ((fr500 (unit u-fr-r-store))) "Store half float") +(r-store rstf SI OP_03 OPE1_2A FRint 4 1 + ((fr500 (unit u-fr-r-store))) "Store word float") + +; Semantics for a store-double insn +; +(define-pmacro (store-double-semantics mode regtype address arg) + (sequence () + (set address (add GRi arg)) + (c-call VOID (.str "@cpu@_write_mem_" mode) + pc address (.sym regtype doublek))) +) + +(define-pmacro (store-double-r-r name mode op ope regtype attr profile comment) + (dni name + (comment) + ((UNIT I0) (FR500-MAJOR I-3) (FR400-MAJOR I-3) attr) + (.str name "$pack $" regtype "k,@($GRi,$GRj)") + (+ pack (.sym regtype k) op GRi ope GRj) + (sequence ((WI address)) + (store-double-semantics mode regtype address GRj)) + profile + ) +) + +(store-double-r-r std DI OP_03 OPE1_03 GR NA + ((fr400 (unit u-gr-store)) (fr500 (unit u-gr-store))) + "Store double word") +(store-double-r-r stdf DF OP_03 OPE1_0B FR FR-ACCESS + ((fr400 (unit u-fr-store)) (fr500 (unit u-fr-store))) + "Store double float") + +(store-double-r-r stdc DI OP_03 OPE1_26 CPR (MACH frv) + () "Store coprocessor double word") + +(define-pmacro (r-store-double + name mode op ope regtype is_float attr profile comment) + (dni name + (comment) + ((UNIT I0) (FR500-MAJOR I-3) (MACH frv) attr) + (.str name "$pack $" regtype "k,@($GRi,$GRj)") + (+ pack (.sym regtype k) op GRi ope GRj) + (sequence ((WI address)) + (store-double-semantics mode regtype address GRj) + (c-call VOID "@cpu@_check_recovering_store" + address (index-of (.sym regtype k)) 8 is_float)) + profile + ) +) + +(r-store-double rstd DI OP_03 OPE1_23 GR 0 NA + ((fr500 (unit u-gr-r-store))) "Store double word") +(r-store-double rstdf DF OP_03 OPE1_2B FR 1 FR-ACCESS + ((fr500 (unit u-fr-r-store))) "Store double float") + +; Semantics for a store-quad insn +; +(define-pmacro (store-quad-semantics regtype address arg) + (sequence () + (set address (add GRi arg)) + (c-call VOID (.str "@cpu@_store_quad_" regtype) + pc address (index-of (.sym regtype k)))) +) + +(define-pmacro (store-quad-r-r name op ope regtype attr profile comment) + (dni name + (comment) + ((UNIT I0) (FR500-MAJOR I-3) (MACH frv) attr) + (.str name "$pack $" regtype "k,@($GRi,$GRj)") + (+ pack (.sym regtype k) op GRi ope GRj) + (sequence ((WI address)) + (store-quad-semantics regtype address GRj)) + profile + ) +) + +(store-quad-r-r stq OP_03 OPE1_04 GR NA + ((fr500 (unit u-gr-store))) "Store quad word") +(store-quad-r-r stqf OP_03 OPE1_0C FRint FR-ACCESS + ((fr500 (unit u-fr-store))) + "Store quad float") +(store-quad-r-r stqc OP_03 OPE1_27 CPR NA + () "Store coprocessor quad word") + +(define-pmacro (r-store-quad name op ope regtype is_float attr profile comment) + (dni name + (comment) + ((UNIT I0) (FR500-MAJOR I-3) (MACH frv) attr) + (.str name "$pack $" regtype "k,@($GRi,$GRj)") + (+ pack (.sym regtype k) op GRi ope GRj) + (sequence ((WI address)) + (store-quad-semantics regtype address GRj) + (c-call VOID "@cpu@_check_recovering_store" + address (index-of (.sym regtype k)) 16 is_float)) + profile + ) +) + +(r-store-quad rstq OP_03 OPE1_24 GR 0 NA + ((fr500 (unit u-gr-r-store))) "Store quad word") +(r-store-quad rstqf OP_03 OPE1_2C FRint 1 FR-ACCESS + ((fr500 (unit u-fr-r-store))) "Store quad float") + +(define-pmacro (store-r-r-u name mode op ope regtype attr profile comment) + (dni name + (comment) + ((UNIT I0) (FR500-MAJOR I-3) (FR400-MAJOR I-3) attr) + (.str name "$pack $" regtype "k,@($GRi,$GRj)") + (+ pack (.sym regtype k) op GRi ope GRj) + (sequence ((UWI address)) + (set address (add GRi GRj)) + (c-call VOID (.str "@cpu@_write_mem_" mode) + pc address (.sym regtype k)) + (set GRi address)) + profile + ) +) + +(store-r-r-u stbu QI OP_03 OPE1_10 GR NA + ((fr400 (unit u-gr-store)) (fr500 (unit u-gr-store))) + "Store unsigned byte, update index") +(store-r-r-u sthu HI OP_03 OPE1_11 GR NA + ((fr400 (unit u-gr-store)) (fr500 (unit u-gr-store))) + "Store unsigned half, update index") +(store-r-r-u stu WI OP_03 OPE1_12 GR NA + ((fr400 (unit u-gr-store)) (fr500 (unit u-gr-store))) + "Store word, update index") + +(store-r-r-u stbfu QI OP_03 OPE1_18 FRint FR-ACCESS + ((fr400 (unit u-fr-store)) (fr500 (unit u-fr-store))) + "Store byte float, update index") +(store-r-r-u sthfu HI OP_03 OPE1_19 FRint FR-ACCESS + ((fr400 (unit u-fr-store)) (fr500 (unit u-fr-store))) + "Store half float, update index") +(store-r-r-u stfu SI OP_03 OPE1_1A FRint FR-ACCESS + ((fr400 (unit u-fr-store)) (fr500 (unit u-fr-store))) + "Store word float, update index") + +(store-r-r-u stcu SI OP_03 OPE1_2D CPR (MACH frv) () + "Store coprocessor word, update index") + +(define-pmacro (store-double-r-r-u + name mode op ope regtype attr profile comment) + (dni name + (comment) + ((UNIT I0) (FR500-MAJOR I-3) (FR400-MAJOR I-3) attr) + (.str name "$pack $" regtype "k,@($GRi,$GRj)") + (+ pack (.sym regtype k) op GRi ope GRj) + (sequence ((WI address)) + (store-double-semantics mode regtype address GRj) + (set GRi address)) + profile + ) +) + +(store-double-r-r-u stdu DI OP_03 OPE1_13 GR NA + ((fr400 (unit u-gr-store)) (fr500 (unit u-gr-store))) + "Store double word, update index") +(store-double-r-r-u stdfu DF OP_03 OPE1_1B FR FR-ACCESS + ((fr400 (unit u-fr-store)) (fr500 (unit u-fr-store))) + "Store double float,update index") +(store-double-r-r-u stdcu DI OP_03 OPE1_2E CPR (MACH frv) () + "Store coprocessor double word, update index") + +(define-pmacro (store-quad-r-r-u name op ope regtype attr profile comment) + (dni name + (comment) + ((UNIT I0) (FR500-MAJOR I-3) (MACH frv) attr) + (.str name "$pack $" regtype "k,@($GRi,$GRj)") + (+ pack (.sym regtype k) op GRi ope GRj) + (sequence ((WI address)) + (store-quad-semantics regtype address GRj) + (set GRi address)) + profile + ) +) + +(store-quad-r-r-u stqu OP_03 OPE1_14 GR NA + ((fr500 (unit u-gr-store))) + "Store quad word, update index") +(store-quad-r-r-u stqfu OP_03 OPE1_1C FRint FR-ACCESS + ((fr500 (unit u-fr-store))) + "Store quad float, update index") +(store-quad-r-r-u stqcu OP_03 OPE1_2F CPR NA () + "Store coprocessor quad word, update index") + +(define-pmacro (conditional-load name mode op ope regtype profile comment) + (dni name + (comment) + ((UNIT LOAD) (FR500-MAJOR I-2) (FR400-MAJOR I-2) CONDITIONAL) + (.str name "$pack @($GRi,$GRj),$" regtype "k,$CCi,$cond") + (+ pack (.sym regtype k) op GRi CCi cond ope GRj) + (if (eq CCi (or cond 2)) + (set (.sym regtype k) + (c-call mode (.str "@cpu@_read_mem_" mode) pc (add GRi GRj)))) + profile + ) +) + +(conditional-load cldsb QI OP_5E OPE4_0 GR + ((fr400 (unit u-gr-load)) (fr500 (unit u-gr-load))) + "Load signed byte") +(conditional-load cldub UQI OP_5E OPE4_1 GR + ((fr400 (unit u-gr-load)) (fr500 (unit u-gr-load))) + "Load unsigned byte") +(conditional-load cldsh HI OP_5E OPE4_2 GR + ((fr400 (unit u-gr-load)) (fr500 (unit u-gr-load))) + "Load signed half") +(conditional-load clduh UHI OP_5E OPE4_3 GR + ((fr400 (unit u-gr-load)) (fr500 (unit u-gr-load))) + "Load unsigned half") +(conditional-load cld SI OP_5F OPE4_0 GR + ((fr400 (unit u-gr-load)) (fr500 (unit u-gr-load))) + "Load word") + +(conditional-load cldbf UQI OP_60 OPE4_0 FRint + ((fr400 (unit u-fr-load)) (fr500 (unit u-fr-load))) + "Load byte float") +(conditional-load cldhf UHI OP_60 OPE4_1 FRint + ((fr400 (unit u-fr-load)) (fr500 (unit u-fr-load))) + "Load half float") +(conditional-load cldf SI OP_60 OPE4_2 FRint + ((fr400 (unit u-fr-load)) (fr500 (unit u-fr-load))) + "Load word float") + +(define-pmacro (conditional-load-double + name not_gr mode op ope regtype attr profile comment) + (dni name + (comment) + ((UNIT LOAD) (FR500-MAJOR I-2) (FR400-MAJOR I-2) CONDITIONAL attr) + (.str name "$pack @($GRi,$GRj),$" regtype "doublek,$CCi,$cond") + (+ pack (.sym regtype doublek) op GRi CCi cond ope GRj) + (if (eq CCi (or cond 2)) + (sequence ((WI address)) + (load-double-semantics not_gr mode regtype address GRj))) + profile + ) +) + +(conditional-load-double cldd 0 DI OP_5F OPE4_1 GR NA + ((fr400 (unit u-gr-load)) (fr500 (unit u-gr-load))) + "Load double word") +(conditional-load-double clddf 1 DF OP_60 OPE4_3 FR FR-ACCESS + ((fr400 (unit u-gr-load)) (fr500 (unit u-gr-load))) + "Load double float") + +(dni cldq + "conditional load quad integer" + ((UNIT LOAD) (FR500-MAJOR I-2) (MACH frv) CONDITIONAL) + "cldq$pack @($GRi,$GRj),$GRk,$CCi,$cond" + (+ pack GRk OP_5F GRi CCi cond OPE4_2 GRj) + (if (eq CCi (or cond 2)) + (sequence ((WI address)) + (load-quad-semantics GR address GRj))) + ((fr500 (unit u-gr-load))) +) + +(define-pmacro (conditional-load-gr-u name mode op ope comment) + (dni name + (comment) + ((UNIT LOAD) (FR500-MAJOR I-2) (FR400-MAJOR I-2) CONDITIONAL) + (.str name "$pack @($GRi,$GRj),$GRk,$CCi,$cond") + (+ pack GRk op GRi CCi cond ope GRj) + (if (eq CCi (or cond 2)) + (sequence ((WI address)) + (set address (add GRi GRj)) + (set GRk + (c-call mode (.str "@cpu@_read_mem_" mode) + pc address)) + (if (ne (index-of GRi) (index-of GRk)) + (set GRi address)))) + ((fr400 (unit u-gr-load)) + (fr500 (unit u-gr-load))) + ) +) + +(conditional-load-gr-u cldsbu QI OP_61 OPE4_0 "Load signed byte, update") +(conditional-load-gr-u cldubu UQI OP_61 OPE4_1 "Load unsigned byte, update") +(conditional-load-gr-u cldshu HI OP_61 OPE4_2 "Load signed half, update") +(conditional-load-gr-u clduhu UHI OP_61 OPE4_3 "Load unsigned half, update") +(conditional-load-gr-u cldu SI OP_62 OPE4_0 "Load word, update") + +(define-pmacro (conditional-load-non-gr-u name mode op ope regtype comment) + (dni name + (comment) + ((UNIT LOAD) (FR500-MAJOR I-2) (FR400-MAJOR I-2) CONDITIONAL FR-ACCESS) + (.str name "$pack @($GRi,$GRj),$" regtype "k,$CCi,$cond") + (+ pack (.sym regtype k) op GRi CCi cond ope GRj) + (if (eq CCi (or cond 2)) + (sequence ((WI address)) + (set address (add GRi GRj)) + (set (.sym regtype k) + (c-call mode (.str "@cpu@_read_mem_" mode) + pc address)) + (set GRi address))) + ((fr400 (unit u-fr-load)) + (fr500 (unit u-fr-load))) + ) +) + +(conditional-load-non-gr-u cldbfu UQI OP_63 OPE4_0 FRint "Load byte float, update") +(conditional-load-non-gr-u cldhfu UHI OP_63 OPE4_1 FRint "Load half float, update") +(conditional-load-non-gr-u cldfu SI OP_63 OPE4_2 FRint "Load word float, update") + + +(dni clddu + "Load double word, update" + ((UNIT LOAD) (FR500-MAJOR I-2) (FR400-MAJOR I-2) CONDITIONAL) + "clddu$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond" + (+ pack GRdoublek OP_62 GRi CCi cond OPE4_1 GRj) + (if (eq CCi (or cond 2)) + (sequence ((WI address)) + (load-double-semantics 0 DI GR address GRj) + (if (ne (index-of GRi) (index-of GRdoublek)) + (set GRi address)))) + ((fr400 (unit u-gr-load)) + (fr500 (unit u-gr-load))) +) + +(dni clddfu + "Load double float, update" + ((UNIT LOAD) (FR500-MAJOR I-2) (FR400-MAJOR I-2) CONDITIONAL FR-ACCESS) + "clddfu$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond" + (+ pack FRdoublek OP_63 GRi CCi cond OPE4_3 GRj) + (if (eq CCi (or cond 2)) + (sequence ((WI address)) + (load-double-semantics 1 DF FR address GRj) + (set GRi address))) + ((fr400 (unit u-fr-load)) + (fr500 (unit u-fr-load))) +) + +(dni cldqu + "conditional load quad integer and update index" + ((UNIT LOAD) (FR500-MAJOR I-2) (MACH frv) CONDITIONAL) + "cldqu$pack @($GRi,$GRj),$GRk,$CCi,$cond" + (+ pack GRk OP_62 GRi CCi cond OPE4_2 GRj) + (if (eq CCi (or cond 2)) + (sequence ((WI address)) + (load-quad-semantics GR address GRj) + (if (ne (index-of GRi) (index-of GRk)) + (set GRi address)))) + ((fr500 (unit u-gr-load))) +) + +(define-pmacro (conditional-store name mode op ope regtype profile comment) + (dni name + (comment) + ((UNIT I0) (FR500-MAJOR I-3) (FR400-MAJOR I-3) CONDITIONAL) + (.str name "$pack $" regtype "k,@($GRi,$GRj),$CCi,$cond") + (+ pack (.sym regtype k) op GRi CCi cond ope GRj) + (if (eq CCi (or cond 2)) + (c-call VOID (.str "@cpu@_write_mem_" mode) + pc (add GRi GRj) (.sym regtype k))) + profile + ) +) + +(conditional-store cstb QI OP_64 OPE4_0 GR + ((fr400 (unit u-gr-store)) (fr500 (unit u-gr-store))) + "Store unsigned byte") +(conditional-store csth HI OP_64 OPE4_1 GR + ((fr400 (unit u-gr-store)) (fr500 (unit u-gr-store))) + "Store unsigned half") +(conditional-store cst SI OP_64 OPE4_2 GR + ((fr400 (unit u-gr-store)) (fr500 (unit u-gr-store))) + "Store word") + +(conditional-store cstbf QI OP_66 OPE4_0 FRint + ((fr400 (unit u-fr-store)) (fr500 (unit u-fr-store))) + "Store byte float") +(conditional-store csthf HI OP_66 OPE4_1 FRint + ((fr400 (unit u-fr-store)) (fr500 (unit u-fr-store))) + "Store half float") +(conditional-store cstf SI OP_66 OPE4_2 FRint + ((fr400 (unit u-fr-store)) (fr500 (unit u-fr-store))) + "Store word float") + +(define-pmacro (conditional-store-double + name mode op ope regtype attr profile comment) + (dni name + (comment) + ((UNIT I0) (FR500-MAJOR I-3) (FR400-MAJOR I-3) CONDITIONAL attr) + (.str name "$pack $" regtype "k,@($GRi,$GRj),$CCi,$cond") + (+ pack (.sym regtype k) op GRi CCi cond ope GRj) + (if (eq CCi (or cond 2)) + (sequence ((WI address)) + (store-double-semantics mode regtype address GRj))) + profile + ) +) + +(conditional-store-double cstd DI OP_64 OPE4_3 GR NA + ((fr400 (unit u-gr-store)) (fr500 (unit u-gr-store))) + "Store double word") +(conditional-store-double cstdf DF OP_66 OPE4_3 FR FR-ACCESS + ((fr400 (unit u-fr-store)) (fr500 (unit u-fr-store))) + "Store double float") + +(dni cstq + "conditionally store quad word" + ((UNIT I0) (FR500-MAJOR I-3) (MACH frv) CONDITIONAL) + "cstq$pack $GRk,@($GRi,$GRj),$CCi,$cond" + (+ pack GRk OP_65 GRi CCi cond OPE4_0 GRj) + (if (eq CCi (or cond 2)) + (sequence ((WI address)) + (store-quad-semantics GR address GRj))) + ((fr500 (unit u-gr-store))) +) + +(define-pmacro (conditional-store-u + name mode op ope regtype attr profile comment) + (dni name + (comment) + ((UNIT I0) (FR500-MAJOR I-3) (FR400-MAJOR I-3) CONDITIONAL attr) + (.str name "$pack $" regtype "k,@($GRi,$GRj),$CCi,$cond") + (+ pack (.sym regtype k) op GRi CCi cond ope GRj) + (if (eq CCi (or cond 2)) + (sequence ((WI address)) + (set address (add GRi GRj)) + (c-call VOID (.str "@cpu@_write_mem_" mode) + pc address (.sym regtype k)) + (set GRi address))) + profile + ) +) + +(conditional-store-u cstbu QI OP_67 OPE4_0 GR NA + ((fr400 (unit u-gr-store)) (fr500 (unit u-gr-store))) + "Store unsigned byte, update index") +(conditional-store-u csthu HI OP_67 OPE4_1 GR NA + ((fr400 (unit u-gr-store)) (fr500 (unit u-gr-store))) + "Store unsigned half, update index") +(conditional-store-u cstu SI OP_67 OPE4_2 GR NA + ((fr400 (unit u-gr-store)) (fr500 (unit u-gr-store))) + "Store word, update index") + +(conditional-store-u cstbfu QI OP_68 OPE4_0 FRint FR-ACCESS + ((fr400 (unit u-fr-store)) (fr500 (unit u-fr-store))) + "Store byte float, update index") +(conditional-store-u csthfu HI OP_68 OPE4_1 FRint FR-ACCESS + ((fr400 (unit u-fr-store)) (fr500 (unit u-fr-store))) + "Store half float, update index") +(conditional-store-u cstfu SI OP_68 OPE4_2 FRint FR-ACCESS + ((fr400 (unit u-fr-store)) (fr500 (unit u-fr-store))) + "Store word float, update index") + +(define-pmacro (conditional-store-double-u + name mode op ope regtype attr profile comment) + (dni name + (comment) + ((UNIT I0) (FR500-MAJOR I-3) (FR400-MAJOR I-3) CONDITIONAL attr) + (.str name "$pack $" regtype "k,@($GRi,$GRj),$CCi,$cond") + (+ pack (.sym regtype k) op GRi CCi cond ope GRj) + (if (eq CCi (or cond 2)) + (sequence ((WI address)) + (store-double-semantics mode regtype address GRj) + (set GRi address))) + profile + ) +) + +(conditional-store-double-u cstdu DI OP_67 OPE4_3 GR NA + ((fr400 (unit u-gr-store)) + (fr500 (unit u-gr-store))) + "Store double word, update index") +(conditional-store-double-u cstdfu DF OP_68 OPE4_3 FR FR-ACCESS + ((fr400 (unit u-fr-store)) (fr500 (unit u-fr-store))) + "Store double float, update index") + +(define-pmacro (store-r-simm name mode op regtype attr profile comment) + (dni name + (comment) + ((UNIT I0) (FR500-MAJOR I-3) (FR400-MAJOR I-3) attr) + (.str name "$pack $" regtype "k,@($GRi,$d12)") + (+ pack (.sym regtype k) op GRi d12) + (c-call VOID (.str "@cpu@_write_mem_" mode) + pc (add GRi d12) (.sym regtype k)) + profile + ) +) + +(store-r-simm stbi QI OP_50 GR NA + ((fr400 (unit u-gr-store)) (fr500 (unit u-gr-store))) + "Store unsigned byte") +(store-r-simm sthi HI OP_51 GR NA + ((fr400 (unit u-gr-store)) (fr500 (unit u-gr-store))) + "Store unsigned half") +(store-r-simm sti SI OP_52 GR NA + ((fr400 (unit u-gr-store)) (fr500 (unit u-gr-store))) + "Store word") + +(store-r-simm stbfi QI OP_4E FRint FR-ACCESS + ((fr400 (unit u-fr-store)) (fr500 (unit u-fr-store))) + "Store byte float") +(store-r-simm sthfi HI OP_4F FRint FR-ACCESS + ((fr400 (unit u-fr-store)) (fr500 (unit u-fr-store))) + "Store half float") +(store-r-simm stfi SI OP_55 FRint FR-ACCESS + ((fr400 (unit u-fr-store)) (fr500 (unit u-fr-store))) + "Store word float") + +(define-pmacro (store-double-r-simm name mode op regtype attr profile comment) + (dni name + (comment) + ((UNIT I0) (FR500-MAJOR I-3) (FR400-MAJOR I-3) attr) + (.str name "$pack $" regtype "k,@($GRi,$d12)") + (+ pack (.sym regtype k) op GRi d12) + (sequence ((WI address)) + (store-double-semantics mode regtype address d12)) + profile + ) +) + +(store-double-r-simm stdi DI OP_53 GR NA + ((fr400 (unit u-gr-store)) (fr500 (unit u-gr-store))) + "Store double word") +(store-double-r-simm stdfi DF OP_56 FR FR-ACCESS + ((fr400 (unit u-fr-store)) (fr500 (unit u-fr-store))) + "Store double float") + +(define-pmacro (store-quad-r-simm name op regtype attr profile comment) + (dni name + (comment) + ((UNIT I0) (FR500-MAJOR I-3) (MACH frv) attr) + (.str name "$pack $" regtype "k,@($GRi,$d12)") + (+ pack (.sym regtype k) op GRi d12) + (sequence ((WI address)) + (store-quad-semantics regtype address d12)) + profile + ) +) + +(store-quad-r-simm stqi OP_54 GR NA ((fr500 (unit u-gr-store))) + "Store quad word") +(store-quad-r-simm stqfi OP_57 FRint FR-ACCESS () + "Store quad float") + +(define-pmacro (swap-semantics base offset arg) + (sequence ((WI tmp) (WI address)) + (set tmp arg) + (set address (add base offset)) + (set arg (c-call WI "@cpu@_read_mem_WI" pc address)) + (c-call VOID "@cpu@_write_mem_WI" pc address tmp)) +) + +(dni swap + "Swap contents of memory with GR" + ((UNIT C) (FR500-MAJOR C-2) (FR400-MAJOR C-2)) + "swap$pack @($GRi,$GRj),$GRk" + (+ pack GRk OP_03 GRi OPE1_05 GRj) + (swap-semantics GRi GRj GRk) + ((fr400 (unit u-swap)) + (fr500 (unit u-swap))) +) + +(dni "swapi" + "Swap contents of memory with GR" + ((UNIT C) (FR500-MAJOR C-2) (FR400-MAJOR C-2)) + ("swapi$pack @($GRi,$d12),$GRk") + (+ pack GRk OP_4D GRi d12) + (swap-semantics GRi d12 GRk) + ((fr400 (unit u-swap)) + (fr500 (unit u-swap))) +) + +(dni cswap + "Conditionally swap contents of memory with GR" + ((UNIT C) (FR500-MAJOR C-2) (FR400-MAJOR C-2) CONDITIONAL) + "cswap$pack @($GRi,$GRj),$GRk,$CCi,$cond" + (+ pack GRk OP_65 GRi CCi cond OPE4_2 GRj) + (if (eq CCi (or cond 2)) + (swap-semantics GRi GRj GRk)) + ((fr400 (unit u-swap)) + (fr500 (unit u-swap))) +) + +(define-pmacro (register-transfer + name op ope reg_src reg_targ pipe major1 major2 attr1 attr2 + profile comment) + (dni name + (comment) + ((UNIT pipe) major1 major2 attr1 attr2) + (.str name "$pack $" reg_src ",$" reg_targ) + (+ pack reg_targ op (rs-null) ope reg_src) + (set reg_targ reg_src) + profile + ) +) + +(register-transfer movgf OP_03 OPE1_15 + GRj FRintk I0 (FR500-MAJOR I-4) (FR400-MAJOR I-4) + FR-ACCESS NA + ((fr400 (unit u-gr2fr)) (fr500 (unit u-gr2fr))) + "transfer gr to fr") +(register-transfer movfg OP_03 OPE1_0D + FRintk GRj I0 (FR500-MAJOR I-4) (FR400-MAJOR I-4) + FR-ACCESS NA + ((fr400 (unit u-fr2gr)) (fr500 (unit u-fr2gr))) + "transfer fr to gr") + +(define-pmacro (nextreg hw r offset) (reg hw (add (index-of r) offset))) + +(define-pmacro (register-transfer-double-from-gr-semantics cond) + (if cond + (if (eq (index-of GRj) 0) + (sequence () + (set FRintk 0) + (set (nextreg h-fr_int FRintk 1) 0)) + (sequence () + (set FRintk GRj) + (set (nextreg h-fr_int FRintk 1) (nextreg h-gr GRj 1))))) +) + +(dni movgfd + "move GR for FR double" + ((UNIT I0) (FR500-MAJOR I-4) (FR400-MAJOR I-4) FR-ACCESS) + "movgfd$pack $GRj,$FRintk" + (+ pack FRintk OP_03 (rs-null) OPE1_16 GRj) + (register-transfer-double-from-gr-semantics 1) + ; TODO -- doesn't handle second register in the pair + ((fr400 (unit u-gr2fr)) + (fr500 (unit u-gr2fr))) +) + +(define-pmacro (register-transfer-double-to-gr-semantics cond) + (if (andif (ne (index-of GRj) 0) cond) + (sequence () + (set GRj FRintk) + (set (nextreg h-gr GRj 1) (nextreg h-fr_int FRintk 1)))) +) + +(dni movfgd + "move FR for GR double" + ((UNIT I0) (FR500-MAJOR I-4) (FR400-MAJOR I-4) FR-ACCESS) + "movfgd$pack $FRintk,$GRj" + (+ pack FRintk OP_03 (rs-null) OPE1_0E GRj) + (register-transfer-double-to-gr-semantics 1) + ; TODO -- doesn't handle second register in the pair + ((fr400 (unit u-fr2gr)) + (fr500 (unit u-fr2gr))) +) + +(dni movgfq + "move GR for FR quad" + ((UNIT I0) (FR500-MAJOR I-4) (MACH frv) FR-ACCESS) + "movgfq$pack $GRj,$FRintk" + (+ pack FRintk OP_03 (rs-null) OPE1_17 GRj) + (if (eq (index-of GRj) 0) + (sequence () + (set FRintk 0) + (set (reg h-fr_int (add (index-of FRintk) 1)) 0) + (set (reg h-fr_int (add (index-of FRintk) 2)) 0) + (set (reg h-fr_int (add (index-of FRintk) 3)) 0)) + (sequence () + (set FRintk GRj) + (set (reg h-fr_int (add (index-of FRintk) 1)) + (reg h-gr (add (index-of GRj) 1))) + (set (reg h-fr_int (add (index-of FRintk) 2)) + (reg h-gr (add (index-of GRj) 2))) + (set (reg h-fr_int (add (index-of FRintk) 3)) + (reg h-gr (add (index-of GRj) 3))))) + () +) + +(dni movfgq + "move FR for GR quad" + ((UNIT I0) (FR500-MAJOR I-4) (MACH frv) FR-ACCESS) + "movfgq$pack $FRintk,$GRj" + (+ pack FRintk OP_03 (rs-null) OPE1_0F GRj) + (if (ne (index-of GRj) 0) + (sequence () + (set GRj FRintk) + (set (reg h-gr (add (index-of GRj) 1)) + (reg h-fr_int (add (index-of FRintk) 1))) + (set (reg h-gr (add (index-of GRj) 2)) + (reg h-fr_int (add (index-of FRintk) 2))) + (set (reg h-gr (add (index-of GRj) 3)) + (reg h-fr_int (add (index-of FRintk) 3))))) + () +) + +(define-pmacro (conditional-register-transfer + name op ope reg_src reg_targ pipe major1 major2 mach + profile comment) + (dni name + (comment) + ((UNIT pipe) major1 major2 CONDITIONAL FR-ACCESS mach) + (.str name "$pack $" reg_src ",$" reg_targ ",$CCi,$cond") + (+ pack reg_targ op (rs-null) CCi cond ope reg_src) + (if (eq CCi (or cond 2)) + (set reg_targ reg_src)) + profile + ) +) + +(conditional-register-transfer cmovgf OP_69 OPE4_0 GRj FRintk I0 + (FR500-MAJOR I-4) (FR400-MAJOR I-4) + NA + ((fr400 (unit u-gr2fr)) (fr500 (unit u-gr2fr))) + "transfer gr to fr") +(conditional-register-transfer cmovfg OP_69 OPE4_2 FRintk GRj I0 + (FR500-MAJOR I-4) (FR400-MAJOR I-4) + NA + ((fr400 (unit u-fr2gr)) (fr500 (unit u-fr2gr))) + "transfer fr to gr") + + +(dni cmovgfd + "Conditional move GR to FR double" + ((UNIT I0) (FR500-MAJOR I-4) (FR400-MAJOR I-4) CONDITIONAL FR-ACCESS) + "cmovgfd$pack $GRj,$FRintk,$CCi,$cond" + (+ pack FRintk OP_69 (rs-null) CCi cond OPE4_1 GRj) + (register-transfer-double-from-gr-semantics (eq CCi (or cond 2))) + ; TODO -- doesn't handle extra registers in double + ((fr400 (unit u-gr2fr)) + (fr500 (unit u-gr2fr))) +) + +(dni cmovfgd + "Conditional move FR to GR double" + ((UNIT I0) (FR500-MAJOR I-4) (FR400-MAJOR I-4) CONDITIONAL FR-ACCESS) + "cmovfgd$pack $FRintk,$GRj,$CCi,$cond" + (+ pack FRintk OP_69 (rs-null) CCi cond OPE4_3 GRj) + (register-transfer-double-to-gr-semantics (eq CCi (or cond 2))) + ; TODO -- doesn't handle second register in the pair + ((fr400 (unit u-fr2gr)) + (fr500 (unit u-fr2gr))) +) + +(define-pmacro (register-transfer-spr + name op ope reg_src reg_targ unitname comment) + (dni name + (comment) + ((UNIT C) (FR500-MAJOR C-2) (FR400-MAJOR C-2)) + (.str name "$pack $" reg_src ",$" reg_targ) + (+ pack reg_targ op ope reg_src) + (set reg_targ reg_src) + ((fr400 (unit unitname)) + (fr500 (unit unitname))) + ) +) + +(register-transfer-spr movgs OP_03 OPE1_06 GRj spr u-gr2spr "transfer gr->spr") +(register-transfer-spr movsg OP_03 OPE1_07 spr GRj u-spr2gr "transfer spr->gr") + +; Integer Branch Conditions +(define-pmacro (Inev cc) (const BI 0)) +(define-pmacro (Ira cc) (const BI 1)) +(define-pmacro (Ieq cc) ( zbit cc)) +(define-pmacro (Ine cc) (not (zbit cc))) +(define-pmacro (Ile cc) ( orif (zbit cc) (xor (nbit cc) (vbit cc)))) +(define-pmacro (Igt cc) (not (orif (zbit cc) (xor (nbit cc) (vbit cc))))) +(define-pmacro (Ilt cc) ( xor (nbit cc) (vbit cc))) +(define-pmacro (Ige cc) (not (xor (nbit cc) (vbit cc)))) +(define-pmacro (Ils cc) ( orif (cbit cc) (zbit cc))) +(define-pmacro (Ihi cc) (not (orif (cbit cc) (zbit cc)))) +(define-pmacro (Ic cc) ( cbit cc)) +(define-pmacro (Inc cc) (not (cbit cc))) +(define-pmacro (In cc) ( nbit cc)) +(define-pmacro (Ip cc) (not (nbit cc))) +(define-pmacro (Iv cc) ( vbit cc)) +(define-pmacro (Inv cc) (not (vbit cc))) + +; Float Branch Conditions +(define-pmacro (Fnev cc) (const BI 0)) +(define-pmacro (Fra cc) (const BI 1)) +(define-pmacro (Fne cc) (orif (lbit cc) (orif (gbit cc) (ubit cc)))) +(define-pmacro (Feq cc) (ebit cc)) +(define-pmacro (Flg cc) (orif (lbit cc) (gbit cc))) +(define-pmacro (Fue cc) (orif (ebit cc) (ubit cc))) +(define-pmacro (Ful cc) (orif (lbit cc) (ubit cc))) +(define-pmacro (Fge cc) (orif (ebit cc) (gbit cc))) +(define-pmacro (Flt cc) (lbit cc)) +(define-pmacro (Fuge cc) (orif (ebit cc) (orif (gbit cc) (ubit cc)))) +(define-pmacro (Fug cc) (orif (gbit cc) (ubit cc))) +(define-pmacro (Fle cc) (orif (ebit cc) (lbit cc))) +(define-pmacro (Fgt cc) (gbit cc)) +(define-pmacro (Fule cc) (orif (ebit cc) (orif (lbit cc) (ubit cc)))) +(define-pmacro (Fu cc) (ubit cc)) +(define-pmacro (Fo cc) (orif (ebit cc) (orif (lbit cc) (gbit cc)))) + +(define-pmacro (conditional-branch-i prefix cc op cond comment) + (dni (.sym prefix cc) + (comment) + ((UNIT B01) (FR500-MAJOR B-1) (FR400-MAJOR B-1)) + (.str (.sym prefix cc) "$pack $ICCi_2,$hint,$label16") + (+ pack (.sym ICC_ cc) ICCi_2 op hint label16) + (sequence () + (c-call VOID "@cpu@_model_branch" label16 hint) + (if (cond ICCi_2) + (set pc label16))) + ((fr400 (unit u-branch)) + (fr500 (unit u-branch))) + ) +) + +(dni bra + "integer branch equal" + ((UNIT B01) (FR500-MAJOR B-1) (FR400-MAJOR B-1)) + "bra$pack $hint_taken$label16" + (+ pack ICC_ra (ICCi_2-null) OP_06 hint_taken label16) + (sequence () + (c-call VOID "@cpu@_model_branch" label16 hint_taken) + (set pc label16)) + ((fr400 (unit u-branch)) + (fr500 (unit u-branch))) +) + +(dni bno + "integer branch never" + ((UNIT B01) (FR500-MAJOR B-1) (FR400-MAJOR B-1)) + "bno$pack$hint_not_taken" + (+ pack ICC_nev (ICCi_2-null) OP_06 hint_not_taken (label16-null)) + (c-call VOID "@cpu@_model_branch" label16 hint_not_taken) + ((fr400 (unit u-branch)) + (fr500 (unit u-branch))) +) + +(conditional-branch-i b eq OP_06 Ieq "integer branch equal") +(conditional-branch-i b ne OP_06 Ine "integer branch not equal") +(conditional-branch-i b le OP_06 Ile "integer branch less or equal") +(conditional-branch-i b gt OP_06 Igt "integer branch greater") +(conditional-branch-i b lt OP_06 Ilt "integer branch less") +(conditional-branch-i b ge OP_06 Ige "integer branch greater or equal") +(conditional-branch-i b ls OP_06 Ils "integer branch less or equal unsigned") +(conditional-branch-i b hi OP_06 Ihi "integer branch greater unsigned") +(conditional-branch-i b c OP_06 Ic "integer branch carry set") +(conditional-branch-i b nc OP_06 Inc "integer branch carry clear") +(conditional-branch-i b n OP_06 In "integer branch negative") +(conditional-branch-i b p OP_06 Ip "integer branch positive") +(conditional-branch-i b v OP_06 Iv "integer branch overflow set") +(conditional-branch-i b nv OP_06 Inv "integer branch overflow clear") + +(define-pmacro (conditional-branch-f prefix cc op cond comment) + (dni (.sym prefix cc) + (comment) + ((UNIT B01) (FR500-MAJOR B-1) (FR400-MAJOR B-1) FR-ACCESS) + (.str (.sym prefix cc) "$pack $FCCi_2,$hint,$label16") + (+ pack (.sym FCC_ cc) FCCi_2 op hint label16) + (sequence () + (c-call VOID "@cpu@_model_branch" label16 hint) + (if (cond FCCi_2) (set pc label16))) + ((fr400 (unit u-branch)) + (fr500 (unit u-branch))) + ) +) + +(dni fbra + "float branch equal" + ((UNIT B01) (FR500-MAJOR B-1) (FR400-MAJOR B-1) FR-ACCESS) + "fbra$pack $hint_taken$label16" + (+ pack FCC_ra (FCCi_2-null) OP_07 hint_taken label16) + (sequence () + (c-call VOID "@cpu@_model_branch" label16 hint_taken) + (set pc label16)) + ((fr400 (unit u-branch)) + (fr500 (unit u-branch))) +) + +(dni fbno + "float branch never" + ((UNIT B01) (FR500-MAJOR B-1) (FR400-MAJOR B-1) FR-ACCESS) + "fbno$pack$hint_not_taken" + (+ pack FCC_nev (FCCi_2-null) OP_07 hint_not_taken (label16-null)) + (c-call VOID "@cpu@_model_branch" label16 hint_not_taken) + ((fr400 (unit u-branch)) + (fr500 (unit u-branch))) +) + +(conditional-branch-f fb ne OP_07 Fne "float branch not equal") +(conditional-branch-f fb eq OP_07 Feq "float branch equal") +(conditional-branch-f fb lg OP_07 Flg "float branch less or greater") +(conditional-branch-f fb ue OP_07 Fue "float branch unordered or equal") +(conditional-branch-f fb ul OP_07 Ful "float branch unordered or less") +(conditional-branch-f fb ge OP_07 Fge "float branch greater or equal") +(conditional-branch-f fb lt OP_07 Flt "float branch less") +(conditional-branch-f fb uge OP_07 Fuge "float branch unordered, greater,equal") +(conditional-branch-f fb ug OP_07 Fug "float branch unordered or greater") +(conditional-branch-f fb le OP_07 Fle "float branch less or equal") +(conditional-branch-f fb gt OP_07 Fgt "float branch greater") +(conditional-branch-f fb ule OP_07 Fule "float branch unordered, less or equal") +(conditional-branch-f fb u OP_07 Fu "float branch unordered") +(conditional-branch-f fb o OP_07 Fo "float branch ordered") + +(define-pmacro (ctrlr-branch-semantics cond ccond) + (sequence ((SI tmp)) + (set tmp (sub (spr-lcr) 1)) + (set (spr-lcr) tmp) + (if cond + (if (eq ccond 0) + (if (ne tmp 0) + (set pc (spr-lr))) + (if (eq tmp 0) + (set pc (spr-lr)))))) +) + +(dni bctrlr + "LCR conditional branch to lr" + ((UNIT B0) (FR500-MAJOR B-2) (FR400-MAJOR B-2)) + ("bctrlr$pack $ccond,$hint") + (+ pack (cond-null) (ICCi_2-null) OP_0E hint OPE3_01 ccond (s12-null)) + (sequence () + (c-call VOID "@cpu@_model_branch" (spr-lr) hint) + (ctrlr-branch-semantics (const BI 1) ccond)) + ((fr400 (unit u-branch)) + (fr500 (unit u-branch))) +) + +(define-pmacro (conditional-branch-cclr prefix cc i-f op ope cond attr comment) + (dni (.sym prefix cc lr) + (comment) + ((UNIT B01) (FR500-MAJOR B-3) (FR400-MAJOR B-3) attr) + (.str (.sym prefix cc lr) "$pack $" i-f "CCi_2,$hint") + (+ pack (.sym i-f CC_ cc) (.sym i-f CCi_2) op hint ope + (ccond-null) (s12-null)) + (sequence () + (c-call VOID "@cpu@_model_branch" (spr-lr) hint) + (if (cond (.sym i-f CCi_2)) (set pc (spr-lr)))) + ((fr400 (unit u-branch)) + (fr500 (unit u-branch))) + ) +) + +(dni bralr + "integer cclr branch always" + ((UNIT B01) (FR500-MAJOR B-3) (FR400-MAJOR B-3)) + "bralr$pack$hint_taken" + (+ pack ICC_ra (ICCi_2-null) OP_0E hint_taken OPE3_02 (ccond-null) (s12-null)) + (sequence () + (c-call VOID "@cpu@_model_branch" (spr-lr) hint_taken) + (set pc (spr-lr))) + ((fr400 (unit u-branch)) + (fr500 (unit u-branch))) +) + +(dni bnolr + "integer cclr branch never" + ((UNIT B01) (FR500-MAJOR B-3) (FR400-MAJOR B-3)) + "bnolr$pack$hint_not_taken" + (+ pack ICC_nev (ICCi_2-null) OP_0E hint_not_taken OPE3_02 (ccond-null) (s12-null)) + (c-call VOID "@cpu@_model_branch" (spr-lr) hint_not_taken) + ((fr400 (unit u-branch)) + (fr500 (unit u-branch))) +) + +(conditional-branch-cclr b eq I OP_0E OPE3_02 Ieq NA "integer cclr branch equal") +(conditional-branch-cclr b ne I OP_0E OPE3_02 Ine NA "integer cclr branch not equal") +(conditional-branch-cclr b le I OP_0E OPE3_02 Ile NA "integer cclr branch less or equal") +(conditional-branch-cclr b gt I OP_0E OPE3_02 Igt NA "integer cclr branch greater") +(conditional-branch-cclr b lt I OP_0E OPE3_02 Ilt NA "integer cclr branch less") +(conditional-branch-cclr b ge I OP_0E OPE3_02 Ige NA "integer cclr branch greater or equal") +(conditional-branch-cclr b ls I OP_0E OPE3_02 Ils NA "integer cclr branch less or equal unsigned") +(conditional-branch-cclr b hi I OP_0E OPE3_02 Ihi NA "integer cclr branch greater unsigned") +(conditional-branch-cclr b c I OP_0E OPE3_02 Ic NA "integer cclr branch carry set") +(conditional-branch-cclr b nc I OP_0E OPE3_02 Inc NA "integer cclr branch carry clear") +(conditional-branch-cclr b n I OP_0E OPE3_02 In NA "integer cclr branch negative") +(conditional-branch-cclr b p I OP_0E OPE3_02 Ip NA "integer cclr branch positive") +(conditional-branch-cclr b v I OP_0E OPE3_02 Iv NA "integer cclr branch overflow set") +(conditional-branch-cclr b nv I OP_0E OPE3_02 Inv NA "integer cclr branch overflow clear") + +(dni fbralr + "float cclr branch always" + ((UNIT B01) (FR500-MAJOR B-3) (FR400-MAJOR B-3) FR-ACCESS) + "fbralr$pack$hint_taken" + (+ pack FCC_ra (FCCi_2-null) OP_0E hint_taken OPE3_06 (ccond-null) (s12-null)) + (sequence () + (c-call VOID "@cpu@_model_branch" (spr-lr) hint_taken) + (set pc (spr-lr))) + ((fr400 (unit u-branch)) + (fr500 (unit u-branch))) +) + +(dni fbnolr + "float cclr branch never" + ((UNIT B01) (FR500-MAJOR B-3) (FR400-MAJOR B-3) FR-ACCESS) + "fbnolr$pack$hint_not_taken" + (+ pack FCC_nev (FCCi_2-null) OP_0E hint_not_taken OPE3_06 (ccond-null) (s12-null)) + (c-call VOID "@cpu@_model_branch" (spr-lr) hint_not_taken) + ((fr400 (unit u-branch)) + (fr500 (unit u-branch))) +) + +(conditional-branch-cclr fb eq F OP_0E OPE3_06 Feq FR-ACCESS "float cclr branch equal") +(conditional-branch-cclr fb ne F OP_0E OPE3_06 Fne FR-ACCESS "float cclr branch not equal") +(conditional-branch-cclr fb lg F OP_0E OPE3_06 Flg FR-ACCESS "float branch less or greater") +(conditional-branch-cclr fb ue F OP_0E OPE3_06 Fue FR-ACCESS "float branch unordered or equal") +(conditional-branch-cclr fb ul F OP_0E OPE3_06 Ful FR-ACCESS "float branch unordered or less") +(conditional-branch-cclr fb ge F OP_0E OPE3_06 Fge FR-ACCESS "float branch greater or equal") +(conditional-branch-cclr fb lt F OP_0E OPE3_06 Flt FR-ACCESS "float branch less") +(conditional-branch-cclr fb uge F OP_0E OPE3_06 Fuge FR-ACCESS "float branch unordered, greater, equal") +(conditional-branch-cclr fb ug F OP_0E OPE3_06 Fug FR-ACCESS "float branch unordered or greater") +(conditional-branch-cclr fb le F OP_0E OPE3_06 Fle FR-ACCESS "float branch less or equal") +(conditional-branch-cclr fb gt F OP_0E OPE3_06 Fgt FR-ACCESS "float branch greater") +(conditional-branch-cclr fb ule F OP_0E OPE3_06 Fule FR-ACCESS "float branch unordered, less or equal") +(conditional-branch-cclr fb u F OP_0E OPE3_06 Fu FR-ACCESS "float branch unordered") +(conditional-branch-cclr fb o F OP_0E OPE3_06 Fo FR-ACCESS "float branch ordered") + +(define-pmacro (conditional-branch-ctrlr prefix cc i-f op ope cond attr comment) + (dni (.sym prefix cc lr) + (comment) + ((UNIT B0) (FR500-MAJOR B-2) (FR400-MAJOR B-2) attr) + (.str (.sym prefix cc lr) "$pack $" i-f "CCi_2,$ccond,$hint") + (+ pack (.sym i-f CC_ cc) (.sym i-f CCi_2) op hint ope ccond (s12-null)) + (sequence () + (c-call VOID "@cpu@_model_branch" (spr-lr) hint) + (ctrlr-branch-semantics (cond (.sym i-f CCi_2)) ccond)) + ((fr400 (unit u-branch)) + (fr500 (unit u-branch))) + ) +) + +(dni bcralr + "integer ctrlr branch always" + ((UNIT B0) (FR500-MAJOR B-2) (FR400-MAJOR B-2)) + "bcralr$pack $ccond$hint_taken" + (+ pack ICC_ra (ICCi_2-null) OP_0E hint_taken OPE3_03 ccond (s12-null)) + (sequence () + (c-call VOID "@cpu@_model_branch" (spr-lr) hint_taken) + (ctrlr-branch-semantics (const BI 1) ccond)) + ((fr400 (unit u-branch)) + (fr500 (unit u-branch))) +) + +(dni bcnolr + "integer ctrlr branch never" + ((UNIT B0) (FR500-MAJOR B-2) (FR400-MAJOR B-2)) + "bcnolr$pack$hint_not_taken" + (+ pack ICC_nev (ICCi_2-null) OP_0E hint_not_taken OPE3_03 (ccond-null) (s12-null)) + (sequence () + (c-call VOID "@cpu@_model_branch" (spr-lr) hint_not_taken) + (ctrlr-branch-semantics (const BI 0) ccond)) + ((fr400 (unit u-branch)) + (fr500 (unit u-branch))) +) + +(conditional-branch-ctrlr bc eq I OP_0E OPE3_03 Ieq NA "integer ctrlr branch equal") +(conditional-branch-ctrlr bc ne I OP_0E OPE3_03 Ine NA "integer ctrlr branch not equal") +(conditional-branch-ctrlr bc le I OP_0E OPE3_03 Ile NA "integer ctrlr branch less equal") +(conditional-branch-ctrlr bc gt I OP_0E OPE3_03 Igt NA "integer ctrlr branch greater") +(conditional-branch-ctrlr bc lt I OP_0E OPE3_03 Ilt NA "integer ctrlr branch less") +(conditional-branch-ctrlr bc ge I OP_0E OPE3_03 Ige NA "integer ctrlr branch greater equal") +(conditional-branch-ctrlr bc ls I OP_0E OPE3_03 Ils NA "integer ctrlr branch less equal unsigned") +(conditional-branch-ctrlr bc hi I OP_0E OPE3_03 Ihi NA "integer ctrlr branch greater unsigned") +(conditional-branch-ctrlr bc c I OP_0E OPE3_03 Ic NA "integer ctrlr branch carry set") +(conditional-branch-ctrlr bc nc I OP_0E OPE3_03 Inc NA "integer ctrlr branch carry clear") +(conditional-branch-ctrlr bc n I OP_0E OPE3_03 In NA "integer ctrlr branch negative") +(conditional-branch-ctrlr bc p I OP_0E OPE3_03 Ip NA "integer ctrlr branch positive") +(conditional-branch-ctrlr bc v I OP_0E OPE3_03 Iv NA "integer ctrlr branch overflow set") +(conditional-branch-ctrlr bc nv I OP_0E OPE3_03 Inv NA "integer ctrlr branch overflow clear") + +(dni fcbralr + "float ctrlr branch always" + ((UNIT B0) (FR500-MAJOR B-2) (FR400-MAJOR B-2) FR-ACCESS) + "fcbralr$pack $ccond$hint_taken" + (+ pack FCC_ra (FCCi_2-null) OP_0E hint_taken OPE3_07 ccond (s12-null)) + (sequence () + (c-call VOID "@cpu@_model_branch" (spr-lr) hint_taken) + (ctrlr-branch-semantics (const BI 1) ccond)) + ((fr400 (unit u-branch)) + (fr500 (unit u-branch))) +) + +(dni fcbnolr + "float ctrlr branch never" + ((UNIT B0) (FR500-MAJOR B-2) (FR400-MAJOR B-2) FR-ACCESS) + "fcbnolr$pack$hint_not_taken" + (+ pack FCC_nev (FCCi_2-null) OP_0E hint_not_taken OPE3_07 (ccond-null) (s12-null)) + (sequence () + (c-call VOID "@cpu@_model_branch" (spr-lr) hint_not_taken) + (ctrlr-branch-semantics (const BI 0) ccond)) + ((fr400 (unit u-branch)) + (fr500 (unit u-branch))) +) + +(conditional-branch-ctrlr fcb eq F OP_0E OPE3_07 Feq FR-ACCESS "float cclr branch equal") +(conditional-branch-ctrlr fcb ne F OP_0E OPE3_07 Fne FR-ACCESS "float cclr branch not equal") +(conditional-branch-ctrlr fcb lg F OP_0E OPE3_07 Flg FR-ACCESS "float branch less or greater") +(conditional-branch-ctrlr fcb ue F OP_0E OPE3_07 Fue FR-ACCESS "float branch unordered or equal") +(conditional-branch-ctrlr fcb ul F OP_0E OPE3_07 Ful FR-ACCESS "float branch unordered or less") +(conditional-branch-ctrlr fcb ge F OP_0E OPE3_07 Fge FR-ACCESS "float branch greater or equal") +(conditional-branch-ctrlr fcb lt F OP_0E OPE3_07 Flt FR-ACCESS "float branch less") +(conditional-branch-ctrlr fcb uge F OP_0E OPE3_07 Fuge FR-ACCESS "float branch unordered, greater, equal") +(conditional-branch-ctrlr fcb ug F OP_0E OPE3_07 Fug FR-ACCESS "float branch unordered or greater") +(conditional-branch-ctrlr fcb le F OP_0E OPE3_07 Fle FR-ACCESS "float branch less or equal") +(conditional-branch-ctrlr fcb gt F OP_0E OPE3_07 Fgt FR-ACCESS "float branch greater") +(conditional-branch-ctrlr fcb ule F OP_0E OPE3_07 Fule FR-ACCESS "float branch unordered, less or equal") +(conditional-branch-ctrlr fcb u F OP_0E OPE3_07 Fu FR-ACCESS "float branch unordered") +(conditional-branch-ctrlr fcb o F OP_0E OPE3_07 Fo FR-ACCESS "float branch ordered") + +(define-pmacro (jump-and-link-semantics base offset LI) + (sequence () + (if (eq LI 1) + (c-call VOID "@cpu@_set_write_next_vliw_addr_to_LR" 1)) + ; Target address gets aligned here + (set pc (and (add base offset) #xfffffffc)) + (c-call VOID "@cpu@_model_branch" pc #x2)) ; hint branch taken +) + +(dni jmpl + "jump and link" + ((UNIT I0) (FR500-MAJOR I-5) (FR400-MAJOR I-5)) + "jmpl$pack @($GRi,$GRj)" + (+ pack (misc-null-1) (LI-off) OP_0C GRi (misc-null-2) GRj) + (jump-and-link-semantics GRi GRj LI) + ((fr400 (unit u-branch)) + (fr500 (unit u-branch))) +) + +(dni calll + "call and link" + ((UNIT I0) (FR500-MAJOR I-5) (FR400-MAJOR I-5)) + "calll$pack @($GRi,$GRj)" + (+ pack (misc-null-1) (LI-on) OP_0C GRi (misc-null-2) GRj) + (jump-and-link-semantics GRi GRj LI) + ((fr400 (unit u-branch)) + (fr500 (unit u-branch))) +) + +(dni jmpil + "jump immediate and link" + ((UNIT I0) (FR500-MAJOR I-5) (FR400-MAJOR I-5)) + "jmpil$pack @($GRi,$s12)" + (+ pack (misc-null-1) (LI-off) OP_0D GRi s12) + (jump-and-link-semantics GRi s12 LI) + ((fr400 (unit u-branch)) + (fr500 (unit u-branch))) +) + +(dni callil + "call immediate and link" + ((UNIT I0) (FR500-MAJOR I-5) (FR400-MAJOR I-5)) + "callil$pack @($GRi,$s12)" + (+ pack (misc-null-1) (LI-on) OP_0D GRi s12) + (jump-and-link-semantics GRi s12 LI) + ((fr400 (unit u-branch)) + (fr500 (unit u-branch))) +) + +(dni call + "call and link" + ((UNIT B0) (FR500-MAJOR B-4) (FR400-MAJOR B-4)) + "call$pack $label24" + (+ pack OP_0F label24) + (sequence () + (c-call VOID "@cpu@_set_write_next_vliw_addr_to_LR" 1) + (set pc label24) + (c-call VOID "@cpu@_model_branch" pc #x2)) ; hint branch taken + ((fr400 (unit u-branch)) + (fr500 (unit u-branch))) +) + +(dni rett + "return from trap" + ((UNIT C) (FR500-MAJOR C-2) (FR400-MAJOR C-2) PRIVILEGED) + "rett$pack $debug" + (+ pack (misc-null-1) debug OP_05 (rs-null) (s12-null)) + ; frv_rett handles operating vs user mode + (sequence () + (set pc (c-call UWI "frv_rett" pc debug)) + (c-call VOID "@cpu@_model_branch" pc #x2)) ; hint branch taken + () +) + +(dni rei + "run exception instruction" + ((UNIT C) (FR500-MAJOR C-1) (MACH frv) PRIVILEGED) + "rei$pack $eir" + (+ pack (rd-null) OP_37 eir (s12-null)) + (nop) ; for now + () +) + +(define-pmacro (trap-semantics cond base offset) + (if cond + (sequence () + ; This is defered to frv_itrap because for the breakpoint + ; case we want to change as little of the machine state as + ; possible. + ; + ; PCSR=PC + ; PSR.PS=PSR.S + ; PSR.ET=0 + ; if PSR.ESR==1 + ; SR0 through SR3=GR4 through GR7 + ; TBR.TT=0x80 + ((GRi + s12) & 0x7f) + ; PC=TBR + ; We still should indicate what is modified by this insn. + (clobber (spr-pcsr)) + (clobber psr_ps) + (clobber psr_et) + (clobber tbr_tt) + (if (ne psr_esr (const 0)) + (sequence () + (clobber (spr-sr0)) + (clobber (spr-sr1)) + (clobber (spr-sr2)) + (clobber (spr-sr3)))) + ; frv_itrap handles operating vs user mode + (c-call VOID "frv_itrap" pc base offset))) +) + +(define-pmacro (trap-r prefix cc i-f op ope cond attr comment) + (dni (.sym prefix cc) + (comment) + ((UNIT C) (FR500-MAJOR C-1) (FR400-MAJOR C-1) attr) + (.str (.sym prefix cc) "$pack $" i-f "CCi_2,$GRi,$GRj") + (+ pack (.sym i-f CC_ cc) (.sym i-f CCi_2) op GRi (misc-null-3) ope GRj) + (trap-semantics (cond (.sym i-f CCi_2)) GRi GRj) + ((fr400 (unit u-trap)) + (fr500 (unit u-trap))) + ) +) + +(dni tra + "integer trap always" + ((UNIT C) (FR500-MAJOR C-1) (FR400-MAJOR C-1)) + "tra$pack $GRi,$GRj" + (+ pack ICC_ra (ICCi_2-null) OP_04 GRi (misc-null-3) OPE4_0 GRj) + (trap-semantics (const BI 1) GRi GRj) + ((fr400 (unit u-trap)) + (fr500 (unit u-trap))) +) + +(dni tno + "integer trap never" + ((UNIT C) (FR500-MAJOR C-1) (FR400-MAJOR C-1)) + "tno$pack" + (+ pack ICC_nev (ICCi_2-null) OP_04 (GRi-null) (misc-null-3) OPE4_0 (GRj-null)) + (trap-semantics (const BI 0) GRi GRj) + ((fr400 (unit u-trap)) + (fr500 (unit u-trap))) +) + +(trap-r t eq I OP_04 OPE4_0 Ieq NA "integer trap equal") +(trap-r t ne I OP_04 OPE4_0 Ine NA "integer trap not equal") +(trap-r t le I OP_04 OPE4_0 Ile NA "integer trap less or equal") +(trap-r t gt I OP_04 OPE4_0 Igt NA "integer trap greater") +(trap-r t lt I OP_04 OPE4_0 Ilt NA "integer trap less") +(trap-r t ge I OP_04 OPE4_0 Ige NA "integer trap greater or equal") +(trap-r t ls I OP_04 OPE4_0 Ils NA "integer trap less or equal unsigned") +(trap-r t hi I OP_04 OPE4_0 Ihi NA "integer trap greater unsigned") +(trap-r t c I OP_04 OPE4_0 Ic NA "integer trap carry set") +(trap-r t nc I OP_04 OPE4_0 Inc NA "integer trap carry clear") +(trap-r t n I OP_04 OPE4_0 In NA "integer trap negative") +(trap-r t p I OP_04 OPE4_0 Ip NA "integer trap positive") +(trap-r t v I OP_04 OPE4_0 Iv NA "integer trap overflow set") +(trap-r t nv I OP_04 OPE4_0 Inv NA "integer trap overflow clear") + +(dni ftra + "float trap always" + ((UNIT C) (FR500-MAJOR C-1) (FR400-MAJOR C-1) FR-ACCESS) + "ftra$pack $GRi,$GRj" + (+ pack FCC_ra (FCCi_2-null) OP_04 GRi (misc-null-3) OPE4_1 GRj) + (trap-semantics (const BI 1) GRi GRj) + ((fr400 (unit u-trap)) + (fr500 (unit u-trap))) +) + +(dni ftno + "flost trap never" + ((UNIT C) (FR500-MAJOR C-1) (FR400-MAJOR C-1) FR-ACCESS) + "ftno$pack" + (+ pack FCC_nev (FCCi_2-null) OP_04 (GRi-null) (misc-null-3) OPE4_1 (GRj-null)) + (trap-semantics (const BI 0) GRi GRj) + ((fr400 (unit u-trap)) + (fr500 (unit u-trap))) +) + +(trap-r ft ne F OP_04 OPE4_1 Fne FR-ACCESS "float trap not equal") +(trap-r ft eq F OP_04 OPE4_1 Feq FR-ACCESS "float trap equal") +(trap-r ft lg F OP_04 OPE4_1 Flg FR-ACCESS "float trap greater or less") +(trap-r ft ue F OP_04 OPE4_1 Fue FR-ACCESS "float trap unordered or equal") +(trap-r ft ul F OP_04 OPE4_1 Ful FR-ACCESS "float trap unordered or less") +(trap-r ft ge F OP_04 OPE4_1 Fge FR-ACCESS "float trap greater or equal") +(trap-r ft lt F OP_04 OPE4_1 Flt FR-ACCESS "float trap less") +(trap-r ft uge F OP_04 OPE4_1 Fuge FR-ACCESS "float trap unordered greater or equal") +(trap-r ft ug F OP_04 OPE4_1 Fug FR-ACCESS "float trap unordered or greater") +(trap-r ft le F OP_04 OPE4_1 Fle FR-ACCESS "float trap less or equal") +(trap-r ft gt F OP_04 OPE4_1 Fgt FR-ACCESS "float trap greater") +(trap-r ft ule F OP_04 OPE4_1 Fule FR-ACCESS "float trap unordered less or equal") +(trap-r ft u F OP_04 OPE4_1 Fu FR-ACCESS "float trap unordered") +(trap-r ft o F OP_04 OPE4_1 Fo FR-ACCESS "float trap ordered") + +(define-pmacro (trap-immed prefix cc i-f op cond attr comment) + (dni (.sym prefix cc) + (comment) + ((UNIT C) (FR500-MAJOR C-1) (FR400-MAJOR C-1) attr) + (.str (.sym prefix cc) "$pack $" i-f "CCi_2,$GRi,$s12") + (+ pack (.sym i-f CC_ cc) (.sym i-f CCi_2) op GRi s12) + (trap-semantics (cond (.sym i-f CCi_2)) GRi s12) + ((fr400 (unit u-trap)) + (fr500 (unit u-trap))) + ) +) + +(dni tira + "integer trap always" + ((UNIT C) (FR500-MAJOR C-1) (FR400-MAJOR C-1)) + "tira$pack $GRi,$s12" + (+ pack ICC_ra (ICCi_2-null) OP_1C GRi s12) + (trap-semantics (const BI 1) GRi s12) + ((fr400 (unit u-trap)) + (fr500 (unit u-trap))) +) + +(dni tino + "integer trap never" + ((UNIT C) (FR500-MAJOR C-1) (FR400-MAJOR C-1)) + "tino$pack" + (+ pack ICC_nev (ICCi_2-null) OP_1C (GRi-null) (s12-null)) + (trap-semantics (const BI 0) GRi s12) + ((fr400 (unit u-trap)) + (fr500 (unit u-trap))) +) + +(trap-immed ti eq I OP_1C Ieq NA "integer trap equal") +(trap-immed ti ne I OP_1C Ine NA "integer trap not equal") +(trap-immed ti le I OP_1C Ile NA "integer trap less or equal") +(trap-immed ti gt I OP_1C Igt NA "integer trap greater") +(trap-immed ti lt I OP_1C Ilt NA "integer trap less") +(trap-immed ti ge I OP_1C Ige NA "integer trap greater or equal") +(trap-immed ti ls I OP_1C Ils NA "integer trap less or equal unsigned") +(trap-immed ti hi I OP_1C Ihi NA "integer trap greater unsigned") +(trap-immed ti c I OP_1C Ic NA "integer trap carry set") +(trap-immed ti nc I OP_1C Inc NA "integer trap carry clear") +(trap-immed ti n I OP_1C In NA "integer trap negative") +(trap-immed ti p I OP_1C Ip NA "integer trap positive") +(trap-immed ti v I OP_1C Iv NA "integer trap overflow set") +(trap-immed ti nv I OP_1C Inv NA "integer trap overflow clear") + +(dni ftira + "float trap always" + ((UNIT C) (FR500-MAJOR C-1) (FR400-MAJOR C-1) FR-ACCESS) + "ftira$pack $GRi,$s12" + (+ pack FCC_ra (ICCi_2-null) OP_1D GRi s12) + (trap-semantics (const BI 1) GRi s12) + ((fr400 (unit u-trap)) + (fr500 (unit u-trap))) +) + +(dni ftino + "float trap never" + ((UNIT C) (FR500-MAJOR C-1) (FR400-MAJOR C-1) FR-ACCESS) + "ftino$pack" + (+ pack FCC_nev (FCCi_2-null) OP_1D (GRi-null) (s12-null)) + (trap-semantics (const BI 0) GRi s12) + ((fr400 (unit u-trap)) + (fr500 (unit u-trap))) +) + +(trap-immed fti ne F OP_1D Fne FR-ACCESS "float trap not equal") +(trap-immed fti eq F OP_1D Feq FR-ACCESS "float trap equal") +(trap-immed fti lg F OP_1D Flg FR-ACCESS "float trap greater or less") +(trap-immed fti ue F OP_1D Fue FR-ACCESS "float trap unordered or equal") +(trap-immed fti ul F OP_1D Ful FR-ACCESS "float trap unordered or less") +(trap-immed fti ge F OP_1D Fge FR-ACCESS "float trap greater or equal") +(trap-immed fti lt F OP_1D Flt FR-ACCESS "float trap less") +(trap-immed fti uge F OP_1D Fuge FR-ACCESS "float trap unordered greater or equal") +(trap-immed fti ug F OP_1D Fug FR-ACCESS "float trap unordered or greater") +(trap-immed fti le F OP_1D Fle FR-ACCESS "float trap less or equal") +(trap-immed fti gt F OP_1D Fgt FR-ACCESS "float trap greater") +(trap-immed fti ule F OP_1D Fule FR-ACCESS "float trap unordered less or equal") +(trap-immed fti u F OP_1D Fu FR-ACCESS "float trap unordered") +(trap-immed fti o F OP_1D Fo FR-ACCESS "float trap ordered") + +(dni break + "break trap" + ((UNIT C) (FR500-MAJOR C-1) (FR400-MAJOR C-1)) + "break$pack" + (+ pack (rd-null) OP_04 (rs-null) (misc-null-3) OPE4_3 (GRj-null)) + (sequence () + ; This is defered to frv_break because for the breakpoint + ; case we want to change as little of the machine state as + ; possible. + ; + ; BPCSR=PC + ; BPSR.BS=PSR.S + ; BPSR.BET=PSR.ET + ; PSR.S=1 + ; PSR.ET=0 + ; TBR.TT=0xff + ; PC=TBR + ; We still should indicate what is modified by this insn. + (clobber (spr-bpcsr)) + (clobber bpsr_bs) + (clobber bpsr_bet) + (clobber psr_s) + (clobber psr_et) + (clobber tbr_tt) + (c-call VOID "frv_break")) + () +) + +(dni mtrap + "media trap" + ((UNIT C) (FR500-MAJOR C-1) (FR400-MAJOR C-1) FR-ACCESS) + "mtrap$pack" + (+ pack (rd-null) OP_04 (rs-null) (misc-null-3) OPE4_2 (GRj-null)) + (c-call VOID "frv_mtrap") + () +) + +(define-pmacro (condition-code-logic name operation ope comment) + (dni name + (comment) + ((UNIT B01) (FR500-MAJOR B-6) (FR400-MAJOR B-6)) + (.str name "$pack $CRi,$CRj,$CRk") + (+ pack (misc-null-6) CRk OP_0A (misc-null-7) CRi ope (misc-null-8) CRj) + (set CRk (c-call UQI "@cpu@_cr_logic" operation CRi CRj)) + () + ) +) +(define-pmacro (op-andcr) 0) +(define-pmacro (op-orcr) 1) +(define-pmacro (op-xorcr) 2) +(define-pmacro (op-nandcr) 3) +(define-pmacro (op-norcr) 4) +(define-pmacro (op-andncr) 5) +(define-pmacro (op-orncr) 6) +(define-pmacro (op-nandncr) 7) +(define-pmacro (op-norncr) 8) + +(define-pmacro (cr-true) 3) +(define-pmacro (cr-false) 2) +(define-pmacro (cr-undefined) 0) + +(condition-code-logic andcr (op-andcr) OPE1_08 "and condition code regs") +(condition-code-logic orcr (op-orcr) OPE1_09 "or condition code regs") +(condition-code-logic xorcr (op-xorcr) OPE1_0A "xor condition code regs") +(condition-code-logic nandcr (op-nandcr) OPE1_0C "nand condition code regs") +(condition-code-logic norcr (op-norcr) OPE1_0D "nor condition code regs") +(condition-code-logic andncr (op-andncr) OPE1_10 "andn condition code regs") +(condition-code-logic orncr (op-orncr) OPE1_11 "orn condition code regs") +(condition-code-logic nandncr (op-nandncr) OPE1_14 "nandn condition code regs") +(condition-code-logic norncr (op-norncr) OPE1_15 "norn condition code regs") + +(dni notcr + ("not cccr register") + ((UNIT B01) (FR500-MAJOR B-6) (FR400-MAJOR B-6)) + (.str notcr "$pack $CRj,$CRk") + (+ pack (misc-null-6) CRk OP_0A (rs-null) OPE1_0B (misc-null-8) CRj) + (set CRk (xor CRj 1)) + () +) + +(define-pmacro (check-semantics cond cr) + (if cond (set cr (cr-true)) (set cr (cr-false))) +) + +(define-pmacro (check-int-condition-code prefix cc op cond comment) + (dni (.sym prefix cc) + (comment) + ((UNIT B01) (FR500-MAJOR B-5) (FR400-MAJOR B-5)) + (.str (.sym prefix cc) "$pack $ICCi_3,$CRj_int") + (+ pack (.sym ICC_ cc) CRj_int op (misc-null-5) ICCi_3) + (check-semantics (cond ICCi_3) CRj_int) + ((fr400 (unit u-check)) + (fr500 (unit u-check))) + ) +) + +(dni ckra + "check integer cc always" + ((UNIT B01) (FR500-MAJOR B-5) (FR400-MAJOR B-5)) + "ckra$pack $CRj_int" + (+ pack ICC_ra CRj_int OP_08 (misc-null-5) (ICCi_3-null)) + (check-semantics (const BI 1) CRj_int) + ((fr400 (unit u-check)) + (fr500 (unit u-check))) +) + +(dni ckno + "check integer cc never" + ((UNIT B01) (FR500-MAJOR B-5) (FR400-MAJOR B-5)) + "ckno$pack $CRj_int" + (+ pack ICC_nev CRj_int OP_08 (misc-null-5) (ICCi_3-null)) + (check-semantics (const BI 0) CRj_int) + ((fr400 (unit u-check)) + (fr500 (unit u-check))) +) + +(check-int-condition-code ck eq OP_08 Ieq "check integer cc equal") +(check-int-condition-code ck ne OP_08 Ine "check integer cc not equal") +(check-int-condition-code ck le OP_08 Ile "check integer cc less or equal") +(check-int-condition-code ck gt OP_08 Igt "check integer cc greater") +(check-int-condition-code ck lt OP_08 Ilt "check integer cc less") +(check-int-condition-code ck ge OP_08 Ige "check integer cc greater or equal") +(check-int-condition-code ck ls OP_08 Ils "check integer cc less or equal unsigned") +(check-int-condition-code ck hi OP_08 Ihi "check integer cc greater unsigned") +(check-int-condition-code ck c OP_08 Ic "check integer cc carry set") +(check-int-condition-code ck nc OP_08 Inc "check integer cc carry clear") +(check-int-condition-code ck n OP_08 In "check integer cc negative") +(check-int-condition-code ck p OP_08 Ip "check integer cc positive") +(check-int-condition-code ck v OP_08 Iv "check integer cc overflow set") +(check-int-condition-code ck nv OP_08 Inv "check integer cc overflow clear") + +(define-pmacro (check-float-condition-code prefix cc op cond comment) + (dni (.sym prefix cc) + (comment) + ((UNIT B01) (FR500-MAJOR B-5) (FR400-MAJOR B-5) FR-ACCESS) + (.str (.sym prefix cc) "$pack $FCCi_3,$CRj_float") + (+ pack (.sym FCC_ cc) CRj_float op (misc-null-5) FCCi_3) + (check-semantics (cond FCCi_3) CRj_float) + ((fr400 (unit u-check)) + (fr500 (unit u-check))) + ) +) + +(dni fckra + "check float cc always" + ((UNIT B01) (FR500-MAJOR B-5) (FR400-MAJOR B-5) FR-ACCESS) + "fckra$pack $CRj_float" + (+ pack FCC_ra CRj_float OP_09 (misc-null-5) FCCi_3) + (check-semantics (const BI 1) CRj_float) + ((fr400 (unit u-check)) + (fr500 (unit u-check))) +) + +(dni fckno + "check float cc never" + ((UNIT B01) (FR500-MAJOR B-5) (FR400-MAJOR B-5) FR-ACCESS) + "fckno$pack $CRj_float" + (+ pack FCC_nev CRj_float OP_09 (misc-null-5) FCCi_3) + (check-semantics (const BI 0) CRj_float) + ((fr400 (unit u-check)) + (fr500 (unit u-check))) +) + +(check-float-condition-code fck ne OP_09 Fne "check float cc not equal") +(check-float-condition-code fck eq OP_09 Feq "check float cc equal") +(check-float-condition-code fck lg OP_09 Flg "check float cc greater or less") +(check-float-condition-code fck ue OP_09 Fue "check float cc unordered or equal") +(check-float-condition-code fck ul OP_09 Ful "check float cc unordered or less") +(check-float-condition-code fck ge OP_09 Fge "check float cc greater or equal") +(check-float-condition-code fck lt OP_09 Flt "check float cc less") +(check-float-condition-code fck uge OP_09 Fuge "check float cc unordered greater or equal") +(check-float-condition-code fck ug OP_09 Fug "check float cc unordered or greater") +(check-float-condition-code fck le OP_09 Fle "check float cc less or equal") +(check-float-condition-code fck gt OP_09 Fgt "check float cc greater") +(check-float-condition-code fck ule OP_09 Fule "check float cc unordered less or equal") +(check-float-condition-code fck u OP_09 Fu "check float cc unordered") +(check-float-condition-code fck o OP_09 Fo "check float cc ordered") + +(define-pmacro (conditional-check-int-condition-code prefix cc op ope test comment) + (dni (.sym prefix cc) + (comment) + ((UNIT B01) (FR500-MAJOR B-5) (FR400-MAJOR B-5) CONDITIONAL) + (.str (.sym prefix cc) "$pack $ICCi_3,$CRj_int,$CCi,$cond") + (+ pack (.sym ICC_ cc) CRj_int op (rs-null) CCi cond ope + (misc-null-9) ICCi_3) + (if (eq CCi (or cond 2)) + (check-semantics (test ICCi_3) CRj_int) + (set CRj_int (cr-undefined))) + ((fr400 (unit u-check)) + (fr500 (unit u-check))) + ) +) + +(dni cckra + "conditional check integer cc always" + ((UNIT B01) (FR500-MAJOR B-5) (FR400-MAJOR B-5) CONDITIONAL) + "cckra$pack $CRj_int,$CCi,$cond" + (+ pack ICC_ra CRj_int OP_6A (rs-null) CCi cond OPE4_0 + (misc-null-9) (ICCi_3-null)) + (if (eq CCi (or cond 2)) + (check-semantics (const BI 1) CRj_int) + (set CRj_int (cr-undefined))) + ((fr400 (unit u-check)) + (fr500 (unit u-check))) +) + +(dni cckno + "conditional check integer cc never" + ((UNIT B01) (FR500-MAJOR B-5) (FR400-MAJOR B-5) CONDITIONAL) + "cckno$pack $CRj_int,$CCi,$cond" + (+ pack ICC_nev CRj_int OP_6A (rs-null) CCi cond OPE4_0 + (misc-null-9) (ICCi_3-null)) + (if (eq CCi (or cond 2)) + (check-semantics (const BI 0) CRj_int) + (set CRj_int (cr-undefined))) + ((fr400 (unit u-check)) + (fr500 (unit u-check))) +) + +(conditional-check-int-condition-code cck eq OP_6A OPE4_0 Ieq "check integer cc equal") +(conditional-check-int-condition-code cck ne OP_6A OPE4_0 Ine "check integer cc not equal") +(conditional-check-int-condition-code cck le OP_6A OPE4_0 Ile "check integer cc less or equal") +(conditional-check-int-condition-code cck gt OP_6A OPE4_0 Igt "check integer cc greater") +(conditional-check-int-condition-code cck lt OP_6A OPE4_0 Ilt "check integer cc less") +(conditional-check-int-condition-code cck ge OP_6A OPE4_0 Ige "check integer cc greater or equal") +(conditional-check-int-condition-code cck ls OP_6A OPE4_0 Ils "check integer cc less or equal unsigned") +(conditional-check-int-condition-code cck hi OP_6A OPE4_0 Ihi "check integer cc greater unsigned") +(conditional-check-int-condition-code cck c OP_6A OPE4_0 Ic "check integer cc carry set") +(conditional-check-int-condition-code cck nc OP_6A OPE4_0 Inc "check integer cc carry clear") +(conditional-check-int-condition-code cck n OP_6A OPE4_0 In "check integer cc negative") +(conditional-check-int-condition-code cck p OP_6A OPE4_0 Ip "check integer cc positive") +(conditional-check-int-condition-code cck v OP_6A OPE4_0 Iv "check integer cc overflow set") +(conditional-check-int-condition-code cck nv OP_6A OPE4_0 Inv "check integer cc overflow clear") + +(define-pmacro (conditional-check-float-condition-code prefix cc op ope test comment) + (dni (.sym prefix cc) + (comment) + ((UNIT B01) (FR500-MAJOR B-5) (FR400-MAJOR B-5) CONDITIONAL FR-ACCESS) + (.str (.sym prefix cc) "$pack $FCCi_3,$CRj_float,$CCi,$cond") + (+ pack (.sym FCC_ cc) CRj_float op (rs-null) CCi cond ope + (misc-null-9) FCCi_3) + (if (eq CCi (or cond 2)) + (check-semantics (test FCCi_3) CRj_float) + (set CRj_float (cr-undefined))) + ((fr400 (unit u-check)) + (fr500 (unit u-check))) + ) +) + +(dni cfckra + "conditional check float cc always" + ((UNIT B01) (FR500-MAJOR B-5) (FR400-MAJOR B-5) CONDITIONAL FR-ACCESS) + "cfckra$pack $CRj_float,$CCi,$cond" + (+ pack FCC_ra CRj_float OP_6A (rs-null) CCi cond OPE4_1 + (misc-null-9) (FCCi_3-null)) + (if (eq CCi (or cond 2)) + (check-semantics (const BI 1) CRj_float) + (set CRj_float (cr-undefined))) + ((fr400 (unit u-check)) + (fr500 (unit u-check))) +) + +(dni cfckno + "conditional check float cc never" + ((UNIT B01) (FR500-MAJOR B-5) (FR400-MAJOR B-5) CONDITIONAL FR-ACCESS) + "cfckno$pack $CRj_float,$CCi,$cond" + (+ pack FCC_nev CRj_float OP_6A (rs-null) CCi cond OPE4_1 + (misc-null-9) (FCCi_3-null)) + (if (eq CCi (or cond 2)) + (check-semantics (const BI 0) CRj_float) + (set CRj_float (cr-undefined))) + ((fr400 (unit u-check)) + (fr500 (unit u-check))) +) + +(conditional-check-float-condition-code cfck ne OP_6A OPE4_1 Fne "check float cc not equal") +(conditional-check-float-condition-code cfck eq OP_6A OPE4_1 Feq "check float cc equal") +(conditional-check-float-condition-code cfck lg OP_6A OPE4_1 Flg "check float cc greater or less") +(conditional-check-float-condition-code cfck ue OP_6A OPE4_1 Fue "check float cc unordered or equal") +(conditional-check-float-condition-code cfck ul OP_6A OPE4_1 Ful "check float cc unordered or less") +(conditional-check-float-condition-code cfck ge OP_6A OPE4_1 Fge "check float cc greater or equal") +(conditional-check-float-condition-code cfck lt OP_6A OPE4_1 Flt "check float cc less") +(conditional-check-float-condition-code cfck uge OP_6A OPE4_1 Fuge "check float cc unordered greater or equal") +(conditional-check-float-condition-code cfck ug OP_6A OPE4_1 Fug "check float cc unordered or greater") +(conditional-check-float-condition-code cfck le OP_6A OPE4_1 Fle "check float cc less or equal") +(conditional-check-float-condition-code cfck gt OP_6A OPE4_1 Fgt "check float cc greater") +(conditional-check-float-condition-code cfck ule OP_6A OPE4_1 Fule "check float cc unordered less or equal") +(conditional-check-float-condition-code cfck u OP_6A OPE4_1 Fu "check float cc unordered") +(conditional-check-float-condition-code cfck o OP_6A OPE4_1 Fo "check float cc ordered") + +(dni cjmpl + "conditional jump and link" + ((UNIT I0) (FR500-MAJOR I-5) (FR400-MAJOR I-5) CONDITIONAL) + "cjmpl$pack @($GRi,$GRj),$CCi,$cond" + (+ pack (misc-null-1) (LI-off) OP_6A GRi CCi cond OPE4_2 GRj) + (if (eq CCi (or cond 2)) + (jump-and-link-semantics GRi GRj LI)) + ((fr400 (unit u-branch)) + (fr500 (unit u-branch))) +) + +(dni ccalll + "conditional call and link" + ((UNIT I0) (FR500-MAJOR I-5) (FR400-MAJOR I-5) CONDITIONAL) + "ccalll$pack @($GRi,$GRj),$CCi,$cond" + (+ pack (misc-null-1) (LI-on) OP_6A GRi CCi cond OPE4_2 GRj) + (if (eq CCi (or cond 2)) + (jump-and-link-semantics GRi GRj LI)) + ((fr400 (unit u-branch)) + (fr500 (unit u-branch))) +) + +(define-pmacro (cache-invalidate name cache all op ope profile comment) + (dni name + (comment) + ((UNIT C) (FR500-MAJOR C-2) (FR400-MAJOR C-2)) + (.str name "$pack @($GRi,$GRj)") + (+ pack (rd-null) op GRi ope GRj) + (c-call VOID (.str "@cpu@_" cache "_cache_invalidate") (add GRi GRj) all) + profile + ) +) + +(cache-invalidate ici insn 0 OP_03 OPE1_38 + ((fr400 (unit u-ici)) (fr500 (unit u-ici))) + "invalidate insn cache") +(cache-invalidate dci data 0 OP_03 OPE1_3C + ((fr400 (unit u-dci)) (fr500 (unit u-dci))) + "invalidate data cache") + +(define-pmacro (cache-invalidate-entry name cache op ope profile comment) + (dni name + (comment) + ((UNIT C) (FR400-MAJOR C-2) (MACH fr400)) + (.str name "$pack @($GRi,$GRj),$ae") + (+ pack (misc-null-1) ae op GRi ope GRj) + (if (eq ae 0) + (c-call VOID (.str "@cpu@_" cache "_cache_invalidate") (add GRi GRj) -1) ; Invalid ae setting for this insn + (c-call VOID (.str "@cpu@_" cache "_cache_invalidate") (add GRi GRj) ae)) + profile + ) +) + +(cache-invalidate-entry icei insn OP_03 OPE1_39 + ((fr400 (unit u-ici))) + "invalidate insn cache entry") +(cache-invalidate-entry dcei data OP_03 OPE1_3A + ((fr400 (unit u-dci))) + "invalidate data cache entry") + +(dni dcf + "Data cache flush" + ((UNIT C) (FR500-MAJOR C-2) (FR400-MAJOR C-2)) + "dcf$pack @($GRi,$GRj)" + (+ pack (rd-null) OP_03 GRi OPE1_3D GRj) + (c-call VOID "@cpu@_data_cache_flush" (add GRi GRj) 0) + ((fr400 (unit u-dcf)) + (fr500 (unit u-dcf))) +) + +(dni dcef + "Data cache entry flush" + ((UNIT C) (FR400-MAJOR C-2) (MACH fr400)) + "dcef$pack @($GRi,$GRj),$ae" + (+ pack (misc-null-1) ae OP_03 GRi OPE1_3B GRj) + (if (eq ae 0) + (c-call VOID "@cpu@_data_cache_flush" (add GRi GRj) -1) + (c-call VOID "@cpu@_data_cache_flush" (add GRi GRj) ae)) + ((fr400 (unit u-dcf))) +) + +(define-pmacro (write-TLB name insn op ope comment) + (dni name + (comment) + ((UNIT C) (FR500-MAJOR C-2) (MACH frv) PRIVILEGED) + (.str insn "$pack $GRk,@($GRi,$GRj)") + (+ pack GRk op GRi ope GRj) + (nop) ; for now + () + ) +) + +(write-TLB witlb witlb OP_03 OPE1_32 "write for insn TLB") +(write-TLB wdtlb wdtlb OP_03 OPE1_36 "write for data TLB") + +(define-pmacro (invalidate-TLB name insn op ope comment) + (dni name + (comment) + ((UNIT C) (FR500-MAJOR C-2) (MACH frv) PRIVILEGED) + (.str insn "$pack @($GRi,$GRj)") + (+ pack (rd-null) op GRi ope GRj) + (nop) ; for now + () + ) +) + +(invalidate-TLB itlbi itlbi OP_03 OPE1_33 "invalidate insn TLB") +(invalidate-TLB dtlbi dtlbi OP_03 OPE1_37 "invalidate data TLB") + +(define-pmacro (cache-preload name cache op ope profile comment) + (dni name + (comment) + ((UNIT C) (FR500-MAJOR C-2) (FR400-MAJOR C-2)) + (.str name "$pack $GRi,$GRj,$lock") + (+ pack (misc-null-1) lock op GRi ope GRj) + (c-call VOID (.str "@cpu@_" cache "_cache_preload") GRi GRj lock) + profile + ) +) + +(cache-preload icpl insn OP_03 OPE1_30 + ((fr400 (unit u-icpl)) (fr500 (unit u-icpl))) + "preload insn cache") +(cache-preload dcpl data OP_03 OPE1_34 + ((fr400 (unit u-dcpl)) (fr500 (unit u-dcpl))) + "preload data cache") + +(define-pmacro (cache-unlock name cache op ope profile comment) + (dni name + (comment) + ((UNIT C) (FR500-MAJOR C-2) (FR400-MAJOR C-2)) + (.str name "$pack $GRi") + (+ pack (rd-null) op GRi ope (GRj-null)) + (c-call VOID (.str "@cpu@_" cache "_cache_unlock") GRi) + profile + ) +) + +(cache-unlock icul insn OP_03 OPE1_31 + ((fr400 (unit u-icul)) (fr500 (unit u-icul))) + "unlock insn cache") +(cache-unlock dcul data OP_03 OPE1_35 + ((fr400 (unit u-dcul)) (fr500 (unit u-dcul))) + "unlock data cache") + +(define-pmacro (barrier name insn op ope profile comment) + (dni name + (comment) + ((UNIT C) (FR500-MAJOR C-2) (FR400-MAJOR C-2)) + (.str insn "$pack") + (+ pack (rd-null) op (rs-null) ope (GRj-null)) + (nop) ; sufficient implementation + profile + ) +) + +(barrier bar bar OP_03 OPE1_3E + ((fr400 (unit u-barrier)) (fr500 (unit u-barrier))) + "barrier") +(barrier membar membar OP_03 OPE1_3F + ((fr400 (unit u-membar)) (fr500 (unit u-membar))) + "memory barrier") + +; Coprocessor operations +(define-pmacro (cop-op num op) + (dni (.sym cop num) + "Coprocessor operation" + ((UNIT C) (FR500-MAJOR C-2) (MACH frv)) + (.str "cop" num "$pack $s6_1,$CPRi,$CPRj,$CPRk") + (+ pack CPRk op CPRi s6_1 CPRj) + (nop) ; sufficient implementation + () + ) +) + +(cop-op 1 OP_7E) +(cop-op 2 OP_7F) + +(define-pmacro (clear-ne-flag-semantics target_index is_float) + (c-call VOID "@cpu@_clear_ne_flags" target_index is_float) +) + +(define-pmacro (clear-ne-flag-r name op ope reg is_float attr comment) + (dni name + (comment) + ((UNIT I01) (FR500-MAJOR I-6) (MACH simple,tomcat,fr500,frv) attr) + (.str name "$pack $" reg "k") + (+ pack (.sym reg k) op (rs-null) ope (GRj-null)) + (clear-ne-flag-semantics (index-of (.sym reg k)) is_float) + () + ) +) + +(clear-ne-flag-r clrgr OP_0A OPE1_00 GR 0 NA "Clear GR NE flag") +(clear-ne-flag-r clrfr OP_0A OPE1_02 FR 1 FR-ACCESS "Clear FR NE flag") + +(define-pmacro (clear-ne-flag-all name op ope is_float attr comment) + (dni name + (comment) + ((UNIT I01) (FR500-MAJOR I-6) (MACH simple,tomcat,fr500,frv) attr) + (.str name "$pack") + (+ pack (rd-null) op (rs-null) ope (GRj-null)) + (clear-ne-flag-semantics -1 is_float) + () + ) +) + +(clear-ne-flag-all clrga OP_0A OPE1_01 0 NA "Clear GR NE flag ALL") +(clear-ne-flag-all clrfa OP_0A OPE1_03 1 FR-ACCESS "Clear FR NE flag ALL") + +(define-pmacro (commit-semantics target_index is_float) + (c-call VOID "@cpu@_commit" target_index is_float) +) + +(define-pmacro (commit-r name op ope reg is_float attr comment) + (dni name + (comment) + ((UNIT I01) (FR500-MAJOR I-6) (MACH frv,fr500) attr) + (.str name "$pack $" reg "k") + (+ pack (.sym reg k) op (rs-null) ope (GRj-null)) + (commit-semantics (index-of (.sym reg k)) is_float) + () + ) +) + +(commit-r commitgr OP_0A OPE1_04 GR 0 NA "commit exceptions, specific GR") +(commit-r commitfr OP_0A OPE1_06 FR 1 FR-ACCESS "commit exceptions, specific FR") + +(define-pmacro (commit name op ope is_float attr comment) + (dni name + (comment) + ((UNIT I01) (FR500-MAJOR I-6) (MACH frv,fr500) attr) + (.str name "$pack") + (+ pack (rd-null) op (rs-null) ope (GRj-null)) + (commit-semantics -1 is_float) + () + ) +) + +(commit commitga OP_0A OPE1_05 0 NA "commit exceptions, any GR") +(commit commitfa OP_0A OPE1_07 1 FR-ACCESS "commit exceptions, any FR") + +(define-pmacro (floating-point-conversion + name op ope conv mode src targ attr comment) + (dni name + (comment) + ((UNIT FM01) (FR500-MAJOR F-1) (MACH simple,tomcat,fr500,frv) attr) + (.str name "$pack $" src ",$" targ) + (+ pack targ op (rs-null) ope src) + (set targ (conv mode src)) + ((fr500 (unit u-float-convert))) + ) +) + +(floating-point-conversion fitos OP_79 OPE1_00 float SF FRintj FRk NA "Convert Integer to Single") +(floating-point-conversion fstoi OP_79 OPE1_01 fix SI FRj FRintk NA "Convert Single to Integer") +(floating-point-conversion fitod OP_7A OPE1_00 float DF FRintj FRdoublek (MACH frv) "Convert Integer to Double") +(floating-point-conversion fdtoi OP_7A OPE1_01 fix SI FRdoublej FRintk (MACH frv) "Convert Double to Integer") + +(define-pmacro (floating-point-dual-conversion + name op ope conv mode src src_hw targ targ_hw attr comment) + (dni name + (comment) + ((MACH frv) (UNIT FM01) (FR500-MAJOR F-1) attr) + (.str name "$pack $" src ",$" targ) + (+ pack targ op (rs-null) ope src) + (sequence () + (set targ (conv mode src)) + (set (nextreg targ_hw targ 1) + (conv mode (nextreg src_hw src 1)))) + ((fr500 (unit u-float-dual-convert))) + ) +) + +(floating-point-dual-conversion fditos OP_79 OPE1_10 float SF FRintj h-fr_int FRk h-fr NA "Dual Convert Integer to Single") +(floating-point-dual-conversion fdstoi OP_79 OPE1_11 fix SI FRj h-fr FRintk h-fr_int NA "Dual Convert Single to Integer") + +(define-pmacro (ne-floating-point-dual-conversion + name op ope conv mode src src_hw targ targ_hw attr comment) + (dni name + (comment) + ((MACH frv) (UNIT FM01) (FR500-MAJOR F-1) NON-EXCEPTING attr) + (.str name "$pack $" src ",$" targ) + (+ pack targ op (rs-null) ope src) + (sequence () + (c-call VOID "@cpu@_set_ne_index" (index-of targ)) + (set targ (conv mode src)) + (c-call VOID "@cpu@_set_ne_index" (add (index-of targ) 1)) + (set (nextreg targ_hw targ 1) + (conv mode (nextreg src_hw src 1)))) + ((fr500 (unit u-float-dual-convert))) + ) +) + +(ne-floating-point-dual-conversion nfditos OP_79 OPE1_30 float SF FRintj h-fr_int FRk h-fr NA "Non excepting dual Convert Integer to Single") +(ne-floating-point-dual-conversion nfdstoi OP_79 OPE1_31 fix SI FRj h-fr FRintk h-fr_int NA "Non excepting dual Convert Single to Integer") + +(define-pmacro (conditional-floating-point-conversion + name op ope conv mode src targ comment) + (dni name + (comment) + ((UNIT FM01) (FR500-MAJOR F-1) (MACH simple,tomcat,fr500,frv)) + (.str name "$pack $" src ",$" targ ",$CCi,$cond") + (+ pack targ op (rs-null) CCi cond ope src) + (if (eq CCi (or cond 2)) + (set targ (conv mode src))) + ((fr500 (unit u-float-convert))) + ) +) + +(conditional-floating-point-conversion cfitos OP_6B OPE4_0 float SF FRintj FRk "Conditional convert Integer to Single") +(conditional-floating-point-conversion cfstoi OP_6B OPE4_1 fix SI FRj FRintk "Conditional convert Single to Integer") + +(define-pmacro (ne-floating-point-conversion + name op ope conv mode src targ comment) + (dni name + (comment) + ((UNIT FM01) (FR500-MAJOR F-1) (MACH simple,tomcat,fr500,frv)) + (.str name "$pack $" src ",$" targ) + (+ pack targ op (rs-null) ope src) + (sequence () + (c-call VOID "@cpu@_set_ne_index" (index-of targ)) + (set targ (conv mode src))) + ((fr500 (unit u-float-convert))) + ) +) + +(ne-floating-point-conversion nfitos OP_79 OPE1_20 float SF FRintj FRk "NE convert Integer to Single") +(ne-floating-point-conversion nfstoi OP_79 OPE1_21 fix SI FRj FRintk "NE convert Single to Integer") + +(register-transfer fmovs OP_79 OPE1_02 + FRj FRk FM01 (FR500-MAJOR F-1) NA + (MACH simple,tomcat,fr500,frv) NA + ((fr500 (unit u-fr2fr))) + "Move Single Float") +(register-transfer fmovd OP_7A OPE1_02 + ; TODO -- unit doesn't handle extra register + FRdoublej FRdoublek FM01 (FR500-MAJOR F-1) NA + (MACH frv) NA + ((fr500 (unit u-fr2fr))) + "Move Double Float") + +(dni fdmovs + "Dual move single float" + ((MACH frv) (UNIT FM01) (FR500-MAJOR F-1)) + "fdmovs$pack $FRj,$FRk" + (+ pack FRk OP_79 (rs-null) OPE1_12 FRj) + (sequence () + (set FRk FRj) + (set (nextreg h-fr FRk 1) (nextreg h-fr FRj 1))) + ; TODO -- unit doesn't handle extra register + ((fr500 (unit u-fr2fr))) +) + +(conditional-register-transfer cfmovs OP_6C OPE4_0 FRj FRk FM01 + (FR500-MAJOR F-1) NA + (MACH simple,tomcat,fr500,frv) + ((fr500 (unit u-fr2fr))) + "Conditional move Single Float") + +(define-pmacro (floating-point-neg name src targ op ope attr comment) + (dni name + (comment) + ((UNIT FM01) (FR500-MAJOR F-1) attr) + (.str name "$pack $" src ",$" targ) + (+ pack src op (rs-null) ope targ) + (set targ (neg src)) + ((fr500 (unit u-float-arith))) + ) +) + +(floating-point-neg fnegs FRj FRk OP_79 OPE1_03 (MACH simple,tomcat,fr500,frv) "Floating point negate, single") +(floating-point-neg fnegd FRdoublej FRdoublek OP_7A OPE1_03 (MACH frv) "Floating point negate, double") + +(dni fdnegs + "Floating point dual negate, single" + ((MACH frv) (UNIT FM01) (FR500-MAJOR F-1)) + "fdnegs$pack $FRj,$FRk" + (+ pack FRk OP_79 (rs-null) OPE1_13 FRj) + (sequence () + (set FRk (neg FRj)) + (set (nextreg h-fr FRk 1) (neg (nextreg h-fr FRj 1)))) + ((fr500 (unit u-float-dual-arith))) +) + +(dni cfnegs + "Conditional floating point negate, single" + ((UNIT FM01) (FR500-MAJOR F-1) (MACH simple,tomcat,fr500,frv)) + "cfnegs$pack $FRj,$FRk,$CCi,$cond" + (+ pack FRj OP_6C (rs-null) CCi cond OPE4_1 FRk) + (if (eq CCi (or cond 2)) + (set FRk (neg FRj))) + ((fr500 (unit u-float-arith))) +) + +(define-pmacro (float-abs name src targ op ope attr comment) + (dni name + (comment) + ((UNIT FM01) (FR500-MAJOR F-1) attr) + (.str name "$pack $" src ",$" targ ) + (+ pack targ op (rs-null) ope src) + (set targ (abs src)) + ((fr500 (unit u-float-arith))) + ) +) + +(float-abs fabss FRj FRk OP_79 OPE1_04 (MACH simple,tomcat,fr500,frv) "Float absolute value, single") +(float-abs fabsd FRdoublej FRdoublek OP_7A OPE1_04 (MACH frv) "Float absolute value, double") + +(dni fdabss + "Floating point dual absolute value, single" + ((MACH frv) (UNIT FM01) (FR500-MAJOR F-1)) + "fdabss$pack $FRj,$FRk" + (+ pack FRk OP_79 (rs-null) OPE1_14 FRj) + (sequence () + (set FRk (abs FRj)) + (set (nextreg h-fr FRk 1) (abs (nextreg h-fr FRj 1)))) + ((fr500 (unit u-float-dual-arith))) +) + +(dni cfabss + "Conditional floating point absolute value, single" + ((UNIT FM01) (FR500-MAJOR F-1) (MACH simple,tomcat,fr500,frv)) + "cfabss$pack $FRj,$FRk,$CCi,$cond" + (+ pack FRj OP_6C (rs-null) CCi cond OPE4_2 FRk) + (if (eq CCi (or cond 2)) + (set FRk (abs FRj))) + ((fr500 (unit u-float-arith))) +) + +(dni fsqrts + "Square root single" + ((UNIT FM01) (FR500-MAJOR F-4) (MACH simple,tomcat,fr500,frv)) + "fsqrts$pack $FRj,$FRk" + (+ pack FRk OP_79 (rs-null) OPE1_05 FRj) + (set FRk (sqrt SF FRj)) + ((fr500 (unit u-float-sqrt))) +) + +(dni fdsqrts + "Dual square root single" + ((MACH frv) (UNIT FM01) (FR500-MAJOR F-4)) + "fdsqrts$pack $FRj,$FRk" + (+ pack FRk OP_79 (rs-null) OPE1_15 FRj) + (sequence () + (set FRk (sqrt SF FRj)) + (set (nextreg h-fr FRk 1) (sqrt (nextreg h-fr FRj 1)))) + ((fr500 (unit u-float-dual-sqrt))) +) + +(dni nfdsqrts + "Non excepting Dual square root single" + ((MACH frv) (UNIT FM01) (FR500-MAJOR F-4) NON-EXCEPTING) + "nfdsqrts$pack $FRj,$FRk" + (+ pack FRk OP_79 (rs-null) OPE1_35 FRj) + (sequence () + (c-call VOID "@cpu@_set_ne_index" (index-of FRk)) + (set FRk (sqrt SF FRj)) + (c-call VOID "@cpu@_set_ne_index" (add (index-of FRk) 1)) + (set (nextreg h-fr FRk 1) (sqrt (nextreg h-fr FRj 1)))) + ((fr500 (unit u-float-dual-sqrt))) +) + +(dni fsqrtd + "Square root double" + ((UNIT FM01) (FR500-MAJOR F-4) (MACH frv)) + "fsqrtd$pack $FRdoublej,$FRdoublek" + (+ pack FRdoublek OP_7A (rs-null) OPE1_05 FRdoublej) + (set FRdoublek (sqrt DF FRdoublej)) + ((fr500 (unit u-float-sqrt))) +) + +(dni cfsqrts + "Conditional square root single" + ((UNIT FM01) (FR500-MAJOR F-4) (MACH simple,tomcat,fr500,frv)) + "cfsqrts$pack $FRj,$FRk,$CCi,$cond" + (+ pack FRk OP_6E (rs-null) CCi cond OPE4_2 FRj) + (if (eq CCi (or cond 2)) + (set FRk (sqrt SF FRj))) + ((fr500 (unit u-float-sqrt))) +) + +(dni nfsqrts + "Non exception square root, single" + ((UNIT FM01) (FR500-MAJOR F-4) (MACH simple,tomcat,fr500,frv)) + "nfsqrts$pack $FRj,$FRk" + (+ pack FRk OP_79 (rs-null) OPE1_25 FRj) + (sequence () + (c-call VOID "@cpu@_set_ne_index" (index-of FRk)) + (set FRk (sqrt SF FRj))) + ((fr500 (unit u-float-sqrt))) +) + +(define-pmacro (float-binary-op-s name operation op ope major comment) + (dni name + (comment) + ((UNIT FM01) (FR500-MAJOR major) (MACH simple,tomcat,fr500,frv)) + (.str name "$pack $FRi,$FRj,$FRk") + (+ pack FRk op FRi ope FRj) + (set FRk (operation FRi FRj)) + ((fr500 (unit u-float-arith))) + ) +) + +(float-binary-op-s fadds add OP_79 OPE1_06 F-2 "add single float") +(float-binary-op-s fsubs sub OP_79 OPE1_07 F-2 "sub single float") +(float-binary-op-s fmuls mul OP_79 OPE1_08 F-3 "mul single float") + +(dni fdivs + "div single float" + ((UNIT FM01) (FR500-MAJOR F-4) (MACH simple,tomcat,fr500,frv)) + "fdivs$pack $FRi,$FRj,$FRk" + (+ pack FRk OP_79 FRi OPE1_09 FRj) + (set FRk (div FRi FRj)) + ((fr500 (unit u-float-div))) +) + +(define-pmacro (float-binary-op-d name operation op ope major comment) + (dni name + (comment) + ((UNIT FM01) (FR500-MAJOR major) (MACH frv)) + (.str name "$pack $FRdoublei,$FRdoublej,$FRdoublek") + (+ pack FRdoublek op FRdoublei ope FRdoublej) + (set FRdoublek (operation FRdoublei FRdoublej)) + ((fr500 (unit u-float-arith))) + ) +) + +(float-binary-op-d faddd add OP_7A OPE1_06 F-2 "add double float") +(float-binary-op-d fsubd sub OP_7A OPE1_07 F-2 "sub double float") +(float-binary-op-d fmuld mul OP_7A OPE1_08 F-3 "mul double float") +(float-binary-op-d fdivd div OP_7A OPE1_09 F-4 "div double float") + +(define-pmacro (conditional-float-binary-op name operation op ope major comment) + (dni name + (comment) + ((UNIT FM01) (FR500-MAJOR major) (MACH simple,tomcat,fr500,frv)) + (.str name "$pack $FRi,$FRj,$FRk,$CCi,$cond") + (+ pack FRk op FRi CCi cond ope FRj) + (if (eq CCi (or cond 2)) + (set FRk (operation FRi FRj))) + ((fr500 (unit u-float-arith))) + ) +) + +(conditional-float-binary-op cfadds add OP_6D OPE4_0 F-2 "cond add single") +(conditional-float-binary-op cfsubs sub OP_6D OPE4_1 F-2 "cond sub single") +(conditional-float-binary-op cfmuls mul OP_6E OPE4_0 F-3 "cond mul single") +(conditional-float-binary-op cfdivs div OP_6E OPE4_1 F-4 "cond div single") + +(define-pmacro (ne-float-binary-op name operation op ope major comment) + (dni name + (comment) + ((UNIT FM01) (FR500-MAJOR major) (MACH simple,tomcat,fr500,frv)) + (.str name "$pack $FRi,$FRj,$FRk") + (+ pack FRk op FRi ope FRj) + (sequence () + (c-call VOID "@cpu@_set_ne_index" (index-of FRk)) + (set FRk (operation FRi FRj))) + ((fr500 (unit u-float-arith))) + ) +) + +(ne-float-binary-op nfadds add OP_79 OPE1_26 F-2 "ne add single") +(ne-float-binary-op nfsubs sub OP_79 OPE1_27 F-2 "ne sub single") +(ne-float-binary-op nfmuls mul OP_79 OPE1_28 F-3 "ne mul single") +(ne-float-binary-op nfdivs div OP_79 OPE1_29 F-4 "ne div single") + +(define-pmacro (fcc-eq) 8) +(define-pmacro (fcc-lt) 4) +(define-pmacro (fcc-gt) 2) +(define-pmacro (fcc-uo) 1) + +(define-pmacro (compare-and-set-fcc arg1 arg2 fcc) + (if (gt arg1 arg2) + (set fcc (fcc-gt)) + (if (eq arg1 arg2) + (set fcc (fcc-eq)) + (if (lt arg1 arg2) + (set fcc (fcc-lt)) + (set fcc (fcc-uo))))) +) + +(dni fcmps + "compare single float" + ((UNIT FM01) (FR500-MAJOR F-2) (MACH simple,tomcat,fr500,frv)) + "fcmps$pack $FRi,$FRj,$FCCi_2" + (+ pack (cond-null) FCCi_2 OP_79 FRi OPE1_0A FRj) + (compare-and-set-fcc FRi FRj FCCi_2) + ((fr500 (unit u-float-compare))) +) + +(dni fcmpd + "compare double float" + ((UNIT FM01) (FR500-MAJOR F-2) (MACH frv)) + "fcmpd$pack $FRdoublei,$FRdoublej,$FCCi_2" + (+ pack (cond-null) FCCi_2 OP_7A FRdoublei OPE1_0A FRdoublej) + (compare-and-set-fcc FRdoublei FRdoublej FCCi_2) + ((fr500 (unit u-float-compare))) +) + +(dni cfcmps + "Conditional compare single, float" + ((UNIT FM01) (FR500-MAJOR F-2) (MACH simple,tomcat,fr500,frv)) + "cfcmps$pack $FRi,$FRj,$FCCi_2,$CCi,$cond" + (+ pack (cond-null) FCCi_2 OP_6D FRi CCi cond OPE4_2 FRj) + (if (eq CCi (or cond 2)) + (compare-and-set-fcc FRi FRj FCCi_2)) + ((fr500 (unit u-float-compare))) +) + +(dni fdcmps + "float dual compare single" + ((UNIT FM01) (FR500-MAJOR F-6) (MACH simple,tomcat,fr500,frv)) + "fdcmps$pack $FRi,$FRj,$FCCi_2" + (+ pack (cond-null) FCCi_2 OP_79 FRi OPE1_1A FRj) + (sequence () + (compare-and-set-fcc FRi FRj FCCi_2) + (compare-and-set-fcc (nextreg h-fr FRi 1) (nextreg h-fr FRj 1) + (nextreg h-fccr FCCi_2 1))) + ((fr500 (unit u-float-dual-compare))) +) + +(define-pmacro (float-mul-with-add name add_sub arg1 arg2 targ op ope comment) + (dni name + (comment) + ((UNIT FM01) (FR500-MAJOR F-5) (MACH frv)) + (.str name "$pack $" arg1 ",$" arg2 ",$" targ) + (+ pack targ op arg1 ope arg2) + (set targ (add_sub (mul arg1 arg2) targ)) + ((fr500 (unit u-float-dual-arith))) + ) +) + +(float-mul-with-add fmadds add FRi FRj FRk OP_79 OPE1_0B "mul with add, single") +(float-mul-with-add fmsubs sub FRi FRj FRk OP_79 OPE1_0C "mul with sub, single") + +(float-mul-with-add fmaddd add FRdoublei FRdoublej FRdoublek OP_7A OPE1_0B "mul with add, double") +(float-mul-with-add fmsubd sub FRdoublei FRdoublej FRdoublek OP_7A OPE1_0C "mul with sub, double") + +(dni fdmadds + "Float dual multiply with add" + ((UNIT FM01) (FR500-MAJOR F-5) (MACH frv)) + "fdmadds$pack $FRi,$FRj,$FRk" + (+ pack FRk OP_79 FRi OPE1_1B FRj) + (sequence () + (set FRk (add (mul FRi FRj) FRk)) + (set (nextreg h-fr FRk 1) + (add (mul (nextreg h-fr FRi 1) (nextreg h-fr FRj 1)) + (nextreg h-fr FRk 1)))) + ; TODO dual registers not referenced for profiling + ((fr500 (unit u-float-dual-arith))) +) + +(dni nfdmadds + "Non excepting float dual multiply with add" + ((UNIT FM01) (FR500-MAJOR F-5) (MACH frv)) + "nfdmadds$pack $FRi,$FRj,$FRk" + (+ pack FRk OP_79 FRi OPE1_3B FRj) + (sequence () + (c-call VOID "@cpu@_set_ne_index" (index-of FRk)) + (set FRk (add (mul FRi FRj) FRk)) + (c-call VOID "@cpu@_set_ne_index" (add (index-of FRk) 1)) + (set (nextreg h-fr FRk 1) + (add (mul (nextreg h-fr FRi 1) (nextreg h-fr FRj 1)) + (nextreg h-fr FRk 1)))) + ; TODO dual registers not referenced for profiling + ((fr500 (unit u-float-dual-arith))) +) + +(define-pmacro (conditional-float-mul-with-add + name add_sub arg1 arg2 targ op ope comment) + (dni name + (comment) + ((UNIT FM01) (FR500-MAJOR F-5) (MACH frv) CONDITIONAL) + (.str name "$pack $FRi,$FRj,$FRk,$CCi,$cond") + (+ pack FRk op FRi CCi cond ope FRj) + (if (eq CCi (or cond 2)) + (set targ (add_sub (mul arg1 arg2) targ))) + ((fr500 (unit u-float-dual-arith))) + ) +) + +(conditional-float-mul-with-add cfmadds add FRi FRj FRk OP_6F OPE4_0 "conditional mul with add, single") +(conditional-float-mul-with-add cfmsubs sub FRi FRj FRk OP_6F OPE4_1 "conditional mul with sub, single") + +(define-pmacro (ne-float-mul-with-add name add_sub arg1 arg2 targ op ope comment) + (dni name + (comment) + ((UNIT FM01) (FR500-MAJOR F-5) (MACH frv) NON-EXCEPTING) + (.str name "$pack $" arg1 ",$" arg2 ",$" targ) + (+ pack targ op arg1 ope arg2) + (sequence () + (c-call VOID "@cpu@_set_ne_index" (index-of targ)) + (set targ (add_sub (mul arg1 arg2) targ))) + ((fr500 (unit u-float-dual-arith))) + ) +) + +(ne-float-mul-with-add nfmadds add FRi FRj FRk OP_79 OPE1_2B "non excepting mul with add, single") +(ne-float-mul-with-add nfmsubs sub FRi FRj FRk OP_79 OPE1_2C "non excepting mul with sub, single") + +(define-pmacro (float-parallel-mul-add-semantics cond add_sub arg1 arg2 targ) + (if cond + (sequence () + (set targ (mul arg1 arg2)) + (set (nextreg h-fr targ 1) + (add_sub (nextreg h-fr arg1 1) (nextreg h-fr arg2 1))))) +) + +(define-pmacro (float-parallel-mul-add + name add_sub arg1 arg2 targ op ope comment) + (dni name + (comment) + ((UNIT FM01) (FR500-MAJOR F-5) (MACH simple,tomcat,fr500,frv)) + (.str name "$pack $" arg1 ",$" arg2 ",$" targ) + (+ pack targ op arg1 ope arg2) + (float-parallel-mul-add-semantics 1 add_sub arg1 arg2 targ) + ((fr500 (unit u-float-dual-arith))) + ) +) + +(float-parallel-mul-add fmas add FRi FRj FRk OP_79 OPE1_0E "parallel mul/add, single") +(float-parallel-mul-add fmss sub FRi FRj FRk OP_79 OPE1_0F "parallel mul/sub, single") + +(define-pmacro (float-dual-parallel-mul-add-semantics add_sub arg1 arg2 targ) + (sequence () + (set targ (mul arg1 arg2)) + (set (nextreg h-fr targ 1) + (add_sub (nextreg h-fr arg1 1) (nextreg h-fr arg2 1))) + (set (nextreg h-fr targ 2) + (mul (nextreg h-fr arg1 2) (nextreg h-fr arg2 2))) + (set (nextreg h-fr targ 3) + (add_sub (nextreg h-fr arg1 3) (nextreg h-fr arg2 3)))) +) + +(define-pmacro (float-dual-parallel-mul-add + name add_sub arg1 arg2 targ op ope comment) + (dni name + (comment) + ((UNIT FM01) (FR500-MAJOR F-5) (MACH frv)) + (.str name "$pack $" arg1 ",$" arg2 ",$" targ) + (+ pack targ op arg1 ope arg2) + (float-dual-parallel-mul-add-semantics add_sub arg1 arg2 targ) + () + ) +) + +(float-dual-parallel-mul-add fdmas add FRi FRj FRk OP_79 OPE1_1C "dual parallel mul/add, single") +(float-dual-parallel-mul-add fdmss sub FRi FRj FRk OP_79 OPE1_1D "dual parallel mul/sub, single") + +(define-pmacro (ne-float-dual-parallel-mul-add-semantics add_sub arg1 arg2 targ) + (sequence () + (c-call VOID "@cpu@_set_ne_index" (index-of targ)) + (c-call VOID "@cpu@_set_ne_index" (add (index-of targ) 1)) + (c-call VOID "@cpu@_set_ne_index" (add (index-of targ) 2)) + (c-call VOID "@cpu@_set_ne_index" (add (index-of targ) 3)) + (set targ (mul arg1 arg2)) + (set (nextreg h-fr targ 1) + (add_sub (nextreg h-fr arg1 1) (nextreg h-fr arg2 1))) + (set (nextreg h-fr targ 2) + (mul (nextreg h-fr arg1 2) (nextreg h-fr arg2 2))) + (set (nextreg h-fr targ 3) + (add_sub (nextreg h-fr arg1 3) (nextreg h-fr arg2 3)))) +) + +(define-pmacro (ne-float-dual-parallel-mul-add + name add_sub arg1 arg2 targ op ope comment) + (dni name + (comment) + ((UNIT FM01) (FR500-MAJOR F-5) (MACH frv)) + (.str name "$pack $" arg1 ",$" arg2 ",$" targ) + (+ pack targ op arg1 ope arg2) + (ne-float-dual-parallel-mul-add-semantics add_sub arg1 arg2 targ) + () + ) +) + +(ne-float-dual-parallel-mul-add nfdmas add FRi FRj FRk OP_79 OPE1_3C "non excepting dual parallel mul/add, single") +(ne-float-dual-parallel-mul-add nfdmss sub FRi FRj FRk OP_79 OPE1_3D "non excepting dual parallel mul/sub, single") + +(define-pmacro (conditional-float-parallel-mul-add name add_sub op ope comment) + (dni name + (comment) + ((UNIT FM01) (FR500-MAJOR F-5) CONDITIONAL (MACH simple,tomcat,fr500,frv)) + (.str name "$pack $FRi,$FRj,$FRk,$CCi,$cond") + (+ pack FRk op FRi CCi cond ope FRj) + (float-parallel-mul-add-semantics (eq CCi (or cond 2)) + add_sub FRi FRj FRk) + ((fr500 (unit u-float-dual-arith))) + ) +) + +(conditional-float-parallel-mul-add cfmas add OP_6F OPE4_2 "conditional parallel mul/add, single") +(conditional-float-parallel-mul-add cfmss sub OP_6F OPE4_3 "conditional parallel mul/sub, single") + +(define-pmacro (float-parallel-mul-add-double-semantics add_sub arg1 arg2 targ) + (sequence () + (set targ (ftrunc SF (mul DF (fext DF arg1) (fext DF arg2)))) + (set (nextreg h-fr targ 1) + (ftrunc SF (add_sub DF + (fext DF (nextreg h-fr arg1 1)) + (fext DF (nextreg h-fr arg2 1)))))) +) + +(define-pmacro (float-parallel-mul-add-double + name add_sub arg1 arg2 targ op ope comment) + (dni name + (comment) + ((UNIT FM01) (FR500-MAJOR F-5) (MACH frv)) + (.str name "$pack $" arg1 ",$" arg2 ",$" targ) + (+ pack targ op arg1 ope arg2) + (float-parallel-mul-add-double-semantics add_sub arg1 arg2 targ) + () + ) +) + +(float-parallel-mul-add-double fmad add FRi FRj FRk OP_7A OPE1_0E "parallel mul/add, double") +(float-parallel-mul-add-double fmsd sub FRi FRj FRk OP_7A OPE1_0F "parallel mul/sub, double") + +(define-pmacro (ne-float-parallel-mul-add name add_sub op ope comment) + (dni name + (comment) + ((UNIT FM01) (FR500-MAJOR F-5) (MACH simple,tomcat,fr500,frv)) + (.str name "$pack $FRi,$FRj,$FRk") + (+ pack FRk op FRi ope FRj) + (sequence () + (c-call VOID "@cpu@_set_ne_index" (index-of FRk)) + (set FRk (mul FRi FRj)) + (c-call VOID "@cpu@_set_ne_index" (add (index-of FRk) 1)) + (set (nextreg h-fr FRk 1) + (add_sub (nextreg h-fr FRi 1) (nextreg h-fr FRj 1)))) + ((fr500 (unit u-float-dual-arith))) + ) +) + +(ne-float-parallel-mul-add nfmas add OP_79 OPE1_2E "ne parallel mul/add,single") +(ne-float-parallel-mul-add nfmss sub OP_79 OPE1_2F "ne parallel mul/sub,single") + +(define-pmacro (float-dual-arith name major oper1 oper2 op ope attr comment) + (dni name + (comment) + ((UNIT FM01) (FR500-MAJOR major) attr) + (.str name "$pack $FRi,$FRj,$FRk") + (+ pack FRk op FRi ope FRj) + (sequence () + (set FRk (oper1 FRi FRj)) + (set (nextreg h-fr FRk 1) + (oper2 (nextreg h-fr FRi 1) (nextreg h-fr FRj 1)))) + ((fr500 (unit u-float-dual-arith))) + ) +) + +(float-dual-arith fdadds F-6 add add OP_79 OPE1_16 (MACH simple,tomcat,fr500,frv) "dual add, single") +(float-dual-arith fdsubs F-6 sub sub OP_79 OPE1_17 (MACH simple,tomcat,fr500,frv) "dual sub, single") +(float-dual-arith fdmuls F-7 mul mul OP_79 OPE1_18 (MACH simple,tomcat,fr500,frv) "dual mul, single") +(float-dual-arith fddivs F-7 div div OP_79 OPE1_19 (MACH frv) "dual div,single") +(float-dual-arith fdsads F-6 add sub OP_79 OPE1_1E (MACH simple,tomcat,fr500,frv) "dual add/sub, single") + +(dni fdmulcs + "Float dual cross multiply single" + ((UNIT FM01) (FR500-MAJOR F-7) (MACH simple,tomcat,fr500,frv)) + "fdmulcs$pack $FRi,$FRj,$FRk" + (+ pack FRk OP_79 FRi OPE1_1F FRj) + (sequence () + (set FRk (mul FRi (nextreg h-fr FRj 1))) + (set (nextreg h-fr FRk 1) (mul (nextreg h-fr FRi 1) FRj))) + ((fr500 (unit u-float-dual-arith))) +) + +(dni nfdmulcs + "NE float dual cross multiply single" + ((UNIT FM01) (FR500-MAJOR F-7) (MACH simple,tomcat,fr500,frv)) + "nfdmulcs$pack $FRi,$FRj,$FRk" + (+ pack FRk OP_79 FRi OPE1_3F FRj) + (sequence () + (c-call VOID "@cpu@_set_ne_index" (index-of FRk)) + (set FRk (mul FRi (nextreg h-fr FRj 1))) + (c-call VOID "@cpu@_set_ne_index" (add (index-of FRk) 1)) + (set (nextreg h-fr FRk 1) (mul (nextreg h-fr FRi 1) FRj))) + ((fr500 (unit u-float-dual-arith))) +) + +(define-pmacro (ne-float-dual-arith name major oper1 oper2 op ope attr comment) + (dni name + (comment) + ((UNIT FM01) (FR500-MAJOR major) attr) + (.str name "$pack $FRi,$FRj,$FRk") + (+ pack FRk op FRi ope FRj) + (sequence () + (c-call VOID "@cpu@_set_ne_index" (index-of FRk)) + (set FRk (oper1 FRi FRj)) + (c-call VOID "@cpu@_set_ne_index" (add (index-of FRk) 1)) + (set (nextreg h-fr FRk 1) + (oper2 (nextreg h-fr FRi 1) (nextreg h-fr FRj 1)))) + ((fr500 (unit u-float-dual-arith))) + ) +) + +(ne-float-dual-arith nfdadds F-6 add add OP_79 OPE1_36 (MACH simple,tomcat,fr500,frv) "ne dual add, single") +(ne-float-dual-arith nfdsubs F-6 sub sub OP_79 OPE1_37 (MACH simple,tomcat,fr500,frv) "ne dual sub, single") +(ne-float-dual-arith nfdmuls F-7 mul mul OP_79 OPE1_38 (MACH simple,tomcat,fr500,frv) "ne dual mul, single") +(ne-float-dual-arith nfddivs F-7 div div OP_79 OPE1_39 (MACH frv) "ne dual div,single") +(ne-float-dual-arith nfdsads F-6 add sub OP_79 OPE1_3E (MACH simple,tomcat,fr500,frv) "ne dual add/sub, single") + +(dni nfdcmps + "non-excepting dual float compare" + ((UNIT FM01) (FR500-MAJOR F-6) (MACH simple,tomcat,frv)) + "nfdcmps$pack $FRi,$FRj,$FCCi_2" + (+ pack (cond-null) FCCi_2 OP_79 FRi OPE1_3A FRj) + (sequence () + (c-call VOID "@cpu@_set_ne_index" (index-of FRk)) + (compare-and-set-fcc FRi FRj FCCi_2) + (c-call VOID "@cpu@_set_ne_index" (add (index-of FRk) 1)) + (compare-and-set-fcc (nextreg h-fr FRi 1) (nextreg h-fr FRj 1) + (nextreg h-fccr FCCi_2 1))) + ((fr500 (unit u-float-dual-compare))) +) + +; Media Instructions +; +(define-pmacro (halfword hilo arg offset) + (reg (.sym h-fr_ hilo) (add (index-of arg) offset))) + +(dni mhsetlos + "Media set lower signed 12 bits" + ((UNIT FM01) (MACH fr400) (FR400-MAJOR M-1)) + "mhsetlos$pack $u12,$FRklo" + (+ pack FRklo OP_78 OPE1_20 u12) + (set FRklo u12) + ((fr400 (unit u-media-hilo))) +) + +(dni mhsethis + "Media set upper signed 12 bits" + ((UNIT FM01) (MACH fr400) (FR400-MAJOR M-1)) + "mhsethis$pack $u12,$FRkhi" + (+ pack FRkhi OP_78 OPE1_22 u12) + (set FRkhi u12) + ((fr400 (unit u-media-hilo))) +) + +(dni mhdsets + "Media dual set halfword signed 12 bits" + ((UNIT FM01) (MACH fr400) (FR400-MAJOR M-1)) + "mhdsets$pack $u12,$FRintk" + (+ pack FRintk OP_78 OPE1_24 u12) + (sequence () + ; hack to get FRintk passed to modelling functions + (set FRintk (c-raw-call SI "frv_ref_SI" FRintk)) + (set (halfword hi FRintk 0) u12) + (set (halfword lo FRintk 0) u12)) + ((fr400 (unit u-media-1))) +) + +(define-pmacro (set-5-semantics target value) + (sequence ((HI tmp)) + (set tmp target) + (set tmp (and tmp #x07ff)) + (set tmp (or tmp (sll (and s5 #x1f) 11))) + (set target tmp)) +) + +(define-pmacro (media-set-5 name hilo op ope comment) + (dni name + (comment) + ((UNIT FM01) (MACH fr400) (FR400-MAJOR M-1)) + (.str name "$pack $s5,$FRk" hilo) + (+ pack (.sym FRk hilo) op (FRi-null) ope (misc-null-11) s5) + (set-5-semantics (.sym FRk hilo) s5) + ((fr400 (unit u-media-hilo))) + ) +) + +(media-set-5 mhsetloh lo OP_78 OPE1_21 "Media set upper 5 bits lo") +(media-set-5 mhsethih hi OP_78 OPE1_23 "Media set upper 5 bits hi") + +(dni mhdseth + "Media dual set halfword upper 5 bits" + ((UNIT FM01) (MACH fr400) (FR400-MAJOR M-1)) + "mhdseth$pack $s5,$FRintk" + (+ pack FRintk OP_78 (FRi-null) OPE1_25 (misc-null-11) s5) + (sequence () + ; hack to get FRintk passed to modelling functions + (set FRintk (c-raw-call SI "frv_ref_SI" FRintk)) + (set-5-semantics (halfword hi FRintk 0) s5) + (set-5-semantics (halfword lo FRintk 0) s5)) + ((fr400 (unit u-media-1))) +) + +(define-pmacro (media-logic-r-r name operation op ope comment) + (dni name + (comment) + ((UNIT FM01) (FR500-MAJOR M-1) (FR400-MAJOR M-1)) + (.str name "$pack $FRinti,$FRintj,$FRintk") + (+ pack FRintk op FRinti ope FRintj) + (set FRintk (operation FRinti FRintj)) + ((fr400 (unit u-media-1)) + (fr500 (unit u-media))) + ) +) + +(media-logic-r-r mand and OP_7B OPE1_00 "and reg/reg") +(media-logic-r-r mor or OP_7B OPE1_01 "or reg/reg") +(media-logic-r-r mxor xor OP_7B OPE1_02 "xor reg/reg") + +(define-pmacro (conditional-media-logic name operation op ope comment) + (dni name + (comment) + ((UNIT FM01) (FR500-MAJOR M-1) (FR400-MAJOR M-1) CONDITIONAL) + (.str name "$pack $FRinti,$FRintj,$FRintk,$CCi,$cond") + (+ pack FRintk op FRinti CCi cond ope FRintj) + (if (eq CCi (or cond 2)) + (set FRintk (operation FRinti FRintj))) + ((fr400 (unit u-media-1)) + (fr500 (unit u-media))) + ) +) + +(conditional-media-logic cmand and OP_70 OPE4_0 "conditional and reg/reg") +(conditional-media-logic cmor or OP_70 OPE4_1 "conditional or reg/reg") +(conditional-media-logic cmxor xor OP_70 OPE4_2 "conditional xor reg/reg") + +(dni mnot + ("mnot") + ((UNIT FM01) (FR500-MAJOR M-1) (FR400-MAJOR M-1)) + ("mnot$pack $FRintj,$FRintk") + (+ pack FRintk OP_7B (rs-null) OPE1_03 FRintj) + (set FRintk (inv FRintj)) + ((fr400 (unit u-media-1)) + (fr500 (unit u-media))) +) + +(dni cmnot + ("cmnot") + ((UNIT FM01) (FR500-MAJOR M-1) (FR400-MAJOR M-1) CONDITIONAL) + ("cmnot$pack $FRintj,$FRintk,$CCi,$cond") + (+ pack FRintk OP_70 (rs-null) CCi cond OPE4_3 FRintj) + (if (eq CCi (or cond 2)) + (set FRintk (inv FRintj))) + ((fr400 (unit u-media-1)) + (fr500 (unit u-media))) +) + +(define-pmacro (media-rotate-r-r name operation op ope comment) + (dni name + (comment) + ((UNIT FM01) (FR500-MAJOR M-2) (FR400-MAJOR M-1)) + (.str name "$pack $FRinti,$u6,$FRintk") + (+ pack FRintk op FRinti ope u6) + (set FRintk (operation FRinti (and u6 #x1f))) + ((fr400 (unit u-media-3)) + (fr500 (unit u-media))) + ) +) + +(media-rotate-r-r mrotli rol OP_7B OPE1_04 "rotate left reg/reg") +(media-rotate-r-r mrotri ror OP_7B OPE1_05 "rotate right reg/reg") + +(define-pmacro (media-cut-r-r name arg op ope comment) + (dni name + (comment) + ((UNIT FM01) (FR500-MAJOR M-2) (FR400-MAJOR M-2)) + (.str name "$pack $FRinti,$" arg ",$FRintk") + (+ pack FRintk op FRinti ope arg) + (set FRintk (c-call SI "@cpu@_cut" FRinti (nextreg h-fr_int FRinti 1) arg)) + ((fr400 (unit u-media-3)) + (fr500 (unit u-media))) + ) +) + +(media-cut-r-r mwcut FRintj OP_7B OPE1_06 "media cut") +(media-cut-r-r mwcuti u6 OP_7B OPE1_07 "media cut") + +(define-pmacro (media-cut-acc name arg op ope comment) + (dni name + (comment) + ((UNIT FM01) (FR500-MAJOR M-2) (FR400-MAJOR M-1)) + (.str name "$pack $ACC40Si,$" arg ",$FRintk") + (+ pack FRintk op ACC40Si ope arg) + (set FRintk (c-call SI "@cpu@_media_cut" ACC40Si arg)) + ((fr400 (unit u-media-4)) + (fr500 (unit u-media))) + ) +) + +(media-cut-acc mcut FRintj OP_7B OPE1_2C "media accumulator cut reg") +(media-cut-acc mcuti s6 OP_7B OPE1_2E "media accumulator cut immed") + +(define-pmacro (media-cut-acc-ss name arg op ope comment) + (dni name + (comment) + ((UNIT FM01) (FR500-MAJOR M-2) (FR400-MAJOR M-1)) + (.str name "$pack $ACC40Si,$" arg ",$FRintk") + (+ pack FRintk op ACC40Si ope arg) + (set FRintk (c-call SI "@cpu@_media_cut_ss" ACC40Si arg)) + ((fr400 (unit u-media-4)) + (fr500 (unit u-media))) + ) +) + +(media-cut-acc-ss mcutss FRintj OP_7B OPE1_2D "media accumulator cut reg with saturation") +(media-cut-acc-ss mcutssi s6 OP_7B OPE1_2F "media accumulator cut immed with saturation") + +; Dual Media Instructions +; +(define-pmacro (register-unaligned register alignment) + (and (index-of register) (sub alignment 1)) +) + +(dni mdcutssi + "Media dual cut with signed saturation" + ((UNIT FM0) (MACH fr400) (FR400-MAJOR M-2)) + "mdcutssi$pack $ACC40Si,$s6,$FRintkeven" + (+ pack FRintkeven OP_78 ACC40Si OPE1_0E s6) + (if (register-unaligned ACC40Si 2) + (c-call VOID "@cpu@_media_acc_not_aligned") + (if (register-unaligned FRintkeven 2) + (c-call VOID "@cpu@_media_register_not_aligned") + (sequence () + (set FRintkeven (c-call SI "@cpu@_media_cut_ss" ACC40Si s6)) + (set (nextreg h-fr_int FRintkeven 1) + (c-call SI "@cpu@_media_cut_ss" + (nextreg h-acc40S ACC40Si 1) s6))))) + ((fr400 (unit u-media-4-acc-dual + (out FRintk FRintkeven)))) +) + +; The (add (xxxx) (mul arg 0)) is a hack to get a reference to arg generated +; so it will be passed to the unit modelers. YUCK!!!!! +(define-pmacro (extract-hilo reg1 off1 reg2 off2 arg1hi arg1lo arg2hi arg2lo) + (sequence () + (set arg1hi (add (halfword hi reg1 off1) (mul reg1 0))) + (set arg1lo (add (halfword lo reg1 off1) (mul reg1 0))) + (set arg2hi (add (halfword hi reg2 off2) (mul reg2 0))) + (set arg2lo (add (halfword lo reg2 off2) (mul reg2 0)))) +) + +(dni maveh + "Media dual average" + ((UNIT FM01) (FR500-MAJOR M-1) (FR400-MAJOR M-1)) + "maveh$pack $FRinti,$FRintj,$FRintk" + (+ pack FRintk OP_7B FRinti OPE1_08 FRintj) + (set FRintk (c-call SI "@cpu@_media_average" FRinti FRintj)) + ((fr400 (unit u-media-1)) + (fr500 (unit u-media))) +) + +(define-pmacro (media-dual-shift name operation op ope profile comment) + (dni name + (comment) + ((UNIT FM01) (FR500-MAJOR M-2) (FR400-MAJOR M-1)) + (.str name "$pack $FRinti,$u6,$FRintk") + (+ pack FRintk op FRinti ope u6) + (sequence () + ; hack to get these referenced for profiling + (set FRinti (c-raw-call SI "frv_ref_SI" FRinti)) + (set FRintk (c-raw-call SI "frv_ref_SI" FRintk)) + (set (halfword hi FRintk 0) + (operation (halfword hi FRinti 0) (and u6 #xf))) + (set (halfword lo FRintk 0) + (operation (halfword lo FRinti 0) (and u6 #xf)))) + profile + ) +) + +(media-dual-shift msllhi sll OP_7B OPE1_09 + ((fr400 (unit u-media-3)) (fr500 (unit u-media))) + "Media dual shift left logical") +(media-dual-shift msrlhi srl OP_7B OPE1_0A + ((fr400 (unit u-media-3)) (fr500 (unit u-media))) + "Media dual shift right logical") +(media-dual-shift msrahi sra OP_7B OPE1_0B + ((fr400 (unit u-media-6)) (fr500 (unit u-media))) + "Media dual shift right arithmetic") + +(define-pmacro (media-dual-word-rotate-r-r name operation op ope comment) + (dni name + (comment) + ((UNIT FM0) (MACH fr400) (FR400-MAJOR M-2)) + (.str name "$pack $FRintieven,$s6,$FRintkeven") + (+ pack FRintkeven op FRintieven ope s6) + (if (orif (register-unaligned FRintieven 2) + (register-unaligned FRintkeven 2)) + (c-call VOID "@cpu@_media_register_not_aligned") + (sequence () + (set FRintkeven (operation FRintieven (and s6 #x1f))) + (set (nextreg h-fr_int FRintkeven 1) + (operation (nextreg h-fr_int FRintieven 1) + (and s6 #x1f))))) + ((fr400 (unit u-media-3-quad + (in FRinti FRintieven) + (out FRintk FRintkeven)))) + ) +) + +(media-dual-word-rotate-r-r mdrotli rol OP_78 OPE1_0B "rotate left reg/reg") + +(dni mcplhi + "Media dual couple, halfword" + ((UNIT FM0) (MACH fr400) (FR400-MAJOR M-2)) + "mcplhi$pack $FRinti,$u6,$FRintk" + (+ pack FRintk OP_78 FRinti OPE1_0C u6) + (sequence ((HI arg1) (HI arg2) (HI shift)) + (set FRinti (c-raw-call SI "frv_ref_SI" FRinti)) + (set FRintk (c-raw-call SI "frv_ref_SI" FRintk)) + (set shift (and u6 #xf)) + (set arg1 (sll (halfword hi FRinti 0) shift)) + (if (ne shift 0) + (sequence () + (set arg2 (halfword hi FRinti 1)) + (set arg2 (srl HI (sll HI arg2 (sub 15 shift)) + (sub 15 shift))) + (set arg1 (or HI arg1 arg2)))) + (set (halfword hi FRintk 0) arg1)) + ((fr400 (unit u-media-3-dual))) +) + +(dni mcpli + "Media dual couple, word" + ((UNIT FM0) (MACH fr400) (FR400-MAJOR M-2)) + "mcpli$pack $FRinti,$u6,$FRintk" + (+ pack FRintk OP_78 FRinti OPE1_0D u6) + (sequence ((SI tmp) (SI shift)) + (set shift (and u6 #x1f)) + (set tmp (sll FRinti shift)) + (if (ne shift 0) + (sequence ((SI tmp1)) + (set tmp1 (srl (sll (nextreg h-fr_int FRinti 1) + (sub 31 shift)) + (sub 31 shift))) + (set tmp (or tmp tmp1)))) + (set FRintk tmp)) + ((fr400 (unit u-media-3-dual))) +) + +(define-pmacro (saturate arg max min result) + (if (gt arg max) + (set result max) + (if (lt arg min) + (set result min) + (set result arg))) +) + +(dni msaths + "Media dual saturation signed" + ((UNIT FM01) (FR500-MAJOR M-1) (FR400-MAJOR M-1)) + "msaths$pack $FRinti,$FRintj,$FRintk" + (+ pack FRintk OP_7B FRinti OPE1_0C FRintj) + (sequence ((HI argihi) (HI argilo) (HI argjhi) (HI argjlo)) + (extract-hilo FRinti 0 FRintj 0 argihi argilo argjhi argjlo) + (saturate argihi argjhi (inv argjhi) (halfword hi FRintk 0)) + (saturate argilo argjlo (inv argjlo) (halfword lo FRintk 0))) + ((fr400 (unit u-media-1)) + (fr500 (unit u-media))) +) + +(dni mqsaths + "Media quad saturation signed" + ((UNIT FM01) (MACH fr400) (FR400-MAJOR M-1)) + "mqsaths$pack $FRintieven,$FRintjeven,$FRintkeven" + (+ pack FRintkeven OP_78 FRintieven OPE1_0F FRintjeven) + (if (orif (register-unaligned FRintieven 2) + (orif (register-unaligned FRintjeven 2) + (register-unaligned FRintkeven 2))) + (c-call VOID "@cpu@_media_register_not_aligned") + (sequence ((HI argihi) (HI argilo) (HI argjhi) (HI argjlo)) + ; hack to get FRintkeven referenced as a target for profiling + (set FRintkeven (c-raw-call SI "frv_ref_SI" FRintkeven)) + (extract-hilo FRintieven 0 FRintjeven 0 argihi argilo argjhi argjlo) + (saturate argihi argjhi (inv argjhi) (halfword hi FRintkeven 0)) + (saturate argilo argjlo (inv argjlo) (halfword lo FRintkeven 0)) + (extract-hilo FRintieven 1 FRintjeven 1 argihi argilo argjhi argjlo) + (saturate argihi argjhi (inv argjhi) (halfword hi FRintkeven 1)) + (saturate argilo argjlo (inv argjlo) (halfword lo FRintkeven 1)))) + ((fr400 (unit u-media-1-quad + (in FRinti FRintieven) + (in FRintj FRintjeven) + (out FRintk FRintkeven)))) +) + +(define-pmacro (saturate-unsigned arg max result) + (if (gt arg max) + (set result max) + (set result arg)) +) + +(dni msathu + "Media dual saturation unsigned" + ((UNIT FM01) (FR500-MAJOR M-1) (FR400-MAJOR M-1)) + "msathu$pack $FRinti,$FRintj,$FRintk" + (+ pack FRintk OP_7B FRinti OPE1_0D FRintj) + (sequence ((UHI argihi) (UHI argilo) (UHI argjhi) (UHI argjlo)) + (extract-hilo FRinti 0 FRintj 0 argihi argilo argjhi argjlo) + (saturate-unsigned argihi argjhi (halfword hi FRintk 0)) + (saturate-unsigned argilo argjlo (halfword lo FRintk 0))) + ((fr400 (unit u-media-1)) + (fr500 (unit u-media))) +) + +(define-pmacro (media-dual-compare name mode op ope comment) + (dni name + (comment) + ((UNIT FM01) (FR500-MAJOR M-1) (FR400-MAJOR M-1)) + (.str name "$pack $FRinti,$FRintj,$FCCk") + (+ pack (cond-null) FCCk op FRinti ope FRintj) + (if (register-unaligned FCCk 2) + (c-call VOID "@cpu@_media_cr_not_aligned") + (sequence ((mode argihi) (mode argilo) (mode argjhi) (mode argjlo)) + (extract-hilo FRinti 0 FRintj 0 + argihi argilo argjhi argjlo) + (compare-and-set-fcc argihi argjhi FCCk) + (compare-and-set-fcc argilo argjlo (nextreg h-fccr FCCk 1)))) + ; TODO - doesn't handle second FCC + ((fr400 (unit u-media-7)) + (fr500 (unit u-media))) + ) +) + +(media-dual-compare mcmpsh HI OP_7B OPE1_0E "Media dual compare signed") +(media-dual-compare mcmpuh UHI OP_7B OPE1_0F "Media dual compare unsigned") + +; Bits for the MSR.SIE field +(define-pmacro (msr-sie-nil) 0) +(define-pmacro (msr-sie-fri-hi) 8) +(define-pmacro (msr-sie-fri-lo) 4) +(define-pmacro (msr-sie-fri-1-hi) 2) +(define-pmacro (msr-sie-fri-1-lo) 1) +(define-pmacro (msr-sie-acci) 8) +(define-pmacro (msr-sie-acci-1) 4) +(define-pmacro (msr-sie-acci-2) 2) +(define-pmacro (msr-sie-acci-3) 1) + +(define-pmacro (saturate-v arg max min sie result) + (if (gt DI arg max) + (sequence () + (set result max) + (c-call VOID "@cpu@_media_overflow" sie)) + (if (lt DI arg min) + (sequence () + (set result min) + (c-call VOID "@cpu@_media_overflow" sie)) + (set result arg))) +) + +(dni mabshs + "Media dual absolute value, halfword" + ((UNIT FM01) (MACH fr400) (FR400-MAJOR M-1)) + "mabshs$pack $FRintj,$FRintk" + (+ pack FRintk OP_78 (FRi-null) OPE1_0A FRintj) + (sequence ((HI arghi) (HI arglo)) + (set FRintj (c-raw-call SI "frv_ref_SI" FRintj)) + (set FRintk (c-raw-call SI "frv_ref_SI" FRintk)) + (set arghi (halfword hi FRintj 0)) + (set arglo (halfword lo FRintj 0)) + (saturate-v (abs arghi) 32767 -32768 (msr-sie-fri-hi) + (halfword hi FRintk 0)) + (saturate-v (abs arglo) 32767 -32768 (msr-sie-fri-lo) + (halfword lo FRintk 0))) + ((fr400 (unit u-media-1))) +) + +(define-pmacro (media-arith-sat-semantics + operation arg1 arg2 res mode max min sie) + (sequence ((DI tmp)) + (set tmp (operation arg1 arg2)) + (saturate-v tmp max min sie res)) +) + +(define-pmacro (media-dual-arith-sat-semantics operation mode max min) + (sequence ((mode argihi) (mode argilo) (mode argjhi) (mode argjlo)) + (extract-hilo FRinti 0 FRintj 0 argihi argilo argjhi argjlo) + (media-arith-sat-semantics operation argihi argjhi + (halfword hi FRintk 0) mode max min + (msr-sie-fri-hi)) + (media-arith-sat-semantics operation argilo argjlo + (halfword lo FRintk 0) mode max min + (msr-sie-fri-lo))) +) + +(define-pmacro (media-dual-arith-sat name operation mode max min op ope comment) + (dni name + (comment) + ((UNIT FM01) (FR500-MAJOR M-1) (FR400-MAJOR M-1)) + (.str name "$pack $FRinti,$FRintj,$FRintk") + (+ pack FRintk op FRinti ope FRintj) + (media-dual-arith-sat-semantics operation mode max min) + ((fr400 (unit u-media-1)) + (fr500 (unit u-media))) + ) +) + +(media-dual-arith-sat maddhss add HI 32767 -32768 OP_7B OPE1_10 "Media dual add signed with saturation") +(media-dual-arith-sat maddhus add UHI 65535 0 OP_7B OPE1_11 "Media dual add unsigned with saturation") + +(media-dual-arith-sat msubhss sub HI 32767 -32768 OP_7B OPE1_12 "Media dual sub signed with saturation") +(media-dual-arith-sat msubhus sub UHI 65535 0 OP_7B OPE1_13 "Media dual sub unsigned with saturation") + +(define-pmacro (conditional-media-dual-arith-sat + name operation mode max min op ope comment) + (dni name + (comment) + ((UNIT FM01) (FR500-MAJOR M-1) (FR400-MAJOR M-1) CONDITIONAL) + (.str name "$pack $FRinti,$FRintj,$FRintk,$CCi,$cond") + (+ pack FRintk op FRinti CCi cond ope FRintj) + (if (eq CCi (or cond 2)) + (media-dual-arith-sat-semantics operation mode max min)) + ((fr400 (unit u-media-1)) + (fr500 (unit u-media))) + ) +) + +(conditional-media-dual-arith-sat cmaddhss add HI 32767 -32768 OP_71 OPE4_0 "Conditional Media dual add signed with saturation") +(conditional-media-dual-arith-sat cmaddhus add UHI 65535 0 OP_71 OPE4_1 "Conditional Media dual add unsigned with saturation") + +(conditional-media-dual-arith-sat cmsubhss sub HI 32767 -32768 OP_71 OPE4_2 "Conditional Media dual sub signed with saturation") +(conditional-media-dual-arith-sat cmsubhus sub UHI 65535 0 OP_71 OPE4_3 "Conditional Media dual sub unsigned with saturation") + +(define-pmacro (media-quad-arith-sat-semantics cond operation mode max min) + (if (orif (register-unaligned FRintieven 2) + (orif (register-unaligned FRintjeven 2) + (register-unaligned FRintkeven 2))) + (c-call VOID "@cpu@_media_register_not_aligned") + (if cond + (sequence ((mode argihi) (mode argilo) (mode argjhi) (mode argjlo)) + ; hack to get FRintkeven referenced as a target for profiling + (set FRintkeven (c-raw-call SI "frv_ref_SI" FRintkeven)) + (extract-hilo FRintieven 0 FRintjeven 0 + argihi argilo argjhi argjlo) + (media-arith-sat-semantics operation argihi argjhi + (halfword hi FRintkeven 0) mode + max min (msr-sie-fri-hi)) + (media-arith-sat-semantics operation argilo argjlo + (halfword lo FRintkeven 0) mode + max min (msr-sie-fri-lo)) + (extract-hilo FRintieven 1 FRintjeven 1 + argihi argilo argjhi argjlo) + (media-arith-sat-semantics operation argihi argjhi + (halfword hi FRintkeven 1) mode + max min (msr-sie-fri-1-hi)) + (media-arith-sat-semantics operation argilo argjlo + (halfword lo FRintkeven 1) mode + max min (msr-sie-fri-1-lo))))) +) + +(define-pmacro (media-quad-arith-sat name operation mode max min op ope comment) + (dni name + (comment) + ((UNIT FM01) (FR500-MAJOR M-1) (FR400-MAJOR M-2)) + (.str name "$pack $FRintieven,$FRintjeven,$FRintkeven") + (+ pack FRintkeven op FRintieven ope FRintjeven) + (media-quad-arith-sat-semantics 1 operation mode max min) + ((fr400 (unit u-media-1-quad + (in FRinti FRintieven) + (in FRintj FRintjeven) + (out FRintk Frintkeven))) + (fr500 (unit u-media-quad-arith + (in FRinti FRintieven) + (in FRintj FRintjeven) + (out FRintk Frintkeven)))) + ) +) + +(media-quad-arith-sat mqaddhss add HI 32767 -32768 OP_7B OPE1_18 "Media quad add signed with saturation") +(media-quad-arith-sat mqaddhus add UHI 65535 0 OP_7B OPE1_19 "Media quad add unsigned with saturation") + +(media-quad-arith-sat mqsubhss sub HI 32767 -32768 OP_7B OPE1_1A "Media quad sub signed with saturation") +(media-quad-arith-sat mqsubhus sub UHI 65535 0 OP_7B OPE1_1B "Media quad sub unsigned with saturation") + +(define-pmacro (conditional-media-quad-arith-sat + name operation mode max min op ope comment) + (dni name + (comment) + ((UNIT FM01) (FR500-MAJOR M-1) (FR400-MAJOR M-2) CONDITIONAL) + (.str name "$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond") + (+ pack FRintkeven op FRintieven CCi cond ope FRintjeven) + (media-quad-arith-sat-semantics (eq CCi (or cond 2)) + operation mode max min) + ((fr400 (unit u-media-1-quad + (in FRinti FRintieven) + (in FRintj FRintjeven) + (out FRintk Frintkeven))) + (fr500 (unit u-media-quad-arith + (in FRinti FRintieven) + (in FRintj FRintjeven) + (out FRintk Frintkeven)))) + ) +) + +(conditional-media-quad-arith-sat cmqaddhss add HI 32767 -32768 OP_73 OPE4_0 "Conditional Media quad add signed with saturation") +(conditional-media-quad-arith-sat cmqaddhus add UHI 65535 0 OP_73 OPE4_1 "Conditional Media quad add unsigned with saturation") + +(conditional-media-quad-arith-sat cmqsubhss sub HI 32767 -32768 OP_73 OPE4_2 "Conditional Media quad sub signed with saturation") +(conditional-media-quad-arith-sat cmqsubhus sub UHI 65535 0 OP_73 OPE4_3 "Conditional Media quad sub unsigned with saturation") + +(define-pmacro (media-acc-arith-sat name operation mode max min op ope comment) + (dni name + (comment) + ((UNIT FM01) (MACH fr400) (FR400-MAJOR M-1)) + (.str name "$pack $ACC40Si,$ACC40Sk") + (+ pack ACC40Sk op ACC40Si ope (ACCj-null)) + (if (register-unaligned ACC40Si 2) + (c-call VOID "@cpu@_media_acc_not_aligned") + (media-arith-sat-semantics operation ACC40Si + (nextreg h-acc40S ACC40Si 1) + ACC40Sk mode max min (msr-sie-acci))) + ((fr400 (unit u-media-2-acc))) + ) +) + +(media-acc-arith-sat maddaccs add DI #x7fffffffff (inv DI #x7fffffffff) + OP_78 OPE1_04 "Media accumulator addition") +(media-acc-arith-sat msubaccs sub DI #x7fffffffff (inv DI #x7fffffffff) + OP_78 OPE1_05 "Media accumulator subtraction") + +(define-pmacro (media-dual-acc-arith-sat name operation mode max min op ope + comment) + (dni name + (comment) + ((UNIT FM0) (MACH fr400) (FR400-MAJOR M-2)) + (.str name "$pack $ACC40Si,$ACC40Sk") + (+ pack ACC40Sk op ACC40Si ope (ACCj-null)) + (if (register-unaligned ACC40Si 4) + (c-call VOID "@cpu@_media_acc_not_aligned") + (if (register-unaligned ACC40Sk 2) + (c-call VOID "@cpu@_media_acc_not_aligned") + (sequence () + (media-arith-sat-semantics operation ACC40Si + (nextreg h-acc40S ACC40Si 1) + ACC40Sk mode max min + (msr-sie-acci)) + (media-arith-sat-semantics operation + (nextreg h-acc40S ACC40Si 2) + (nextreg h-acc40S ACC40Si 3) + (nextreg h-acc40S ACC40Sk 1) + mode max min + (msr-sie-acci-1))))) + ((fr400 (unit u-media-2-acc-dual))) + ) +) + +(media-dual-acc-arith-sat mdaddaccs add DI #x7fffffffff (inv DI #x7fffffffff) + OP_78 OPE1_06 "Media accumulator addition") +(media-dual-acc-arith-sat mdsubaccs sub DI #x7fffffffff (inv DI #x7fffffffff) + OP_78 OPE1_07 "Media accumulator subtraction") + +(dni masaccs + "Media add and subtract signed accumulator with saturation" + ((UNIT FM01) (MACH fr400) (FR400-MAJOR M-1)) + "masaccs$pack $ACC40Si,$ACC40Sk" + (+ pack ACC40Sk OP_78 ACC40Si OPE1_08 (ACCj-null)) + (if (register-unaligned ACC40Si 2) + (c-call VOID "@cpu@_media_acc_not_aligned") + (if (register-unaligned ACC40Sk 2) + (c-call VOID "@cpu@_media_acc_not_aligned") + (sequence () + (media-arith-sat-semantics add ACC40Si + (nextreg h-acc40S ACC40Si 1) + ACC40Sk DI + #x7fffffffff + (inv DI #x7fffffffff) + (msr-sie-acci)) + (media-arith-sat-semantics sub ACC40Si + (nextreg h-acc40S ACC40Si 1) + (nextreg h-acc40S ACC40Sk 1) + DI + #x7fffffffff + (inv DI #x7fffffffff) + (msr-sie-acci-1))))) + ((fr400 (unit u-media-2-add-sub))) + ) + +(dni mdasaccs + "Media add and subtract signed accumulator with saturation" + ((UNIT FM0) (MACH fr400) (FR400-MAJOR M-2)) + "mdasaccs$pack $ACC40Si,$ACC40Sk" + (+ pack ACC40Sk OP_78 ACC40Si OPE1_09 (ACCj-null)) + (if (register-unaligned ACC40Si 4) + (c-call VOID "@cpu@_media_acc_not_aligned") + (if (register-unaligned ACC40Sk 4) + (c-call VOID "@cpu@_media_acc_not_aligned") + (sequence () + (media-arith-sat-semantics add ACC40Si + (nextreg h-acc40S ACC40Si 1) + ACC40Sk DI + #x7fffffffff + (inv DI #x7fffffffff) + (msr-sie-acci)) + (media-arith-sat-semantics sub ACC40Si + (nextreg h-acc40S ACC40Si 1) + (nextreg h-acc40S ACC40Sk 1) + DI + #x7fffffffff + (inv DI #x7fffffffff) + (msr-sie-acci-1)) + (media-arith-sat-semantics add + (nextreg h-acc40S ACC40Si 2) + (nextreg h-acc40S ACC40Si 3) + (nextreg h-acc40S ACC40Sk 2) + DI + #x7fffffffff + (inv DI #x7fffffffff) + (msr-sie-acci-2)) + (media-arith-sat-semantics sub + (nextreg h-acc40S ACC40Si 2) + (nextreg h-acc40S ACC40Si 3) + (nextreg h-acc40S ACC40Sk 3) + DI + #x7fffffffff + (inv DI #x7fffffffff) + (msr-sie-acci-3))))) + ((fr400 (unit u-media-2-add-sub-dual))) + ) + +(define-pmacro (media-multiply-semantics conv arg1 arg2 res) + (set res (mul DI (conv DI arg1) (conv DI arg2))) +) + +(define-pmacro (media-dual-multiply-semantics cond mode conv rhs1 rhs2) + (if (register-unaligned ACC40Sk 2) + (c-call VOID "@cpu@_media_acc_not_aligned") + (if cond + (sequence ((mode argihi) (mode argilo) (mode argjhi) (mode argjlo)) + (extract-hilo FRinti 0 FRintj 0 + argihi argilo argjhi argjlo) + (media-multiply-semantics conv argihi rhs1 ACC40Sk) + (media-multiply-semantics conv argilo rhs2 + (nextreg h-acc40S ACC40Sk 1))))) +) + +(define-pmacro (media-dual-multiply name mode conv rhs1 rhs2 op ope comment) + (dni name + (comment) + ((UNIT FM01) (FR500-MAJOR M-4) (FR400-MAJOR M-1) PRESERVE-OVF) + (.str name "$pack $FRinti,$FRintj,$ACC40Sk") + (+ pack ACC40Sk op FRinti ope FRintj) + (media-dual-multiply-semantics 1 mode conv rhs1 rhs2) + ((fr400 (unit u-media-2)) + (fr500 (unit u-media-dual-mul))) + ) +) + +(media-dual-multiply mmulhs HI ext argjhi argjlo OP_7B OPE1_14 "Media dual multiply signed") +(media-dual-multiply mmulhu UHI zext argjhi argjlo OP_7B OPE1_15 "Media dual multiply unsigned") + +(media-dual-multiply mmulxhs HI ext argjlo argjhi OP_7B OPE1_28 "Media dual cross multiply signed") +(media-dual-multiply mmulxhu UHI zext argjlo argjhi OP_7B OPE1_29 "Media dual cross multiply unsigned") + +(define-pmacro (conditional-media-dual-multiply + name mode conv rhs1 rhs2 op ope comment) + (dni name + (comment) + ((UNIT FM01) (FR500-MAJOR M-4) (FR400-MAJOR M-1) + PRESERVE-OVF CONDITIONAL) + (.str name "$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond") + (+ pack ACC40Sk op FRinti CCi cond ope FRintj) + (media-dual-multiply-semantics (eq CCi (or cond 2)) mode conv rhs1 rhs2) + ((fr400 (unit u-media-2)) + (fr500 (unit u-media-dual-mul))) + ) +) + +(conditional-media-dual-multiply cmmulhs HI ext argjhi argjlo OP_72 OPE4_0 "Conditional Media dual multiply signed") +(conditional-media-dual-multiply cmmulhu UHI zext argjhi argjlo OP_72 OPE4_1 "Conditional Media dual multiply unsigned") + +(define-pmacro (media-quad-multiply-semantics cond mode conv rhs1 rhs2) + (if (register-unaligned ACC40Sk 4) + (c-call VOID "@cpu@_media_acc_not_aligned") + (if (orif (register-unaligned FRintieven 2) + (register-unaligned FRintjeven 2)) + (c-call VOID "@cpu@_media_register_not_aligned") + (if cond + (sequence ((mode argihi) (mode argilo) + (mode argjhi) (mode argjlo)) + (extract-hilo FRintieven 0 FRintjeven 0 + argihi argilo argjhi argjlo) + (media-multiply-semantics conv argihi rhs1 ACC40Sk) + (media-multiply-semantics conv argilo rhs2 + (nextreg h-acc40S ACC40Sk 1)) + (extract-hilo FRintieven 1 FRintjeven 1 + argihi argilo argjhi argjlo) + (media-multiply-semantics conv argihi rhs1 + (nextreg h-acc40S ACC40Sk 2)) + (media-multiply-semantics conv argilo rhs2 + (nextreg h-acc40S ACC40Sk 3)))))) +) + +(define-pmacro (media-quad-multiply name mode conv rhs1 rhs2 op ope comment) + (dni name + (comment) + ((UNIT FM01) (FR500-MAJOR M-4) (FR400-MAJOR M-2) PRESERVE-OVF) + (.str name "$pack $FRintieven,$FRintjeven,$ACC40Sk") + (+ pack ACC40Sk op FRintieven ope FRintjeven) + (media-quad-multiply-semantics 1 mode conv rhs1 rhs2) + ((fr400 (unit u-media-2-quad + (in FRinti FRintieven) + (in FRintj FRintjeven))) + (fr500 (unit u-media-quad-mul + (in FRinti FRintieven) + (in FRintj FRintjeven)))) + ) +) + +(media-quad-multiply mqmulhs HI ext argjhi argjlo OP_7B OPE1_1C "Media quad multiply signed") +(media-quad-multiply mqmulhu UHI zext argjhi argjlo OP_7B OPE1_1D "Media quad multiply unsigned") + +(media-quad-multiply mqmulxhs HI ext argjlo argjhi OP_7B OPE1_2A "Media quad cross multiply signed") +(media-quad-multiply mqmulxhu UHI zext argjlo argjhi OP_7B OPE1_2B "Media quad cross multiply unsigned") + +(define-pmacro (conditional-media-quad-multiply + name mode conv rhs1 rhs2 op ope comment) + (dni name + (comment) + ((UNIT FM01) (FR500-MAJOR M-4) (FR400-MAJOR M-2) + PRESERVE-OVF CONDITIONAL) + (.str name "$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond") + (+ pack ACC40Sk op FRintieven CCi cond ope FRintjeven) + (media-quad-multiply-semantics (eq CCi (or cond 2)) mode conv rhs1 rhs2) + ((fr400 (unit u-media-2-quad + (in FRinti FRintieven) + (in FRintj FRintjeven))) + (fr500 (unit u-media-quad-mul + (in FRinti FRintieven) + (in FRintj FRintjeven)))) + ) +) + +(conditional-media-quad-multiply cmqmulhs HI ext argjhi argjlo OP_74 OPE4_0 "Conditional Media quad multiply signed") +(conditional-media-quad-multiply cmqmulhu UHI zext argjhi argjlo OP_74 OPE4_1 "Conditional Media quad multiply unsigned") + +(define-pmacro (media-multiply-acc-semantics + conv arg1 addop arg2 res max min sie) + (sequence ((DI tmp)) + (set tmp (addop res (mul DI (conv DI arg1) (conv DI arg2)))) + (saturate-v tmp max min sie res)) +) + +(define-pmacro (media-dual-multiply-acc-semantics + cond mode conv addop rhw res max min) + (if (register-unaligned res 2) + (c-call VOID "@cpu@_media_acc_not_aligned") + (if cond + (sequence ((mode argihi) (mode argilo) (mode argjhi) (mode argjlo)) + (extract-hilo FRinti 0 FRintj 0 + argihi argilo argjhi argjlo) + (media-multiply-acc-semantics conv argihi addop argjhi + res + max min (msr-sie-acci)) + (media-multiply-acc-semantics conv argilo addop argjlo + (nextreg rhw res 1) + max min (msr-sie-acci-1))))) +) + +(define-pmacro (media-dual-multiply-acc + name mode conv addop rhw res max min op ope comment) + (dni name + (comment) + ((UNIT FM01) (FR500-MAJOR M-4) (FR400-MAJOR M-1)) + (.str name "$pack $FRinti,$FRintj,$" res) + (+ pack res op FRinti ope FRintj) + (media-dual-multiply-acc-semantics 1 mode conv addop rhw res max min) + ((fr400 (unit u-media-2)) + (fr500 (unit u-media-dual-mul))) + ) +) + +(media-dual-multiply-acc mmachs HI ext add h-acc40S ACC40Sk + (const DI #x7fffffffff) (const DI #xffffff8000000000) + OP_7B OPE1_16 + "Media dual multiply and accumulate signed") + +(media-dual-multiply-acc mmachu UHI zext add h-acc40U ACC40Uk + (const DI #xffffffffff) (const DI 0) + OP_7B OPE1_17 + "Media dual multiply and accumulate unsigned") + +(media-dual-multiply-acc mmrdhs HI ext sub h-acc40S ACC40Sk + (const DI #x7fffffffff) (const DI #xffffff8000000000) + OP_7B OPE1_30 + "Media dual multiply and reduce signed") + +(media-dual-multiply-acc mmrdhu UHI zext sub h-acc40U ACC40Uk + (const DI #xffffffffff) (const DI 0) + OP_7B OPE1_31 + "Media dual multiply and reduce unsigned") + +(define-pmacro (conditional-media-dual-multiply-acc + name mode conv addop rhw res max min op ope comment) + (dni name + (comment) + ((UNIT FM01) (FR500-MAJOR M-4) (FR400-MAJOR M-1) CONDITIONAL) + (.str name "$pack $FRinti,$FRintj,$" res ",$CCi,$cond") + (+ pack res op FRinti CCi cond ope FRintj) + (media-dual-multiply-acc-semantics (eq CCi (or cond 2)) + mode conv addop rhw res max min) + ((fr400 (unit u-media-2)) + (fr500 (unit u-media-dual-mul))) + ) +) + +(conditional-media-dual-multiply-acc cmmachs HI ext add h-acc40S ACC40Sk + (const DI #x7fffffffff) (const DI #xffffff8000000000) + OP_72 OPE4_2 + "Conditional Media dual multiply and accumulate signed") + +(conditional-media-dual-multiply-acc cmmachu UHI zext add h-acc40U ACC40Uk + (const DI #xffffffffff) (const DI 0) + OP_72 OPE4_3 + "Conditional Media dual multiply and accumulate unsigned") + +(define-pmacro (media-quad-multiply-acc-semantics + cond mode conv addop rhw res max min) + (if (register-unaligned res 4) + (c-call VOID "@cpu@_media_acc_not_aligned") + (if (orif (register-unaligned FRintieven 2) + (register-unaligned FRintjeven 2)) + (c-call VOID "@cpu@_media_register_not_aligned") + (if cond + (sequence ((mode argihi) (mode argilo) + (mode argjhi) (mode argjlo)) + (extract-hilo FRintieven 0 FRintjeven 0 + argihi argilo argjhi argjlo) + (media-multiply-acc-semantics conv argihi addop argjhi + res + max min (msr-sie-acci)) + (media-multiply-acc-semantics conv argilo addop argjlo + (nextreg rhw res 1) + max min (msr-sie-acci-1)) + (extract-hilo FRintieven 1 FRintjeven 1 + argihi argilo argjhi argjlo) + (media-multiply-acc-semantics conv argihi addop argjhi + (nextreg rhw res 2) + max min (msr-sie-acci-2)) + (media-multiply-acc-semantics conv argilo addop argjlo + (nextreg rhw res 3) + max min + (msr-sie-acci-3)))))) +) + +(define-pmacro (media-quad-multiply-acc + name mode conv addop rhw res max min op ope comment) + (dni name + (comment) + ((UNIT FM01) (FR500-MAJOR M-4) (FR400-MAJOR M-2)) + (.str name "$pack $FRintieven,$FRintjeven,$" res) + (+ pack res op FRintieven ope FRintjeven) + (media-quad-multiply-acc-semantics 1 mode conv addop rhw res max min) + ((fr400 (unit u-media-2-quad + (in FRinti FRintieven) + (in FRintj FRintjeven))) + (fr500 (unit u-media-quad-mul + (in FRinti FRintieven) + (in FRintj FRintjeven)))) + ) +) + +(media-quad-multiply-acc mqmachs HI ext add h-acc40S ACC40Sk + (const DI #x7fffffffff) (const DI #xffffff8000000000) + OP_7B OPE1_1E + "Media quad multiply and accumulate signed") + +(media-quad-multiply-acc mqmachu UHI zext add h-acc40U ACC40Uk + (const DI #xffffffffff) (const DI 0) + OP_7B OPE1_1F + "Media quad multiply and accumulate unsigned") + +(define-pmacro (conditional-media-quad-multiply-acc + name mode conv addop rhw res max min op ope comment) + (dni name + (comment) + ((UNIT FM01) (FR500-MAJOR M-4) (FR400-MAJOR M-2) CONDITIONAL) + (.str name "$pack $FRintieven,$FRintjeven,$" res ",$CCi,$cond") + (+ pack res op FRintieven CCi cond ope FRintjeven) + (media-quad-multiply-acc-semantics (eq CCi (or cond 2)) + mode conv addop rhw res max min) + ((fr400 (unit u-media-2-quad + (in FRinti FRintieven) + (in FRintj FRintjeven))) + (fr500 (unit u-media-quad-mul + (in FRinti FRintieven) + (in FRintj FRintjeven)))) + ) +) + +(conditional-media-quad-multiply-acc cmqmachs HI ext add h-acc40S ACC40Sk + (const DI #x7fffffffff) (const DI #xffffff8000000000) + OP_74 OPE4_2 + "Conditional Media quad multiply and accumulate signed") + +(conditional-media-quad-multiply-acc cmqmachu UHI zext add h-acc40U ACC40Uk + (const DI #xffffffffff) (const DI 0) + OP_74 OPE4_3 + "Conditional media quad multiply and accumulate unsigned") + +(define-pmacro (media-quad-multiply-cross-acc-semantics + cond mode conv addop rhw res max min) + (if (register-unaligned res 4) + (c-call VOID "@cpu@_media_acc_not_aligned") + (if (orif (register-unaligned FRintieven 2) + (register-unaligned FRintjeven 2)) + (c-call VOID "@cpu@_media_register_not_aligned") + (if cond + (sequence ((mode argihi) (mode argilo) + (mode argjhi) (mode argjlo)) + (extract-hilo FRintieven 0 FRintjeven 0 + argihi argilo argjhi argjlo) + (media-multiply-acc-semantics conv argihi addop argjhi + (nextreg rhw res 2) + max min (msr-sie-acci-2)) + (media-multiply-acc-semantics conv argilo addop argjlo + (nextreg rhw res 3) + max min (msr-sie-acci-3)) + (extract-hilo FRintieven 1 FRintjeven 1 + argihi argilo argjhi argjlo) + (media-multiply-acc-semantics conv argihi addop argjhi + res + max min (msr-sie-acci)) + (media-multiply-acc-semantics conv argilo addop argjlo + (nextreg rhw res 1) + max min + (msr-sie-acci-1)))))) +) + +(define-pmacro (media-quad-multiply-cross-acc + name mode conv addop rhw res max min op ope comment) + (dni name + (comment) + ((UNIT FM0) (MACH fr400) (FR400-MAJOR M-2)) + (.str name "$pack $FRintieven,$FRintjeven,$" res) + (+ pack res op FRintieven ope FRintjeven) + (media-quad-multiply-cross-acc-semantics 1 mode conv addop rhw res + max min) + ((fr400 (unit u-media-2-quad + (in FRinti FRintieven) + (in FRintj FRintjeven)))) + ) +) + +(media-quad-multiply-cross-acc mqxmachs HI ext add h-acc40S ACC40Sk + (const DI #x7fffffffff) (const DI #xffffff8000000000) + OP_78 OPE1_00 + "Media quad multiply and cross accumulate signed") + +(define-pmacro (media-quad-cross-multiply-cross-acc-semantics + cond mode conv addop rhw res max min) + (if (register-unaligned res 4) + (c-call VOID "@cpu@_media_acc_not_aligned") + (if (orif (register-unaligned FRintieven 2) + (register-unaligned FRintjeven 2)) + (c-call VOID "@cpu@_media_register_not_aligned") + (if cond + (sequence ((mode argihi) (mode argilo) + (mode argjhi) (mode argjlo)) + (extract-hilo FRintieven 0 FRintjeven 0 + argihi argilo argjhi argjlo) + (media-multiply-acc-semantics conv argihi addop argjlo + (nextreg rhw res 2) + max min (msr-sie-acci-2)) + (media-multiply-acc-semantics conv argilo addop argjhi + (nextreg rhw res 3) + max min (msr-sie-acci-3)) + (extract-hilo FRintieven 1 FRintjeven 1 + argihi argilo argjhi argjlo) + (media-multiply-acc-semantics conv argihi addop argjlo + res + max min (msr-sie-acci)) + (media-multiply-acc-semantics conv argilo addop argjhi + (nextreg rhw res 1) + max min + (msr-sie-acci-1)))))) +) + +(define-pmacro (media-quad-cross-multiply-cross-acc + name mode conv addop rhw res max min op ope comment) + (dni name + (comment) + ((UNIT FM0) (MACH fr400) (FR400-MAJOR M-2)) + (.str name "$pack $FRintieven,$FRintjeven,$" res) + (+ pack res op FRintieven ope FRintjeven) + (media-quad-cross-multiply-cross-acc-semantics 1 mode conv addop rhw res + max min) + ((fr400 (unit u-media-2-quad + (in FRinti FRintieven) + (in FRintj FRintjeven)))) + ) +) + +(media-quad-cross-multiply-cross-acc mqxmacxhs HI ext add h-acc40S ACC40Sk + (const DI #x7fffffffff) (const DI #xffffff8000000000) + OP_78 OPE1_01 + "Media quad cross multiply and cross accumulate signed") + +(define-pmacro (media-quad-cross-multiply-acc-semantics + cond mode conv addop rhw res max min) + (if (register-unaligned res 4) + (c-call VOID "@cpu@_media_acc_not_aligned") + (if (orif (register-unaligned FRintieven 2) + (register-unaligned FRintjeven 2)) + (c-call VOID "@cpu@_media_register_not_aligned") + (if cond + (sequence ((mode argihi) (mode argilo) + (mode argjhi) (mode argjlo)) + (extract-hilo FRintieven 0 FRintjeven 0 + argihi argilo argjhi argjlo) + (media-multiply-acc-semantics conv argihi addop argjlo + res + max min (msr-sie-acci)) + (media-multiply-acc-semantics conv argilo addop argjhi + (nextreg rhw res 1) + max min (msr-sie-acci-1)) + (extract-hilo FRintieven 1 FRintjeven 1 + argihi argilo argjhi argjlo) + (media-multiply-acc-semantics conv argihi addop argjlo + (nextreg rhw res 2) + max min (msr-sie-acci-2)) + (media-multiply-acc-semantics conv argilo addop argjhi + (nextreg rhw res 3) + max min + (msr-sie-acci-3)))))) +) + +(define-pmacro (media-quad-cross-multiply-acc + name mode conv addop rhw res max min op ope comment) + (dni name + (comment) + ((UNIT FM0) (MACH fr400) (FR400-MAJOR M-2)) + (.str name "$pack $FRintieven,$FRintjeven,$" res) + (+ pack res op FRintieven ope FRintjeven) + (media-quad-cross-multiply-acc-semantics 1 mode conv addop rhw res + max min) + ((fr400 (unit u-media-2-quad + (in FRinti FRintieven) + (in FRintj FRintjeven)))) + ) +) + +(media-quad-cross-multiply-acc mqmacxhs HI ext add h-acc40S ACC40Sk + (const DI #x7fffffffff) (const DI #xffffff8000000000) + OP_78 OPE1_02 + "Media quad cross multiply and accumulate signed") + +(define-pmacro (media-complex-semantics + conv lhs1 rhs1 lhs2 rhs2 res max min sie) + (sequence ((DI tmp1) (DI tmp2)) + (media-multiply-semantics conv lhs1 rhs1 tmp1) + (media-multiply-semantics conv lhs2 rhs2 tmp2) + (set tmp1 (sub tmp1 tmp2)) + (saturate-v tmp1 max min sie res)) +) + +(define-pmacro (media-complex-semantics-i + conv lhs1 rhs1 lhs2 rhs2 res max min sie) + (sequence ((DI tmp1) (DI tmp2)) + (media-multiply-semantics conv lhs1 rhs1 tmp1) + (media-multiply-semantics conv lhs2 rhs2 tmp2) + (set tmp1 (add tmp1 tmp2)) + (saturate-v tmp1 max min sie res)) +) + +(define-pmacro (media-dual-complex-semantics mode conv rhs1 rhs2 max min) + (sequence ((mode argihi) (mode argilo) (mode argjhi) (mode argjlo)) + (extract-hilo FRinti 0 FRintj 0 argihi argilo argjhi argjlo) + (media-complex-semantics conv argihi rhs1 argilo rhs2 ACC40Sk + max min (msr-sie-acci))) +) + +(define-pmacro (media-dual-complex-semantics-i mode conv rhs1 rhs2 max min) + (sequence ((mode argihi) (mode argilo) (mode argjhi) (mode argjlo)) + (extract-hilo FRinti 0 FRintj 0 argihi argilo argjhi argjlo) + (media-complex-semantics-i conv argihi rhs1 argilo rhs2 ACC40Sk + max min (msr-sie-acci))) +) + +(define-pmacro (media-dual-complex + name mode conv rhs1 rhs2 max min op ope comment) + (dni name + (comment) + ((UNIT FM01) (FR500-MAJOR M-4) (FR400-MAJOR M-1)) + (.str name "$pack $FRinti,$FRintj,$ACC40Sk") + (+ pack ACC40Sk op FRinti ope FRintj) + (media-dual-complex-semantics mode conv rhs1 rhs2 max min) + ((fr400 (unit u-media-2)) + (fr500 (unit u-media))) + ) +) + +(define-pmacro (media-dual-complex-i + name mode conv rhs1 rhs2 max min op ope comment) + (dni name + (comment) + ((UNIT FM01) (FR500-MAJOR M-4) (FR400-MAJOR M-1)) + (.str name "$pack $FRinti,$FRintj,$ACC40Sk") + (+ pack ACC40Sk op FRinti ope FRintj) + (media-dual-complex-semantics-i mode conv rhs1 rhs2 max min) + ((fr400 (unit u-media-2)) + (fr500 (unit u-media-dual-mul))) + ) +) + +(media-dual-complex mcpxrs HI ext argjhi argjlo + (const DI #x7fffffffff) (const DI #xffffff8000000000) + OP_7B OPE1_20 + "Media dual complex real signed with saturation") + +(media-dual-complex mcpxru UHI zext argjhi argjlo + (const DI #xffffffffff) (const DI 0) + OP_7B OPE1_21 + "Media dual complex real unsigned with saturation") + +(media-dual-complex-i mcpxis HI ext argjlo argjhi + (const DI #x7fffffffff) (const DI #xffffff8000000000) + OP_7B OPE1_22 + "Media dual complex imaginary signed with saturation") + +(media-dual-complex-i mcpxiu UHI zext argjlo argjhi + (const DI #xffffffffff) (const DI 0) + OP_7B OPE1_23 + "Media dual complex imaginary unsigned with saturation") + +(define-pmacro (conditional-media-dual-complex + name mode conv rhs1 rhs2 max min op ope comment) + (dni name + (comment) + ((UNIT FM01) (FR500-MAJOR M-4) (FR400-MAJOR M-1) CONDITIONAL) + (.str name "$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond") + (+ pack ACC40Sk op FRinti CCi cond ope FRintj) + (if (eq CCi (or cond 2)) + (media-dual-complex-semantics mode conv rhs1 rhs2 max min)) + ((fr400 (unit u-media-2)) + (fr500 (unit u-media))) + ) +) + +(define-pmacro (conditional-media-dual-complex-i + name mode conv rhs1 rhs2 max min op ope comment) + (dni name + (comment) + ((UNIT FM01) (FR500-MAJOR M-4) (FR400-MAJOR M-1) CONDITIONAL) + (.str name "$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond") + (+ pack ACC40Sk op FRinti CCi cond ope FRintj) + (if (eq CCi (or cond 2)) + (media-dual-complex-semantics-i mode conv rhs1 rhs2 max min)) + ((fr400 (unit u-media-2)) + (fr500 (unit u-media-dual-mul))) + ) +) + +(conditional-media-dual-complex cmcpxrs HI ext argjhi argjlo + (const DI #x7fffffffff) (const DI #xffffff8000000000) + OP_75 OPE4_0 + "Conditional Media dual complex real signed with saturation") + +(conditional-media-dual-complex cmcpxru UHI zext argjhi argjlo + (const DI #xffffffffff) (const DI 0) + OP_75 OPE4_1 + "Conditional Media dual complex real unsigned with saturation") + +(conditional-media-dual-complex-i cmcpxis HI ext argjlo argjhi + (const DI #x7fffffffff) (const DI #xffffff8000000000) + OP_75 OPE4_2 + "Conditional Media dual complex imaginary signed with saturation") + +(conditional-media-dual-complex-i cmcpxiu UHI zext argjlo argjhi + (const DI #xffffffffff) (const DI 0) + OP_75 OPE4_3 + "Conditional Media dual complex imaginary unsigned with saturation") + +(define-pmacro (media-quad-complex + name mode conv rhs1 rhs2 max min op ope comment) + (dni name + (comment) + ((UNIT FM01) (FR500-MAJOR M-4) (FR400-MAJOR M-2)) + (.str name "$pack $FRintieven,$FRintjeven,$ACC40Sk") + (+ pack ACC40Sk op FRintieven ope FRintjeven) + (if (register-unaligned ACC40Sk 2) + (c-call VOID "@cpu@_media_acc_not_aligned") + (if (orif (register-unaligned FRintieven 2) + (register-unaligned FRintjeven 2)) + (c-call VOID "@cpu@_media_register_not_aligned") + (sequence ((mode argihi) (mode argilo) + (mode argjhi) (mode argjlo)) + (extract-hilo FRintieven 0 FRintjeven 0 + argihi argilo argjhi argjlo) + (media-complex-semantics conv argihi rhs1 argilo rhs2 + ACC40Sk + max min (msr-sie-acci)) + (extract-hilo FRintieven 1 FRintjeven 1 + argihi argilo argjhi argjlo) + (media-complex-semantics conv argihi rhs1 argilo rhs2 + (nextreg h-acc40S ACC40Sk 1) + max min (msr-sie-acci-1))))) + ((fr400 (unit u-media-2-quad + (in FRinti FRintieven) + (in FRintj FRintjeven))) + (fr500 (unit u-media-quad-complex + (in FRinti FRintieven) + (in FRintj FRintjeven)))) + ) +) + +(define-pmacro (media-quad-complex-i + name mode conv rhs1 rhs2 max min op ope comment) + (dni name + (comment) + ((UNIT FM01) (FR500-MAJOR M-4) (FR400-MAJOR M-2)) + (.str name "$pack $FRintieven,$FRintjeven,$ACC40Sk") + (+ pack ACC40Sk op FRintieven ope FRintjeven) + (if (register-unaligned ACC40Sk 2) + (c-call VOID "@cpu@_media_acc_not_aligned") + (if (orif (register-unaligned FRintieven 2) + (register-unaligned FRintjeven 2)) + (c-call VOID "@cpu@_media_register_not_aligned") + (sequence ((mode argihi) (mode argilo) + (mode argjhi) (mode argjlo)) + (extract-hilo FRintieven 0 FRintjeven 0 + argihi argilo argjhi argjlo) + (media-complex-semantics-i conv argihi rhs1 argilo rhs2 + ACC40Sk + max min (msr-sie-acci)) + (extract-hilo FRintieven 1 FRintjeven 1 + argihi argilo argjhi argjlo) + (media-complex-semantics-i conv argihi rhs1 argilo rhs2 + (nextreg h-acc40S ACC40Sk 1) + max min (msr-sie-acci-1))))) + ((fr400 (unit u-media-2-quad + (in FRinti FRintieven) + (in FRintj FRintjeven))) + (fr500 (unit u-media-quad-complex + (in FRinti FRintieven) + (in FRintj FRintjeven)))) + ) +) + +(media-quad-complex mqcpxrs HI ext argjhi argjlo + (const DI #x7fffffffff) (const DI #xffffff8000000000) + OP_7B OPE1_24 + "Media quad complex real signed with saturation") + +(media-quad-complex mqcpxru UHI zext argjhi argjlo + (const DI #xffffffffff) (const DI 0) + OP_7B OPE1_25 + "Media quad complex real unsigned with saturation") + +(media-quad-complex-i mqcpxis HI ext argjlo argjhi + (const DI #x7fffffffff) (const DI #xffffff8000000000) + OP_7B OPE1_26 + "Media quad complex imaginary signed with saturation") + +(media-quad-complex-i mqcpxiu UHI zext argjlo argjhi + (const DI #xffffffffff) (const DI 0) + OP_7B OPE1_27 + "Media quad complex imaginary unsigned with saturation") + +(define-pmacro (media-pack src1 src2 targ offset) + (sequence () + (set (halfword hi targ offset) (halfword lo src1 offset)) + (set (halfword lo targ offset) (halfword lo src2 offset))) +) + +(define-pmacro (media-expand-halfword-to-word-semantics cond) + (if cond + (sequence ((UHI tmp)) + (if (and u6 1) + (set tmp (halfword lo FRinti 0)) + (set tmp (halfword hi FRinti 0))) + (set (halfword hi FRintk 0) tmp) + (set (halfword lo FRintk 0) tmp))) +) + +(dni mexpdhw + "Media expand halfword to word" + ((UNIT FM01) (FR500-MAJOR M-2) (FR400-MAJOR M-1)) + "mexpdhw$pack $FRinti,$u6,$FRintk" + (+ pack FRintk OP_7B FRinti OPE1_32 u6) + (media-expand-halfword-to-word-semantics 1) + ((fr400 (unit u-media-3)) + (fr500 (unit u-media))) +) + +(dni cmexpdhw + "Conditional media expand halfword to word" + ((UNIT FM01) (FR500-MAJOR M-2) (FR400-MAJOR M-1) CONDITIONAL) + "cmexpdhw$pack $FRinti,$u6,$FRintk,$CCi,$cond" + (+ pack FRintk OP_76 FRinti CCi cond OPE4_2 u6) + (media-expand-halfword-to-word-semantics (eq CCi (or cond 2))) + ((fr400 (unit u-media-3)) + (fr500 (unit u-media))) +) + +(define-pmacro (media-expand-halfword-to-double-semantics cond) + (if (register-unaligned FRintkeven 2) + (c-call VOID "@cpu@_media_register_not_aligned") + (if cond + (sequence ((UHI tmp)) + ; a hack to get FRintkeven referenced for profiling + (set FRintkeven (c-raw-call SI "frv_ref_SI" FRintkeven)) + (if (and u6 1) + (set tmp (halfword lo FRinti 0)) + (set tmp (halfword hi FRinti 0))) + (set (halfword hi FRintkeven 0) tmp) + (set (halfword lo FRintkeven 0) tmp) + (set (halfword hi FRintkeven 1) tmp) + (set (halfword lo FRintkeven 1) tmp)))) +) + +(dni mexpdhd + "Media expand halfword to double" + ((UNIT FM01) (FR500-MAJOR M-2) (FR400-MAJOR M-2)) + "mexpdhd$pack $FRinti,$u6,$FRintkeven" + (+ pack FRintkeven OP_7B FRinti OPE1_33 u6) + (media-expand-halfword-to-double-semantics 1) + ((fr400 (unit u-media-dual-expand + (out FRintk FRintkeven))) + (fr500 (unit u-media-dual-expand + (out FRintk FRintkeven)))) +) + +(dni cmexpdhd + "Conditional media expand halfword to double" + ((UNIT FM01) (FR500-MAJOR M-2) (FR400-MAJOR M-2) CONDITIONAL) + "cmexpdhd$pack $FRinti,$u6,$FRintkeven,$CCi,$cond" + (+ pack FRintkeven OP_76 FRinti CCi cond OPE4_3 u6) + (media-expand-halfword-to-double-semantics (eq CCi (or cond 2))) + ((fr400 (unit u-media-dual-expand + (out FRintk FRintkeven))) + (fr500 (unit u-media-dual-expand + (out FRintk FRintkeven)))) +) + +(dni mpackh + "Media halfword pack" + ((UNIT FM01) (FR500-MAJOR M-2) (FR400-MAJOR M-1)) + "mpackh$pack $FRinti,$FRintj,$FRintk" + (+ pack FRintk OP_7B FRinti OPE1_34 FRintj) + (media-pack FRinti FRintj FRintk 0) + ((fr400 (unit u-media-3)) + (fr500 (unit u-media))) +) + +(dni mdpackh + "Media dual pack" + ((UNIT FM01) (FR500-MAJOR M-5) (FR400-MAJOR M-2)) + "mdpackh$pack $FRintieven,$FRintjeven,$FRintkeven" + (+ pack FRintkeven OP_7B FRintieven OPE1_36 FRintjeven) + (if (orif (register-unaligned FRintieven 2) + (orif (register-unaligned FRintjeven 2) + (register-unaligned FRintkeven 2))) + (c-call VOID "@cpu@_media_register_not_aligned") + (sequence () + ; hack to get these referenced for profiling + (set FRintieven (c-raw-call SI "frv_ref_SI" FRintieven)) + (set FRintjeven (c-raw-call SI "frv_ref_SI" FRintjeven)) + (set FRintkeven (c-raw-call SI "frv_ref_SI" FRintkeven)) + (media-pack FRintieven FRintjeven FRintkeven 0) + (media-pack FRintieven FRintjeven FRintkeven 1))) + ((fr400 (unit u-media-3-quad + (in FRinti FRintieven) + (in FRintj FRintjeven) + (out FRintk FRintkeven))) + (fr500 (unit u-media-quad-arith + (in FRinti FRintieven) + (in FRintj FRintjeven) + (out FRintk FRintkeven)))) +) + +(define-pmacro (media-unpack src soff targ toff) + (sequence () + (set (halfword hi targ toff) (halfword hi src soff)) + (set (halfword lo targ toff) (halfword hi src soff)) + (set (halfword hi targ (add toff 1)) (halfword lo src soff)) + (set (halfword lo targ (add toff 1)) (halfword lo src soff))) +) + +(dni munpackh + "Media halfword unpack" + ((UNIT FM01) (FR500-MAJOR M-2) (FR400-MAJOR M-2)) + "munpackh$pack $FRinti,$FRintkeven" + (+ pack FRintkeven OP_7B FRinti OPE1_35 (FRj-null)) + (if (register-unaligned FRintkeven 2) + (c-call VOID "@cpu@_media_register_not_aligned") + (sequence () + ; hack to get these referenced for profiling + (set FRinti (c-raw-call SI "frv_ref_SI" FRinti)) + (set FRintkeven (c-raw-call SI "frv_ref_SI" FRintkeven)) + (media-unpack FRinti 0 FRintkeven 0))) + ((fr400 (unit u-media-dual-expand + (out FRintk FRintkeven))) + (fr500 (unit u-media-dual-expand + (out FRintk FRintkeven)))) +) + +(dni mdunpackh + "Media dual unpack" + ((UNIT FM01) (FR500-MAJOR M-7) (MACH simple,tomcat,frv)) + "mdunpackh$pack $FRintieven,$FRintk" + (+ pack FRintk OP_7B FRintieven OPE1_37 (FRj-null)) + (if (orif (register-unaligned FRintieven 2) (register-unaligned FRintk 4)) + (c-call VOID "@cpu@_media_register_not_aligned") + (sequence () + ; hack to get these referenced for profiling + (set FRintieven (c-raw-call SI "frv_ref_SI" FRintieven)) + (set FRintk (c-raw-call SI "frv_ref_SI" FRintk)) + (media-unpack FRintieven 0 FRintk 0) + (media-unpack FRintieven 1 FRintk 2))) + ((fr500 (unit u-media-dual-unpack + (in FRinti FRintieven)))) +) + +(define-pmacro (ubyte num arg offset) + (reg (.sym h-fr_ num) (add (index-of arg) offset))) + +(define-pmacro (mbtoh-semantics cond) + (if (register-unaligned FRintkeven 2) + (c-call VOID "@cpu@_media_register_not_aligned") + (if cond + (sequence () + (set (halfword hi FRintkeven 0) (ubyte 3 FRintj 0)) + (set (halfword lo FRintkeven 0) (ubyte 2 FRintj 0)) + (set (halfword hi FRintkeven 1) (ubyte 1 FRintj 0)) + (set (halfword lo FRintkeven 1) (ubyte 0 FRintj 0))))) +) + +(dni mbtoh + "Media convert byte to halfword" + ((UNIT FM01) (FR500-MAJOR M-2) (FR400-MAJOR M-2)) + "mbtoh$pack $FRintj,$FRintkeven" + (+ pack FRintkeven OP_7B (FRi-null) OPE1_38 FRintj) + (sequence () + ; hack to get these referenced for profiling + (set FRintj (c-raw-call SI "frv_ref_SI" FRintj)) + (set FRintkeven (c-raw-call SI "frv_ref_SI" FRintkeven)) + (mbtoh-semantics 1)) + ((fr400 (unit u-media-dual-expand + (in FRinti FRintieven))) + (fr500 (unit u-media-dual-btoh + (in FRinti FRintieven)))) +) + +(dni cmbtoh + "Conditional media convert byte to halfword" + ((UNIT FM01) (FR500-MAJOR M-2) (FR400-MAJOR M-2) CONDITIONAL) + "cmbtoh$pack $FRintj,$FRintkeven,$CCi,$cond" + (+ pack FRintkeven OP_77 (FRi-null) CCi cond OPE4_0 FRintj) + (mbtoh-semantics (eq CCi (or cond 2))) + ((fr400 (unit u-media-dual-expand + (out FRintk FRintkeven))) + (fr500 (unit u-media-dual-btoh + (out FRintk FRintkeven)))) +) + +(define-pmacro (mhtob-semantics cond) + (if (register-unaligned FRintjeven 2) + (c-call VOID "@cpu@_media_register_not_aligned") + (if cond + (sequence () + (set (ubyte 3 FRintk 0) (halfword hi FRintjeven 0)) + (set (ubyte 2 FRintk 0) (halfword lo FRintjeven 0)) + (set (ubyte 1 FRintk 0) (halfword hi FRintjeven 1)) + (set (ubyte 0 FRintk 0) (halfword lo FRintjeven 1))))) +) + +(dni mhtob + "Media convert halfword to byte" + ((UNIT FM01) (FR500-MAJOR M-2) (FR400-MAJOR M-2)) + "mhtob$pack $FRintjeven,$FRintk" + (+ pack FRintk OP_7B (FRi-null) OPE1_39 FRintjeven) + (sequence () + ; hack to get these referenced for profiling + (set FRintjeven (c-raw-call SI "frv_ref_SI" FRintjeven)) + (set FRintk (c-raw-call SI "frv_ref_SI" FRintk)) + (mhtob-semantics 1)) + ((fr400 (unit u-media-dual-htob + (in FRintj FRintjeven))) + (fr500 (unit u-media-dual-htob + (in FRintj FRintjeven)))) +) + +(dni cmhtob + "Conditional media convert halfword to byte" + ((UNIT FM01) (FR500-MAJOR M-2) (FR400-MAJOR M-2) CONDITIONAL) + "cmhtob$pack $FRintjeven,$FRintk,$CCi,$cond" + (+ pack FRintk OP_77 (FRi-null) CCi cond OPE4_1 FRintjeven) + (sequence () + ; hack to get these referenced for profiling + (set FRintjeven (c-raw-call SI "frv_ref_SI" FRintjeven)) + (set FRintk (c-raw-call SI "frv_ref_SI" FRintk)) + (mhtob-semantics (eq CCi (or cond 2)))) + ((fr400 (unit u-media-dual-htob + (in FRintj FRintjeven))) + (fr500 (unit u-media-dual-htob + (in FRintj FRintjeven)))) +) + +(define-pmacro (mbtohe-semantics cond) + (if (register-unaligned FRintk 4) + (c-call VOID "@cpu@_media_register_not_aligned") + (if cond + (sequence () + (set (halfword hi FRintk 0) (ubyte 3 FRintj 0)) + (set (halfword lo FRintk 0) (ubyte 3 FRintj 0)) + (set (halfword hi FRintk 1) (ubyte 2 FRintj 0)) + (set (halfword lo FRintk 1) (ubyte 2 FRintj 0)) + (set (halfword hi FRintk 2) (ubyte 1 FRintj 0)) + (set (halfword lo FRintk 2) (ubyte 1 FRintj 0)) + (set (halfword hi FRintk 3) (ubyte 0 FRintj 0)) + (set (halfword lo FRintk 3) (ubyte 0 FRintj 0))))) +) + +(dni mbtohe + "Media convert byte to halfword extended" + ((UNIT FM01) (FR500-MAJOR M-7) (MACH simple,tomcat,frv)) + "mbtohe$pack $FRintj,$FRintk" + (+ pack FRintk OP_7B (FRi-null) OPE1_3A FRintj) + (sequence () + ; hack to get these referenced for profiling + (set FRintj (c-raw-call SI "frv_ref_SI" FRintj)) + (set FRintk (c-raw-call SI "frv_ref_SI" FRintk)) + (mbtohe-semantics 1)) + ((fr500 (unit u-media-dual-btohe))) +) + +(dni cmbtohe + "Conditional media convert byte to halfword extended" + ((UNIT FM01) (FR500-MAJOR M-7) CONDITIONAL (MACH simple,tomcat,frv)) + "cmbtohe$pack $FRintj,$FRintk,$CCi,$cond" + (+ pack FRintk OP_77 (FRi-null) CCi cond OPE4_2 FRintj) + (sequence () + ; hack to get these referenced for profiling + (set FRintj (c-raw-call SI "frv_ref_SI" FRintj)) + (set FRintk (c-raw-call SI "frv_ref_SI" FRintk)) + (mbtohe-semantics (eq CCi (or cond 2)))) + ((fr500 (unit u-media-dual-btohe))) +) + +(dni mclracc + "Media clear accumulator(s)" + ((UNIT FM01) (FR500-MAJOR M-3)) + "mclracc$pack $ACC40Sk,$A" + (+ pack ACC40Sk OP_7B A (misc-null-10) OPE1_3B (FRj-null)) + (c-call VOID "@cpu@_clear_accumulators" (index-of ACC40Sk) A) + ((fr400 (unit u-media-4)) + (fr500 (unit u-media))) +) + +(dni mrdacc + "Media read accumulator" + ((UNIT FM01) (FR500-MAJOR M-2) (FR400-MAJOR M-1)) + "mrdacc$pack $ACC40Si,$FRintk" + (+ pack FRintk OP_7B ACC40Si OPE1_3C (FRj-null)) + (set FRintk ACC40Si) + ((fr400 (unit u-media-4)) + (fr500 (unit u-media))) +) + +(dni mrdaccg + "Media read accumulator guard" + ((UNIT FM01) (FR500-MAJOR M-2) (FR400-MAJOR M-1)) + "mrdaccg$pack $ACCGi,$FRintk" + (+ pack FRintk OP_7B ACCGi OPE1_3E (FRj-null)) + (set FRintk ACCGi) + ((fr400 (unit u-media-4-accg)) + (fr500 (unit u-media))) +) + +(dni mwtacc + "Media write accumulator" + ((UNIT FM01) (FR500-MAJOR M-3) (FR400-MAJOR M-1)) + "mwtacc$pack $FRinti,$ACC40Sk" + (+ pack ACC40Sk OP_7B FRinti OPE1_3D (FRj-null)) + (set ACC40Sk (or (and ACC40Sk (const DI #xffffffff00000000)) + FRinti)) + ((fr400 (unit u-media-4)) + (fr500 (unit u-media))) +) + +(dni mwtaccg + "Media write accumulator guard" + ((UNIT FM01) (FR500-MAJOR M-3) (FR400-MAJOR M-1)) + "mwtaccg$pack $FRinti,$ACCGk" + (+ pack ACCGk OP_7B FRinti OPE1_3F (FRj-null)) + (set ACCGk FRinti) + ((fr400 (unit u-media-4-accg)) + (fr500 (unit u-media))) +) + +(define-pmacro (media-cop num op) + (dni (.sym mcop num) + "Media custom instruction" + ((UNIT FM01) (FR500-MAJOR M-1) (MACH frv)) + (.str "mcop" num "$pack $FRi,$FRj,$FRk") + (+ pack FRk op FRi OPE1_00 FRj) + (c-call VOID "@cpu@_media_cop" num) + () + ) +) + +(media-cop 1 OP_7C) +(media-cop 2 OP_7D) + +; nop +; A nop is defined to be a "ori gr0,0,gr0" +; This needn't be a macro-insn, but making it one greatly simplifies decode.c +; On the other hand spending a little time in the decoder is often worth it. +; +(dnmi nop "nop" + ((UNIT I01) (FR500-MAJOR I-1) (FR400-MAJOR I-1)) + "nop$pack" + (emit ori pack (GRi 0) (s12 0) (GRk 0)) +) + +; Floating point NOP +(dni fnop + "Floating point nop" + ((UNIT FM01) (FR500-MAJOR F-8) (MACH simple,tomcat,fr500,frv)) + "fnop$pack" + (+ pack (rd-null) OP_79 (FRi-null) OPE1_0D (FRj-null)) + (nop) + () +) + +; Media NOP +; A special case of mclracc +(dnmi mnop "Media nop" + (NO-DIS (UNIT FM01) (FR500-MAJOR M-3)) + "mnop$pack" + (emit mclracc pack (ACC40Sk 63) (A 1)) +) + +; A return instruction +(dnmi ret "return" + (NO-DIS (UNIT B01) (FR500-MAJOR B-3) (FR400-MAJOR B-3)) + "ret$pack" + (emit bralr pack (hint_taken 2)) +) + +(dnmi cmp "compare" + (NO-DIS (UNIT I01) (FR500-MAJOR I-1) (FR400-MAJOR I-1)) + "cmp$pack $GRi,$GRj,$ICCi_1" + (emit subcc pack GRi GRj (GRk 0) ICCi_1) +) + +(dnmi cmpi "compare immediate" + (NO-DIS (UNIT I01) (FR500-MAJOR I-1) (FR400-MAJOR I-1)) + "cmpi$pack $GRi,$s10,$ICCi_1" + (emit subicc pack GRi s10 (GRk 0) ICCi_1) +) + +(dnmi ccmp "conditional compare" + (NO-DIS (UNIT I01) (FR500-MAJOR I-1) (FR400-MAJOR I-1) CONDITIONAL) + "ccmp$pack $GRi,$GRj,$CCi,$cond" + (emit csubcc pack GRi GRj (GRk 0) CCi cond) +) + +(dnmi mov "move" + (NO-DIS (UNIT I01) (FR500-MAJOR I-1) (FR400-MAJOR I-1)) + "mov$pack $GRi,$GRk" + (emit ori pack GRi (s12 0) GRk) +) + +(dnmi cmov "conditional move" + (NO-DIS (UNIT I01) (FR500-MAJOR I-1) (FR400-MAJOR I-1) CONDITIONAL) + "cmov$pack $GRi,$GRk,$CCi,$cond" + (emit cor pack GRi (GRj 0) GRk CCi cond) +) diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/cpu/frv.opc binutils-2.14.90.0.5/cpu/frv.opc --- binutils-2.14.90.0.4.1/cpu/frv.opc 1969-12-31 16:00:00.000000000 -0800 +++ binutils-2.14.90.0.5/cpu/frv.opc 2003-07-23 08:08:10.000000000 -0700 @@ -0,0 +1,971 @@ +/* Fujitsu FRV opcode support, for GNU Binutils. -*- C -*- + + Copyright 2003 Free Software Foundation, Inc. + + Contributed by Red Hat Inc; developed under contract from Fujitsu. + + This file is part of the GNU Binutils. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 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 is an addendum to frv.cpu. Heavy use of C code isn't + appropriate in .cpu files, so it resides here. This especially applies + to assembly/disassembly where parsing/printing can be quite involved. + Such things aren't really part of the specification of the cpu, per se, + so .cpu files provide the general framework and .opc files handle the + nitty-gritty details as necessary. + + Each section is delimited with start and end markers. + + -opc.h additions use: "-- opc.h" + -opc.c additions use: "-- opc.c" + -asm.c additions use: "-- asm.c" + -dis.c additions use: "-- dis.c" + -ibd.h additions use: "-- ibd.h" +*/ + +/* -- opc.h */ + +#undef CGEN_DIS_HASH_SIZE +#define CGEN_DIS_HASH_SIZE 128 +#undef CGEN_DIS_HASH +#define CGEN_DIS_HASH(buffer, value) (((value) >> 18) & 127) + +/* Allows reason codes to be output when assembler errors occur. */ +#define CGEN_VERBOSE_ASSEMBLER_ERRORS + +/* Vliw support. */ +#define FRV_VLIW_SIZE 4 /* fr500 has largest vliw size of 4. */ +typedef CGEN_ATTR_VALUE_TYPE VLIW_COMBO[FRV_VLIW_SIZE]; + +typedef struct +{ + int next_slot; + int constraint_violation; + unsigned long mach; + unsigned long elf_flags; + CGEN_ATTR_VALUE_TYPE *unit_mapping; + VLIW_COMBO *current_vliw; + CGEN_ATTR_VALUE_TYPE major[FRV_VLIW_SIZE]; +} FRV_VLIW; + +int frv_is_branch_major PARAMS ((CGEN_ATTR_VALUE_TYPE, unsigned long)); +int frv_is_float_major PARAMS ((CGEN_ATTR_VALUE_TYPE, unsigned long)); +int frv_is_media_major PARAMS ((CGEN_ATTR_VALUE_TYPE, unsigned long)); +int frv_is_branch_insn PARAMS ((const CGEN_INSN *)); +int frv_is_float_insn PARAMS ((const CGEN_INSN *)); +int frv_is_media_insn PARAMS ((const CGEN_INSN *)); +void frv_vliw_reset PARAMS ((FRV_VLIW *, unsigned long mach, unsigned long elf_flags)); +int frv_vliw_add_insn PARAMS ((FRV_VLIW *, const CGEN_INSN *)); +int spr_valid PARAMS ((long)); +/* -- */ + +/* -- opc.c */ +#include "elf/frv.h" + +static int match_unit + PARAMS ((FRV_VLIW *, CGEN_ATTR_VALUE_TYPE, CGEN_ATTR_VALUE_TYPE)); +static int match_vliw + PARAMS ((VLIW_COMBO *, VLIW_COMBO *, int)); +static VLIW_COMBO * add_next_to_vliw + PARAMS ((FRV_VLIW *, CGEN_ATTR_VALUE_TYPE)); +static int find_major_in_vliw + PARAMS ((FRV_VLIW *, CGEN_ATTR_VALUE_TYPE)); +static int fr400_check_insn_major_constraints + PARAMS ((FRV_VLIW *, CGEN_ATTR_VALUE_TYPE)); +static int fr500_check_insn_major_constraints + PARAMS ((FRV_VLIW *, CGEN_ATTR_VALUE_TYPE)); +static int check_insn_major_constraints + PARAMS ((FRV_VLIW *, CGEN_ATTR_VALUE_TYPE)); + +int +frv_is_branch_major (CGEN_ATTR_VALUE_TYPE major, unsigned long mach) +{ + switch (mach) + { + case bfd_mach_fr400: + if (major >= FR400_MAJOR_B_1 && major <= FR400_MAJOR_B_6) + return 1; /* is a branch */ + break; + default: + if (major >= FR500_MAJOR_B_1 && major <= FR500_MAJOR_B_6) + return 1; /* is a branch */ + break; + } + + return 0; /* not a branch */ +} + +int +frv_is_float_major (CGEN_ATTR_VALUE_TYPE major, unsigned long mach) +{ + switch (mach) + { + case bfd_mach_fr400: + return 0; /* No float insns */ + default: + if (major >= FR500_MAJOR_F_1 && major <= FR500_MAJOR_F_8) + return 1; /* is a float insn */ + break; + } + + return 0; /* not a branch */ +} + +int +frv_is_media_major (CGEN_ATTR_VALUE_TYPE major, unsigned long mach) +{ + switch (mach) + { + case bfd_mach_fr400: + if (major >= FR400_MAJOR_M_1 && major <= FR400_MAJOR_M_2) + return 1; /* is a media insn */ + break; + default: + if (major >= FR500_MAJOR_M_1 && major <= FR500_MAJOR_M_8) + return 1; /* is a media insn */ + break; + } + + return 0; /* not a branch */ +} + +int +frv_is_branch_insn (const CGEN_INSN *insn) +{ + if (frv_is_branch_major (CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_FR400_MAJOR), + bfd_mach_fr400)) + return 1; + if (frv_is_branch_major (CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_FR500_MAJOR), + bfd_mach_fr500)) + return 1; + + return 0; +} + +int +frv_is_float_insn (const CGEN_INSN *insn) +{ + if (frv_is_float_major (CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_FR400_MAJOR), + bfd_mach_fr400)) + return 1; + if (frv_is_float_major (CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_FR500_MAJOR), + bfd_mach_fr500)) + return 1; + + return 0; +} + +int +frv_is_media_insn (const CGEN_INSN *insn) +{ + if (frv_is_media_major (CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_FR400_MAJOR), + bfd_mach_fr400)) + return 1; + if (frv_is_media_major (CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_FR500_MAJOR), + bfd_mach_fr500)) + return 1; + + return 0; +} + +/* This table represents the allowable packing for vliw insns for the fr400. + The fr400 has only 2 vliw slots. Represent this by not allowing any insns + in slots 2 and 3. + Subsets of any given row are also allowed. */ +static VLIW_COMBO fr400_allowed_vliw[] = +{ + /* slot0 slot1 slot2 slot3 */ + { UNIT_I0, UNIT_I1, UNIT_NIL, UNIT_NIL }, + { UNIT_I0, UNIT_FM0, UNIT_NIL, UNIT_NIL }, + { UNIT_I0, UNIT_B0, UNIT_NIL, UNIT_NIL }, + { UNIT_FM0, UNIT_FM1, UNIT_NIL, UNIT_NIL }, + { UNIT_FM0, UNIT_B0, UNIT_NIL, UNIT_NIL }, + { UNIT_B0, UNIT_NIL, UNIT_NIL, UNIT_NIL }, + { UNIT_C, UNIT_NIL, UNIT_NIL, UNIT_NIL }, + { UNIT_NIL, UNIT_NIL, UNIT_NIL, UNIT_NIL } +}; + +/* This table represents the allowable packing for vliw insns for the fr500. + Subsets of any given row are also allowed. */ +static VLIW_COMBO fr500_allowed_vliw[] = +{ + /* slot0 slot1 slot2 slot3 */ + { UNIT_I0, UNIT_FM0, UNIT_I1, UNIT_FM1 }, + { UNIT_I0, UNIT_FM0, UNIT_I1, UNIT_B0 }, + { UNIT_I0, UNIT_FM0, UNIT_FM1, UNIT_B0 }, + { UNIT_I0, UNIT_FM0, UNIT_B0, UNIT_B1 }, + { UNIT_I0, UNIT_I1, UNIT_B0, UNIT_B1 }, + { UNIT_I0, UNIT_B0, UNIT_B1, UNIT_NIL }, + { UNIT_FM0, UNIT_FM1, UNIT_B0, UNIT_B1 }, + { UNIT_FM0, UNIT_B0, UNIT_B1, UNIT_NIL }, + { UNIT_B0, UNIT_B1, UNIT_NIL, UNIT_NIL }, + { UNIT_C, UNIT_NIL, UNIT_NIL, UNIT_NIL }, + { UNIT_NIL, UNIT_NIL, UNIT_NIL, UNIT_NIL } +}; + +/* Some insns are assigned specialized implementation units which map to + different actual implementation units on different machines. These + tables perform that mapping. */ +static CGEN_ATTR_VALUE_TYPE fr400_unit_mapping[] = +{ +/* unit in insn actual unit */ +/* NIL */ UNIT_NIL, +/* I0 */ UNIT_I0, +/* I1 */ UNIT_I1, +/* I01 */ UNIT_I01, +/* FM0 */ UNIT_FM0, +/* FM1 */ UNIT_FM1, +/* FM01 */ UNIT_FM01, +/* B0 */ UNIT_B0, /* branches only in B0 unit. */ +/* B1 */ UNIT_B0, +/* B01 */ UNIT_B0, +/* C */ UNIT_C, +/* MULT-DIV */ UNIT_I0, /* multiply and divide only in I0 unit. */ +/* LOAD */ UNIT_I0 /* load only in I0 unit. */ +}; + +static CGEN_ATTR_VALUE_TYPE fr500_unit_mapping[] = +{ +/* unit in insn actual unit */ +/* NIL */ UNIT_NIL, +/* I0 */ UNIT_I0, +/* I1 */ UNIT_I1, +/* I01 */ UNIT_I01, +/* FM0 */ UNIT_FM0, +/* FM1 */ UNIT_FM1, +/* FM01 */ UNIT_FM01, +/* B0 */ UNIT_B0, +/* B1 */ UNIT_B1, +/* B01 */ UNIT_B01, +/* C */ UNIT_C, +/* MULT-DIV */ UNIT_I01, /* multiply and divide in I0 or I1 unit. */ +/* LOAD */ UNIT_I01 /* load in I0 or I1 unit. */ +}; + +void +frv_vliw_reset (FRV_VLIW *vliw, unsigned long mach, unsigned long elf_flags) +{ + vliw->next_slot = 0; + vliw->constraint_violation = 0; + vliw->mach = mach; + vliw->elf_flags = elf_flags; + + switch (mach) + { + case bfd_mach_fr400: + vliw->current_vliw = fr400_allowed_vliw; + vliw->unit_mapping = fr400_unit_mapping; + break; + default: + vliw->current_vliw = fr500_allowed_vliw; + vliw->unit_mapping = fr500_unit_mapping; + break; + } +} + +/* Return 1 if unit1 is a match for unit2. + Unit1 comes from the insn's UNIT attribute. unit2 comes from one of the + *_allowed_vliw tables above. */ +static int +match_unit (FRV_VLIW *vliw, + CGEN_ATTR_VALUE_TYPE unit1, CGEN_ATTR_VALUE_TYPE unit2) +{ + /* Map any specialized implementation units to actual ones. */ + unit1 = vliw->unit_mapping[unit1]; + + if (unit1 == unit2) + return 1; + if (unit1 < unit2) + return 0; + + switch (unit1) + { + case UNIT_I01: + case UNIT_FM01: + case UNIT_B01: + /* The 01 versions of these units are within 2 enums of the 0 or 1 + versions. */ + if (unit1 - unit2 <= 2) + return 1; + break; + default: + break; + } + + return 0; +} + +/* Return 1 if the vliws match, 0 otherwise. */ + +static int +match_vliw (VLIW_COMBO *vliw1, VLIW_COMBO *vliw2, int vliw_size) +{ + int i; + + for (i = 0; i < vliw_size; ++i) + { + if ((*vliw1)[i] != (*vliw2)[i]) + return 0; + } + + return 1; +} + +/* Find the next vliw vliw in the table that can accomodate the new insn. + If one is found then return it. Otherwise return NULL. */ + +static VLIW_COMBO * +add_next_to_vliw (FRV_VLIW *vliw, CGEN_ATTR_VALUE_TYPE unit) +{ + int next = vliw->next_slot; + VLIW_COMBO *current = vliw->current_vliw; + VLIW_COMBO *potential; + + if (next <= 0) + abort (); /* Should never happen */ + + /* The table is sorted by units allowed within slots, so vliws with + identical starting sequences are together. */ + potential = current; + do + { + if (match_unit (vliw, unit, (*potential)[next])) + return potential; + ++potential; + } + while (match_vliw (potential, current, next)); + + return NULL; +} + +/* Look for the given major insn type in the given vliw. Return 1 if found, + return 0 otherwise. */ + +static int +find_major_in_vliw (FRV_VLIW *vliw, CGEN_ATTR_VALUE_TYPE major) +{ + int i; + + for (i = 0; i < vliw->next_slot; ++i) + if (vliw->major[i] == major) + return 1; + + return 0; +} + +/* Check for constraints between the insns in the vliw due to major insn + types. */ + +static int +fr400_check_insn_major_constraints ( + FRV_VLIW *vliw, CGEN_ATTR_VALUE_TYPE major +) +{ + /* In the cpu file, all media insns are represented as being allowed in + both media units. This makes it easier since this is the case for fr500. + Catch the invalid combinations here. Insns of major class FR400_MAJOR_M_2 + cannot coexist with any other media insn in a vliw. */ + switch (major) + { + case FR400_MAJOR_M_2: + return ! find_major_in_vliw (vliw, FR400_MAJOR_M_1) + && ! find_major_in_vliw (vliw, FR400_MAJOR_M_2); + default: + break; + } + return 1; +} + +static int +fr500_check_insn_major_constraints ( + FRV_VLIW *vliw, CGEN_ATTR_VALUE_TYPE major +) +{ + /* TODO: A table might be faster for some of the more complex instances + here. */ + switch (major) + { + case FR500_MAJOR_I_1: + case FR500_MAJOR_I_4: + case FR500_MAJOR_I_5: + case FR500_MAJOR_I_6: + case FR500_MAJOR_B_1: + case FR500_MAJOR_B_2: + case FR500_MAJOR_B_3: + case FR500_MAJOR_B_4: + case FR500_MAJOR_B_5: + case FR500_MAJOR_B_6: + case FR500_MAJOR_F_4: + case FR500_MAJOR_F_8: + case FR500_MAJOR_M_8: + return 1; /* OK */ + case FR500_MAJOR_I_2: + /* Cannot coexist with I-3 insn. */ + return ! find_major_in_vliw (vliw, FR500_MAJOR_I_3); + case FR500_MAJOR_I_3: + /* Cannot coexist with I-2 insn. */ + return ! find_major_in_vliw (vliw, FR500_MAJOR_I_2); + case FR500_MAJOR_F_1: + case FR500_MAJOR_F_2: + /* Cannot coexist with F-5, F-6, or M-7 insn. */ + return ! find_major_in_vliw (vliw, FR500_MAJOR_F_5) + && ! find_major_in_vliw (vliw, FR500_MAJOR_F_6) + && ! find_major_in_vliw (vliw, FR500_MAJOR_M_7); + case FR500_MAJOR_F_3: + /* Cannot coexist with F-7, or M-7 insn. */ + return ! find_major_in_vliw (vliw, FR500_MAJOR_F_7) + && ! find_major_in_vliw (vliw, FR500_MAJOR_M_7); + case FR500_MAJOR_F_5: + /* Cannot coexist with F-1, F-2, F-6, F-7, or M-7 insn. */ + return ! find_major_in_vliw (vliw, FR500_MAJOR_F_1) + && ! find_major_in_vliw (vliw, FR500_MAJOR_F_2) + && ! find_major_in_vliw (vliw, FR500_MAJOR_F_6) + && ! find_major_in_vliw (vliw, FR500_MAJOR_F_7) + && ! find_major_in_vliw (vliw, FR500_MAJOR_M_7); + case FR500_MAJOR_F_6: + /* Cannot coexist with F-1, F-2, F-5, F-6, or M-7 insn. */ + return ! find_major_in_vliw (vliw, FR500_MAJOR_F_1) + && ! find_major_in_vliw (vliw, FR500_MAJOR_F_2) + && ! find_major_in_vliw (vliw, FR500_MAJOR_F_5) + && ! find_major_in_vliw (vliw, FR500_MAJOR_F_6) + && ! find_major_in_vliw (vliw, FR500_MAJOR_M_7); + case FR500_MAJOR_F_7: + /* Cannot coexist with F-3, F-5, F-7, or M-7 insn. */ + return ! find_major_in_vliw (vliw, FR500_MAJOR_F_3) + && ! find_major_in_vliw (vliw, FR500_MAJOR_F_5) + && ! find_major_in_vliw (vliw, FR500_MAJOR_F_7) + && ! find_major_in_vliw (vliw, FR500_MAJOR_M_7); + case FR500_MAJOR_M_1: + /* Cannot coexist with M-7 insn. */ + return ! find_major_in_vliw (vliw, FR500_MAJOR_M_7); + case FR500_MAJOR_M_2: + case FR500_MAJOR_M_3: + /* Cannot coexist with M-5, M-6 or M-7 insn. */ + return ! find_major_in_vliw (vliw, FR500_MAJOR_M_5) + && ! find_major_in_vliw (vliw, FR500_MAJOR_M_6) + && ! find_major_in_vliw (vliw, FR500_MAJOR_M_7); + case FR500_MAJOR_M_4: + /* Cannot coexist with M-6 insn. */ + return ! find_major_in_vliw (vliw, FR500_MAJOR_M_6); + case FR500_MAJOR_M_5: + /* Cannot coexist with M-2, M-3, M-5, M-6 or M-7 insn. */ + return ! find_major_in_vliw (vliw, FR500_MAJOR_M_2) + && ! find_major_in_vliw (vliw, FR500_MAJOR_M_3) + && ! find_major_in_vliw (vliw, FR500_MAJOR_M_5) + && ! find_major_in_vliw (vliw, FR500_MAJOR_M_6) + && ! find_major_in_vliw (vliw, FR500_MAJOR_M_7); + case FR500_MAJOR_M_6: + /* Cannot coexist with M-2, M-3, M-4, M-5, M-6 or M-7 insn. */ + return ! find_major_in_vliw (vliw, FR500_MAJOR_M_2) + && ! find_major_in_vliw (vliw, FR500_MAJOR_M_3) + && ! find_major_in_vliw (vliw, FR500_MAJOR_M_4) + && ! find_major_in_vliw (vliw, FR500_MAJOR_M_5) + && ! find_major_in_vliw (vliw, FR500_MAJOR_M_6) + && ! find_major_in_vliw (vliw, FR500_MAJOR_M_7); + case FR500_MAJOR_M_7: + /* Cannot coexist with M-1, M-2, M-3, M-5, M-6 or M-7 insn. */ + return ! find_major_in_vliw (vliw, FR500_MAJOR_M_1) + && ! find_major_in_vliw (vliw, FR500_MAJOR_M_2) + && ! find_major_in_vliw (vliw, FR500_MAJOR_M_3) + && ! find_major_in_vliw (vliw, FR500_MAJOR_M_5) + && ! find_major_in_vliw (vliw, FR500_MAJOR_M_6) + && ! find_major_in_vliw (vliw, FR500_MAJOR_M_7) + && ! find_major_in_vliw (vliw, FR500_MAJOR_F_1) + && ! find_major_in_vliw (vliw, FR500_MAJOR_F_2) + && ! find_major_in_vliw (vliw, FR500_MAJOR_F_3) + && ! find_major_in_vliw (vliw, FR500_MAJOR_F_5) + && ! find_major_in_vliw (vliw, FR500_MAJOR_F_6) + && ! find_major_in_vliw (vliw, FR500_MAJOR_F_7); + default: + abort (); + break; + } + return 1; +} + +static int +check_insn_major_constraints ( + FRV_VLIW *vliw, CGEN_ATTR_VALUE_TYPE major +) +{ + int rc; + switch (vliw->mach) + { + case bfd_mach_fr400: + rc = fr400_check_insn_major_constraints (vliw, major); + break; + default: + rc = fr500_check_insn_major_constraints (vliw, major); + break; + } + return rc; +} + +/* Add in insn to the VLIW vliw if possible. Return 0 if successful, + non-zero otherwise. */ +int +frv_vliw_add_insn (FRV_VLIW *vliw, const CGEN_INSN *insn) +{ + int index; + CGEN_ATTR_VALUE_TYPE major; + CGEN_ATTR_VALUE_TYPE unit; + VLIW_COMBO *new_vliw; + + if (vliw->constraint_violation || CGEN_INSN_INVALID_P (insn)) + return 1; + + index = vliw->next_slot; + if (index >= FRV_VLIW_SIZE) + return 1; + + unit = CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_UNIT); + if (unit == UNIT_NIL) + abort (); /* no UNIT specified for this insn in frv.cpu */ + + if (vliw->mach == bfd_mach_fr400) + major = CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_FR400_MAJOR); + else + major = CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_FR500_MAJOR); + + if (index <= 0) + { + /* Any insn can be added to slot 0. */ + while (! match_unit (vliw, unit, (*vliw->current_vliw)[0])) + ++vliw->current_vliw; + vliw->major[0] = major; + vliw->next_slot = 1; + return 0; + } + + /* If there are already insns in the vliw(s) check to see that + this one can be added. Do this by finding an allowable vliw + combination that can accept the new insn. */ + if (! (vliw->elf_flags & EF_FRV_NOPACK)) + { + new_vliw = add_next_to_vliw (vliw, unit); + if (new_vliw && check_insn_major_constraints (vliw, major)) + { + vliw->current_vliw = new_vliw; + vliw->major[index] = major; + vliw->next_slot++; + return 0; + } + + /* The frv machine supports all packing conbinations. If we fail, + to add the insn, then it could not be handled as if it was the fr500. + Just return as if it was handled ok. */ + if (vliw->mach == bfd_mach_frv) + return 0; + } + + vliw->constraint_violation = 1; + return 1; +} + +int +spr_valid (regno) + long regno; +{ + if (regno < 0) return 0; + if (regno <= 4095) return 1; + return 0; +} +/* -- */ + +/* -- asm.c */ +static const char * parse_ulo16 + PARAMS ((CGEN_CPU_DESC, const char **, int, unsigned long *)); +static const char * parse_uslo16 + PARAMS ((CGEN_CPU_DESC, const char **, int, unsigned long *)); +static const char * parse_uhi16 + PARAMS ((CGEN_CPU_DESC, const char **, int, unsigned long *)); +static long parse_register_number + PARAMS ((const char **)); +static const char * parse_spr + PARAMS ((CGEN_CPU_DESC, const char **, CGEN_KEYWORD *, long *)); +static const char * parse_d12 + PARAMS ((CGEN_CPU_DESC, const char **, int, long *)); +static const char * parse_s12 + PARAMS ((CGEN_CPU_DESC, const char **, int, long *)); +static const char * parse_u12 + PARAMS ((CGEN_CPU_DESC, const char **, int, long *)); +static const char * parse_even_register + PARAMS ((CGEN_CPU_DESC, const char **, CGEN_KEYWORD *, long *)); + +static const char * +parse_ulo16 (cd, strp, opindex, valuep) + CGEN_CPU_DESC cd; + const char **strp; + int opindex; + unsigned long *valuep; +{ + const char *errmsg; + enum cgen_parse_operand_result result_type; + bfd_vma value; + + if (**strp == '#' || **strp == '%') + { + if (strncasecmp (*strp + 1, "lo(", 3) == 0) + { + *strp += 4; + errmsg = cgen_parse_address (cd, strp, opindex, BFD_RELOC_FRV_LO16, + &result_type, &value); + if (**strp != ')') + return "missing `)'"; + ++*strp; + if (errmsg == NULL + && result_type == CGEN_PARSE_OPERAND_RESULT_NUMBER) + value &= 0xffff; + *valuep = value; + return errmsg; + } + if (strncasecmp (*strp + 1, "gprello(", 8) == 0) + { + *strp += 9; + errmsg = cgen_parse_address (cd, strp, opindex, BFD_RELOC_FRV_GPRELLO, + &result_type, &value); + if (**strp != ')') + return "missing ')'"; + ++*strp; + if (errmsg == NULL + && result_type == CGEN_PARSE_OPERAND_RESULT_NUMBER) + value >>= 16; + *valuep = value; + return errmsg; + } + } + return cgen_parse_signed_integer (cd, strp, opindex, valuep); +} + +static const char * +parse_uslo16 (cd, strp, opindex, valuep) + CGEN_CPU_DESC cd; + const char **strp; + int opindex; + unsigned long *valuep; +{ + const char *errmsg; + enum cgen_parse_operand_result result_type; + bfd_vma value; + + if (**strp == '#' || **strp == '%') + { + if (strncasecmp (*strp + 1, "lo(", 3) == 0) + { + *strp += 4; + errmsg = cgen_parse_address (cd, strp, opindex, BFD_RELOC_FRV_LO16, + &result_type, &value); + if (**strp != ')') + return "missing `)'"; + ++*strp; + if (errmsg == NULL + && result_type == CGEN_PARSE_OPERAND_RESULT_NUMBER) + value &= 0xffff; + *valuep = value; + return errmsg; + } + else if (strncasecmp (*strp + 1, "gprello(", 8) == 0) + { + *strp += 9; + errmsg = cgen_parse_address (cd, strp, opindex, BFD_RELOC_FRV_GPRELLO, + &result_type, &value); + if (**strp != ')') + return "missing ')'"; + ++*strp; + if (errmsg == NULL + && result_type == CGEN_PARSE_OPERAND_RESULT_NUMBER) + value &= 0xffff; + *valuep = value; + return errmsg; + } + } + return cgen_parse_unsigned_integer (cd, strp, opindex, valuep); +} + +static const char * +parse_uhi16 (cd, strp, opindex, valuep) + CGEN_CPU_DESC cd; + const char **strp; + int opindex; + unsigned long *valuep; +{ + const char *errmsg; + enum cgen_parse_operand_result result_type; + bfd_vma value; + + if (**strp == '#' || **strp == '%') + { + if (strncasecmp (*strp + 1, "hi(", 3) == 0) + { + *strp += 4; + errmsg = cgen_parse_address (cd, strp, opindex, BFD_RELOC_FRV_HI16, + &result_type, &value); + if (**strp != ')') + return "missing `)'"; + ++*strp; + if (errmsg == NULL + && result_type == CGEN_PARSE_OPERAND_RESULT_NUMBER) + value >>= 16; + *valuep = value; + return errmsg; + } + else if (strncasecmp (*strp + 1, "gprelhi(", 8) == 0) + { + *strp += 9; + errmsg = cgen_parse_address (cd, strp, opindex, BFD_RELOC_FRV_GPRELHI, + &result_type, &value); + if (**strp != ')') + return "missing ')'"; + ++*strp; + if (errmsg == NULL + && result_type == CGEN_PARSE_OPERAND_RESULT_NUMBER) + value >>= 16; + *valuep = value; + return errmsg; + } + } + return cgen_parse_unsigned_integer (cd, strp, opindex, valuep); +} + +static long +parse_register_number (strp) + const char **strp; +{ + int regno; + if (**strp < '0' || **strp > '9') + return -1; /* error */ + + regno = **strp - '0'; + for (++*strp; **strp >= '0' && **strp <= '9'; ++*strp) + regno = regno * 10 + (**strp - '0'); + + return regno; +} + +static const char * +parse_spr (cd, strp, table, valuep) + CGEN_CPU_DESC cd; + const char **strp; + CGEN_KEYWORD * table; + long *valuep; +{ + const char *save_strp; + long regno; + + /* Check for spr index notation. */ + if (strncasecmp (*strp, "spr[", 4) == 0) + { + *strp += 4; + regno = parse_register_number (strp); + if (**strp != ']') + return "missing `]'"; + ++*strp; + if (! spr_valid (regno)) + return "Special purpose register number is out of range"; + *valuep = regno; + return NULL; + } + + save_strp = *strp; + regno = parse_register_number (strp); + if (regno != -1) + { + if (! spr_valid (regno)) + return "Special purpose register number is out of range"; + *valuep = regno; + return NULL; + } + + *strp = save_strp; + return cgen_parse_keyword (cd, strp, table, valuep); +} + +static const char * +parse_d12 (cd, strp, opindex, valuep) + CGEN_CPU_DESC cd; + const char **strp; + int opindex; + long *valuep; +{ + const char *errmsg; + enum cgen_parse_operand_result result_type; + bfd_vma value; + + /* Check for small data reference. */ + if (**strp == '#' || **strp == '%') + { + if (strncasecmp (*strp + 1, "gprel12(", 8) == 0) + { + *strp += 9; + errmsg = cgen_parse_address (cd, strp, opindex, BFD_RELOC_FRV_GPREL12, + &result_type, &value); + if (**strp != ')') + return "missing `)'"; + ++*strp; + *valuep = value; + return errmsg; + } + } + return cgen_parse_signed_integer (cd, strp, opindex, valuep); +} + +static const char * +parse_s12 (cd, strp, opindex, valuep) + CGEN_CPU_DESC cd; + const char **strp; + int opindex; + long *valuep; +{ + const char *errmsg; + enum cgen_parse_operand_result result_type; + bfd_vma value; + + /* Check for small data reference. */ + if ((**strp == '#' || **strp == '%') + && strncasecmp (*strp + 1, "gprel12(", 8) == 0) + { + *strp += 9; + errmsg = cgen_parse_address (cd, strp, opindex, BFD_RELOC_FRV_GPREL12, + &result_type, &value); + if (**strp != ')') + return "missing `)'"; + ++*strp; + *valuep = value; + return errmsg; + } + else + { + if (**strp == '#') + ++*strp; + return cgen_parse_signed_integer (cd, strp, opindex, valuep); + } +} + +static const char * +parse_u12 (cd, strp, opindex, valuep) + CGEN_CPU_DESC cd; + const char **strp; + int opindex; + long *valuep; +{ + const char *errmsg; + enum cgen_parse_operand_result result_type; + bfd_vma value; + + /* Check for small data reference. */ + if ((**strp == '#' || **strp == '%') + && strncasecmp (*strp + 1, "gprel12(", 8) == 0) + { + *strp += 9; + errmsg = cgen_parse_address (cd, strp, opindex, BFD_RELOC_FRV_GPRELU12, + &result_type, &value); + if (**strp != ')') + return "missing `)'"; + ++*strp; + *valuep = value; + return errmsg; + } + else + { + if (**strp == '#') + ++*strp; + return cgen_parse_signed_integer (cd, strp, opindex, valuep); + } +} + +static const char * +parse_even_register (cd, strP, tableP, valueP) + CGEN_CPU_DESC cd; + const char ** strP; + CGEN_KEYWORD * tableP; + long * valueP; +{ + const char * errmsg; + const char * saved_star_strP = * strP; + + errmsg = cgen_parse_keyword (cd, strP, tableP, valueP); + + if (errmsg == NULL && ((* valueP) & 1)) + { + errmsg = _("register number must be even"); + * strP = saved_star_strP; + } + + return errmsg; +} +/* -- */ + +/* -- dis.c */ +static void print_spr + PARAMS ((CGEN_CPU_DESC, PTR, CGEN_KEYWORD *, long, unsigned)); +static void print_hi + PARAMS ((CGEN_CPU_DESC, PTR, long, unsigned, bfd_vma, int)); +static void print_lo + PARAMS ((CGEN_CPU_DESC, PTR, long, unsigned, bfd_vma, int)); + +static void +print_spr (cd, dis_info, names, regno, attrs) + CGEN_CPU_DESC cd; + PTR dis_info; + CGEN_KEYWORD *names; + long regno; + unsigned int attrs; +{ + /* Use the register index format for any unnamed registers. */ + if (cgen_keyword_lookup_value (names, regno) == NULL) + { + disassemble_info *info = (disassemble_info *) dis_info; + (*info->fprintf_func) (info->stream, "spr[%ld]", regno); + } + else + print_keyword (cd, dis_info, names, regno, attrs); +} + +static void +print_hi (cd, dis_info, value, attrs, pc, length) + CGEN_CPU_DESC cd ATTRIBUTE_UNUSED; + PTR dis_info; + long value; + unsigned int attrs ATTRIBUTE_UNUSED; + bfd_vma pc ATTRIBUTE_UNUSED; + int length ATTRIBUTE_UNUSED; +{ + disassemble_info *info = (disassemble_info *) dis_info; + if (value) + (*info->fprintf_func) (info->stream, "0x%lx", value); + else + (*info->fprintf_func) (info->stream, "hi(0x%lx)", value); +} + +static void +print_lo (cd, dis_info, value, attrs, pc, length) + CGEN_CPU_DESC cd ATTRIBUTE_UNUSED; + PTR dis_info; + long value; + unsigned int attrs ATTRIBUTE_UNUSED; + bfd_vma pc ATTRIBUTE_UNUSED; + int length ATTRIBUTE_UNUSED; +{ + disassemble_info *info = (disassemble_info *) dis_info; + if (value) + (*info->fprintf_func) (info->stream, "0x%lx", value); + else + (*info->fprintf_func) (info->stream, "lo(0x%lx)", value); +} + +/* -- */ diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/cpu/iq10.cpu binutils-2.14.90.0.5/cpu/iq10.cpu --- binutils-2.14.90.0.4.1/cpu/iq10.cpu 1969-12-31 16:00:00.000000000 -0800 +++ binutils-2.14.90.0.5/cpu/iq10.cpu 2003-07-23 08:08:10.000000000 -0700 @@ -0,0 +1,1111 @@ +; IQ10-only CPU description. -*- Scheme -*- +; +; Copyright 2001, 2002 Free Software Foundation, Inc. +; +; Contributed by Red Hat Inc; developed under contract from Vitesse. +; +; This file is part of the GNU Binutils. +; +; This program is free software; you can redistribute it and/or modify +; it under the terms of the GNU General Public License as published by +; the Free Software Foundation; either version 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. + + +; Instructions. + +(dni andoui-q10 "iq10 and upper ones immediate" (MACH10 USES-RS USES-RT) + "andoui $rt,$rs,$hi16" + (+ OP10_ANDOUI rs rt hi16) + (set rt (and rs (or (sll hi16 16) #xFFFF))) + ()) + +(dni andoui2-q10 "iq10 and upper ones immediate" (ALIAS NO-DIS MACH10 USES-RS USES-RT) + "andoui ${rt-rs},$hi16" + (+ OP10_ANDOUI rt-rs hi16) + (set rt-rs (and rt-rs (or (sll hi16 16) #xFFFF))) + ()) + +(dni orui-q10 "or upper immediate" (MACH10 USES-RS USES-RT) + "orui $rt,$rs,$hi16" + (+ OP10_ORUI rs rt hi16) + (set rt (or rs (sll hi16 16))) + ()) + +(dni orui2-q10 "or upper immediate" (ALIAS NO-DIS MACH10 USES-RS USES-RT) + "orui ${rt-rs},$hi16" + (+ OP10_ORUI rt-rs hi16) + (set rt-rs (or rt-rs (sll hi16 16))) + ()) + +(dni mrgbq10 "merge bytes" (MACH10 USES-RD USES-RS USES-RT) + "mrgb $rd,$rs,$rt,$maskq10" + (+ OP_SPECIAL rs rt rd maskq10 FUNC_MRGB) + (sequence ((SI temp)) + (if (bitclear? mask 0) + (set temp (and rs #xFF)) + (set temp (and rt #xFF))) + (if (bitclear? mask 1) + (set temp (or temp (and rs #xFF00))) + (set temp (or temp (and rt #xFF00)))) + (if (bitclear? mask 2) + (set temp (or temp (and rs #xFF0000))) + (set temp (or temp (and rt #xFF0000)))) + (if (bitclear? mask 3) + (set temp (or temp (and rs #xFF000000))) + (set temp (or temp (and rt #xFF000000)))) + (set rd temp)) + ()) + +(dni mrgbq102 "merge bytes" (ALIAS NO-DIS MACH10 USES-RD USES-RS USES-RT) + "mrgb ${rd-rs},$rt,$maskq10" + (+ OP_SPECIAL rt rd-rs maskq10 FUNC_MRGB) + (sequence ((SI temp)) + (if (bitclear? mask 0) + (set temp (and rd-rs #xFF)) + (set temp (and rt #xFF))) + (if (bitclear? mask 1) + (set temp (or temp (and rd-rs #xFF00))) + (set temp (or temp (and rt #xFF00)))) + (if (bitclear? mask 2) + (set temp (or temp (and rd-rs #xFF0000))) + (set temp (or temp (and rt #xFF0000)))) + (if (bitclear? mask 3) + (set temp (or temp (and rd-rs #xFF000000))) + (set temp (or temp (and rt #xFF000000)))) + (set rd-rs temp)) + ()) + +; In the future, we'll want the j & jal to use the 21 bit target, with +; the upper five bits shifted up. For now, give 'em the 16 bit target. + +(dni jq10 "jump" (MACH10) + "j $jmptarg" + (+ OP_J (f-rs 0) (f-rt 0) jmptarg) +; "j $jmptargq10" +; (+ OP_J upper-5-jmptargq10 (f-rt 0) lower-16-jmptargq10) + (delay 1 (set pc jmptarg)) + ()) + +(dni jalq10 "jump and link" (MACH10 USES-RT) + "jal $rt,$jmptarg" + (+ OP_JAL (f-rs 0) rt jmptarg) +; "jal $rt,$jmptargq10" +; (+ OP_JAL upper-5-jmptargq10 rt lower-16-jmptargq10) + (delay 1 + (sequence () + (set rt (add pc 8)) + (set pc jmptarg))) + ()) + +(dni jalq10-2 "jump and link, implied r31" (MACH10 USES-RT) + "jal $jmptarg" + (+ OP_JAL (f-rs 0) (f-rt 31) jmptarg) + (delay 1 + (sequence () + (set rt (add pc 8)) + (set pc jmptarg))) + ()) + +; Branch instructions. + +(dni bbil "branch bit immediate likely" (MACH10 USES-RS) + "bbil $rs($bitnum),$offset" + (+ OP10_BBIL rs bitnum offset) + (if (bitset? rs bitnum) + (delay 1 (set pc offset)) + (skip 1)) + ()) + +(dni bbinl "branch bit immediate negated likely" (MACH10 USES-RS) + "bbinl $rs($bitnum),$offset" + (+ OP10_BBINL rs bitnum offset) + (if (bitclear? rs bitnum) + (delay 1 (set pc offset)) + (skip 1)) + ()) + +(dni bbvl "branch bit variable likely" (MACH10 USES-RS USES-RT) + "bbvl $rs,$rt,$offset" + (+ OP10_BBVL rs rt offset) + (if (bitset? rs (and rt #x1F)) + (delay 1 (set pc offset)) + (skip 1)) + ()) + +(dni bbvnl "branch bit variable negated likely" (MACH10 USES-RS USES-RT) + "bbvnl $rs,$rt,$offset" + (+ OP10_BBVNL rs rt offset) + (if (bitclear? rs (and rt #x1F)) + (delay 1 (set pc offset)) + (skip 1)) + ()) + +(dni bgtzal "branch if greater than zero and link" (MACH10 USES-RS USES-R31) + "bgtzal $rs,$offset" + (+ OP_REGIMM rs FUNC_BGTZAL offset) + (if (gt rs 0) + (sequence () + (set (reg h-gr 31) (add pc 8)) + (delay 1 (set pc offset)))) + ()) + +(dni bgtzall + "branch if greater than zero and link likely" (MACH10 USES-RS USES-R31) + "bgtzall $rs,$offset" + (+ OP_REGIMM rs FUNC_BGTZALL offset) + (if (gt rs 0) + (sequence () + (set (reg h-gr 31) (add pc 8)) + (delay 1 (set pc offset))) + (skip 1)) + ()) + +(dni blezal "branch if less than or equal to zero and link" (MACH10 USES-RS USES-R31) + "blezal $rs,$offset" + (+ OP_REGIMM rs FUNC_BLEZAL offset) + (if (le rs 0) + (sequence () + (set (reg h-gr 31) (add pc 8)) + (delay 1 (set pc offset)))) + ()) + +(dni blezall + "branch if less than or equal to zero and link likely" (MACH10 USES-RS USES-R31) + "blezall $rs,$offset" + (+ OP_REGIMM rs FUNC_BLEZALL offset) + (if (le rs 0) + (sequence () + (set (reg h-gr 31) (add pc 8)) + (delay 1 (set pc offset))) + (skip 1)) + ()) + +(dni bgtz-q10 "branch if greater than zero" (MACH10 USES-RS) + "bgtz $rs,$offset" + (+ OP_REGIMM rs FUNC_BGTZ offset) + (if (gt rs 0) + (delay 1 (set pc offset))) + ()) + +(dni bgtzl-q10 "branch if greater than zero likely" (MACH10 USES-RS) + "bgtzl $rs,$offset" + (+ OP_REGIMM rs FUNC_BGTZL offset) + (if (gt rs 0) + (delay 1 (set pc offset)) + (skip 1)) + ()) + + +(dni blez-q10 "branch if less than or equal to zero" (MACH10 USES-RS) + "blez $rs,$offset" + (+ OP_REGIMM rs FUNC_BLEZ offset) + (if (le rs 0) + (delay 1 (set pc offset))) + ()) + +(dni blezl-q10 "branch if less than or equal to zero likely" (MACH10 USES-RS) + "blezl $rs,$offset" + (+ OP_REGIMM rs FUNC_BLEZL offset) + (if (le rs 0) + (delay 1 (set pc offset)) + (skip 1)) + ()) + +(dni bmb-q10 "branch if matching byte-lane" (MACH10 USES-RS USES-RT) + "bmb $rs,$rt,$offset" + (+ OP10_BMB rs rt offset) + (sequence ((BI branch?)) + (set branch? 0) + (if (eq (and rs #xFF) (and rt #xFF)) + (set branch? 1)) + (if (eq (and rs #xFF00) (and rt #xFF00)) + (set branch? 1)) + (if (eq (and rs #xFF0000) (and rt #xFF0000)) + (set branch? 1)) + (if (eq (and rs #xFF000000) (and rt #xFF000000)) + (set branch? 1)) + (if branch? + (delay 1 (set pc offset)))) + ()) + +(dni bmbl "branch if matching byte-lane likely" (MACH10 USES-RS USES-RT) + "bmbl $rs,$rt,$offset" + (+ OP10_BMBL rs rt offset) + (sequence ((BI branch?)) + (set branch? 0) + (if (eq (and rs #xFF) (and rt #xFF)) + (set branch? 1)) + (if (eq (and rs #xFF00) (and rt #xFF00)) + (set branch? 1)) + (if (eq (and rs #xFF0000) (and rt #xFF0000)) + (set branch? 1)) + (if (eq (and rs #xFF000000) (and rt #xFF000000)) + (set branch? 1)) + (if branch? + (delay 1 (set pc offset)) + (skip 1))) + ()) + +(dni bri "branch if register invalid" (MACH10 USES-RS) + "bri $rs,$offset" + (+ OP_REGIMM rs FUNC_BRI offset) + (if (gt rs 0) + (delay 1 (set pc offset)) + (skip 1)) + ()) + +(dni brv "branch if register invalid" (MACH10 USES-RS) + "brv $rs,$offset" + (+ OP_REGIMM rs FUNC_BRV offset) + (if (gt rs 0) + (delay 1 (set pc offset)) + (skip 1)) + ()) + +; debug instructions + +(dni bctx "branch if the current context == instruction[21]" (MACH10 USES-RS) + "bctx $rs,$offset" + (+ OP_REGIMM rs FUNC_BCTX offset) + (delay 1 (set pc offset)) + ()) + +(dni yield "unconditional yield to the other context" (MACH10) + "yield" + (+ OP_SPECIAL (f-rs 0) (f-rt 0) (f-rd 0) (f-shamt 0) FUNC10_YIELD) + (unimp yield) + ()) + +; Special instructions. + +(dni crc32 "CRC, 32 bit input" (MACH10 USES-RD USES-RS USES-RT) + "crc32 $rd,$rs,$rt" + (+ OP_COP3 rs rt rd (f-shamt 0) FUNC10_CRC32) + (unimp crc32) + ()) + +(dni crc32b "CRC, 8 bit input" (MACH10 USES-RD USES-RS USES-RT) + "crc32b $rd,$rs,$rt" + (+ OP_COP3 rs rt rd (f-shamt 0) FUNC10_CRC32B) + (unimp crc32b) + ()) + +(dni cnt1s "Count ones" (MACH10 USES-RD USES-RS) + "cnt1s $rd,$rs" + (+ OP_SPECIAL rs rt rd (f-shamt 0) FUNC10_CNT1S) + (unimp crcp) + ()) + + +; Special Instructions + +(dni avail "Mark Header Buffer Available" (MACH10 USES-RD) + "avail $rd" + (+ OP_COP3 (f-rs 0) (f-rt 0) rd (f-shamt 0) FUNC10_AVAIL) + (unimp avail) + ()) + +(dni free "Mark Header Buffer Free" (MACH10 USES-RS USES-RD) + "free $rd,$rs" + (+ OP_COP3 rs (f-rt 0) rd (f-shamt 0) FUNC10_FREE) + (unimp free) + ()) + +(dni tstod "Test Header Buffer Order Dependency" (MACH10 USES-RS USES-RD) + "tstod $rd,$rs" + (+ OP_COP3 rs (f-rt 0) rd (f-shamt 0) FUNC10_TSTOD) + (unimp tstod) + ()) + +(dni cmphdr "Get a Complete Header" (MACH10 USES-RD) + "cmphdr $rd" + (+ OP_COP3 (f-rs 0) (f-rt 0) rd (f-shamt 0) FUNC10_CMPHDR) + (unimp cmphdr) + ()) + +(dni mcid "Allocate a Multicast ID" (MACH10 USES-RD USES-RT) + "mcid $rd,$rt" + (+ OP_COP3 (f-rs 0) rt rd (f-shamt 0) FUNC10_MCID) + (unimp mcid) + ()) + +(dni dba "Allocate a Data Buffer Pointer" (MACH10 USES-RD) + "dba $rd" + (+ OP_COP3 (f-rs 0) (f-rt 0) rd (f-shamt 0) FUNC10_DBA) + (unimp dba) + ()) + +(dni dbd "Deallocate a Data Buffer Pointer" (MACH10 USES-RS USES-RT USES-RD) + "dbd $rd,$rs,$rt" + (+ OP_COP3 rs rt rd (f-shamt 0) FUNC10_DBD) + (unimp dbd) + ()) + +(dni dpwt "DSTN_PORT Write" (MACH10 USES-RS USES-RD) + "dpwt $rd,$rs" + (+ OP_COP3 rs (f-rt 0) rd (f-shamt 0) FUNC10_DPWT) + (unimp dpwt) + ()) + +; Architectural and coprocessor instructions. + +(dni chkhdrq10 "" (MACH10 USES-RS USES-RD) + "chkhdr $rd,$rs" + (+ OP_COP3 rs (f-rt 0) rd (f-shamt 0) FUNC10_CHKHDR) + (unimp chkhdr) + ()) + +; Coprocessor DMA Instructions (IQ10) + +(dni rba "Read Bytes Absolute" (MACH10 USES-RS USES-RT USES-RD) + "rba $rd,$rs,$rt" + (+ OP_COP3 rs rt rd (f-shamt 0) FUNC10_RBA) + (unimp rba) + ()) + +(dni rbal "Read Bytes Absolute and Lock" (MACH10 USES-RS USES-RT USES-RD) + "rbal $rd,$rs,$rt" + (+ OP_COP3 rs rt rd (f-shamt 0) FUNC10_RBAL) + (unimp rbal) + ()) + +(dni rbar "Read Bytes Absolute and Release" (MACH10 USES-RS USES-RT USES-RD) + "rbar $rd,$rs,$rt" + (+ OP_COP3 rs rt rd (f-shamt 0) FUNC10_RBAR) + (unimp rbar) + ()) + +(dni wba "Write Bytes Absolute" (MACH10 USES-RS USES-RT USES-RD) + "wba $rd,$rs,$rt" + (+ OP_COP3 rs rt rd (f-shamt 0) FUNC10_WBA) + (unimp wba) + ()) + +(dni wbau "Write Bytes Absolute and Unlock" (MACH10 USES-RS USES-RT USES-RD) + "wbau $rd,$rs,$rt" + (+ OP_COP3 rs rt rd (f-shamt 0) FUNC10_WBAU) + (unimp wbau) + ()) + +(dni wbac "Write Bytes Absolute Cacheable" (MACH10 USES-RS USES-RT USES-RD) + "wbac $rd,$rs,$rt" + (+ OP_COP3 rs rt rd (f-shamt 0) FUNC10_WBAC) + (unimp wbac) + ()) + +(dni rbi "Read Bytes Immediate" (MACH10 USES-RD USES-RS USES-RT) + "rbi $rd,$rs,$rt,$bytecount" + (+ OP_COP3 rs rt rd FUNC10_RBI bytecount) + (unimp rbi) + ()) + +(dni rbil "Read Bytes Immediate and Lock" (MACH10 USES-RD USES-RS USES-RT) + "rbil $rd,$rs,$rt,$bytecount" + (+ OP_COP3 rs rt rd FUNC10_RBIL bytecount) + (unimp rbil) + ()) + +(dni rbir "Read Bytes Immediate and Release" (MACH10 USES-RD USES-RS USES-RT) + "rbir $rd,$rs,$rt,$bytecount" + (+ OP_COP3 rs rt rd FUNC10_RBIR bytecount) + (unimp rbir) + ()) + +(dni wbi "Write Bytes Immediate" (MACH10 USES-RD USES-RS USES-RT) + "wbi $rd,$rs,$rt,$bytecount" + (+ OP_COP3 rs rt rd FUNC10_WBI bytecount) + (unimp wbi) + ()) + +(dni wbic "Write Bytes Immediate Cacheable" (MACH10 USES-RD USES-RS USES-RT) + "wbic $rd,$rs,$rt,$bytecount" + (+ OP_COP3 rs rt rd FUNC10_WBIC bytecount) + (unimp wbic) + ()) + +(dni wbiu "Write Bytes Immediate" (MACH10 USES-RD USES-RS USES-RT) + "wbiu $rd,$rs,$rt,$bytecount" + (+ OP_COP3 rs rt rd FUNC10_WBIU bytecount) + (unimp wbiu) + ()) + +(dni pkrli "Packet Release Immediate" (MACH10 USES-RD USES-RS USES-RT) + "pkrli $rd,$rs,$rt,$bytecount" + (+ OP_COP2 rs rt rd FUNC10_PKRLI bytecount) + (unimp pkrli) + ()) + +(dni pkrlih "Packet Release Immediate and Hold" (MACH10 USES-RD USES-RS USES-RT) + "pkrlih $rd,$rs,$rt,$bytecount" + (+ OP_COP2 rs rt rd FUNC10_PKRLIH bytecount) + (unimp pkrlih) + ()) + +(dni pkrliu "Packet Release Immediate Unconditional" (MACH10 USES-RD USES-RS USES-RT) + "pkrliu $rd,$rs,$rt,$bytecount" + (+ OP_COP2 rs rt rd FUNC10_PKRLIU bytecount) + (unimp pkrliu) + ()) + +(dni pkrlic "Packet Release Immediate Continue" (MACH10 USES-RD USES-RS USES-RT) + "pkrlic $rd,$rs,$rt,$bytecount" + (+ OP_COP2 rs rt rd FUNC10_PKRLIC bytecount) + (unimp pkrlic) + ()) + +(dni pkrla "Packet Release Absolute" (MACH10 USES-RS USES-RT USES-RD) + "pkrla $rd,$rs,$rt" + (+ OP_COP3 rs rt rd (f-shamt 0) FUNC10_PKRLA) + (unimp pkrla) + ()) + +(dni pkrlau "Packet Release Absolute Unconditional" (MACH10 USES-RS USES-RT USES-RD) + "pkrlau $rd,$rs,$rt" + (+ OP_COP3 rs rt rd (f-shamt 0) FUNC10_PKRLAU) + (unimp pkrlau) + ()) + +(dni pkrlah "Packet Release Absolute and Hold" (MACH10 USES-RS USES-RT USES-RD) + "pkrlah $rd,$rs,$rt" + (+ OP_COP3 rs rt rd (f-shamt 0) FUNC10_PKRLAH) + (unimp pkrlah) + ()) + +(dni pkrlac "Packet Release Absolute Continue" (MACH10 USES-RS USES-RT USES-RD) + "pkrlac $rd,$rs,$rt" + (+ OP_COP3 rs rt rd (f-shamt 0) FUNC10_PKRLAC) + (unimp pkrlac) + ()) + +; Main Memory Access Instructions + +(dni lock "lock memory" (MACH10 USES-RD USES-RT) + "lock $rd,$rt" + (+ OP_COP3 (f-rs 0) rt rd (f-shamt 0) FUNC10_LOCK) + (unimp lock) + ()) + +(dni unlk "unlock memory" (MACH10 USES-RT USES-RD) + "unlk $rd,$rt" + (+ OP_COP3 (f-rs 0) rt rd (f-shamt 0) FUNC10_UNLK) + (unimp unlk) + ()) + +(dni swrd "Single Word Read" (MACH10 USES-RT USES-RD) + "swrd $rd,$rt" + (+ OP_COP3 (f-rs 0) rt rd (f-shamt 0) FUNC10_SWRD) + (unimp swrd) + ()) + +(dni swrdl "Single Word Read and Lock" (MACH10 USES-RT USES-RD) + "swrdl $rd,$rt" + (+ OP_COP3 (f-rs 0) rt rd (f-shamt 0) FUNC10_SWRDL) + (unimp swrdl) + ()) + +(dni swwr "Single Word Write" (MACH10 USES-RS USES-RT USES-RD) + "swwr $rd,$rs,$rt" + (+ OP_COP3 rs rt rd (f-shamt 0) FUNC10_SWWR) + (unimp swwr) + ()) + +(dni swwru "Single Word Write and Unlock" (MACH10 USES-RS USES-RT USES-RD) + "swwru $rd,$rs,$rt" + (+ OP_COP3 rs rt rd (f-shamt 0) FUNC10_SWWRU) + (unimp swwru) + ()) + +(dni dwrd "Double Word Read" (MACH10 EVEN-REG-NUM USES-RT USES-RD) + "dwrd $rd,$rt" + (+ OP_COP3 (f-rs 0) rt rd (f-shamt 0) FUNC10_DWRD) + (unimp dwrd) + ()) + +(dni dwrdl "Double Word Read and Lock" (MACH10 EVEN-REG-NUM USES-RT USES-RD) + "dwrdl $rd,$rt" + (+ OP_COP3 (f-rs 0) rt rd (f-shamt 0) FUNC10_DWRDL) + (unimp dwrdl) + ()) + +; CAM access instructions (IQ10) + +(dni cam36 "CAM Access in 36-bit Mode" (MACH10 USES-RT USES-RD) + "cam36 $rd,$rt,${cam-z},${cam-y}" + (+ OP_COP3 (f-rs 0) rt rd FUNC10_CAM36 cam-z cam-y) + (unimp cam36) + ()) + +(dni cam72 "CAM Access in 72-bit Mode" (MACH10 USES-RT USES-RD) + "cam72 $rd,$rt,${cam-y},${cam-z}" + (+ OP_COP3 (f-rs 0) rt rd FUNC10_CAM72 cam-z cam-y) + (unimp cam72) + ()) + +(dni cam144 "CAM Access in 144-bit Mode" (MACH10 USES-RT USES-RD) + "cam144 $rd,$rt,${cam-y},${cam-z}" + (+ OP_COP3 (f-rs 0) rt rd FUNC10_CAM144 cam-z cam-y) + (unimp cam144) + ()) + +(dni cam288 "CAM Access in 288-bit Mode" (MACH10 USES-RT USES-RD) + "cam288 $rd,$rt,${cam-y},${cam-z}" + (+ OP_COP3 (f-rs 0) rt rd FUNC10_CAM288 cam-z cam-y) + (unimp cam288) + ()) + +; Counter manager instructions (IQ10) + +(dni cm32and "Counter Manager And" (MACH10 USES-RS USES-RT USES-RD) + "cm32and $rd,$rs,$rt" + (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM32AND) + (unimp cm32and) + ()) + +(dni cm32andn "Counter Manager And With Inverse" (MACH10 USES-RS USES-RT USES-RD) + "cm32andn $rd,$rs,$rt" + (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM32ANDN) + (unimp cm32andn) + ()) + +(dni cm32or "Counter Manager Or" (MACH10 USES-RS USES-RT USES-RD) + "cm32or $rd,$rs,$rt" + (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM32OR) + (unimp cm32or) + ()) + +(dni cm32ra "Counter Manager 32-bit Rolling Add" (MACH10 USES-RS USES-RT USES-RD) + "cm32ra $rd,$rs,$rt" + (+ OP_COP3 rs rt rd (f-shamt 2) FUNC10_CM32RA) + (unimp cm32ra) + ()) + +(dni cm32rd "Counter Manager 32-bit Rolling Decrement" (MACH10 USES-RT USES-RD) + "cm32rd $rd,$rt" + (+ OP_COP3 (f-rs 0) rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM32RD) + (unimp cm32rd) + ()) + +(dni cm32ri "Counter Manager 32-bit Rolling Increment" (MACH10 USES-RT USES-RD) + "cm32ri $rd,$rt" + (+ OP_COP3 (f-rs 0) rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM32RI) + (unimp cm32ri) + ()) + +(dni cm32rs "Counter Manager 32-bit Rolling Subtract" (MACH10 USES-RS USES-RT USES-RD) + "cm32rs $rd,$rs,$rt" + (+ OP_COP3 rs rt rd (f-shamt 2) FUNC10_CM32RS) + (unimp cm32rs) + ()) + +(dni cm32sa "Counter Manager 32-bit Saturating Add" (MACH10 USES-RS USES-RT USES-RD) + "cm32sa $rd,$rs,$rt" + (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM32SA) + (unimp cm32sa) + ()) + +(dni cm32sd "Counter Manager 32-bit Saturating Decrement" (MACH10 USES-RT USES-RD) + "cm32sd $rd,$rt" + (+ OP_COP3 (f-rs 0) rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM32SD) + (unimp cm32sd) + ()) + +(dni cm32si "Counter Manager 32-bit Saturating Increment" (MACH10 USES-RT USES-RD) + "cm32si $rd,$rt" + (+ OP_COP3 (f-rs 0) rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM32SI) + (unimp cm32si) + ()) + +(dni cm32ss "Counter Manager 32-bit Saturating Subtract" (MACH10 USES-RS USES-RT USES-RD) + "cm32ss $rd,$rs,$rt" + (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM32SS) + (unimp cm32ss) + ()) + +(dni cm32xor "Counter Manager Xor" (MACH10 USES-RS USES-RT USES-RD) + "cm32xor $rd,$rs,$rt" + (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM32XOR) + (unimp cm32xor) + ()) + +(dni cm64clr "Counter Manager Clear" (MACH10 EVEN-REG-NUM USES-RT USES-RD) + "cm64clr $rd,$rt" + (+ OP_COP3 (f-rs 0) rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM64CLR) + (unimp cm64clr) + ()) + +(dni cm64ra "Counter Manager 64-bit Rolling Add" (MACH10 EVEN-REG-NUM USES-RS USES-RT USES-RD) + "cm64ra $rd,$rs,$rt" + (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM64RA) + (unimp cm64ra) + ()) + +(dni cm64rd "Counter Manager 64-bit Rolling Decrement" (MACH10 EVEN-REG-NUM USES-RT USES-RD) + "cm64rd $rd,$rt" + (+ OP_COP3 (f-rs 0) rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM64RD) + (unimp cm64rd) + ()) + +(dni cm64ri "Counter Manager 32-bit Rolling Increment" (MACH10 EVEN-REG-NUM USES-RT USES-RD) + "cm64ri $rd,$rt" + (+ OP_COP3 (f-rs 0) rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM64RI) + (unimp cm64ri) + ()) + +(dni cm64ria2 "Counter Manager 32/32 Rolling Increment/Add" (MACH10 EVEN-REG-NUM USES-RS USES-RT USES-RD) + "cm64ria2 $rd,$rs,$rt" + (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM64RIA2) + (unimp cm64ria2) + ()) + +(dni cm64rs "Counter Manager 64-bit Rolling Subtract" (MACH10 EVEN-REG-NUM USES-RS USES-RT USES-RD) + "cm64rs $rd,$rs,$rt" + (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM64RS) + (unimp cm64rs) + ()) + +(dni cm64sa "Counter Manager 64-bit Saturating Add" (MACH10 EVEN-REG-NUM USES-RS USES-RT USES-RD) + "cm64sa $rd,$rs,$rt" + (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM64SA) + (unimp cm64sa) + ()) + +(dni cm64sd "Counter Manager 64-bit Saturating Decrement" (MACH10 EVEN-REG-NUM USES-RT USES-RD) + "cm64sd $rd,$rt" + (+ OP_COP3 (f-rs 0) rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM64SD) + (unimp cm64sd) + ()) + +(dni cm64si "Counter Manager 64-bit Saturating Increment" (MACH10 EVEN-REG-NUM USES-RT USES-RD) + "cm64si $rd,$rt" + (+ OP_COP3 (f-rs 0) rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM64SI) + (unimp cm64si) + ()) + +(dni cm64sia2 "Counter Manager 32/32 Saturating Increment/Add" (MACH10 EVEN-REG-NUM USES-RS USES-RT USES-RD) + "cm64sia2 $rd,$rs,$rt" + (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM64SIA2) + (unimp cm64sia2) + ()) + +(dni cm64ss "Counter Manager 64-bit Saturating Subtract" (MACH10 EVEN-REG-NUM USES-RS USES-RT USES-RD) + "cm64ss $rd,$rs,$rt" + (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM64SS) + (unimp cm64ss) + ()) + +(dni cm128ria2 "Counter Manager 128-bit 64/64 Rolling Increment/Add" (MACH10 EVEN-REG-NUM USES-RS USES-RT USES-RD) + "cm128ria2 $rd,$rs,$rt" + (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM128RIA2) + (unimp cm128ria2) + ()) + +(dni cm128ria3 "Counter Manager 128-bit 32/32/64 Rolling Increment/Add" (MACH10 EVEN-REG-NUM USES-RS USES-RT USES-RD) + "cm128ria3 $rd,$rs,$rt,${cm-3z}" + (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM128RIA3 cm-3z) + (unimp cm128ria3) + ()) + +(dni cm128ria4 "Counter Manager 128-bit 32/32/32/32 Rolling Inc/Add" (MACH10 USES-RS USES-RT USES-RD) + "cm128ria4 $rd,$rs,$rt,${cm-4z}" + (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM128RIA4 cm-4z) + (unimp cm128ria4) + ()) + +(dni cm128sia2 "Counter Manager 128-bit 64/64 Saturating Inc/Add" (MACH10 EVEN-REG-NUM USES-RS USES-RT USES-RD) + "cm128sia2 $rd,$rs,$rt" + (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM128SIA2) + (unimp cm128sia2) + ()) + +(dni cm128sia3 "Counter Manager 128-bit 32/32/64 Saturating Inc/Add" (MACH10 EVEN-REG-NUM USES-RS USES-RT USES-RD) + "cm128sia3 $rd,$rs,$rt,${cm-3z}" + (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM128SIA3 cm-3z) + (unimp cm128sia3) + ()) + +(dni cm128sia4 "Counter Manager 128-bit 32/32/32/32 Saturating Inc/Add" (MACH10 USES-RS USES-RT USES-RD) + "cm128sia4 $rd,$rs,$rt,${cm-4z}" + (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM128SIA4 cm-4z) + (unimp cm128sia4) + ()) + +(dni cm128vsa "Counter Manager Continuous State Dual Leaky Token Bucket Policing" (MACH10 USES-RS USES-RT USES-RD) + "cm128vsa $rd,$rs,$rt" + (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM128VSA) + (unimp cm128vsa) + ()) + +; Coprocessor Data Movement Instructions + +; Note that we don't set the USES-RD or USES-RT attributes for many of the following +; instructions, as it's the COP register that's being specified. + +; ??? Is YIELD-INSN the right attribute for IQ10? The IQ2000 used the attribute to warn about +; yielding instructions in a delay slot, but that's not relevant in IQ10. What *is* relevant +; (and unique to IQ10) is instructions that yield if the destination register is accessed +; before the value is there, causing a yield. + +(dni cfc "copy from coprocessor control register" (MACH10 LOAD-DELAY USES-RD YIELD-INSN) + "cfc $rd,$rt" + (+ OP_COP3 (f-rs 0) rt rd (f-shamt 0) FUNC10_CFC) + (unimp cfc) + ()) + +(dni ctc "copy to coprocessor control register" (MACH10 USES-RS) + "ctc $rs,$rt" + (+ OP_COP3 rs rt (f-rd 0) (f-shamt 0) FUNC10_CTC) + (unimp ctc) + ()) + +; Macros + +(dnmi m-avail "Mark Header Buffer Available" (MACH10 NO-DIS) + "avail" + (emit avail (f-rd 0)) +) + +(dnmi m-cam36 "CAM Access in 36-bit Mode" (MACH10 USES-RT USES-RD NO-DIS) + "cam36 $rd,$rt,${cam-z}" + (emit cam36 rd rt cam-z (f-cam-y 0)) +) + +(dnmi m-cam72 "CAM Access in 72-bit Mode" (MACH10 USES-RT USES-RD NO-DIS) + "cam72 $rd,$rt,${cam-z}" + (emit cam72 rd rt cam-z (f-cam-y 0)) +) + +(dnmi m-cam144 "CAM Access in 144-bit Mode" (MACH10 USES-RT USES-RD NO-DIS) + "cam144 $rd,$rt,${cam-z}" + (emit cam144 rd rt cam-z (f-cam-y 0)) +) + +(dnmi m-cam288 "CAM Access in 288-bit Mode" (MACH10 USES-RT USES-RD NO-DIS) + "cam288 $rd,$rt,${cam-z}" + (emit cam288 rd rt cam-z (f-cam-y 0)) +) + +(dnmi m-cm32read "Counter Manager 32-bit Rolling Add R0" (MACH10 USES-RT USES-RD NO-DIS) + "cm32read $rd,$rt" + (emit cm32ra rd (f-rs 0) rt) +) + +(dnmi m-cm64read "Counter Manager 64-bit Rolling Add R0" (MACH10 USES-RT USES-RD NO-DIS) + "cm64read $rd,$rt" + (emit cm64ra rd (f-rs 0) rt) +) + +(dnmi m-cm32mlog "Counter Manager 32-bit or R0" (MACH10 USES-RS USES-RT NO-DIS) + "cm32mlog $rs,$rt" + (emit cm32or (f-rd 0) rs rt) +) + +(dnmi m-cm32and "Counter Manager And" (MACH10 USES-RS USES-RT USES-RD NO-DIS) + "cm32and $rs,$rt" + (emit cm32and (f-rd 0) rs rt) +) + +(dnmi m-cm32andn "Counter Manager And With Inverse" (MACH10 USES-RS USES-RT USES-RD NO-DIS) + "cm32andn $rs,$rt" + (emit cm32andn (f-rd 0) rs rt) +) + +(dnmi m-cm32or "Counter Manager Or" (MACH10 USES-RS USES-RT USES-RD NO-DIS) + "cm32or $rs,$rt" + (emit cm32or (f-rd 0) rs rt) +) + +(dnmi m-cm32ra "Counter Manager 32-bit Rolling Add" (MACH10 USES-RS USES-RT USES-RD NO-DIS) + "cm32ra $rs,$rt" + (emit cm32ra (f-rd 0) rs rt) +) + +(dnmi m-cm32rd "Counter Manager 32-bit Rolling Decrement" (MACH10 USES-RT USES-RD NO-DIS) + "cm32rd $rt" + (emit cm32rd (f-rd 0) rt) +) + +(dnmi m-cm32ri "Counter Manager 32-bit Rolling Increment" (MACH10 USES-RT USES-RD NO-DIS) + "cm32ri $rt" + (emit cm32ri (f-rd 0) rt) +) + +(dnmi m-cm32rs "Counter Manager 32-bit Rolling Subtract" (MACH10 USES-RS USES-RT USES-RD NO-DIS) + "cm32rs $rs,$rt" + (emit cm32rs (f-rd 0) rs rt) +) + +(dnmi m-cm32sa "Counter Manager 32-bit Saturating Add" (MACH10 USES-RS USES-RT USES-RD NO-DIS) + "cm32sa $rs,$rt" + (emit cm32sa (f-rd 0) rs rt) +) + +(dnmi m-cm32sd "Counter Manager 32-bit Saturating Decrement" (MACH10 USES-RT USES-RD NO-DIS) + "cm32sd $rt" + (emit cm32sd (f-rd 0) rt) +) + +(dnmi m-cm32si "Counter Manager 32-bit Saturating Increment" (MACH10 USES-RT USES-RD NO-DIS) + "cm32si $rt" + (emit cm32si (f-rd 0) rt) +) + +(dnmi m-cm32ss "Counter Manager 32-bit Saturating Subtract" (MACH10 USES-RS USES-RT USES-RD NO-DIS) + "cm32ss $rs,$rt" + (emit cm32ss (f-rd 0) rs rt) +) + +(dnmi m-cm32xor "Counter Manager Xor" (MACH10 USES-RS USES-RT USES-RD NO-DIS) + "cm32xor $rs,$rt" + (emit cm32xor (f-rd 0) rs rt) +) + +(dnmi m-cm64clr "Counter Manager Clear" (MACH10 USES-RT USES-RD NO-DIS) + "cm64clr $rt" + (emit cm64clr (f-rd 0) rt) +) + +(dnmi m-cm64ra "Counter Manager 64-bit Rolling Add" (MACH10 USES-RS USES-RT USES-RD NO-DIS) + "cm64ra $rs,$rt" + (emit cm64ra (f-rd 0) rs rt) +) + +(dnmi m-cm64rd "Counter Manager 64-bit Rolling Decrement" (MACH10 USES-RT USES-RD NO-DIS) + "cm64rd $rt" + (emit cm64rd (f-rd 0) rt) +) + +(dnmi m-cm64ri "Counter Manager 32-bit Rolling Increment" (MACH10 USES-RT USES-RD NO-DIS) + "cm64ri $rt" + (emit cm64ri (f-rd 0) rt) +) + +(dnmi m-cm64ria2 "Counter Manager 32/32 Rolling Increment/Add" (MACH10 USES-RS USES-RT USES-RD NO-DIS) + "cm64ria2 $rs,$rt" + (emit cm64ria2 (f-rd 0) rs rt) +) + +(dnmi m-cm64rs "Counter Manager 64-bit Rolling Subtract" (MACH10 USES-RS USES-RT USES-RD NO-DIS) + "cm64rs $rs,$rt" + (emit cm64rs (f-rd 0) rs rt) +) + +(dnmi m-cm64sa "Counter Manager 64-bit Saturating Add" (MACH10 USES-RS USES-RT USES-RD NO-DIS) + "cm64sa $rs,$rt" + (emit cm64sa (f-rd 0) rs rt) +) + +(dnmi m-cm64sd "Counter Manager 64-bit Saturating Decrement" (MACH10 USES-RT USES-RD NO-DIS) + "cm64sd $rt" + (emit cm64sd (f-rd 0) rt) +) + +(dnmi m-cm64si "Counter Manager 64-bit Saturating Increment" (MACH10 USES-RT USES-RD NO-DIS) + "cm64si $rt" + (emit cm64si (f-rd 0) rt) +) + +(dnmi m-cm64sia2 "Counter Manager 32/32 Saturating Increment/Add" (MACH10 USES-RS USES-RT USES-RD NO-DIS) + "cm64sia2 $rs,$rt" + (emit cm64sia2 (f-rd 0) rs rt) +) + +(dnmi m-cm64ss "Counter Manager 64-bit Saturating Subtract" (MACH10 USES-RS USES-RT USES-RD NO-DIS) + "cm64ss $rs,$rt" + (emit cm64ss (f-rd 0) rs rt) +) + +(dnmi m-cm128ria2 "Counter Manager 128-bit 64/64 Rolling Increment/Add" (MACH10 USES-RS USES-RT USES-RD NO-DIS) + "cm128ria2 $rs,$rt" + (emit cm128ria2 (f-rd 0) rs rt) +) + +(dnmi m-cm128ria3 "Counter Manager 128-bit 32/32/64 Rolling Increment/Add" (MACH10 USES-RS USES-RT USES-RD NO-DIS) + "cm128ria3 $rs,$rt,${cm-3z}" + (emit cm128ria3 (f-rd 0) rs rt cm-3z) +) + +(dnmi m-cm128ria4 "Counter Manager 128-bit 32/32/32/32 Rolling Inc/Add" (MACH10 USES-RS USES-RT USES-RD NO-DIS) + "cm128ria4 $rs,$rt,${cm-4z}" + (emit cm128ria4 (f-rd 0) rs rt cm-4z) +) + +(dnmi m-cm128sia2 "Counter Manager 128-bit 64/64 Saturating Inc/Add" (MACH10 USES-RS USES-RT USES-RD NO-DIS) + "cm128sia2 $rs,$rt" + (emit cm128sia2 (f-rd 0) rs rt) +) + +(dnmi m-cm128sia3 "Counter Manager 128-bit 32/32/64 Saturating Inc/Add" (MACH10 USES-RS USES-RT USES-RD NO-DIS) + "cm128sia3 $rs,$rt,${cm-3z}" + (emit cm128sia3 (f-rd 0) rs rt cm-3z) +) + +(dnmi m-cm128sia4 "Counter Manager 128-bit 32/32/32/32 Saturating Inc/Add" (MACH10 USES-RS USES-RT USES-RD NO-DIS) + "cm128sia4 $rs,$rt,${cm-4z}" + (emit cm128sia4 (f-rd 0) rs rt cm-4z) +) + +(dnmi m-cmphdr "Get a Complete Header" (MACH10 NO-DIS) + "cmphdr" + (emit cmphdr (f-rd 0)) +) + +(dnmi m-dbd "Deallocate a Data Buffer Pointer" (MACH10 USES-RD USES-RT NO-DIS) + "dbd $rd,$rt" + (emit dbd rd (f-rs 0) rt) +) + +(dnmi m2-dbd "Deallocate a Data Buffer Pointer" (MACH10 USES-RT NO-DIS) + "dbd $rt" + (emit dbd (f-rd 0) (f-rs 0) rt) +) + +(dnmi m-dpwt "DSTN_PORT Write" (MACH10 USES-RS NO-DIS) + "dpwt $rs" + (emit dpwt (f-rd 0) rs) +) + +(dnmi m-free "" (MACH10 USES-RS USES-RD NO-DIS) + "free $rs" + (emit free (f-rd 0) rs) +) + +;(dnmi m-jal "jump and link, implied r31" (MACH10 USES-RT NO-DIS) +; "jal $jmptarg" +; (emit jal (f-rt 31) jmptarg) +;) + +(dnmi m-lock "lock memory" (MACH10 USES-RT NO-DIS) + "lock $rt" + (emit lock (f-rd 0) rt) +) + +(dnmi m-pkrla "Packet Release Absolute" (MACH10 USES-RS USES-RT USES-RD NO-DIS) + "pkrla $rs,$rt" + (emit pkrla (f-rd 0) rs rt) +) + +(dnmi m-pkrlac "Packet Release Absolute Continue" (MACH10 USES-RS USES-RT USES-RD NO-DIS) + "pkrlac $rs,$rt" + (emit pkrlac (f-rd 0) rs rt) +) + +(dnmi m-pkrlah "Packet Release Absolute and Hold" (MACH10 USES-RS USES-RT USES-RD NO-DIS) + "pkrlah $rs,$rt" + (emit pkrlah (f-rd 0) rs rt) +) + +(dnmi m-pkrlau "Packet Release Absolute Unconditional" (MACH10 USES-RS USES-RT USES-RD NO-DIS) + "pkrlau $rs,$rt" + (emit pkrlau (f-rd 0) rs rt) +) + +(dnmi m-pkrli "Packet Release Immediate" (MACH10 USES-RD USES-RS USES-RT NO-DIS) + "pkrli $rs,$rt,$bytecount" + (emit pkrli (f-rd 0) rs rt bytecount) +) + +(dnmi m-pkrlic "Packet Release Immediate Continue" (MACH10 USES-RS USES-RT NO-DIS) + "pkrlic $rs,$rt,$bytecount" + (emit pkrlic (f-rd 0) rs rt bytecount) +) + +(dnmi m-pkrlih "Packet Release Immediate and Hold" (MACH10 USES-RD USES-RS USES-RT NO-DIS) + "pkrlih $rs,$rt,$bytecount" + (emit pkrlih (f-rd 0) rs rt bytecount) +) + +(dnmi m-pkrliu "Packet Release Immediate Unconditional" (MACH10 USES-RD USES-RS USES-RT NO-DIS) + "pkrliu $rs,$rt,$bytecount" + (emit pkrliu (f-rd 0) rs rt bytecount) +) + +(dnmi m-rba "Read Bytes Absolute" (MACH10 USES-RS USES-RT USES-RD NO-DIS) + "rba $rs,$rt" + (emit rba (f-rd 0) rs rt) +) + +(dnmi m-rbal "Read Bytes Absolute and Lock" (MACH10 USES-RS USES-RT USES-RD NO-DIS) + "rbal $rs,$rt" + (emit rbal (f-rd 0) rs rt) +) + +(dnmi m-rbar "Read Bytes Absolute and Release" (MACH10 USES-RS USES-RT USES-RD NO-DIS) + "rbar $rs,$rt" + (emit rbar (f-rd 0) rs rt) +) + +(dnmi m-rbi "Read Bytes Immediate" (MACH10 USES-RS USES-RT NO-DIS) + "rbi $rs,$rt,$bytecount" + (emit rbi (f-rd 0) rs rt bytecount) +) + +(dnmi m-rbil "Read Bytes Immediate and Lock" (MACH10 USES-RS USES-RT NO-DIS) + "rbil $rs,$rt,$bytecount" + (emit rbil (f-rd 0) rs rt bytecount) +) + +(dnmi m-rbir "Read Bytes Immediate and Release" (MACH10 USES-RS USES-RT NO-DIS) + "rbir $rs,$rt,$bytecount" + (emit rbir (f-rd 0) rs rt bytecount) +) + +(dnmi m-swwr "Single Word Write" (MACH10 USES-RS USES-RT USES-RD NO-DIS) + "swwr $rs,$rt" + (emit swwr (f-rd 0) rs rt) +) + +(dnmi m-swwru "Single Word Write and Unlock" (MACH10 USES-RS USES-RT USES-RD NO-DIS) + "swwru $rs,$rt" + (emit swwru (f-rd 0) rs rt) +) + +(dnmi m-tstod "Test Header Buffer Order Dependency" (MACH10 USES-RS USES-RD NO-DIS) + "tstod $rs" + (emit tstod (f-rd 0) rs) +) + +(dnmi m-unlk "" (MACH10 USES-RT USES-RD NO-DIS) + "unlk $rt" + (emit unlk (f-rd 0) rt) +) + +(dnmi m-wba "Write Bytes Absolute" (MACH10 USES-RS USES-RT USES-RD NO-DIS) + "wba $rs,$rt" + (emit wba (f-rd 0) rs rt) +) + +(dnmi m-wbac "Write Bytes Absolute Cacheable" (MACH10 USES-RS USES-RT USES-RD NO-DIS) + "wbac $rs,$rt" + (emit wbac (f-rd 0) rs rt) +) + +(dnmi m-wbau "Write Bytes Absolute and Unlock" (MACH10 USES-RS USES-RT USES-RD NO-DIS) + "wbau $rs,$rt" + (emit wbau (f-rd 0) rs rt) +) + +(dnmi m-wbi "Write Bytes Immediate" (MACH10 USES-RD USES-RS USES-RT NO-DIS) + "wbi $rs,$rt,$bytecount" + (emit wbi (f-rd 0) rs rt bytecount) +) + +(dnmi m-wbic "Write Bytes Immediate Cacheable" (MACH10 USES-RD USES-RS USES-RT NO-DIS) + "wbic $rs,$rt,$bytecount" + (emit wbic (f-rd 0) rs rt bytecount) +) + +(dnmi m-wbiu "Write Bytes Immediate" (MACH10 USES-RD USES-RS USES-RT NO-DIS) + "wbiu $rs,$rt,$bytecount" + (emit wbiu (f-rd 0) rs rt bytecount) +) + diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/cpu/iq2000.cpu binutils-2.14.90.0.5/cpu/iq2000.cpu --- binutils-2.14.90.0.4.1/cpu/iq2000.cpu 1969-12-31 16:00:00.000000000 -0800 +++ binutils-2.14.90.0.5/cpu/iq2000.cpu 2003-07-23 08:08:10.000000000 -0700 @@ -0,0 +1,1199 @@ +; IQ2000/IQ10 Common CPU description. -*- Scheme -*- +; +; Copyright 2000, 2001, 2002 Free Software Foundation, Inc. +; +; Contributed by Red Hat Inc; developed under contract from Vitesse. +; +; This file is part of the GNU Binutils. +; +; This program is free software; you can redistribute it and/or modify +; it under the terms of the GNU General Public License as published by +; the Free Software Foundation; either version 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 "simplify.inc") + +(define-arch + (name iq2000) + (comment "IQ2000 architecture") + (insn-lsb0? #t) + (machs iq2000 iq10) + (isas iq2000) +) + +(define-isa + (name iq2000) + (comment "Basic IQ2000 instruction set") + (default-insn-word-bitsize 32) + (default-insn-bitsize 32) + (base-insn-bitsize 32) + (decode-assist (31 30 29 28 27 26)) +) + +(define-cpu + (name iq2000bf) + (comment "IQ2000 family") + (endian big) + (word-bitsize 32) + (file-transform "") +) + +(define-cpu + (name iq10bf) + (comment "IQ10 coprocessor family") + (endian big) + (word-bitsize 32) + (file-transform "") + +) + +(define-mach + (name iq2000) + (comment "IQ2000 packet processing engine") + (cpu iq2000bf) + (isas iq2000) +) + +(define-mach + (name iq10) + (comment "IQ10 coprocessor") + (cpu iq10bf) + (isas iq2000) +) + +(define-model + (name iq2000) + (comment "IQ2000 microprocessor") + (mach iq2000) + (unit u-exec "Execution Unit" () + 1 1 ; issue done + () () () ()) +) + +(define-model + (name iq10) + (comment "IQ10 coprocessor") + (mach iq10) + (unit u-exec "Execution Unit" () + 1 1 ; issue done + () () () ()) +) + +; Macros to simplify MACH attribute specification. + +(define-pmacro MACH2000 (MACH iq2000)) +(define-pmacro MACH10 (MACH iq10)) + + +; Hardware elements. + +(define-hardware + (name h-pc) + (comment "program counter") + (attrs PC PROFILE (ISA iq2000)) + (type pc) + (get () (c-call USI "get_h_pc")) + (set (newval) (c-call VOID "set_h_pc" newval)) +) +; FIXME: it would be nice if the hardwired zero in R0 could be +; specified as a virtual hardware element, with one less register in +; the register file proper. + +(define-keyword + (name gr-names) + (print-name h-gr) + (values (r0 0) (%0 0) (r1 1) (%1 1) (r2 2) (%2 2) (r3 3) (%3 3) + (r4 4) (%4 4) (r5 5) (%5 5) (r6 6) (%6 6) (r7 7) (%7 7) + (r8 8) (%8 8) (r9 9) (%9 9) (r10 10) (%10 10) (r11 11) (%11 11) + (r12 12) (%12 12) (r13 13) (%13 13) (r14 14) (%14 14) (r15 15) (%15 15) + (r16 16) (%16 16) (r17 17) (%17 17) (r18 18) (%18 18) (r19 19) (%19 19) + (r20 20) (%20 20) (r21 21) (%21 21) (r22 22) (%22 22) (r23 23) (%23 23) + (r24 24) (%24 24) (r25 25) (%25 25) (r26 26) (%26 26) (r27 27) (%27 27) + (r28 28) (%28 28) (r29 29) (%29 29) (r30 30) (%30 30) (r31 31) (%31 31)) +) + +(define-hardware + (name h-gr) + (comment "General purpose registers") +; (attrs (ISA iq2000) CACHE-ADDR) + (type register SI (32)) + (indices extern-keyword gr-names) + (get (idx) + (cond SI + ((eq idx 0) (const 0)) + (else (raw-reg h-gr idx)))) + (set (idx newval) + (cond VOID + ((eq idx 0) (nop)) + (else (set (raw-reg h-gr idx) newval)))) +) + + +; Instruction fields. + +(dnf f-opcode "opcode field" () 31 6) +(dnf f-rs "register field Rs" () 25 5) +(dnf f-rt "register field Rt" () 20 5) +(dnf f-rd "register field Rd" () 15 5) +(dnf f-shamt "shift amount field" () 10 5) +(dnf f-cp-op "coprocessor op field" () 10 3) +(dnf f-cp-op-10 "coprocessor op field for CAM" () 10 5) +(dnf f-cp-grp "coprocessor group field" () 7 2) +(dnf f-func "function field" () 5 6) +(dnf f-imm "immediate field" () 15 16) + +(define-multi-ifield + (name f-rd-rs) + (comment "register Rd implied from Rs") + (attrs) + (mode UINT) + (subfields f-rd f-rs) + (insert (sequence () + (set (ifield f-rd) (ifield f-rd-rs)) + (set (ifield f-rs) (ifield f-rd-rs)) + )) + (extract (sequence () + (set (ifield f-rd-rs) (ifield f-rs)) + )) +) + +(define-multi-ifield + (name f-rd-rt) + (comment "register Rd implied from Rt") + (attrs) + (mode UINT) + (subfields f-rd f-rt) + (insert (sequence () + (set (ifield f-rd) (ifield f-rd-rt)) + (set (ifield f-rt) (ifield f-rd-rt)) + )) + (extract (sequence () + (set (ifield f-rd-rt) (ifield f-rt)) + )) +) + +(define-multi-ifield + (name f-rt-rs) + (comment "register Rt implied from Rs") + (attrs) + (mode UINT) + (subfields f-rt f-rs) + (insert (sequence () + (set (ifield f-rt) (ifield f-rt-rs)) + (set (ifield f-rs) (ifield f-rt-rs)) + )) + (extract (sequence () + (set (ifield f-rd-rs) (ifield f-rs)) + )) +) + +(df f-jtarg "jump target field" (ABS-ADDR) 15 16 UINT + ((value pc) (srl USI (and USI value #x03FFFF) 2)) + ((value pc) (or USI (and USI pc #xF0000000) (sll USI value 2)))) + +(df f-jtargq10 "iq10 jump target field" (ABS-ADDR) 20 21 UINT + ((value pc) (srl SI (and SI value #x7FFFFF) 2)) + ((value pc) (or SI (and SI pc #xF0000000) (sll SI value 2)))) + +(df f-offset "pc offset field" (PCREL-ADDR) 15 16 INT + ; Actually, this is relative to the address of the delay slot. + ((value pc) (sra SI (sub SI value pc) 2)) + ((value pc) (add SI (sll SI value 2) (add pc 4)))) + +; Instruction fields that scarcely appear in instructions. + +(dnf f-count "count field" () 15 7) +(dnf f-bytecount "byte count field" () 7 8) +(dnf f-index "index field" () 8 9) +(dnf f-mask "mask field" () 9 4) +(dnf f-maskq10 "iq10 mask field" () 10 5) +(dnf f-maskl "mask left field" () 4 5) +(dnf f-excode "execcode field" () 25 20) +(dnf f-rsrvd "reserved field" () 25 10) +(dnf f-10-11 "bits 10:0" () 10 11) +(dnf f-24-19 "bits 24:6" () 24 19) +(dnf f-5 "bit 5" () 5 1) +(dnf f-10 "bit 10" () 10 1) +(dnf f-25 "bit 25" () 25 1) +(dnf f-cam-z "cam global mask z" () 5 3) +(dnf f-cam-y "cam operation y" () 2 3) +(dnf f-cm-3func "CM 3 bit fn field" () 5 3) +(dnf f-cm-4func "CM 4 bit fn field" () 5 4) +(dnf f-cm-3z "CM 3Z field" () 1 2) +(dnf f-cm-4z "CM 4Z field" () 2 3) + + +; Enumerations. + +(define-normal-insn-enum + opcodes "primary opcodes" () OP_ f-opcode + (("SPECIAL" 0) ("REGIMM" 1) ("J" 2) ("JAL" 3) ("BEQ" 4) ("BNE" 5) ("BLEZ" 6) ("BGTZ" 7) + ("ADDI" 8) ("ADDIU" 9) ("SLTI" 10) ("SLTIU" 11) ("ANDI" 12) ("ORI" 13) ("XORI" 14) ("LUI" 15) + ("COP0" 16) ("COP1" 17) ("COP2" 18) ("COP3" 19) ("BEQL" 20) ("BNEL" 21) ("BLEZL" 22) ("BGTZL" 23) + ("BMB0" 24) ("BMB1" 25) ("BMB2" 26) ("BMB3" 27) ("BBI" 28) ("BBV" 29) ("BBIN" 30) ("BBVN" 31) + ("LB" 32) ("LH" 33) ("LW" 35) ("LBU" 36) ("LHU" 37) ("RAM" 39) + ("SB" 40) ("SH" 41) ("SW" 43) ("ANDOI" 44) ("BMB" 45) ("ORUI" 47) + ("LDW" 48) + ("SDW" 56) ("ANDOUI" 63)) +) + +(define-normal-insn-enum + q10_opcodes "iq10-only primary opcodes" () OP10_ f-opcode + (("BMB" 6) ("ORUI" 15) ("BMBL" 22) ("ANDOUI" 47) ("BBIL" 60) ("BBVL" 61) ("BBINL" 62) ("BBVNL" 63)) +) + +(define-normal-insn-enum + regimm-functions "branch sub-opcodes" () FUNC_ f-rt + (("BLTZ" 0) ("BGEZ" 1) ("BLTZL" 2) ("BGEZL" 3) ("BLEZ" 4) ("BGTZ" 5) ("BLEZL" 6) ("BGTZL" 7) + ("BRI" 8) ("BRV" 9) ("BCTX" 12) + ("BLTZAL" 16) ("BGEZAL" 17) ("BLTZALL" 18) ("BGEZALL" 19) ("BLEZAL" 20) ("BGTZAL" 21) ("BLEZALL" 22) ("BGTZALL" 23)) +) + +(define-normal-insn-enum + functions "function sub-opcodes" () FUNC_ f-func + (("SLL" 0) ("SLMV" 1) ("SRL" 2) ("SRA" 3) ("SLLV" 4) ("SRMV" 5) ("SRLV" 6) ("SRAV" 7) + ("JR" 8) ("JALR" 9) ("JCR" 10) ("SYSCALL" 12) ("BREAK" 13) ("SLEEP" 14) + ("ADD" 32) ("ADDU" 33) ("SUB" 34) ("SUBU" 35) ("AND" 36) ("OR" 37) ("XOR" 38) ("NOR" 39) + ("ADO16" 41) ("SLT" 42) ("SLTU" 43) ("MRGB" 45)) +) + +; iq10 special function sub-opcodes +(define-normal-insn-enum + q10s_functions "iq10-only special function sub-opcodes" () FUNC10_ f-func + (("YIELD" 14) ("CNT1S" 46)) +) + +; coprocessor opcodes in concert with f-cp-grp +(define-normal-insn-enum + cop_functions "iq10 function sub-opcodes" () FUNC10_ f-func + (("CFC" 0) ("LOCK" 1) ("CTC" 2) ("UNLK" 3) ("SWRD" 4) ("SWRDL" 5) ("SWWR" 6) ("SWWRU" 7) + ("RBA" 8) ("RBAL" 9) ("RBAR" 10) ("DWRD" 12) ("DWRDL" 13) + ("WBA" 16) ("WBAU" 17) ("WBAC" 18) ("CRC32" 20) ("CRC32B" 21) + ("MCID" 32) ("DBD" 33) ("DBA" 34) ("DPWT" 35) ("AVAIL" 36) ("FREE" 37) ("CHKHDR" 38) ("TSTOD" 39) + ("PKRLA" 40) ("PKRLAU" 41) ("PKRLAH" 42) ("PKRLAC" 43) ("CMPHDR" 44) + + ("CM64RS" 0) ("CM64RD" 1) ("CM64RI" 4) ("CM64CLR" 5) + ("CM64SS" 8) ("CM64SD" 9) ("CM64SI" 12) + ("CM64RA" 16) ("CM64RIA2" 20) ("CM128RIA2" 21) + ("CM64SA" 24) ("CM64SIA2" 28) ("CM128SIA2" 29) + ("CM32RS" 32) ("CM32RD" 33) ("CM32XOR" 34) ("CM32ANDN" 35) ("CM32RI" 36) ("CM128VSA" 38) + ("CM32SS" 40) ("CM32SD" 41) ("CM32OR" 42) ("CM32AND" 43) ("CM32SI" 44) + ("CM32RA" 48) + ("CM32SA" 56) ) +) + +; coprocessor opcodes in concert with f-cp-grp +(define-normal-insn-enum + cop_cm128_4functions "iq10 function sub-opcodes" () FUNC10_ f-cm-4func + (("CM128RIA3" 4) ("CM128SIA3" 6)) +) + +(define-normal-insn-enum + cop_cm128_3functions "iq10 function sub-opcodes" () FUNC10_ f-cm-3func + (("CM128RIA4" 6) ("CM128SIA4" 7)) +) + +(define-normal-insn-enum + cop2_functions "iq10 coprocessor sub-opcodes" () FUNC10_ f-cp-op + (("PKRLI" 0) ("PKRLIU" 1) ("PKRLIH" 2) ("PKRLIC" 3) ("RBIR" 1) ("RBI" 2) ("RBIL" 3) ("WBIC" 5) ("WBI" 6) ("WBIU" 7)) +) + +(define-normal-insn-enum + cop3_cam_functions "iq10 coprocessor cam sub-opcodes" () FUNC10_ f-cp-op-10 + (("CAM36" 16) ("CAM72" 17) ("CAM144" 18) ("CAM288" 19)) +) + + +; Attributes. + +(define-attr + (for insn) + (type boolean) + (name YIELD-INSN) + (comment "insn generates a context yield") +) + +(define-attr + (for insn) + (type boolean) + (name LOAD-DELAY) + (comment "insn has a load delay") +) + +(define-attr + (for insn) + (type boolean) + (name EVEN-REG-NUM) + (comment "insn requires an even numbered register in rt(2000) or rd(10)") +) + +(define-attr + (for insn) + (type boolean) + (name UNSUPPORTED) + (comment "insn is unsupported") +) + +(define-pmacro (define-reg-use-attr regfield) + (define-attr + (for insn) + (type boolean) + (name (.sym USES- (.upcase regfield))) + (comment ("insn accesses register operand " regfield)))) + +(define-reg-use-attr rd) +(define-reg-use-attr rs) +(define-reg-use-attr rt) +(define-reg-use-attr r31) + + +; Operands. + +(dnop rs "register Rs" () h-gr f-rs) +(dnop rt "register Rt" () h-gr f-rt) +(dnop rd "register Rd" () h-gr f-rd) +(dnop rd-rs "register Rd from Rs" () h-gr f-rd-rs) +(dnop rd-rt "register Rd from Rt" () h-gr f-rd-rt) +(dnop rt-rs "register Rt from Rs" () h-gr f-rt-rs) +(dnop shamt "shift amount" () h-uint f-shamt) +(define-operand (name imm) (comment "immediate") (attrs) + (type h-uint) (index f-imm) (handlers (parse "imm"))) +(dnop offset "pc-relative offset" () h-iaddr f-offset) +(dnop baseoff "base register offset" () h-iaddr f-imm) +(dnop jmptarg "jump target" () h-iaddr f-jtarg) +(dnop mask "mask" () h-uint f-mask) +(dnop maskq10 "iq10 mask" () h-uint f-maskq10) +(dnop maskl "mask left" () h-uint f-maskl) +(dnop count "count" () h-uint f-count) +(dnop index "index" () h-uint f-index) +(dnop execode "execcode" () h-uint f-excode) +(dnop bytecount "byte count" () h-uint f-bytecount) +(dnop cam-y "cam global opn y" () h-uint f-cam-y) +(dnop cam-z "cam global mask z" () h-uint f-cam-z) +(dnop cm-3func "CM 3 bit fn field" () h-uint f-cm-3func) +(dnop cm-4func "CM 4 bit fn field" () h-uint f-cm-4func) +(dnop cm-3z "CM 3 bit Z field" () h-uint f-cm-3z) +(dnop cm-4z "CM 4 bit Z field" () h-uint f-cm-4z) + +; Aliases for the rs and rt operands. This just makes the load/store +; insns easier to compare with the instruction set documentation. + +(dnop base "base register" () h-gr f-rs) +(dnop maskr "mask right" () h-uint f-rs) +(dnop bitnum "bit number" () h-uint f-rt) + +; For high(foo). +(define-operand + (name hi16) + (comment "high 16 bit immediate") + (attrs) + (type h-uint) + (index f-imm) + (handlers (parse "hi16")) +) + +; For low(foo). +(define-operand + (name lo16) + (comment "16 bit signed immediate, for low") + (attrs) + (type h-uint) + (index f-imm) + (handlers (parse "lo16")) +) + +; For negated imm. +(define-operand + (name mlo16) + (comment "negated 16 bit signed immediate") + (attrs) + (type h-uint) + (index f-imm) + (handlers (parse "mlo16")) +) + +; For iq10 jmps +; In the future, we'll want the j & jal to use the 21 bit target, with +; the upper five bits shifted up. For now, don't use this. +(define-operand + (name jmptargq10) + (comment "iq10 21-bit jump offset") + (attrs) + (type h-iaddr) + (index f-jtargq10) + (handlers (parse "jtargq10")) +) + + +; Instructions. + +; A pmacro for use in semantic bodies of unimplemented insns. +(define-pmacro (unimp mnemonic) (nop)) + +(define-pmacro (bitset? value bit-num) + (and value (sll 1 bit-num))) + +(define-pmacro (bitclear? value bit-num) + (not (bitset? value bit-num))) + +; Arithmetic/logic instructions. + +(dni add2 "add registers" (ALIAS NO-DIS USES-RD USES-RS USES-RT) + "add ${rd-rs},$rt" + (+ OP_SPECIAL rt rd-rs (f-shamt 0) FUNC_ADD) + (set rd-rs (add rt rd-rs)) + ()) + +(dni add "add registers" (USES-RD USES-RS USES-RT) + "add $rd,$rs,$rt" + (+ OP_SPECIAL rs rt rd (f-shamt 0) FUNC_ADD) + (set rd (add rs rt)) + ()) + + +(dni addi2 "add immediate" (ALIAS NO-DIS USES-RS USES-RT) + "addi ${rt-rs},$lo16" + (+ OP_ADDI rt-rs lo16) + (set rt-rs (add rt-rs (ext SI (trunc HI lo16)))) + ()) + +(dni addi "add immediate" (USES-RS USES-RT) + "addi $rt,$rs,$lo16" + (+ OP_ADDI rs rt lo16) + (set rt (add rs (ext SI (trunc HI lo16)))) + ()) + +(dni addiu2 "add immediate unsigned" (ALIAS NO-DIS USES-RS USES-RT) + "addiu ${rt-rs},$lo16" + (+ OP_ADDIU rt-rs lo16) + (set rt-rs (add rt-rs (ext SI (trunc HI lo16)))) + ()) + +(dni addiu "add immediate unsigned" (USES-RS USES-RT) + "addiu $rt,$rs,$lo16" + (+ OP_ADDIU rs rt lo16) + (set rt (add rs (ext SI (trunc HI lo16)))) + ()) + +(dni addu2 "add unsigned" (ALIAS NO-DIS USES-RD USES-RS USES-RT) + "addu ${rd-rs},$rt" + (+ OP_SPECIAL rd-rs rt (f-shamt 0) FUNC_ADDU) + (set rd-rs (add rd-rs rt)) + ()) + +(dni addu "add unsigned" (USES-RD USES-RS USES-RT) + "addu $rd,$rs,$rt" + (+ OP_SPECIAL rs rt rd (f-shamt 0) FUNC_ADDU) + (set rd (add rs rt)) + ()) + +(dni ado162 "add 16, ones complement" (ALIAS NO-DIS USES-RD USES-RS USES-RT) + "ado16 ${rd-rs},$rt" + (+ OP_SPECIAL rd-rs rt (f-shamt 0) FUNC_ADO16) + (sequence ((HI high) (HI low)) + (set low (add HI (and HI rd-rs #xFFFF) (and HI rt #xFFFF))) + (set high (add HI (srl rd-rs 16) (srl rt 16))) + (set rd-rs (or SI (sll SI high 16) low))) + ()) + +(dni ado16 "add 16, ones complement" (USES-RD USES-RS USES-RT) + "ado16 $rd,$rs,$rt" + (+ OP_SPECIAL rs rt rd (f-shamt 0) FUNC_ADO16) + (sequence ((HI high) (HI low)) + (set low (add HI (and HI rs #xFFFF) (and HI rt #xFFFF))) + (set high (add HI (srl rs 16) (srl rt 16))) + (set rd (or SI (sll SI high 16) low))) + ()) + +(dni and2 "and register" (ALIAS NO-DIS USES-RD USES-RS USES-RT) + "and ${rd-rs},$rt" + (+ OP_SPECIAL rd-rs rt (f-shamt 0) FUNC_AND) + (set rd-rs (and rd-rs rt)) + ()) + +(dni and "and register" (USES-RD USES-RS USES-RT) + "and $rd,$rs,$rt" + (+ OP_SPECIAL rs rt rd (f-shamt 0) FUNC_AND) + (set rd (and rs rt)) + ()) + +(dni andi2 "and immediate" (ALIAS NO-DIS USES-RS USES-RT) + "andi ${rt-rs},$lo16" + (+ OP_ANDI rt-rs lo16) + (set rt-rs (and rt-rs (zext SI lo16))) + ()) + +(dni andi "and immediate" (USES-RS USES-RT) + "andi $rt,$rs,$lo16" + (+ OP_ANDI rs rt lo16) + (set rt (and rs (zext SI lo16))) + ()) + +(dni andoi2 "and ones immediate" (ALIAS NO-DIS USES-RS USES-RT) + "andoi ${rt-rs},$lo16" + (+ OP_ANDOI rt-rs lo16) + (set rt-rs (and rt-rs (or #xFFFF0000 (ext SI (trunc HI lo16))))) + ()) + +(dni andoi "and ones immediate" (USES-RS USES-RT) + "andoi $rt,$rs,$lo16" + (+ OP_ANDOI rs rt lo16) + (set rt (and rs (or #xFFFF0000 (ext SI (trunc HI lo16))))) + ()) + +(dni nor2 "nor" (ALIAS NO-DIS USES-RD USES-RS USES-RT) + "nor ${rd-rs},$rt" + (+ OP_SPECIAL rd-rs rt (f-shamt 0) FUNC_NOR) + (set rd-rs (inv (or rd-rs rt))) + ()) + +(dni nor "nor" (USES-RD USES-RS USES-RT) + "nor $rd,$rs,$rt" + (+ OP_SPECIAL rs rt rd (f-shamt 0) FUNC_NOR) + (set rd (inv (or rs rt))) + ()) + +(dni or2 "or" (ALIAS NO-DIS USES-RD USES-RS USES-RT) + "or ${rd-rs},$rt" + (+ OP_SPECIAL rd-rs rt (f-shamt 0) FUNC_OR) + (set rd-rs (or rd-rs rt)) + ()) + +(dni or "or" (USES-RD USES-RS USES-RT) + "or $rd,$rs,$rt" + (+ OP_SPECIAL rs rt rd (f-shamt 0) FUNC_OR) + (set rd (or rs rt)) + ()) + +(dni ori2 "or immediate" (ALIAS NO-DIS USES-RS USES-RT) + "ori ${rt-rs},$lo16" + (+ OP_ORI rt-rs lo16) + (set rt-rs (or rt-rs (zext SI lo16))) + ()) + +(dni ori "or immediate" (USES-RS USES-RT) + "ori $rt,$rs,$lo16" + (+ OP_ORI rs rt lo16) + (set rt (or rs (zext SI lo16))) + ()) + +(dni ram "rotate and mask" (USES-RD USES-RT) + "ram $rd,$rt,$shamt,$maskl,$maskr" + (+ OP_RAM maskr rt rd shamt (f-5 0) maskl) + (sequence () + (set rd (ror rt shamt)) + (set rd (and rd (srl #xFFFFFFFF maskl))) + (set rd (and rd (sll #xFFFFFFFF maskr)))) + ()) + +(dni sll "shift left logical" (USES-RD USES-RT) + "sll $rd,$rt,$shamt" + (+ OP_SPECIAL (f-rs 0) rt rd shamt (f-func 0)) + (set rd (sll rt shamt)) + ()) + +(dni sllv2 "shift left logical variable" (ALIAS NO-DIS USES-RD USES-RS USES-RT) + "sllv ${rd-rt},$rs" + (+ OP_SPECIAL rs rd-rt (f-shamt 0) FUNC_SLLV) + (set rd-rt (sll rd-rt (and rs #x1F))) + ()) + +(dni sllv "shift left logical variable" (USES-RD USES-RS USES-RT) + "sllv $rd,$rt,$rs" + (+ OP_SPECIAL rs rt rd (f-shamt 0) FUNC_SLLV) + (set rd (sll rt (and rs #x1F))) + ()) + +(dni slmv2 "shift left and mask variable" (ALIAS NO-DIS USES-RD USES-RS USES-RT) + "slmv ${rd-rt},$rs,$shamt" + (+ OP_SPECIAL rs rd-rt shamt FUNC_SLMV) + (set rd-rt (and (sll rd-rt shamt) (srl #xFFFFFFFF rs))) + ()) + +(dni slmv "shift left and mask variable" (USES-RD USES-RS USES-RT) + "slmv $rd,$rt,$rs,$shamt" + (+ OP_SPECIAL rs rt rd shamt FUNC_SLMV) + (set rd (and (sll rt shamt) (srl #xFFFFFFFF rs))) + ()) + +(dni slt2 "set if less than" (ALIAS NO-DIS USES-RD USES-RS USES-RT) + "slt ${rd-rs},$rt" + (+ OP_SPECIAL rt rd-rs (f-shamt 0) FUNC_SLT) + (if (lt rd-rs rt) + (set rd-rs 1) + (set rd-rs 0)) + ()) + +(dni slt "set if less than" (USES-RD USES-RS USES-RT) + "slt $rd,$rs,$rt" + (+ OP_SPECIAL rs rt rd (f-shamt 0) FUNC_SLT) + (if (lt rs rt) + (set rd 1) + (set rd 0)) + ()) + +(dni slti2 "set if less than immediate" (ALIAS NO-DIS USES-RS USES-RT) + "slti ${rt-rs},$imm" + (+ OP_SLTI rt-rs imm) + (if (lt rt-rs (ext SI (trunc HI imm))) + (set rt-rs 1) + (set rt-rs 0)) + ()) + +(dni slti "set if less than immediate" (USES-RS USES-RT) + "slti $rt,$rs,$imm" + (+ OP_SLTI rs rt imm) + (if (lt rs (ext SI (trunc HI imm))) + (set rt 1) + (set rt 0)) + ()) + +(dni sltiu2 "set if less than immediate unsigned" (ALIAS NO-DIS USES-RS USES-RT) + "sltiu ${rt-rs},$imm" + (+ OP_SLTIU rt-rs imm) + (if (ltu rt-rs (ext SI (trunc HI imm))) + (set rt-rs 1) + (set rt-rs 0)) + ()) + +(dni sltiu "set if less than immediate unsigned" (USES-RS USES-RT) + "sltiu $rt,$rs,$imm" + (+ OP_SLTIU rs rt imm) + (if (ltu rs (ext SI (trunc HI imm))) + (set rt 1) + (set rt 0)) + ()) + +(dni sltu2 "set if less than unsigned" (ALIAS NO-DIS USES-RD USES-RS USES-RT) + "sltu ${rd-rs},$rt" + (+ OP_SPECIAL rd-rs rt (f-shamt 0) FUNC_SLTU) + (if (ltu rd-rs rt) + (set rd-rs 1) + (set rd-rs 0)) + ()) + +(dni sltu "set if less than unsigned" (USES-RD USES-RS USES-RT) + "sltu $rd,$rs,$rt" + (+ OP_SPECIAL rs rt rd (f-shamt 0) FUNC_SLTU) + (if (ltu rs rt) + (set rd 1) + (set rd 0)) + ()) + +(dni sra2 "shift right arithmetic" (ALIAS NO-DIS USES-RD USES-RT) + "sra ${rd-rt},$shamt" + (+ OP_SPECIAL (f-rs 0) rd-rt shamt FUNC_SRA) + (set rd-rt (sra rd-rt shamt)) + ()) + +(dni sra "shift right arithmetic" (USES-RD USES-RT) + "sra $rd,$rt,$shamt" + (+ OP_SPECIAL (f-rs 0) rt rd shamt FUNC_SRA) + (set rd (sra rt shamt)) + ()) + +(dni srav2 "shift right arithmetic variable" (ALIAS NO-DIS USES-RD USES-RS USES-RT) + "srav ${rd-rt},$rs" + (+ OP_SPECIAL rs rd-rt (f-shamt 0) FUNC_SRAV) + (set rd-rt (sra rd-rt (and rs #x1F))) + ()) + +(dni srav "shift right arithmetic variable" (USES-RD USES-RS USES-RT) + "srav $rd,$rt,$rs" + (+ OP_SPECIAL rs rt rd (f-shamt 0) FUNC_SRAV) + (set rd (sra rt (and rs #x1F))) + ()) + +(dni srl "shift right logical" (USES-RD USES-RT) + "srl $rd,$rt,$shamt" + (+ OP_SPECIAL (f-rs 0) rt rd shamt FUNC_SRL) + (set rd (srl rt shamt)) + ()) + +(dni srlv2 "shift right logical variable" (ALIAS NO-DIS USES-RD USES-RS USES-RT) + "srlv ${rd-rt},$rs" + (+ OP_SPECIAL rs rd-rt (f-shamt 0) FUNC_SRLV) + (set rd-rt (srl rd-rt (and rs #x1F))) + ()) + +(dni srlv "shift right logical variable" (USES-RD USES-RS USES-RT) + "srlv $rd,$rt,$rs" + (+ OP_SPECIAL rs rt rd (f-shamt 0) FUNC_SRLV) + (set rd (srl rt (and rs #x1F))) + ()) + +(dni srmv2 "shift right and mask variable" (ALIAS NO-DIS USES-RD USES-RS USES-RT) + "srmv ${rd-rt},$rs,$shamt" + (+ OP_SPECIAL rs rd-rt shamt FUNC_SRMV) + (set rd-rt (and (srl rd-rt shamt) (sll #xFFFFFFFF rs))) + ()) + +(dni srmv "shift right and mask variable" (USES-RD USES-RS USES-RT) + "srmv $rd,$rt,$rs,$shamt" + (+ OP_SPECIAL rs rt rd shamt FUNC_SRMV) + (set rd (and (srl rt shamt) (sll #xFFFFFFFF rs))) + ()) + +(dni sub2 "subtract" (ALIAS NO-DIS USES-RD USES-RS USES-RT) + "sub ${rd-rs},$rt" + (+ OP_SPECIAL rt rd-rs (f-shamt 0) FUNC_SUB) + (set rd-rs (sub rd-rs rt)) + ()) + +(dni sub "subtract" (USES-RD USES-RS USES-RT) + "sub $rd,$rs,$rt" + (+ OP_SPECIAL rs rt rd (f-shamt 0) FUNC_SUB) + (set rd (sub rs rt)) + ()) + +(dni subu2 "subtract unsigned" (ALIAS NO-DIS USES-RD USES-RS USES-RT) + "subu ${rd-rs},$rt" + (+ OP_SPECIAL rt rd-rs (f-shamt 0) FUNC_SUBU) + (set rd-rs (sub rd-rs rt)) + ()) + +(dni subu "subtract unsigned" (USES-RD USES-RS USES-RT) + "subu $rd,$rs,$rt" + (+ OP_SPECIAL rs rt rd (f-shamt 0) FUNC_SUBU) + (set rd (sub rs rt)) + ()) + +(dni xor2 "exclusive or" (ALIAS NO-DIS USES-RD USES-RS USES-RT) + "xor ${rd-rs},$rt" + (+ OP_SPECIAL rt rd-rs (f-shamt 0) FUNC_XOR) + (set rd-rs (xor rd-rs rt)) + ()) + +(dni xor "exclusive or" (USES-RD USES-RS USES-RT) + "xor $rd,$rs,$rt" + (+ OP_SPECIAL rs rt rd (f-shamt 0) FUNC_XOR) + (set rd (xor rs rt)) + ()) + +(dni xori2 "exclusive or immediate" (ALIAS NO-DIS USES-RS USES-RT) + "xori ${rt-rs},$lo16" + (+ OP_XORI rt-rs lo16) + (set rt-rs (xor rt-rs (zext SI lo16))) + ()) + +(dni xori "exclusive or immediate" (USES-RS USES-RT) + "xori $rt,$rs,$lo16" + (+ OP_XORI rs rt lo16) + (set rt (xor rs (zext SI lo16))) + ()) + + +; Branch instructions. + +(dni bbi "branch bit immediate" (USES-RS) + "bbi $rs($bitnum),$offset" + (+ OP_BBI rs bitnum offset) + (if (bitset? rs bitnum) + (delay 1 (set pc offset))) + ()) + +(dni bbin "branch bit immediate negated" (USES-RS) + "bbin $rs($bitnum),$offset" + (+ OP_BBIN rs bitnum offset) + (if (bitclear? rs bitnum) + (delay 1 (set pc offset))) + ()) + +(dni bbv "branch bit variable" (USES-RS USES-RT) + "bbv $rs,$rt,$offset" + (+ OP_BBV rs rt offset) + (if (bitset? rs (and rt #x1F)) + (delay 1 (set pc offset))) + ()) + +(dni bbvn "branch bit variable negated" (USES-RS USES-RT) + "bbvn $rs,$rt,$offset" + (+ OP_BBVN rs rt offset) + (if (bitclear? rs (and rt #x1F)) + (delay 1 (set pc offset))) + ()) + +(dni beq "branch if equal" (USES-RS USES-RT) + "beq $rs,$rt,$offset" + (+ OP_BEQ rs rt offset) + (if (eq rs rt) + (delay 1 (set pc offset))) + ()) + +(dni beql "branch if equal likely" (USES-RS USES-RT) + "beql $rs,$rt,$offset" + (+ OP_BEQL rs rt offset) + (if (eq rs rt) + (delay 1 (set pc offset)) + (skip 1)) + ()) + +(dni bgez "branch if greater than or equal to zero" (USES-RS) + "bgez $rs,$offset" + (+ OP_REGIMM rs FUNC_BGEZ offset) + (if (ge rs 0) + (delay 1 (set pc offset))) + ()) + +(dni bgezal "branch if greater than or equal to zero and link" (USES-RS USES-R31) + "bgezal $rs,$offset" + (+ OP_REGIMM rs FUNC_BGEZAL offset) + (if (ge rs 0) + (sequence () + (set (reg h-gr 31) (add pc 8)) + (delay 1 (set pc offset)))) + ()) + +(dni bgezall + "branch if greater than equal to zero and link likely" (USES-RS USES-R31) + "bgezall $rs,$offset" + (+ OP_REGIMM rs FUNC_BGEZALL offset) + (if (ge rs 0) + (sequence () + (set (reg h-gr 31) (add pc 8)) + (delay 1 (set pc offset))) + (skip 1)) + ()) + +(dni bgezl "branch if greater or equal to zero likely" (USES-RS) + "bgezl $rs,$offset" + (+ OP_REGIMM rs FUNC_BGEZL offset) + (if (ge rs 0) + (delay 1 (set pc offset)) + (skip 1)) + ()) + +(dni bltz "branch if less than zero" (USES-RS) + "bltz $rs,$offset" + (+ OP_REGIMM rs FUNC_BLTZ offset) + (if (lt rs 0) + (delay 1 (set pc offset))) + ()) + +(dni bltzl "branch if less than zero likely" (USES-RS) + "bltzl $rs,$offset" + (+ OP_REGIMM rs FUNC_BLTZL offset) + (if (lt rs 0) + (delay 1 (set pc offset)) + (skip 1)) + ()) + +(dni bltzal "branch if less than zero and link" (USES-RS USES-R31) + "bltzal $rs,$offset" + (+ OP_REGIMM rs FUNC_BLTZAL offset) + (if (lt rs 0) + (sequence () + (set (reg h-gr 31) (add pc 8)) + (delay 1 (set pc offset)))) + ()) + +(dni bltzall "branch if less than zero and link likely" (USES-RS USES-R31) + "bltzall $rs,$offset" + (+ OP_REGIMM rs FUNC_BLTZALL offset) + (if (lt rs 0) + (sequence () + (set (reg h-gr 31) (add pc 8)) + (delay 1 (set pc offset))) + (skip 1)) + ()) + +(dni bmb0 "branch if matching byte-lane 0" (USES-RS USES-RT) + "bmb0 $rs,$rt,$offset" + (+ OP_BMB0 rs rt offset) + (if (eq (and rs #xFF) (and rt #xFF)) + (delay 1 (set pc offset))) + ()) + +(dni bmb1 "branch if matching byte-lane 1" (USES-RS USES-RT) + "bmb1 $rs,$rt,$offset" + (+ OP_BMB1 rs rt offset) + (if (eq (and rs #xFF00) (and rt #xFF00)) + (delay 1 (set pc offset))) + ()) + +(dni bmb2 "branch if matching byte-lane 2" (USES-RS USES-RT) + "bmb2 $rs,$rt,$offset" + (+ OP_BMB2 rs rt offset) + (if (eq (and rs #xFF0000) (and rt #xFF0000)) + (delay 1 (set pc offset))) + ()) + +(dni bmb3 "branch if matching byte-lane 3" (USES-RS USES-RT) + "bmb3 $rs,$rt,$offset" + (+ OP_BMB3 rs rt offset) + (if (eq (and rs #xFF000000) (and rt #xFF000000)) + (delay 1 (set pc offset))) + ()) + +(dni bne "branch if not equal" (USES-RS USES-RT) + "bne $rs,$rt,$offset" + (+ OP_BNE rs rt offset) + (if (ne rs rt) + (delay 1 (set pc offset))) + ()) + +(dni bnel "branch if not equal likely" (USES-RS USES-RT) + "bnel $rs,$rt,$offset" + (+ OP_BNEL rs rt offset) + (if (ne rs rt) + (delay 1 (set pc offset)) + (skip 1)) + ()) + + + + +; Jump instructions. +; Might as well jump! + +(dni jalr "jump and link register" (USES-RD USES-RS) + "jalr $rd,$rs" + (+ OP_SPECIAL rs (f-rt 0) rd (f-shamt 0) FUNC_JALR) + (delay 1 + (sequence () + (set rd (add pc 8)) + (set pc rs))) + ()) + +(dni jr "jump register" (USES-RS) + "jr $rs" + (+ OP_SPECIAL rs (f-rt 0) (f-rd 0) (f-shamt 0) FUNC_JR) + (delay 1 (set pc rs)) + ()) + + +; Load instructions. + +(dni lb "load byte" (LOAD-DELAY USES-RS USES-RT) + "lb $rt,$lo16($base)" + (+ OP_LB base rt lo16) + (set rt (ext WI (mem QI (add base (ext SI (trunc HI lo16)))))) +; (sequence ((SI addr) (SI word)) +; (set addr (add base lo16)) +; (set word (mem SI (and addr (inv 3)))) +; (set word (srl word (sll (and addr 2) 3))) +; (set rt (ext SI word))) + ()) + +(dni lbu "load byte unsigned" (LOAD-DELAY USES-RS USES-RT) + "lbu $rt,$lo16($base)" + (+ OP_LBU base rt lo16) + (set rt (zext WI (mem QI (add base (ext SI (trunc HI lo16)))))) +; (sequence ((SI addr) (SI word)) +; (set addr (add base lo16)) +; (set word (mem SI (and addr (inv 3)))) +; (set rt (srl word (sll (and addr 2) 3)))) + ()) + +(dni lh "load half word" (LOAD-DELAY USES-RS USES-RT) + "lh $rt,$lo16($base)" + (+ OP_LH base rt lo16) + (set rt (ext WI (mem HI (add base (ext SI (trunc HI lo16)))))) +; (sequence ((SI addr) (HI word)) +; (set addr (add base lo16)) +; (set word (mem SI (and addr (inv 3)))) +; (set word (srl word (sll (and addr 1) 4))) +; (set rt (ext SI word))) + ()) + +(dni lhu "load half word unsigned" (LOAD-DELAY USES-RS USES-RT) + "lhu $rt,$lo16($base)" + (+ OP_LHU base rt lo16) + (set rt (zext WI (mem HI (add base (ext SI (trunc HI lo16)))))) +; (sequence ((SI addr) (SI word)) +; (set addr (add base lo16)) +; (set word (mem SI (and addr (inv 3)))) +; (set rt (srl word (sll (and addr 1) 4)))) + ()) + +(dni lui "load upper immediate" (USES-RT) + "lui $rt,$hi16" + (+ OP_LUI (f-rs 0) rt hi16) + (set rt (sll hi16 16)) + ()) + +(dni lw "load word" (LOAD-DELAY USES-RS USES-RT) + "lw $rt,$lo16($base)" + (+ OP_LW base rt lo16) + (set rt (mem SI (add base (ext SI (trunc HI lo16))))) + ()) + + +; Store instructions. + +(dni sb "store byte" (USES-RS USES-RT) + "sb $rt,$lo16($base)" + (+ OP_SB base rt lo16) + (set (mem QI (add base (ext SI (trunc HI lo16)))) (and QI rt #xFF)) + ()) + +(dni sh "store half word" (USES-RS USES-RT) + "sh $rt,$lo16($base)" + (+ OP_SH base rt lo16) + (set (mem HI (add base (ext SI (trunc HI lo16)))) (and HI rt #xFFFF)) + ()) + +(dni sw "store word" (USES-RS USES-RT) + "sw $rt,$lo16($base)" + (+ OP_SW base rt lo16) + (set (mem SI (add base (ext SI (trunc HI lo16)))) rt) + ()) + + +; Special instructions for simulation/debugging +(dni break "breakpoint" () + "break" + (+ OP_SPECIAL (f-rs 0) (f-rt 0) (f-rd 0) (f-shamt 0) FUNC_BREAK) + (c-call VOID "do_break" pc) + ()) + +(dni syscall "system call" (YIELD-INSN) + "syscall" + (+ OP_SPECIAL execode (f-func 12)) + (c-call VOID "do_syscall") + ()) + +; Macro instructions, common to iq10 & iq2000 + +(dnmi nop "nop" () + "nop" + (emit sll (rd 0) (rt 0) (shamt 0)) +) + +(dnmi li "load immediate" (USES-RS NO-DIS) + "li $rs,$imm" + (emit ori (rt 0) rs imm) +) + +(dnmi move "move" (USES-RD USES-RT NO-DIS) + "move $rd,$rt" + (emit or rd (rs 0) rt) +) + +(dnmi lb-base-0 "load byte - implied base 0" (USES-RT NO-DIS) + "lb $rt,$lo16" + (emit lb rt lo16 (base 0)) +) + +(dnmi lbu-base-0 "load byte unsigned - implied base 0" (USES-RT NO-DIS) + "lbu $rt,$lo16" + (emit lbu rt lo16 (base 0)) +) + +(dnmi lh-base-0 "load half - implied base 0" (USES-RT NO-DIS) + "lh $rt,$lo16" + (emit lh rt lo16 (base 0)) +) + +(dnmi lw-base-0 "load word - implied base 0" (USES-RT NO-DIS) + "lw $rt,$lo16" + (emit lw rt lo16 (base 0)) +) + +(dnmi m-add "add immediate" (USES-RS USES-RT NO-DIS) + "add $rt,$rs,$lo16" + (emit addi rt rs lo16)) + +(dnmi m-addu "add immediate unsigned" (USES-RS USES-RT NO-DIS) + "addu $rt,$rs,$lo16" + (emit addiu rt rs lo16) +) + +(dnmi m-and "and immediate" (USES-RS USES-RT NO-DIS) + "and $rt,$rs,$lo16" + (emit andi rt rs lo16) +) + +(dnmi m-j "jump register" (USES-RS NO-DIS) + "j $rs" + (emit jr rs) +) + +(dnmi m-or "or immediate" (USES-RS USES-RT NO-DIS) + "or $rt,$rs,$lo16" + (emit ori rt rs lo16) +) + +(dnmi m-sll "shift left logical" (USES-RD USES-RT USES-RS NO-DIS) + "sll $rd,$rt,$rs" + (emit sllv rd rt rs) +) + +(dnmi m-slt "slt immediate" (USES-RS USES-RT NO-DIS) + "slt $rt,$rs,$imm" + (emit slti rt rs imm) +) + +(dnmi m-sltu "sltu immediate" (USES-RS USES-RT NO-DIS) + "sltu $rt,$rs,$imm" + (emit sltiu rt rs imm) +) + +(dnmi m-sra "shift right arithmetic" (USES-RD USES-RT USES-RS NO-DIS) + "sra $rd,$rt,$rs" + (emit srav rd rt rs) +) + +(dnmi m-srl "shift right logical" (USES-RD USES-RT USES-RS NO-DIS) + "srl $rd,$rt,$rs" + (emit srlv rd rt rs) +) + +(dnmi not "not" (USES-RD USES-RT NO-DIS) + "not $rd,$rt" + (emit nor rd (rs 0) rt) +) + +(dnmi subi "sub immediate" (USES-RS USES-RT NO-DIS) + "subi $rt,$rs,$mlo16" + (emit addiu rt rs mlo16) +) + +(dnmi m-sub "subtract immediate" (USES-RS USES-RT NO-DIS) + "sub $rt,$rs,$mlo16" + (emit addiu rt rs mlo16) +) + +(dnmi m-subu "subtract unsigned" (USES-RS USES-RT NO-DIS) + "subu $rt,$rs,$mlo16" + (emit addiu rt rs mlo16) +) + +(dnmi sb-base-0 "store byte - implied base 0" (USES-RT NO-DIS) + "sb $rt,$lo16" + (emit sb rt lo16 (base 0)) +) + +(dnmi sh-base-0 "store half - implied base 0" (USES-RT NO-DIS) + "sh $rt,$lo16" + (emit sh rt lo16 (base 0)) +) + +(dnmi sw-base-0 "store word - implied base 0" (USES-RT NO-DIS) + "sw $rt,$lo16" + (emit sw rt lo16 (base 0)) +) + +(dnmi m-xor "xor immediate" (USES-RS USES-RT NO-DIS) + "xor $rt,$rs,$lo16" + (emit xori rt rs lo16) +) + + +(if (keep-mach? (iq2000)) +(include "iq2000m.cpu")) + +(if (keep-mach? (iq10)) +(include "iq10.cpu")) + + + diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/cpu/iq2000.opc binutils-2.14.90.0.5/cpu/iq2000.opc --- binutils-2.14.90.0.4.1/cpu/iq2000.opc 1969-12-31 16:00:00.000000000 -0800 +++ binutils-2.14.90.0.5/cpu/iq2000.opc 2003-07-23 08:08:10.000000000 -0700 @@ -0,0 +1,324 @@ +/* IQ2000 opcode support. -*- C -*- + + Copyright 2000, 2001, 2002 Free Software Foundation, Inc. + + Contributed by Red Hat Inc; developed under contract from Fujitsu. + + This file is part of the GNU Binutils. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 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 is an addendum to iq2000.cpu. Heavy use of C code isn't + appropriate in .cpu files, so it resides here. This especially applies + to assembly/disassembly where parsing/printing can be quite involved. + Such things aren't really part of the specification of the cpu, per se, + so .cpu files provide the general framework and .opc files handle the + nitty-gritty details as necessary. + + Each section is delimited with start and end markers. + + -opc.h additions use: "-- opc.h" + -opc.c additions use: "-- opc.c" + -asm.c additions use: "-- asm.c" + -dis.c additions use: "-- dis.c" + -ibd.h additions use: "-- ibd.h" +*/ + +/* -- opc.h */ + +/* Allows reason codes to be output when assembler errors occur. */ +#define CGEN_VERBOSE_ASSEMBLER_ERRORS + +/* Override disassembly hashing - there are variable bits in the top + byte of these instructions. */ +#define CGEN_DIS_HASH_SIZE 8 +#define CGEN_DIS_HASH(buf,value) (((* (unsigned char*) (buf)) >> 6) % CGEN_DIS_HASH_SIZE) + +/* following activates check beyond hashing since some iq2000 and iq10 + instructions have same mnemonics but different functionality. */ +#define CGEN_VALIDATE_INSN_SUPPORTED + +extern int iq2000_cgen_insn_supported (CGEN_CPU_DESC cd, CGEN_INSN *insn); + +/* -- asm.c */ +static const char * parse_mimm PARAMS ((CGEN_CPU_DESC, const char **, int, long *)); +static const char * parse_imm PARAMS ((CGEN_CPU_DESC, const char **, int, unsigned long *)); +static const char * parse_hi16 PARAMS ((CGEN_CPU_DESC, const char **, int, unsigned long *)); +static const char * parse_lo16 PARAMS ((CGEN_CPU_DESC, const char **, int, long *)); + +/* Special check to ensure that instruction exists for given machine */ +int +iq2000_cgen_insn_supported (cd, insn) + CGEN_CPU_DESC cd; + CGEN_INSN *insn; +{ + int machs = cd->machs; + + return ((CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_MACH) & machs) != 0); +} + +static int iq2000_cgen_isa_register (strp) + const char **strp; +{ + int len; + int ch1, ch2; + if (**strp == 'r' || **strp == 'R') + { + len = strlen (*strp); + if (len == 2) + { + ch1 = (*strp)[1]; + if ('0' <= ch1 && ch1 <= '9') + return 1; + } + else if (len == 3) + { + ch1 = (*strp)[1]; + ch2 = (*strp)[2]; + if (('1' <= ch1 && ch1 <= '2') && ('0' <= ch2 && ch2 <= '9')) + return 1; + if ('3' == ch1 && (ch2 == '0' || ch2 == '1')) + return 1; + } + } + if (**strp == '%' && tolower((*strp)[1]) != 'l' && tolower((*strp)[1]) != 'h') + return 1; + return 0; +} + +/* Handle negated literal. */ + +static const char * +parse_mimm (cd, strp, opindex, valuep) + CGEN_CPU_DESC cd; + const char **strp; + int opindex; + long *valuep; +{ + const char *errmsg; + long value; + + /* Verify this isn't a register */ + if (iq2000_cgen_isa_register (strp)) + errmsg = _("immediate value cannot be register"); + else + { + long value; + + errmsg = cgen_parse_signed_integer (cd, strp, opindex, & value); + if (errmsg == NULL) + { + long x = (-value) & 0xFFFF0000; + if (x != 0 && x != 0xFFFF0000) + errmsg = _("immediate value out of range"); + else + *valuep = (-value & 0xFFFF); + } + } + return errmsg; +} + +/* Handle signed/unsigned literal. */ + +static const char * +parse_imm (cd, strp, opindex, valuep) + CGEN_CPU_DESC cd; + const char **strp; + int opindex; + unsigned long *valuep; +{ + const char *errmsg; + long value; + + if (iq2000_cgen_isa_register (strp)) + errmsg = _("immediate value cannot be register"); + else + { + long value; + + errmsg = cgen_parse_signed_integer (cd, strp, opindex, & value); + if (errmsg == NULL) + { + long x = value & 0xFFFF0000; + if (x != 0 && x != 0xFFFF0000) + errmsg = _("immediate value out of range"); + else + *valuep = (value & 0xFFFF); + } + } + return errmsg; +} + +/* Handle iq10 21-bit jmp offset. */ + +static const char * +parse_jtargq10 (cd, strp, opindex, reloc, type_addr, valuep) + CGEN_CPU_DESC cd; + const char **strp; + int opindex; + int reloc; + enum cgen_parse_operand_result *type_addr; + unsigned long *valuep; +{ + const char *errmsg; + bfd_vma value; + enum cgen_parse_operand_result result_type = CGEN_PARSE_OPERAND_RESULT_NUMBER; + + errmsg = cgen_parse_address (cd, strp, opindex, BFD_RELOC_IQ2000_OFFSET_21, + &result_type, &value); + if (errmsg == NULL && result_type == CGEN_PARSE_OPERAND_RESULT_NUMBER) + { + /* check value is within 23-bits (remembering that 2-bit shift right will occur) */ + if (value > 0x7fffff) + return _("21-bit offset out of range"); + } + *valuep = (value & 0x7FFFFF); + return errmsg; +} + +/* Handle high(). */ + +static const char * +parse_hi16 (cd, strp, opindex, valuep) + CGEN_CPU_DESC cd; + const char **strp; + int opindex; + unsigned long *valuep; +{ + if (strncasecmp (*strp, "%hi(", 4) == 0) + { + enum cgen_parse_operand_result result_type; + bfd_vma value; + const char *errmsg; + + *strp += 4; + errmsg = cgen_parse_address (cd, strp, opindex, BFD_RELOC_HI16, + &result_type, &value); + if (**strp != ')') + return _("missing `)'"); + + ++*strp; + if (errmsg == NULL + && result_type == CGEN_PARSE_OPERAND_RESULT_NUMBER) + { + /* if value has top-bit of %lo on, then it will + sign-propagate and so we compensate by adding + 1 to the resultant %hi value */ + if (value & 0x8000) + value += 0x10000; + value >>= 16; + } + *valuep = value; + + return errmsg; + } + + /* we add %uhi in case a user just wants the high 16-bits or is using + an insn like ori for %lo which does not sign-propagate */ + if (strncasecmp (*strp, "%uhi(", 5) == 0) + { + enum cgen_parse_operand_result result_type; + bfd_vma value; + const char *errmsg; + + *strp += 5; + errmsg = cgen_parse_address (cd, strp, opindex, BFD_RELOC_IQ2000_UHI16, + &result_type, &value); + if (**strp != ')') + return _("missing `)'"); + + ++*strp; + if (errmsg == NULL + && result_type == CGEN_PARSE_OPERAND_RESULT_NUMBER) + { + value >>= 16; + } + *valuep = value; + + return errmsg; + } + + return parse_imm (cd, strp, opindex, valuep); +} + +/* Handle %lo in a signed context. + The signedness of the value doesn't matter to %lo(), but this also + handles the case where %lo() isn't present. */ + +static const char * +parse_lo16 (cd, strp, opindex, valuep) + CGEN_CPU_DESC cd; + const char **strp; + int opindex; + long *valuep; +{ + if (strncasecmp (*strp, "%lo(", 4) == 0) + { + const char *errmsg; + enum cgen_parse_operand_result result_type; + bfd_vma value; + + *strp += 4; + errmsg = cgen_parse_address (cd, strp, opindex, BFD_RELOC_LO16, + &result_type, &value); + if (**strp != ')') + return _("missing `)'"); + ++*strp; + if (errmsg == NULL + && result_type == CGEN_PARSE_OPERAND_RESULT_NUMBER) + value &= 0xffff; + *valuep = value; + return errmsg; + } + + return parse_imm (cd, strp, opindex, valuep); +} + +/* Handle %lo in a negated signed context. + The signedness of the value doesn't matter to %lo(), but this also + handles the case where %lo() isn't present. */ + +static const char * +parse_mlo16 (cd, strp, opindex, valuep) + CGEN_CPU_DESC cd; + const char **strp; + int opindex; + long *valuep; +{ + if (strncasecmp (*strp, "%lo(", 4) == 0) + { + const char *errmsg; + enum cgen_parse_operand_result result_type; + bfd_vma value; + + *strp += 4; + errmsg = cgen_parse_address (cd, strp, opindex, BFD_RELOC_LO16, + &result_type, &value); + if (**strp != ')') + return _("missing `)'"); + ++*strp; + if (errmsg == NULL + && result_type == CGEN_PARSE_OPERAND_RESULT_NUMBER) + value = (-value) & 0xffff; + *valuep = value; + return errmsg; + } + + return parse_mimm (cd, strp, opindex, valuep); +} + +/* -- */ diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/cpu/iq2000m.cpu binutils-2.14.90.0.5/cpu/iq2000m.cpu --- binutils-2.14.90.0.4.1/cpu/iq2000m.cpu 1969-12-31 16:00:00.000000000 -0800 +++ binutils-2.14.90.0.5/cpu/iq2000m.cpu 2003-07-23 08:08:10.000000000 -0700 @@ -0,0 +1,630 @@ +; IQ2000-only CPU description. -*- Scheme -*- +; +; Copyright 2000, 2001, 2002 Free Software Foundation, Inc. +; +; Contributed by Red Hat Inc; developed under contract from Vitesse. +; +; This file is part of the GNU Binutils. +; +; This program is free software; you can redistribute it and/or modify +; it under the terms of the GNU General Public License as published by +; the Free Software Foundation; either version 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. + +(dni andoui "and upper ones immediate" (MACH2000 USES-RS USES-RT) + "andoui $rt,$rs,$hi16" + (+ OP_ANDOUI rs rt hi16) + (set rt (and rs (or (sll hi16 16) #xFFFF))) + ()) + +(dni andoui2 "and upper ones immediate" (ALIAS NO-DIS MACH2000 USES-RS USES-RT) + "andoui ${rt-rs},$hi16" + (+ OP_ANDOUI rt-rs hi16) + (set rt-rs (and rt-rs (or (sll hi16 16) #xFFFF))) + ()) + +(dni orui2 "or upper immediate" (ALIAS NO-DIS MACH2000 USES-RS USES-RT) + "orui ${rt-rs},$hi16" + (+ OP_ORUI rt-rs hi16) + (set rt-rs (or rt-rs (sll hi16 16))) + ()) + +(dni orui "or upper immediate" (MACH2000 USES-RS USES-RT) + "orui $rt,$rs,$hi16" + (+ OP_ORUI rs rt hi16) + (set rt (or rs (sll hi16 16))) + ()) + +(dni bgtz "branch if greater than zero" (MACH2000 USES-RS) + "bgtz $rs,$offset" + (+ OP_BGTZ rs (f-rt 0) offset) + (if (gt rs 0) + (delay 1 (set pc offset))) + ()) + + +(dni bgtzl "branch if greater than zero likely" (MACH2000 USES-RS) + "bgtzl $rs,$offset" + (+ OP_BGTZL rs (f-rt 0) offset) + (if (gt rs 0) + (delay 1 (set pc offset)) + (skip 1)) + ()) + +(dni blez "branch if less than or equal to zero" (MACH2000 USES-RS) + "blez $rs,$offset" + (+ OP_BLEZ rs (f-rt 0) offset) + (if (le rs 0) + (delay 1 (set pc offset))) + ()) + +(dni blezl "branch if less than or equal to zero likely" (MACH2000 USES-RS) + "blezl $rs,$offset" + (+ OP_BLEZL rs (f-rt 0) offset) + (if (le rs 0) + (delay 1 (set pc offset)) + (skip 1)) + ()) + + +(dni mrgb "merge bytes" (MACH2000 USES-RD USES-RS USES-RT) + "mrgb $rd,$rs,$rt,$mask" + (+ OP_SPECIAL rs rt rd (f-10 0) mask FUNC_MRGB) + (sequence ((SI temp)) + (if (bitclear? mask 0) + (set temp (and rs #xFF)) + (set temp (and rt #xFF))) + (if (bitclear? mask 1) + (set temp (or temp (and rs #xFF00))) + (set temp (or temp (and rt #xFF00)))) + (if (bitclear? mask 2) + (set temp (or temp (and rs #xFF0000))) + (set temp (or temp (and rt #xFF0000)))) + (if (bitclear? mask 3) + (set temp (or temp (and rs #xFF000000))) + (set temp (or temp (and rt #xFF000000)))) + (set rd temp)) + ()) + +(dni mrgb2 "merge bytes" (ALIAS NO-DIS MACH2000 USES-RD USES-RS USES-RT) + "mrgb ${rd-rs},$rt,$mask" + (+ OP_SPECIAL rt rd-rs (f-10 0) mask FUNC_MRGB) + (sequence ((SI temp)) + (if (bitclear? mask 0) + (set temp (and rd-rs #xFF)) + (set temp (and rt #xFF))) + (if (bitclear? mask 1) + (set temp (or temp (and rd-rs #xFF00))) + (set temp (or temp (and rt #xFF00)))) + (if (bitclear? mask 2) + (set temp (or temp (and rd-rs #xFF0000))) + (set temp (or temp (and rt #xFF0000)))) + (if (bitclear? mask 3) + (set temp (or temp (and rd-rs #xFF000000))) + (set temp (or temp (and rt #xFF000000)))) + (set rd-rs temp)) + ()) + +; NOTE: None of these instructions' semantics are specified, so they +; will not work in a simulator. +; +; Architectural and coprocessor instructions. +; BREAK and SYSCALL are implemented with escape hatches to the C +; code. These are used by the test suite to indicate pass/failures. + +(dni bctxt "branch and switch context" (MACH2000 DELAY-SLOT COND-CTI USES-RS) + "bctxt $rs,$offset" + (+ OP_REGIMM rs (f-rt 6) offset) + (unimp bctxt) + ()) + +(dni bc0f "branch if copro 0 condition false" (MACH2000 DELAY-SLOT COND-CTI) + "bc0f $offset" + (+ OP_COP0 (f-rs 8) (f-rt 0) offset) + (unimp bc0f) + ()) + +(dni bc0fl "branch if copro 0 condition false likely" (MACH2000 DELAY-SLOT COND-CTI SKIP-CTI) + "bc0fl $offset" + (+ OP_COP0 (f-rs 8) (f-rt 2) offset) + (unimp bc0fl) + ()) + +(dni bc3f "branch if copro 3 condition false" (MACH2000 DELAY-SLOT COND-CTI) + "bc3f $offset" + (+ OP_COP3 (f-rs 8) (f-rt 0) offset) + (unimp bc3f) + ()) + +(dni bc3fl "branch if copro 3 condition false likely" (MACH2000 DELAY-SLOT COND-CTI SKIP-CTI) + "bc3fl $offset" + (+ OP_COP3 (f-rs 8) (f-rt 2) offset) + (unimp bc3fl) + ()) + +(dni bc0t "branch if copro 0 condition true" (MACH2000 DELAY-SLOT COND-CTI) + "bc0t $offset" + (+ OP_COP0 (f-rs 8) (f-rt 1) offset) + (unimp bc0t) + ()) + +(dni bc0tl "branch if copro 0 condition true likely" (MACH2000 DELAY-SLOT COND-CTI SKIP-CTI) + "bc0tl $offset" + (+ OP_COP0 (f-rs 8) (f-rt 3) offset) + (unimp bc0tl) + ()) + +(dni bc3t "branch if copro 3 condition true" (MACH2000 DELAY-SLOT COND-CTI) + "bc3t $offset" + (+ OP_COP3 (f-rs 8) (f-rt 1) offset) + (unimp bc3t) + ()) + +(dni bc3tl "branch if copro 3 condition true likely" (MACH2000 DELAY-SLOT COND-CTI SKIP-CTI) + "bc3tl $offset" + (+ OP_COP3 (f-rs 8) (f-rt 3) offset) + (unimp bc3tl) + ()) + +; Note that we don't set the USES-RD or USES-RT attributes for many of the following +; instructions, as it's the COP register that's being specified. + +(dni cfc0 "control from coprocessor 0" (MACH2000 LOAD-DELAY USES-RT) + "cfc0 $rt,$rd" + (+ OP_COP0 (f-rs 2) rt rd (f-10-11 0)) + (unimp cfc0) + ()) + +(dni cfc1 "control from coprocessor 1" (MACH2000 LOAD-DELAY USES-RT) + "cfc1 $rt,$rd" + (+ OP_COP1 (f-rs 2) rt rd (f-10-11 0)) + (unimp cfc1) + ()) + +(dni cfc2 "control from coprocessor 2" (MACH2000 LOAD-DELAY USES-RT YIELD-INSN) + "cfc2 $rt,$rd" + (+ OP_COP2 (f-rs 2) rt rd (f-10-11 0)) + (unimp cfc2) + ()) + +(dni cfc3 "control from coprocessor 3" (MACH2000 LOAD-DELAY USES-RT YIELD-INSN) + "cfc3 $rt,$rd" + (+ OP_COP3 (f-rs 2) rt rd (f-10-11 0)) + (unimp cfc3) + ()) + +; COPz instructions are an instruction form, not real instructions +; with associated assembly mnemonics. Therefore, they are omitted +; from the ISA description. + +(dni chkhdr "check header" (MACH2000 LOAD-DELAY USES-RD YIELD-INSN) + "chkhdr $rd,$rt" + (+ OP_COP3 (f-rs 9) rt rd (f-shamt 0) (f-func 0)) + (unimp chkhdr) + ()) + +(dni ctc0 "control to coprocessor 0" (MACH2000 USES-RT) + "ctc0 $rt,$rd" + (+ OP_COP0 (f-rs 6) rt rd (f-10-11 0)) + (unimp ctc0) + ()) + +(dni ctc1 "control to coprocessor 1" (MACH2000 USES-RT) + "ctc1 $rt,$rd" + (+ OP_COP1 (f-rs 6) rt rd (f-10-11 0)) + (unimp ctc1) + ()) + +(dni ctc2 "control to coprocessor 2" (MACH2000 USES-RT) + "ctc2 $rt,$rd" + (+ OP_COP2 (f-rs 6) rt rd (f-10-11 0)) + (unimp ctc2) + ()) + +(dni ctc3 "control to coprocessor 3" (MACH2000 USES-RT) + "ctc3 $rt,$rd" + (+ OP_COP3 (f-rs 6) rt rd (f-10-11 0)) + (unimp ctc3) + ()) + +(dni jcr "jump context register" (MACH2000 DELAY-SLOT UNCOND-CTI USES-RS) + "jcr $rs" + (+ OP_SPECIAL rs (f-rt 0) (f-rd 0) (f-shamt 0) FUNC_JCR) + (unimp jcr) + ()) + +(dni luc32 "lookup chain 32 bits" (MACH2000 USES-RD USES-RT YIELD-INSN) + "luc32 $rt,$rd" + (+ OP_COP2 (f-rs 1) rt rd (f-shamt 0) (f-func 3)) + (unimp luc32) + ()) + +(dni luc32l "lookup chain 32 bits and lock" (MACH2000 USES-RD USES-RT YIELD-INSN) + "luc32l $rt,$rd" + (+ OP_COP2 (f-rs 1) rt rd (f-shamt 0) (f-func 7)) + (unimp luc32l) + ()) + +(dni luc64 "lookup chain 64 bits" (MACH2000 USES-RD USES-RT YIELD-INSN) + "luc64 $rt,$rd" + (+ OP_COP2 (f-rs 1) rt rd (f-shamt 0) (f-func 11)) + (unimp luc64) + ()) + +(dni luc64l "lookup chain 64 bits and lock" (MACH2000 USES-RD USES-RT YIELD-INSN) + "luc64l $rt,$rd" + (+ OP_COP2 (f-rs 1) rt rd (f-shamt 0) (f-func 15)) + (unimp luc64l) + ()) + +(dni luk "lookup key" (MACH2000 USES-RD USES-RT) + "luk $rt,$rd" + (+ OP_COP2 (f-rs 1) rt rd (f-shamt 0) (f-func 8)) + (unimp luk) + ()) + +(dni lulck "lookup lock" (MACH2000 USES-RT YIELD-INSN) + "lulck $rt" + (+ OP_COP2 (f-rs 1) rt (f-rd 0) (f-shamt 0) (f-func 4)) + (unimp lulck) + ()) + +(dni lum32 "lookup match 32 bits" (MACH2000 USES-RD USES-RT YIELD-INSN) + "lum32 $rt,$rd" + (+ OP_COP2 (f-rs 1) rt rd (f-shamt 0) (f-func 2)) + (unimp lum32) + ()) + +(dni lum32l "lookup match 32 bits and lock" (MACH2000 USES-RD USES-RT YIELD-INSN) + "lum32l $rt,$rd" + (+ OP_COP2 (f-rs 1) rt rd (f-shamt 0) (f-func 6)) + (unimp lum32l) + ()) + +(dni lum64 "lookup match 64 bits" (MACH2000 USES-RD USES-RT YIELD-INSN) + "lum64 $rt,$rd" + (+ OP_COP2 (f-rs 1) rt rd (f-shamt 0) (f-func 10)) + (unimp lum64) + ()) + +(dni lum64l "lookup match 64 bits and lock" (MACH2000 USES-RD USES-RT YIELD-INSN) + "lum64l $rt,$rd" + (+ OP_COP2 (f-rs 1) rt rd (f-shamt 0) (f-func 14)) + (unimp lum64l) + ()) + +(dni lur "lookup read" (MACH2000 USES-RD USES-RT YIELD-INSN) + "lur $rt,$rd" + (+ OP_COP2 (f-rs 1) rt rd (f-shamt 0) (f-func 1)) + (unimp lur) + ()) + +(dni lurl "lookup read and lock" (MACH2000 USES-RD USES-RT YIELD-INSN) + "lurl $rt,$rd" + (+ OP_COP2 (f-rs 1) rt rd (f-shamt 0) (f-func 5)) + (unimp lurl) + ()) + +(dni luulck "lookup unlock" (MACH2000 USES-RT YIELD-INSN) + "luulck $rt" + (+ OP_COP2 (f-rs 1) rt (f-rd 0) (f-shamt 0) (f-func 0)) + (unimp luulck) + ()) + +(dni mfc0 "move from coprocessor 0" (MACH2000 LOAD-DELAY USES-RT) + "mfc0 $rt,$rd" + (+ OP_COP0 (f-rs 0) rt rd (f-10-11 0)) + (unimp mfc0) + ()) + +(dni mfc1 "move from coprocessor 1" (MACH2000 LOAD-DELAY USES-RT) + "mfc1 $rt,$rd" + (+ OP_COP1 (f-rs 0) rt rd (f-10-11 0)) + (unimp mfc1) + ()) + +(dni mfc2 "move from coprocessor 2" (MACH2000 LOAD-DELAY USES-RT YIELD-INSN) + "mfc2 $rt,$rd" + (+ OP_COP2 (f-rs 0) rt rd (f-10-11 0)) + (unimp mfc2) + ()) + +(dni mfc3 "move from coprocessor 3" (MACH2000 LOAD-DELAY USES-RT YIELD-INSN) + "mfc3 $rt,$rd" + (+ OP_COP3 (f-rs 0) rt rd (f-10-11 0)) + (unimp mfc3) + ()) + +(dni mtc0 "move to coprocessor 0" (MACH2000 USES-RT) + "mtc0 $rt,$rd" + (+ OP_COP0 (f-rs 4) rt rd (f-10-11 0)) + (unimp mtc0) + ()) + +(dni mtc1 "move to coprocessor 1" (MACH2000 USES-RT) + "mtc1 $rt,$rd" + (+ OP_COP1 (f-rs 4) rt rd (f-10-11 0)) + (unimp mtc1) + ()) + +(dni mtc2 "move to coprocessor 2" (MACH2000 USES-RT) + "mtc2 $rt,$rd" + (+ OP_COP2 (f-rs 4) rt rd (f-10-11 0)) + (unimp mtc2) + ()) + +(dni mtc3 "move to coprocessor 3" (MACH2000 USES-RT) + "mtc3 $rt,$rd" + (+ OP_COP3 (f-rs 4) rt rd (f-10-11 0)) + (unimp mtc3) + ()) + +(dni pkrl "pkrl" (MACH2000 USES-RD USES-RT YIELD-INSN) + "pkrl $rd,$rt" + (+ OP_COP3 (f-rs 1) rt rd (f-shamt 0) (f-func 7)) + (unimp pkrl) + ()) + +(dni pkrlr1 "pkrlr1" (MACH2000 USES-RT YIELD-INSN) + "pkrlr1 $rt,$count" + (+ OP_COP3 (f-rs 29) rt count) + (unimp pkrlr1) + ()) + +(dni pkrlr30 "pkrlr30" (MACH2000 USES-RT YIELD-INSN) + "pkrlr30 $rt,$count" + (+ OP_COP3 (f-rs 31) rt count) + (unimp pkrlr30) + ()) + +(dni rb "dma read bytes" (MACH2000 USES-RD USES-RT YIELD-INSN) + "rb $rd,$rt" + (+ OP_COP3 (f-rs 1) rt rd (f-shamt 0) (f-func 4)) + (unimp rb) + ()) + +(dni rbr1 "dma read bytes using r1" (MACH2000 USES-RT YIELD-INSN) + "rbr1 $rt,$count" + (+ OP_COP3 (f-rs 24) rt count) + (unimp rbr1) + ()) + +(dni rbr30 "dma read bytes using r30" (MACH2000 USES-RT YIELD-INSN) + "rbr30 $rt,$count" + (+ OP_COP3 (f-rs 26) rt count) + (unimp rbr30) + ()) + +(dni rfe "restore from exception" (MACH2000) + "rfe" + (+ OP_COP0 (f-25 1) (f-24-19 0) (f-func 16)) + (unimp rfe) + ()) + +(dni rx "dma read word64s" (MACH2000 USES-RD USES-RT YIELD-INSN) + "rx $rd,$rt" + (+ OP_COP3 (f-rs 1) rt rd (f-shamt 0) (f-func 6)) + (unimp rx) + ()) + +(dni rxr1 "dma read word64s using r1" (MACH2000 USES-RT YIELD-INSN) + "rxr1 $rt,$count" + (+ OP_COP3 (f-rs 28) rt count) + (unimp rxr1) + ()) + +(dni rxr30 "dma read word 64s using r30" (MACH2000 USES-RT YIELD-INSN) + "rxr30 $rt,$count" + (+ OP_COP3 (f-rs 30) rt count) + (unimp rxr30) + ()) + +(dni sleep "sleep" (MACH2000 YIELD-INSN) + "sleep" + (+ OP_SPECIAL execode FUNC_SLEEP) + (unimp sleep) + ()) + +(dni srrd "sram read" (MACH2000 USES-RT YIELD-INSN) + "srrd $rt" + (+ OP_COP2 (f-rs 1) rt (f-rd 0) (f-shamt 0) (f-func 16)) + (unimp srrd) + ()) + +(dni srrdl "sram read and lock" (MACH2000 USES-RT YIELD-INSN) + "srrdl $rt" + (+ OP_COP2 (f-rs 1) rt (f-rd 0) (f-shamt 0) (f-func 20)) + (unimp srrdl) + ()) + +(dni srulck "sram unlock" (MACH2000 USES-RT YIELD-INSN) + "srulck $rt" + (+ OP_COP2 (f-rs 1) rt (f-rd 0) (f-shamt 0) (f-func 22)) + (unimp srulck) + ()) + +(dni srwr "sram write" (MACH2000 USES-RD USES-RT YIELD-INSN) + "srwr $rt,$rd" + (+ OP_COP2 (f-rs 1) rt rd (f-shamt 0) (f-func 17)) + (unimp srwr) + ()) + +(dni srwru "sram write and unlock" (MACH2000 USES-RD USES-RT YIELD-INSN) + "srwru $rt,$rd" + (+ OP_COP2 (f-rs 1) rt rd (f-shamt 0) (f-func 21)) + (unimp srwru) + ()) + +(dni trapqfl "yield if dma queue full" (MACH2000 YIELD-INSN) + "trapqfl" + (+ OP_COP3 (f-rs 1) (f-rt 0) (f-rd 0) (f-shamt 0) (f-func 8)) + (unimp trapqfl) + ()) + +(dni trapqne "yield if dma queue not empty" (MACH2000 YIELD-INSN) + "trapqne" + (+ OP_COP3 (f-rs 1) (f-rt 0) (f-rd 0) (f-shamt 0) (f-func 9)) + (unimp trapqne) + ()) + +(dni traprel "traprel" (MACH2000 USES-RT YIELD-INSN) + "traprel $rt" + (+ OP_COP3 (f-rs 1) rt (f-rd 0) (f-shamt 0) (f-func 10)) + (unimp traprel) + ()) + +(dni wb "dma write bytes" (MACH2000 USES-RD USES-RT YIELD-INSN) + "wb $rd,$rt" + (+ OP_COP3 (f-rs 1) rt rd (f-shamt 0) (f-func 0)) + (unimp wb) + ()) + +(dni wbu "dma write bytes and unlock" (MACH2000 USES-RD USES-RT YIELD-INSN) + "wbu $rd,$rt" + (+ OP_COP3 (f-rs 1) rt rd (f-shamt 0) (f-func 1)) + (unimp wbu) + ()) + +(dni wbr1 "dma write bytes using r1" (MACH2000 USES-RT YIELD-INSN) + "wbr1 $rt,$count" + (+ OP_COP3 (f-rs 16) rt count) + (unimp wbr1) + ()) + +(dni wbr1u "dma write bytes using r1 and unlock" (MACH2000 USES-RT YIELD-INSN) + "wbr1u $rt,$count" + (+ OP_COP3 (f-rs 17) rt count) + (unimp wbr1u) + ()) + +(dni wbr30 "dma write bytes using r30" (MACH2000 USES-RT YIELD-INSN) + "wbr30 $rt,$count" + (+ OP_COP3 (f-rs 18) rt count) + (unimp wbr30) + ()) + +(dni wbr30u "dma write bytes using r30 and unlock" (MACH2000 USES-RT YIELD-INSN) + "wbr30u $rt,$count" + (+ OP_COP3 (f-rs 19) rt count) + (unimp wbr30u) + ()) + +(dni wx "dma write word64s" (MACH2000 USES-RD USES-RT YIELD-INSN) + "wx $rd,$rt" + (+ OP_COP3 (f-rs 1) rt rd (f-shamt 0) (f-func 2)) + (unimp wx) + ()) + +(dni wxu "dma write word64s and unlock" (MACH2000 USES-RD USES-RT YIELD-INSN) + "wxu $rd,$rt" + (+ OP_COP3 (f-rs 1) rt rd (f-shamt 0) (f-func 3)) + (unimp wxu) + ()) + +(dni wxr1 "dma write word64s using r1" (MACH2000 USES-RT YIELD-INSN) + "wxr1 $rt,$count" + (+ OP_COP3 (f-rs 20) rt count) + (unimp wxr1) + ()) + +(dni wxr1u "dma write word64s using r1 and unlock" (MACH2000 USES-RT YIELD-INSN) + "wxr1u $rt,$count" + (+ OP_COP3 (f-rs 21) rt count) + (unimp wxr1u) + ()) + +(dni wxr30 "dma write word64s using r30" (MACH2000 USES-RT YIELD-INSN) + "wxr30 $rt,$count" + (+ OP_COP3 (f-rs 22) rt count) + (unimp wxr30) + ()) + +(dni wxr30u "dma write word64s using r30 and unlock" (MACH2000 USES-RT YIELD-INSN) + "wxr30u $rt,$count" + (+ OP_COP3 (f-rs 23) rt count) + (unimp wxr30u) + ()) + + +; Load/Store instructions. + +(dni ldw "load double word" (MACH2000 EVEN-REG-NUM LOAD-DELAY USES-RT) + "ldw $rt,$lo16($base)" + (+ OP_LDW base rt lo16) + (sequence ((SI addr)) + (set addr (and (add base lo16) (inv 3))) + (set (reg h-gr (add (ifield f-rt) 1)) (mem SI addr)) + (set rt (mem SI (add addr 4)))) + ()) + +(dni sdw "store double word" (MACH2000 EVEN-REG-NUM USES-RT) + "sdw $rt,$lo16($base)" + (+ OP_SDW base rt lo16) + (sequence ((SI addr)) + (set addr (and (add base lo16) (inv 3))) + (set (mem SI (add addr 4)) rt) + (set (mem SI addr) (reg h-gr (add (ifield f-rt) 1)))) + ()) + + +; Jump instructions + +(dni j "jump" (MACH2000) + "j $jmptarg" + (+ OP_J (f-rsrvd 0) jmptarg) + (delay 1 (set pc jmptarg)) + ()) + +(dni jal "jump and link" (MACH2000 USES-R31) + "jal $jmptarg" + (+ OP_JAL (f-rsrvd 0) jmptarg) + (delay 1 + (sequence () + (set (reg h-gr 31) (add pc 8)) + (set pc jmptarg))) + ()) + +(dni bmb "branch if matching byte-lane" (MACH2000 USES-RS USES-RT) + "bmb $rs,$rt,$offset" + (+ OP_BMB rs rt offset) + (sequence ((BI branch?)) + (set branch? 0) + (if (eq (and rs #xFF) (and rt #xFF)) + (set branch? 1)) + (if (eq (and rs #xFF00) (and rt #xFF00)) + (set branch? 1)) + (if (eq (and rs #xFF0000) (and rt #xFF0000)) + (set branch? 1)) + (if (eq (and rs #xFF000000) (and rt #xFF000000)) + (set branch? 1)) + (if branch? + (delay 1 (set pc offset)))) + ()) + + +; Macros + +(dnmi ldw-base-0 "load double word - implied base 0" (MACH2000 EVEN-REG-NUM LOAD-DELAY USES-RT USES-RS NO-DIS) + "ldw $rt,$lo16" + (emit ldw rt lo16 (base 0)) +) + +(dnmi sdw-base-0 "store double word - implied base 0" (MACH2000 EVEN-REG-NUM USES-RT NO-DIS) + "sdw $rt,$lo16" + (emit sdw rt lo16 (base 0)) +) + + + + + + diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/cpu/simplify.inc binutils-2.14.90.0.5/cpu/simplify.inc --- binutils-2.14.90.0.4.1/cpu/simplify.inc 1969-12-31 16:00:00.000000000 -0800 +++ binutils-2.14.90.0.5/cpu/simplify.inc 2003-07-23 08:08:10.000000000 -0700 @@ -0,0 +1,215 @@ +; Collection of macros, for GNU Binutils .cpu files. -*- Scheme -*- +; +; Copyright 2000 Free Software Foundation, Inc. +; +; Contributed by Red Hat Inc. +; +; This file is part of the GNU Binutils. +; +; This program is free software; you can redistribute it and/or modify +; it under the terms of the GNU General Public License as published by +; the Free Software Foundation; either version 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. + +; Enums. + +; Define a normal enum without using name/value pairs. +; This is currently the same as define-full-enum but it needn't remain +; that way (it's define-full-enum that would change). + +(define-pmacro (define-normal-enum name comment attrs prefix vals) + "\ +Define a normal enum, fixed number of arguments. +" + (define-full-enum name comment attrs prefix vals) +) + +; Define a normal insn enum. + +(define-pmacro (define-normal-insn-enum name comment attrs prefix fld vals) + "\ +Define a normal instruction opcode enum. +" + (define-full-insn-enum name comment attrs prefix fld vals) +) + +; Instruction fields. + +; Normally, fields are unsigned have no encode/decode needs. + +(define-pmacro (define-normal-ifield name comment attrs start length) + "Define a normal instruction field.\n" + (define-full-ifield name comment attrs start length UINT #f #f) +) + +; For those who don't like typing. + +(define-pmacro df + "Shorthand form of define-full-ifield.\n" + define-full-ifield +) +(define-pmacro dnf + "Shorthand form of define-normal-ifield.\n" + define-normal-ifield +) + +; Define a normal multi-ifield. +; FIXME: The define-normal version for ifields doesn't include the mode. + +(define-pmacro (define-normal-multi-ifield name comment attrs + mode subflds insert extract) + "Define a normal multi-part instruction field.\n" + (define-full-multi-ifield name comment attrs mode subflds insert extract) +) + +; For those who don't like typing. + +(define-pmacro dnmf + "Shorthand form of define-normal-multi-ifield.\n" + define-normal-multi-ifield +) + +; Simple multi-ifields: mode is UINT, default insert/extract support. + +(define-pmacro (dsmf name comment attrs subflds) + "Define a simple multi-part instruction field.\n" + (define-full-multi-ifield name comment attrs UINT subflds #f #f) +) + +; Hardware. + +; Simpler version for most hardware elements. +; Allow special assembler support specification but no semantic-name or +; get/set specs. + +(define-pmacro (define-normal-hardware name comment attrs type + indices values handlers) + "\ +Define a normal hardware element. +" + (define-full-hardware name comment attrs name type + indices values handlers () () ()) +) + +; For those who don't like typing. + +(define-pmacro dnh + "Shorthand form of define-normal-hardware.\n" + define-normal-hardware +) + +; Simpler version of dnh that leaves out the indices, values, handlers, +; get, set, and layout specs. +; This is useful for 1 bit registers. +; ??? While dsh and dnh aren't that distinguishable when perusing a .cpu file, +; they both take a fixed number of positional arguments, and dsh is a proper +; subset of dnh with all arguments in the same positions, so methinks things +; are ok. + +(define-pmacro (define-simple-hardware name comment attrs type) + "\ +Define a simple hardware element (usually a scalar register). +" + (define-full-hardware name comment attrs name type () () () () () ()) +) + +(define-pmacro dsh + "Shorthand form of define-simple-hardware.\n" + define-simple-hardware +) + +; Operands. + +(define-pmacro (define-normal-operand name comment attrs type index) + "Define a normal operand.\n" + (define-full-operand name comment attrs type DFLT index () () ()) +) + +; For those who don't like typing. +; FIXME: dno? + +(define-pmacro dnop + "Shorthand form of define-normal-operand.\n" + define-normal-operand +) + +(define-pmacro (dndo x-name x-mode x-args + x-syntax x-base-ifield x-encoding x-ifield-assertion + x-getter x-setter) + "Define a normal derived operand." + (define-derived-operand + (name x-name) + (mode x-mode) + (args x-args) + (syntax x-syntax) + (base-ifield x-base-ifield) + (encoding x-encoding) + (ifield-assertion x-ifield-assertion) + (getter x-getter) + (setter x-setter) + ) +) + +; Instructions. + +; Define an instruction object, normal version. +; At present all fields must be specified. +; Fields ifield-assertion is absent. + +(define-pmacro (define-normal-insn name comment attrs syntax fmt semantics timing) + "Define a normal instruction.\n" + (define-full-insn name comment attrs syntax fmt () semantics timing) +) + +; To reduce the amount of typing. +; Note that this is the same name as the D'ni in MYST. Oooohhhh..... +; this must be the right way to go. :-) + +(define-pmacro dni + "Shorthand form of define-normal-insn.\n" + define-normal-insn +) + +; Macro instructions. + +; Define a macro-insn object, normal version. +; This only supports expanding to one real insn. + +(define-pmacro (define-normal-macro-insn name comment attrs syntax expansion) + "Define a normal macro instruction.\n" + (define-full-minsn name comment attrs syntax expansion) +) + +; To reduce the amount of typing. + +(define-pmacro dnmi + "Shorthand form of define-normal-macro-insn.\n" + define-normal-macro-insn +) + +; Modes. +; ??? Not currently available for use. +; +; Define Normal Mode +; +;(define-pmacro (define-normal-mode name comment attrs bits bytes +; non-mode-c-type printf-type sem-mode ptr-to host?) +; "Define a normal mode.\n" +; (define-full-mode name comment attrs bits bytes +; non-mode-c-type printf-type sem-mode ptr-to host?) +;) +; +; For those who don't like typing. +;(define-pmacro dnm +; "Shorthand form of define-normal-mode.\n" +; define-normal-mode +;) diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/demangler/Makefile.am binutils-2.14.90.0.5/demangler/Makefile.am --- binutils-2.14.90.0.4.1/demangler/Makefile.am 1969-12-31 16:00:00.000000000 -0800 +++ binutils-2.14.90.0.5/demangler/Makefile.am 2003-07-23 08:08:23.000000000 -0700 @@ -0,0 +1,53 @@ +## Process this with automake to create Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +SUBDIRS = @SUBDIRS@ + +# Work around what appears to be a GNU make bug handling MAKEFLAGS +# values defined in terms of make variables, as is the case for CC and +# friends when we are called from the top level Makefile. +AM_MAKEFLAGS = \ + "AR_FLAGS=$(AR_FLAGS)" \ + "CC_FOR_BUILD=$(CC_FOR_BUILD)" \ + "CFLAGS=$(CFLAGS)" \ + "CXXFLAGS=$(CXXFLAGS)" \ + "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \ + "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \ + "INSTALL=$(INSTALL)" \ + "INSTALL_DATA=$(INSTALL_DATA)" \ + "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \ + "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \ + "JC1FLAGS=$(JC1FLAGS)" \ + "LDFLAGS=$(LDFLAGS)" \ + "LIBCFLAGS=$(LIBCFLAGS)" \ + "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \ + "MAKE=$(MAKE)" \ + "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \ + "PICFLAG=$(PICFLAG)" \ + "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \ + "SHELL=$(SHELL)" \ + "exec_prefix=$(exec_prefix)" \ + "infodir=$(infodir)" \ + "libdir=$(libdir)" \ + "prefix=$(prefix)" \ + "AR=$(AR)" \ + "AS=$(AS)" \ + "CC=$(CC)" \ + "CXX=$(CXX)" \ + "LD=$(LD)" \ + "LIBCFLAGS=$(LIBCFLAGS)" \ + "NM=$(NM)" \ + "PICFLAG=$(PICFLAG)" \ + "RANLIB=$(RANLIB)" \ + "DESTDIR=$(DESTDIR)" + +# Used for libiberty. +LIBIBERTY_TARGET=@libiberty_target@ +all: $(LIBIBERTY_TARGET) + +new_demangler old_demangler: + cd ${libdemangler_basedir}../libiberty && $(MAKE) $@ + +dummy_demangler: + @true diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/demangler/Makefile.in binutils-2.14.90.0.5/demangler/Makefile.in --- binutils-2.14.90.0.4.1/demangler/Makefile.in 1969-12-31 16:00:00.000000000 -0800 +++ binutils-2.14.90.0.5/demangler/Makefile.in 2003-07-23 08:08:24.000000000 -0700 @@ -0,0 +1,389 @@ +# 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 +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AS = @AS@ +CC = @CC@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +DLLTOOL = @DLLTOOL@ +EXEEXT = @EXEEXT@ +GCJ = @GCJ@ +GCJFLAGS = @GCJFLAGS@ +LIBTOOL = @LIBTOOL@ +LN_S = @LN_S@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +STRIP = @STRIP@ +VERSION = @VERSION@ +libdemangler_basedir = @libdemangler_basedir@ +libiberty_target = @libiberty_target@ +toolexecdir = @toolexecdir@ +toolexeclibdir = @toolexeclibdir@ + +AUTOMAKE_OPTIONS = cygnus + +SUBDIRS = @SUBDIRS@ + +# Work around what appears to be a GNU make bug handling MAKEFLAGS +# values defined in terms of make variables, as is the case for CC and +# friends when we are called from the top level Makefile. +AM_MAKEFLAGS = \ + "AR_FLAGS=$(AR_FLAGS)" \ + "CC_FOR_BUILD=$(CC_FOR_BUILD)" \ + "CFLAGS=$(CFLAGS)" \ + "CXXFLAGS=$(CXXFLAGS)" \ + "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \ + "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \ + "INSTALL=$(INSTALL)" \ + "INSTALL_DATA=$(INSTALL_DATA)" \ + "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \ + "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \ + "JC1FLAGS=$(JC1FLAGS)" \ + "LDFLAGS=$(LDFLAGS)" \ + "LIBCFLAGS=$(LIBCFLAGS)" \ + "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \ + "MAKE=$(MAKE)" \ + "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \ + "PICFLAG=$(PICFLAG)" \ + "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \ + "SHELL=$(SHELL)" \ + "exec_prefix=$(exec_prefix)" \ + "infodir=$(infodir)" \ + "libdir=$(libdir)" \ + "prefix=$(prefix)" \ + "AR=$(AR)" \ + "AS=$(AS)" \ + "CC=$(CC)" \ + "CXX=$(CXX)" \ + "LD=$(LD)" \ + "LIBCFLAGS=$(LIBCFLAGS)" \ + "NM=$(NM)" \ + "PICFLAG=$(PICFLAG)" \ + "RANLIB=$(RANLIB)" \ + "DESTDIR=$(DESTDIR)" + + +# Used for libiberty. +LIBIBERTY_TARGET = @libiberty_target@ +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs +CONFIG_CLEAN_FILES = +DIST_COMMON = Makefile.am Makefile.in acinclude.m4 aclocal.m4 configure \ +configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = gtar +GZIP_ENV = --best +all: all-redirect +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in acinclude.m4 + cd $(srcdir) && $(ACLOCAL) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINTAINER_MODE_TRUE@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. + +@SET_MAKE@ + +all-recursive install-data-recursive install-exec-recursive \ +installdirs-recursive install-recursive uninstall-recursive install-info-recursive \ +check-recursive installcheck-recursive info-recursive dvi-recursive: + @set fnord $$MAKEFLAGS; amf=$$2; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +mostlyclean-recursive clean-recursive distclean-recursive \ +maintainer-clean-recursive: + @set fnord $$MAKEFLAGS; amf=$$2; \ + dot_seen=no; \ + rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ + rev="$$subdir $$rev"; \ + test "$$subdir" != "." || dot_seen=yes; \ + done; \ + test "$$dot_seen" = "no" && rev=". $$rev"; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @banner="$(distdir).tar.gz is ready for distribution"; \ + dashes=`echo "$$banner" | sed s/./=/g`; \ + echo "$$dashes"; \ + echo "$$banner"; \ + echo "$$dashes" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + cp -pr $$d/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done + for subdir in $(SUBDIRS); do \ + if test "$$subdir" = .; then :; else \ + test -d $(distdir)/$$subdir \ + || mkdir $(distdir)/$$subdir \ + || exit 1; \ + chmod 777 $(distdir)/$$subdir; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \ + || exit 1; \ + fi; \ + done +info-am: +info: info-recursive +dvi-am: +dvi: dvi-recursive +check-am: +check: check-recursive +installcheck-am: +installcheck: installcheck-recursive +install-info-am: +install-info: install-info-recursive +install-exec-am: +install-exec: install-exec-recursive + +install-data-am: +install-data: install-data-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-recursive +uninstall-am: +uninstall: uninstall-recursive +all-am: Makefile +all-redirect: all-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: installdirs-recursive +installdirs-am: + + +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: +mostlyclean-am: mostlyclean-tags mostlyclean-generic + +mostlyclean: mostlyclean-recursive + +clean-am: clean-tags clean-generic mostlyclean-am + +clean: clean-recursive + +distclean-am: distclean-tags distclean-generic clean-am + -rm -f libtool + +distclean: distclean-recursive + -rm -f config.status + +maintainer-clean-am: maintainer-clean-tags maintainer-clean-generic \ + distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-recursive + -rm -f config.status + +.PHONY: install-data-recursive uninstall-data-recursive \ +install-exec-recursive uninstall-exec-recursive installdirs-recursive \ +uninstalldirs-recursive all-recursive check-recursive \ +installcheck-recursive info-recursive dvi-recursive \ +mostlyclean-recursive distclean-recursive clean-recursive \ +maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ +distclean-tags clean-tags maintainer-clean-tags distdir info-am info \ +dvi-am dvi check check-am installcheck-am installcheck install-info-am \ +install-info install-exec-am install-exec install-data-am install-data \ +install-am install uninstall-am uninstall all-redirect all-am all \ +installdirs-am installdirs mostlyclean-generic distclean-generic \ +clean-generic maintainer-clean-generic clean mostlyclean distclean \ +maintainer-clean + +all: $(LIBIBERTY_TARGET) + +new_demangler old_demangler: + cd ${libdemangler_basedir}../libiberty && $(MAKE) $@ + +dummy_demangler: + @true + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/demangler/acinclude.m4 binutils-2.14.90.0.5/demangler/acinclude.m4 --- binutils-2.14.90.0.4.1/demangler/acinclude.m4 1969-12-31 16:00:00.000000000 -0800 +++ binutils-2.14.90.0.5/demangler/acinclude.m4 2003-07-23 08:08:23.000000000 -0700 @@ -0,0 +1,108 @@ +sinclude(../libtool.m4) +dnl The lines below arrange for aclocal not to bring libtool.m4 +dnl AC_PROG_LIBTOOL into aclocal.m4, while still arranging for automake +dnl to add a definition of LIBTOOL to Makefile.in. +ifelse(yes,no,[ +AC_DEFUN([AC_PROG_LIBTOOL],) +AC_DEFUN([AM_PROG_LIBTOOL],) +AC_SUBST(LIBTOOL) +]) + +# Newer versions of autoconf add an underscore to these functions. +# Prevent future problems ... +ifdef([AC_PROG_CXX_G],[],[define([AC_PROG_CXX_G],defn([_AC_PROG_CXX_G]))]) +ifdef([AC_PROG_CXX_GNU],[],[define([AC_PROG_CXX_GNU],defn([_AC_PROG_CXX_GNU]))]) + +# We can't just call AC_PROG_CXX directly because g++ will try to +# link in libstdc++. +AC_DEFUN(libdemangler_AC_PROG_CXX, +[AC_BEFORE([$0], [AC_PROG_CXXCPP])dnl +dnl Fool anybody using AC_PROG_CXX. +AC_PROVIDE([AC_PROG_CXX]) +AC_CHECK_PROGS(CXX, $CCC c++ g++ gcc CC cxx cc++, gcc) + +AC_PROG_CXX_GNU + +if test $ac_cv_prog_gxx = yes; then + GXX=yes + dnl Check whether -g works, even if CXXFLAGS is set, in case the package + dnl plays around with CXXFLAGS (such as to build both debugging and + dnl normal versions of a library), tasteless as that idea is. + ac_test_CXXFLAGS="${CXXFLAGS+set}" + ac_save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS= + AC_PROG_CXX_G + if test "$ac_test_CXXFLAGS" = set; then + CXXFLAGS="$ac_save_CXXFLAGS" + elif test $ac_cv_prog_cxx_g = yes; then + CXXFLAGS="-g -O2" + else + CXXFLAGS="-O2" + fi +else + GXX= + test "${CXXFLAGS+set}" = set || CXXFLAGS="-g" +fi +]) + +dnl See if we can use the new demangler in C++. +AC_DEFUN(libdemangler_AC_NEW_DEMANGLER, +[AC_CACHE_CHECK(whether we can use the new demangler in C++, + libdemangler_cv_new_demangler, +[saved_CPPFLAGS="$CPPFLAGS" + saved_CXXFLAGS="$CXXFLAGS" + CPPFLAGS="-I$srcdir -I$srcdir/../include -D_GLIBCXX_DEMANGLER_NOSTDCXX $CPPFLAGS" + CXXFLAGS="-fno-rtti -fno-exceptions $CXXFLAGS" + libdemangler_cv_new_demangler=no + ac_compile='${CXX-g++} $CXXFLAGS $CPPFLAGS -c -I$srcdir/include $srcdir/lib/demangle.cc 1>&5' + if { (eval echo configure:__oline__: \"$ac_compile\") 1>&5; (eval $ac_compile ) 2>&5; }; then + ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS $srcdir/../libiberty/dyn-string.c 1>&5' + if { (eval echo configure:__oline__: \"$ac_compile\") 1>&5; (eval $ac_compile ) 2>&5; }; then + cat > conftest.c < +#include +#include "demangle.h" + +void +xexit (code) + int code; +{ + exit (code); +} + +char * +xmalloc (size) + size_t size; +{ + return (char *) 0; +} + +char * +xrealloc (oldmem, size) + char *oldmem; + size_t size; +{ + return (char *) 0; +} + +int +main () +{ + const char* p; + p = cplus_demangle_v3 ("_Z1fA37_iPS_", 0); + return !p; +} +EOF + ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.c 1>&5' + if { (eval echo configure:__oline__: \"$ac_compile\") 1>&5; (eval $ac_compile ) 2>&5; }; then + ac_link='${CC-cc} -o conftest${ac_exeext} conftest.o demangle.o dyn-string.o $CFLAGS $CPPFLAGS $LDFLAGS $LIBS 1>&5' + if { (eval echo configure:__oline__: \"$ac_link\") 1>&5; (eval $ac_link ) 2>&5; }; then + libdemangler_cv_new_demangler=yes + fi + fi + fi + fi + rm -f demangle.o dyn-string.o conftest* + CPPFLAGS="$saved_CPPFLAGS" + CXXFLAGS="$saved_CXXFLAGS"]) + ]) diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/demangler/aclocal.m4 binutils-2.14.90.0.5/demangler/aclocal.m4 --- binutils-2.14.90.0.4.1/demangler/aclocal.m4 1969-12-31 16:00:00.000000000 -0800 +++ binutils-2.14.90.0.5/demangler/aclocal.m4 2003-07-23 08:08:23.000000000 -0700 @@ -0,0 +1,276 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4-p6 + +dnl Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +sinclude(../libtool.m4) +dnl The lines below arrange for aclocal not to bring libtool.m4 +dnl AC_PROG_LIBTOOL into aclocal.m4, while still arranging for automake +dnl to add a definition of LIBTOOL to Makefile.in. +ifelse(yes,no,[ +AC_DEFUN([AC_PROG_LIBTOOL],) +AC_DEFUN([AM_PROG_LIBTOOL],) +AC_SUBST(LIBTOOL) +]) + +# Newer versions of autoconf add an underscore to these functions. +# Prevent future problems ... +ifdef([AC_PROG_CXX_G],[],[define([AC_PROG_CXX_G],defn([_AC_PROG_CXX_G]))]) +ifdef([AC_PROG_CXX_GNU],[],[define([AC_PROG_CXX_GNU],defn([_AC_PROG_CXX_GNU]))]) + +# We can't just call AC_PROG_CXX directly because g++ will try to +# link in libstdc++. +AC_DEFUN(libdemangler_AC_PROG_CXX, +[AC_BEFORE([$0], [AC_PROG_CXXCPP])dnl +dnl Fool anybody using AC_PROG_CXX. +AC_PROVIDE([AC_PROG_CXX]) +AC_CHECK_PROGS(CXX, $CCC c++ g++ gcc CC cxx cc++, gcc) + +AC_PROG_CXX_GNU + +if test $ac_cv_prog_gxx = yes; then + GXX=yes + dnl Check whether -g works, even if CXXFLAGS is set, in case the package + dnl plays around with CXXFLAGS (such as to build both debugging and + dnl normal versions of a library), tasteless as that idea is. + ac_test_CXXFLAGS="${CXXFLAGS+set}" + ac_save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS= + AC_PROG_CXX_G + if test "$ac_test_CXXFLAGS" = set; then + CXXFLAGS="$ac_save_CXXFLAGS" + elif test $ac_cv_prog_cxx_g = yes; then + CXXFLAGS="-g -O2" + else + CXXFLAGS="-O2" + fi +else + GXX= + test "${CXXFLAGS+set}" = set || CXXFLAGS="-g" +fi +]) + +dnl See if we can use the new demangler in C++. +AC_DEFUN(libdemangler_AC_NEW_DEMANGLER, +[AC_CACHE_CHECK(whether we can use the new demangler in C++, + libdemangler_cv_new_demangler, +[saved_CPPFLAGS="$CPPFLAGS" + saved_CXXFLAGS="$CXXFLAGS" + CPPFLAGS="-I$srcdir -I$srcdir/../include -D_GLIBCXX_DEMANGLER_NOSTDCXX $CPPFLAGS" + CXXFLAGS="-fno-rtti -fno-exceptions $CXXFLAGS" + libdemangler_cv_new_demangler=no + ac_compile='${CXX-g++} $CXXFLAGS $CPPFLAGS -c -I$srcdir/include $srcdir/lib/demangle.cc 1>&5' + if { (eval echo configure:__oline__: \"$ac_compile\") 1>&5; (eval $ac_compile ) 2>&5; }; then + ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS $srcdir/../libiberty/dyn-string.c 1>&5' + if { (eval echo configure:__oline__: \"$ac_compile\") 1>&5; (eval $ac_compile ) 2>&5; }; then + cat > conftest.c < +#include +#include "demangle.h" + +void +xexit (code) + int code; +{ + exit (code); +} + +char * +xmalloc (size) + size_t size; +{ + return (char *) 0; +} + +char * +xrealloc (oldmem, size) + char *oldmem; + size_t size; +{ + return (char *) 0; +} + +int +main () +{ + const char* p; + p = cplus_demangle_v3 ("_Z1fA37_iPS_", 0); + return !p; +} +EOF + ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.c 1>&5' + if { (eval echo configure:__oline__: \"$ac_compile\") 1>&5; (eval $ac_compile ) 2>&5; }; then + ac_link='${CC-cc} -o conftest${ac_exeext} conftest.o demangle.o dyn-string.o $CFLAGS $CPPFLAGS $LDFLAGS $LIBS 1>&5' + if { (eval echo configure:__oline__: \"$ac_link\") 1>&5; (eval $ac_link ) 2>&5; }; then + libdemangler_cv_new_demangler=yes + fi + fi + fi + fi + rm -f demangle.o dyn-string.o conftest* + CPPFLAGS="$saved_CPPFLAGS" + CXXFLAGS="$saved_CXXFLAGS"]) + ]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN([AM_INIT_AUTOMAKE], +[AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# 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, 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 + +# AM_AUTOMAKE_VERSION(VERSION) +# ---------------------------- +# Automake X.Y traces this macro to ensure aclocal.m4 has been +# generated from the m4 files accompanying Automake X.Y. +AC_DEFUN([AM_AUTOMAKE_VERSION],[am__api_version="1.4"]) + +# AM_SET_CURRENT_AUTOMAKE_VERSION +# ------------------------------- +# Call AM_AUTOMAKE_VERSION so it can be traced. +# This function is AC_REQUIREd by AC_INIT_AUTOMAKE. +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], + [AM_AUTOMAKE_VERSION([1.4-p6])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN([AM_SANITY_CHECK], +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN([AM_MISSING_PROG], +[AC_MSG_CHECKING(for working $2) +# 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. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN([AM_MAINTAINER_MODE], +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN([AM_CONDITIONAL], +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/demangler/bootstrap binutils-2.14.90.0.5/demangler/bootstrap --- binutils-2.14.90.0.4.1/demangler/bootstrap 1969-12-31 16:00:00.000000000 -0800 +++ binutils-2.14.90.0.5/demangler/bootstrap 2003-07-23 08:08:23.000000000 -0700 @@ -0,0 +1,39 @@ +#! /bin/sh + +# helps bootstrapping demangler, when checked out from CVS +# requires at least GNU autoconf 2.13 and GNU automake1.4-p5 +# Modified from the one in libtool. + +find . -name autom4te.cache -exec rm -r {} \; + +for sub in . lib; do + (cd $sub; rm -f aclocal.m4 Makefile configure) + + case $sub in + .) + if test -n "$ACLOCAL"; then + $ACLOCAL + else + aclocal-1.4 || aclocal + fi + if test -n "$AUTOCONF"; then + $AUTOCONF + else + autoconf-2.13 || autoconf + fi + + AUTOMAKE_FLAGS="--cygnus" + ;; + *) + AUTOMAKE_FLAGS="--cygnus $sub/Makefile" + ;; + esac + + if test -n "$AUTOMAKE"; then + eval $AUTOMAKE $AUTOMAKE_FLAGS + else + eval automake-1.4 $AUTOMAKE_FLAGS || automake $AUTOMAKE_FLAGS + fi +done + +exit 0 diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/demangler/configure binutils-2.14.90.0.5/demangler/configure --- binutils-2.14.90.0.4.1/demangler/configure 1969-12-31 16:00:00.000000000 -0800 +++ binutils-2.14.90.0.5/demangler/configure 2003-07-23 08:08:24.000000000 -0700 @@ -0,0 +1,2763 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-shared[=PKGS] build shared libraries [default=yes]" +ac_help="$ac_help + --enable-static[=PKGS] build static libraries [default=yes]" +ac_help="$ac_help + --enable-fast-install[=PKGS] optimize for fast installation [default=yes]" +ac_help="$ac_help + --with-gnu-ld assume the C compiler uses GNU ld [default=no]" +ac_help="$ac_help + --disable-libtool-lock avoid locking (might break parallel builds)" +ac_help="$ac_help + --with-pic try to use only PIC/non-PIC objects [default=use both]" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +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' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=lib/demangle.cc + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:542: 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 + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +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:575: 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 + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + + +# This works around the fact that libtool configuration may change LD +# for this particular configuration, but some shells, instead of +# keeping the changes in LD private, export them just because LD is +# exported. +ORIGINAL_LD_FOR_MULTILIBS=$LD + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + + +if test -n "${with_target_subdir}" && test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + libdemangler_basedir="${with_multisrctop}../" + else + libdemangler_basedir="${with_multisrctop}" + fi +else + libdemangler_basedir= +fi + + +ac_aux_dir= +for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:661: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + +# 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:685: 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 + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +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:715: 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 + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + if test -z "$CC"; then + case "`uname -s`" in + *win32* | *WIN32*) + # 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:766: 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 + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="cl" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + ;; + esac + fi + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 +echo "configure:798: 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. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +cat > conftest.$ac_ext << EOF + +#line 809 "configure" +#include "confdefs.h" + +main(){return(0);} +EOF +if { (eval echo configure:814: \"$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 + ac_cv_prog_cc_cross=no + else + ac_cv_prog_cc_cross=yes + fi +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + ac_cv_prog_cc_works=no +fi +rm -fr conftest* +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +echo "$ac_t""$ac_cv_prog_cc_works" 1>&6 +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:840: 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:845: 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 + cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +else + GCC= +fi + +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:873: 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 + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 +if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi + + +for ac_prog in $CCC c++ g++ gcc CC cxx cc++ +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:910: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CXX"; then + ac_cv_prog_CXX="$CXX" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CXX="$ac_prog" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CXX="$ac_cv_prog_CXX" +if test -n "$CXX"; then + echo "$ac_t""$CXX" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +test -n "$CXX" && break +done +test -n "$CXX" || CXX="gcc" + + +echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6 +echo "configure:942: checking whether we are using GNU C++" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.C <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gxx=yes +else + ac_cv_prog_gxx=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gxx" 1>&6 + +if test $ac_cv_prog_gxx = yes; then + GXX=yes + ac_test_CXXFLAGS="${CXXFLAGS+set}" + ac_save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS= + echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6 +echo "configure:966: checking whether ${CXX-g++} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.cc +if test -z "`${CXX-g++} -g -c conftest.cc 2>&1`"; then + ac_cv_prog_cxx_g=yes +else + ac_cv_prog_cxx_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cxx_g" 1>&6 + if test "$ac_test_CXXFLAGS" = set; then + CXXFLAGS="$ac_save_CXXFLAGS" + elif test $ac_cv_prog_cxx_g = yes; then + CXXFLAGS="-g -O2" + else + CXXFLAGS="-O2" + fi +else + GXX= + test "${CXXFLAGS+set}" = set || CXXFLAGS="-g" +fi + +# Check whether --enable-shared or --disable-shared was given. +if test "${enable_shared+set}" = set; then + enableval="$enable_shared" + p=${PACKAGE-default} +case $enableval in +yes) enable_shared=yes ;; +no) enable_shared=no ;; +*) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," + for pkg in $enableval; do + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$ac_save_ifs" + ;; +esac +else + enable_shared=yes +fi + +# Check whether --enable-static or --disable-static was given. +if test "${enable_static+set}" = set; then + enableval="$enable_static" + p=${PACKAGE-default} +case $enableval in +yes) enable_static=yes ;; +no) enable_static=no ;; +*) + enable_static=no + # Look at the argument we got. We use all the common list separators. + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," + for pkg in $enableval; do + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$ac_save_ifs" + ;; +esac +else + enable_static=yes +fi + +# Check whether --enable-fast-install or --disable-fast-install was given. +if test "${enable_fast_install+set}" = set; then + enableval="$enable_fast_install" + p=${PACKAGE-default} +case $enableval in +yes) enable_fast_install=yes ;; +no) enable_fast_install=no ;; +*) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," + for pkg in $enableval; do + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$ac_save_ifs" + ;; +esac +else + enable_fast_install=yes +fi + +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1063: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + +# Check whether --with-gnu-ld or --without-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then + withval="$with_gnu_ld" + test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +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:1092: checking for ld used by GCC" >&5 + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | [A-Za-z]:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the path of ld + ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` + while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + echo $ac_n "checking for GNU ld""... $ac_c" 1>&6 +echo "configure:1122: checking for GNU ld" >&5 +else + echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 +echo "configure:1125: 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 +else + if test -z "$LD"; then + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some GNU ld's only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + if "$lt_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then + test "$with_gnu_ld" != no && break + else + test "$with_gnu_ld" != yes && break + fi + fi + done + IFS="$ac_save_ifs" +else + lt_cv_path_LD="$LD" # Let the user override the test with a path. +fi +fi + +LD="$lt_cv_path_LD" +if test -n "$LD"; then + echo "$ac_t""$LD" 1>&6 +else + echo "$ac_t""no" 1>&6 +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:1160: 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 + # I'd rather use --version here, but apparently some GNU ld's only accept -v. +if $LD -v 2>&1 &5; then + lt_cv_prog_gnu_ld=yes +else + lt_cv_prog_gnu_ld=no +fi +fi + +echo "$ac_t""$lt_cv_prog_gnu_ld" 1>&6 +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:1177: 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 + lt_cv_ld_reload_flag='-r' +fi + +echo "$ac_t""$lt_cv_ld_reload_flag" 1>&6 +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:1189: 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 + if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" + for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do + test -z "$ac_dir" && ac_dir=. + tmp_nm=$ac_dir/${ac_tool_prefix}nm + if test -f $tmp_nm || test -f $tmp_nm$ac_exeext ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + if ($tmp_nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep '(/dev/null|Invalid file or object type)' >/dev/null; then + lt_cv_path_NM="$tmp_nm -B" + break + elif ($tmp_nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then + lt_cv_path_NM="$tmp_nm -p" + break + else + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + fi + fi + done + IFS="$ac_save_ifs" + test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm +fi +fi + +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:1227: 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 + rm -f conftestdata +if ln -s X conftestdata 2>/dev/null +then + rm -f conftestdata + ac_cv_prog_LN_S="ln -s" +else + ac_cv_prog_LN_S=ln +fi +fi +LN_S="$ac_cv_prog_LN_S" +if test "$ac_cv_prog_LN_S" = "ln -s"; then + echo "$ac_t""yes" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +echo $ac_n "checking how to recognise dependant libraries""... $ac_c" 1>&6 +echo "configure:1248: 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 + lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# `unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [regex]' -- check by looking for files in library path +# which responds to the $file_magic_cmd with a given egrep regex. +# If you have `file' or equivalent on your system and you're not sure +# whether `pass_all' will *always* work, you probably want this one. + +case $host_os in +aix*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi4*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin* | mingw* |pw32*) + lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library' + lt_cv_file_magic_cmd='/usr/bin/file -L' + case "$host_os" in + rhapsody* | darwin1.012) + lt_cv_file_magic_test_file='/System/Library/Frameworks/System.framework/System' + ;; + *) # Darwin 1.3 on + lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib' + ;; + esac + ;; + +freebsd* ) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[3-9]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20*|hpux11*) + case $host_cpu in + hppa*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + ia64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + esac + ;; + +irix5* | irix6*) + case $host_os in + irix5*) + # this will be overridden with pass_all, but let us keep it just in case + lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1" + ;; + *) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + # this will be overridden with pass_all, but let us keep it just in case + lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[1234] dynamic lib MIPS - version 1" + ;; + esac + lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*` + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be Linux ELF. +linux-gnu*) + case $host_cpu in + alpha* | mips* | hppa* | i*86 | powerpc* | sparc* | ia64* ) + lt_cv_deplibs_check_method=pass_all ;; + *) + # glibc up to 2.1.1 does not perform some relocations on ARM + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; + esac + lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` + ;; + +netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so$' + fi + ;; + +newsos6) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +osf3* | osf4* | osf5*) + # this will be overridden with pass_all, but let us keep it just in case + lt_cv_deplibs_check_method='file_magic COFF format alpha shared library' + lt_cv_file_magic_test_file=/shlib/libc.so + lt_cv_deplibs_check_method=pass_all + ;; + +sco3.2v5*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + lt_cv_file_magic_test_file=/lib/libc.so + ;; + +sysv5uw[78]* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + case $host_vendor in + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + motorola) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + esac + ;; +esac + +fi + +echo "$ac_t""$lt_cv_deplibs_check_method" 1>&6 +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:1421: 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:1427: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + for ac_file in conftest.*; do + case $ac_file in + *.c) ;; + *) ac_cv_objext=`echo $ac_file | sed -e s/conftest.//` ;; + esac + done +else + { echo "configure: error: installation or configuration problem; compiler does not work" 1>&2; exit 1; } +fi +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_objext" 1>&6 +OBJEXT=$ac_cv_objext +ac_objext=$ac_cv_objext + + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1447: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1457: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! + +# Only perform the check for file, if the check method requires it +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:1490: 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 + case $MAGIC_CMD in + /*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; + ?:/*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path. + ;; + *) + ac_save_MAGIC_CMD="$MAGIC_CMD" + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="/usr/bin:$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/${ac_tool_prefix}file; then + lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + egrep "$file_magic_regex" > /dev/null; then + : + else + cat <&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +EOF + fi ;; + esac + fi + break + fi + done + IFS="$ac_save_ifs" + MAGIC_CMD="$ac_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + echo "$ac_t""$MAGIC_CMD" 1>&6 +else + echo "$ac_t""no" 1>&6 +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:1552: 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 + case $MAGIC_CMD in + /*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; + ?:/*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path. + ;; + *) + ac_save_MAGIC_CMD="$MAGIC_CMD" + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="/usr/bin:$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/file; then + lt_cv_path_MAGIC_CMD="$ac_dir/file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + egrep "$file_magic_regex" > /dev/null; then + : + else + cat <&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +EOF + fi ;; + esac + fi + break + fi + done + IFS="$ac_save_ifs" + MAGIC_CMD="$ac_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + echo "$ac_t""$MAGIC_CMD" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + else + MAGIC_CMD=: + fi +fi + + fi + ;; +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:1623: 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 + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +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:1655: 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 + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +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:1690: 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 + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +STRIP="$ac_cv_prog_STRIP" +if test -n "$STRIP"; then + echo "$ac_t""$STRIP" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_STRIP"; then +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:1722: 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 + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_STRIP="strip" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_STRIP" && ac_cv_prog_STRIP=":" +fi +fi +STRIP="$ac_cv_prog_STRIP" +if test -n "$STRIP"; then + echo "$ac_t""$STRIP" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + STRIP=":" +fi +fi + + +# Check for any special flags to pass to ltconfig. +libtool_flags="--cache-file=$cache_file" +test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared" +test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static" +test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install" +test "$GCC" = yes && libtool_flags="$libtool_flags --with-gcc" +test "$lt_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld" + + +# Check whether --enable-libtool-lock or --disable-libtool-lock was given. +if test "${enable_libtool_lock+set}" = set; then + enableval="$enable_libtool_lock" + : +fi + +test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock" +test x"$silent" = xyes && libtool_flags="$libtool_flags --silent" + +# Check whether --with-pic or --without-pic was given. +if test "${with_pic+set}" = set; then + withval="$with_pic" + pic_mode="$withval" +else + pic_mode=default +fi + +test x"$pic_mode" = xyes && libtool_flags="$libtool_flags --prefer-pic" +test x"$pic_mode" = xno && libtool_flags="$libtool_flags --prefer-non-pic" + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +*-*-irix6*) + # Find out which ABI we are using. + echo '#line 1789 "configure"' > conftest.$ac_ext + if { (eval echo configure:1790: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { (eval echo configure:1823: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + case "`/usr/bin/file conftest.o`" in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6 +echo "configure:1841: 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 + + ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + + cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + lt_cv_cc_needs_belf=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + lt_cv_cc_needs_belf=no +fi +rm -f conftest* + ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +fi + +echo "$ac_t""$lt_cv_cc_needs_belf" 1>&6 + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; + + +esac + +echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6 +echo "configure:1891: checking how to run the C++ preprocessor" >&5 +if test -z "$CXXCPP"; then +if eval "test \"`echo '$''{'ac_cv_prog_CXXCPP'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_ext=C +# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cxx_cross + CXXCPP="${CXX-g++} -E" + cat > conftest.$ac_ext < +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:1909: \"$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 + : +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + CXXCPP=/lib/cpp +fi +rm -f conftest* + ac_cv_prog_CXXCPP="$CXXCPP" +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross +fi +fi +CXXCPP="$ac_cv_prog_CXXCPP" +echo "$ac_t""$CXXCPP" 1>&6 + + +# Save cache, so that ltconfig can load it +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + + +# Actually configure libtool. ac_aux_dir is where install-sh is found. +AR="$AR" LTCC="$CC" CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \ +MAGIC_CMD="$MAGIC_CMD" LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \ +LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" STRIP="$STRIP" \ +AS="$AS" DLLTOOL="$DLLTOOL" OBJDUMP="$OBJDUMP" \ +objext="$OBJEXT" exeext="$EXEEXT" reload_flag="$reload_flag" \ +deplibs_check_method="$deplibs_check_method" file_magic_cmd="$file_magic_cmd" \ +${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \ +$libtool_flags --no-verify --build="$build" $ac_aux_dir/ltmain.sh $host \ +|| { echo "configure: error: libtool configure failed" 1>&2; exit 1; } + +# Reload cache, that may have been modified by ltconfig +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh $ac_aux_dir/ltcf-c.sh" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' + +# Redirect the config.log output again, so that the ltconfig log is not +# clobbered by the next message. +exec 5>>./config.log + + + +LIBTOOL_DEPS=$LIBTOOL_DEPS" $ac_aux_dir/ltcf-cxx.sh" +lt_save_CC="$CC" +lt_save_CFLAGS="$CFLAGS" +AR="$AR" LTCC="$CC" CC="$CXX" CXX="$CXX" CFLAGS="$CXXFLAGS" CPPFLAGS="$CPPFLAGS" \ +MAGIC_CMD="$MAGIC_CMD" LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \ +LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" STRIP="$STRIP" \ +AS="$AS" DLLTOOL="$DLLTOOL" OBJDUMP="$OBJDUMP" \ +objext="$OBJEXT" exeext="$EXEEXT" reload_flag="$reload_flag" \ +deplibs_check_method="$deplibs_check_method" \ +file_magic_cmd="$file_magic_cmd" \ +${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig -o libtool $libtool_flags \ +--build="$build" --add-tag=CXX $ac_aux_dir/ltcf-cxx.sh $host \ +|| { echo "configure: error: libtool tag configuration failed" 1>&2; exit 1; } +CC="$lt_save_CC" +CFLAGS="$lt_save_CFLAGS" + +# Redirect the config.log output again, so that the ltconfig log is not +# clobbered by the next message. +exec 5>>./config.log + + + + + + + +am__api_version="1.4" +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# 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:2055: 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 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:2108: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +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:2165: 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 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + + +PACKAGE=demangler + +VERSION=1.0 + +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; } +fi + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal-${am__api_version}""... $ac_c" 1>&6 +echo "configure:2204: checking for working aclocal-${am__api_version}" >&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. +if (aclocal-${am__api_version} --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal-${am__api_version} + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal-${am__api_version}" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:2217: 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. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake-${am__api_version}""... $ac_c" 1>&6 +echo "configure:2230: checking for working automake-${am__api_version}" >&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. +if (automake-${am__api_version} --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake-${am__api_version} + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake-${am__api_version}" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:2243: 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. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:2256: 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. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:2273: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:2283: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:2304: 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" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +echo $ac_n "checking whether we can use the new demangler in C++""... $ac_c" 1>&6 +echo "configure:2328: checking whether we can use the new demangler in C++" >&5 +if eval "test \"`echo '$''{'libdemangler_cv_new_demangler'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + saved_CPPFLAGS="$CPPFLAGS" + saved_CXXFLAGS="$CXXFLAGS" + CPPFLAGS="-I$srcdir -I$srcdir/../include -D_GLIBCXX_DEMANGLER_NOSTDCXX $CPPFLAGS" + CXXFLAGS="-fno-rtti -fno-exceptions $CXXFLAGS" + libdemangler_cv_new_demangler=no + ac_compile='${CXX-g++} $CXXFLAGS $CPPFLAGS -c -I$srcdir/include $srcdir/lib/demangle.cc 1>&5' + if { (eval echo configure:2338: \"$ac_compile\") 1>&5; (eval $ac_compile ) 2>&5; }; then + ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS $srcdir/../libiberty/dyn-string.c 1>&5' + if { (eval echo configure:2340: \"$ac_compile\") 1>&5; (eval $ac_compile ) 2>&5; }; then + cat > conftest.c < +#include +#include "demangle.h" + +void +xexit (code) + int code; +{ + exit (code); +} + +char * +xmalloc (size) + size_t size; +{ + return (char *) 0; +} + +char * +xrealloc (oldmem, size) + char *oldmem; + size_t size; +{ + return (char *) 0; +} + +int +main () +{ + const char* p; + p = cplus_demangle_v3 ("_Z1fA37_iPS_", 0); + return !p; +} +EOF + ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.c 1>&5' + if { (eval echo configure:2377: \"$ac_compile\") 1>&5; (eval $ac_compile ) 2>&5; }; then + ac_link='${CC-cc} -o conftest${ac_exeext} conftest.o demangle.o dyn-string.o $CFLAGS $CPPFLAGS $LDFLAGS $LIBS 1>&5' + if { (eval echo configure:2379: \"$ac_link\") 1>&5; (eval $ac_link ) 2>&5; }; then + libdemangler_cv_new_demangler=yes + fi + fi + fi + fi + rm -f demangle.o dyn-string.o conftest* + CPPFLAGS="$saved_CPPFLAGS" + CXXFLAGS="$saved_CXXFLAGS" +fi + +echo "$ac_t""$libdemangler_cv_new_demangler" 1>&6 + +if test -d ${srcdir}/${libdemangler_basedir}../libiberty; then + SUBDIRS=. + if test $libdemangler_cv_new_demangler = yes; then + libiberty_target=new_demangler + else + libiberty_target=old_demangler + fi +else + SUBDIRS=lib + libiberty_target=dummy_demangler + if test $libdemangler_cv_new_demangler != yes; then + { echo "configure: error: +*** C++ compiler is unable to compile a working demangler!" 1>&2; exit 1; } + fi +fi + + + +if test -n "$with_cross_host" && + test x"$with_cross_host" != x"no"; then + toolexecdir='$(exec_prefix)/$(target_alias)' + toolexeclibdir='$(toolexecdir)/lib' +else + toolexecdir='$(libdir)/gcc-lib/$(target_alias)' + toolexeclibdir='$(libdir)' +fi +multi_os_directory=`$CC -print-multi-os-directory 2> /dev/null` +if test $? = 0; then + case $multi_os_directory in + .) ;; # Avoid trailing /. + *) toolexeclibdir=$toolexeclibdir/$multi_os_directory ;; + esac +fi + + + +if test "${multilib}" = "yes"; then + multilib_arg="--enable-multilib" +else + multilib_arg= +fi + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +# +# If the first sed substitution is executed (which looks for macros that +# take arguments), then we branch to the quote section. Otherwise, +# look for a macro that doesn't take arguments. +cat >confdef2opt.sed <<\_ACEOF +t clear +: clear +s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g +t quote +s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g +t quote +d +: quote +s,[ `~#$^&*(){}\\|;'"<>?],\\&,g +s,\[,\\&,g +s,\],\\&,g +s,\$,$$,g +p +_ACEOF +# We use echo to avoid assuming a particular line-breaking character. +# The extra dot is to prevent the shell from consuming trailing +# line-breaks from the sub-command output. A line-break within +# single-quotes doesn't work because, if this script is created in a +# platform that uses two characters for line-breaks (e.g., DOS), tr +# would break. +ac_LF_and_DOT=`echo; echo .` +DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'` +rm -f confdef2opt.sed + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS </dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile lib/Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS < conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@libdemangler_basedir@%$libdemangler_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@CC@%$CC%g +s%@CXX@%$CXX%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@LN_S@%$LN_S%g +s%@OBJEXT@%$OBJEXT%g +s%@EXEEXT@%$EXEEXT%g +s%@RANLIB@%$RANLIB%g +s%@STRIP@%$STRIP%g +s%@LIBTOOL@%$LIBTOOL%g +s%@CXXCPP@%$CXXCPP%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@libiberty_target@%$libiberty_target%g +s%@SUBDIRS@%$SUBDIRS%g +s%@toolexecdir@%$toolexecdir%g +s%@toolexeclibdir@%$toolexeclibdir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF + +if test -n "$CONFIG_FILES"; then + if test -n "${with_target_subdir}"; then + LD="${ORIGINAL_LD_FOR_MULTILIBS}" + ac_file=Makefile . ${srcdir}/${libdemangler_basedir}../config-ml.in + fi +fi + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/demangler/configure.in binutils-2.14.90.0.5/demangler/configure.in --- binutils-2.14.90.0.4.1/demangler/configure.in 1969-12-31 16:00:00.000000000 -0800 +++ binutils-2.14.90.0.5/demangler/configure.in 2003-07-23 08:08:23.000000000 -0700 @@ -0,0 +1,106 @@ +dnl Process this with autoconf to create configure +AC_INIT(lib/demangle.cc) + +# This works around the fact that libtool configuration may change LD +# for this particular configuration, but some shells, instead of +# keeping the changes in LD private, export them just because LD is +# exported. +ORIGINAL_LD_FOR_MULTILIBS=$LD + +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +if test -n "${with_target_subdir}" && test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + libdemangler_basedir="${with_multisrctop}../" + else + libdemangler_basedir="${with_multisrctop}" + fi +else + libdemangler_basedir= +fi +AC_SUBST(libdemangler_basedir) + +AC_CANONICAL_HOST + +AC_PROG_CC +libdemangler_AC_PROG_CXX +AM_PROG_LIBTOOL + +AM_INIT_AUTOMAKE(demangler,1.0,no-define) + +AC_EXEEXT +AM_MAINTAINER_MODE + +libdemangler_AC_NEW_DEMANGLER +if test -d ${srcdir}/${libdemangler_basedir}../libiberty; then + SUBDIRS=. + if test $libdemangler_cv_new_demangler = yes; then + libiberty_target=new_demangler + else + libiberty_target=old_demangler + fi +else + SUBDIRS=lib + libiberty_target=dummy_demangler + if test $libdemangler_cv_new_demangler != yes; then + AC_MSG_ERROR([ +*** C++ compiler is unable to compile a working demangler!]) + fi +fi +AC_SUBST(libiberty_target) +AC_SUBST(SUBDIRS) + +if test -n "$with_cross_host" && + test x"$with_cross_host" != x"no"; then + toolexecdir='$(exec_prefix)/$(target_alias)' + toolexeclibdir='$(toolexecdir)/lib' +else + toolexecdir='$(libdir)/gcc-lib/$(target_alias)' + toolexeclibdir='$(libdir)' +fi +multi_os_directory=`$CC -print-multi-os-directory 2> /dev/null` +if test $? = 0; then + case $multi_os_directory in + .) ;; # Avoid trailing /. + *) toolexeclibdir=$toolexeclibdir/$multi_os_directory ;; + esac +fi +AC_SUBST(toolexecdir) +AC_SUBST(toolexeclibdir) + +if test "${multilib}" = "yes"; then + multilib_arg="--enable-multilib" +else + multilib_arg= +fi + +AC_OUTPUT(Makefile lib/Makefile, +[ +if test -n "$CONFIG_FILES"; then + if test -n "${with_target_subdir}"; then + LD="${ORIGINAL_LD_FOR_MULTILIBS}" + ac_file=Makefile . ${srcdir}/${libdemangler_basedir}../config-ml.in + fi +fi +], +srcdir=${srcdir} +host=${host} +target=${target} +with_multisubdir=${with_multisubdir} +ac_configure_args="${multilib_arg} ${ac_configure_args}" +CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} +libdemangler_basedir=${libdemangler_basedir} +CC="${CC}" +DEFS="$DEFS" +ORIGINAL_LD_FOR_MULTILIBS="${ORIGINAL_LD_FOR_MULTILIBS}" +) diff -x '*.gmo' -uprN binutils-2.14.90.0.4.1/demangler/include/bits/demangle.h binutils-2.14.90.0.5/demangler/include/bits/demangle.h --- binutils-2.14.90.0.4.1/demangler/include/bits/demangle.h 1969-12-31 16:00:00.000000000 -0800 +++ binutils-2.14.90.0.5/demangler/include/bits/demangle.h 2003-07-23 08:08:23.000000000 -0700 @@ -0,0 +1,2540 @@ +// C++ IA64 / g++ v3 demangler -*- C++ -*- + +// Copyright (C) 2003 Free Software Foundation, Inc. +// Written by Carlo Wood +// +// This file is part of the GNU ISO C++ Library. This library 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. + +// This library 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 library; see the file COPYING. If not, write to the Free +// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, +// USA. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +#ifndef _DEMANGLER_H +#define _DEMANGLER_H 1 + +#include + +#ifdef _GLIBCXX_DEMANGLER_NOSTDCXX +#include "bits/dynstring.h" +#define _GLIBCXX_DEMANGLER_BASIC_STRING demangler::dynstring +#else +#include +#define _GLIBCXX_DEMANGLER_BASIC_STRING std::basic_string, Allocator> +#endif + +// Don't include /, to prevent additional +// unresolved symbols from being dragged into the C++ runtime library. +#define _GLIBCXX_IS_DIGIT(CHAR) ((CHAR) >= '0' && (CHAR) <= '9') +#define _GLIBCXX_IS_XDIGIT(CHAR) \ + (_GLIBCXX_IS_DIGIT (CHAR) \ + || ((CHAR) >= 'a' && (CHAR) <= 'f') \ + || ((CHAR) >= 'A' && (CHAR) <= 'F')) +#define _GLIBCXX_IS_LOWER(CHAR) ((CHAR) >= 'a' && (CHAR) <= 'z') +#define _GLIBCXX_IS_UPPER(CHAR) ((CHAR) >= 'A' && (CHAR) <= 'Z') + +#ifndef _GLIBCXX_DEMANGLER_DEBUG +#define _GLIBCXX_DEMANGLER_CWDEBUG 0 +#define _GLIBCXX_DEMANGLER_DEBUG(x) +#define _GLIBCXX_DEMANGLER_DOUT(cntrl, data) +#define _GLIBCXX_DEMANGLER_DOUT_ENTERING(x) +#define _GLIBCXX_DEMANGLER_DOUT_ENTERING2(x) +#define _GLIBCXX_DEMANGLER_RETURN \ + return M_result +#define _GLIBCXX_DEMANGLER_RETURN2 \ + return M_result +#define _GLIBCXX_DEMANGLER_FAILURE \ + do { M_result = false; return false; } while(0) +#else +#define _GLIBCXX_DEMANGLER_CWDEBUG 1 +#endif + +// The following defines change the behaviour of the demangler. The +// default behaviour is that none of these macros is defined. + +// _GLIBCXX_DEMANGLER_STYLE_VOID +// Default behaviour: int f() +// Uses (void) instead of (): int f(void) + +// _GLIBCXX_DEMANGLER_STYLE_LITERAL +// Default behaviour: (long)13, +// (unsigned long long)19 +// Use extensions 'u', 'l' and 'll' for integral +// literals (as in template arguments): 13l, 19ull + +// _GLIBCXX_DEMANGLER_STYLE_LITERAL_INT +// Default behaviour: 4 +// Use also an explicit cast for int in literals: (int)4 + +namespace __gnu_cxx +{ + namespace demangler + { + namespace + { + + enum substitution_nt + { + type, + template_template_param, + nested_name_prefix, + nested_name_template_prefix, + unscoped_template_name + }; + + struct substitution_st + { + int M_start_pos; + substitution_nt M_type; + int M_number_of_prefixes; + + substitution_st(int start_pos, + substitution_nt type, + int number_of_prefixes) + : M_start_pos(start_pos), M_type(type), + M_number_of_prefixes(number_of_prefixes) + { } + }; + + enum simple_qualifier_nt + { + complex_or_imaginary = 'G', + pointer = 'P', + reference = 'R' + }; + + enum cv_qualifier_nt + { + cv_qualifier = 'K' + }; + + enum param_qualifier_nt + { + vendor_extension = 'U', + array = 'A', + pointer_to_member = 'M' + }; + + // ::= v # void + // ::= w # wchar_t + // ::= b # bool + // ::= c # char + // ::= a # signed char + // ::= h # unsigned char + // ::= s # short + // ::= t # unsigned short + // ::= i # int + // ::= j # unsigned int + // ::= l # long + // ::= m # unsigned long + // ::= x # long long, __int64 + // ::= y # unsigned long long, __int64 + // ::= n # __int128 + // ::= o # unsigned __int128 + // ::= f # float + // ::= d # double + // ::= e # long double, __float80 + // ::= g # __float128 + // ::= z # ellipsis + // ::= u # vendor extended type + // + char const* const builtin_type_c[26] = + { + "signed char", // a + "bool", // b + "char", // c + "double", // d + "long double", // e + "float", // f + "__float128", // g + "unsigned char", // h + "int", // i + "unsigned int", // j + NULL, // k + "long", // l + "unsigned long", // m + "__int128", // n + "unsigned __int128", // o + NULL, // p + NULL, // q + NULL, // r + "short", // s + "unsigned short", // t + NULL, // u + "void", // v + "wchar_t", // w + "long long", // x + "unsigned long long", // y + "..." // z + }; + + // Java source names of builtin types. Types that arn't valid in + // Java are also included here - we don't fail if someone attempts + // to demangle a C++ symbol in Java style. + char const* const builtin_type_java[26] = + { + "signed char", // a + "boolean", // b C++ "bool" + "byte", // c C++ "char" + "double", // d + "long double", // e + "float", // f + "__float128", // g + "unsigned char", // h + "int", // i + "unsigned int", // j + NULL, // k + "long", // l + "unsigned long", // m + "__int128", // n + "unsigned __int128", // o + NULL, // p + NULL, // q + NULL, // r + "short", // s + "unsigned short", // t + NULL, // u + "void", // v + "char", // w C++ "wchar_t" + "long", // x C++ "long long" + "unsigned long long", // y + "..." // z + }; + + template + class qualifier; + + template + class qualifier_list; + + template + class session; + + template + class qualifier + { + typedef _GLIBCXX_DEMANGLER_BASIC_STRING string_type; + + private: + char M_qualifier1; + char M_qualifier2; + char M_qualifier3; + mutable unsigned char M_cnt; + string_type M_optional_type; + int M_start_pos; + bool M_part_of_substitution; + + public: + qualifier(int start_pos, + simple_qualifier_nt simple_qualifier, + int inside_substitution) + : M_qualifier1(simple_qualifier), + M_start_pos(start_pos), + M_part_of_substitution(inside_substitution) + { } + + qualifier(int start_pos, + cv_qualifier_nt cv_qualifier, + char const* start, + int count, + int inside_substitution) + : M_qualifier1(start[0]), + M_qualifier2((count > 1) ? start[1] : '\0'), + M_qualifier3((count > 2) ? start[2] : '\0'), + M_start_pos(start_pos), + M_part_of_substitution(inside_substitution) + { } + + qualifier(int start_pos, + param_qualifier_nt param_qualifier, + string_type optional_type, + int inside_substitution) + : M_qualifier1(param_qualifier), + M_optional_type(optional_type), + M_start_pos(start_pos), + M_part_of_substitution(inside_substitution) + { } + + int + start_pos(void) const + { return M_start_pos; } + + char + first_qualifier(void) const + { M_cnt = 1; return M_qualifier1; } + + char + next_qualifier(void) const + { + return (++M_cnt == 2) ? M_qualifier2 + : ((M_cnt == 3) ? M_qualifier3 : 0); + } + + string_type const& + optional_type(void) const + { return M_optional_type; } + + bool + part_of_substitution(void) const + { return M_part_of_substitution; } + + }; + + template + class qualifier_list + { + typedef _GLIBCXX_DEMANGLER_BASIC_STRING string_type; + + private: + bool M_printing_suppressed; + std::vector, Allocator> M_qualifier_starts; + session& M_demangler; + + public: + qualifier_list(session& demangler_obj) + : M_printing_suppressed(false), M_demangler(demangler_obj) + { } + + ~qualifier_list() { } + + void + add_qualifier_start(simple_qualifier_nt simple_qualifier, + int start_pos, + int inside_substitution) + { M_qualifier_starts. + push_back(qualifier(start_pos, + simple_qualifier, inside_substitution)); } + + void + add_qualifier_start(cv_qualifier_nt cv_qualifier, + int start_pos, + int count, + int inside_substitution) + { M_qualifier_starts. + push_back(qualifier(start_pos, + cv_qualifier, &M_demangler.M_str[start_pos], + count, inside_substitution)); } + + void + add_qualifier_start(param_qualifier_nt param_qualifier, + int start_pos, + string_type optional_type, + int inside_substitution) + { M_qualifier_starts. + push_back(qualifier(start_pos, + param_qualifier, optional_type, inside_substitution)); } + + void + decode_qualifiers(string_type& prefix, + string_type& postfix, + bool member_function_pointer_qualifiers); + + bool + suppressed(void) const + { return M_printing_suppressed; } + + void + printing_suppressed(void) + { M_printing_suppressed = true; } + + size_t + size(void) const + { return M_qualifier_starts.size(); } + + }; + + template + class session + { + friend class qualifier_list; + typedef _GLIBCXX_DEMANGLER_BASIC_STRING string_type; + + private: + char const* M_str; + int M_pos; + int M_maxpos; + bool M_result; + bool M_java; + char const *M_namespace_separator; + char const* const *M_builtin_type; + int M_inside_template_args; + int M_inside_type; + int M_inside_substitution; + bool M_saw_destructor; + int M_name_ctor; + int M_name_dtor; + bool M_name_is_cdtor; + bool M_name_is_template; + bool M_name_is_conversion_operator; + bool M_template_args_need_space; + string_type M_function_name; + std::vector M_template_arg_pos; + int M_template_arg_pos_offset; + std::vector M_substitutions_pos; +#if _GLIBCXX_DEMANGLER_CWDEBUG + bool M_inside_add_substitution; +#endif + + public: + explicit session(char const* in, int len, bool java = false) + : M_str(in), M_pos(0), M_maxpos(len - 1), M_result(true), + M_java (java), M_namespace_separator (java ? "." : "::"), + M_builtin_type (java ? builtin_type_java : builtin_type_c), + M_inside_template_args(0), M_inside_type(0), + M_inside_substitution(0), M_saw_destructor(false), + M_name_ctor (-1), M_name_dtor (-1), + M_name_is_cdtor(false), M_name_is_template(false), + M_name_is_conversion_operator(false), + M_template_args_need_space(false), M_template_arg_pos_offset(0) +#if _GLIBCXX_DEMANGLER_CWDEBUG + , M_inside_add_substitution(false) +#endif + { } + + ~session() { } + + static int + decode_encoding(string_type& output, char const* input, + int len, bool java = false); + + static int + decode_cdtor(char const* input, int len, bool ctor); + + bool + decode_type_with_postfix(string_type& prefix, + string_type& postfix, + qualifier_list* qualifiers = NULL); + + bool + decode_type(string_type& output, + qualifier_list* qualifiers = NULL) + { + string_type postfix; + bool res = decode_type_with_postfix(output, postfix, qualifiers); + output += postfix; + return res; + } + + bool + remaining_input_characters(void) const + { return current() != 0; } + + private: + char + current(void) const + { return (M_pos > M_maxpos) ? 0 : M_str[M_pos]; } + + char + next(void) + { return (M_pos >= M_maxpos) ? 0 : M_str[++M_pos]; } + + char + eat_current(void) + { return (M_pos > M_maxpos) ? 0 : M_str[M_pos++]; } + + void + store(int& saved_pos) + { saved_pos = M_pos; } + + void + restore(int saved_pos) + { M_pos = saved_pos; M_result = true; } + + void + add_substitution(int start_pos, + substitution_nt sub_type, + int number_of_prefixes); + + bool decode_bare_function_type(string_type& output); + bool decode_builtin_type(string_type& output); + bool decode_call_offset(string_type& output); + bool decode_class_enum_type(string_type& output); + bool decode_expression(string_type& output); + bool decode_literal(string_type& output); + bool decode_local_name(string_type& output); + bool decode_name(string_type& output, + string_type& nested_name_qualifiers); + bool decode_nested_name(string_type& output, + string_type& qualifiers); + bool decode_number(string_type& output); + bool decode_operator_name(string_type& output); + bool decode_source_name(string_type& output); + bool decode_unicode(string_type& output, int &length); + bool decode_substitution(string_type& output, + qualifier_list* qualifiers = NULL); + bool decode_template_args(string_type& output); + bool decode_template_param(string_type& output, + qualifier_list* qualifiers = NULL); + bool decode_unqualified_name(string_type& output); + bool decode_unscoped_name(string_type& output); + bool decode_decimal_integer(string_type& output); + bool decode_special_name(string_type& output); + }; + + template +#if !_GLIBCXX_DEMANGLER_CWDEBUG + inline +#endif + void + session::add_substitution(int start_pos, + substitution_nt sub_type, + int number_of_prefixes = 0) + { + if (!M_inside_substitution) + { +#if _GLIBCXX_DEMANGLER_CWDEBUG + if (M_inside_add_substitution) + return; +#endif + M_substitutions_pos. + push_back(substitution_st(start_pos, + sub_type, number_of_prefixes)); +#if _GLIBCXX_DEMANGLER_CWDEBUG + if (!DEBUGCHANNELS::dc::demangler.is_on()) + return; + string_type substitution_name("S"); + int n = M_substitutions_pos.size() - 1; + if (n > 0) + substitution_name += (n <= 10) ? (char)(n + '0' - 1) + : (char)(n + 'A' - 11); + substitution_name += '_'; + string_type subst; + int saved_pos = M_pos; + M_pos = start_pos; + M_inside_add_substitution = true; + _GLIBCXX_DEMANGLER_DEBUG( dc::demangler.off() ); + switch(sub_type) + { + case type: + decode_type(subst); + break; + case template_template_param: + decode_template_param(subst); + break; + case nested_name_prefix: + case nested_name_template_prefix: + for (int cnt = number_of_prefixes; cnt > 0; --cnt) + { + if (current() == 'I') + { + subst += ' '; + decode_template_args(subst); + } + else + { + if (cnt < number_of_prefixes) + subst += M_namespace_separator; + if (current() == 'S') + decode_substitution(subst); + else + decode_unqualified_name(subst); + } + } + break; + case unscoped_template_name: + decode_unscoped_name(subst); + break; + } + M_pos = saved_pos; + _GLIBCXX_DEMANGLER_DEBUG( dc::demangler.on() ); + _GLIBCXX_DEMANGLER_DOUT(dc::demangler, + "Adding substitution " << substitution_name + << " : " << subst + << " (from " << location_ct((char*)__builtin_return_address(0) + + builtin_return_address_offset) + << " <- " << location_ct((char*)__builtin_return_address(1) + + builtin_return_address_offset) + << " <- " << location_ct((char*)__builtin_return_address(2) + + builtin_return_address_offset) + << ")."); + M_inside_add_substitution = false; +#endif + } + } + + // + // ::= 0 + // ::= 1|2|3|4|5|6|7|8|9 [+] + // ::= 0|1|2|3|4|5|6|7|8|9 + // + template + bool + session::decode_decimal_integer(string_type& output) + { + char c = current(); + if (c == '0') + { + output += '0'; + eat_current(); + } + else if (!_GLIBCXX_IS_DIGIT(c)) + M_result = false; + else + { + do + { + output += c; + } + while ((c = next(), _GLIBCXX_IS_DIGIT(c))); + } + return M_result; + } + + // ::= [n] + // + template + bool + session::decode_number(string_type& output) + { + _GLIBCXX_DEMANGLER_DOUT_ENTERING("decode_number"); + if (current() != 'n') + decode_decimal_integer(output); + else + { + output += '-'; + eat_current(); + decode_decimal_integer(output); + } + _GLIBCXX_DEMANGLER_RETURN; + } + + // + template + bool + session::decode_builtin_type(string_type& output) + { + _GLIBCXX_DEMANGLER_DOUT_ENTERING("decode_builtin_type"); + char const* bt; + char c = current(); + if (!_GLIBCXX_IS_LOWER(c) || !(bt = M_builtin_type[c - 'a'])) + _GLIBCXX_DEMANGLER_FAILURE; + output += bt; + eat_current(); + _GLIBCXX_DEMANGLER_RETURN; + } + + // ::= + // + template + bool + session::decode_class_enum_type(string_type& output) + { + _GLIBCXX_DEMANGLER_DOUT_ENTERING("decode_class_enum_type"); + string_type nested_name_qualifiers; + if (!decode_name(output, nested_name_qualifiers)) + _GLIBCXX_DEMANGLER_FAILURE; + output += nested_name_qualifiers; + _GLIBCXX_DEMANGLER_RETURN; + } + + // ::= + // S _ + // S_ + // St # ::std:: + // Sa # ::std::allocator + // Sb # ::std::basic_string + // Ss # ::std::basic_string, + // std::allocator > + // Si # ::std::basic_istream > + // So # ::std::basic_ostream > + // Sd # ::std::basic_iostream > + // + // ::= + // 0|1|2|3|4|5|6|7|8|9|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z + // [] # Base 36 number + // + template + bool + session::decode_substitution(string_type& output, + qualifier_list* qualifiers) + { + _GLIBCXX_DEMANGLER_DOUT_ENTERING("decode_substitution"); + unsigned int value = 0; + char c = next(); + if (c != '_') + { + switch(c) + { + case 'a': + { + output += "std::allocator"; + if (!M_inside_template_args) + { + M_function_name = "allocator"; + M_name_is_template = true; + M_name_is_cdtor = false; + M_name_is_conversion_operator = false; + } + eat_current(); + if (qualifiers) + qualifiers->printing_suppressed(); + _GLIBCXX_DEMANGLER_RETURN; + } + case 'b': + { + output += "std::basic_string"; + if (!M_inside_template_args) + { + M_function_name = "basic_string"; + M_name_is_template = true; + M_name_is_cdtor = false; + M_name_is_conversion_operator = false; + } + eat_current(); + if (qualifiers) + qualifiers->printing_suppressed(); + _GLIBCXX_DEMANGLER_RETURN; + } + case 'd': + output += "std::iostream"; + if (!M_inside_template_args) + { + M_function_name = "iostream"; + M_name_is_template = true; + M_name_is_cdtor = false; + M_name_is_conversion_operator = false; + } + eat_current(); + if (qualifiers) + qualifiers->printing_suppressed(); + _GLIBCXX_DEMANGLER_RETURN; + case 'i': + output += "std::istream"; + if (!M_inside_template_args) + { + M_function_name = "istream"; + M_name_is_template = true; + M_name_is_cdtor = false; + M_name_is_conversion_operator = false; + } + eat_current(); + if (qualifiers) + qualifiers->printing_suppressed(); + _GLIBCXX_DEMANGLER_RETURN; + case 'o': + output += "std::ostream"; + if (!M_inside_template_args) + { + M_function_name = "ostream"; + M_name_is_template = true; + M_name_is_cdtor = false; + M_name_is_conversion_operator = false; + } + eat_current(); + if (qualifiers) + qualifiers->printing_suppressed(); + _GLIBCXX_DEMANGLER_RETURN; + case 's': + output += "std::string"; + if (!M_inside_template_args) + { + M_function_name = "string"; + M_name_is_template = true; + M_name_is_cdtor = false; + M_name_is_conversion_operator = false; + } + eat_current(); + if (qualifiers) + qualifiers->printing_suppressed(); + _GLIBCXX_DEMANGLER_RETURN; + case 't': + output += "std"; + eat_current(); + if (qualifiers) + qualifiers->printing_suppressed(); + _GLIBCXX_DEMANGLER_RETURN; + default: + for(;; c = next()) + { + if (_GLIBCXX_IS_DIGIT(c)) + value = value * 36 + c - '0'; + else if (_GLIBCXX_IS_UPPER(c)) + value = value * 36 + c - 'A' + 10; + else if (c == '_') + break; + else + _GLIBCXX_DEMANGLER_FAILURE; + } + ++value; + break; + } + } + eat_current(); + if (value >= M_substitutions_pos.size() || + M_inside_type > 20) // Rather than core dump. + _GLIBCXX_DEMANGLER_FAILURE; + ++M_inside_substitution; + int saved_pos = M_pos; + substitution_st& substitution(M_substitutions_pos[value]); + M_pos = substitution.M_start_pos; + switch(substitution.M_type) + { + case type: + decode_type(output, qualifiers); + break; + case template_template_param: + decode_template_param(output, qualifiers); + break; + case nested_name_prefix: + case nested_name_template_prefix: + for (int cnt = substitution.M_number_of_prefixes; cnt > 0; --cnt) + { + if (current() == 'I') + { + if (M_template_args_need_space) + output += ' '; + M_template_args_need_space = false; + if (!decode_template_args(output)) + _GLIBCXX_DEMANGLER_FAILURE; + } + else + { + if (cnt < substitution.M_number_of_prefixes) + output += M_namespace_separator; + if (current() == 'S') + { + if (!decode_substitution(output)) + _GLIBCXX_DEMANGLER_FAILURE; + } + else if (!decode_unqualified_name(output)) + _GLIBCXX_DEMANGLER_FAILURE; + } + } + if (qualifiers) + qualifiers->printing_suppressed(); + break; + case unscoped_template_name: + decode_unscoped_name(output); + if (qualifiers) + qualifiers->printing_suppressed(); + break; + } + M_pos = saved_pos; + --M_inside_substitution; + _GLIBCXX_DEMANGLER_RETURN; + } + + // ::= T_ # first template parameter + // ::= T _ + // + template + bool + session::decode_template_param(string_type& output, + qualifier_list* qualifiers) + { + _GLIBCXX_DEMANGLER_DOUT_ENTERING("decode_template_parameter"); + if (current() != 'T') + _GLIBCXX_DEMANGLER_FAILURE; + unsigned int value = 0; + char c; + if ((c = next()) != '_') + { + while(_GLIBCXX_IS_DIGIT(c)) + { + value = value * 10 + c - '0'; + c = next(); + } + ++value; + } + if (eat_current() != '_') + _GLIBCXX_DEMANGLER_FAILURE; + value += M_template_arg_pos_offset; + if (value >= M_template_arg_pos.size()) + _GLIBCXX_DEMANGLER_FAILURE; + int saved_pos = M_pos; + M_pos = M_template_arg_pos[value]; + if (M_inside_type > 20) // Rather than core dump. + _GLIBCXX_DEMANGLER_FAILURE; + ++M_inside_substitution; + if (current() == 'X') + { + eat_current(); + decode_expression(output); + } + else if (current() == 'L') + decode_literal(output); + else + decode_type(output, qualifiers); + --M_inside_substitution; + M_pos = saved_pos; + _GLIBCXX_DEMANGLER_RETURN; + } + + template + bool + session::decode_literal(string_type& output) + { + _GLIBCXX_DEMANGLER_DOUT_ENTERING("decode_literal"); + eat_current(); // Eat the 'L'. + if (current() == '_') + { + if (next() != 'Z') + _GLIBCXX_DEMANGLER_FAILURE; + eat_current(); + if ((M_pos += decode_encoding(output, M_str + M_pos, + M_maxpos - M_pos + 1, M_java)) < 0) + _GLIBCXX_DEMANGLER_FAILURE; + } + else + { + // Special cases + if (current() == 'b') + { + if (next() == '0') + output += "false"; + else + output += "true"; + eat_current(); + _GLIBCXX_DEMANGLER_RETURN; + } + char c = current(); +#ifdef _GLIBCXX_DEMANGLER_STYLE_LITERAL + if (c == 'i' || c == 'j' || c == 'l' || + c == 'm' || c == 'x' || c == 'y') + eat_current(); + else +#else +#ifndef _GLIBCXX_DEMANGLER_STYLE_LITERAL_INT + if (c == 'i') + eat_current(); + else +#endif +#endif + { + output += '('; + if (!decode_type(output)) + _GLIBCXX_DEMANGLER_FAILURE; + output += ')'; + } + if (!decode_number(output)) + _GLIBCXX_DEMANGLER_FAILURE; +#ifdef _GLIBCXX_DEMANGLER_STYLE_LITERAL + if (c == 'j' || c == 'm' || c == 'y') + output += 'u'; + if (c == 'l' || c == 'm') + output += 'l'; + if (c == 'x' || c == 'y') + output += "ll"; +#endif + } + _GLIBCXX_DEMANGLER_RETURN; + } + + // ::= + // nw # new + // na # new[] + // dl # delete + // da # delete[] + // ng # - (unary) + // ad # & (unary) + // de # * (unary) + // co # ~ + // pl # + + // mi # - + // ml # * + // dv # / + // rm # % + // an # & + // or # | + // eo # ^ + // aS # = + // pL # += + // mI # -= + // mL # *= + // dV # /= + // rM # %= + // aN # &= + // oR # |= + // eO # ^= + // ls # << + // rs # >> + // lS # <<= + // rS # >>= + // eq # == + // ne # != + // lt # < + // gt # > + // le # <= + // ge # >= + // nt # ! + // aa # && + // oo # || + // pp # ++ + // mm # -- + // cm # , + // pm # ->* + // pt # -> + // cl # () + // ix # [] + // qu # ? + // sz # sizeof + // sr # scope resolution (::), see below + // cv # (cast) + // v # vendor extended operator + // + // + // Symbol operator codes exist of two characters, we need to find a + // quick hash so that their names can be looked up in a table. + // + // The puzzle :) + // Shift the rows so that there is at most one character per column. + // + // A perfect solution: + // horizontal + // ..................................... offset + 'a' + // a, ||a||d|||||||||n||||s|||||||||||||||||| 2 + // c, || || ||lm|o||| |||| |||||||||||||||||| -3 + // d, || a| |e | ||l |||| |||v|||||||||||||| 3 + // e, || | | o q| |||| ||| |||||||||||||| -4 + // g, |e | | | t||| ||| |||||||||||||| -3 + // i, | | | | ||| ||| ||||||||||x||| 12 + // l, | | | e ||| ||| ||st|||||| ||| 9 + // m, | | | ||| ||| |i lm|||| ||| 18 + // n, a e g ||t |w| | |||| ||| 0 + // o, || | | | ||o| r|| 19 + // p, lm p | t || | || 6 + // q, | || u || 14 + // r, | |m |s 20 + // s, r z | 6 + // ..................................... + // ^ ^__ second character + // |___ first character + // + + // Putting that solution in tables: + + char const offset_table_c [1 + CHAR_MAX - CHAR_MIN ] = + { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +#if (CHAR_MIN < 0) + // Add -CHAR_MIN extra zeroes (128): + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // a b c d e f g h i j k + 0, -95, 0,-100, -94,-101, 0,-100, 0, -85, 0, 0, + // l m n o p q r s t u v + -88, -79, -97, -78, -91, -83, -77, -91, 0, 0, 0, +#else + // a b c d e f g h i j k + 0, 161, 0, 156, 162, 155, 0, 156, 0, 171, 0, 0, + // l m n o p q r s t u v + 168, 177, 159, 178, 165, 173, 179, 165, 0, 0, 0, +#endif + // ... more zeros + }; + + struct entry_st + { + char const* opcode; + char const* symbol_name; + bool unary; + }; + + entry_st const symbol_name_table_c[39] = { + { "na", "operator new[]", true }, + { "ge", "operator>=", false }, + { "aa", "operator&&", false }, + { "da", "operator delete[]", true }, + { "ne", "operator!=", false }, + { "ad", "operator&", true }, // unary + { "ng", "operator-", true }, // unary + { "de", "operator*", true }, // unary + { "cl", "operator()", true }, + { "cm", "operator,", false }, + { "eo=", "operator^", false }, + { "co", "operator~", false }, + { "eq", "operator==", false }, + { "le", "operator<=", false }, + { "dl", "operator delete", true }, + { "an=", "operator&", false }, + { "gt", "operator>", false }, + { "pl=", "operator+", false }, + { "pm", "operator->*", false }, + { "nt", "operator!", true }, + { "as=", "operator", false }, + { "pp", "operator++", true }, + { "nw", "operator new", true }, + { "sr", "::", true }, + { "dv=", "operator/", false }, + { "pt", "operator->", false }, + { "mi=", "operator-", false }, + { "ls=", "operator<<", false }, + { "lt", "operator<", false }, + { "ml=", "operator*", false }, + { "mm", "operator--", true }, + { "sz", "sizeof", true }, + { "rm=", "operator%", false }, + { "oo", "operator||", false }, + { "qu", "operator?", false }, + { "ix", "operator[]", true }, + { "or=", "operator|", false }, + { "", NULL, false }, + { "rs=", "operator>>", false } + }; + + template + bool + session::decode_operator_name(string_type& output) + { + _GLIBCXX_DEMANGLER_DOUT_ENTERING("decode_operator_name"); + + char opcode0 = current(); + char opcode1 = next(); + if (_GLIBCXX_IS_UPPER (opcode1)) + opcode1 += 'a' - 'A'; + + register char hash; + if ((hash = offset_table_c[opcode0 - CHAR_MIN])) + { + hash += opcode1; + if ( +#if (CHAR_MIN < 0) + hash >= 0 && +#endif + hash < 39) + { + int index = static_cast(static_cast(hash)); + entry_st entry = symbol_name_table_c[index]; + if (entry.opcode[0] == opcode0 && entry.opcode[1] == opcode1 + && (opcode1 == current() || entry.opcode[2] == '=')) + { + output += entry.symbol_name; + if (opcode1 != current()) + output += '='; + eat_current(); + if (hash == 27 || hash == 28) + M_template_args_need_space = true; + _GLIBCXX_DEMANGLER_RETURN; + } + else if (opcode0 == 'c' && opcode1 == 'v') + { + eat_current(); + output += "operator "; + if (current() == 'T') + { + // This is a templated cast operator. + // It must be of the form "cvT_I...E". + // Let M_template_arg_pos already point + // to the template argument. + M_template_arg_pos_offset = M_template_arg_pos.size(); + M_template_arg_pos.push_back(M_pos + 3); + } + if (!decode_type(output)) + _GLIBCXX_DEMANGLER_FAILURE; + if (!M_inside_template_args) + M_name_is_conversion_operator = true; + _GLIBCXX_DEMANGLER_RETURN; + } + } + } + _GLIBCXX_DEMANGLER_FAILURE; + } + + // + // ::= + // ::= + // ::= + // + // ::= # Starts with a T + // ::= L E # literal + // ::= L E # external name + // + template + bool + session::decode_expression(string_type& output) + { + _GLIBCXX_DEMANGLER_DOUT_ENTERING("decode_expression"); + if (current() == 'T') + { + if (!decode_template_param(output)) + _GLIBCXX_DEMANGLER_FAILURE; + _GLIBCXX_DEMANGLER_RETURN; + } + else if (current() == 'L') + { + if (!decode_literal(output)) + _GLIBCXX_DEMANGLER_FAILURE; + if (current() != 'E') + _GLIBCXX_DEMANGLER_FAILURE; + eat_current(); + _GLIBCXX_DEMANGLER_RETURN; + } + else + { + char opcode0 = current(); + char opcode1 = next(); + if (_GLIBCXX_IS_UPPER (opcode1)) + opcode1 += 'a' - 'A'; + + register char hash; + if ((hash = offset_table_c[opcode0 - CHAR_MIN])) + { + hash += opcode1; + if ( +#if (CHAR_MIN < 0) + hash >= 0 && +#endif + hash < 39) + { + int index = static_cast(static_cast(hash)); + entry_st entry = symbol_name_table_c[index]; + if (entry.opcode[0] == opcode0 && entry.opcode[1] == opcode1 + && (opcode1 == current() || entry.opcode[2] == '=')) + { + char const* p = entry.symbol_name; + if (!strncmp("operator", p, 8)) + p += 8; + if (*p == ' ') + ++p; + if (entry.unary) + output += p; + bool is_eq = (opcode1 != current()); + eat_current(); + output += '('; + if (!decode_expression(output)) + _GLIBCXX_DEMANGLER_FAILURE; + output += ')'; + if (!entry.unary) + { + output += ' '; + output += p; + if (is_eq) + output += '='; + output += ' '; + output += '('; + if (!decode_expression(output)) + _GLIBCXX_DEMANGLER_FAILURE; + output += ')'; + } + _GLIBCXX_DEMANGLER_RETURN; + } + } + } + } + _GLIBCXX_DEMANGLER_FAILURE; + } + + // + // ::= I + E + // ::= # type or template + // ::= L E # literal + // ::= L_Z E # external name + // ::= X E # expression + template + bool + session::decode_template_args(string_type& output) + { + _GLIBCXX_DEMANGLER_DOUT_ENTERING("decode_template_args"); + if (eat_current() != 'I') + _GLIBCXX_DEMANGLER_FAILURE; + int prev_size = M_template_arg_pos.size(); + ++M_inside_template_args; + if (M_template_args_need_space) + { + output += ' '; + M_template_args_need_space = false; + } + output += '<'; + for(;;) + { + if (M_inside_template_args == 1 && !M_inside_type) + M_template_arg_pos.push_back(M_pos); + if (current() == 'X') + { + eat_current(); + if (!decode_expression(output)) + _GLIBCXX_DEMANGLER_FAILURE; + if (current() != 'E') + _GLIBCXX_DEMANGLER_FAILURE; + eat_current(); + } + else if (current() == 'L') + { + if (!decode_literal(output)) + _GLIBCXX_DEMANGLER_FAILURE; + if (current() != 'E') + _GLIBCXX_DEMANGLER_FAILURE; + eat_current(); + } + else if (!decode_type(output)) + _GLIBCXX_DEMANGLER_FAILURE; + if (current() == 'E') + break; + output += ", "; + } + eat_current(); + if (*(output.rbegin()) == '>') + output += ' '; + output += '>'; + --M_inside_template_args; + if (!M_inside_template_args && !M_inside_type) + { + M_name_is_template = true; + M_template_arg_pos_offset = prev_size; + } + _GLIBCXX_DEMANGLER_RETURN; + } + + // ::= + // + # types are parameter types + // + template + bool + session::decode_bare_function_type(string_type& output) + { + _GLIBCXX_DEMANGLER_DOUT_ENTERING("decode_bare_function_type"); + if (M_saw_destructor) + { + if (eat_current() != 'v' || (current() != 'E' && current() != 0)) + _GLIBCXX_DEMANGLER_FAILURE; + output += "()"; + M_saw_destructor = false; + _GLIBCXX_DEMANGLER_RETURN; + } +#ifndef _GLIBCXX_DEMANGLER_STYLE_VOID + if (current() == 'v') + { + eat_current(); + if (current() != 'E' && current() != 0) + _GLIBCXX_DEMANGLER_FAILURE; + output += "()"; + M_saw_destructor = false; + _GLIBCXX_DEMANGLER_RETURN; + } +#endif + output += '('; + M_template_args_need_space = false; + if (!decode_type(output)) // Must have at least one parameter. + _GLIBCXX_DEMANGLER_FAILURE; + while (current() != 'E' && current() != 0) + { + output += ", "; + if (!decode_type(output)) + _GLIBCXX_DEMANGLER_FAILURE; + } + output += ')'; + _GLIBCXX_DEMANGLER_RETURN; + } + + // ::= + // # Starts with a lower case character != r. + // # Starts with F + // # Starts with N, S, C, D, Z, a digit or a lower + // # case character. Since a lower case character + // # would be an operator name, that would be an + // # error. The S is a substitution or St + // # (::std::). A 'C' would be a constructor and + // # thus also an error. + // # Starts with T + // # Starts with S + // # Starts with T or S, + // # equivalent with the above. + // + // # Starts with A + // # Starts with M + // # Starts with r, V or K + // P # pointer-to # Starts with P + // R # reference-to # Starts with R + // C # complex (C 2000) # Starts with C + // G # imaginary (C 2000)# Starts with G + // U # vendor extended type qualifier, + // # starts with U + // + // ::= + // ::= + + // My own analysis of how to decode qualifiers: + // + // F is a , is a , , + // or . + // represents a series of qualifiers (not G or C). + // is an unqualified type. + // is a qualified type. + // is the bare-function-type without return type. + // is the array index. + // Substitutions: + // MFE ==> R (C::*Q)B Q2 "", "FE" + // ( and recursive), + // "MFE". + // FE ==> R (Q)B "", "" ( recursive) + // and "FE". + // + // Note that if has postfix qualifiers (an array), then those + // are added AFTER the (member) function type. For example: + // FPAE ==> R (*(Q)B) [], where the PA added the prefix + // "(*" and the postfix ") []". + // + // G ==> imaginary T Q "", "G" ( recursive). + // C ==> complex T Q "", "C" ( recursive). + // ==> T Q "" ( recursive). + // + // where is any of: + // + // P ==> *Q "P..." + // R ==> &Q "R..." + // [K|V|r]+ ==> [ const| volatile| restrict]+Q "KVr..." + // U ==> SQ "U..." + // M ==> C::*Q "M..." ( recurs.) + // A ==> [I] "A..." ( recurs.) + // A ==> (Q) [I] "A..." ( recurs.) + // Note that when ends on an A then the brackets are omitted: + // AA ==> [I2][I] + // + // A is handled with an input position switch during which + // new substitutions are turned off. Because recursive handling of types + // (and therefore the order in which substitutions must be generated) must + // be done left to right, but the generation of Q needs processing right to + // left, substitutions per are generated by reading the input left + // to right and marking the starts of all substitutions only - implicitly + // finishing them at the end of the type. Then the output and real + // substitutions are generated. + // + // The following comment was for the demangling of g++ version 3.0.x. The + // mangling (and I believe even the ABI description) have been fixed now + // (as of g++ version 3.1). + // + // g++ 3.0.x only: + // The ABI specifies for pointer-to-member function types the format + // MFE. In other words, the qualifier (see above) is + // implicitely contained in instead of explicitly part of the M format. + // I am convinced that this is a bug in the ABI. Unfortunately, this is + // how we have to demangle things as it has a direct impact on the order + // in which substitutions are stored. This ill-formed design results in + // rather ill-formed demangler code too however :/ + // + // is now explicitely part of the M format. + // For some weird reason, g++ (3.2.1) does not add substitutions for + // qualified member function pointers. I think that is another bug. + // + template + void + qualifier_list::decode_qualifiers(string_type& prefix, + string_type& postfix, + bool member_function_pointer_qualifiers = false) + { + for(typename std::vector, Allocator>:: + reverse_iterator iter = M_qualifier_starts.rbegin(); + iter != M_qualifier_starts.rend();) + { + if (!member_function_pointer_qualifiers + && !(*iter).part_of_substitution()) + { + int saved_inside_substitution = M_demangler.M_inside_substitution; + M_demangler.M_inside_substitution = 0; + M_demangler.add_substitution((*iter).start_pos(), type); + M_demangler.M_inside_substitution = saved_inside_substitution; + } + char qualifier_char = (*iter).first_qualifier(); + for(; qualifier_char; qualifier_char = (*iter).next_qualifier()) + { + switch(qualifier_char) + { + case 'P': + if (! M_demangler.M_java) + prefix += "*"; + break; + case 'R': + prefix += "&"; + break; + case 'K': + prefix += " const"; + continue; + case 'V': + prefix += " volatile"; + continue; + case 'r': + prefix += " restrict"; + continue; + case 'A': + { + string_type index = (*iter).optional_type(); + if (++iter != M_qualifier_starts.rend() + && (*iter).first_qualifier() != 'A') + { + prefix += " ("; + string_type prev_postfix = postfix; + postfix = ") ["; + postfix += index; + postfix += ']'; + postfix += prev_postfix; + } + else + { + string_type prev_postfix = postfix; + postfix = "["; + postfix += index; + postfix += "]"; + postfix += prev_postfix; + } + break; + } + case 'M': + prefix += " "; + prefix += (*iter).optional_type(); + prefix += "::*"; + break; + case 'U': + prefix += " "; + prefix += (*iter).optional_type(); + break; + case 'G': // Only here so we added a substitution. + break; + } + break; + } + if (qualifier_char != 'A') + ++iter; + } + M_printing_suppressed = false; + } + + // + template + bool + session::decode_type_with_postfix(string_type& prefix, + string_type& postfix, + qualifier_list* qualifiers) + { + _GLIBCXX_DEMANGLER_DOUT_ENTERING2 + (qualifiers ? "decode_type" : "decode_type[with qualifiers]"); + ++M_inside_type; + bool recursive_template_param_or_substitution_call; + qualifier_list new_qualifier_list(*this); + if (!(recursive_template_param_or_substitution_call = qualifiers)) + qualifiers = &new_qualifier_list; + // First eat all qualifiers. + bool failure = false; + for(;;) // So we can use 'continue' to eat the next qualifier. + { + int start_pos = M_pos; + switch(current()) + { + case 'P': + qualifiers->add_qualifier_start(pointer, start_pos, + M_inside_substitution); + eat_current(); + continue; + case 'R': + qualifiers->add_qualifier_start(reference, start_pos, + M_inside_substitution); + eat_current(); + continue; + case 'K': + case 'V': + case 'r': + { + char c; + int count = 0; + do + { + ++count; + c = next(); + } + while(c == 'K' || c == 'V' || c == 'r'); + qualifiers->add_qualifier_start(cv_qualifier, start_pos, count, + M_inside_substitution); + continue; + } + case 'U': + { + eat_current(); + string_type source_name; + if (!decode_source_name(source_name)) + { + failure = true; + break; + } + qualifiers->add_qualifier_start(vendor_extension, start_pos, + source_name, M_inside_substitution); + continue; + } + case 'A': + { + // ::= A _ + // ::= A [] _ + // + string_type index; + int saved_pos; + store(saved_pos); + if (next() == 'n' || !decode_number(index)) + { + restore(saved_pos); + if (next() != '_' && !decode_expression(index)) + { + failure = true; + break; + } + } + if (eat_current() != '_') + { + failure = true; + break; + } + qualifiers->add_qualifier_start(array, start_pos, index, + M_inside_substitution); + continue; + } + case 'M': + { + // M or MFE + eat_current(); + string_type class_type; + if (!decode_type(class_type)) // Substitution: "". + { + failure = true; + break; + } + char c = current(); + if (c == 'F' || c == 'K' || c == 'V' || c == 'r') + // Must be CV-qualifiers and a member function pointer. + { + // MFE ==> R (C::*Q)B Q2 + // substitutions: "", "FE" ( and + // recursive), "MFE". + int count = 0; + int Q2_start_pos = M_pos; + while(c == 'K' || c == 'V' || c == 'r') // Decode . + { + ++count; + c = next(); + } + qualifier_list class_type_qualifiers(*this); + if (count) + class_type_qualifiers. + add_qualifier_start(cv_qualifier, Q2_start_pos, + count, M_inside_substitution); + string_type member_function_qualifiers; + // It is unclear why g++ doesn't add a substitution for + // "FE" as it should I think. + string_type member_function_qualifiers_postfix; + class_type_qualifiers. + decode_qualifiers(member_function_qualifiers, + member_function_qualifiers_postfix, true); + member_function_qualifiers += + member_function_qualifiers_postfix; + // I don't think this substitution is actually ever used. + int function_pos = M_pos; + if (eat_current() != 'F') + { + failure = true; + break; + } + // Return type. + // Constructors, destructors and conversion operators don't + // have a return type, but seem to never get here. + if (!decode_type_with_postfix(prefix, postfix)) + // substitution: recursive + { + failure = true; + break; + } + prefix += " ("; + prefix += class_type; + prefix += "::*"; + string_type bare_function_type; + if (!decode_bare_function_type(bare_function_type) + || eat_current() != 'E') // Substitution: recursive. + { + failure = true; + break; + } + // substitution: "FE". + add_substitution(function_pos, type); + // substitution: "MFE". + add_substitution(start_pos, type); + // substitution: all qualified types if any. + qualifiers->decode_qualifiers(prefix, postfix); + prefix += ")"; + prefix += bare_function_type; + prefix += member_function_qualifiers; + goto decode_type_exit; + } + qualifiers->add_qualifier_start(pointer_to_member, start_pos, + class_type, M_inside_substitution); + continue; + } + default: + break; + } + break; + } + if (!failure) + { + // G ==> imaginary T Q + // substitutions: "", "G" ( recursive). + // C ==> complex T Q + // substitutions: "", "C" ( recursive). + if (current() == 'C' || current() == 'G') + { + prefix += current() == 'C' ? "complex " : "imaginary "; + qualifiers->add_qualifier_start(complex_or_imaginary, M_pos, + M_inside_substitution); + eat_current(); + } + int start_pos = M_pos; + switch(current()) + { + case 'F': + { + // FE ==> R (Q)B + // substitution: "", "" ( recursive) and "FE". + eat_current(); + // Return type. + if (!decode_type_with_postfix(prefix, postfix)) + // Substitution: "". + { + failure = true; + break; + } + // Only array (pointer) types have a postfix. + // In that case we don't want the space but + // expect something like prefix is "int (*" + // and postfix is ") [1]". + if (postfix.size() == 0) + prefix += ' '; + prefix += '('; + string_type bare_function_type; + if (!decode_bare_function_type(bare_function_type) + // substitution: "" ( recursive). + || eat_current() != 'E') + { + failure = true; + break; + } + add_substitution(start_pos, type); // Substitution: "FE". + qualifiers->decode_qualifiers(prefix, postfix); + // substitution: all qualified types, if any. + prefix += ")"; + prefix += bare_function_type; + break; + } + case 'T': + if (!decode_template_param(prefix, qualifiers)) + { + failure = true; + break; + } + if (current() == 'I') + { + add_substitution(start_pos, template_template_param); + // substitution: "". + if (!decode_template_args(prefix)) + { + failure = true; + break; + } + } + if (!recursive_template_param_or_substitution_call + && qualifiers->suppressed()) + { + add_substitution(start_pos, type); + // substitution: "" or + // " ". + qualifiers->decode_qualifiers(prefix, postfix); + // substitution: all qualified types, if any. + } + break; + case 'S': + if (M_pos >= M_maxpos) + { + failure = true; + break; + } + if (M_str[M_pos + 1] != 't') + { + if (!decode_substitution(prefix, qualifiers)) + { + failure = true; + break; + } + if (current() == 'I') + { + if (!decode_template_args(prefix)) + { + failure = true; + break; + } + if (!recursive_template_param_or_substitution_call + && qualifiers->suppressed()) + add_substitution(start_pos, type); + // Substitution: + // " ". + } + if (!recursive_template_param_or_substitution_call + && qualifiers->suppressed()) + qualifiers->decode_qualifiers(prefix, postfix); + // Substitution: all qualified types, if any. + break; + } + /* Fall-through for St */ + case 'N': + case 'Z': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + // ==> T Q + // substitutions: "" ( recursive). + if (!decode_class_enum_type(prefix)) + { + failure = true; + break; + } + if (!recursive_template_param_or_substitution_call) + { + add_substitution(start_pos, type); + // substitution: "". + qualifiers->decode_qualifiers(prefix, postfix); + // substitution: all qualified types, if any. + } + else + qualifiers->printing_suppressed(); + break; + default: + // ==> T Q + // substitutions: "" ( recursive). + if (!decode_builtin_type(prefix)) + { + failure = true; + break; + } + // If decode_type was called from decode_template_param then we + // need to suppress calling qualifiers here in order to get a + // substitution added anyway (for the ). + if (!recursive_template_param_or_substitution_call) + qualifiers->decode_qualifiers(prefix, postfix); + else + qualifiers->printing_suppressed(); + break; + } + } + decode_type_exit: + --M_inside_type; + if (failure) + _GLIBCXX_DEMANGLER_FAILURE; + _GLIBCXX_DEMANGLER_RETURN2; + } + + // ::= N [] E + // ::= N [] E + // + // ::= + // ::= + // ::= # empty + // ::= + // + // ::=